jqwidgets-ng 19.2.1 → 19.2.3

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 (189) hide show
  1. package/esm2020/jqxinput/angular_jqxinput.mjs +25 -3
  2. package/fesm2015/jqwidgets-ng-jqxinput.mjs +25 -3
  3. package/fesm2020/jqwidgets-ng-jqxinput.mjs +25 -3
  4. package/jqwidgets/jqx-all.js +13 -13
  5. package/jqwidgets/jqxangular.js +1 -1
  6. package/jqwidgets/jqxbarcode.js +1 -1
  7. package/jqwidgets/jqxbargauge.js +2 -2
  8. package/jqwidgets/jqxbulletchart.js +1 -1
  9. package/jqwidgets/jqxbuttongroup.js +1 -1
  10. package/jqwidgets/jqxbuttons.js +2 -2
  11. package/jqwidgets/jqxcalendar.js +1 -1
  12. package/jqwidgets/jqxchart.annotations.js +1 -1
  13. package/jqwidgets/jqxchart.api.js +1 -1
  14. package/jqwidgets/jqxchart.core.js +1 -1
  15. package/jqwidgets/jqxchart.js +1 -1
  16. package/jqwidgets/jqxchart.rangeselector.js +1 -1
  17. package/jqwidgets/jqxchart.waterfall.js +1 -1
  18. package/jqwidgets/jqxcheckbox.js +1 -1
  19. package/jqwidgets/jqxcheckboxgroup.js +1 -1
  20. package/jqwidgets/jqxcolorpicker.js +1 -1
  21. package/jqwidgets/jqxcombobox.js +1 -1
  22. package/jqwidgets/jqxcomplexinput.js +1 -1
  23. package/jqwidgets/jqxcore.js +1 -1
  24. package/jqwidgets/jqxdata.export.js +1 -1
  25. package/jqwidgets/jqxdata.js +1 -1
  26. package/jqwidgets/jqxdatatable.js +2 -2
  27. package/jqwidgets/jqxdate.js +1 -1
  28. package/jqwidgets/jqxdatetimeinput.js +1 -1
  29. package/jqwidgets/jqxdocking.js +1 -1
  30. package/jqwidgets/jqxdockinglayout.js +1 -1
  31. package/jqwidgets/jqxdockpanel.js +1 -1
  32. package/jqwidgets/jqxdragdrop.js +1 -1
  33. package/jqwidgets/jqxdraw.js +1 -1
  34. package/jqwidgets/jqxdropdownbutton.js +1 -1
  35. package/jqwidgets/jqxdropdownlist.js +2 -2
  36. package/jqwidgets/jqxeditor.js +1 -1
  37. package/jqwidgets/jqxexpander.js +1 -1
  38. package/jqwidgets/jqxfileupload.js +1 -1
  39. package/jqwidgets/jqxform.js +1 -1
  40. package/jqwidgets/jqxformattedinput.js +1 -1
  41. package/jqwidgets/jqxgantt.js +1 -1
  42. package/jqwidgets/jqxgauge.js +1 -1
  43. package/jqwidgets/jqxgrid.aggregates.js +1 -1
  44. package/jqwidgets/jqxgrid.columnsreorder.js +1 -1
  45. package/jqwidgets/jqxgrid.columnsresize.js +1 -1
  46. package/jqwidgets/jqxgrid.edit.js +1 -1
  47. package/jqwidgets/jqxgrid.export.js +1 -1
  48. package/jqwidgets/jqxgrid.filter.js +2 -2
  49. package/jqwidgets/jqxgrid.grouping.js +1 -1
  50. package/jqwidgets/jqxgrid.js +2 -2
  51. package/jqwidgets/jqxgrid.pager.js +1 -1
  52. package/jqwidgets/jqxgrid.selection.js +2 -2
  53. package/jqwidgets/jqxgrid.sort.js +1 -1
  54. package/jqwidgets/jqxgrid.storage.js +1 -1
  55. package/jqwidgets/jqxheatmap.js +1 -1
  56. package/jqwidgets/jqxinput.js +2 -2
  57. package/jqwidgets/jqxkanban.js +2 -2
  58. package/jqwidgets/jqxknob.js +1 -1
  59. package/jqwidgets/jqxknockout.js +1 -1
  60. package/jqwidgets/jqxlayout.js +1 -1
  61. package/jqwidgets/jqxlistbox.js +1 -1
  62. package/jqwidgets/jqxlistmenu.js +1 -1
  63. package/jqwidgets/jqxloader.js +1 -1
  64. package/jqwidgets/jqxmaskedinput.js +1 -1
  65. package/jqwidgets/jqxmenu.js +1 -1
  66. package/jqwidgets/jqxnavbar.js +1 -1
  67. package/jqwidgets/jqxnavigationbar.js +1 -1
  68. package/jqwidgets/jqxnotification.js +1 -1
  69. package/jqwidgets/jqxnumberinput.js +1 -1
  70. package/jqwidgets/jqxpanel.js +1 -1
  71. package/jqwidgets/jqxpasswordinput.js +1 -1
  72. package/jqwidgets/jqxpivot.js +1 -1
  73. package/jqwidgets/jqxpivotdesigner.js +2 -2
  74. package/jqwidgets/jqxpivotgrid.js +1 -1
  75. package/jqwidgets/jqxpopover.js +1 -1
  76. package/jqwidgets/jqxprogressbar.js +1 -1
  77. package/jqwidgets/jqxqrcode.js +1 -1
  78. package/jqwidgets/jqxradiobutton.js +1 -1
  79. package/jqwidgets/jqxradiobuttongroup.js +2 -2
  80. package/jqwidgets/jqxrangeselector.js +1 -1
  81. package/jqwidgets/jqxrating.js +1 -1
  82. package/jqwidgets/jqxresponsivepanel.js +1 -1
  83. package/jqwidgets/jqxribbon.js +1 -1
  84. package/jqwidgets/jqxscheduler.api.js +1 -1
  85. package/jqwidgets/jqxscheduler.js +1 -1
  86. package/jqwidgets/jqxscrollbar.js +1 -1
  87. package/jqwidgets/jqxscrollview.js +1 -1
  88. package/jqwidgets/jqxslider.js +1 -1
  89. package/jqwidgets/jqxsortable.js +1 -1
  90. package/jqwidgets/jqxsplitter.js +1 -1
  91. package/jqwidgets/jqxswitchbutton.js +1 -1
  92. package/jqwidgets/jqxtabs.js +2 -2
  93. package/jqwidgets/jqxtagcloud.js +1 -1
  94. package/jqwidgets/jqxtextarea.js +1 -1
  95. package/jqwidgets/jqxtimeline.js +1 -1
  96. package/jqwidgets/jqxtimepicker.js +1 -1
  97. package/jqwidgets/jqxtoolbar.js +1 -1
  98. package/jqwidgets/jqxtooltip.js +1 -1
  99. package/jqwidgets/jqxtouch.js +1 -1
  100. package/jqwidgets/jqxtree.js +1 -1
  101. package/jqwidgets/jqxtreegrid.js +1 -1
  102. package/jqwidgets/jqxtreemap.js +1 -1
  103. package/jqwidgets/jqxvalidator.js +1 -1
  104. package/jqwidgets/jqxwindow.js +1 -1
  105. package/jqwidgets/modules/jqxbarcode.js +31 -1
  106. package/jqwidgets/modules/jqxbargauge.js +47 -17
  107. package/jqwidgets/modules/jqxbulletchart.js +31 -1
  108. package/jqwidgets/modules/jqxbuttongroup.js +52 -16
  109. package/jqwidgets/modules/jqxbuttons.js +50 -14
  110. package/jqwidgets/modules/jqxcalendar.js +56 -20
  111. package/jqwidgets/modules/jqxchart.js +31 -1
  112. package/jqwidgets/modules/jqxcheckbox.js +54 -18
  113. package/jqwidgets/modules/jqxcheckboxgroup.js +54 -18
  114. package/jqwidgets/modules/jqxcolorpicker.js +56 -20
  115. package/jqwidgets/modules/jqxcombobox.js +61 -25
  116. package/jqwidgets/modules/jqxcomplexinput.js +52 -16
  117. package/jqwidgets/modules/jqxdatatable.js +90 -50
  118. package/jqwidgets/modules/jqxdatetimeinput.js +75 -39
  119. package/jqwidgets/modules/jqxdocking.js +54 -18
  120. package/jqwidgets/modules/jqxdockinglayout.js +62 -26
  121. package/jqwidgets/modules/jqxdockpanel.js +52 -16
  122. package/jqwidgets/modules/jqxdragdrop.js +54 -18
  123. package/jqwidgets/modules/jqxdraw.js +31 -1
  124. package/jqwidgets/modules/jqxdropdownbutton.js +52 -16
  125. package/jqwidgets/modules/jqxdropdownlist.js +73 -37
  126. package/jqwidgets/modules/jqxeditor.js +85 -49
  127. package/jqwidgets/modules/jqxexpander.js +58 -22
  128. package/jqwidgets/modules/jqxfileupload.js +31 -1
  129. package/jqwidgets/modules/jqxform.js +83 -47
  130. package/jqwidgets/modules/jqxformattedinput.js +75 -39
  131. package/jqwidgets/modules/jqxgantt.js +31 -1
  132. package/jqwidgets/modules/jqxgauge.js +56 -20
  133. package/jqwidgets/modules/jqxgrid.js +3988 -3932
  134. package/jqwidgets/modules/jqxheatmap.js +31 -1
  135. package/jqwidgets/modules/jqxinput.js +1232 -972
  136. package/jqwidgets/modules/jqxkanban.js +1300 -1241
  137. package/jqwidgets/modules/jqxknob.js +54 -18
  138. package/jqwidgets/modules/jqxlayout.js +62 -26
  139. package/jqwidgets/modules/jqxlineargauge.js +56 -20
  140. package/jqwidgets/modules/jqxlinkbutton.js +50 -14
  141. package/jqwidgets/modules/jqxlistbox.js +64 -28
  142. package/jqwidgets/modules/jqxlistmenu.js +81 -45
  143. package/jqwidgets/modules/jqxloader.js +31 -1
  144. package/jqwidgets/modules/jqxmaskedinput.js +31 -1
  145. package/jqwidgets/modules/jqxmenu.js +62 -26
  146. package/jqwidgets/modules/jqxnavbar.js +58 -22
  147. package/jqwidgets/modules/jqxnavigationbar.js +66 -30
  148. package/jqwidgets/modules/jqxnotification.js +58 -22
  149. package/jqwidgets/modules/jqxnumberinput.js +65 -29
  150. package/jqwidgets/modules/jqxpanel.js +56 -20
  151. package/jqwidgets/modules/jqxpasswordinput.js +58 -22
  152. package/jqwidgets/modules/jqxpivotdesigner.js +90 -54
  153. package/jqwidgets/modules/jqxpivotgrid.js +90 -54
  154. package/jqwidgets/modules/jqxpopover.js +52 -16
  155. package/jqwidgets/modules/jqxprogressbar.js +31 -1
  156. package/jqwidgets/modules/jqxqrcode.js +31 -1
  157. package/jqwidgets/modules/jqxradiobutongroup.js +55 -19
  158. package/jqwidgets/modules/jqxradiobutton.js +52 -16
  159. package/jqwidgets/modules/jqxrangeselector.js +31 -1
  160. package/jqwidgets/modules/jqxrating.js +52 -16
  161. package/jqwidgets/modules/jqxrepeatbutton.js +50 -14
  162. package/jqwidgets/modules/jqxresponsivepanel.js +31 -1
  163. package/jqwidgets/modules/jqxribbon.js +54 -18
  164. package/jqwidgets/modules/jqxscheduler.js +39621 -37367
  165. package/jqwidgets/modules/jqxscrollbar.js +10618 -91150
  166. package/jqwidgets/modules/jqxscrollview.js +52 -16
  167. package/jqwidgets/modules/jqxslider.js +52 -16
  168. package/jqwidgets/modules/jqxsortable.js +52 -16
  169. package/jqwidgets/modules/jqxsplitlayout.js +2033 -2075
  170. package/jqwidgets/modules/jqxsplitter.js +52 -16
  171. package/jqwidgets/modules/jqxswitchbutton.js +56 -20
  172. package/jqwidgets/modules/jqxtabs.js +65 -29
  173. package/jqwidgets/modules/jqxtagcloud.js +58 -22
  174. package/jqwidgets/modules/jqxtextarea.js +58 -22
  175. package/jqwidgets/modules/jqxtimeline.js +31 -1
  176. package/jqwidgets/modules/jqxtimepicker.js +31 -1
  177. package/jqwidgets/modules/jqxtogglebutton.js +50 -14
  178. package/jqwidgets/modules/jqxtoolbar.js +1262 -996
  179. package/jqwidgets/modules/jqxtooltip.js +31 -1
  180. package/jqwidgets/modules/jqxtree.js +6381 -195
  181. package/jqwidgets/modules/jqxtreegrid.js +92 -52
  182. package/jqwidgets/modules/jqxtreemap.js +31 -1
  183. package/jqwidgets/modules/jqxvalidator.js +56 -20
  184. package/jqwidgets/modules/jqxwindow.js +52 -16
  185. package/jqwidgets/styles/gantt/jqx.gantt.css +98 -98
  186. package/jqwidgets/styles/jqx.base.css +20 -20
  187. package/jqwidgets.d.ts +2 -0
  188. package/jqxinput/angular_jqxinput.d.ts +5 -1
  189. package/package.json +1 -1
@@ -20,6 +20,30 @@ Copyright (c) 2011-2024 jQWidgets.
20
20
  License: https://jqwidgets.com/license/ */
21
21
 
22
22
 
23
+ /******/ (() => { // webpackBootstrap
24
+ var __webpack_exports__ = {};
25
+
26
+ /* Release Date: 28-May-2024
27
+ Copyright (c) 2011-2024 jQWidgets.
28
+ License: https://jqwidgets.com/license/ */
29
+
30
+
31
+ /******/ (() => { // webpackBootstrap
32
+ var __webpack_exports__ = {};
33
+
34
+ /* Release Date: 28-May-2024
35
+ Copyright (c) 2011-2024 jQWidgets.
36
+ License: https://jqwidgets.com/license/ */
37
+
38
+
39
+ /******/ (() => { // webpackBootstrap
40
+ var __webpack_exports__ = {};
41
+
42
+ /* Release Date: 28-May-2024
43
+ Copyright (c) 2011-2024 jQWidgets.
44
+ License: https://jqwidgets.com/license/ */
45
+
46
+
23
47
  /******/ (() => { // webpackBootstrap
24
48
  /******/ var __webpack_modules__ = ({
25
49
 
@@ -8204,7 +8228,7 @@ var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/* tslint:disabl
8204
8228
  // file names, and JQXLite is normally delivered in a lowercase file name.
8205
8229
  // Do this after creating the global so that if an AMD module wants to call
8206
8230
  // noConflict to hide this version of JQXLite, it will work.
8207
- if ( true && __nested_webpack_require_227__.amdO.JQXLite) {
8231
+ if ( true && __nested_webpack_require_227__.amdO.JQXLite) {
8208
8232
  !(__WEBPACK_AMD_DEFINE_ARRAY__ = [], __WEBPACK_AMD_DEFINE_RESULT__ = (function () { return JQXLite; }).apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__),
8209
8233
  __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));
8210
8234
  }
@@ -11386,2532 +11410,2460 @@ var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/* tslint:disabl
11386
11410
  /***/ 40:
11387
11411
  /***/ (() => {
11388
11412
 
11389
- /*
11390
- jQWidgets v19.0.0 (2024-Feb)
11391
- Copyright (c) 2011-2024 jQWidgets.
11392
- License: https://jqwidgets.com/license/
11393
- */
11394
- /* eslint-disable */
11395
-
11396
- /*
11397
- jQWidgets v17.0.0 (2023-Aug)
11398
- Copyright (c) 2011-2023 jQWidgets.
11399
- License: https://jqwidgets.com/license/
11400
- */
11401
- /* eslint-disable */
11402
-
11403
- /*
11404
- jQWidgets v16.0.0 (2023-Mar)
11405
- Copyright (c) 2011-2023 jQWidgets.
11406
- License: https://jqwidgets.com/license/
11407
- */
11413
+ /* tslint:disable */
11408
11414
  /* eslint-disable */
11415
+ (function(){
11416
+ if (typeof document === 'undefined') {
11417
+ return;
11418
+ }
11419
+ if (!window.JQX) {
11420
+ window.JQX = {
11421
+ Utilities: {
11422
+ Core: {
11423
+ isMobile() {
11424
+ var isMobile = /(iphone|ipod|ipad|android|iemobile|blackberry|bada)/.test(window.navigator.userAgent.toLowerCase());
11425
+ var iOS = function () {
11426
+ return [
11427
+ 'iPad Simulator',
11428
+ 'iPhone Simulator',
11429
+ 'iPod Simulator',
11430
+ 'iPad',
11431
+ 'iPhone',
11432
+ 'iPod'
11433
+ ].includes(navigator.platform)
11434
+ // iPad on iOS 13 detection
11435
+ || (navigator.userAgent.includes('Mac') && 'ontouchend' in document)
11436
+ }
11437
+
11438
+ if (!isMobile) {
11439
+ return iOS();
11440
+ }
11441
+
11442
+ return isMobile;
11443
+ }
11444
+ }
11445
+ }
11446
+ }
11447
+ }
11409
11448
 
11410
- function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
11411
11449
 
11412
- function _get(target, property, receiver) { if (typeof Reflect !== "undefined" && Reflect.get) { _get = Reflect.get; } else { _get = function _get(target, property, receiver) { var base = _superPropBase(target, property); if (!base) return; var desc = Object.getOwnPropertyDescriptor(base, property); if (desc.get) { return desc.get.call(receiver); } return desc.value; }; } return _get(target, property, receiver || target); }
11450
+ class LayoutItem extends HTMLElement {
11451
+ constructor() {
11452
+ super();
11413
11453
 
11414
- function _superPropBase(object, property) { while (!Object.prototype.hasOwnProperty.call(object, property)) { object = _getPrototypeOf(object); if (object === null) break; } return object; }
11454
+ this._properties = {
11455
+ 'min': 50,
11456
+ 'label': 'Item',
11457
+ 'modifiers': ['resize', 'drag', 'close'],
11458
+ 'size': null
11459
+ }
11460
+ }
11415
11461
 
11416
- function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
11462
+ _setProperty(property, value) {
11463
+ var that = this;
11417
11464
 
11418
- function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
11465
+ if (that._properties[property] === value) {
11466
+ return;
11467
+ }
11419
11468
 
11420
- function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }
11469
+ that._properties[property] = value;
11470
+ that._updating = true;
11421
11471
 
11422
- function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }
11472
+ if (property === 'disabled' || property === 'modifiers') {
11473
+ if (value) {
11474
+ that.setAttribute(property, value);
11475
+ }
11476
+ else {
11477
+ that.removeAttribute(property);
11478
+ }
11479
+ }
11480
+ else {
11481
+ if (value === null) {
11482
+ that.removeAttribute(property);
11483
+ }
11484
+ else {
11485
+ that.setAttribute(property, value);
11486
+ }
11487
+ }
11423
11488
 
11424
- function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }
11489
+ if (!that.isCompleted) {
11490
+ return;
11491
+ }
11425
11492
 
11426
- function _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === "object" || typeof call === "function")) { return call; } return _assertThisInitialized(self); }
11493
+ var layout = that.closest('jqx-layout');
11427
11494
 
11428
- function _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return self; }
11495
+ if (layout) {
11496
+ if (!layout._resizeDetails && !layout._updating && layout.isRendered) {
11497
+ layout.refresh();
11498
+ }
11499
+ }
11500
+ that._updating = false;
11501
+ }
11429
11502
 
11430
- function _wrapNativeSuper(Class) { var _cache = typeof Map === "function" ? new Map() : undefined; _wrapNativeSuper = function _wrapNativeSuper(Class) { if (Class === null || !_isNativeFunction(Class)) return Class; if (typeof Class !== "function") { throw new TypeError("Super expression must either be null or a function"); } if (typeof _cache !== "undefined") { if (_cache.has(Class)) return _cache.get(Class); _cache.set(Class, Wrapper); } function Wrapper() { return _construct(Class, arguments, _getPrototypeOf(this).constructor); } Wrapper.prototype = Object.create(Class.prototype, { constructor: { value: Wrapper, enumerable: false, writable: true, configurable: true } }); return _setPrototypeOf(Wrapper, Class); }; return _wrapNativeSuper(Class); }
11503
+ get label() {
11504
+ return this._properties['label'];
11505
+ }
11431
11506
 
11432
- function _construct(Parent, args, Class) { if (_isNativeReflectConstruct()) { _construct = Reflect.construct; } else { _construct = function _construct(Parent, args, Class) { var a = [null]; a.push.apply(a, args); var Constructor = Function.bind.apply(Parent, a); var instance = new Constructor(); if (Class) _setPrototypeOf(instance, Class.prototype); return instance; }; } return _construct.apply(null, arguments); }
11507
+ set label(value) {
11508
+ this._setProperty('label', value);
11509
+ }
11433
11510
 
11434
- function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
11511
+ get modifiers() {
11512
+ return this._properties['modifiers'];
11513
+ }
11435
11514
 
11436
- function _isNativeFunction(fn) { return Function.toString.call(fn).indexOf("[native code]") !== -1; }
11515
+ set modifiers(value) {
11516
+ this._setProperty('modifiers', value);
11517
+ }
11437
11518
 
11438
- function _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }
11519
+ get min() {
11520
+ return this._properties['min'];
11521
+ }
11439
11522
 
11440
- function _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }
11523
+ set min(value) {
11524
+ this._setProperty('min', value);
11525
+ }
11441
11526
 
11442
- /* tslint:disable */
11527
+ get size() {
11528
+ return this._properties['size'];
11529
+ }
11443
11530
 
11444
- /* eslint-disable */
11445
- if (!window.JQX) {
11446
- window.JQX = {
11447
- Utilities: {
11448
- Core: {
11449
- isMobile: function isMobile() {
11450
- var isMobile = /(iphone|ipod|ipad|android|iemobile|blackberry|bada)/.test(window.navigator.userAgent.toLowerCase());
11451
-
11452
- var iOS = function iOS() {
11453
- return ['iPad Simulator', 'iPhone Simulator', 'iPod Simulator', 'iPad', 'iPhone', 'iPod'].includes(navigator.platform) // iPad on iOS 13 detection
11454
- || navigator.userAgent.includes('Mac') && 'ontouchend' in document;
11455
- };
11456
-
11457
- if (!isMobile) {
11458
- return iOS();
11459
- }
11460
-
11461
- return isMobile;
11531
+ set size(value) {
11532
+ if (value !== null) {
11533
+ if (typeof value === 'string') {
11534
+ this._setProperty('size', value);
11535
+ }
11536
+ else {
11537
+ this._setProperty('size', Math.max(this.min, value));
11538
+ }
11539
+ }
11540
+ else {
11541
+ this._setProperty('size', value);
11462
11542
  }
11463
- }
11464
11543
  }
11465
- };
11466
- }
11467
11544
 
11468
- var LayoutItem = /*#__PURE__*/function (_HTMLElement) {
11469
- "use strict";
11545
+ static get observedAttributes() {
11546
+ return ['min', 'size', 'label', 'modifiers'];
11547
+ }
11470
11548
 
11471
- _inherits(LayoutItem, _HTMLElement);
11472
11549
 
11473
- var _super = _createSuper(LayoutItem);
11550
+ attributeChangedCallback(name, oldValue, newValue) {
11551
+ var that = this;
11474
11552
 
11475
- function LayoutItem() {
11476
- var _this;
11553
+ if (oldValue === newValue) {
11554
+ return;
11555
+ }
11477
11556
 
11478
- _classCallCheck(this, LayoutItem);
11557
+ if (!that.isCompleted) {
11558
+ return;
11559
+ }
11479
11560
 
11480
- _this = _super.call(this);
11481
- _this._properties = {
11482
- 'min': 50,
11483
- 'label': 'Item',
11484
- 'modifiers': ['resize', 'drag', 'close'],
11485
- 'size': null
11486
- };
11487
- return _this;
11488
- }
11561
+ if (name === 'size') {
11562
+ if (!that._updating) {
11563
+ if (newValue === null) {
11564
+ this[name] = null;
11565
+ return;
11566
+ }
11489
11567
 
11490
- _createClass(LayoutItem, [{
11491
- key: "_setProperty",
11492
- value: function _setProperty(property, value) {
11493
- var that = this;
11568
+ that[name] = Math.max(that.min, parseInt(newValue));
11569
+ }
11570
+ }
11571
+ else {
11572
+ that[name] = newValue;
11573
+ }
11574
+ }
11494
11575
 
11495
- if (that._properties[property] === value) {
11496
- return;
11497
- }
11576
+ connectedCallback() {
11577
+ if (!this.isCompleted) {
11578
+ this.render();
11579
+ }
11580
+ }
11498
11581
 
11499
- that._properties[property] = value;
11500
- that._updating = true;
11582
+ whenRendered(callback) {
11583
+ var that = this;
11501
11584
 
11502
- if (property === 'disabled' || property === 'modifiers') {
11503
- if (value) {
11504
- that.setAttribute(property, value);
11505
- } else {
11506
- that.removeAttribute(property);
11585
+ if (that.isRendered) {
11586
+ callback();
11587
+ return;
11507
11588
  }
11508
- } else {
11509
- if (value === null) {
11510
- that.removeAttribute(property);
11511
- } else {
11512
- that.setAttribute(property, value);
11589
+
11590
+ if (!that.whenRenderedCallbacks) {
11591
+ that.whenRenderedCallbacks = [];
11513
11592
  }
11514
- }
11515
11593
 
11516
- if (!that.isCompleted) {
11517
- return;
11518
- }
11594
+ that.whenRenderedCallbacks.push(callback);
11595
+ }
11519
11596
 
11520
- var layout = that.closest('jqx-layout');
11597
+ render() {
11598
+ var that = this;
11521
11599
 
11522
- if (layout) {
11523
- if (!layout._resizeDetails && !layout._updating && layout.isRendered) {
11524
- layout.refresh();
11600
+ if (!that.hasAttribute('data-id')) {
11601
+ that.setAttribute('data-id', 'id' + Math.random().toString(16).slice(2));
11525
11602
  }
11526
- }
11527
11603
 
11528
- that._updating = false;
11529
- }
11530
- }, {
11531
- key: "label",
11532
- get: function get() {
11533
- return this._properties['label'];
11534
- },
11535
- set: function set(value) {
11536
- this._setProperty('label', value);
11537
- }
11538
- }, {
11539
- key: "modifiers",
11540
- get: function get() {
11541
- return this._properties['modifiers'];
11542
- },
11543
- set: function set(value) {
11544
- this._setProperty('modifiers', value);
11545
- }
11546
- }, {
11547
- key: "min",
11548
- get: function get() {
11549
- return this._properties['min'];
11550
- },
11551
- set: function set(value) {
11552
- this._setProperty('min', value);
11553
- }
11554
- }, {
11555
- key: "size",
11556
- get: function get() {
11557
- return this._properties['size'];
11558
- },
11559
- set: function set(value) {
11560
- if (value !== null) {
11561
- if (typeof value === 'string') {
11562
- this._setProperty('size', value);
11563
- } else {
11564
- this._setProperty('size', Math.max(this.min, value));
11604
+ if (!that.hasAttribute('label')) {
11605
+ that.setAttribute('label', that.label);
11565
11606
  }
11566
- } else {
11567
- this._setProperty('size', value);
11568
- }
11569
- }
11570
- }, {
11571
- key: "attributeChangedCallback",
11572
- value: function attributeChangedCallback(name, oldValue, newValue) {
11573
- var that = this;
11574
-
11575
- if (oldValue === newValue) {
11576
- return;
11577
- }
11578
-
11579
- if (!that.isCompleted) {
11580
- return;
11581
- }
11582
-
11583
- if (name === 'size') {
11584
- if (!that._updating) {
11585
- if (newValue === null) {
11586
- this[name] = null;
11587
- return;
11588
- }
11589
11607
 
11590
- that[name] = Math.max(that.min, parseInt(newValue));
11608
+ if (!that.hasAttribute('min')) {
11609
+ that.setAttribute('min', that.min);
11591
11610
  }
11592
- } else {
11593
- that[name] = newValue;
11594
- }
11595
- }
11596
- }, {
11597
- key: "connectedCallback",
11598
- value: function connectedCallback() {
11599
- if (!this.isCompleted) {
11600
- this.render();
11601
- }
11602
- }
11603
- }, {
11604
- key: "whenRendered",
11605
- value: function whenRendered(callback) {
11606
- var that = this;
11607
-
11608
- if (that.isRendered) {
11609
- callback();
11610
- return;
11611
- }
11612
11611
 
11613
- if (!that.whenRenderedCallbacks) {
11614
- that.whenRenderedCallbacks = [];
11615
- }
11612
+ if (!that.hasAttribute('label')) {
11613
+ that.setAttribute('label', that.label);
11614
+ }
11616
11615
 
11617
- that.whenRenderedCallbacks.push(callback);
11618
- }
11619
- }, {
11620
- key: "render",
11621
- value: function render() {
11622
- var that = this;
11623
-
11624
- if (!that.hasAttribute('data-id')) {
11625
- that.setAttribute('data-id', 'id' + Math.random().toString(16).slice(2));
11626
- }
11627
-
11628
- if (!that.hasAttribute('label')) {
11629
- that.setAttribute('label', that.label);
11630
- }
11631
-
11632
- if (!that.hasAttribute('min')) {
11633
- that.setAttribute('min', that.min);
11634
- }
11635
-
11636
- if (!that.hasAttribute('label')) {
11637
- that.setAttribute('label', that.label);
11638
- }
11639
-
11640
- if (!that.hasAttribute('modifiers')) {
11641
- that.setAttribute('modifiers', that.modifiers);
11642
- }
11643
-
11644
- for (var i = 0; i < that.attributes.length; i++) {
11645
- var attribute = that.attributes[i];
11646
- var attributeName = attribute.name;
11647
- var attributeValue = attribute.value;
11648
-
11649
- if (!isNaN(attributeValue) && (attributeName === 'min' || attributeName === 'size')) {
11650
- that._properties[attributeName] = parseInt(attributeValue);
11651
- continue;
11616
+ if (!that.hasAttribute('modifiers')) {
11617
+ that.setAttribute('modifiers', that.modifiers);
11652
11618
  }
11653
11619
 
11654
- that._properties[attributeName] = attributeValue;
11655
- }
11620
+ for (var i = 0; i < that.attributes.length; i++) {
11621
+ var attribute = that.attributes[i];
11622
+ var attributeName = attribute.name;
11623
+ var attributeValue = attribute.value;
11656
11624
 
11657
- that.classList.add('jqx-layout-item');
11658
- that.isCompleted = true;
11625
+ if (!isNaN(attributeValue) && (attributeName === 'min' || attributeName === 'size')) {
11626
+ that._properties[attributeName] = parseInt(attributeValue);
11627
+ continue;
11628
+ }
11659
11629
 
11660
- if (that.whenRenderedCallbacks) {
11661
- for (var i = 0; i < that.whenRenderedCallbacks.length; i++) {
11662
- that.whenRenderedCallbacks[i]();
11630
+ that._properties[attributeName] = attributeValue;
11663
11631
  }
11664
11632
 
11665
- that.whenRenderedCallbacks = [];
11666
- }
11667
- }
11668
- }], [{
11669
- key: "observedAttributes",
11670
- get: function get() {
11671
- return ['min', 'size', 'label', 'modifiers'];
11672
- }
11673
- }]);
11633
+ that.classList.add('jqx-layout-item');
11674
11634
 
11675
- return LayoutItem;
11676
- }( /*#__PURE__*/_wrapNativeSuper(HTMLElement));
11635
+ that.isCompleted = true;
11677
11636
 
11678
- var LayoutGroup = /*#__PURE__*/function (_LayoutItem) {
11679
- "use strict";
11637
+ if (that.whenRenderedCallbacks) {
11638
+ for (var i = 0; i < that.whenRenderedCallbacks.length; i++) {
11639
+ that.whenRenderedCallbacks[i]();
11640
+ }
11680
11641
 
11681
- _inherits(LayoutGroup, _LayoutItem);
11642
+ that.whenRenderedCallbacks = [];
11643
+ }
11644
+ }
11645
+ }
11682
11646
 
11683
- var _super2 = _createSuper(LayoutGroup);
11647
+ class LayoutGroup extends LayoutItem {
11648
+ constructor() {
11649
+ super();
11684
11650
 
11685
- function LayoutGroup() {
11686
- var _this2;
11651
+ this._properties['label'] = 'Group';
11652
+ this._properties['orientation'] = 'vertical'
11653
+ }
11687
11654
 
11688
- _classCallCheck(this, LayoutGroup);
11655
+ get orientation() {
11656
+ return this._properties.orientation;
11657
+ }
11689
11658
 
11690
- _this2 = _super2.call(this);
11691
- _this2._properties['label'] = 'Group';
11692
- _this2._properties['orientation'] = 'vertical';
11693
- return _this2;
11694
- }
11659
+ set orientation(value) {
11660
+ this._setProperty('orientation', value);
11661
+ }
11695
11662
 
11696
- _createClass(LayoutGroup, [{
11697
- key: "orientation",
11698
- get: function get() {
11699
- return this._properties.orientation;
11700
- },
11701
- set: function set(value) {
11702
- this._setProperty('orientation', value);
11663
+ static get observedAttributes() {
11664
+ return ['min', 'size', 'modifiers', 'orientation', 'position'];
11703
11665
  }
11704
- }, {
11705
- key: "render",
11706
- value: function render() {
11707
- var that = this;
11708
11666
 
11709
- _get(_getPrototypeOf(LayoutGroup.prototype), "render", this).call(this);
11667
+ render() {
11668
+ var that = this;
11710
11669
 
11711
- that.className = 'jqx-layout-group';
11670
+ super.render();
11712
11671
 
11713
- if (!that.hasAttribute('orientation')) {
11714
- that.setAttribute('orientation', that._properties['orientation']);
11715
- } else {
11716
- that._properties['orientation'] = that.getAttribute('orientation');
11717
- }
11718
- }
11719
- }], [{
11720
- key: "observedAttributes",
11721
- get: function get() {
11722
- return ['min', 'size', 'modifiers', 'orientation', 'position'];
11672
+ that.className = 'jqx-layout-group';
11673
+
11674
+ if (!that.hasAttribute('orientation')) {
11675
+ that.setAttribute('orientation', that._properties['orientation']);
11676
+ }
11677
+ else {
11678
+ that._properties['orientation'] = that.getAttribute('orientation');
11679
+ }
11723
11680
  }
11724
- }]);
11681
+ }
11725
11682
 
11726
- return LayoutGroup;
11727
- }(LayoutItem);
11683
+ class TabLayoutGroup extends LayoutGroup {
11684
+ constructor() {
11685
+ super();
11686
+ this._properties['position'] = 'top'
11687
+ this._properties['label'] = 'TabGroup';
11688
+ }
11728
11689
 
11729
- var TabLayoutGroup = /*#__PURE__*/function (_LayoutGroup) {
11730
- "use strict";
11690
+ get position() {
11691
+ return this._properties.position;
11692
+ }
11731
11693
 
11732
- _inherits(TabLayoutGroup, _LayoutGroup);
11694
+ set position(value) {
11695
+ this._setProperty('position', value);
11696
+ }
11733
11697
 
11734
- var _super3 = _createSuper(TabLayoutGroup);
11698
+ render() {
11699
+ var that = this;
11735
11700
 
11736
- function TabLayoutGroup() {
11737
- var _this3;
11701
+ super.render();
11738
11702
 
11739
- _classCallCheck(this, TabLayoutGroup);
11703
+ if (!that.hasAttribute('position') && that.position) {
11704
+ that.setAttribute('position', 'top');
11705
+ }
11706
+ }
11740
11707
 
11741
- _this3 = _super3.call(this);
11742
- _this3._properties['position'] = 'top';
11743
- _this3._properties['label'] = 'TabGroup';
11744
- return _this3;
11745
- }
11708
+ static get observedAttributes() {
11709
+ return ['min', 'size', 'modifiers', 'orientation', 'position'];
11710
+ }
11711
+ }
11746
11712
 
11747
- _createClass(TabLayoutGroup, [{
11748
- key: "position",
11749
- get: function get() {
11750
- return this._properties.position;
11751
- },
11752
- set: function set(value) {
11753
- this._setProperty('position', value);
11713
+ class TabLayoutItem extends LayoutGroup {
11714
+ constructor() {
11715
+ super();
11716
+ this._properties['label'] = 'TabItem';
11754
11717
  }
11755
- }, {
11756
- key: "render",
11757
- value: function render() {
11758
- var that = this;
11718
+ }
11759
11719
 
11760
- _get(_getPrototypeOf(TabLayoutGroup.prototype), "render", this).call(this);
11761
11720
 
11762
- if (!that.hasAttribute('position') && that.position) {
11763
- that.setAttribute('position', 'top');
11764
- }
11765
- }
11766
- }], [{
11767
- key: "observedAttributes",
11768
- get: function get() {
11769
- return ['min', 'size', 'modifiers', 'orientation', 'position'];
11770
- }
11771
- }]);
11721
+ (function ($) {
11722
+ "use strict";
11723
+ $.jqx.jqxWidget("jqxSplitLayout", "", {});
11724
+
11725
+ $.extend($.jqx._jqxSplitLayout.prototype, {
11726
+ defineInstance: function () {
11727
+ var settings = {
11728
+ 'dataSource': null,
11729
+ 'ready': null,
11730
+ 'orientation': 'vertical'
11731
+ };
11732
+
11733
+ if (this === $.jqx._jqxSplitLayout.prototype) {
11734
+ return settings;
11735
+ }
11772
11736
 
11773
- return TabLayoutGroup;
11774
- }(LayoutGroup);
11737
+ $.extend(true, this, settings);
11738
+ return settings;
11739
+ },
11775
11740
 
11776
- var TabLayoutItem = /*#__PURE__*/function (_LayoutGroup2) {
11777
- "use strict";
11741
+ createInstance: function () {
11742
+ var that = this;
11743
+ this._properties = {
11744
+ 'dataSource': null,
11745
+ 'ready': null,
11746
+ 'orientation': 'vertical'
11747
+ }
11778
11748
 
11779
- _inherits(TabLayoutItem, _LayoutGroup2);
11749
+ var that = this;
11780
11750
 
11781
- var _super4 = _createSuper(TabLayoutItem);
11751
+ that.layout = document.createElement('jqx-split-layout');
11752
+ that.layout.style.width = '100%';
11753
+ that.layout.style.height = '100%';
11754
+ that.element.className += that.toThemeProperty("jqx-split-layout-component jqx-rc-all jqx-widget");
11755
+ that.layout.dataSource = that.dataSource;
11756
+ that.layout.orientation = that.orientation;
11757
+ that.layout.ready = that.ready;
11758
+ that.element.appendChild(that.layout);
11759
+ },
11782
11760
 
11783
- function TabLayoutItem() {
11784
- var _this4;
11761
+ propertyChangedHandler: function (object, key, oldValue, value) {
11762
+ var that = object;
11785
11763
 
11786
- _classCallCheck(this, TabLayoutItem);
11764
+ if (oldValue != value || value instanceof Object) {
11765
+ if (!that.layout) {
11766
+ return;
11767
+ }
11787
11768
 
11788
- _this4 = _super4.call(this);
11789
- _this4._properties['label'] = 'TabItem';
11790
- return _this4;
11791
- }
11769
+ that.layout[key] = value;
11770
+ }
11771
+ },
11792
11772
 
11793
- return TabLayoutItem;
11794
- }(LayoutGroup);
11773
+ render: function () {
11774
+ var that = this;
11795
11775
 
11796
- (function ($) {
11797
- "use strict";
11798
-
11799
- $.jqx.jqxWidget("jqxSplitLayout", "", {});
11800
- $.extend($.jqx._jqxSplitLayout.prototype, {
11801
- defineInstance: function defineInstance() {
11802
- var settings = {
11803
- 'dataSource': null,
11804
- 'ready': null,
11805
- 'orientation': 'vertical'
11806
- };
11807
-
11808
- if (this === $.jqx._jqxSplitLayout.prototype) {
11809
- return settings;
11810
- }
11811
-
11812
- $.extend(true, this, settings);
11813
- return settings;
11814
- },
11815
- createInstance: function createInstance() {
11816
- var that = this;
11817
- this._properties = {
11818
- 'dataSource': null,
11819
- 'ready': null,
11820
- 'orientation': 'vertical'
11821
- };
11822
- var that = this;
11823
- that.layout = document.createElement('jqx-split-layout');
11824
- that.layout.style.width = '100%';
11825
- that.layout.style.height = '100%';
11826
- that.element.className += that.toThemeProperty("jqx-split-layout-component jqx-rc-all jqx-widget");
11827
- that.layout.dataSource = that.dataSource;
11828
- that.layout.orientation = that.orientation;
11829
- that.layout.ready = that.ready;
11830
- that.element.appendChild(that.layout);
11831
- },
11832
- propertyChangedHandler: function propertyChangedHandler(object, key, oldValue, value) {
11833
- var that = object;
11834
-
11835
- if (oldValue != value || value instanceof Object) {
11836
- if (!that.layout) {
11837
- return;
11838
- }
11776
+ if (!that.layout) {
11777
+ return;
11778
+ }
11839
11779
 
11840
- that.layout[key] = value;
11841
- }
11842
- },
11843
- render: function render() {
11844
- var that = this;
11780
+ that.layout.render();
11781
+ },
11845
11782
 
11846
- if (!that.layout) {
11847
- return;
11848
- }
11783
+ refresh() {
11784
+ var that = this;
11849
11785
 
11850
- that.layout.render();
11851
- },
11852
- refresh: function refresh() {
11853
- var that = this;
11786
+ if (!that.layout) {
11787
+ return;
11788
+ }
11854
11789
 
11855
- if (!that.layout) {
11856
- return;
11857
- }
11790
+ if (!that.layout.isRendered) {
11791
+ return;
11792
+ }
11858
11793
 
11859
- if (!that.layout.isRendered) {
11860
- return;
11861
- }
11794
+ that.layout.refresh();
11795
+ },
11862
11796
 
11863
- that.layout.refresh();
11864
- },
11865
- dataBind: function dataBind() {
11866
- var that = this;
11797
+ dataBind() {
11798
+ var that = this;
11867
11799
 
11868
- if (!that.layout) {
11869
- return;
11870
- }
11800
+ if (!that.layout) {
11801
+ return;
11802
+ }
11871
11803
 
11872
- that.layout.dataBind();
11873
- }
11874
- });
11804
+ that.layout.dataBind();
11805
+ }
11806
+ });
11875
11807
  })(jqxBaseFramework);
11876
11808
 
11877
- var SplitLayout = /*#__PURE__*/function (_HTMLElement2) {
11878
- "use strict";
11809
+ class SplitLayout extends HTMLElement {
11810
+ constructor() {
11811
+ super();
11879
11812
 
11880
- _inherits(SplitLayout, _HTMLElement2);
11881
-
11882
- var _super5 = _createSuper(SplitLayout);
11813
+ this._properties = {
11814
+ 'dataSource': null,
11815
+ 'orientation': 'vertical'
11816
+ }
11817
+ }
11883
11818
 
11884
- function SplitLayout() {
11885
- var _this5;
11886
11819
 
11887
- _classCallCheck(this, SplitLayout);
11820
+ get orientation() {
11821
+ return this._properties['orientation'];
11822
+ }
11888
11823
 
11889
- _this5 = _super5.call(this);
11890
- _this5._properties = {
11891
- 'dataSource': null,
11892
- 'orientation': 'vertical'
11893
- };
11894
- return _this5;
11895
- }
11824
+ set orientation(value) {
11825
+ this._properties['orientation'] = value;
11826
+ }
11896
11827
 
11897
- _createClass(SplitLayout, [{
11898
- key: "orientation",
11899
- get: function get() {
11900
- return this._properties['orientation'];
11901
- },
11902
- set: function set(value) {
11903
- this._properties['orientation'] = value;
11828
+ get dataSource() {
11829
+ return this._properties['dataSource'];
11904
11830
  }
11905
- }, {
11906
- key: "dataSource",
11907
- get: function get() {
11908
- return this._properties['dataSource'];
11909
- },
11910
- set: function set(value) {
11911
- this._properties['dataSource'] = value;
11831
+
11832
+ set dataSource(value) {
11833
+ this._properties['dataSource'] = value;
11912
11834
  }
11913
- }, {
11914
- key: "_dragStart",
11915
- value: function _dragStart(event) {
11916
- event.stopPropagation();
11917
- event.preventDefault();
11835
+
11836
+
11837
+ _dragStart(event) {
11838
+ event.stopPropagation();
11839
+ event.preventDefault();
11918
11840
  }
11919
- }, {
11920
- key: "_leaveHandler",
11921
- value: function _leaveHandler() {
11922
- var that = this;
11923
11841
 
11924
- if (that._resizeDetails) {
11925
- return;
11926
- }
11842
+ _leaveHandler() {
11843
+ var that = this;
11927
11844
 
11928
- that._handleButtonsVisibility(null);
11845
+ if (that._resizeDetails) {
11846
+ return;
11847
+ }
11929
11848
 
11930
- that._hideSplitter();
11849
+ that._handleButtonsVisibility(null);
11850
+ that._hideSplitter();
11931
11851
 
11932
- requestAnimationFrame(function () {// that.classList.remove('outline');
11933
- });
11852
+ requestAnimationFrame(function () {
11853
+ // that.classList.remove('outline');
11854
+ })
11934
11855
  }
11935
- }, {
11936
- key: "_enterHandler",
11937
- value: function _enterHandler() {
11938
- var that = this;
11939
11856
 
11940
- if (that._resizeDetails) {
11941
- return;
11942
- }
11857
+ _enterHandler() {
11858
+ var that = this;
11859
+
11860
+ if (that._resizeDetails) {
11861
+ return;
11862
+ }
11943
11863
 
11944
- that._handleButtonsVisibility(that._selectedItem);
11864
+ that._handleButtonsVisibility(that._selectedItem);
11945
11865
 
11946
- that._updateSplitter();
11866
+ that._updateSplitter();
11947
11867
 
11948
- requestAnimationFrame(function () {
11949
- that.classList.add('outline');
11950
- });
11868
+ requestAnimationFrame(function () {
11869
+ that.classList.add('outline');
11870
+ })
11951
11871
  }
11872
+
11952
11873
  /**
11953
11874
  * Element's HTML template.
11954
11875
  */
11955
-
11956
- }, {
11957
- key: "template",
11958
- value: function template() {
11959
- return '<div class="jqx-container" id="container" role="presentation"><jqx-layout-group data-id="root" id="itemsContainer"></jqx-layout-group><div root-splitter id="splitter" class="jqx-layout-splitter"></div>';
11876
+ template() {
11877
+ return '<div class="jqx-container" id="container" role="presentation"><jqx-layout-group data-id="root" id="itemsContainer"></jqx-layout-group><div root-splitter id="splitter" class="jqx-layout-splitter"></div>';
11960
11878
  }
11879
+
11961
11880
  /**
11962
11881
  * Updates the element when a property is changed.
11963
11882
  * @param {string} propertyName The name of the property.
11964
11883
  * @param {number/string} oldValue The previously entered value. Max, min and value are of type Number. The rest are of type String.
11965
11884
  * @param {number/string} newValue The new entered value. Max, min and value are of type Number. The rest are of type String.
11966
11885
  */
11886
+ propertyChangedHandler(propertyName, oldValue, newValue) {
11887
+ var that = this;
11888
+
11889
+ switch (propertyName) {
11890
+ case 'orientation':
11891
+ if (that.$.itemsContainer) {
11892
+ that.$.itemsContainer.orientation = that.orientation;
11893
+ }
11894
+ break;
11895
+ case 'dataSource':
11896
+ that.dataBind();
11897
+ break;
11898
+ case 'selectedIndex':
11899
+ that._handleItemClick(that.getItem(newValue + ''), true);
11900
+ break;
11901
+ default:
11902
+ super.propertyChangedHandler(propertyName, oldValue, newValue);
11903
+ break;
11904
+ }
11905
+ }
11967
11906
 
11968
- }, {
11969
- key: "propertyChangedHandler",
11970
- value: function propertyChangedHandler(propertyName, oldValue, newValue) {
11971
- var that = this;
11907
+ dataBind() {
11908
+ var that = this;
11972
11909
 
11973
- switch (propertyName) {
11974
- case 'orientation':
11975
- if (that.$.itemsContainer) {
11976
- that.$.itemsContainer.orientation = that.orientation;
11977
- }
11910
+ that.$.itemsContainer.innerHTML = '';
11911
+
11912
+ var template = '';
11913
+ var processDataSource = function (dataSource, isTabLayoutGroup) {
11914
+ for (var i = 0; i < dataSource.length; i++) {
11915
+ var item = dataSource[i];
11916
+
11917
+ var size = item.size;
11918
+ var min = item.min;
11919
+ var modifiers = item.modifiers;
11920
+ var type = item.type;
11921
+ var position = item.position;
11922
+ var orientation = item.orientation ? item.orientation : 'vertical';
11923
+ var id = item.id;
11924
+ var label = item.label;
11925
+
11926
+ var props = '';
11927
+
11928
+ if (id !== undefined) {
11929
+ props += `id="${id}" `
11930
+ }
11931
+
11932
+ if (size !== undefined) {
11933
+ props += `size="${size}" `
11934
+ }
11978
11935
 
11979
- break;
11936
+ if (label !== undefined) {
11937
+ props += `label="${label}" `
11938
+ }
11980
11939
 
11981
- case 'dataSource':
11982
- that.dataBind();
11983
- break;
11984
11940
 
11985
- case 'selectedIndex':
11986
- that._handleItemClick(that.getItem(newValue + ''), true);
11941
+ if (min !== undefined) {
11942
+ props += `min="${min}" `
11943
+ }
11987
11944
 
11988
- break;
11945
+ if (modifiers !== undefined) {
11946
+ props += `modifiers="${modifiers}" `
11947
+ }
11989
11948
 
11990
- default:
11991
- _get(_getPrototypeOf(SplitLayout.prototype), "propertyChangedHandler", this).call(this, propertyName, oldValue, newValue);
11949
+ if (position !== undefined) {
11950
+ props += `position="${position}" `
11951
+ }
11992
11952
 
11993
- break;
11994
- }
11995
- }
11996
- }, {
11997
- key: "dataBind",
11998
- value: function dataBind() {
11999
- var that = this;
12000
- that.$.itemsContainer.innerHTML = '';
12001
- var template = '';
12002
-
12003
- var processDataSource = function processDataSource(dataSource, isTabLayoutGroup) {
12004
- for (var i = 0; i < dataSource.length; i++) {
12005
- var item = dataSource[i];
12006
- var size = item.size;
12007
- var min = item.min;
12008
- var modifiers = item.modifiers;
12009
- var type = item.type;
12010
- var position = item.position;
12011
- var orientation = item.orientation ? item.orientation : 'vertical';
12012
- var id = item.id;
12013
- var label = item.label;
12014
- var props = '';
12015
-
12016
- if (id !== undefined) {
12017
- props += "id=\"".concat(id, "\" ");
12018
- }
12019
-
12020
- if (size !== undefined) {
12021
- props += "size=\"".concat(size, "\" ");
12022
- }
12023
-
12024
- if (label !== undefined) {
12025
- props += "label=\"".concat(label, "\" ");
12026
- }
12027
-
12028
- if (min !== undefined) {
12029
- props += "min=\"".concat(min, "\" ");
12030
- }
12031
-
12032
- if (modifiers !== undefined) {
12033
- props += "modifiers=\"".concat(modifiers, "\" ");
12034
- }
12035
-
12036
- if (position !== undefined) {
12037
- props += "position=\"".concat(position, "\" ");
12038
- }
12039
-
12040
- if (item.items) {
12041
- props += "orientation=".concat(orientation, " ");
12042
-
12043
- if (type === 'tabs') {
12044
- template += "<jqx-tab-layout-group ".concat(props, ">");
12045
- processDataSource(item.items, true);
12046
- template += '</jqx-tab-layout-group>';
12047
- } else {
12048
- template += "<jqx-layout-group ".concat(props, ">");
12049
- processDataSource(item.items);
12050
- template += '</jqx-layout-group>';
12051
- }
12052
- } else {
12053
- var content = item.content || '';
12054
-
12055
- if (isTabLayoutGroup) {
12056
- template += "<jqx-tab-layout-item ".concat(props, ">") + content + '</jqx-tab-layout-item>';
12057
- } else {
12058
- if (type === 'tabs') {
12059
- template += "<jqx-tab-layout-group>";
12060
- template += "<jqx-tab-layout-item ".concat(props, ">") + content + '</jqx-tab-layout-item>';
12061
- template += '</jqx-tab-layout-group>';
12062
- } else {
12063
- template += "<jqx-layout-item ".concat(props, ">") + content + '</jqx-layout-item>';
12064
- }
11953
+ if (item.items) {
11954
+ props += `orientation=${orientation} `
11955
+
11956
+ if (type === 'tabs') {
11957
+ template += `<jqx-tab-layout-group ${props}>`;
11958
+ processDataSource(item.items, true);
11959
+ template += '</jqx-tab-layout-group>'
11960
+ }
11961
+ else {
11962
+ template += `<jqx-layout-group ${props}>`;
11963
+ processDataSource(item.items);
11964
+ template += '</jqx-layout-group>'
11965
+ }
11966
+ }
11967
+ else {
11968
+ var content = item.content || '';
11969
+ if (isTabLayoutGroup) {
11970
+ template += `<jqx-tab-layout-item ${props}>` + content + '</jqx-tab-layout-item>';
11971
+ }
11972
+ else {
11973
+ if (type === 'tabs') {
11974
+ template += `<jqx-tab-layout-group>`;
11975
+ template += `<jqx-tab-layout-item ${props}>` + content + '</jqx-tab-layout-item>';
11976
+ template += '</jqx-tab-layout-group>'
11977
+ }
11978
+ else {
11979
+ template += `<jqx-layout-item ${props}>` + content + '</jqx-layout-item>';
11980
+ }
11981
+ }
11982
+ }
12065
11983
  }
12066
- }
12067
11984
  }
12068
- };
12069
11985
 
12070
- processDataSource(that.dataSource);
12071
- that.$.itemsContainer.innerHTML = template;
12072
- that.refresh();
11986
+ processDataSource(that.dataSource);
11987
+ that.$.itemsContainer.innerHTML = template;
11988
+ that.refresh();
12073
11989
  }
11990
+
11991
+
12074
11992
  /**
12075
11993
  * Element's render funciton
12076
11994
  */
11995
+ render() {
11996
+ var that = this;
12077
11997
 
12078
- }, {
12079
- key: "render",
12080
- value: function render() {
12081
- var that = this;
12082
- that.setAttribute('role', 'group');
12083
-
12084
- if (that.selectedIndex) {
12085
- that._handleItemClick(that.getItem(that.selectedIndex + ''), true);
12086
- }
12087
-
12088
- var render = function render() {
12089
- if (!that.dataSource) {
12090
- that.dataSource = that._getDataSource(that._getLayout());
12091
- } else {
12092
- that.dataBind();
11998
+ that.setAttribute('role', 'group');
11999
+
12000
+ if (that.selectedIndex) {
12001
+ that._handleItemClick(that.getItem(that.selectedIndex + ''), true);
12093
12002
  }
12094
12003
 
12095
- that.$.itemsContainer.orientation = that.orientation;
12096
- that.refresh();
12097
12004
 
12098
- that._updateSplitter();
12005
+ var render = (function () {
12006
+ if (!that.dataSource) {
12007
+ that.dataSource = that._getDataSource(that._getLayout());
12008
+ }
12009
+ else {
12010
+ that.dataBind();
12011
+ }
12099
12012
 
12100
- that.isRendered = true;
12101
- that.classList.add('outline');
12013
+ that.$.itemsContainer.orientation = that.orientation;
12102
12014
 
12103
- if (that.ready) {
12104
- that.ready();
12105
- }
12106
- };
12015
+ that.refresh();
12016
+ that._updateSplitter();
12017
+ that.isRendered = true;
12018
+ that.classList.add('outline');
12107
12019
 
12108
- if (document.readyState === 'complete') {
12109
- render();
12110
- } else {
12111
- window.addEventListener('load', function () {
12112
- render();
12113
- });
12114
- }
12020
+ if (that.ready) {
12021
+ that.ready();
12022
+ }
12023
+ })
12024
+
12025
+ if (document.readyState === 'complete') {
12026
+ render();
12027
+ }
12028
+ else {
12029
+ window.addEventListener('load', (function () {
12030
+ render();
12031
+ }));
12032
+ }
12115
12033
  }
12116
- }, {
12117
- key: "connectedCallback",
12118
- value: function connectedCallback() {
12119
- var that = this;
12120
12034
 
12121
- var setup = function setup() {
12122
- var fragment = document.createDocumentFragment();
12035
+ connectedCallback() {
12036
+ var that = this;
12037
+
12038
+ var setup = function () {
12039
+ var fragment = document.createDocumentFragment();
12040
+
12041
+ while (that.childNodes.length) {
12042
+ fragment.appendChild(that.firstChild);
12043
+ }
12044
+
12045
+ that.innerHTML = that.template();
12046
+ that.classList.add('jqx-widget');
12047
+ that.$ = {
12048
+ container: that.querySelector("#container"),
12049
+ itemsContainer: that.querySelector("#itemsContainer"),
12050
+ splitter: that.querySelector("#splitter")
12051
+ };
12052
+
12053
+ delete that.$.container.id;
12054
+ delete that.$.itemsContainer.id;
12055
+ delete that.$.splitter.id;
12056
+
12057
+ that.$.itemsContainer.appendChild(fragment);
12058
+ that.classList.add('jqx-split-layout');
12059
+
12060
+ document.addEventListener('pointerdown', function (event) {
12061
+ that._documentDownHandler(event);
12062
+ });
12063
+
12064
+ document.addEventListener('pointermove', function (event) {
12065
+ that._documentMoveHandler(event);
12066
+ });
12067
+
12068
+ document.addEventListener('pointerup', function (event) {
12069
+ that._documentUpHandler(event);
12070
+ });
12071
+
12072
+ document.addEventListener('selectstart', function (event) {
12073
+ that._documentSelectStartHandler(event);
12074
+ });
12075
+
12076
+ document.addEventListener('keyup', function (event) {
12077
+ that._keyUpHandler(event);
12078
+ });
12079
+
12080
+ that.addEventListener('mouseleave', function (event) {
12081
+ that._leaveHandler(event);
12082
+ });
12083
+
12084
+ that.addEventListener('mouseenter', function (event) {
12085
+ that._enterHandler(event);
12086
+ });
12087
+
12088
+ that.addEventListener('dragStart', function (event) {
12089
+ that._dragStart(event);
12090
+ });
12123
12091
 
12124
- while (that.childNodes.length) {
12125
- fragment.appendChild(that.firstChild);
12092
+ that.render();
12126
12093
  }
12127
12094
 
12128
- that.innerHTML = that.template();
12129
- that.classList.add('jqx-widget');
12130
- that.$ = {
12131
- container: that.querySelector("#container"),
12132
- itemsContainer: that.querySelector("#itemsContainer"),
12133
- splitter: that.querySelector("#splitter")
12134
- };
12135
- delete that.$.container.id;
12136
- delete that.$.itemsContainer.id;
12137
- delete that.$.splitter.id;
12138
- that.$.itemsContainer.appendChild(fragment);
12139
- that.classList.add('jqx-split-layout');
12140
- document.addEventListener('pointerdown', function (event) {
12141
- that._documentDownHandler(event);
12142
- });
12143
- document.addEventListener('pointermove', function (event) {
12144
- that._documentMoveHandler(event);
12145
- });
12146
- document.addEventListener('pointerup', function (event) {
12147
- that._documentUpHandler(event);
12148
- });
12149
- document.addEventListener('selectstart', function (event) {
12150
- that._documentSelectStartHandler(event);
12151
- });
12152
- document.addEventListener('keyup', function (event) {
12153
- that._keyUpHandler(event);
12154
- });
12155
- that.addEventListener('mouseleave', function (event) {
12156
- that._leaveHandler(event);
12157
- });
12158
- that.addEventListener('mouseenter', function (event) {
12159
- that._enterHandler(event);
12160
- });
12161
- that.addEventListener('dragStart', function (event) {
12162
- that._dragStart(event);
12163
- });
12164
- that.render();
12165
- };
12166
-
12167
- if (document.readyState === 'complete') {
12168
- setup();
12169
- } else {
12170
- window.addEventListener('load', function () {
12171
- setup();
12172
- });
12173
- }
12095
+ if (document.readyState === 'complete') {
12096
+ setup();
12097
+ }
12098
+ else {
12099
+ window.addEventListener('load', function () {
12100
+ setup();
12101
+ });
12102
+ }
12174
12103
  }
12104
+
12175
12105
  /**
12176
12106
  * Returns the Splitter item according to the index
12177
12107
  * @param {any} index - string, e.g. '0.1'
12178
12108
  */
12109
+ getItem(index) {
12110
+ var that = this;
12179
12111
 
12180
- }, {
12181
- key: "getItem",
12182
- value: function getItem(index) {
12183
- var that = this;
12112
+ if (index === undefined || index === null) {
12113
+ return;
12114
+ }
12184
12115
 
12185
- if (index === undefined || index === null) {
12186
- return;
12187
- }
12116
+ index = (index + '').split('.');
12188
12117
 
12189
- index = (index + '').split('.');
12118
+ var items = that._getDataSource(that._getLayout()),
12119
+ item;
12190
12120
 
12191
- var items = that._getDataSource(that._getLayout()),
12192
- item;
12121
+ for (var i = 0; i < index.length; i++) {
12122
+ item = items[index[i]];
12193
12123
 
12194
- for (var i = 0; i < index.length; i++) {
12195
- item = items[index[i]];
12124
+ if (!item) {
12125
+ break;
12126
+ }
12196
12127
 
12197
- if (!item) {
12198
- break;
12128
+ items = item.items;
12199
12129
  }
12200
12130
 
12201
- items = item.items;
12202
- }
12203
-
12204
- return item;
12131
+ return item;
12205
12132
  }
12133
+
12134
+
12206
12135
  /**
12207
12136
  * Document down handler
12208
12137
  * @param {any} event
12209
12138
  */
12139
+ _documentDownHandler(event) {
12140
+ var that = this,
12141
+ target = event.target;
12210
12142
 
12211
- }, {
12212
- key: "_documentDownHandler",
12213
- value: function _documentDownHandler(event) {
12214
- var that = this,
12215
- target = event.target;
12216
-
12217
- if (that.contains(target) && target.closest) {
12218
- that._target = target;
12219
-
12220
- that._updateSplitter();
12221
- }
12143
+ if (that.contains(target) && target.closest) {
12144
+ that._target = target;
12145
+ that._updateSplitter();
12146
+ }
12222
12147
  }
12148
+
12223
12149
  /**
12224
12150
  * Document move handler
12225
12151
  * @param {any} event
12226
12152
  */
12153
+ _documentMoveHandler(event) {
12154
+ var that = this,
12155
+ target = event.target,
12156
+ menu = that._contextMenu;
12227
12157
 
12228
- }, {
12229
- key: "_documentMoveHandler",
12230
- value: function _documentMoveHandler(event) {
12231
- var that = this,
12232
- target = event.target,
12233
- menu = that._contextMenu;
12158
+ if (menu && !JQX.Utilities.Core.isMobile) {
12159
+ if (menu.querySelector('.jqx-layout-context-menu-item[hover]')) {
12160
+ var items = menu.children;
12234
12161
 
12235
- if (menu && !JQX.Utilities.Core.isMobile) {
12236
- if (menu.querySelector('.jqx-layout-context-menu-item[hover]')) {
12237
- var items = menu.children;
12238
-
12239
- for (var i = 0; i < items.length; i++) {
12240
- items[i].removeAttribute('hover');
12241
- }
12242
- }
12162
+ for (var i = 0; i < items.length; i++) {
12163
+ items[i].removeAttribute('hover');
12164
+ }
12165
+ }
12243
12166
 
12244
- if (menu.contains(target) && target.closest && target.closest('.jqx-layout-context-menu-item')) {
12245
- target.setAttribute('hover', '');
12167
+ if (menu.contains(target) && target.closest && target.closest('.jqx-layout-context-menu-item')) {
12168
+ target.setAttribute('hover', '');
12169
+ }
12246
12170
  }
12247
- }
12248
12171
 
12249
- if (that._dragDetails) {
12250
- var offsetX = Math.abs(that._dragDetails.pageX - event.pageX);
12251
- var offsetY = Math.abs(that._dragDetails.pageY - event.pageY);
12172
+ if (that._dragDetails) {
12173
+ var offsetX = Math.abs(that._dragDetails.pageX - event.pageX);
12174
+ var offsetY = Math.abs(that._dragDetails.pageY - event.pageY);
12252
12175
 
12253
- if (offsetY <= 5 && offsetX <= 5) {
12254
- return;
12255
- }
12176
+ if (offsetY <= 5 && offsetX <= 5) {
12177
+ return;
12178
+ }
12256
12179
 
12257
- if (!that._dragDetails.feedback.parentElement) {
12258
- document.body.appendChild(that._dragDetails.feedback);
12259
- document.body.appendChild(that._dragDetails.overlay);
12260
- setTimeout(function () {
12261
- that._dragDetails.feedback.classList.add('dragging');
12262
- }, 100);
12263
- }
12180
+ if (!that._dragDetails.feedback.parentElement) {
12181
+ document.body.appendChild(that._dragDetails.feedback);
12182
+ document.body.appendChild(that._dragDetails.overlay)
12183
+ setTimeout(function () {
12184
+ that._dragDetails.feedback.classList.add('dragging');
12185
+ }, 100);
12186
+ }
12264
12187
 
12265
- that._dragDetails.dragging = true;
12266
- that._dragDetails.feedback.style.left = event.pageX - that._dragDetails.feedback.offsetWidth / 2 - 5 + 'px';
12267
- that._dragDetails.feedback.style.top = event.pageY - that._dragDetails.feedback.offsetHeight / 2 - 5 + 'px';
12268
- var elements = document.elementsFromPoint(event.pageX, event.pageY);
12269
- var group = null;
12270
- var isTabStrip = false;
12188
+ that._dragDetails.dragging = true;
12271
12189
 
12272
- for (var i = 0; i < elements.length; i++) {
12273
- var element = elements[i];
12190
+ that._dragDetails.feedback.style.left = event.pageX - that._dragDetails.feedback.offsetWidth / 2 - 5 + 'px';
12191
+ that._dragDetails.feedback.style.top = event.pageY - that._dragDetails.feedback.offsetHeight / 2 - 5 + 'px';
12274
12192
 
12275
- if (that._dragDetails.feedback.contains(element)) {
12276
- continue;
12277
- }
12193
+ var elements = document.elementsFromPoint(event.pageX, event.pageY);
12194
+ var group = null;
12195
+ var isTabStrip = false;
12278
12196
 
12279
- if (element.classList.contains('jqx-layout-tab-strip')) {
12280
- if (that._dragDetails.element.contains(element)) {
12281
- continue;
12282
- }
12197
+ for (var i = 0; i < elements.length; i++) {
12198
+ var element = elements[i];
12283
12199
 
12284
- group = element.parentElement;
12285
- isTabStrip = true;
12286
- break;
12287
- }
12288
-
12289
- if ((element.parentElement === that._dragDetails.parent || element === that._dragDetails.parent) && that._dragDetails.layoutGroup.items.length === 1) {
12290
- continue;
12291
- }
12292
-
12293
- if (that._dragDetails.element.contains(element)) {
12294
- continue;
12295
- }
12296
-
12297
- if (element instanceof TabLayoutItem) {
12298
- group = element.parentElement;
12299
- break;
12300
- } else if (element instanceof TabLayoutGroup) {
12301
- group = element;
12302
- break;
12303
- }
12304
- }
12200
+ if (that._dragDetails.feedback.contains(element)) {
12201
+ continue;
12202
+ }
12305
12203
 
12306
- var getPosition = function getPosition(group, size) {
12307
- var offset = that.offset(group);
12308
- var position = null;
12309
- var edgeSize = 50;
12310
- var height = size;
12311
- var width = size;
12312
-
12313
- if (!size) {
12314
- width = group.offsetWidth / 3;
12315
- height = group.offsetHeight / 3;
12316
- } else {
12317
- edgeSize = 0;
12318
- }
12319
-
12320
- var positionRects = [{
12321
- left: offset.left,
12322
- top: offset.top,
12323
- right: offset.left + edgeSize,
12324
- bottom: offset.top + edgeSize,
12325
- position: 'top'
12326
- }, {
12327
- left: offset.left + edgeSize,
12328
- top: offset.top,
12329
- right: offset.left + group.offsetWidth - edgeSize,
12330
- bottom: offset.top + height - edgeSize,
12331
- position: 'top'
12332
- }, {
12333
- left: offset.left + group.offsetWidth - edgeSize,
12334
- top: offset.top,
12335
- right: offset.left + group.offsetWidth,
12336
- bottom: offset.top + edgeSize,
12337
- position: 'top'
12338
- }, {
12339
- left: offset.left,
12340
- top: offset.top + edgeSize,
12341
- right: offset.left + width,
12342
- bottom: offset.top + group.offsetHeight - edgeSize,
12343
- position: 'left'
12344
- }, {
12345
- left: offset.left + group.offsetWidth - width,
12346
- top: offset.top + edgeSize,
12347
- right: offset.left + group.offsetWidth,
12348
- bottom: offset.top + group.offsetHeight - edgeSize,
12349
- position: 'right'
12350
- }, {
12351
- left: offset.left,
12352
- top: offset.top + group.offsetHeight - edgeSize,
12353
- right: offset.left + edgeSize,
12354
- bottom: offset.top + group.offsetHeight,
12355
- position: 'bottom'
12356
- }, {
12357
- left: offset.left + edgeSize,
12358
- top: offset.top + group.offsetHeight - height + edgeSize,
12359
- right: offset.left + group.offsetWidth - edgeSize,
12360
- bottom: offset.top + group.offsetHeight,
12361
- position: 'bottom'
12362
- }, {
12363
- left: offset.left + group.offsetWidth - edgeSize,
12364
- top: offset.top + group.offsetHeight - edgeSize,
12365
- right: offset.left + group.offsetWidth,
12366
- bottom: offset.top + group.offsetHeight,
12367
- position: 'bottom'
12368
- }];
12369
-
12370
- for (var i = 0; i < positionRects.length; i++) {
12371
- var rect = positionRects[i];
12372
-
12373
- if (rect.left <= event.pageX && event.pageX <= rect.right) {
12374
- if (rect.top <= event.pageY && event.pageY <= rect.bottom) {
12375
- position = rect.position;
12376
- break;
12377
- }
12378
- }
12379
- }
12380
-
12381
- return position;
12382
- };
12383
-
12384
- var rootGroup = that.querySelector('jqx-layout-group');
12385
- var position = getPosition(rootGroup, 10);
12386
- var currentGroup = null;
12387
-
12388
- if (!position) {
12389
- if (!group) {
12390
- that._handleDropArea(null);
12391
- } else {
12392
- if (isTabStrip) {
12393
- if (group !== that._dragDetails.parent) {
12394
- position = 'center';
12395
- currentGroup = group;
12396
- }
12397
- } else {
12398
- position = getPosition(group) || 'center';
12399
- currentGroup = group;
12400
- }
12401
- }
12402
- } else {
12403
- currentGroup = rootGroup;
12404
- }
12204
+ if (element.classList.contains('jqx-layout-tab-strip')) {
12205
+ if (that._dragDetails.element.contains(element)) {
12206
+ continue;
12207
+ }
12405
12208
 
12406
- if (currentGroup) {
12407
- that._dragDetails.current = currentGroup;
12408
- that._dragDetails.position = position;
12209
+ group = element.parentElement;
12210
+ isTabStrip = true;
12211
+ break;
12212
+ }
12409
12213
 
12410
- that._handleDropArea(currentGroup, position);
12411
- }
12412
- }
12413
-
12414
- if (that._resizeDetails) {
12415
- var offsetX = Math.abs(that._resizeDetails.clientX - event.clientX);
12416
- var offsetY = Math.abs(that._resizeDetails.clientY - event.clientY);
12417
- var splitter = that._resizeDetails.splitter;
12418
- var item = that._resizeDetails.item;
12419
- var itemRect = that._resizeDetails.itemRect;
12420
- var previousItemRect = that._resizeDetails.previousItemRect;
12421
- var previousItem = that._resizeDetails.previousItem;
12422
- var nextItemRect = that._resizeDetails.nextItemRect;
12423
- var nextItem = that._resizeDetails.nextItem;
12424
- var minSize = parseInt(item.getAttribute('min'));
12425
-
12426
- var resetSplitter = function resetSplitter(splitter) {
12427
- if (splitter.classList.contains('jqx-visibility-hidden')) {
12428
- return;
12429
- }
12214
+ if ((element.parentElement === that._dragDetails.parent || element === that._dragDetails.parent) && that._dragDetails.layoutGroup.items.length === 1) {
12215
+ continue;
12216
+ }
12430
12217
 
12431
- splitter.style.right = '';
12432
- splitter.style.top = '';
12433
- splitter.style.left = '';
12434
- splitter.style.bottom = '';
12435
- };
12218
+ if (that._dragDetails.element.contains(element)) {
12219
+ continue;
12220
+ }
12436
12221
 
12437
- resetSplitter(splitter);
12438
- resetSplitter(that.$.splitter);
12439
- splitter.classList.remove('error');
12440
- splitter.classList.add('active');
12222
+ if (element instanceof TabLayoutItem) {
12223
+ group = element.parentElement;
12224
+ break;
12225
+ }
12226
+ else if (element instanceof TabLayoutGroup) {
12227
+ group = element;
12228
+ break;
12229
+ }
12230
+ }
12441
12231
 
12442
- if (!that._resizeDetails.dragging) {
12443
- if (splitter.classList.contains('horizontal') && offsetY <= 5) {
12444
- return;
12445
- } else if (splitter.classList.contains('vertical') && offsetX <= 5) {
12446
- return;
12447
- }
12232
+ var getPosition = function (group, size) {
12233
+ var offset = that.offset(group);
12234
+ var position = null;
12235
+ var edgeSize = 50;
12448
12236
 
12449
- that._resizeDetails.dragging = true;
12450
- }
12237
+ var height = size;
12238
+ var width = size;
12239
+
12240
+ if (!size) {
12241
+ width = group.offsetWidth / 3;
12242
+ height = group.offsetHeight / 3;
12243
+ }
12244
+ else {
12245
+ edgeSize = 0;
12246
+ }
12247
+
12248
+ var positionRects = [
12249
+ {
12250
+ left: offset.left,
12251
+ top: offset.top,
12252
+ right: offset.left + edgeSize,
12253
+ bottom: offset.top + edgeSize,
12254
+ position: 'top'
12255
+ },
12256
+ {
12257
+ left: offset.left + edgeSize,
12258
+ top: offset.top,
12259
+ right: offset.left + group.offsetWidth - edgeSize,
12260
+ bottom: offset.top + height - edgeSize,
12261
+ position: 'top'
12262
+ },
12263
+ {
12264
+ left: offset.left + group.offsetWidth - edgeSize,
12265
+ top: offset.top,
12266
+ right: offset.left + group.offsetWidth,
12267
+ bottom: offset.top + edgeSize,
12268
+ position: 'top'
12269
+ },
12270
+ {
12271
+ left: offset.left,
12272
+ top: offset.top + edgeSize,
12273
+ right: offset.left + width,
12274
+ bottom: offset.top + group.offsetHeight - edgeSize,
12275
+ position: 'left'
12276
+ },
12277
+ {
12278
+ left: offset.left + group.offsetWidth - width,
12279
+ top: offset.top + edgeSize,
12280
+ right: offset.left + group.offsetWidth,
12281
+ bottom: offset.top + group.offsetHeight - edgeSize,
12282
+ position: 'right'
12283
+ },
12284
+ {
12285
+ left: offset.left,
12286
+ top: offset.top + group.offsetHeight - edgeSize,
12287
+ right: offset.left + edgeSize,
12288
+ bottom: offset.top + group.offsetHeight,
12289
+ position: 'bottom'
12290
+ },
12291
+ {
12292
+ left: offset.left + edgeSize,
12293
+ top: offset.top + group.offsetHeight - height + edgeSize,
12294
+ right: offset.left + group.offsetWidth - edgeSize,
12295
+ bottom: offset.top + group.offsetHeight,
12296
+ position: 'bottom'
12297
+ },
12298
+ {
12299
+ left: offset.left + group.offsetWidth - edgeSize,
12300
+ top: offset.top + group.offsetHeight - edgeSize,
12301
+ right: offset.left + group.offsetWidth,
12302
+ bottom: offset.top + group.offsetHeight,
12303
+ position: 'bottom'
12304
+ },
12305
+ ]
12306
+
12307
+ for (var i = 0; i < positionRects.length; i++) {
12308
+ var rect = positionRects[i];
12309
+
12310
+ if (rect.left <= event.pageX && event.pageX <= rect.right) {
12311
+ if (rect.top <= event.pageY && event.pageY <= rect.bottom) {
12312
+ position = rect.position;
12313
+ break;
12314
+ }
12315
+ }
12316
+ }
12317
+
12318
+ return position;
12319
+ }
12320
+
12321
+ var rootGroup = that.querySelector('jqx-layout-group');
12451
12322
 
12452
- var normalized = {
12453
- 'clientPos': 'clientX',
12454
- 'pos': 'x',
12455
- 'size': 'width',
12456
- 'near': 'left',
12457
- 'far': 'right',
12458
- 'offsetSize': 'offsetWidth'
12459
- };
12460
-
12461
- if (splitter.classList.contains('horizontal')) {
12462
- normalized = {
12463
- 'clientPos': 'clientY',
12464
- 'pos': 'y',
12465
- 'size': 'height',
12466
- 'near': 'top',
12467
- 'far': 'bottom',
12468
- 'offsetSize': 'offsetHeight'
12469
- };
12323
+ var position = getPosition(rootGroup, 10);
12324
+ var currentGroup = null;
12325
+
12326
+ if (!position) {
12327
+ if (!group) {
12328
+ that._handleDropArea(null);
12329
+ }
12330
+ else {
12331
+ if (isTabStrip) {
12332
+ if (group !== that._dragDetails.parent) {
12333
+ position = 'center';
12334
+ currentGroup = group;
12335
+ }
12336
+ }
12337
+ else {
12338
+ position = getPosition(group) || 'center';
12339
+ currentGroup = group
12340
+ }
12341
+ }
12342
+ }
12343
+ else {
12344
+ currentGroup = rootGroup;
12345
+ }
12346
+
12347
+ if (currentGroup) {
12348
+ that._dragDetails.current = currentGroup;
12349
+ that._dragDetails.position = position;
12350
+ that._handleDropArea(currentGroup, position);
12351
+ }
12470
12352
  }
12471
12353
 
12472
- var updateSplitter = function updateSplitter(splitter) {
12473
- var offset = that.offset(splitter);
12474
- var elementOffset = that.offset(that);
12475
- elementOffset.left++;
12476
- elementOffset.top++;
12477
- that.$.splitter.style.width = splitter.offsetWidth + 'px';
12478
- that.$.splitter.style.height = splitter.offsetHeight + 'px';
12479
- that.$.splitter.className = splitter.className;
12480
- that.$.splitter.style.left = offset.left - elementOffset.left + 'px';
12481
- that.$.splitter.style.top = offset.top - elementOffset.top + 'px';
12482
- splitter.setAttribute('drag', '');
12483
- that.$.splitter.setAttribute('drag', '');
12484
- };
12485
-
12486
- if (splitter.classList.contains('last')) {
12487
- var newPosition = event[normalized.clientPos] - that._resizeDetails.splitterRect[normalized.pos];
12488
- var maxPosition = itemRect[normalized.size] - minSize;
12489
-
12490
- if (newPosition > maxPosition) {
12491
- newPosition = maxPosition;
12492
- splitter.classList.add('error');
12493
- }
12494
-
12495
- if (previousItemRect) {
12496
- var minSize = parseInt(previousItem.getAttribute('min'));
12497
- var minPosition = previousItemRect[normalized.size] - minSize;
12498
-
12499
- if (newPosition < -minPosition) {
12500
- newPosition = -minPosition;
12501
- splitter.classList.add('error');
12354
+ if (that._resizeDetails) {
12355
+ var offsetX = Math.abs(that._resizeDetails.clientX - event.clientX);
12356
+ var offsetY = Math.abs(that._resizeDetails.clientY - event.clientY);
12357
+
12358
+ var splitter = that._resizeDetails.splitter;
12359
+ var item = that._resizeDetails.item;
12360
+ var itemRect = that._resizeDetails.itemRect;
12361
+ var previousItemRect = that._resizeDetails.previousItemRect;
12362
+ var previousItem = that._resizeDetails.previousItem;
12363
+ var nextItemRect = that._resizeDetails.nextItemRect;
12364
+ var nextItem = that._resizeDetails.nextItem;
12365
+ var minSize = parseInt(item.getAttribute('min'));
12366
+
12367
+ var resetSplitter = function (splitter) {
12368
+ if (splitter.classList.contains('jqx-visibility-hidden')) {
12369
+ return;
12370
+ }
12371
+
12372
+ splitter.style.right = '';
12373
+ splitter.style.top = '';
12374
+ splitter.style.left = '';
12375
+ splitter.style.bottom = '';
12376
+ }
12377
+
12378
+ resetSplitter(splitter);
12379
+ resetSplitter(that.$.splitter);
12380
+
12381
+ splitter.classList.remove('error');
12382
+ splitter.classList.add('active');
12383
+
12384
+ if (!that._resizeDetails.dragging) {
12385
+ if (splitter.classList.contains('horizontal') && offsetY <= 5) {
12386
+ return;
12387
+ }
12388
+ else if (splitter.classList.contains('vertical') && offsetX <= 5) {
12389
+ return;
12390
+ }
12391
+
12392
+ that._resizeDetails.dragging = true;
12502
12393
  }
12503
- }
12504
-
12505
- splitter.style[normalized.near] = newPosition + 'px';
12506
- var newSize = item[normalized.offsetSize] - newPosition;
12507
- item.setAttribute('size', newSize);
12508
-
12509
- if (previousItem) {
12510
- var previousItemSize = item[normalized.offsetSize] + previousItem[normalized.offsetSize] - newSize;
12511
- previousItem.setAttribute('size', previousItemSize);
12512
- }
12513
- } else {
12514
- var newPosition = -event[normalized.clientPos] + that._resizeDetails.splitterRect[normalized.pos];
12515
- var minPosition = itemRect[normalized.size] - minSize;
12516
-
12517
- if (newPosition > minPosition) {
12518
- newPosition = minPosition;
12519
- splitter.classList.add('error');
12520
- }
12521
-
12522
- if (nextItemRect) {
12523
- var minSize = parseInt(nextItem.getAttribute('min'));
12524
- var maxPosition = -nextItemRect[normalized.size] + minSize;
12525
-
12526
- if (newPosition < maxPosition) {
12527
- newPosition = maxPosition;
12528
- splitter.classList.add('error');
12394
+
12395
+ var normalized = {
12396
+ 'clientPos': 'clientX',
12397
+ 'pos': 'x',
12398
+ 'size': 'width',
12399
+ 'near': 'left',
12400
+ 'far': 'right',
12401
+ 'offsetSize': 'offsetWidth'
12529
12402
  }
12530
- }
12531
12403
 
12532
- splitter.style[normalized.far] = newPosition + 'px';
12533
- var newSize = item[normalized.offsetSize] - newPosition;
12534
- item.setAttribute('size', newSize);
12404
+ if (splitter.classList.contains('horizontal')) {
12405
+ normalized = {
12406
+ 'clientPos': 'clientY',
12407
+ 'pos': 'y',
12408
+ 'size': 'height',
12409
+ 'near': 'top',
12410
+ 'far': 'bottom',
12411
+ 'offsetSize': 'offsetHeight'
12412
+ }
12413
+ }
12535
12414
 
12536
- if (nextItem) {
12537
- var nextItemSize = nextItem[normalized.offsetSize] + item[normalized.offsetSize] - newSize;
12538
- nextItem.setAttribute('size', nextItemSize);
12539
- }
12540
- }
12415
+ var updateSplitter = function (splitter) {
12416
+ var offset = that.offset(splitter);
12417
+ var elementOffset = that.offset(that);
12541
12418
 
12542
- updateSplitter(splitter);
12543
- }
12544
- }
12545
- }, {
12546
- key: "_offsetTop",
12547
- value: function _offsetTop(element) {
12548
- var that = this;
12419
+ elementOffset.left++;
12420
+ elementOffset.top++;
12549
12421
 
12550
- if (!element) {
12551
- return 0;
12552
- }
12422
+ that.$.splitter.style.width = splitter.offsetWidth + 'px';
12423
+ that.$.splitter.style.height = splitter.offsetHeight + 'px';
12553
12424
 
12554
- return element.offsetTop + that._offsetTop(element.offsetParent);
12555
- }
12556
- }, {
12557
- key: "_offsetLeft",
12558
- value: function _offsetLeft(element) {
12559
- var that = this;
12425
+ that.$.splitter.className = splitter.className;
12560
12426
 
12561
- if (!element) {
12562
- return 0;
12563
- }
12427
+ that.$.splitter.style.left = offset.left - elementOffset.left + 'px';
12428
+ that.$.splitter.style.top = offset.top - elementOffset.top + 'px';
12564
12429
 
12565
- return element.offsetLeft + that._offsetLeft(element.offsetParent);
12566
- }
12567
- }, {
12568
- key: "offset",
12569
- value: function offset(element) {
12570
- return {
12571
- left: this._offsetLeft(element),
12572
- top: this._offsetTop(element)
12573
- };
12574
- }
12575
- }, {
12576
- key: "_keyUpHandler",
12577
- value: function _keyUpHandler(event) {
12578
- var that = this;
12430
+ splitter.setAttribute('drag', '');
12431
+ that.$.splitter.setAttribute('drag', '');
12432
+ }
12579
12433
 
12580
- if (event.key === 'Escape') {
12581
- if (that._dragDetails) {
12582
- that._dragDetails.feedback.remove();
12434
+ if (splitter.classList.contains('last')) {
12435
+ var newPosition = event[normalized.clientPos] - that._resizeDetails.splitterRect[normalized.pos];
12436
+ var maxPosition = itemRect[normalized.size] - minSize;
12583
12437
 
12584
- that._dragDetails.overlay.remove();
12438
+ if (newPosition > maxPosition) {
12439
+ newPosition = maxPosition;
12440
+ splitter.classList.add('error');
12441
+ }
12585
12442
 
12586
- that._dragDetails = null;
12443
+ if (previousItemRect) {
12444
+ var minSize = parseInt(previousItem.getAttribute('min'));
12587
12445
 
12588
- that._handleDropArea(null);
12589
- }
12446
+ var minPosition = previousItemRect[normalized.size] - minSize;
12447
+ if (newPosition < -minPosition) {
12448
+ newPosition = -minPosition;
12449
+ splitter.classList.add('error');
12450
+ }
12451
+ }
12590
12452
 
12591
- if (that._resizeDetails) {
12592
- var drag = that._resizeDetails;
12593
- drag.splitter.classList.contains('last') ? drag.previousItem.size = drag.previousItemSize : drag.nextItem.size = drag.nextItem.previousItemSize;
12594
- drag.item.size = drag.itemSize;
12595
- that.refresh();
12453
+ splitter.style[normalized.near] = newPosition + 'px';
12596
12454
 
12597
- that._handleItemClick(drag.item);
12455
+ var newSize = item[normalized.offsetSize] - newPosition;
12598
12456
 
12599
- that._resizeDetails = null;
12600
- return;
12601
- }
12602
- } else if (event.key === 'Delete') {
12603
- if (that._selectedItem) {
12604
- that._removeLayoutItem(that._selectedItem);
12457
+ item.setAttribute('size', newSize);
12458
+
12459
+ if (previousItem) {
12460
+ var previousItemSize = item[normalized.offsetSize] + previousItem[normalized.offsetSize] - newSize;
12461
+
12462
+ previousItem.setAttribute('size', previousItemSize);
12463
+ }
12464
+ }
12465
+ else {
12466
+ var newPosition = -event[normalized.clientPos] + that._resizeDetails.splitterRect[normalized.pos];
12467
+ var minPosition = itemRect[normalized.size] - minSize;
12468
+
12469
+ if (newPosition > minPosition) {
12470
+ newPosition = minPosition;
12471
+ splitter.classList.add('error');
12472
+ }
12473
+
12474
+ if (nextItemRect) {
12475
+ var minSize = parseInt(nextItem.getAttribute('min'));
12476
+
12477
+ var maxPosition = -nextItemRect[normalized.size] + minSize;
12478
+ if (newPosition < maxPosition) {
12479
+ newPosition = maxPosition;
12480
+ splitter.classList.add('error');
12481
+ }
12482
+ }
12483
+
12484
+
12485
+ splitter.style[normalized.far] = newPosition + 'px';
12486
+
12487
+ var newSize = item[normalized.offsetSize] - newPosition;
12488
+
12489
+ item.setAttribute('size', newSize);
12490
+
12491
+ if (nextItem) {
12492
+ var nextItemSize = nextItem[normalized.offsetSize] + item[normalized.offsetSize] - newSize;
12493
+
12494
+ nextItem.setAttribute('size', nextItemSize);
12495
+ }
12496
+ }
12497
+
12498
+ updateSplitter(splitter);
12605
12499
  }
12606
- }
12607
12500
  }
12608
- }, {
12609
- key: "_endDrag",
12610
- value: function _endDrag() {
12611
- var that = this;
12612
12501
 
12613
- that._handleDropArea(null);
12502
+ _offsetTop(element) {
12503
+ var that = this;
12614
12504
 
12615
- if (!that._dragDetails.dragging) {
12616
- that._dragDetails = null;
12617
- return;
12618
- }
12505
+ if (!element) {
12506
+ return 0;
12507
+ }
12619
12508
 
12620
- var group = that._dragDetails.current;
12621
- var item = that._dragDetails.element;
12622
- var position = that._dragDetails.position;
12509
+ return element.offsetTop + that._offsetTop(element.offsetParent);
12510
+ }
12623
12511
 
12624
- that._handleDropArea(null);
12512
+ _offsetLeft(element) {
12513
+ var that = this;
12625
12514
 
12626
- if (group) {
12627
- that._addTabLayoutItem(group, position, item);
12515
+ if (!element) {
12516
+ return 0;
12517
+ }
12628
12518
 
12629
- that._removeLayoutItem(item);
12519
+ return element.offsetLeft + that._offsetLeft(element.offsetParent);
12520
+ }
12521
+
12522
+ offset(element) {
12523
+ return { left: this._offsetLeft(element), top: this._offsetTop(element) }
12524
+ }
12630
12525
 
12631
- if (group.parentElement && Array.from(group.parentElement.parentElement.children).filter(function (value) {
12632
- if (value.classList.contains('jqx-layout-group')) {
12633
- return true;
12634
- }
12526
+ _keyUpHandler(event) {
12527
+ var that = this;
12528
+ if (event.key === 'Escape') {
12529
+ if (that._dragDetails) {
12530
+ that._dragDetails.feedback.remove();
12531
+ that._dragDetails.overlay.remove();
12532
+ that._dragDetails = null;
12533
+ that._handleDropArea(null);
12534
+ }
12635
12535
 
12636
- return false;
12637
- }).length === 1) {
12638
- var parent = group.parentElement;
12639
- var parentGroup = parent.parentElement;
12640
- var ownerGroup = parentGroup.parentElement;
12536
+ if (that._resizeDetails) {
12537
+ var drag = that._resizeDetails;
12641
12538
 
12642
- if (!(parentGroup.getAttribute('data-id') === 'root' || ownerGroup.getAttribute('data-id') === 'root') && ownerGroup !== that) {
12643
- var index = Array.from(ownerGroup.children).indexOf(parent.parentElement);
12539
+ drag.splitter.classList.contains('last') ? drag.previousItem.size = drag.previousItemSize : drag.nextItem.size = drag.nextItem.previousItemSize;
12540
+ drag.item.size = drag.itemSize;
12644
12541
 
12645
- if (index >= 0) {
12646
- ownerGroup.insertBefore(parent, ownerGroup.children[index]);
12647
- } else {
12648
- ownerGroup.appendChild(parent);
12542
+ that.refresh();
12543
+ that._handleItemClick(drag.item);
12544
+ that._resizeDetails = null;
12545
+ return;
12546
+ }
12547
+ }
12548
+ else if (event.key === 'Delete') {
12549
+ if (that._selectedItem) {
12550
+ that._removeLayoutItem(that._selectedItem);
12649
12551
  }
12552
+ }
12553
+ }
12554
+
12555
+ _endDrag() {
12556
+ var that = this;
12650
12557
 
12651
- parentGroup.remove();
12652
- }
12558
+ that._handleDropArea(null);
12559
+
12560
+ if (!that._dragDetails.dragging) {
12561
+ that._dragDetails = null;
12562
+ return;
12653
12563
  }
12654
12564
 
12655
- that.refresh();
12565
+ var group = that._dragDetails.current;
12566
+ var item = that._dragDetails.element;
12567
+ var position = that._dragDetails.position;
12656
12568
 
12657
- that._updateSplitter();
12569
+ that._handleDropArea(null);
12658
12570
 
12659
- requestAnimationFrame(function () {
12660
- that.classList.add('outline');
12661
- that.querySelectorAll('.jqx-element').forEach(function (control) {
12662
- that.dispatchEvent(new CustomEvent('resize'));
12663
- });
12664
- });
12665
- }
12571
+ if (group) {
12572
+ that._addTabLayoutItem(group, position, item);
12573
+ that._removeLayoutItem(item);
12574
+
12575
+ if (group.parentElement && Array.from(group.parentElement.parentElement.children).filter(function (value) {
12576
+ if (value.classList.contains('jqx-layout-group')) {
12577
+ return true;
12578
+ }
12579
+
12580
+ return false;
12581
+ }).length === 1) {
12582
+ var parent = group.parentElement;
12583
+ var parentGroup = parent.parentElement;
12584
+ var ownerGroup = parentGroup.parentElement;
12585
+
12586
+ if (!(parentGroup.getAttribute('data-id') === 'root' || ownerGroup.getAttribute('data-id') === 'root') && ownerGroup !== that) {
12587
+ var index = Array.from(ownerGroup.children).indexOf(parent.parentElement);
12666
12588
 
12667
- that.dispatchEvent(new CustomEvent('stateChange', {
12668
- type: 'insert',
12669
- item: item
12670
- }));
12589
+ if (index >= 0) {
12590
+ ownerGroup.insertBefore(parent, ownerGroup.children[index])
12591
+ }
12592
+ else {
12593
+ ownerGroup.appendChild(parent);
12594
+ }
12671
12595
 
12672
- that._dragDetails.feedback.remove();
12596
+ parentGroup.remove();
12597
+ }
12598
+ }
12599
+
12600
+ that.refresh();
12601
+ that._updateSplitter();
12602
+
12603
+ requestAnimationFrame(function () {
12604
+ that.classList.add('outline');
12605
+ that.querySelectorAll('.jqx-element').forEach(function (control) {
12606
+ that.dispatchEvent(new CustomEvent('resize'));
12607
+
12608
+ });
12609
+ })
12610
+ }
12673
12611
 
12674
- that._dragDetails.overlay.remove();
12612
+ that.dispatchEvent(new CustomEvent('stateChange', { type: 'insert', item: item }));
12675
12613
 
12676
- that._dragDetails = null;
12614
+ that._dragDetails.feedback.remove();
12615
+ that._dragDetails.overlay.remove();
12616
+ that._dragDetails = null;
12677
12617
  }
12678
12618
  /**
12679
12619
  * Document up handler
12680
12620
  * @param {any} event
12681
12621
  */
12622
+ _documentUpHandler(event) {
12623
+ var that = this,
12624
+ isMobile = JQX.Utilities.Core.isMobile,
12625
+ target = isMobile ? document.elementFromPoint(event.pageX - window.pageXOffset, event.pageY - window.pageYOffset) : event.target;
12682
12626
 
12683
- }, {
12684
- key: "_documentUpHandler",
12685
- value: function _documentUpHandler(event) {
12686
- var that = this,
12687
- isMobile = JQX.Utilities.Core.isMobile,
12688
- target = isMobile ? document.elementFromPoint(event.pageX - window.pageXOffset, event.pageY - window.pageYOffset) : event.target;
12689
-
12690
- if (event.button === 2) {
12691
- return;
12692
- }
12693
-
12694
- if (that._dragDetails) {
12695
- that._endDrag(event);
12696
- }
12697
-
12698
- if (that._resizeDetails) {
12699
- var drag = that._resizeDetails;
12700
-
12701
- if (drag.item) {
12702
- drag.item.style.overflow = '';
12703
- }
12704
12627
 
12705
- if (drag.previousItem) {
12706
- drag.previousItem.style.overflow = '';
12628
+ if (event.button === 2) {
12629
+ return;
12707
12630
  }
12708
12631
 
12709
- if (drag.nextItem) {
12710
- drag.nextItem.style.overflow = '';
12632
+ if (that._dragDetails) {
12633
+ that._endDrag(event);
12711
12634
  }
12712
12635
 
12713
- that.refresh();
12636
+ if (that._resizeDetails) {
12637
+ var drag = that._resizeDetails;
12714
12638
 
12715
- that._handleItemClick(drag.item);
12639
+ if (drag.item) {
12640
+ drag.item.style.overflow = '';
12641
+ }
12716
12642
 
12717
- that._resizeDetails = null;
12718
- window.dispatchEvent(new Event('resize'));
12719
- that.querySelectorAll('.jqx-element').forEach(function (control) {
12720
- control.dispatchEvent(new CustomEvent('resize'));
12721
- });
12722
- return;
12723
- }
12643
+ if (drag.previousItem) {
12644
+ drag.previousItem.style.overflow = '';
12645
+ }
12724
12646
 
12725
- if (!that.contains(target)) {
12726
- return;
12727
- }
12647
+ if (drag.nextItem) {
12648
+ drag.nextItem.style.overflow = '';
12649
+ }
12728
12650
 
12729
- that.classList.add('outline');
12651
+ that.refresh();
12652
+ that._handleItemClick(drag.item);
12653
+ that._resizeDetails = null;
12654
+ window.dispatchEvent(new Event('resize'));
12730
12655
 
12731
- if (that._target && !target.item) {
12732
- if (target instanceof TabLayoutItem) {
12733
- that._handleItemClick(target);
12734
- } else {
12735
- that._handleItemClick(target.closest('.jqx-layout-item'));
12656
+ that.querySelectorAll('.jqx-element').forEach(function (control) {
12657
+ control.dispatchEvent(new CustomEvent('resize'));
12658
+ });
12659
+ return;
12736
12660
  }
12737
- }
12738
12661
 
12739
- if (that._target) {
12740
- if (that._target !== target) {
12741
- delete that._target;
12742
- return;
12662
+ if (!that.contains(target)) {
12663
+ return;
12743
12664
  }
12744
12665
 
12745
- if (!event.button && target.closest('.jqx-layout-buttons-container')) {
12746
- var button = event.target;
12666
+ that.classList.add('outline');
12747
12667
 
12748
- that._handleButtonClick(button.item, button.position);
12749
- } else if (target.closest('.jqx-layout-context-menu') && (!isMobile && !event.button || isMobile)) {
12750
- that._handleMenuItemClick(target.closest('.jqx-layout-context-menu-item'));
12668
+ if (that._target && !target.item) {
12669
+ if (target instanceof TabLayoutItem) {
12670
+ that._handleItemClick(target);
12671
+ }
12672
+ else {
12673
+ that._handleItemClick(target.closest('.jqx-layout-item'));
12674
+ }
12751
12675
  }
12752
12676
 
12753
- delete that._target;
12754
- }
12677
+ if (that._target) {
12678
+ if (that._target !== target) {
12679
+ delete that._target;
12680
+ return;
12681
+ }
12682
+
12683
+ if (!event.button && target.closest('.jqx-layout-buttons-container')) {
12684
+ var button = event.target;
12685
+
12686
+ that._handleButtonClick(button.item, button.position);
12687
+ }
12688
+ else if (target.closest('.jqx-layout-context-menu') && (!isMobile && !event.button || isMobile)) {
12689
+ that._handleMenuItemClick(target.closest('.jqx-layout-context-menu-item'));
12690
+ }
12691
+
12692
+ delete that._target;
12693
+ }
12755
12694
  }
12695
+
12756
12696
  /**
12757
12697
  * Document Select Start event handler
12758
12698
  */
12699
+ _documentSelectStartHandler(event) {
12700
+ var that = this;
12759
12701
 
12760
- }, {
12761
- key: "_documentSelectStartHandler",
12762
- value: function _documentSelectStartHandler(event) {
12763
- var that = this;
12764
-
12765
- if (that._target) {
12766
- event.preventDefault();
12767
- }
12702
+ if (that._target) {
12703
+ event.preventDefault();
12704
+ }
12768
12705
  }
12706
+
12769
12707
  /**
12770
12708
  * Adds labels to the items that do not have set
12771
12709
  * @param {any} data
12772
12710
  */
12711
+ _getDataSource(layout, path, index) {
12712
+ var that = this;
12713
+
12714
+ var data = [];
12773
12715
 
12774
- }, {
12775
- key: "_getDataSource",
12776
- value: function _getDataSource(layout, path, index) {
12777
- var that = this;
12778
- var data = [];
12779
-
12780
- if (!index) {
12781
- index = 0;
12782
- }
12783
-
12784
- if (!path) {
12785
- path = '';
12786
- }
12787
-
12788
- for (var i = 0; i < layout.length; i++) {
12789
- var layoutItem = layout[i];
12790
- var item = {
12791
- label: layoutItem.label,
12792
- id: layoutItem.getAttribute('data-id'),
12793
- orientation: layoutItem.orientation,
12794
- size: layoutItem.size,
12795
- min: layoutItem.min,
12796
- type: layoutItem.type,
12797
- modifiers: layoutItem.modifiers,
12798
- position: layoutItem.position
12799
- };
12800
- layoutItem.removeAttribute('index');
12801
-
12802
- if (layoutItem instanceof LayoutGroup) {
12803
- data.push(item);
12804
- item.index = path !== '' ? path + '.' + index : index.toString();
12805
- layoutItem.setAttribute('index', item.index);
12806
-
12807
- if (layoutItem.items) {
12808
- var items = that._getDataSource(layoutItem.items, item.index, 0);
12809
-
12810
- item.items = items;
12811
- }
12812
- } else if (layoutItem instanceof LayoutItem) {
12813
- if (layoutItem.items) {
12814
- var items = that._getDataSource(layoutItem.items, path, index);
12815
-
12816
- data = data.concat(items);
12817
- } else {
12818
- item.index = path !== '' ? path + '.' + index : index.toString();
12819
- layoutItem.setAttribute('index', item.index);
12820
- data.push(item);
12821
- }
12716
+ if (!index) {
12717
+ index = 0;
12822
12718
  }
12823
12719
 
12824
- index++;
12825
- }
12720
+ if (!path) {
12721
+ path = '';
12722
+ }
12723
+
12724
+ for (var i = 0; i < layout.length; i++) {
12725
+ var layoutItem = layout[i];
12726
+
12727
+ var item = {
12728
+ label: layoutItem.label,
12729
+ id: layoutItem.getAttribute('data-id'),
12730
+ orientation: layoutItem.orientation,
12731
+ size: layoutItem.size,
12732
+ min: layoutItem.min,
12733
+ type: layoutItem.type,
12734
+ modifiers: layoutItem.modifiers,
12735
+ position: layoutItem.position
12736
+ }
12737
+
12738
+ layoutItem.removeAttribute('index');
12739
+
12740
+ if (layoutItem instanceof LayoutGroup) {
12741
+ data.push(item);
12742
+
12743
+ item.index = path !== '' ? path + '.' + index : index.toString();
12744
+ layoutItem.setAttribute('index', item.index);
12745
+
12746
+ if (layoutItem.items) {
12747
+ var items = that._getDataSource(layoutItem.items, item.index, 0);
12748
+ item.items = items;
12749
+ }
12750
+ }
12751
+ else if (layoutItem instanceof LayoutItem) {
12752
+ if (layoutItem.items) {
12753
+ var items = that._getDataSource(layoutItem.items, path, index);
12754
+
12755
+ data = data.concat(items);
12756
+ }
12757
+ else {
12758
+ item.index = path !== '' ? path + '.' + index : index.toString();
12759
+ layoutItem.setAttribute('index', item.index);
12760
+
12761
+ data.push(item);
12762
+ }
12763
+ }
12826
12764
 
12827
- return data;
12765
+ index++;
12766
+ }
12767
+
12768
+ return data;
12828
12769
  }
12770
+
12829
12771
  /**
12830
12772
  * Generates the JSON array of the current structure of the element
12831
12773
  */
12774
+ _getLayout() {
12775
+ var that = this;
12776
+ var group = !arguments.length ? that.$.itemsContainer : arguments[0];
12832
12777
 
12833
- }, {
12834
- key: "_getLayout",
12835
- value: function _getLayout() {
12836
- var that = this;
12837
- var group = !arguments.length ? that.$.itemsContainer : arguments[0];
12838
-
12839
- if (that._buttons) {
12840
- that._buttons.remove();
12841
- }
12778
+ if (that._buttons) {
12779
+ that._buttons.remove();
12780
+ }
12842
12781
 
12843
- if (that._dropArea) {
12844
- that._dropArea.remove();
12845
- }
12782
+ if (that._dropArea) {
12783
+ that._dropArea.remove();
12784
+ }
12846
12785
 
12847
- var splitters = that.querySelectorAll('.jqx-layout-splitter');
12786
+ var splitters = that.querySelectorAll('.jqx-layout-splitter');
12848
12787
 
12849
- for (var i = 0; i < splitters.length; i++) {
12850
- var splitter = splitters[i];
12788
+ for (var i = 0; i < splitters.length; i++) {
12789
+ var splitter = splitters[i];
12851
12790
 
12852
- if (splitter !== that.$.splitter) {
12853
- splitter.remove();
12854
- }
12855
- }
12856
-
12857
- group.items = Array.from(group.children);
12858
- group.items = group.items.filter(function (value) {
12859
- return value !== group.tabs && value.hasAttribute('data-id');
12860
- });
12861
- var items = group.items.map(function (value) {
12862
- if (value.classList.contains('jqx-layout-tab-strip')) {
12863
- return null;
12791
+ if (splitter !== that.$.splitter) {
12792
+ splitter.remove();
12793
+ }
12864
12794
  }
12865
12795
 
12866
- var item = value;
12867
- var itemGroup = value instanceof LayoutGroup ? value : null;
12796
+ group.items = Array.from(group.children);
12797
+ group.items = group.items.filter(function (value) {
12798
+ return value !== group.tabs && value.hasAttribute('data-id');
12799
+ });
12800
+
12801
+ var items = group.items.map(function (value) {
12802
+ if (value.classList.contains('jqx-layout-tab-strip')) {
12803
+ return null;
12804
+ }
12805
+
12806
+ var item = value;
12807
+ var itemGroup = value instanceof LayoutGroup ? value : null;
12868
12808
 
12869
- if (itemGroup) {
12870
- item.items = that._getLayout(itemGroup);
12809
+ if (itemGroup) {
12810
+ item.items = that._getLayout(itemGroup)
12811
+ }
12812
+
12813
+ return item;
12814
+ });
12815
+
12816
+ if (group !== that.$.itemsContainer) {
12817
+ return items.filter(function (value) {
12818
+ return value !== null && value !== group.tabs
12819
+ });
12871
12820
  }
12872
12821
 
12873
- return item;
12874
- });
12822
+ var data = [];
12823
+ var item = group;
12875
12824
 
12876
- if (group !== that.$.itemsContainer) {
12877
- return items.filter(function (value) {
12878
- return value !== null && value !== group.tabs;
12825
+ item.items = items.filter(function (value) {
12826
+ return value !== null && value !== group.tabs
12879
12827
  });
12880
- }
12881
-
12882
- var data = [];
12883
- var item = group;
12884
- item.items = items.filter(function (value) {
12885
- return value !== null && value !== group.tabs;
12886
- });
12887
- data.push(item);
12888
- return data;
12889
- }
12890
- }, {
12891
- key: "_updateSplitter",
12892
- value: function _updateSplitter() {
12893
- var that = this;
12894
12828
 
12895
- if (that._buttons && that._dragDetails) {
12896
- that._buttons.remove();
12897
- }
12829
+ data.push(item);
12898
12830
 
12899
- that._removeSplitter();
12831
+ return data;
12832
+ }
12900
12833
 
12901
- var items = that.querySelectorAll('[data-id]');
12902
12834
 
12903
- for (var i = 0; i < items.length; i++) {
12904
- var item = items[i];
12835
+ _updateSplitter() {
12836
+ var that = this;
12905
12837
 
12906
- if (item.getAttribute('data-id') === 'root') {
12907
- continue;
12838
+ if (that._buttons && that._dragDetails) {
12839
+ that._buttons.remove();
12908
12840
  }
12909
12841
 
12910
- if (item.hasAttribute('role')) {
12911
- var role = item.getAttribute('role');
12842
+ that._removeSplitter();
12843
+ var items = that.querySelectorAll('[data-id]');
12912
12844
 
12913
- if (role === 'gridcell' || role === 'row' || role === 'columnheader' || role === 'rowheader') {
12914
- continue;
12915
- }
12916
- }
12845
+ for (var i = 0; i < items.length; i++) {
12846
+ var item = items[i];
12917
12847
 
12918
- item.setAttribute('hover', '');
12848
+ if (item.getAttribute('data-id') === 'root') {
12849
+ continue;
12850
+ }
12851
+
12852
+ if (item.hasAttribute('role')) {
12853
+ var role = item.getAttribute('role');
12854
+
12855
+ if (role === 'gridcell' || role === 'row' || role === 'columnheader' || role === 'rowheader') {
12856
+ continue;
12857
+ }
12858
+ }
12919
12859
 
12920
- that._handleSplitter(item);
12921
- }
12860
+ item.setAttribute('hover', '');
12861
+ that._handleSplitter(item);
12862
+ }
12922
12863
  }
12923
- }, {
12924
- key: "_hideSplitter",
12925
- value: function _hideSplitter() {
12926
- var that = this;
12927
- var items = that.querySelectorAll('[data-id]');
12928
-
12929
- for (var i = 0; i < items.length; i++) {
12930
- var item = items[i];
12931
- item.removeAttribute('hover');
12932
- }
12864
+
12865
+ _hideSplitter() {
12866
+ var that = this;
12867
+
12868
+ var items = that.querySelectorAll('[data-id]');
12869
+
12870
+ for (var i = 0; i < items.length; i++) {
12871
+ var item = items[i];
12872
+
12873
+ item.removeAttribute('hover');
12874
+ }
12933
12875
  }
12934
- }, {
12935
- key: "_removeSplitter",
12936
- value: function _removeSplitter() {
12937
- var that = this;
12938
- var splitters = that.querySelectorAll('.jqx-layout-splitter');
12939
12876
 
12940
- for (var i = 0; i < splitters.length; i++) {
12941
- var splitter = splitters[i];
12877
+ _removeSplitter() {
12878
+ var that = this;
12879
+ var splitters = that.querySelectorAll('.jqx-layout-splitter');
12942
12880
 
12943
- if (splitter !== that.$.splitter) {
12944
- splitter.remove();
12881
+ for (var i = 0; i < splitters.length; i++) {
12882
+ var splitter = splitters[i];
12883
+
12884
+ if (splitter !== that.$.splitter) {
12885
+ splitter.remove();
12886
+ }
12945
12887
  }
12946
- }
12947
12888
 
12948
- that._hideSplitter();
12889
+ that._hideSplitter();
12949
12890
  }
12891
+
12950
12892
  /**
12951
12893
  * Handles item selection
12952
12894
  * @param {any} target - target element that was clicked
12953
12895
  * @param {any} isOnDemand - selection on demand
12954
12896
  */
12897
+ _handleItemClick(target) {
12898
+ var that = this,
12899
+ previouslySelectedIndex = that.selectedIndex;
12955
12900
 
12956
- }, {
12957
- key: "_handleItemClick",
12958
- value: function _handleItemClick(target) {
12959
- var that = this,
12960
- previouslySelectedIndex = that.selectedIndex;
12961
- var item = null;
12962
-
12963
- if (!target) {
12964
- that.selectedIndex = null;
12965
- that.querySelectorAll('[data-id]').forEach(function (i) {
12966
- i.removeAttribute('selected');
12967
- });
12968
- that._selectedItem = null;
12969
- return;
12970
- } else {
12971
- item = target instanceof HTMLElement ? target : that.querySelector('[data-id=' + target.id + ']');
12972
-
12973
- if (item && item.readonly) {
12974
- that.selectedIndex = null;
12975
- return;
12901
+ var item = null;
12902
+
12903
+ if (!target) {
12904
+ that.selectedIndex = null;
12905
+ that.querySelectorAll('[data-id]').forEach(function (i) { i.removeAttribute('selected') });
12906
+ that._selectedItem = null;
12907
+ return;
12976
12908
  }
12909
+ else {
12910
+ item = target instanceof HTMLElement ? target : that.querySelector('[data-id=' + target.id + ']');
12977
12911
 
12978
- that.querySelectorAll('[data-id]').forEach(function (i) {
12979
- i.removeAttribute('selected');
12980
- });
12912
+ if (item && item.readonly) {
12913
+ that.selectedIndex = null;
12914
+ return;
12915
+ }
12981
12916
 
12982
- if (!item) {
12983
- that.refresh();
12984
- return;
12985
- }
12917
+ that.querySelectorAll('[data-id]').forEach(function (i) { i.removeAttribute('selected') });
12986
12918
 
12987
- that.selectedIndex = item.getAttribute('index');
12988
- item.setAttribute('selected', '');
12989
- item.setAttribute('hover', '');
12990
- that._selectedItem = item;
12919
+ if (!item) {
12920
+ that.refresh();
12921
+ return;
12922
+ }
12991
12923
 
12992
- if (item.classList.contains('jqx-hidden')) {
12993
- that.refresh();
12994
- }
12924
+ that.selectedIndex = item.getAttribute('index');
12995
12925
 
12996
- that._handleButtonsVisibility(item);
12926
+ item.setAttribute('selected', '');
12927
+ item.setAttribute('hover', '');
12928
+ that._selectedItem = item;
12929
+ if (item.classList.contains('jqx-hidden')) {
12930
+ that.refresh();
12931
+ }
12997
12932
 
12998
- if (previouslySelectedIndex !== that.selectedIndex) {
12999
- that.dispatchEvent(new CustomEvent('change'));
12933
+ that._handleButtonsVisibility(item);
12934
+
12935
+ if (previouslySelectedIndex !== that.selectedIndex) {
12936
+ that.dispatchEvent(new CustomEvent('change'));
12937
+ }
13000
12938
  }
13001
- }
13002
12939
 
13003
- that._updateSplitter();
12940
+ that._updateSplitter();
13004
12941
  }
12942
+
13005
12943
  /**
13006
12944
  * Handles Layout Button click
13007
12945
  * @param {any} target
13008
12946
  */
12947
+ _handleButtonClick(target, position) {
12948
+ var that = this,
12949
+ newItem = that._addLayoutItem(target, position);
13009
12950
 
13010
- }, {
13011
- key: "_handleButtonClick",
13012
- value: function _handleButtonClick(target, position) {
13013
- var that = this,
13014
- newItem = that._addLayoutItem(target, position); //Select the new empty item
12951
+ //Select the new empty item
12952
+ that.dispatchEvent(new CustomEvent('stateChange', { type: 'insert', item: newItem }));
13015
12953
 
12954
+ that._handleItemClick(newItem, true);
12955
+ }
13016
12956
 
13017
- that.dispatchEvent(new CustomEvent('stateChange', {
13018
- type: 'insert',
13019
- item: newItem
13020
- }));
13021
12957
 
13022
- that._handleItemClick(newItem, true);
13023
- }
13024
- }, {
13025
- key: "_removeLayoutItem",
13026
- value: function _removeLayoutItem(item) {
13027
- var that = this;
13028
-
13029
- if (item.getAttribute('data-id') === 'root') {
13030
- return;
13031
- }
13032
-
13033
- if (item instanceof LayoutItem && item.parentElement.items.length === 1) {
13034
- var parent = item.parentElement;
13035
- var currentParent = parent;
13036
-
13037
- while (parent && parent.items && parent.items.length === 1) {
13038
- if (parent.getAttribute('data-id') === 'root') {
13039
- break;
13040
- }
13041
-
13042
- currentParent = parent;
13043
- parent = parent.parentElement;
12958
+
12959
+ _removeLayoutItem(item) {
12960
+ var that = this;
12961
+
12962
+ if (item.getAttribute('data-id') === 'root') {
12963
+ return;
13044
12964
  }
13045
12965
 
13046
- if (currentParent.getAttribute('data-id') !== 'root') {
13047
- currentParent.remove();
13048
- } else if (that.allowLiveSplit) {
13049
- currentParent.appendChild(document.createElement('jqx-layout-item'));
12966
+ if (item instanceof LayoutItem && item.parentElement.items.length === 1) {
12967
+ var parent = item.parentElement;
12968
+ var currentParent = parent;
12969
+
12970
+ while (parent && parent.items && parent.items.length === 1) {
12971
+ if (parent.getAttribute('data-id') === 'root') {
12972
+ break;
12973
+ }
12974
+
12975
+ currentParent = parent;
12976
+ parent = parent.parentElement;
12977
+ }
12978
+
12979
+ if (currentParent.getAttribute('data-id') !== 'root') {
12980
+ currentParent.remove();
12981
+ }
12982
+ else if (that.allowLiveSplit) {
12983
+ currentParent.appendChild(document.createElement('jqx-layout-item'));
12984
+ }
13050
12985
  }
13051
- } else {
13052
- item.remove();
13053
- }
13054
-
13055
- that.refresh();
13056
- that.dispatchEvent(new CustomEvent('stateChange', {
13057
- type: 'delete',
13058
- item: item
13059
- }));
12986
+ else {
12987
+ item.remove();
12988
+ }
12989
+
12990
+ that.refresh();
12991
+
12992
+ that.dispatchEvent(new CustomEvent('stateChange', { type: 'delete', item: item }));
13060
12993
  }
12994
+
13061
12995
  /**
13062
12996
  * Refreshes the UI Component.
13063
12997
  */
12998
+ refresh() {
12999
+ var that = this;
13064
13000
 
13065
- }, {
13066
- key: "refresh",
13067
- value: function refresh() {
13068
- var that = this;
13001
+ if (that._isUpdating) {
13002
+ return;
13003
+ }
13069
13004
 
13070
- if (that._isUpdating) {
13071
- return;
13072
- }
13005
+ that.dataSource = that._getDataSource(that._getLayout());
13073
13006
 
13074
- that.dataSource = that._getDataSource(that._getLayout());
13075
- that.$.splitter.className = 'jqx-visibility-hidden jqx-layout-splitter';
13007
+ that.$.splitter.className = 'jqx-visibility-hidden jqx-layout-splitter';
13076
13008
 
13077
- var refreshLayoutGroup = function refreshLayoutGroup(group) {
13078
- var item = that.getItem(group.getAttribute('index'));
13009
+ var refreshLayoutGroup = function (group) {
13010
+ var item = that.getItem(group.getAttribute('index'));
13079
13011
 
13080
- if (!item) {
13081
- return;
13082
- }
13012
+ if (!item) {
13013
+ return;
13014
+ }
13015
+ group.style.gridTemplateColumns = '';
13016
+ group.style.gridTemplateRows = '';
13083
13017
 
13084
- group.style.gridTemplateColumns = '';
13085
- group.style.gridTemplateRows = '';
13086
- var template = '';
13087
- var percentages = 0;
13088
- var withSizeCount = 0;
13018
+ var template = '';
13019
+ var percentages = 0;
13020
+ var withSizeCount = 0;
13089
13021
 
13090
- if (group instanceof TabLayoutGroup) {
13091
- if (group.tabs) {
13092
- group.tabs.remove();
13093
- }
13022
+ if (group instanceof TabLayoutGroup) {
13023
+ if (group.tabs) {
13024
+ group.tabs.remove();
13025
+ }
13094
13026
 
13095
- var header = document.createElement('div');
13096
- header.classList.add('jqx-layout-tab-strip');
13027
+ var header = document.createElement('div');
13028
+ header.classList.add('jqx-layout-tab-strip');
13097
13029
 
13098
- if (that._selectedItem && group.contains(that._selectedItem) && that._selectedItem instanceof TabLayoutItem) {
13099
- group.selectedIndex = Math.max(0, group.items.indexOf(that._selectedItem));
13100
- }
13030
+ if (that._selectedItem && group.contains(that._selectedItem) && that._selectedItem instanceof TabLayoutItem) {
13031
+ group.selectedIndex = Math.max(0, group.items.indexOf(that._selectedItem));
13032
+ }
13101
13033
 
13102
- if (group.selectedIndex >= group.children.length) {
13103
- group.selectedIndex = 0;
13104
- }
13034
+ if (group.selectedIndex >= group.children.length) {
13035
+ group.selectedIndex = 0;
13036
+ }
13105
13037
 
13106
- for (var i = 0; i < group.children.length; i++) {
13107
- var child = group.children[i];
13108
- var childItem = that.getItem(child.getAttribute('index'));
13038
+ for (var i = 0; i < group.children.length; i++) {
13039
+ var child = group.children[i];
13040
+ var childItem = that.getItem(child.getAttribute('index'));
13041
+
13042
+ if (!childItem) {
13043
+ continue;
13044
+ }
13045
+
13046
+ var tab = document.createElement('div');
13047
+ tab.classList.add('jqx-layout-tab');
13048
+ tab.innerHTML = '<label>' + childItem.label + '</label><span class="jqx-close-button"></span>';
13049
+ header.appendChild(tab);
13050
+ child.setAttribute('tab', '');
13051
+ child.classList.add('jqx-hidden');
13052
+ tab.content = child;
13053
+ tab.item = childItem;
13054
+ tab.group = item;
13055
+
13056
+ if (child.modifiers) {
13057
+ if (child.modifiers.indexOf('close') === -1) {
13058
+ tab.querySelector('.jqx-close-button').classList.add('jqx-hidden');
13059
+ }
13060
+ }
13061
+ else {
13062
+ tab.querySelector('.jqx-close-button').classList.add('jqx-hidden');
13063
+ }
13064
+
13065
+ if (undefined === group.selectedIndex || i === group.selectedIndex) {
13066
+ tab.classList.add('selected');
13067
+ child.classList.remove('jqx-hidden');
13068
+ group.selectedIndex = i;
13069
+ }
13070
+
13071
+
13072
+ tab.onpointerup = function (event) {
13073
+ if (event.target.classList.contains('jqx-close-button') && tab.close) {
13074
+ group.selectedIndex = 0;
13075
+ that._removeLayoutItem(that._selectedItem);
13076
+ that._handleItemClick(parent);
13077
+ }
13078
+ }
13079
+ tab.onpointerdown = function (event) {
13080
+ var parent = this.closest('.jqx-layout-group');
13081
+ that._handleItemClick(this.content);
13082
+ tab.close = false;
13083
+ if (!event.target.classList.contains('jqx-close-button')) {
13084
+ if (childItem.modifiers && childItem.modifiers.indexOf('drag') >= 0 && parent.modifiers.indexOf('drag') >= 0) {
13085
+ that._beginDrag(parent, this, event);
13086
+ }
13087
+ }
13088
+ else {
13089
+ tab.close = true;
13090
+ }
13091
+ }
13109
13092
 
13110
- if (!childItem) {
13111
- continue;
13112
- }
13093
+ }
13113
13094
 
13114
- var tab = document.createElement('div');
13115
- tab.classList.add('jqx-layout-tab');
13116
- tab.innerHTML = '<label>' + childItem.label + '</label><span class="jqx-close-button"></span>';
13117
- header.appendChild(tab);
13118
- child.setAttribute('tab', '');
13119
- child.classList.add('jqx-hidden');
13120
- tab.content = child;
13121
- tab.item = childItem;
13122
- tab.group = item;
13123
-
13124
- if (child.modifiers) {
13125
- if (child.modifiers.indexOf('close') === -1) {
13126
- tab.querySelector('.jqx-close-button').classList.add('jqx-hidden');
13127
- }
13128
- } else {
13129
- tab.querySelector('.jqx-close-button').classList.add('jqx-hidden');
13095
+
13096
+ group.tabs = header;
13097
+
13098
+ if (item.position === 'top' || item.position === 'left') {
13099
+ group.insertBefore(header, group.firstChild);
13100
+ }
13101
+ else {
13102
+ group.appendChild(header);
13103
+ }
13130
13104
  }
13105
+ else {
13106
+ for (var i = 0; i < group.children.length; i++) {
13107
+ var child = group.children[i];
13108
+
13109
+ if (child.hasAttribute('size')) {
13110
+ var size = child.getAttribute('size');
13111
+
13112
+ var pixels = parseFloat(size);
13113
+ var groupSize = group.orientation === 'vertical' ? group.offsetWidth : group.offsetHeight;
13114
+ var percentage = size.indexOf('%') >= 0 ? parseFloat(size) : parseFloat((pixels / groupSize) * 100);
13115
+
13116
+ percentages += percentage;
13117
+ withSizeCount++;
13118
+
13119
+ if (withSizeCount === group.children.length) {
13120
+ if (percentages < 100) {
13121
+ template += '1fr ';
13122
+ percentages = 100;
13123
+ continue;
13124
+ }
13125
+ else if (percentages > 100) {
13126
+ percentages -= percentage;
13127
+ percentage = 100 - percentages;
13128
+ percentages = 100;
13129
+ }
13130
+ }
13131
+ else if (percentages > 100 || percentage === 0) {
13132
+ withSizeCount = group.children.length;
13133
+ percentages = 0;
13134
+ break;
13135
+ }
13136
+
13137
+ template += percentage + '% ';
13138
+ continue;
13139
+ }
13140
+
13141
+ template += '1fr ';
13142
+ }
13143
+
13144
+ if (withSizeCount === group.children.length) {
13145
+ if (percentages < 99 || percentages > 100) {
13146
+ template = '';
13147
+
13148
+ for (var i = 0; i < group.children.length; i++) {
13149
+ var child = group.children[i];
13131
13150
 
13132
- if (undefined === group.selectedIndex || i === group.selectedIndex) {
13133
- tab.classList.add('selected');
13134
- child.classList.remove('jqx-hidden');
13135
- group.selectedIndex = i;
13151
+ child.removeAttribute('size');
13152
+ template += '1fr ';
13153
+ }
13154
+ }
13155
+ }
13156
+
13157
+ if (group.orientation === 'vertical') {
13158
+ group.style.gridTemplateColumns = template;
13159
+ }
13160
+ else {
13161
+ group.style.gridTemplateRows = template;
13162
+ }
13136
13163
  }
13137
13164
 
13138
- tab.onpointerup = function (event) {
13139
- if (event.target.classList.contains('jqx-close-button') && tab.close) {
13140
- group.selectedIndex = 0;
13165
+ group.items = Array.from(group.children);
13166
+ group.items = group.items.filter(function (value) {
13167
+ return value !== group.tabs;
13168
+ });
13169
+ }
13141
13170
 
13142
- that._removeLayoutItem(that._selectedItem);
13171
+ var layoutGroups = that.querySelectorAll('.jqx-layout-group');
13143
13172
 
13144
- that._handleItemClick(parent);
13145
- }
13146
- };
13173
+ for (var i = 0; i < layoutGroups.length; i++) {
13174
+ refreshLayoutGroup(layoutGroups[i]);
13175
+ }
13176
+ }
13147
13177
 
13148
- tab.onpointerdown = function (event) {
13149
- var parent = this.closest('.jqx-layout-group');
13178
+ _beginDrag(parent, element, event) {
13179
+ var that = this;
13150
13180
 
13151
- that._handleItemClick(this.content);
13181
+ if (that._dragDetails) {
13182
+ that._dragDetails.feedback.remove();
13183
+ }
13152
13184
 
13153
- tab.close = false;
13185
+ var feedback = document.createElement('div');
13186
+ var overlay = document.createElement('div');
13187
+ var tabs = parent.querySelector('.jqx-layout-tab-strip');
13188
+ var label = '';
13154
13189
 
13155
- if (!event.target.classList.contains('jqx-close-button')) {
13156
- if (childItem.modifiers && childItem.modifiers.indexOf('drag') >= 0 && parent.modifiers.indexOf('drag') >= 0) {
13157
- that._beginDrag(parent, this, event);
13158
- }
13159
- } else {
13160
- tab.close = true;
13161
- }
13162
- };
13163
- }
13164
-
13165
- group.tabs = header;
13166
-
13167
- if (item.position === 'top' || item.position === 'left') {
13168
- group.insertBefore(header, group.firstChild);
13169
- } else {
13170
- group.appendChild(header);
13171
- }
13172
- } else {
13173
- for (var i = 0; i < group.children.length; i++) {
13174
- var child = group.children[i];
13175
-
13176
- if (child.hasAttribute('size')) {
13177
- var size = child.getAttribute('size');
13178
- var pixels = parseFloat(size);
13179
- var groupSize = group.orientation === 'vertical' ? group.offsetWidth : group.offsetHeight;
13180
- var percentage = size.indexOf('%') >= 0 ? parseFloat(size) : parseFloat(pixels / groupSize * 100);
13181
- percentages += percentage;
13182
- withSizeCount++;
13183
-
13184
- if (withSizeCount === group.children.length) {
13185
- if (percentages < 100) {
13186
- template += '1fr ';
13187
- percentages = 100;
13188
- continue;
13189
- } else if (percentages > 100) {
13190
- percentages -= percentage;
13191
- percentage = 100 - percentages;
13192
- percentages = 100;
13190
+ if (tabs) {
13191
+ for (var i = 0; i < Array.from(tabs.children).length; i++) {
13192
+ if (i === parent.selectedIndex) {
13193
+ label = tabs.children[i].innerText;
13193
13194
  }
13194
- } else if (percentages > 100 || percentage === 0) {
13195
- withSizeCount = group.children.length;
13196
- percentages = 0;
13197
- break;
13198
- }
13199
-
13200
- template += percentage + '% ';
13201
- continue;
13202
13195
  }
13196
+ }
13203
13197
 
13204
- template += '1fr ';
13205
- }
13198
+ feedback.innerHTML = `<jqx-split-layout><jqx-tab-layout-group><jqx-tab-layout-item label="${label}"></jqx-tab-layout-item></jqx-tab-layout-group></jqx-split-layout>`
13199
+ that._feedback = feedback;
13200
+ that._feedback.classList.add('jqx-split-layout-feedback', 'jqx-split-layout', 'jqx-widget');
13201
+
13202
+ overlay.classList.add('jqx-split-layout-overlay');
13203
+
13204
+ that._dragDetails = {
13205
+ element: element.content,
13206
+ item: element.item,
13207
+ layoutGroup: element.group,
13208
+ parent: parent,
13209
+ overlay: overlay,
13210
+ feedback: feedback,
13211
+ pageX: event.pageX,
13212
+ pageY: event.pageY
13213
+ }
13214
+ }
13206
13215
 
13207
- if (withSizeCount === group.children.length) {
13208
- if (percentages < 99 || percentages > 100) {
13209
- template = '';
13216
+ moveChildren(oldItem, newItem) {
13217
+ newItem.innerHTML = '';
13218
+ var content = oldItem;
13210
13219
 
13211
- for (var i = 0; i < group.children.length; i++) {
13212
- var child = group.children[i];
13213
- child.removeAttribute('size');
13214
- template += '1fr ';
13215
- }
13216
- }
13217
- }
13220
+ while (content.firstChild) {
13221
+ var child = content.firstChild;
13222
+ newItem.appendChild(child);
13223
+ }
13224
+ }
13225
+
13226
+ createLayoutItem(type, position) {
13227
+ var that = this;
13228
+
13229
+ var getLayoutItem = function () {
13230
+ var item = document.createElement('jqx-layout-item');
13231
+
13232
+ item.innerHTML = '';
13233
+
13234
+ that.dispatchEvent(new CustomEvent('createItem', { type: 'layoutItem', item: item }));
13218
13235
 
13219
- if (group.orientation === 'vertical') {
13220
- group.style.gridTemplateColumns = template;
13221
- } else {
13222
- group.style.gridTemplateRows = template;
13223
- }
13236
+ return item;
13224
13237
  }
13225
13238
 
13226
- group.items = Array.from(group.children);
13227
- group.items = group.items.filter(function (value) {
13228
- return value !== group.tabs;
13229
- });
13230
- };
13239
+ var getTabLayoutItem = function () {
13240
+ var item = document.createElement('jqx-tab-layout-item');
13231
13241
 
13232
- var layoutGroups = that.querySelectorAll('.jqx-layout-group');
13242
+ item.innerHTML = '';
13233
13243
 
13234
- for (var i = 0; i < layoutGroups.length; i++) {
13235
- refreshLayoutGroup(layoutGroups[i]);
13236
- }
13237
- }
13238
- }, {
13239
- key: "_beginDrag",
13240
- value: function _beginDrag(parent, element, event) {
13241
- var that = this;
13244
+ that.dispatchEvent(new CustomEvent('createItem', { type: 'tabLayoutItem', item: item }));
13242
13245
 
13243
- if (that._dragDetails) {
13244
- that._dragDetails.feedback.remove();
13245
- }
13246
-
13247
- var feedback = document.createElement('div');
13248
- var overlay = document.createElement('div');
13249
- var tabs = parent.querySelector('.jqx-layout-tab-strip');
13250
- var label = '';
13251
-
13252
- if (tabs) {
13253
- for (var i = 0; i < Array.from(tabs.children).length; i++) {
13254
- if (i === parent.selectedIndex) {
13255
- label = tabs.children[i].innerText;
13256
- }
13246
+ return item;
13257
13247
  }
13258
- }
13259
-
13260
- feedback.innerHTML = "<jqx-split-layout><jqx-tab-layout-group><jqx-tab-layout-item label=\"".concat(label, "\"></jqx-tab-layout-item></jqx-tab-layout-group></jqx-split-layout>");
13261
- that._feedback = feedback;
13262
-
13263
- that._feedback.classList.add('jqx-split-layout-feedback', 'jqx-split-layout', 'jqx-widget');
13264
-
13265
- overlay.classList.add('jqx-split-layout-overlay');
13266
- that._dragDetails = {
13267
- element: element.content,
13268
- item: element.item,
13269
- layoutGroup: element.group,
13270
- parent: parent,
13271
- overlay: overlay,
13272
- feedback: feedback,
13273
- pageX: event.pageX,
13274
- pageY: event.pageY
13275
- };
13276
- }
13277
- }, {
13278
- key: "moveChildren",
13279
- value: function moveChildren(oldItem, newItem) {
13280
- newItem.innerHTML = '';
13281
- var content = oldItem;
13282
-
13283
- while (content.firstChild) {
13284
- var child = content.firstChild;
13285
- newItem.appendChild(child);
13286
- }
13287
- }
13288
- }, {
13289
- key: "createLayoutItem",
13290
- value: function createLayoutItem(type, position) {
13291
- var that = this;
13292
-
13293
- var getLayoutItem = function getLayoutItem() {
13294
- var item = document.createElement('jqx-layout-item');
13295
- item.innerHTML = '';
13296
- that.dispatchEvent(new CustomEvent('createItem', {
13297
- type: 'layoutItem',
13298
- item: item
13299
- }));
13300
- return item;
13301
- };
13302
-
13303
- var getTabLayoutItem = function getTabLayoutItem() {
13304
- var item = document.createElement('jqx-tab-layout-item');
13305
- item.innerHTML = '';
13306
- that.dispatchEvent(new CustomEvent('createItem', {
13307
- type: 'tabLayoutItem',
13308
- item: item
13309
- }));
13310
- return item;
13311
- };
13312
-
13313
- var getLayoutGroup = function getLayoutGroup(position) {
13314
- var item = document.createElement('jqx-layout-group');
13315
- var orientation = position === 'top' || position === 'bottom' ? 'horizontal' : 'vertical';
13316
- that.dispatchEvent(new CustomEvent('createGroup', {
13317
- type: 'layoutGroup',
13318
- item: item
13319
- }));
13320
- item.setAttribute('orientation', orientation);
13321
- item.orientation = orientation;
13322
- return item;
13323
- };
13324
-
13325
- var getTabLayoutGroup = function getTabLayoutGroup(position) {
13326
- var item = document.createElement('jqx-tab-layout-group');
13327
- var orientation = position === 'top' || position === 'bottom' ? 'horizontal' : 'vertical';
13328
- item.setAttribute('orientation', orientation);
13329
- item.orientation = orientation;
13330
- that.dispatchEvent(new CustomEvent('tabLayoutGroup', {
13331
- type: 'layoutGroup',
13332
- item: item
13333
- }));
13334
- return item;
13335
- };
13336
-
13337
- if (type === 'layoutItem' || !type) {
13338
- return getLayoutItem();
13339
- } else if (type === 'tabLayoutItem' || !type) {
13340
- return getTabLayoutItem();
13341
- } else if (type === 'tabLayoutGroup') {
13342
- return getTabLayoutGroup(position);
13343
- } else {
13344
- return getLayoutGroup(position);
13345
- }
13346
- }
13347
- }, {
13348
- key: "_addTabLayoutItem",
13349
- value: function _addTabLayoutItem(targetItem, position, myItem) {
13350
- var that = this;
13351
- var newItem = that.createLayoutItem('tabLayoutItem');
13352
- var parentLayoutGroup = targetItem.closest('jqx-tab-layout-group');
13353
- var layoutGroup;
13354
-
13355
- if (myItem) {
13356
- newItem.label = myItem.label;
13357
- newItem.modifiers = myItem.modifiers;
13358
- that.moveChildren(myItem, newItem);
13359
- }
13360
-
13361
- var resetGroup = function resetGroup(group) {
13362
- for (var i = 0; i < group.children.length; i++) {
13363
- var child = group.children[i];
13364
- child.removeAttribute('size');
13248
+
13249
+ var getLayoutGroup = function (position) {
13250
+ var item = document.createElement('jqx-layout-group');
13251
+ var orientation = position === 'top' || position === 'bottom' ? 'horizontal' : 'vertical';
13252
+
13253
+ that.dispatchEvent(new CustomEvent('createGroup', { type: 'layoutGroup', item: item }));
13254
+
13255
+ item.setAttribute('orientation', orientation);
13256
+ item.orientation = orientation;
13257
+
13258
+ return item;
13365
13259
  }
13366
13260
 
13367
- group.removeAttribute('size');
13368
- };
13261
+ var getTabLayoutGroup = function (position) {
13262
+ var item = document.createElement('jqx-tab-layout-group');
13263
+ var orientation = position === 'top' || position === 'bottom' ? 'horizontal' : 'vertical';
13369
13264
 
13370
- var addTabItemChild = function addTabItemChild(position) {
13371
- targetItem.removeAttribute('size');
13265
+ item.setAttribute('orientation', orientation);
13266
+ item.orientation = orientation;
13372
13267
 
13373
- if (targetItem.querySelector('jqx-layout-group')) {
13374
- that._addLayoutItem(targetItem.querySelector('jqx-layout-group'), position);
13375
- } else {
13376
- layoutGroup = that.createLayoutItem('layoutGroup', position);
13377
- var newLayoutItem = that.createLayoutItem();
13378
- that.moveChildren(targetItem, newLayoutItem);
13268
+ that.dispatchEvent(new CustomEvent('tabLayoutGroup', { type: 'layoutGroup', item: item }));
13379
13269
 
13380
- if (position === 'top' || position === 'left') {
13381
- layoutGroup.appendChild(that.createLayoutItem());
13382
- layoutGroup.appendChild(newLayoutItem);
13383
- } else {
13384
- layoutGroup.appendChild(newLayoutItem);
13385
- layoutGroup.appendChild(that.createLayoutItem());
13386
- }
13270
+ return item;
13271
+ }
13387
13272
 
13388
- targetItem.appendChild(layoutGroup);
13273
+ if (type === 'layoutItem' || !type) {
13274
+ return getLayoutItem();
13389
13275
  }
13390
- };
13391
-
13392
- var addRootTab = function addRootTab(tabLayoutGroup, position) {
13393
- var parentLayoutGroup = targetItem.parentElement;
13394
- var layoutGroup = targetItem;
13395
- var newLayoutGroup = that.createLayoutItem('layoutGroup', position);
13396
- parentLayoutGroup.insertBefore(newLayoutGroup, layoutGroup);
13397
-
13398
- if (position === 'top' || position === 'left') {
13399
- newLayoutGroup.append(tabLayoutGroup);
13400
- newLayoutGroup.appendChild(layoutGroup);
13401
- } else {
13402
- newLayoutGroup.appendChild(layoutGroup);
13403
- newLayoutGroup.append(tabLayoutGroup);
13276
+ else if (type === 'tabLayoutItem' || !type) {
13277
+ return getTabLayoutItem();
13404
13278
  }
13279
+ else if (type === 'tabLayoutGroup') {
13280
+ return getTabLayoutGroup(position);
13281
+ }
13282
+ else {
13283
+ return getLayoutGroup(position);
13284
+ }
13285
+ }
13405
13286
 
13406
- if (layoutGroup.getAttribute('data-id') === 'root') {
13407
- layoutGroup.setAttribute('data-id', newLayoutGroup.getAttribute('data-id'));
13408
- newLayoutGroup.setAttribute('data-id', 'root');
13409
- that.$.itemsContainer = newLayoutGroup;
13287
+ _addTabLayoutItem(targetItem, position, myItem) {
13288
+ var that = this;
13289
+ var newItem = that.createLayoutItem('tabLayoutItem');
13290
+
13291
+ var parentLayoutGroup = targetItem.closest('jqx-tab-layout-group');
13292
+ var layoutGroup;
13293
+
13294
+ if (myItem) {
13295
+ newItem.label = myItem.label;
13296
+ newItem.modifiers = myItem.modifiers;
13297
+ that.moveChildren(myItem, newItem);
13410
13298
  }
13411
13299
 
13412
- resetGroup(layoutGroup);
13413
- resetGroup(parentLayoutGroup);
13414
- };
13300
+ var resetGroup = function (group) {
13301
+ for (var i = 0; i < group.children.length; i++) {
13302
+ var child = group.children[i];
13415
13303
 
13416
- if (myItem) {
13417
- switch (position) {
13418
- case 'center':
13419
- {
13420
- if (targetItem instanceof TabLayoutGroup || targetItem instanceof TabLayoutItem) {
13421
- parentLayoutGroup.appendChild(newItem);
13422
- } else {
13423
- var tabLayoutGroup = that.createLayoutItem('tabLayoutGroup', 'top');
13424
- tabLayoutGroup.appendChild(newItem);
13425
-
13426
- if (targetItem instanceof LayoutGroup && !(targetItem instanceof TabLayoutItem)) {
13427
- targetItem.appendChild(tabLayoutGroup);
13428
- resetGroup(targetItem);
13429
- } else if (targetItem instanceof LayoutItem) {
13430
- layoutGroup = that.createLayoutItem('layoutGroup');
13431
- targetItem.parentElement.insertBefore(layoutGroup, targetItem);
13432
- layoutGroup.appendChild(targetItem);
13433
- layoutGroup.appendChild(tabLayoutGroup);
13434
- resetGroup(layoutGroup);
13435
- }
13436
- }
13437
- }
13438
- break;
13439
-
13440
- case 'left':
13441
- case 'right':
13442
- {
13443
- var tabLayoutGroup = that.createLayoutItem('tabLayoutGroup', 'top');
13444
- tabLayoutGroup.appendChild(newItem);
13445
-
13446
- if (targetItem.getAttribute('data-id') === 'root') {
13447
- tabLayoutGroup.position = position;
13448
- addRootTab(tabLayoutGroup, position);
13449
- } else {
13450
- addRootTab(tabLayoutGroup, position);
13451
- }
13452
- }
13453
- break;
13454
-
13455
- case 'top':
13456
- case 'bottom':
13457
- {
13458
- var tabLayoutGroup = that.createLayoutItem('tabLayoutGroup', 'top');
13459
- tabLayoutGroup.appendChild(newItem);
13460
-
13461
- if (targetItem.getAttribute('data-id') === 'root') {
13462
- tabLayoutGroup.position = position;
13463
- addRootTab(tabLayoutGroup, position);
13464
- } else {
13465
- addRootTab(tabLayoutGroup, position);
13466
- }
13467
-
13468
- break;
13304
+ child.removeAttribute('size');
13469
13305
  }
13306
+
13307
+ group.removeAttribute('size');
13470
13308
  }
13471
13309
 
13472
- return;
13473
- }
13310
+ var addTabItemChild = function (position) {
13311
+ targetItem.removeAttribute('size');
13474
13312
 
13475
- switch (position) {
13476
- case 'center':
13477
- if (targetItem instanceof TabLayoutGroup || targetItem instanceof TabLayoutItem) {
13478
- parentLayoutGroup.appendChild(newItem);
13479
- } else {
13480
- addTabItemChild();
13481
- }
13313
+ if (targetItem.querySelector('jqx-layout-group')) {
13314
+ that._addLayoutItem(targetItem.querySelector('jqx-layout-group'), position);
13315
+ }
13316
+ else {
13317
+ layoutGroup = that.createLayoutItem('layoutGroup', position);
13482
13318
 
13483
- break;
13319
+ var newLayoutItem = that.createLayoutItem();
13320
+ that.moveChildren(targetItem, newLayoutItem)
13484
13321
 
13485
- case 'left':
13486
- case 'right':
13487
- if (targetItem instanceof TabLayoutGroup) {
13488
- var firstItem = targetItem.querySelector('jqx-tab-layout-item');
13322
+ if (position === 'top' || position === 'left') {
13323
+ layoutGroup.appendChild(that.createLayoutItem());
13324
+ layoutGroup.appendChild(newLayoutItem);
13325
+ }
13326
+ else {
13327
+ layoutGroup.appendChild(newLayoutItem);
13328
+ layoutGroup.appendChild(that.createLayoutItem());
13329
+ }
13489
13330
 
13490
- if (firstItem && position === 'left') {
13491
- targetItem.insertBefore(newItem, firstItem);
13492
- } else {
13493
- targetItem.appendChild(newItem);
13331
+ targetItem.appendChild(layoutGroup);
13494
13332
  }
13495
- } else if (targetItem instanceof TabLayoutItem) {
13496
- var tabLayoutGroup = that.createLayoutItem('tabLayoutGroup', 'top');
13333
+ }
13334
+
13335
+ var addRootTab = function (tabLayoutGroup, position) {
13336
+
13497
13337
  var parentLayoutGroup = targetItem.parentElement;
13498
- tabLayoutGroup.appendChild(newItem);
13499
- layoutGroup = that.createLayoutItem('layoutGroup');
13500
- parentLayoutGroup.parentElement.insertBefore(layoutGroup, parentLayoutGroup);
13501
-
13502
- if (position === 'right') {
13503
- layoutGroup.appendChild(parentLayoutGroup);
13504
- layoutGroup.appendChild(tabLayoutGroup);
13505
- } else if (position === 'left') {
13506
- layoutGroup.appendChild(tabLayoutGroup);
13507
- layoutGroup.appendChild(parentLayoutGroup);
13338
+ var layoutGroup = targetItem;
13339
+ var newLayoutGroup = that.createLayoutItem('layoutGroup', position);
13340
+
13341
+ parentLayoutGroup.insertBefore(newLayoutGroup, layoutGroup);
13342
+
13343
+ if (position === 'top' || position === 'left') {
13344
+ newLayoutGroup.append(tabLayoutGroup);
13345
+ newLayoutGroup.appendChild(layoutGroup);
13346
+ }
13347
+ else {
13348
+ newLayoutGroup.appendChild(layoutGroup);
13349
+ newLayoutGroup.append(tabLayoutGroup);
13508
13350
  }
13509
- } else if (myItem) {
13510
- var tabLayoutGroup = that.createLayoutItem('tabLayoutGroup', 'top');
13511
- tabLayoutGroup.appendChild(newItem);
13512
13351
 
13513
- if (targetItem instanceof LayoutGroup) {
13514
- targetItem.insertBefore(targetItem.firstChild, tabLayoutGroup);
13515
- } else if (targetItem instanceof LayoutItem) {
13516
- layoutGroup = that.createLayoutItem('layoutGroup');
13517
- layoutGroup.orientation = parentLayoutGroup.orientation;
13518
- layoutGroup.setAttribute('orientation', parentLayoutGroup.orientation);
13519
- targetItem.removeAttribute('size');
13520
- targetItem.parentElement.insertBefore(layoutGroup, targetItem);
13521
- layoutGroup.appendChild(targetItem);
13522
- layoutGroup.appendChild(tabLayoutGroup);
13352
+ if (layoutGroup.getAttribute('data-id') === 'root') {
13353
+ layoutGroup.setAttribute('data-id', newLayoutGroup.getAttribute('data-id'));
13354
+ newLayoutGroup.setAttribute('data-id', 'root');
13355
+ that.$.itemsContainer = newLayoutGroup;
13523
13356
  }
13524
- } else {
13525
- addTabItemChild(position);
13526
- }
13527
13357
 
13528
- break;
13358
+ resetGroup(layoutGroup);
13359
+ resetGroup(parentLayoutGroup);
13360
+ }
13529
13361
 
13530
- case 'top':
13531
- case 'bottom':
13532
- if (targetItem instanceof TabLayoutGroup) {
13533
- layoutGroup = that.createLayoutItem('layoutGroup', 'top');
13534
- targetItem.removeAttribute('size');
13535
- targetItem.parentElement.insertBefore(layoutGroup, targetItem);
13536
-
13537
- if (position === 'top') {
13538
- layoutGroup.appendChild(that.createLayoutItem());
13539
- layoutGroup.appendChild(targetItem);
13540
- } else {
13541
- layoutGroup.appendChild(targetItem);
13542
- layoutGroup.appendChild(that.createLayoutItem());
13362
+ if (myItem) {
13363
+ switch (position) {
13364
+ case 'center': {
13365
+ if (targetItem instanceof TabLayoutGroup || targetItem instanceof TabLayoutItem) {
13366
+ parentLayoutGroup.appendChild(newItem);
13367
+ }
13368
+ else {
13369
+ var tabLayoutGroup = that.createLayoutItem('tabLayoutGroup', 'top');
13370
+ tabLayoutGroup.appendChild(newItem);
13371
+
13372
+ if (targetItem instanceof LayoutGroup && !(targetItem instanceof TabLayoutItem)) {
13373
+ targetItem.appendChild(tabLayoutGroup);
13374
+ resetGroup(targetItem);
13375
+ }
13376
+ else if (targetItem instanceof LayoutItem) {
13377
+ layoutGroup = that.createLayoutItem('layoutGroup');
13378
+
13379
+ targetItem.parentElement.insertBefore(layoutGroup, targetItem);
13380
+ layoutGroup.appendChild(targetItem);
13381
+ layoutGroup.appendChild(tabLayoutGroup);
13382
+ resetGroup(layoutGroup);
13383
+ }
13384
+ }
13385
+ }
13386
+ break;
13387
+ case 'left':
13388
+ case 'right': {
13389
+ var tabLayoutGroup = that.createLayoutItem('tabLayoutGroup', 'top');
13390
+ tabLayoutGroup.appendChild(newItem);
13391
+ if (targetItem.getAttribute('data-id') === 'root') {
13392
+ tabLayoutGroup.position = position;
13393
+ addRootTab(tabLayoutGroup, position);
13394
+ }
13395
+ else {
13396
+ addRootTab(tabLayoutGroup, position);
13397
+ }
13398
+ }
13399
+ break;
13400
+ case 'top':
13401
+ case 'bottom': {
13402
+ var tabLayoutGroup = that.createLayoutItem('tabLayoutGroup', 'top');
13403
+ tabLayoutGroup.appendChild(newItem);
13404
+
13405
+ if (targetItem.getAttribute('data-id') === 'root') {
13406
+ tabLayoutGroup.position = position;
13407
+ addRootTab(tabLayoutGroup, position);
13408
+ }
13409
+ else {
13410
+ addRootTab(tabLayoutGroup, position);
13411
+ }
13412
+ break;
13413
+ }
13543
13414
  }
13544
- } else {
13545
- addTabItemChild(position);
13546
- }
13547
13415
 
13548
- break;
13549
- }
13416
+ return;
13417
+ }
13550
13418
 
13551
- that.refresh();
13552
- }
13553
- /**
13554
- * Creates a new item by splitting the target Splitter
13555
- */
13419
+ switch (position) {
13420
+ case 'center':
13421
+ if (targetItem instanceof TabLayoutGroup || targetItem instanceof TabLayoutItem) {
13422
+ parentLayoutGroup.appendChild(newItem);
13423
+ }
13424
+ else {
13425
+ addTabItemChild();
13426
+ }
13427
+ break;
13428
+ case 'left':
13429
+ case 'right':
13430
+ if (targetItem instanceof TabLayoutGroup) {
13431
+ var firstItem = targetItem.querySelector('jqx-tab-layout-item');
13432
+
13433
+ if (firstItem && position === 'left') {
13434
+ targetItem.insertBefore(newItem, firstItem);
13435
+ }
13436
+ else {
13437
+ targetItem.appendChild(newItem);
13438
+ }
13439
+ }
13440
+ else if (targetItem instanceof TabLayoutItem) {
13441
+ var tabLayoutGroup = that.createLayoutItem('tabLayoutGroup', 'top');
13442
+ var parentLayoutGroup = targetItem.parentElement;
13556
13443
 
13557
- }, {
13558
- key: "_addLayoutItem",
13559
- value: function _addLayoutItem(targetItem, position, myItem) {
13560
- var that = this;
13444
+ tabLayoutGroup.appendChild(newItem);
13561
13445
 
13562
- if (!targetItem) {
13563
- return;
13564
- }
13446
+ layoutGroup = that.createLayoutItem('layoutGroup');
13565
13447
 
13566
- var resetGroup = function resetGroup(group) {
13567
- for (var i = 0; i < group.children.length; i++) {
13568
- var child = group.children[i];
13569
- child.removeAttribute('size');
13570
- }
13448
+ parentLayoutGroup.parentElement.insertBefore(layoutGroup, parentLayoutGroup);
13571
13449
 
13572
- group.removeAttribute('size');
13573
- };
13574
-
13575
- var isTabItem = targetItem instanceof TabLayoutItem || targetItem instanceof TabLayoutGroup || myItem && myItem instanceof TabLayoutItem;
13576
-
13577
- if (isTabItem) {
13578
- return that._addTabLayoutItem(targetItem, position, myItem);
13579
- }
13580
-
13581
- var newItem = that.createLayoutItem();
13582
- var parentLayoutGroup = targetItem.closest('.jqx-layout-group');
13583
- var layoutGroup;
13584
-
13585
- if (myItem) {
13586
- that.moveChildren(myItem, newItem);
13587
- }
13588
-
13589
- if (position === 'center') {
13590
- if (targetItem instanceof LayoutGroup) {
13591
- layoutGroup = parentLayoutGroup;
13592
- layoutGroup.appendChild(newItem);
13593
- resetGroup(layoutGroup);
13594
- that.refresh();
13595
- return newItem;
13596
- } else if (targetItem instanceof LayoutItem) {
13597
- layoutGroup = that.createLayoutItem('layoutGroup');
13598
- layoutGroup.orientation = parentLayoutGroup.orientation;
13599
- layoutGroup.setAttribute('orientation', parentLayoutGroup.orientation);
13600
- targetItem.removeAttribute('size');
13601
- targetItem.parentElement.insertBefore(layoutGroup, targetItem);
13602
- layoutGroup.appendChild(targetItem);
13603
- layoutGroup.appendChild(newItem);
13604
- that.refresh();
13605
- return layoutGroup;
13606
- }
13607
- }
13608
-
13609
- if (parentLayoutGroup.orientation === 'vertical' && (position === 'left' || position === 'right') || parentLayoutGroup.orientation === 'horizontal' && (position === 'top' || position === 'bottom')) {
13610
- layoutGroup = parentLayoutGroup;
13611
-
13612
- if (targetItem instanceof LayoutGroup) {
13613
- if (position === 'left' || position === 'top') {
13614
- layoutGroup.insertBefore(newItem, layoutGroup.children[0]);
13615
- } else {
13616
- layoutGroup.appendChild(newItem);
13617
- }
13618
-
13619
- resetGroup(targetItem);
13620
- } else {
13621
- var layoutGroupItems = layoutGroup.items,
13622
- newItemIndex = Math.max(0, layoutGroupItems.indexOf(targetItem) + (position === 'top' || position === 'left' ? 0 : 1));
13623
- layoutGroup.insertBefore(newItem, layoutGroupItems[newItemIndex]);
13624
- resetGroup(layoutGroup);
13625
- }
13626
- } else {
13627
- if (targetItem instanceof LayoutGroup) {
13628
- var parentLayoutGroup = targetItem.parentElement;
13629
- layoutGroup = targetItem;
13630
- var newLayoutGroup = that.createLayoutItem('layoutGroup', position);
13631
- parentLayoutGroup.insertBefore(newLayoutGroup, layoutGroup);
13632
-
13633
- if (position === 'top' || position === 'left') {
13634
- newLayoutGroup.append(newItem);
13635
- newLayoutGroup.appendChild(layoutGroup);
13636
- } else {
13637
- newLayoutGroup.appendChild(layoutGroup);
13638
- newLayoutGroup.append(newItem);
13639
- }
13640
-
13641
- if (layoutGroup.getAttribute('data-id') === 'root') {
13642
- layoutGroup.setAttribute('data-id', newLayoutGroup.getAttribute('data-id'));
13643
- newLayoutGroup.setAttribute('data-id', 'root');
13644
- that.$.itemsContainer = newLayoutGroup;
13645
- }
13646
-
13647
- resetGroup(parentLayoutGroup);
13648
- } else {
13649
- layoutGroup = that.createLayoutItem('layoutGroup', position);
13650
- parentLayoutGroup.insertBefore(layoutGroup, targetItem);
13651
-
13652
- if (position === 'top' || position === 'left') {
13653
- layoutGroup.appendChild(newItem);
13654
- layoutGroup.appendChild(targetItem);
13655
- } else {
13656
- layoutGroup.appendChild(targetItem);
13657
- layoutGroup.appendChild(newItem);
13658
- }
13659
-
13660
- resetGroup(layoutGroup);
13450
+ if (position === 'right') {
13451
+ layoutGroup.appendChild(parentLayoutGroup);
13452
+ layoutGroup.appendChild(tabLayoutGroup);
13453
+ }
13454
+ else if (position === 'left') {
13455
+ layoutGroup.appendChild(tabLayoutGroup);
13456
+ layoutGroup.appendChild(parentLayoutGroup);
13457
+ }
13458
+ }
13459
+ else if (myItem) {
13460
+ var tabLayoutGroup = that.createLayoutItem('tabLayoutGroup', 'top');
13461
+ tabLayoutGroup.appendChild(newItem);
13462
+
13463
+ if (targetItem instanceof LayoutGroup) {
13464
+ targetItem.insertBefore(targetItem.firstChild, tabLayoutGroup);
13465
+ }
13466
+ else if (targetItem instanceof LayoutItem) {
13467
+ layoutGroup = that.createLayoutItem('layoutGroup');
13468
+ layoutGroup.orientation = parentLayoutGroup.orientation;
13469
+ layoutGroup.setAttribute('orientation', parentLayoutGroup.orientation);
13470
+
13471
+ targetItem.removeAttribute('size');
13472
+ targetItem.parentElement.insertBefore(layoutGroup, targetItem);
13473
+ layoutGroup.appendChild(targetItem);
13474
+ layoutGroup.appendChild(tabLayoutGroup);
13475
+ }
13476
+ }
13477
+ else {
13478
+ addTabItemChild(position);
13479
+ }
13480
+ break;
13481
+ case 'top':
13482
+ case 'bottom':
13483
+ if (targetItem instanceof TabLayoutGroup) {
13484
+ layoutGroup = that.createLayoutItem('layoutGroup', 'top');
13485
+ targetItem.removeAttribute('size');
13486
+
13487
+ targetItem.parentElement.insertBefore(layoutGroup, targetItem);
13488
+
13489
+ if (position === 'top') {
13490
+ layoutGroup.appendChild(that.createLayoutItem());
13491
+ layoutGroup.appendChild(targetItem);
13492
+ }
13493
+ else {
13494
+ layoutGroup.appendChild(targetItem);
13495
+ layoutGroup.appendChild(that.createLayoutItem());
13496
+ }
13497
+ }
13498
+ else {
13499
+ addTabItemChild(position);
13500
+ }
13501
+ break;
13661
13502
  }
13662
- }
13663
13503
 
13664
- that.refresh();
13665
- return newItem;
13504
+ that.refresh();
13666
13505
  }
13506
+
13667
13507
  /**
13668
- * Shows/Hides the Add buttons
13669
- * @param {any} item
13508
+ * Creates a new item by splitting the target Splitter
13670
13509
  */
13510
+ _addLayoutItem(targetItem, position, myItem) {
13511
+ var that = this;
13671
13512
 
13672
- }, {
13673
- key: "_handleButtonsVisibility",
13674
- value: function _handleButtonsVisibility(item) {
13675
- var that = this;
13513
+ if (!targetItem) {
13514
+ return;
13515
+ }
13676
13516
 
13677
- if (!that._buttons) {
13678
- that._buttons = document.createElement('div');
13517
+ var resetGroup = function (group) {
13518
+ for (var i = 0; i < group.children.length; i++) {
13519
+ var child = group.children[i];
13679
13520
 
13680
- that._buttons.classList.add('jqx-layout-buttons-container');
13521
+ child.removeAttribute('size');
13522
+ }
13681
13523
 
13682
- that._buttons.innerHTML = "<div role=\"button\" position=\"top\"></div>\n <div role=\"button\" position=\"bottom\"></div>\n <div role=\"button\" position=\"center\"></div>\n <div role=\"button\" position=\"left\"></div>\n <div role=\"button\" position=\"right\"></div>";
13683
- }
13524
+ group.removeAttribute('size');
13525
+ }
13684
13526
 
13685
- if (!item) {
13686
- if (that._buttons.parentElement) {
13687
- that._buttons.parentElement.removeChild(that._buttons);
13527
+ var isTabItem = targetItem instanceof TabLayoutItem || targetItem instanceof TabLayoutGroup || (myItem && myItem instanceof TabLayoutItem);
13688
13528
 
13689
- return;
13529
+ if (isTabItem) {
13530
+ return that._addTabLayoutItem(targetItem, position, myItem);
13690
13531
  }
13691
- }
13692
13532
 
13693
- if (item) {
13694
- var buttonPosition = item._buttonPosition || [],
13695
- buttons = that._buttons.children;
13533
+ var newItem = that.createLayoutItem();
13696
13534
 
13697
- for (var b = 0; b < buttons.length; b++) {
13698
- var button = buttons[b];
13699
- button.position = button.getAttribute('position');
13700
- button.item = item;
13701
- buttonPosition.length && buttonPosition.indexOf(button.getAttribute('position')) < 0 ? button.classList.add('jqx-hidden') : button.classList.remove('jqx-hidden');
13535
+ var parentLayoutGroup = targetItem.closest('.jqx-layout-group');
13536
+ var layoutGroup;
13702
13537
 
13703
- button.onmouseenter = function () {
13704
- button.setAttribute('hover', '');
13705
- };
13706
-
13707
- button.onmouseleave = function () {
13708
- button.removeAttribute('hover');
13709
- };
13538
+ if (myItem) {
13539
+ that.moveChildren(myItem, newItem);
13710
13540
  }
13711
13541
 
13712
- if (that.allowLiveSplit && that._buttons.parentElement !== item) {
13713
- item.appendChild(that._buttons);
13714
- }
13715
- }
13716
- }
13717
- }, {
13718
- key: "_handleDropArea",
13719
- value: function _handleDropArea(item) {
13720
- var position = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'center';
13721
- var that = this;
13542
+ if (position === 'center') {
13543
+ if (targetItem instanceof LayoutGroup) {
13544
+ layoutGroup = parentLayoutGroup;
13545
+ layoutGroup.appendChild(newItem);
13722
13546
 
13723
- var positionDropArea = function positionDropArea(position) {
13724
- var areaSize = 50;
13547
+ resetGroup(layoutGroup);
13548
+ that.refresh();
13725
13549
 
13726
- switch (position) {
13727
- case 'left':
13728
- that._dropArea.style.top = '0px';
13729
- that._dropArea.style.left = '0px';
13730
- that._dropArea.style.width = areaSize + '%';
13731
- that._dropArea.style.height = '100%';
13732
- break;
13733
-
13734
- case 'right':
13735
- that._dropArea.style.top = '0px';
13736
- that._dropArea.style.left = "calc(100% - ".concat(areaSize, "%)");
13737
- that._dropArea.style.width = areaSize + '%';
13738
- that._dropArea.style.height = '100%';
13739
- break;
13740
-
13741
- case 'top':
13742
- that._dropArea.style.top = '0px';
13743
- that._dropArea.style.left = '0px';
13744
- that._dropArea.style.width = '100%';
13745
- that._dropArea.style.height = areaSize + '%';
13746
- break;
13747
-
13748
- case 'bottom':
13749
- that._dropArea.style.top = "calc(100% - ".concat(areaSize, "%)");
13750
- that._dropArea.style.left = '0px';
13751
- that._dropArea.style.width = '100%';
13752
- that._dropArea.style.height = areaSize + '%';
13753
- break;
13754
-
13755
- case 'center':
13756
- that._dropArea.style.top = '0px';
13757
- that._dropArea.style.left = '0px';
13758
- that._dropArea.style.width = '100%';
13759
- that._dropArea.style.height = '100%';
13760
- break;
13761
- }
13762
- };
13550
+ return newItem;
13551
+ }
13552
+ else if (targetItem instanceof LayoutItem) {
13553
+ layoutGroup = that.createLayoutItem('layoutGroup');
13554
+ layoutGroup.orientation = parentLayoutGroup.orientation;
13555
+ layoutGroup.setAttribute('orientation', parentLayoutGroup.orientation);
13763
13556
 
13764
- if (that._dropArea && that._dropArea.parentElement === item) {
13765
- positionDropArea(position);
13766
- return;
13767
- }
13557
+ targetItem.removeAttribute('size');
13558
+ targetItem.parentElement.insertBefore(layoutGroup, targetItem);
13559
+ layoutGroup.appendChild(targetItem);
13560
+ layoutGroup.appendChild(newItem);
13768
13561
 
13769
- if (that._dropArea) {
13770
- that._dropArea.remove();
13771
- }
13562
+ that.refresh();
13772
13563
 
13773
- if (!that._dragDetails || !item) {
13774
- return;
13775
- }
13564
+ return layoutGroup;
13565
+ }
13566
+ }
13776
13567
 
13777
- that._dropArea = document.createElement('div');
13568
+ if (parentLayoutGroup.orientation === 'vertical' && (position === 'left' || position === 'right') ||
13569
+ parentLayoutGroup.orientation === 'horizontal' && (position === 'top' || position === 'bottom')) {
13570
+ layoutGroup = parentLayoutGroup;
13778
13571
 
13779
- that._dropArea.classList.add('jqx-layout-drop-area');
13572
+ if (targetItem instanceof LayoutGroup) {
13573
+ if (position === 'left' || position === 'top') {
13574
+ layoutGroup.insertBefore(newItem, layoutGroup.children[0]);
13575
+ }
13576
+ else {
13577
+ layoutGroup.appendChild(newItem);
13578
+ }
13780
13579
 
13781
- item.appendChild(that._dropArea);
13782
- that._dropArea.style.opacity = 1;
13783
- positionDropArea(position);
13784
- }
13785
- }, {
13786
- key: "_handleSplitter",
13787
- value: function _handleSplitter(item) {
13788
- var that = this;
13580
+ resetGroup(targetItem);
13581
+ }
13582
+ else {
13583
+ var layoutGroupItems = layoutGroup.items,
13584
+ newItemIndex = Math.max(0, layoutGroupItems.indexOf(targetItem) + (position === 'top' || position === 'left' ? 0 : 1));
13585
+
13586
+ layoutGroup.insertBefore(newItem, layoutGroupItems[newItemIndex]);
13587
+ resetGroup(layoutGroup);
13588
+ }
13589
+ }
13590
+ else {
13591
+ if (targetItem instanceof LayoutGroup) {
13592
+ var parentLayoutGroup = targetItem.parentElement;
13593
+ layoutGroup = targetItem;
13594
+ var newLayoutGroup = that.createLayoutItem('layoutGroup', position);
13789
13595
 
13790
- if (!item) {
13791
- return;
13792
- }
13596
+ parentLayoutGroup.insertBefore(newLayoutGroup, layoutGroup);
13793
13597
 
13794
- if (item.hasAttribute('tab')) {
13795
- item = item.parentElement;
13796
- }
13598
+ if (position === 'top' || position === 'left') {
13599
+ newLayoutGroup.append(newItem);
13600
+ newLayoutGroup.appendChild(layoutGroup);
13601
+ }
13602
+ else {
13603
+ newLayoutGroup.appendChild(layoutGroup);
13604
+ newLayoutGroup.append(newItem);
13605
+ }
13797
13606
 
13798
- if (item._splitter) {
13799
- item._splitter.remove();
13800
- }
13607
+ if (layoutGroup.getAttribute('data-id') === 'root') {
13608
+ layoutGroup.setAttribute('data-id', newLayoutGroup.getAttribute('data-id'));
13609
+ newLayoutGroup.setAttribute('data-id', 'root');
13610
+ that.$.itemsContainer = newLayoutGroup;
13611
+ }
13801
13612
 
13802
- if (!item._splitter) {
13803
- item._splitter = document.createElement('div');
13804
- }
13613
+ resetGroup(parentLayoutGroup);
13614
+ }
13615
+ else {
13616
+ layoutGroup = that.createLayoutItem('layoutGroup', position);
13805
13617
 
13806
- if (that._dragDetails && that._dragDetails.dragging) {
13807
- item._splitter.remove();
13618
+ parentLayoutGroup.insertBefore(layoutGroup, targetItem);
13808
13619
 
13809
- return;
13810
- }
13620
+ if (position === 'top' || position === 'left') {
13621
+ layoutGroup.appendChild(newItem);
13622
+ layoutGroup.appendChild(targetItem);
13623
+ }
13624
+ else {
13625
+ layoutGroup.appendChild(targetItem);
13626
+ layoutGroup.appendChild(newItem);
13627
+ }
13811
13628
 
13812
- if (item.modifiers.indexOf('resize') === -1) {
13813
- return;
13814
- }
13629
+ resetGroup(layoutGroup);
13630
+ }
13631
+ }
13815
13632
 
13816
- item.appendChild(item._splitter);
13817
- var layoutGroup = item.parentElement;
13633
+ that.refresh();
13818
13634
 
13819
- if (layoutGroup) {
13820
- item._splitter.className = 'jqx-layout-splitter';
13821
- item._splitter.item = item;
13635
+ return newItem;
13636
+ }
13822
13637
 
13823
- item._splitter.removeAttribute('drag');
13638
+ /**
13639
+ * Shows/Hides the Add buttons
13640
+ * @param {any} item
13641
+ */
13642
+ _handleButtonsVisibility(item) {
13643
+ var that = this;
13644
+
13645
+ if (!that._buttons) {
13646
+ that._buttons = document.createElement('div');
13647
+ that._buttons.classList.add('jqx-layout-buttons-container');
13648
+ that._buttons.innerHTML = `<div role="button" position="top"></div>
13649
+ <div role="button" position="bottom"></div>
13650
+ <div role="button" position="center"></div>
13651
+ <div role="button" position="left"></div>
13652
+ <div role="button" position="right"></div>`;
13824
13653
 
13825
- var orientation = layoutGroup.orientation;
13654
+ }
13826
13655
 
13827
- if (item.nextElementSibling && item.nextElementSibling.hasAttribute('data-id')) {
13828
- item._splitter.classList.add(orientation);
13829
- } else if (item.previousElementSibling && item.previousElementSibling.hasAttribute('data-id')) {
13830
- item._splitter.classList.add(orientation);
13656
+ if (!item) {
13657
+ if (that._buttons.parentElement) {
13658
+ that._buttons.parentElement.removeChild(that._buttons);
13831
13659
 
13832
- item._splitter.classList.add('last');
13660
+ return;
13661
+ }
13833
13662
  }
13834
13663
 
13835
- var handleResize = function handleResize(splitter) {
13836
- splitter.style.top = '';
13837
- splitter.style.left = '';
13838
- splitter.style.bottom = '';
13839
- splitter.style.right = '';
13840
-
13841
- splitter.onpointerdown = function (event) {
13842
- var item = event.target.item;
13843
- item.style.overflow = 'hidden';
13844
- that._resizeDetails = {
13845
- splitter: event.target,
13846
- splitterRect: event.target.getBoundingClientRect(),
13847
- itemRect: item.getBoundingClientRect(),
13848
- item: item,
13849
- itemSize: item.size,
13850
- group: item.parentElement,
13851
- clientX: event.clientX,
13852
- clientY: event.clientY
13853
- };
13664
+ if (item) {
13665
+ var buttonPosition = item._buttonPosition || [],
13666
+ buttons = that._buttons.children;
13854
13667
 
13855
- if (that._selectedItem !== item) {
13856
- that.querySelectorAll('[data-id]').forEach(function (i) {
13857
- i.removeAttribute('selected');
13858
- });
13859
- that.selectedIndex = item.getAttribute('index');
13860
- item.setAttribute('selected', '');
13861
- that._selectedItem = item;
13862
13668
 
13863
- that._handleButtonsVisibility(item);
13669
+ for (var b = 0; b < buttons.length; b++) {
13670
+ var button = buttons[b];
13671
+
13672
+ button.position = button.getAttribute('position');
13673
+ button.item = item;
13674
+ buttonPosition.length && buttonPosition.indexOf(button.getAttribute('position')) < 0 ? button.classList.add('jqx-hidden') : button.classList.remove('jqx-hidden');
13675
+
13676
+ button.onmouseenter = function () {
13677
+ button.setAttribute('hover', '');
13678
+ }
13679
+ button.onmouseleave = function () {
13680
+ button.removeAttribute('hover')
13681
+ }
13864
13682
  }
13865
13683
 
13866
- if (item.previousElementSibling && item.previousElementSibling.hasAttribute('data-id')) {
13867
- that._resizeDetails.previousItemRect = item.previousElementSibling.getBoundingClientRect();
13868
- that._resizeDetails.previousItem = item.previousElementSibling;
13869
- that._resizeDetails.previousItemSize = item.previousElementSibling.size;
13870
- that._resizeDetails.previousItem.style.overflow = 'hidden';
13871
- } else {
13872
- that._resizeDetails.previousItemRect = null;
13873
- that._resizeDetails.previousItem = null;
13684
+ if (that.allowLiveSplit && that._buttons.parentElement !== item) {
13685
+ item.appendChild(that._buttons);
13874
13686
  }
13687
+ }
13688
+ }
13875
13689
 
13876
- if (item.nextElementSibling && item.nextElementSibling.hasAttribute('data-id')) {
13877
- that._resizeDetails.nextItemRect = item.nextElementSibling.getBoundingClientRect();
13878
- that._resizeDetails.nextItem = item.nextElementSibling;
13879
- that._resizeDetails.nextItemSize = item.nextElementSibling.size;
13880
- that._resizeDetails.nextItem.style.overflow = 'hidden';
13881
- } else {
13882
- that._resizeDetails.nextItemRect = null;
13883
- that._resizeDetails.nextItem = null;
13690
+ _handleDropArea(item, position = 'center') {
13691
+ var that = this;
13692
+
13693
+ var positionDropArea = function (position) {
13694
+ var areaSize = 50;
13695
+
13696
+ switch (position) {
13697
+ case 'left':
13698
+ that._dropArea.style.top = '0px';
13699
+ that._dropArea.style.left = '0px';
13700
+ that._dropArea.style.width = areaSize + '%';
13701
+ that._dropArea.style.height = '100%';
13702
+ break;
13703
+ case 'right':
13704
+ that._dropArea.style.top = '0px';
13705
+ that._dropArea.style.left = `calc(100% - ${areaSize}%)`;
13706
+ that._dropArea.style.width = areaSize + '%';
13707
+ that._dropArea.style.height = '100%';
13708
+ break;
13709
+ case 'top':
13710
+ that._dropArea.style.top = '0px';
13711
+ that._dropArea.style.left = '0px';
13712
+ that._dropArea.style.width = '100%';
13713
+ that._dropArea.style.height = areaSize + '%';
13714
+ break;
13715
+ case 'bottom':
13716
+ that._dropArea.style.top = `calc(100% - ${areaSize}%)`;
13717
+ that._dropArea.style.left = '0px';
13718
+ that._dropArea.style.width = '100%';
13719
+ that._dropArea.style.height = areaSize + '%';
13720
+ break;
13721
+ case 'center':
13722
+ that._dropArea.style.top = '0px';
13723
+ that._dropArea.style.left = '0px';
13724
+ that._dropArea.style.width = '100%';
13725
+ that._dropArea.style.height = '100%';
13726
+ break;
13884
13727
  }
13885
- };
13886
- };
13728
+ }
13729
+
13730
+ if (that._dropArea && that._dropArea.parentElement === item) {
13731
+ positionDropArea(position);
13732
+ return;
13733
+ }
13734
+
13735
+ if (that._dropArea) {
13736
+ that._dropArea.remove();
13737
+ }
13887
13738
 
13888
- handleResize(item._splitter);
13889
- }
13739
+ if (!that._dragDetails || !item) {
13740
+ return;
13741
+ }
13742
+
13743
+ that._dropArea = document.createElement('div');
13744
+ that._dropArea.classList.add('jqx-layout-drop-area');
13745
+
13746
+ item.appendChild(that._dropArea);
13747
+
13748
+ that._dropArea.style.opacity = 1;
13749
+ positionDropArea(position);
13890
13750
  }
13891
- }]);
13892
13751
 
13893
- return SplitLayout;
13894
- }( /*#__PURE__*/_wrapNativeSuper(HTMLElement));
13752
+ _handleSplitter(item) {
13753
+ var that = this;
13895
13754
 
13896
- customElements.define('jqx-layout-group', LayoutGroup);
13897
- customElements.define('jqx-layout-item', LayoutItem);
13898
- customElements.define('jqx-tab-layout-group', TabLayoutGroup);
13899
- customElements.define('jqx-tab-layout-item', TabLayoutItem);
13900
- customElements.define('jqx-split-layout', SplitLayout);
13755
+ if (!item) {
13756
+ return;
13757
+ }
13901
13758
 
13759
+ if (item.hasAttribute('tab')) {
13760
+ item = item.parentElement;
13761
+ }
13902
13762
 
13763
+ if (item._splitter) {
13764
+ item._splitter.remove();
13765
+ }
13903
13766
 
13767
+ if (!item._splitter) {
13768
+ item._splitter = document.createElement('div');
13769
+ }
13904
13770
 
13771
+ if (that._dragDetails && that._dragDetails.dragging) {
13772
+ item._splitter.remove();
13773
+ return;
13774
+ }
13905
13775
 
13776
+ if (item.modifiers.indexOf('resize') === -1) {
13777
+ return;
13778
+ }
13906
13779
 
13780
+ item.appendChild(item._splitter);
13907
13781
 
13782
+ var layoutGroup = item.parentElement;
13908
13783
 
13784
+ if (layoutGroup) {
13785
+ item._splitter.className = 'jqx-layout-splitter';
13909
13786
 
13787
+ item._splitter.item = item;
13910
13788
 
13789
+ item._splitter.removeAttribute('drag');
13911
13790
 
13791
+ var orientation = layoutGroup.orientation;
13912
13792
 
13793
+ if (item.nextElementSibling && item.nextElementSibling.hasAttribute('data-id')) {
13794
+ item._splitter.classList.add(orientation);
13795
+ }
13796
+ else if (item.previousElementSibling && item.previousElementSibling.hasAttribute('data-id')) {
13797
+ item._splitter.classList.add(orientation);
13798
+ item._splitter.classList.add('last');
13799
+ }
13913
13800
 
13914
-
13801
+ var handleResize = function (splitter) {
13802
+ splitter.style.top = '';
13803
+ splitter.style.left = '';
13804
+ splitter.style.bottom = '';
13805
+ splitter.style.right = '';
13806
+
13807
+ splitter.onpointerdown = function (event) {
13808
+ var item = event.target.item;
13809
+ item.style.overflow = 'hidden';
13810
+
13811
+ that._resizeDetails = {
13812
+ splitter: event.target,
13813
+ splitterRect: event.target.getBoundingClientRect(),
13814
+ itemRect: item.getBoundingClientRect(),
13815
+ item: item,
13816
+ itemSize: item.size,
13817
+ group: item.parentElement,
13818
+ clientX: event.clientX,
13819
+ clientY: event.clientY
13820
+ }
13821
+
13822
+ if (that._selectedItem !== item) {
13823
+ that.querySelectorAll('[data-id]').forEach(function (i) { i.removeAttribute('selected') });
13824
+ that.selectedIndex = item.getAttribute('index');
13825
+ item.setAttribute('selected', '');
13826
+ that._selectedItem = item;
13827
+ that._handleButtonsVisibility(item);
13828
+ }
13829
+
13830
+ if (item.previousElementSibling && item.previousElementSibling.hasAttribute('data-id')) {
13831
+ that._resizeDetails.previousItemRect = item.previousElementSibling.getBoundingClientRect();
13832
+ that._resizeDetails.previousItem = item.previousElementSibling;
13833
+ that._resizeDetails.previousItemSize = item.previousElementSibling.size;
13834
+ that._resizeDetails.previousItem.style.overflow = 'hidden';
13835
+ }
13836
+ else {
13837
+ that._resizeDetails.previousItemRect = null;
13838
+ that._resizeDetails.previousItem = null;
13839
+ }
13840
+
13841
+ if (item.nextElementSibling && item.nextElementSibling.hasAttribute('data-id')) {
13842
+ that._resizeDetails.nextItemRect = item.nextElementSibling.getBoundingClientRect();
13843
+ that._resizeDetails.nextItem = item.nextElementSibling;
13844
+ that._resizeDetails.nextItemSize = item.nextElementSibling.size;
13845
+ that._resizeDetails.nextItem.style.overflow = 'hidden';
13846
+ }
13847
+ else {
13848
+ that._resizeDetails.nextItemRect = null;
13849
+ that._resizeDetails.nextItem = null;
13850
+ }
13851
+ }
13852
+ }
13853
+
13854
+ handleResize(item._splitter);
13855
+ }
13856
+ }
13857
+ }
13858
+
13859
+
13860
+ customElements.define('jqx-layout-group', LayoutGroup);
13861
+ customElements.define('jqx-layout-item', LayoutItem);
13862
+ customElements.define('jqx-tab-layout-group', TabLayoutGroup);
13863
+ customElements.define('jqx-tab-layout-item', TabLayoutItem);
13864
+ customElements.define('jqx-split-layout', SplitLayout);
13865
+
13866
+ })();
13915
13867
 
13916
13868
  /***/ })
13917
13869
 
@@ -13921,7 +13873,7 @@ customElements.define('jqx-split-layout', SplitLayout);
13921
13873
  /******/ var __webpack_module_cache__ = {};
13922
13874
  /******/
13923
13875
  /******/ // The require function
13924
- /******/ function __nested_webpack_require_429635__(moduleId) {
13876
+ /******/ function __nested_webpack_require_429671__(moduleId) {
13925
13877
  /******/ // Check if module is in cache
13926
13878
  /******/ var cachedModule = __webpack_module_cache__[moduleId];
13927
13879
  /******/ if (cachedModule !== undefined) {
@@ -13935,7 +13887,7 @@ customElements.define('jqx-split-layout', SplitLayout);
13935
13887
  /******/ };
13936
13888
  /******/
13937
13889
  /******/ // Execute the module function
13938
- /******/ __webpack_modules__[moduleId](module, module.exports, __nested_webpack_require_429635__);
13890
+ /******/ __webpack_modules__[moduleId](module, module.exports, __nested_webpack_require_429671__);
13939
13891
  /******/
13940
13892
  /******/ // Return the exports of the module
13941
13893
  /******/ return module.exports;
@@ -13944,17 +13896,17 @@ customElements.define('jqx-split-layout', SplitLayout);
13944
13896
  /************************************************************************/
13945
13897
  /******/ /* webpack/runtime/amd options */
13946
13898
  /******/ (() => {
13947
- /******/ __nested_webpack_require_429635__.amdO = {};
13899
+ /******/ __nested_webpack_require_429671__.amdO = {};
13948
13900
  /******/ })();
13949
13901
  /******/
13950
13902
  /******/ /* webpack/runtime/compat get default export */
13951
13903
  /******/ (() => {
13952
13904
  /******/ // getDefaultExport function for compatibility with non-harmony modules
13953
- /******/ __nested_webpack_require_429635__.n = (module) => {
13905
+ /******/ __nested_webpack_require_429671__.n = (module) => {
13954
13906
  /******/ var getter = module && module.__esModule ?
13955
13907
  /******/ () => (module['default']) :
13956
13908
  /******/ () => (module);
13957
- /******/ __nested_webpack_require_429635__.d(getter, { a: getter });
13909
+ /******/ __nested_webpack_require_429671__.d(getter, { a: getter });
13958
13910
  /******/ return getter;
13959
13911
  /******/ };
13960
13912
  /******/ })();
@@ -13962,9 +13914,9 @@ customElements.define('jqx-split-layout', SplitLayout);
13962
13914
  /******/ /* webpack/runtime/define property getters */
13963
13915
  /******/ (() => {
13964
13916
  /******/ // define getter functions for harmony exports
13965
- /******/ __nested_webpack_require_429635__.d = (exports, definition) => {
13917
+ /******/ __nested_webpack_require_429671__.d = (exports, definition) => {
13966
13918
  /******/ for(var key in definition) {
13967
- /******/ if(__nested_webpack_require_429635__.o(definition, key) && !__nested_webpack_require_429635__.o(exports, key)) {
13919
+ /******/ if(__nested_webpack_require_429671__.o(definition, key) && !__nested_webpack_require_429671__.o(exports, key)) {
13968
13920
  /******/ Object.defineProperty(exports, key, { enumerable: true, get: definition[key] });
13969
13921
  /******/ }
13970
13922
  /******/ }
@@ -13973,7 +13925,7 @@ customElements.define('jqx-split-layout', SplitLayout);
13973
13925
  /******/
13974
13926
  /******/ /* webpack/runtime/hasOwnProperty shorthand */
13975
13927
  /******/ (() => {
13976
- /******/ __nested_webpack_require_429635__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))
13928
+ /******/ __nested_webpack_require_429671__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))
13977
13929
  /******/ })();
13978
13930
  /******/
13979
13931
  /************************************************************************/
@@ -13981,14 +13933,20 @@ var __webpack_exports__ = {};
13981
13933
  // This entry need to be wrapped in an IIFE because it need to be in strict mode.
13982
13934
  (() => {
13983
13935
  "use strict";
13984
- /* harmony import */ var _jqxcore__WEBPACK_IMPORTED_MODULE_0__ = __nested_webpack_require_429635__(5459);
13985
- /* harmony import */ var _jqxcore__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__nested_webpack_require_429635__.n(_jqxcore__WEBPACK_IMPORTED_MODULE_0__);
13986
- /* harmony import */ var _jqxsplitlayout__WEBPACK_IMPORTED_MODULE_1__ = __nested_webpack_require_429635__(40);
13987
- /* harmony import */ var _jqxsplitlayout__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__nested_webpack_require_429635__.n(_jqxsplitlayout__WEBPACK_IMPORTED_MODULE_1__);
13936
+ /* harmony import */ var _jqxcore__WEBPACK_IMPORTED_MODULE_0__ = __nested_webpack_require_429671__(5459);
13937
+ /* harmony import */ var _jqxcore__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__nested_webpack_require_429671__.n(_jqxcore__WEBPACK_IMPORTED_MODULE_0__);
13938
+ /* harmony import */ var _jqxsplitlayout__WEBPACK_IMPORTED_MODULE_1__ = __nested_webpack_require_429671__(40);
13939
+ /* harmony import */ var _jqxsplitlayout__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__nested_webpack_require_429671__.n(_jqxsplitlayout__WEBPACK_IMPORTED_MODULE_1__);
13988
13940
 
13989
13941
 
13990
13942
  })();
13991
13943
 
13944
+ /******/ })()
13945
+ ;
13946
+ /******/ })()
13947
+ ;
13948
+ /******/ })()
13949
+ ;
13992
13950
  /******/ })()
13993
13951
  ;
13994
13952
  /******/ })()