@deephaven/golden-layout 0.19.2-beta.4 → 0.20.0

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 (144) hide show
  1. package/dist/LayoutManager.d.ts +313 -0
  2. package/dist/LayoutManager.d.ts.map +1 -0
  3. package/dist/LayoutManager.js +468 -450
  4. package/dist/LayoutManager.js.map +1 -1
  5. package/dist/base.d.ts +16 -0
  6. package/dist/base.d.ts.map +1 -0
  7. package/dist/base.js +6 -6
  8. package/dist/base.js.map +1 -1
  9. package/dist/config/Config.d.ts +146 -0
  10. package/dist/config/Config.d.ts.map +1 -0
  11. package/dist/config/{defaultConfig.js → Config.js} +6 -6
  12. package/dist/config/Config.js.map +1 -0
  13. package/dist/config/ItemConfig.d.ts +66 -0
  14. package/dist/config/ItemConfig.d.ts.map +1 -0
  15. package/dist/config/ItemConfig.js +14 -0
  16. package/dist/config/ItemConfig.js.map +1 -0
  17. package/dist/config/index.d.ts +3 -0
  18. package/dist/config/index.d.ts.map +1 -0
  19. package/dist/config/index.js +2 -6
  20. package/dist/config/index.js.map +1 -1
  21. package/dist/container/ItemContainer.d.ts +91 -0
  22. package/dist/container/ItemContainer.d.ts.map +1 -0
  23. package/dist/container/ItemContainer.js +110 -85
  24. package/dist/container/ItemContainer.js.map +1 -1
  25. package/dist/container/index.d.ts +3 -0
  26. package/dist/container/index.d.ts.map +1 -0
  27. package/dist/container/index.js +2 -4
  28. package/dist/container/index.js.map +1 -1
  29. package/dist/controls/BrowserPopout.d.ts +83 -0
  30. package/dist/controls/BrowserPopout.d.ts.map +1 -0
  31. package/dist/controls/BrowserPopout.js +135 -101
  32. package/dist/controls/BrowserPopout.js.map +1 -1
  33. package/dist/controls/DragProxy.d.ts +67 -0
  34. package/dist/controls/DragProxy.d.ts.map +1 -0
  35. package/dist/controls/DragProxy.js +135 -110
  36. package/dist/controls/DragProxy.js.map +1 -1
  37. package/dist/controls/DragSource.d.ts +30 -0
  38. package/dist/controls/DragSource.d.ts.map +1 -0
  39. package/dist/controls/DragSource.js +37 -29
  40. package/dist/controls/DragSource.js.map +1 -1
  41. package/dist/controls/DragSourceFromEvent.d.ts +30 -0
  42. package/dist/controls/DragSourceFromEvent.d.ts.map +1 -0
  43. package/dist/controls/DragSourceFromEvent.js +49 -36
  44. package/dist/controls/DragSourceFromEvent.js.map +1 -1
  45. package/dist/controls/DropTargetIndicator.d.ts +14 -0
  46. package/dist/controls/DropTargetIndicator.d.ts.map +1 -0
  47. package/dist/controls/DropTargetIndicator.js +18 -14
  48. package/dist/controls/DropTargetIndicator.js.map +1 -1
  49. package/dist/controls/Header.d.ts +145 -0
  50. package/dist/controls/Header.d.ts.map +1 -0
  51. package/dist/controls/Header.js +414 -271
  52. package/dist/controls/Header.js.map +1 -1
  53. package/dist/controls/HeaderButton.d.ts +9 -0
  54. package/dist/controls/HeaderButton.d.ts.map +1 -0
  55. package/dist/controls/HeaderButton.js +19 -13
  56. package/dist/controls/HeaderButton.js.map +1 -1
  57. package/dist/controls/Splitter.d.ts +12 -0
  58. package/dist/controls/Splitter.d.ts.map +1 -0
  59. package/dist/controls/Splitter.js +36 -20
  60. package/dist/controls/Splitter.js.map +1 -1
  61. package/dist/controls/Tab.d.ts +91 -0
  62. package/dist/controls/Tab.d.ts.map +1 -0
  63. package/dist/controls/Tab.js +131 -119
  64. package/dist/controls/Tab.js.map +1 -1
  65. package/dist/controls/TransitionIndicator.d.ts +25 -0
  66. package/dist/controls/TransitionIndicator.d.ts.map +1 -0
  67. package/dist/controls/TransitionIndicator.js +53 -39
  68. package/dist/controls/TransitionIndicator.js.map +1 -1
  69. package/dist/controls/index.d.ts +11 -0
  70. package/dist/controls/index.d.ts.map +1 -0
  71. package/dist/controls/index.js +10 -22
  72. package/dist/controls/index.js.map +1 -1
  73. package/dist/errors/ConfigurationError.d.ts +6 -0
  74. package/dist/errors/ConfigurationError.d.ts.map +1 -0
  75. package/dist/errors/ConfigurationError.js +15 -8
  76. package/dist/errors/ConfigurationError.js.map +1 -1
  77. package/dist/errors/index.d.ts +2 -0
  78. package/dist/errors/index.d.ts.map +1 -0
  79. package/dist/errors/index.js +1 -4
  80. package/dist/errors/index.js.map +1 -1
  81. package/dist/index.d.ts +9 -0
  82. package/dist/index.d.ts.map +1 -0
  83. package/dist/index.js +7 -1
  84. package/dist/index.js.map +1 -1
  85. package/dist/items/AbstractContentItem.d.ts +233 -0
  86. package/dist/items/AbstractContentItem.d.ts.map +1 -0
  87. package/dist/items/AbstractContentItem.js +284 -242
  88. package/dist/items/AbstractContentItem.js.map +1 -1
  89. package/dist/items/Component.d.ts +30 -0
  90. package/dist/items/Component.d.ts.map +1 -0
  91. package/dist/items/Component.js +61 -42
  92. package/dist/items/Component.js.map +1 -1
  93. package/dist/items/Root.d.ts +18 -0
  94. package/dist/items/Root.d.ts.map +1 -0
  95. package/dist/items/Root.js +68 -38
  96. package/dist/items/Root.js.map +1 -1
  97. package/dist/items/RowOrColumn.d.ts +157 -0
  98. package/dist/items/RowOrColumn.d.ts.map +1 -0
  99. package/dist/items/RowOrColumn.js +219 -187
  100. package/dist/items/RowOrColumn.js.map +1 -1
  101. package/dist/items/Stack.d.ts +108 -0
  102. package/dist/items/Stack.d.ts.map +1 -0
  103. package/dist/items/Stack.js +218 -151
  104. package/dist/items/Stack.js.map +1 -1
  105. package/dist/items/index.d.ts +8 -0
  106. package/dist/items/index.d.ts.map +1 -0
  107. package/dist/items/index.js +7 -12
  108. package/dist/items/index.js.map +1 -1
  109. package/dist/utils/BubblingEvent.d.ts +8 -0
  110. package/dist/utils/BubblingEvent.d.ts.map +1 -0
  111. package/dist/utils/BubblingEvent.js +18 -9
  112. package/dist/utils/BubblingEvent.js.map +1 -1
  113. package/dist/utils/ConfigMinifier.d.ts +21 -0
  114. package/dist/utils/ConfigMinifier.d.ts.map +1 -0
  115. package/dist/utils/ConfigMinifier.js +121 -121
  116. package/dist/utils/ConfigMinifier.js.map +1 -1
  117. package/dist/utils/DragListener.d.ts +34 -0
  118. package/dist/utils/DragListener.d.ts.map +1 -0
  119. package/dist/utils/DragListener.js +103 -70
  120. package/dist/utils/DragListener.js.map +1 -1
  121. package/dist/utils/EventEmitter.d.ts +59 -0
  122. package/dist/utils/EventEmitter.d.ts.map +1 -0
  123. package/dist/utils/EventEmitter.js +64 -70
  124. package/dist/utils/EventEmitter.js.map +1 -1
  125. package/dist/utils/EventHub.d.ts +55 -0
  126. package/dist/utils/EventHub.d.ts.map +1 -0
  127. package/dist/utils/EventHub.js +83 -105
  128. package/dist/utils/EventHub.js.map +1 -1
  129. package/dist/utils/ReactComponentHandler.d.ts +54 -0
  130. package/dist/utils/ReactComponentHandler.d.ts.map +1 -0
  131. package/dist/utils/ReactComponentHandler.js +58 -56
  132. package/dist/utils/ReactComponentHandler.js.map +1 -1
  133. package/dist/utils/index.d.ts +8 -0
  134. package/dist/utils/index.d.ts.map +1 -0
  135. package/dist/utils/index.js +7 -21
  136. package/dist/utils/index.js.map +1 -1
  137. package/dist/utils/utils.d.ts +25 -0
  138. package/dist/utils/utils.d.ts.map +1 -0
  139. package/dist/utils/utils.js +21 -145
  140. package/dist/utils/utils.js.map +1 -1
  141. package/package.json +9 -5
  142. package/dist/config/ItemDefaultConfig.js +0 -8
  143. package/dist/config/ItemDefaultConfig.js.map +0 -1
  144. package/dist/config/defaultConfig.js.map +0 -1
@@ -1,4 +1,5 @@
1
- import utils from './utils.js';
1
+ function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
2
+
2
3
  /**
3
4
  * A generic and very fast EventEmitter
4
5
  * implementation. On top of emitting the
@@ -11,123 +12,116 @@ import utils from './utils.js';
11
12
  *
12
13
  * @constructor
13
14
  */
15
+ class EventEmitter {
16
+ /**
17
+ * The name of the event that's triggered for every other event
18
+ *
19
+ * usage
20
+ *
21
+ * myEmitter.on( EventEmitter.ALL_EVENT, function( eventName, argsArray ){
22
+ * //do stuff
23
+ * });
24
+ */
25
+ constructor() {
26
+ _defineProperty(this, "_mSubscriptions", void 0);
27
+
28
+ _defineProperty(this, "off", this.unbind);
14
29
 
15
- var EventEmitter = function EventEmitter() {
16
- this._mSubscriptions = {};
17
- this._mSubscriptions[EventEmitter.ALL_EVENT] = [];
30
+ _defineProperty(this, "trigger", this.emit);
31
+
32
+ this._mSubscriptions = {};
33
+ this._mSubscriptions[EventEmitter.ALL_EVENT] = [];
34
+ }
18
35
  /**
19
36
  * Listen for events
20
37
  *
21
- * @param {String} sEvent The name of the event to listen to
22
- * @param {Function} fCallback The callback to execute when the event occurs
23
- * @param {[Object]} oContext The value of the this pointer within the callback function
24
- *
25
- * @returns {void}
38
+ * @param eventName The name of the event to listen to
39
+ * @param callback The callback to execute when the event occurs
40
+ * @param context The value of the this pointer within the callback function
26
41
  */
27
42
 
28
- this.on = function (sEvent, fCallback, oContext) {
29
- if (!utils.isFunction(fCallback)) {
30
- throw new Error('Tried to listen to event ' + sEvent + ' with non-function callback ' + fCallback);
43
+
44
+ on(eventName, callback, context) {
45
+ if (typeof callback !== 'function') {
46
+ throw new Error('Tried to listen to event ' + eventName + ' with non-function callback ' + callback);
31
47
  }
32
48
 
33
- if (!this._mSubscriptions[sEvent]) {
34
- this._mSubscriptions[sEvent] = [];
49
+ if (!this._mSubscriptions[eventName]) {
50
+ this._mSubscriptions[eventName] = [];
35
51
  }
36
52
 
37
- this._mSubscriptions[sEvent].push({
38
- fn: fCallback,
39
- ctx: oContext
53
+ this._mSubscriptions[eventName].push({
54
+ fn: callback,
55
+ ctx: context
40
56
  });
41
- };
57
+ }
42
58
  /**
43
59
  * Emit an event and notify listeners
44
60
  *
45
- * @param {String} sEvent The name of the event
46
- * @param {Mixed} various additional arguments that will be passed to the listener
47
- *
48
- * @returns {void}
61
+ * @param eventName The name of the event
62
+ * @param args additional arguments that will be passed to the listener
49
63
  */
50
64
 
51
65
 
52
- this.emit = function (sEvent) {
53
- var i, ctx, args;
54
- args = Array.prototype.slice.call(arguments, 1);
55
- var subs = this._mSubscriptions[sEvent];
66
+ emit(eventName) {
67
+ var subs = this._mSubscriptions[eventName];
56
68
 
57
- if (subs) {
58
- subs = subs.slice();
69
+ for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
70
+ args[_key - 1] = arguments[_key];
71
+ }
59
72
 
60
- for (i = 0; i < subs.length; i++) {
61
- ctx = subs[i].ctx || {};
73
+ if (subs) {
74
+ for (var i = 0; i < subs.length; i++) {
75
+ var ctx = subs[i].ctx || {};
62
76
  subs[i].fn.apply(ctx, args);
63
77
  }
64
78
  }
65
79
 
66
- args.unshift(sEvent);
80
+ args.unshift(eventName);
81
+ var allEventSubs = this._mSubscriptions[EventEmitter.ALL_EVENT];
67
82
 
68
- var allEventSubs = this._mSubscriptions[EventEmitter.ALL_EVENT].slice();
83
+ for (var _i = 0; _i < allEventSubs.length; _i++) {
84
+ var _ctx = allEventSubs[_i].ctx || {};
69
85
 
70
- for (i = 0; i < allEventSubs.length; i++) {
71
- ctx = allEventSubs[i].ctx || {};
72
- allEventSubs[i].fn.apply(ctx, args);
86
+ allEventSubs[_i].fn.apply(_ctx, args);
73
87
  }
74
- };
88
+ }
75
89
  /**
76
90
  * Removes a listener for an event, or all listeners if no callback and context is provided.
77
91
  *
78
- * @param {String} sEvent The name of the event
79
- * @param {Function} fCallback The previously registered callback method (optional)
80
- * @param {Object} oContext The previously registered context (optional)
81
- *
82
- * @returns {void}
92
+ * @param eventName The name of the event
93
+ * @param callback The previously registered callback method (optional)
94
+ * @param context The previously registered context (optional)
83
95
  */
84
96
 
85
97
 
86
- this.unbind = function (sEvent, fCallback, oContext) {
87
- if (!this._mSubscriptions[sEvent]) {
88
- throw new Error('No subscribtions to unsubscribe for event ' + sEvent);
98
+ unbind(eventName, callback, context) {
99
+ if (!this._mSubscriptions[eventName]) {
100
+ throw new Error('No subscribtions to unsubscribe for event ' + eventName);
89
101
  }
90
102
 
91
- var i,
92
- bUnbound = false;
103
+ var bUnbound = false;
93
104
 
94
- for (i = 0; i < this._mSubscriptions[sEvent].length; i++) {
95
- if ((!fCallback || this._mSubscriptions[sEvent][i].fn === fCallback) && (!oContext || oContext === this._mSubscriptions[sEvent][i].ctx)) {
96
- this._mSubscriptions[sEvent].splice(i, 1);
105
+ for (var i = 0; i < this._mSubscriptions[eventName].length; i++) {
106
+ if ((!callback || this._mSubscriptions[eventName][i].fn === callback) && (!context || context === this._mSubscriptions[eventName][i].ctx)) {
107
+ this._mSubscriptions[eventName].splice(i, 1);
97
108
 
98
109
  bUnbound = true;
99
110
  }
100
111
  }
101
112
 
102
113
  if (bUnbound === false) {
103
- throw new Error('Nothing to unbind for ' + sEvent);
114
+ throw new Error('Nothing to unbind for ' + eventName);
104
115
  }
105
- };
116
+ }
106
117
  /**
107
118
  * Alias for unbind
108
119
  */
109
120
 
110
121
 
111
- this.off = this.unbind;
112
- /**
113
- * Alias for emit
114
- */
115
-
116
- this.trigger = this.emit;
117
- };
118
- /**
119
- * The name of the event that's triggered for every other event
120
- *
121
- * usage
122
- *
123
- * myEmitter.on( EventEmitter.ALL_EVENT, function( eventName, argsArray ){
124
- * //do stuff
125
- * });
126
- *
127
- * @type {String}
128
- */
122
+ }
129
123
 
124
+ _defineProperty(EventEmitter, "ALL_EVENT", '__all');
130
125
 
131
- EventEmitter.ALL_EVENT = '__all';
132
126
  export default EventEmitter;
133
127
  //# sourceMappingURL=EventEmitter.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"EventEmitter.js","names":["utils","EventEmitter","_mSubscriptions","ALL_EVENT","on","sEvent","fCallback","oContext","isFunction","Error","push","fn","ctx","emit","i","args","Array","prototype","slice","call","arguments","subs","length","apply","unshift","allEventSubs","unbind","bUnbound","splice","off","trigger"],"sources":["../../src/utils/EventEmitter.js"],"sourcesContent":["import utils from './utils.js';\n\n/**\n * A generic and very fast EventEmitter\n * implementation. On top of emitting the\n * actual event it emits an\n *\n * EventEmitter.ALL_EVENT\n *\n * event for every event triggered. This allows\n * to hook into it and proxy events forwards\n *\n * @constructor\n */\nconst EventEmitter = function () {\n this._mSubscriptions = {};\n this._mSubscriptions[EventEmitter.ALL_EVENT] = [];\n\n /**\n * Listen for events\n *\n * @param {String} sEvent The name of the event to listen to\n * @param {Function} fCallback The callback to execute when the event occurs\n * @param {[Object]} oContext The value of the this pointer within the callback function\n *\n * @returns {void}\n */\n this.on = function (sEvent, fCallback, oContext) {\n if (!utils.isFunction(fCallback)) {\n throw new Error(\n 'Tried to listen to event ' +\n sEvent +\n ' with non-function callback ' +\n fCallback\n );\n }\n\n if (!this._mSubscriptions[sEvent]) {\n this._mSubscriptions[sEvent] = [];\n }\n\n this._mSubscriptions[sEvent].push({ fn: fCallback, ctx: oContext });\n };\n\n /**\n * Emit an event and notify listeners\n *\n * @param {String} sEvent The name of the event\n * @param {Mixed} various additional arguments that will be passed to the listener\n *\n * @returns {void}\n */\n this.emit = function (sEvent) {\n var i, ctx, args;\n\n args = Array.prototype.slice.call(arguments, 1);\n\n var subs = this._mSubscriptions[sEvent];\n\n if (subs) {\n subs = subs.slice();\n for (i = 0; i < subs.length; i++) {\n ctx = subs[i].ctx || {};\n subs[i].fn.apply(ctx, args);\n }\n }\n\n args.unshift(sEvent);\n\n var allEventSubs = this._mSubscriptions[EventEmitter.ALL_EVENT].slice();\n\n for (i = 0; i < allEventSubs.length; i++) {\n ctx = allEventSubs[i].ctx || {};\n allEventSubs[i].fn.apply(ctx, args);\n }\n };\n\n /**\n * Removes a listener for an event, or all listeners if no callback and context is provided.\n *\n * @param {String} sEvent The name of the event\n * @param {Function} fCallback The previously registered callback method (optional)\n * @param {Object} oContext The previously registered context (optional)\n *\n * @returns {void}\n */\n this.unbind = function (sEvent, fCallback, oContext) {\n if (!this._mSubscriptions[sEvent]) {\n throw new Error('No subscribtions to unsubscribe for event ' + sEvent);\n }\n\n var i,\n bUnbound = false;\n\n for (i = 0; i < this._mSubscriptions[sEvent].length; i++) {\n if (\n (!fCallback || this._mSubscriptions[sEvent][i].fn === fCallback) &&\n (!oContext || oContext === this._mSubscriptions[sEvent][i].ctx)\n ) {\n this._mSubscriptions[sEvent].splice(i, 1);\n bUnbound = true;\n }\n }\n\n if (bUnbound === false) {\n throw new Error('Nothing to unbind for ' + sEvent);\n }\n };\n\n /**\n * Alias for unbind\n */\n this.off = this.unbind;\n\n /**\n * Alias for emit\n */\n this.trigger = this.emit;\n};\n\n/**\n * The name of the event that's triggered for every other event\n *\n * usage\n *\n * myEmitter.on( EventEmitter.ALL_EVENT, function( eventName, argsArray ){\n * \t//do stuff\n * });\n *\n * @type {String}\n */\nEventEmitter.ALL_EVENT = '__all';\n\nexport default EventEmitter;\n"],"mappings":"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"}
1
+ {"version":3,"file":"EventEmitter.js","names":["EventEmitter","constructor","unbind","emit","_mSubscriptions","ALL_EVENT","on","eventName","callback","context","Error","push","fn","ctx","subs","args","i","length","apply","unshift","allEventSubs","bUnbound","splice"],"sources":["../../src/utils/EventEmitter.ts"],"sourcesContent":["/**\n * A generic and very fast EventEmitter\n * implementation. On top of emitting the\n * actual event it emits an\n *\n * EventEmitter.ALL_EVENT\n *\n * event for every event triggered. This allows\n * to hook into it and proxy events forwards\n *\n * @constructor\n */\nclass EventEmitter {\n /**\n * The name of the event that's triggered for every other event\n *\n * usage\n *\n * myEmitter.on( EventEmitter.ALL_EVENT, function( eventName, argsArray ){\n * \t//do stuff\n * });\n */\n static ALL_EVENT = '__all';\n\n private _mSubscriptions: Record<string, { fn: Function; ctx?: unknown }[]>;\n\n constructor() {\n this._mSubscriptions = {};\n this._mSubscriptions[EventEmitter.ALL_EVENT] = [];\n }\n\n /**\n * Listen for events\n *\n * @param eventName The name of the event to listen to\n * @param callback The callback to execute when the event occurs\n * @param context The value of the this pointer within the callback function\n */\n on(eventName: string, callback: Function, context?: unknown): void {\n if (typeof callback !== 'function') {\n throw new Error(\n 'Tried to listen to event ' +\n eventName +\n ' with non-function callback ' +\n callback\n );\n }\n\n if (!this._mSubscriptions[eventName]) {\n this._mSubscriptions[eventName] = [];\n }\n\n this._mSubscriptions[eventName].push({ fn: callback, ctx: context });\n }\n\n /**\n * Emit an event and notify listeners\n *\n * @param eventName The name of the event\n * @param args additional arguments that will be passed to the listener\n */\n emit(eventName: string, ...args: unknown[]) {\n const subs = this._mSubscriptions[eventName];\n\n if (subs) {\n for (let i = 0; i < subs.length; i++) {\n const ctx = subs[i].ctx || {};\n subs[i].fn.apply(ctx, args);\n }\n }\n\n args.unshift(eventName);\n\n const allEventSubs = this._mSubscriptions[EventEmitter.ALL_EVENT];\n\n for (let i = 0; i < allEventSubs.length; i++) {\n const ctx = allEventSubs[i].ctx || {};\n allEventSubs[i].fn.apply(ctx, args);\n }\n }\n\n /**\n * Removes a listener for an event, or all listeners if no callback and context is provided.\n *\n * @param eventName The name of the event\n * @param callback The previously registered callback method (optional)\n * @param context The previously registered context (optional)\n */\n unbind(eventName: string, callback?: Function, context?: unknown) {\n if (!this._mSubscriptions[eventName]) {\n throw new Error('No subscribtions to unsubscribe for event ' + eventName);\n }\n\n let bUnbound = false;\n\n for (let i = 0; i < this._mSubscriptions[eventName].length; i++) {\n if (\n (!callback || this._mSubscriptions[eventName][i].fn === callback) &&\n (!context || context === this._mSubscriptions[eventName][i].ctx)\n ) {\n this._mSubscriptions[eventName].splice(i, 1);\n bUnbound = true;\n }\n }\n\n if (bUnbound === false) {\n throw new Error('Nothing to unbind for ' + eventName);\n }\n }\n\n /**\n * Alias for unbind\n */\n off = this.unbind;\n\n /**\n * Alias for emit\n */\n trigger = this.emit;\n}\n\nexport default EventEmitter;\n"],"mappings":"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"}
@@ -0,0 +1,55 @@
1
+ import type LayoutManager from '../LayoutManager';
2
+ import EventEmitter from './EventEmitter';
3
+ /**
4
+ * An EventEmitter singleton that propagates events
5
+ * across multiple windows. This is a little bit trickier since
6
+ * windows are allowed to open childWindows in their own right
7
+ *
8
+ * This means that we deal with a tree of windows. Hence the rules for event propagation are:
9
+ *
10
+ * - Propagate events from this layout to both parents and children
11
+ * - Propagate events from parent to this and children
12
+ * - Propagate events from children to the other children (but not the emitting one) and the parent
13
+ */
14
+ declare class EventHub extends EventEmitter {
15
+ private _layoutManager;
16
+ private _dontPropagateToParent;
17
+ private _childEventSource;
18
+ private _boundOnEventFromChild;
19
+ constructor(layoutManager: LayoutManager);
20
+ /**
21
+ * Called on every event emitted on this eventHub, regardles of origin.
22
+ */
23
+ private _onEventFromThis;
24
+ /**
25
+ * Called by the parent layout.
26
+ *
27
+ * @param args Event name + arguments
28
+ */
29
+ private _$onEventFromParent;
30
+ /**
31
+ * Callback for child events raised on the window
32
+ *
33
+ * @param event
34
+ */
35
+ private _onEventFromChild;
36
+ /**
37
+ * Propagates the event to the parent by emitting
38
+ * it on the parent's DOM window
39
+ *
40
+ * @param args Event name + arguments
41
+ */
42
+ private _propagateToParent;
43
+ /**
44
+ * Propagate events to children
45
+ *
46
+ * @param args Event name + arguments
47
+ */
48
+ private _propagateToChildren;
49
+ /**
50
+ * Destroys the EventHub
51
+ */
52
+ destroy(): void;
53
+ }
54
+ export default EventHub;
55
+ //# sourceMappingURL=EventHub.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EventHub.d.ts","sourceRoot":"","sources":["../../src/utils/EventHub.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,aAAa,MAAM,kBAAkB,CAAC;AAClD,OAAO,YAAY,MAAM,gBAAgB,CAAC;AAO1C;;;;;;;;;;GAUG;AACH,cAAM,QAAS,SAAQ,YAAY;IACjC,OAAO,CAAC,cAAc,CAAgB;IAEtC,OAAO,CAAC,sBAAsB,CAAgB;IAE9C,OAAO,CAAC,iBAAiB,CAAuB;IAEhD,OAAO,CAAC,sBAAsB,CAAyC;gBAE3D,aAAa,EAAE,aAAa;IAUxC;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAcxB;;;;OAIG;IACH,OAAO,CAAC,mBAAmB;IAK3B;;;;OAIG;IACH,OAAO,CAAC,iBAAiB;IAKzB;;;;;OAKG;IACH,OAAO,CAAC,kBAAkB;IAa1B;;;;OAIG;IACH,OAAO,CAAC,oBAAoB;IAU5B;;OAEG;IACH,OAAO;CAGR;AAED,eAAe,QAAQ,CAAC"}
@@ -1,6 +1,8 @@
1
+ function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
2
+
1
3
  import $ from 'jquery';
2
- import utils from './utils.js';
3
- import EventEmitter from './EventEmitter.js';
4
+ import EventEmitter from "./EventEmitter.js";
5
+
4
6
  /**
5
7
  * An EventEmitter singleton that propagates events
6
8
  * across multiple windows. This is a little bit trickier since
@@ -11,137 +13,113 @@ import EventEmitter from './EventEmitter.js';
11
13
  * - Propagate events from this layout to both parents and children
12
14
  * - Propagate events from parent to this and children
13
15
  * - Propagate events from children to the other children (but not the emitting one) and the parent
14
- *
15
- * @constructor
16
- *
17
- * @param {lm.LayoutManager} layoutManager
18
16
  */
17
+ class EventHub extends EventEmitter {
18
+ constructor(layoutManager) {
19
+ super();
19
20
 
20
- var EventHub = function EventHub(layoutManager) {
21
- EventEmitter.call(this);
22
- this._layoutManager = layoutManager;
23
- this._dontPropagateToParent = null;
24
- this._childEventSource = null;
25
- this.on(EventEmitter.ALL_EVENT, utils.fnBind(this._onEventFromThis, this));
26
- this._boundOnEventFromChild = utils.fnBind(this._onEventFromChild, this);
27
- $(window).on('gl_child_event', this._boundOnEventFromChild);
28
- };
29
- /**
30
- * Called on every event emitted on this eventHub, regardles of origin.
31
- *
32
- * @private
33
- *
34
- * @param {Mixed}
35
- *
36
- * @returns {void}
37
- */
21
+ _defineProperty(this, "_layoutManager", void 0);
22
+
23
+ _defineProperty(this, "_dontPropagateToParent", void 0);
38
24
 
25
+ _defineProperty(this, "_childEventSource", void 0);
39
26
 
40
- EventHub.prototype._onEventFromThis = function () {
41
- var args = Array.prototype.slice.call(arguments);
27
+ _defineProperty(this, "_boundOnEventFromChild", void 0);
42
28
 
43
- if (this._layoutManager.isSubWindow && args[0] !== this._dontPropagateToParent) {
44
- this._propagateToParent(args);
29
+ this._layoutManager = layoutManager;
30
+ this._dontPropagateToParent = null;
31
+ this._childEventSource = null;
32
+ this.on(EventEmitter.ALL_EVENT, this._onEventFromThis.bind(this));
33
+ this._boundOnEventFromChild = this._onEventFromChild.bind(this);
34
+ $(window).on('gl_child_event', this._boundOnEventFromChild);
45
35
  }
36
+ /**
37
+ * Called on every event emitted on this eventHub, regardles of origin.
38
+ */
46
39
 
47
- this._propagateToChildren(args); //Reset
48
40
 
41
+ _onEventFromThis() {
42
+ for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
43
+ args[_key] = arguments[_key];
44
+ }
49
45
 
50
- this._dontPropagateToParent = null;
51
- this._childEventSource = null;
52
- };
53
- /**
54
- * Called by the parent layout.
55
- *
56
- * @param {Array} args Event name + arguments
57
- *
58
- * @returns {void}
59
- */
46
+ if (this._layoutManager.isSubWindow && args[0] !== this._dontPropagateToParent) {
47
+ this._propagateToParent(args);
48
+ }
60
49
 
50
+ this._propagateToChildren(args); //Reset
61
51
 
62
- EventHub.prototype._$onEventFromParent = function (args) {
63
- this._dontPropagateToParent = args[0];
64
- this.emit.apply(this, args);
65
- };
66
- /**
67
- * Callback for child events raised on the window
68
- *
69
- * @param {DOMEvent} event
70
- * @private
71
- *
72
- * @returns {void}
73
- */
74
52
 
53
+ this._dontPropagateToParent = null;
54
+ this._childEventSource = null;
55
+ }
56
+ /**
57
+ * Called by the parent layout.
58
+ *
59
+ * @param args Event name + arguments
60
+ */
75
61
 
76
- EventHub.prototype._onEventFromChild = function (event) {
77
- this._childEventSource = event.originalEvent.__gl;
78
- this.emit.apply(this, event.originalEvent.__glArgs);
79
- };
80
- /**
81
- * Propagates the event to the parent by emitting
82
- * it on the parent's DOM window
83
- *
84
- * @param {Array} args Event name + arguments
85
- * @private
86
- *
87
- * @returns {void}
88
- */
89
62
 
63
+ _$onEventFromParent(args) {
64
+ this._dontPropagateToParent = args[0];
65
+ this.emit.apply(this, args);
66
+ }
67
+ /**
68
+ * Callback for child events raised on the window
69
+ *
70
+ * @param event
71
+ */
90
72
 
91
- EventHub.prototype._propagateToParent = function (args) {
92
- var event,
93
- eventName = 'gl_child_event';
94
73
 
95
- if (document.createEvent) {
96
- event = window.opener.document.createEvent('HTMLEvents');
97
- event.initEvent(eventName, true, true);
98
- } else {
99
- event = window.opener.document.createEventObject();
100
- event.eventType = eventName;
74
+ _onEventFromChild(event) {
75
+ this._childEventSource = event.originalEvent.__gl;
76
+ this.emit.apply(this, event.originalEvent.__glArgs);
101
77
  }
78
+ /**
79
+ * Propagates the event to the parent by emitting
80
+ * it on the parent's DOM window
81
+ *
82
+ * @param args Event name + arguments
83
+ */
84
+
102
85
 
103
- event.eventName = eventName;
104
- event.__glArgs = args;
105
- event.__gl = this._layoutManager;
86
+ _propagateToParent(args) {
87
+ var _window$opener;
106
88
 
107
- if (document.createEvent) {
89
+ var eventName = 'gl_child_event';
90
+ var event = (_window$opener = window.opener) === null || _window$opener === void 0 ? void 0 : _window$opener.document.createEvent('HTMLEvents');
91
+ event.initEvent(eventName, true, true);
92
+ event.eventName = eventName;
93
+ event.__glArgs = args;
94
+ event.__gl = this._layoutManager;
108
95
  window.opener.dispatchEvent(event);
109
- } else {
110
- window.opener.fireEvent('on' + event.eventType, event);
111
96
  }
112
- };
113
- /**
114
- * Propagate events to children
115
- *
116
- * @param {Array} args Event name + arguments
117
- * @private
118
- *
119
- * @returns {void}
120
- */
97
+ /**
98
+ * Propagate events to children
99
+ *
100
+ * @param args Event name + arguments
101
+ */
121
102
 
122
103
 
123
- EventHub.prototype._propagateToChildren = function (args) {
124
- var childGl, i;
104
+ _propagateToChildren(args) {
105
+ for (var i = 0; i < this._layoutManager.openPopouts.length; i++) {
106
+ var childGl = this._layoutManager.openPopouts[i].getGlInstance();
125
107
 
126
- for (i = 0; i < this._layoutManager.openPopouts.length; i++) {
127
- childGl = this._layoutManager.openPopouts[i].getGlInstance();
128
-
129
- if (childGl && childGl !== this._childEventSource) {
130
- childGl.eventHub._$onEventFromParent(args);
108
+ if (childGl && childGl !== this._childEventSource) {
109
+ childGl.eventHub._$onEventFromParent(args);
110
+ }
131
111
  }
132
112
  }
133
- };
134
- /**
135
- * Destroys the EventHub
136
- *
137
- * @public
138
- * @returns {void}
139
- */
113
+ /**
114
+ * Destroys the EventHub
115
+ */
140
116
 
141
117
 
142
- EventHub.prototype.destroy = function () {
143
- $(window).off('gl_child_event', this._boundOnEventFromChild);
144
- };
118
+ destroy() {
119
+ $(window).off('gl_child_event', this._boundOnEventFromChild);
120
+ }
121
+
122
+ }
145
123
 
146
124
  export default EventHub;
147
125
  //# sourceMappingURL=EventHub.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"EventHub.js","names":["$","utils","EventEmitter","EventHub","layoutManager","call","_layoutManager","_dontPropagateToParent","_childEventSource","on","ALL_EVENT","fnBind","_onEventFromThis","_boundOnEventFromChild","_onEventFromChild","window","prototype","args","Array","slice","arguments","isSubWindow","_propagateToParent","_propagateToChildren","_$onEventFromParent","emit","apply","event","originalEvent","__gl","__glArgs","eventName","document","createEvent","opener","initEvent","createEventObject","eventType","dispatchEvent","fireEvent","childGl","i","openPopouts","length","getGlInstance","eventHub","destroy","off"],"sources":["../../src/utils/EventHub.js"],"sourcesContent":["import $ from 'jquery';\nimport utils from './utils.js';\nimport EventEmitter from './EventEmitter.js';\n\n/**\n * An EventEmitter singleton that propagates events\n * across multiple windows. This is a little bit trickier since\n * windows are allowed to open childWindows in their own right\n *\n * This means that we deal with a tree of windows. Hence the rules for event propagation are:\n *\n * - Propagate events from this layout to both parents and children\n * - Propagate events from parent to this and children\n * - Propagate events from children to the other children (but not the emitting one) and the parent\n *\n * @constructor\n *\n * @param {lm.LayoutManager} layoutManager\n */\nconst EventHub = function (layoutManager) {\n EventEmitter.call(this);\n this._layoutManager = layoutManager;\n this._dontPropagateToParent = null;\n this._childEventSource = null;\n this.on(EventEmitter.ALL_EVENT, utils.fnBind(this._onEventFromThis, this));\n this._boundOnEventFromChild = utils.fnBind(this._onEventFromChild, this);\n $(window).on('gl_child_event', this._boundOnEventFromChild);\n};\n\n/**\n * Called on every event emitted on this eventHub, regardles of origin.\n *\n * @private\n *\n * @param {Mixed}\n *\n * @returns {void}\n */\nEventHub.prototype._onEventFromThis = function () {\n var args = Array.prototype.slice.call(arguments);\n\n if (\n this._layoutManager.isSubWindow &&\n args[0] !== this._dontPropagateToParent\n ) {\n this._propagateToParent(args);\n }\n this._propagateToChildren(args);\n\n //Reset\n this._dontPropagateToParent = null;\n this._childEventSource = null;\n};\n\n/**\n * Called by the parent layout.\n *\n * @param {Array} args Event name + arguments\n *\n * @returns {void}\n */\nEventHub.prototype._$onEventFromParent = function (args) {\n this._dontPropagateToParent = args[0];\n this.emit.apply(this, args);\n};\n\n/**\n * Callback for child events raised on the window\n *\n * @param {DOMEvent} event\n * @private\n *\n * @returns {void}\n */\nEventHub.prototype._onEventFromChild = function (event) {\n this._childEventSource = event.originalEvent.__gl;\n this.emit.apply(this, event.originalEvent.__glArgs);\n};\n\n/**\n * Propagates the event to the parent by emitting\n * it on the parent's DOM window\n *\n * @param {Array} args Event name + arguments\n * @private\n *\n * @returns {void}\n */\nEventHub.prototype._propagateToParent = function (args) {\n var event,\n eventName = 'gl_child_event';\n\n if (document.createEvent) {\n event = window.opener.document.createEvent('HTMLEvents');\n event.initEvent(eventName, true, true);\n } else {\n event = window.opener.document.createEventObject();\n event.eventType = eventName;\n }\n\n event.eventName = eventName;\n event.__glArgs = args;\n event.__gl = this._layoutManager;\n\n if (document.createEvent) {\n window.opener.dispatchEvent(event);\n } else {\n window.opener.fireEvent('on' + event.eventType, event);\n }\n};\n\n/**\n * Propagate events to children\n *\n * @param {Array} args Event name + arguments\n * @private\n *\n * @returns {void}\n */\nEventHub.prototype._propagateToChildren = function (args) {\n var childGl, i;\n\n for (i = 0; i < this._layoutManager.openPopouts.length; i++) {\n childGl = this._layoutManager.openPopouts[i].getGlInstance();\n\n if (childGl && childGl !== this._childEventSource) {\n childGl.eventHub._$onEventFromParent(args);\n }\n }\n};\n\n/**\n * Destroys the EventHub\n *\n * @public\n * @returns {void}\n */\n\nEventHub.prototype.destroy = function () {\n $(window).off('gl_child_event', this._boundOnEventFromChild);\n};\n\nexport default EventHub;\n"],"mappings":"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"}
1
+ {"version":3,"file":"EventHub.js","names":["$","EventEmitter","EventHub","constructor","layoutManager","_layoutManager","_dontPropagateToParent","_childEventSource","on","ALL_EVENT","_onEventFromThis","bind","_boundOnEventFromChild","_onEventFromChild","window","args","isSubWindow","_propagateToParent","_propagateToChildren","_$onEventFromParent","emit","apply","event","originalEvent","__gl","__glArgs","eventName","opener","document","createEvent","initEvent","dispatchEvent","i","openPopouts","length","childGl","getGlInstance","eventHub","destroy","off"],"sources":["../../src/utils/EventHub.ts"],"sourcesContent":["import $ from 'jquery';\nimport type LayoutManager from '../LayoutManager';\nimport EventEmitter from './EventEmitter';\n\ninterface GoldenLayoutEvent extends Event {\n __glArgs: [string, ...unknown[]];\n __gl: LayoutManager;\n}\n\n/**\n * An EventEmitter singleton that propagates events\n * across multiple windows. This is a little bit trickier since\n * windows are allowed to open childWindows in their own right\n *\n * This means that we deal with a tree of windows. Hence the rules for event propagation are:\n *\n * - Propagate events from this layout to both parents and children\n * - Propagate events from parent to this and children\n * - Propagate events from children to the other children (but not the emitting one) and the parent\n */\nclass EventHub extends EventEmitter {\n private _layoutManager: LayoutManager;\n\n private _dontPropagateToParent: string | null;\n\n private _childEventSource: LayoutManager | null;\n\n private _boundOnEventFromChild: (event: JQuery.TriggeredEvent) => void;\n\n constructor(layoutManager: LayoutManager) {\n super();\n this._layoutManager = layoutManager;\n this._dontPropagateToParent = null;\n this._childEventSource = null;\n this.on(EventEmitter.ALL_EVENT, this._onEventFromThis.bind(this));\n this._boundOnEventFromChild = this._onEventFromChild.bind(this);\n $(window).on('gl_child_event', this._boundOnEventFromChild);\n }\n\n /**\n * Called on every event emitted on this eventHub, regardles of origin.\n */\n private _onEventFromThis(...args: [string, ...unknown[]]) {\n if (\n this._layoutManager.isSubWindow &&\n args[0] !== this._dontPropagateToParent\n ) {\n this._propagateToParent(args);\n }\n this._propagateToChildren(args);\n\n //Reset\n this._dontPropagateToParent = null;\n this._childEventSource = null;\n }\n\n /**\n * Called by the parent layout.\n *\n * @param args Event name + arguments\n */\n private _$onEventFromParent(args: [string, ...unknown[]]) {\n this._dontPropagateToParent = args[0];\n this.emit.apply(this, args);\n }\n\n /**\n * Callback for child events raised on the window\n *\n * @param event\n */\n private _onEventFromChild(event: JQuery.TriggeredEvent) {\n this._childEventSource = (event.originalEvent as GoldenLayoutEvent).__gl;\n this.emit.apply(this, (event.originalEvent as GoldenLayoutEvent).__glArgs);\n }\n\n /**\n * Propagates the event to the parent by emitting\n * it on the parent's DOM window\n *\n * @param args Event name + arguments\n */\n private _propagateToParent(args: [string, ...unknown[]]) {\n const eventName = 'gl_child_event';\n\n const event = window.opener?.document.createEvent('HTMLEvents');\n event.initEvent(eventName, true, true);\n\n event.eventName = eventName;\n event.__glArgs = args;\n event.__gl = this._layoutManager;\n\n window.opener.dispatchEvent(event);\n }\n\n /**\n * Propagate events to children\n *\n * @param args Event name + arguments\n */\n private _propagateToChildren(args: [string, ...unknown[]]) {\n for (let i = 0; i < this._layoutManager.openPopouts.length; i++) {\n const childGl = this._layoutManager.openPopouts[i].getGlInstance();\n\n if (childGl && childGl !== this._childEventSource) {\n childGl.eventHub._$onEventFromParent(args);\n }\n }\n }\n\n /**\n * Destroys the EventHub\n */\n destroy() {\n $(window).off('gl_child_event', this._boundOnEventFromChild);\n }\n}\n\nexport default EventHub;\n"],"mappings":"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"}
@@ -0,0 +1,54 @@
1
+ import React from 'react';
2
+ import type ItemContainer from '../container/ItemContainer';
3
+ import type { ReactComponentConfig } from '../config/ItemConfig';
4
+ /**
5
+ * A specialised GoldenLayout component that binds GoldenLayout container
6
+ * lifecycle events to react components
7
+ *
8
+ * @param container
9
+ * @param state state is not required for react components
10
+ */
11
+ export default class ReactComponentHandler {
12
+ private _container;
13
+ private _reactComponent;
14
+ private _originalComponentWillUpdate;
15
+ private _initialState;
16
+ private _reactClass;
17
+ constructor(container: ItemContainer<ReactComponentConfig>, state?: unknown);
18
+ /**
19
+ * Creates the react class and component and hydrates it with
20
+ * the initial state - if one is present
21
+ *
22
+ * By default, react's getInitialState will be used
23
+ */
24
+ _render(): void;
25
+ /**
26
+ * Fired by react when the component is created.
27
+ * <p>
28
+ * Note: This callback is used instead of the return from `ReactDOM.render` because
29
+ * of https://github.com/facebook/react/issues/10309.
30
+ * </p>
31
+ *
32
+ * @param component The component instance created by the `ReactDOM.render` call in the `_render` method.
33
+ */
34
+ _gotReactComponent(component: React.Component): void;
35
+ /**
36
+ * Removes the component from the DOM and thus invokes React's unmount lifecycle
37
+ */
38
+ _destroy(): void;
39
+ /**
40
+ * Hooks into React's state management and applies the componentstate
41
+ * to GoldenLayout
42
+ */
43
+ _onUpdate(nextProps: unknown, nextState: Record<string, unknown>): void;
44
+ /**
45
+ * Retrieves the react class from GoldenLayout's registry
46
+ * @returns react class
47
+ */
48
+ _getReactClass(): React.ComponentClass<{}, any>;
49
+ /**
50
+ * Copies and extends the properties array and returns the React element
51
+ */
52
+ _getReactComponent(): React.CElement<{}, React.Component<{}, any, any>>;
53
+ }
54
+ //# sourceMappingURL=ReactComponentHandler.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ReactComponentHandler.d.ts","sourceRoot":"","sources":["../../src/utils/ReactComponentHandler.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,OAAO,KAAK,aAAa,MAAM,4BAA4B,CAAC;AAC5D,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AAEjE;;;;;;GAMG;AACH,MAAM,CAAC,OAAO,OAAO,qBAAqB;IACxC,OAAO,CAAC,UAAU,CAAsC;IAExD,OAAO,CAAC,eAAe,CAAgC;IACvD,OAAO,CAAC,4BAA4B,CAAyB;IAC7D,OAAO,CAAC,aAAa,CAAU;IAC/B,OAAO,CAAC,WAAW,CAAuB;gBAE9B,SAAS,EAAE,aAAa,CAAC,oBAAoB,CAAC,EAAE,KAAK,CAAC,EAAE,OAAO;IAU3E;;;;;OAKG;IACH,OAAO;IAIP;;;;;;;;OAQG;IACH,kBAAkB,CAAC,SAAS,EAAE,KAAK,CAAC,SAAS;IAe7C;;OAEG;IACH,QAAQ;IAMR;;;OAGG;IACH,SAAS,CAAC,SAAS,EAAE,OAAO,EAAE,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAShE;;;OAGG;IACH,cAAc;IA0Bd;;OAEG;IACH,kBAAkB;CASnB"}