@deephaven/golden-layout 1.4.1-beta.2 → 1.4.1-react19.43
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.
- package/dist/GoldenLayoutThemeExport.js.map +1 -1
- package/dist/LayoutManager.js +18 -20
- package/dist/LayoutManager.js.map +1 -1
- package/dist/base.js.map +1 -1
- package/dist/config/Config.js.map +1 -1
- package/dist/config/ItemConfig.js.map +1 -1
- package/dist/config/index.js.map +1 -1
- package/dist/container/ItemContainer.js +1 -2
- package/dist/container/ItemContainer.js.map +1 -1
- package/dist/container/index.js.map +1 -1
- package/dist/controls/BrowserPopout.js +6 -6
- package/dist/controls/BrowserPopout.js.map +1 -1
- package/dist/controls/DragProxy.js +1 -1
- package/dist/controls/DragProxy.js.map +1 -1
- package/dist/controls/DragSource.js.map +1 -1
- package/dist/controls/DragSourceFromEvent.js +1 -2
- package/dist/controls/DragSourceFromEvent.js.map +1 -1
- package/dist/controls/DropTargetIndicator.js.map +1 -1
- package/dist/controls/Header.js +13 -16
- package/dist/controls/Header.js.map +1 -1
- package/dist/controls/HeaderButton.js.map +1 -1
- package/dist/controls/Splitter.js +2 -2
- package/dist/controls/Splitter.js.map +1 -1
- package/dist/controls/Tab.js +4 -5
- package/dist/controls/Tab.js.map +1 -1
- package/dist/controls/index.js.map +1 -1
- package/dist/declaration.d.js.map +1 -1
- package/dist/errors/ConfigurationError.js.map +1 -1
- package/dist/errors/index.js.map +1 -1
- package/dist/index.js.map +1 -1
- package/dist/items/AbstractContentItem.js +9 -9
- package/dist/items/AbstractContentItem.js.map +1 -1
- package/dist/items/Component.js +1 -1
- package/dist/items/Component.js.map +1 -1
- package/dist/items/Root.js.map +1 -1
- package/dist/items/RowOrColumn.js +1 -1
- package/dist/items/RowOrColumn.js.map +1 -1
- package/dist/items/Stack.js +8 -8
- package/dist/items/Stack.js.map +1 -1
- package/dist/items/index.js.map +1 -1
- package/dist/utils/BubblingEvent.js.map +1 -1
- package/dist/utils/ConfigMinifier.js +0 -1
- package/dist/utils/ConfigMinifier.js.map +1 -1
- package/dist/utils/DragListener.js +22 -24
- package/dist/utils/DragListener.js.map +1 -1
- package/dist/utils/EventEmitter.js +15 -18
- package/dist/utils/EventEmitter.js.map +1 -1
- package/dist/utils/EventHub.js.map +1 -1
- package/dist/utils/EventUtils.js +2 -2
- package/dist/utils/EventUtils.js.map +1 -1
- package/dist/utils/ReactComponentHandler.js +1 -1
- package/dist/utils/ReactComponentHandler.js.map +1 -1
- package/dist/utils/index.js.map +1 -1
- package/dist/utils/utils.js.map +1 -1
- package/package.json +3 -3
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ItemContainer.js","names":["$","isGLComponentConfig","EventEmitter","ItemContainer","constructor","config","parent","layoutManager","_defineProperty","join","title","componentName","_config","_contentElement","_element","find","beforeCloseHandler","getElement","hide","emit","isHidden","show","height","width","setSize","_this$direction","_rowOrColumnChild$con","_rowOrColumnChild$con2","rowOrColumn","rowOrColumnChild","isColumn","isRow","_rowOrColumn","isRoot","direction","newSize","totalPixel","percentage","delta","contentItems","length","i","_rowOrColumn$contentI","callDownwards","close","options","_this$beforeCloseHand","_this$beforeCloseHand2","isClosable","call","beforeClose","callback","getState","componentState","getConfig","extendState","state","setState","extend","emitBubblingEvent","setTitle","_$setSize","arguments","undefined","cl","hdelta","offsetWidth","clientWidth","vdelta","offsetHeight","clientHeight"],"sources":["../../src/container/ItemContainer.ts"],"sourcesContent":["import $ from 'jquery';\nimport {\n ReactComponentConfig,\n isGLComponentConfig,\n ComponentConfig,\n} from '../config';\nimport type Tab from '../controls/Tab';\nimport type { AbstractContentItem, Component } from '../items';\nimport type LayoutManager from '../LayoutManager';\nimport EventEmitter from '../utils/EventEmitter';\n\nexport type CloseOptions = { force?: boolean };\n\nexport default class ItemContainer<\n C extends ComponentConfig | ReactComponentConfig = ComponentConfig,\n> extends EventEmitter {\n width?: number;\n height?: number;\n\n title?: string;\n\n parent: Component;\n\n layoutManager: LayoutManager;\n\n tab?: Tab;\n\n // This type is to make TS happy and allow ReactComponentConfig passed to container generic\n _config: C & { componentState: Record<string, unknown> };\n\n isHidden = false;\n\n beforeCloseHandler: ((options?: CloseOptions) => boolean) | null;\n\n _element = $(\n [\n '<div class=\"lm_item_container\">',\n '<div class=\"lm_content\" tabindex=\"-1\"></div>',\n '</div>',\n ].join('')\n );\n\n _contentElement: JQuery<HTMLElement>;\n\n constructor(config: C, parent: Component, layoutManager: LayoutManager) {\n super();\n\n this.title = isGLComponentConfig(config) ? config.componentName : '';\n this.parent = parent;\n this.layoutManager = layoutManager;\n\n this._config = config as C & { componentState: Record<string, unknown> };\n\n this._contentElement = this._element.find('.lm_content');\n\n this.beforeCloseHandler = null;\n }\n\n /**\n * Get the inner DOM element the container's content\n * is intended to live in\n */\n getElement() {\n return this._contentElement;\n }\n\n /**\n * Hide the container. Notifies the containers content first\n * and then hides the DOM node. If the container is already hidden\n * this should have no effect\n */\n hide() {\n this.emit('hide');\n this.isHidden = true;\n this._element.hide();\n }\n\n /**\n * Shows a previously hidden container. Notifies the\n * containers content first and then shows the DOM element.\n * If the container is already visible this has no effect.\n */\n show() {\n this.emit('show');\n this.isHidden = false;\n this._element.show();\n // call shown only if the container has a valid size\n if (this.height != 0 || this.width != 0) {\n this.emit('shown');\n }\n }\n\n /**\n * Set the size from within the container. Traverses up\n * the item tree until it finds a row or column element\n * and resizes its items accordingly.\n *\n * If this container isn't a descendant of a row or column\n * it returns false\n * @todo Rework!!!\n * @param width The new width in pixel\n * @param height The new height in pixel\n *\n * @returns resizeSuccesful\n */\n setSize(width: number, height: number) {\n let rowOrColumn: AbstractContentItem | null = this.parent;\n let rowOrColumnChild: AbstractContentItem | null = null;\n\n while (rowOrColumn && !rowOrColumn.isColumn && !rowOrColumn.isRow) {\n rowOrColumnChild = rowOrColumn;\n rowOrColumn = rowOrColumn.parent;\n\n /**\n * No row or column has been found\n */\n if (rowOrColumn?.isRoot) {\n return false;\n }\n }\n\n if (!rowOrColumn || !rowOrColumnChild) {\n return false;\n }\n\n const direction = rowOrColumn.isColumn ? 'height' : 'width';\n const newSize = direction === 'height' ? height : width;\n\n const totalPixel =\n (this[direction] ?? 0) *\n (1 / ((rowOrColumnChild.config[direction] ?? 0) / 100));\n const percentage = (newSize / totalPixel) * 100;\n const delta =\n ((rowOrColumnChild.config[direction] ?? 0) - percentage) /\n (rowOrColumn.contentItems.length - 1);\n\n for (let i = 0; i < rowOrColumn.contentItems.length; i++) {\n if (rowOrColumn.contentItems[i] === rowOrColumnChild) {\n rowOrColumn.contentItems[i].config[direction] = percentage;\n } else {\n rowOrColumn.contentItems[i].config[direction] =\n (rowOrColumn.contentItems[i].config[direction] ?? 0) + delta;\n }\n }\n\n rowOrColumn.callDownwards('setSize');\n\n return true;\n }\n\n /**\n * Closes the container if it is closable. Can be called by\n * both the component within at as well as the contentItem containing\n * it. Emits a close event before the container itself is closed.\n * @param options Options to pass into the beforeClose handler\n */\n close(options?: CloseOptions) {\n // Not closable, don't do anything\n if (!this._config.isClosable) return;\n\n // If beforeCloseHandler returns true or if the handler doesn't exist, close\n if (this.beforeCloseHandler?.(options) ?? true) {\n this.emit('close');\n this.parent.close();\n }\n }\n\n /**\n * Sets the beforeCloseHandler to callback\n * @param callback Callback function to call before closing\n */\n beforeClose(callback: ((options?: CloseOptions) => boolean) | null) {\n this.beforeCloseHandler = callback;\n }\n\n /**\n * Returns the current state object\n *\n * @returns state\n */\n getState() {\n return this._config.componentState;\n }\n\n /**\n * Returns the object's config\n *\n * @returns id\n */\n getConfig() {\n return this._config;\n }\n\n /**\n * Merges the provided state into the current one\n *\n * @param state\n */\n extendState(state: string) {\n this.setState($.extend(true, this.getState(), state));\n }\n\n /**\n * Notifies the layout manager of a stateupdate\n *\n * @param state\n */\n setState(state: Record<string, unknown>) {\n this._config.componentState = state;\n this.parent.emitBubblingEvent('stateChanged');\n }\n\n /**\n * Set's the components title\n *\n * @param title\n */\n setTitle(title: string) {\n this.parent.setTitle(title);\n }\n\n /**\n * Set's the containers size. Called by the container's component.\n * To set the size programmatically from within the container please\n * use the public setSize method\n *\n * @param width in px\n * @param height in px\n */\n _$setSize(width = 0, height = 0) {\n if (width !== this.width || height !== this.height) {\n this.width = width;\n this.height = height;\n var cl = this._contentElement[0];\n var hdelta = cl.offsetWidth - cl.clientWidth;\n var vdelta = cl.offsetHeight - cl.clientHeight;\n this._contentElement\n .width(this.width - hdelta)\n .height(this.height - vdelta);\n this.emit('resize');\n }\n }\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ItemContainer.js","names":["$","isGLComponentConfig","EventEmitter","ItemContainer","constructor","config","parent","layoutManager","_defineProperty","join","title","componentName","_config","_contentElement","_element","find","beforeCloseHandler","getElement","hide","emit","isHidden","show","height","width","setSize","_this$direction","_rowOrColumnChild$con","_rowOrColumnChild$con2","rowOrColumn","rowOrColumnChild","isColumn","isRow","_rowOrColumn","isRoot","direction","newSize","totalPixel","percentage","delta","contentItems","length","i","_rowOrColumn$contentI","callDownwards","close","options","_this$beforeCloseHand","_this$beforeCloseHand2","isClosable","call","beforeClose","callback","getState","componentState","getConfig","extendState","state","setState","extend","emitBubblingEvent","setTitle","_$setSize","arguments","undefined","cl","hdelta","offsetWidth","clientWidth","vdelta","offsetHeight","clientHeight"],"sources":["../../src/container/ItemContainer.ts"],"sourcesContent":["import $ from 'jquery';\nimport {\n ReactComponentConfig,\n isGLComponentConfig,\n ComponentConfig,\n} from '../config';\nimport type Tab from '../controls/Tab';\nimport type { AbstractContentItem, Component } from '../items';\nimport type LayoutManager from '../LayoutManager';\nimport EventEmitter from '../utils/EventEmitter';\n\nexport type CloseOptions = { force?: boolean };\n\nexport default class ItemContainer<\n C extends ComponentConfig | ReactComponentConfig = ComponentConfig,\n> extends EventEmitter {\n width?: number;\n height?: number;\n\n title?: string;\n\n parent: Component;\n\n layoutManager: LayoutManager;\n\n tab?: Tab;\n\n // This type is to make TS happy and allow ReactComponentConfig passed to container generic\n _config: C & { componentState: Record<string, unknown> };\n\n isHidden = false;\n\n beforeCloseHandler: ((options?: CloseOptions) => boolean) | null;\n\n _element = $(\n [\n '<div class=\"lm_item_container\">',\n '<div class=\"lm_content\" tabindex=\"-1\"></div>',\n '</div>',\n ].join('')\n );\n\n _contentElement: JQuery<HTMLElement>;\n\n constructor(config: C, parent: Component, layoutManager: LayoutManager) {\n super();\n\n this.title = isGLComponentConfig(config) ? config.componentName : '';\n this.parent = parent;\n this.layoutManager = layoutManager;\n\n this._config = config as C & { componentState: Record<string, unknown> };\n\n this._contentElement = this._element.find('.lm_content');\n\n this.beforeCloseHandler = null;\n }\n\n /**\n * Get the inner DOM element the container's content\n * is intended to live in\n */\n getElement() {\n return this._contentElement;\n }\n\n /**\n * Hide the container. Notifies the containers content first\n * and then hides the DOM node. If the container is already hidden\n * this should have no effect\n */\n hide() {\n this.emit('hide');\n this.isHidden = true;\n this._element.hide();\n }\n\n /**\n * Shows a previously hidden container. Notifies the\n * containers content first and then shows the DOM element.\n * If the container is already visible this has no effect.\n */\n show() {\n this.emit('show');\n this.isHidden = false;\n this._element.show();\n // call shown only if the container has a valid size\n if (this.height != 0 || this.width != 0) {\n this.emit('shown');\n }\n }\n\n /**\n * Set the size from within the container. Traverses up\n * the item tree until it finds a row or column element\n * and resizes its items accordingly.\n *\n * If this container isn't a descendant of a row or column\n * it returns false\n * @todo Rework!!!\n * @param width The new width in pixel\n * @param height The new height in pixel\n *\n * @returns resizeSuccesful\n */\n setSize(width: number, height: number) {\n let rowOrColumn: AbstractContentItem | null = this.parent;\n let rowOrColumnChild: AbstractContentItem | null = null;\n\n while (rowOrColumn && !rowOrColumn.isColumn && !rowOrColumn.isRow) {\n rowOrColumnChild = rowOrColumn;\n rowOrColumn = rowOrColumn.parent;\n\n /**\n * No row or column has been found\n */\n if (rowOrColumn?.isRoot) {\n return false;\n }\n }\n\n if (!rowOrColumn || !rowOrColumnChild) {\n return false;\n }\n\n const direction = rowOrColumn.isColumn ? 'height' : 'width';\n const newSize = direction === 'height' ? height : width;\n\n const totalPixel =\n (this[direction] ?? 0) *\n (1 / ((rowOrColumnChild.config[direction] ?? 0) / 100));\n const percentage = (newSize / totalPixel) * 100;\n const delta =\n ((rowOrColumnChild.config[direction] ?? 0) - percentage) /\n (rowOrColumn.contentItems.length - 1);\n\n for (let i = 0; i < rowOrColumn.contentItems.length; i++) {\n if (rowOrColumn.contentItems[i] === rowOrColumnChild) {\n rowOrColumn.contentItems[i].config[direction] = percentage;\n } else {\n rowOrColumn.contentItems[i].config[direction] =\n (rowOrColumn.contentItems[i].config[direction] ?? 0) + delta;\n }\n }\n\n rowOrColumn.callDownwards('setSize');\n\n return true;\n }\n\n /**\n * Closes the container if it is closable. Can be called by\n * both the component within at as well as the contentItem containing\n * it. Emits a close event before the container itself is closed.\n * @param options Options to pass into the beforeClose handler\n */\n close(options?: CloseOptions) {\n // Not closable, don't do anything\n if (!this._config.isClosable) return;\n\n // If beforeCloseHandler returns true or if the handler doesn't exist, close\n if (this.beforeCloseHandler?.(options) ?? true) {\n this.emit('close');\n this.parent.close();\n }\n }\n\n /**\n * Sets the beforeCloseHandler to callback\n * @param callback Callback function to call before closing\n */\n beforeClose(callback: ((options?: CloseOptions) => boolean) | null) {\n this.beforeCloseHandler = callback;\n }\n\n /**\n * Returns the current state object\n *\n * @returns state\n */\n getState() {\n return this._config.componentState;\n }\n\n /**\n * Returns the object's config\n *\n * @returns id\n */\n getConfig() {\n return this._config;\n }\n\n /**\n * Merges the provided state into the current one\n *\n * @param state\n */\n extendState(state: string) {\n this.setState($.extend(true, this.getState(), state));\n }\n\n /**\n * Notifies the layout manager of a stateupdate\n *\n * @param state\n */\n setState(state: Record<string, unknown>) {\n this._config.componentState = state;\n this.parent.emitBubblingEvent('stateChanged');\n }\n\n /**\n * Set's the components title\n *\n * @param title\n */\n setTitle(title: string) {\n this.parent.setTitle(title);\n }\n\n /**\n * Set's the containers size. Called by the container's component.\n * To set the size programmatically from within the container please\n * use the public setSize method\n *\n * @param width in px\n * @param height in px\n */\n _$setSize(width = 0, height = 0) {\n if (width !== this.width || height !== this.height) {\n this.width = width;\n this.height = height;\n var cl = this._contentElement[0];\n var hdelta = cl.offsetWidth - cl.clientWidth;\n var vdelta = cl.offsetHeight - cl.clientHeight;\n this._contentElement\n .width(this.width - hdelta)\n .height(this.height - vdelta);\n this.emit('resize');\n }\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","names":["default","ItemContainer","Container"],"sources":["../../src/container/index.ts"],"sourcesContent":["export { default as ItemContainer } from './ItemContainer';\nexport { default as Container } from './ItemContainer';\nexport type { CloseOptions } from './ItemContainer';\n"],"mappings":"SAASA,OAAO,IAAIC,aAAa;AAAA,SACxBD,OAAO,IAAIE,SAAS"}
|
|
1
|
+
{"version":3,"file":"index.js","names":["default","ItemContainer","Container"],"sources":["../../src/container/index.ts"],"sourcesContent":["export { default as ItemContainer } from './ItemContainer';\nexport { default as Container } from './ItemContainer';\nexport type { CloseOptions } from './ItemContainer';\n"],"mappings":"SAASA,OAAO,IAAIC,aAAa;AAAA,SACxBD,OAAO,IAAIE,SAAS","ignoreList":[]}
|
|
@@ -64,11 +64,11 @@ export default class BrowserPopout extends EventEmitter {
|
|
|
64
64
|
close() {
|
|
65
65
|
if (this.getGlInstance()) {
|
|
66
66
|
var _this$getGlInstance4;
|
|
67
|
-
(_this$getGlInstance4 = this.getGlInstance()) === null || _this$getGlInstance4 === void 0
|
|
67
|
+
(_this$getGlInstance4 = this.getGlInstance()) === null || _this$getGlInstance4 === void 0 || _this$getGlInstance4._$closeWindow();
|
|
68
68
|
} else {
|
|
69
69
|
try {
|
|
70
70
|
var _this$getWindow;
|
|
71
|
-
(_this$getWindow = this.getWindow()) === null || _this$getWindow === void 0
|
|
71
|
+
(_this$getWindow = this.getWindow()) === null || _this$getWindow === void 0 || _this$getWindow.close();
|
|
72
72
|
} catch (e) {}
|
|
73
73
|
}
|
|
74
74
|
}
|
|
@@ -113,7 +113,7 @@ export default class BrowserPopout extends EventEmitter {
|
|
|
113
113
|
if (!childConfig) {
|
|
114
114
|
return;
|
|
115
115
|
}
|
|
116
|
-
(_parentItem = parentItem) === null || _parentItem === void 0
|
|
116
|
+
(_parentItem = parentItem) === null || _parentItem === void 0 || _parentItem.addChild(childConfig, this._indexInParent);
|
|
117
117
|
this.close();
|
|
118
118
|
}
|
|
119
119
|
|
|
@@ -225,8 +225,8 @@ export default class BrowserPopout extends EventEmitter {
|
|
|
225
225
|
*/
|
|
226
226
|
_positionWindow() {
|
|
227
227
|
var _this$_popoutWindow7, _this$_popoutWindow8;
|
|
228
|
-
(_this$_popoutWindow7 = this._popoutWindow) === null || _this$_popoutWindow7 === void 0
|
|
229
|
-
(_this$_popoutWindow8 = this._popoutWindow) === null || _this$_popoutWindow8 === void 0
|
|
228
|
+
(_this$_popoutWindow7 = this._popoutWindow) === null || _this$_popoutWindow7 === void 0 || _this$_popoutWindow7.moveTo(this._dimensions.left, this._dimensions.top);
|
|
229
|
+
(_this$_popoutWindow8 = this._popoutWindow) === null || _this$_popoutWindow8 === void 0 || _this$_popoutWindow8.focus();
|
|
230
230
|
}
|
|
231
231
|
|
|
232
232
|
/**
|
|
@@ -236,7 +236,7 @@ export default class BrowserPopout extends EventEmitter {
|
|
|
236
236
|
_onInitialised() {
|
|
237
237
|
var _this$getGlInstance6;
|
|
238
238
|
this.isInitialised = true;
|
|
239
|
-
(_this$getGlInstance6 = this.getGlInstance()) === null || _this$getGlInstance6 === void 0
|
|
239
|
+
(_this$getGlInstance6 = this.getGlInstance()) === null || _this$getGlInstance6 === void 0 || _this$getGlInstance6.on('popIn', this.popIn, this);
|
|
240
240
|
this.emit('initialised');
|
|
241
241
|
}
|
|
242
242
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BrowserPopout.js","names":["$","getUniqueId","minifyConfig","EventEmitter","BrowserPopout","constructor","config","dimensions","parentId","indexInParent","layoutManager","_defineProperty","_config","_dimensions","_parentId","_indexInParent","_layoutManager","_createWindow","toConfig","_this$getGlInstance","_this$getGlInstance2","_ref","_this$_popoutWindow$s","_this$_popoutWindow","_this$_popoutWindow2","_ref2","_this$_popoutWindow$s2","_this$_popoutWindow3","_this$_popoutWindow4","_this$getGlInstance3","isInitialised","Error","width","getGlInstance","height","left","_popoutWindow","screenX","screenLeft","top","screenY","screenTop","content","_this$_popoutWindow5","__glInstance","getWindow","close","_this$getGlInstance4","_$closeWindow","_this$getWindow","e","popIn","_parentItem","index","childConfig","parentItem","_this$getGlInstance5","extend","root","getItemsById","_this$_layoutManager$","contentItems","length","addChild","url","_createUrl","title","Math","floor","random","toString","options","_serializeWindowOptions","innerWidth","innerHeight","menubar","toolbar","location","personalbar","resizable","scrollbars","status","window","open","settings","blockedPopoutsThrowError","error","type","on","_positionWindow","bind","_onClose","checkReadyInterval","setInterval","_this$_popoutWindow6","_onInitialised","clearInterval","windowOptions","windowOptionsString","key","push","join","storageKey","localStorage","setItem","JSON","stringify","urlParts","document","href","split","_this$_popoutWindow7","_this$_popoutWindow8","moveTo","focus","_this$getGlInstance6","emit","setTimeout"],"sources":["../../src/controls/BrowserPopout.ts"],"sourcesContent":["import $ from 'jquery';\nimport type { Config, PopoutConfig, ItemConfig } from '../config';\nimport type Root from '../items/Root';\nimport type LayoutManager from '../LayoutManager';\nimport { getUniqueId, minifyConfig, EventEmitter } from '../utils';\nimport { AbstractContentItem } from '..';\n\ntype BrowserDimensions = {\n width: number;\n height: number;\n top: number;\n left: number;\n};\n\n/**\n * Pops a content item out into a new browser window.\n * This is achieved by\n *\n * - Creating a new configuration with the content item as root element\n * - Serializing and minifying the configuration\n * - Opening the current window's URL with the configuration as a GET parameter\n * - GoldenLayout when opened in the new window will look for the GET parameter\n * and use it instead of the provided configuration\n *\n * @param config GoldenLayout item config\n * @param dimensions A map with width, height, top and left\n * @param parentId The id of the element the item will be appended to on popIn\n * @param indexInParent The position of this element within its parent\n * @param layoutManager\n */\nexport default class BrowserPopout extends EventEmitter {\n isInitialised = false;\n\n private _config: ItemConfig[];\n private _dimensions: BrowserDimensions;\n private _parentId: string;\n private _indexInParent: number;\n private _layoutManager: LayoutManager;\n private _popoutWindow: (Window & { __glInstance: LayoutManager }) | null =\n null;\n private _id = null;\n\n constructor(\n config: ItemConfig[],\n dimensions: BrowserDimensions,\n parentId: string,\n indexInParent: number,\n layoutManager: LayoutManager\n ) {\n super();\n\n this._config = config;\n this._dimensions = dimensions;\n this._parentId = parentId;\n this._indexInParent = indexInParent;\n this._layoutManager = layoutManager;\n this._createWindow();\n }\n\n toConfig() {\n if (this.isInitialised === false) {\n throw new Error(\"Can't create config, layout not yet initialised\");\n }\n return {\n dimensions: {\n width: this.getGlInstance()?.width,\n height: this.getGlInstance()?.height,\n left:\n this._popoutWindow?.screenX ?? this._popoutWindow?.screenLeft ?? 0,\n top: this._popoutWindow?.screenY ?? this._popoutWindow?.screenTop ?? 0,\n },\n content: this.getGlInstance()?.toConfig().content,\n parentId: this._parentId,\n indexInParent: this._indexInParent,\n } as unknown as PopoutConfig;\n }\n\n getGlInstance() {\n return this._popoutWindow?.__glInstance;\n }\n\n getWindow() {\n return this._popoutWindow;\n }\n\n close() {\n if (this.getGlInstance()) {\n this.getGlInstance()?._$closeWindow();\n } else {\n try {\n this.getWindow()?.close();\n } catch (e) {}\n }\n }\n\n /**\n * Returns the popped out item to its original position. If the original\n * parent isn't available anymore it falls back to the layout's topmost element\n */\n popIn() {\n let index = this._indexInParent;\n let childConfig: ItemConfig | null = null;\n let parentItem: AbstractContentItem | null = null;\n\n if (this._parentId) {\n /*\n * The $.extend call seems a bit pointless, but it's crucial to\n * copy the config returned by this.getGlInstance().toConfig()\n * onto a new object. Internet Explorer keeps the references\n * to objects on the child window, resulting in the following error\n * once the child window is closed:\n *\n * The callee (server [not server application]) is not available and disappeared\n */\n childConfig = $.extend(true, {}, this.getGlInstance()?.toConfig())\n .content[0];\n parentItem = this._layoutManager.root.getItemsById(\n this._parentId\n )[0] as Root;\n\n /*\n * Fallback if parentItem is not available. Either add it to the topmost\n * item or make it the topmost item if the layout is empty\n */\n if (!parentItem) {\n if ((this._layoutManager.root.contentItems.length ?? 0) > 0) {\n parentItem = this._layoutManager.root.contentItems[0];\n } else {\n parentItem = this._layoutManager.root;\n }\n index = 0;\n }\n }\n\n if (!childConfig) {\n return;\n }\n\n parentItem?.addChild(childConfig, this._indexInParent);\n this.close();\n }\n\n /**\n * Creates the URL and window parameter\n * and opens a new window\n */\n _createWindow() {\n const url = this._createUrl();\n /**\n * Bogus title to prevent re-usage of existing window with the\n * same title. The actual title will be set by the new window's\n * GoldenLayout instance if it detects that it is in subWindowMode\n */\n const title = Math.floor(Math.random() * 1000000).toString(36);\n /**\n * The options as used in the window.open string\n */\n const options = this._serializeWindowOptions({\n width: this._dimensions.width,\n height: this._dimensions.height,\n innerWidth: this._dimensions.width,\n innerHeight: this._dimensions.height,\n menubar: 'no',\n toolbar: 'no',\n location: 'no',\n personalbar: 'no',\n resizable: 'yes',\n scrollbars: 'no',\n status: 'no',\n });\n\n // I'm not entirely sure how __glInstance is mounted to the popout window\n this._popoutWindow = window.open(url, title, options) as Window & {\n __glInstance: LayoutManager;\n };\n\n if (!this._popoutWindow) {\n if (\n this._layoutManager.config.settings.blockedPopoutsThrowError === true\n ) {\n const error = new Error('Popout blocked') as Error & { type: string };\n error.type = 'popoutBlocked';\n throw error;\n } else {\n return;\n }\n }\n\n $(this._popoutWindow)\n .on('load', this._positionWindow.bind(this))\n .on('unload beforeunload', this._onClose.bind(this));\n\n /**\n * Polling the childwindow to find out if GoldenLayout has been initialised\n * doesn't seem optimal, but the alternatives - adding a callback to the parent\n * window or raising an event on the window object - both would introduce knowledge\n * about the parent to the child window which we'd rather avoid\n */\n let checkReadyInterval = window.setInterval(() => {\n if (\n this._popoutWindow?.__glInstance &&\n this._popoutWindow.__glInstance.isInitialised\n ) {\n this._onInitialised();\n window.clearInterval(checkReadyInterval);\n }\n }, 10);\n }\n\n /**\n * Serialises a map of key:values to a window options string\n *\n * @param windowOptions\n *\n * @returns serialised window options\n */\n _serializeWindowOptions(windowOptions: Record<string, unknown>) {\n var windowOptionsString = [],\n key;\n\n for (key in windowOptions) {\n windowOptionsString.push(key + '=' + windowOptions[key]);\n }\n\n return windowOptionsString.join(',');\n }\n\n /**\n * Creates the URL for the new window, including the\n * config GET parameter\n *\n * @returns URL\n */\n _createUrl() {\n var config: Partial<Config> = { content: this._config };\n const storageKey = 'gl-window-config-' + getUniqueId();\n\n config = minifyConfig(config);\n\n try {\n localStorage.setItem(storageKey, JSON.stringify(config));\n } catch (e: any) {\n throw new Error('Error while writing to localStorage ' + e.toString());\n }\n\n const urlParts = document.location.href.split('?');\n\n // URL doesn't contain GET-parameters\n if (urlParts.length === 1) {\n return urlParts[0] + '?gl-window=' + storageKey;\n\n // URL contains GET-parameters\n } else {\n return document.location.href + '&gl-window=' + storageKey;\n }\n }\n\n /**\n * Move the newly created window roughly to\n * where the component used to be.\n */\n _positionWindow() {\n this._popoutWindow?.moveTo(this._dimensions.left, this._dimensions.top);\n this._popoutWindow?.focus();\n }\n\n /**\n * Callback when the new window is opened and the GoldenLayout instance\n * within it is initialised\n */\n _onInitialised() {\n this.isInitialised = true;\n this.getGlInstance()?.on('popIn', this.popIn, this);\n this.emit('initialised');\n }\n\n /**\n * Invoked 50ms after the window unload event\n */\n _onClose() {\n setTimeout(this.emit.bind(this, 'closed'), 50);\n }\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"BrowserPopout.js","names":["$","getUniqueId","minifyConfig","EventEmitter","BrowserPopout","constructor","config","dimensions","parentId","indexInParent","layoutManager","_defineProperty","_config","_dimensions","_parentId","_indexInParent","_layoutManager","_createWindow","toConfig","_this$getGlInstance","_this$getGlInstance2","_ref","_this$_popoutWindow$s","_this$_popoutWindow","_this$_popoutWindow2","_ref2","_this$_popoutWindow$s2","_this$_popoutWindow3","_this$_popoutWindow4","_this$getGlInstance3","isInitialised","Error","width","getGlInstance","height","left","_popoutWindow","screenX","screenLeft","top","screenY","screenTop","content","_this$_popoutWindow5","__glInstance","getWindow","close","_this$getGlInstance4","_$closeWindow","_this$getWindow","e","popIn","_parentItem","index","childConfig","parentItem","_this$getGlInstance5","extend","root","getItemsById","_this$_layoutManager$","contentItems","length","addChild","url","_createUrl","title","Math","floor","random","toString","options","_serializeWindowOptions","innerWidth","innerHeight","menubar","toolbar","location","personalbar","resizable","scrollbars","status","window","open","settings","blockedPopoutsThrowError","error","type","on","_positionWindow","bind","_onClose","checkReadyInterval","setInterval","_this$_popoutWindow6","_onInitialised","clearInterval","windowOptions","windowOptionsString","key","push","join","storageKey","localStorage","setItem","JSON","stringify","urlParts","document","href","split","_this$_popoutWindow7","_this$_popoutWindow8","moveTo","focus","_this$getGlInstance6","emit","setTimeout"],"sources":["../../src/controls/BrowserPopout.ts"],"sourcesContent":["import $ from 'jquery';\nimport type { Config, PopoutConfig, ItemConfig } from '../config';\nimport type Root from '../items/Root';\nimport type LayoutManager from '../LayoutManager';\nimport { getUniqueId, minifyConfig, EventEmitter } from '../utils';\nimport { AbstractContentItem } from '..';\n\ntype BrowserDimensions = {\n width: number;\n height: number;\n top: number;\n left: number;\n};\n\n/**\n * Pops a content item out into a new browser window.\n * This is achieved by\n *\n * - Creating a new configuration with the content item as root element\n * - Serializing and minifying the configuration\n * - Opening the current window's URL with the configuration as a GET parameter\n * - GoldenLayout when opened in the new window will look for the GET parameter\n * and use it instead of the provided configuration\n *\n * @param config GoldenLayout item config\n * @param dimensions A map with width, height, top and left\n * @param parentId The id of the element the item will be appended to on popIn\n * @param indexInParent The position of this element within its parent\n * @param layoutManager\n */\nexport default class BrowserPopout extends EventEmitter {\n isInitialised = false;\n\n private _config: ItemConfig[];\n private _dimensions: BrowserDimensions;\n private _parentId: string;\n private _indexInParent: number;\n private _layoutManager: LayoutManager;\n private _popoutWindow: (Window & { __glInstance: LayoutManager }) | null =\n null;\n private _id = null;\n\n constructor(\n config: ItemConfig[],\n dimensions: BrowserDimensions,\n parentId: string,\n indexInParent: number,\n layoutManager: LayoutManager\n ) {\n super();\n\n this._config = config;\n this._dimensions = dimensions;\n this._parentId = parentId;\n this._indexInParent = indexInParent;\n this._layoutManager = layoutManager;\n this._createWindow();\n }\n\n toConfig() {\n if (this.isInitialised === false) {\n throw new Error(\"Can't create config, layout not yet initialised\");\n }\n return {\n dimensions: {\n width: this.getGlInstance()?.width,\n height: this.getGlInstance()?.height,\n left:\n this._popoutWindow?.screenX ?? this._popoutWindow?.screenLeft ?? 0,\n top: this._popoutWindow?.screenY ?? this._popoutWindow?.screenTop ?? 0,\n },\n content: this.getGlInstance()?.toConfig().content,\n parentId: this._parentId,\n indexInParent: this._indexInParent,\n } as unknown as PopoutConfig;\n }\n\n getGlInstance() {\n return this._popoutWindow?.__glInstance;\n }\n\n getWindow() {\n return this._popoutWindow;\n }\n\n close() {\n if (this.getGlInstance()) {\n this.getGlInstance()?._$closeWindow();\n } else {\n try {\n this.getWindow()?.close();\n } catch (e) {}\n }\n }\n\n /**\n * Returns the popped out item to its original position. If the original\n * parent isn't available anymore it falls back to the layout's topmost element\n */\n popIn() {\n let index = this._indexInParent;\n let childConfig: ItemConfig | null = null;\n let parentItem: AbstractContentItem | null = null;\n\n if (this._parentId) {\n /*\n * The $.extend call seems a bit pointless, but it's crucial to\n * copy the config returned by this.getGlInstance().toConfig()\n * onto a new object. Internet Explorer keeps the references\n * to objects on the child window, resulting in the following error\n * once the child window is closed:\n *\n * The callee (server [not server application]) is not available and disappeared\n */\n childConfig = $.extend(true, {}, this.getGlInstance()?.toConfig())\n .content[0];\n parentItem = this._layoutManager.root.getItemsById(\n this._parentId\n )[0] as Root;\n\n /*\n * Fallback if parentItem is not available. Either add it to the topmost\n * item or make it the topmost item if the layout is empty\n */\n if (!parentItem) {\n if ((this._layoutManager.root.contentItems.length ?? 0) > 0) {\n parentItem = this._layoutManager.root.contentItems[0];\n } else {\n parentItem = this._layoutManager.root;\n }\n index = 0;\n }\n }\n\n if (!childConfig) {\n return;\n }\n\n parentItem?.addChild(childConfig, this._indexInParent);\n this.close();\n }\n\n /**\n * Creates the URL and window parameter\n * and opens a new window\n */\n _createWindow() {\n const url = this._createUrl();\n /**\n * Bogus title to prevent re-usage of existing window with the\n * same title. The actual title will be set by the new window's\n * GoldenLayout instance if it detects that it is in subWindowMode\n */\n const title = Math.floor(Math.random() * 1000000).toString(36);\n /**\n * The options as used in the window.open string\n */\n const options = this._serializeWindowOptions({\n width: this._dimensions.width,\n height: this._dimensions.height,\n innerWidth: this._dimensions.width,\n innerHeight: this._dimensions.height,\n menubar: 'no',\n toolbar: 'no',\n location: 'no',\n personalbar: 'no',\n resizable: 'yes',\n scrollbars: 'no',\n status: 'no',\n });\n\n // I'm not entirely sure how __glInstance is mounted to the popout window\n this._popoutWindow = window.open(url, title, options) as Window & {\n __glInstance: LayoutManager;\n };\n\n if (!this._popoutWindow) {\n if (\n this._layoutManager.config.settings.blockedPopoutsThrowError === true\n ) {\n const error = new Error('Popout blocked') as Error & { type: string };\n error.type = 'popoutBlocked';\n throw error;\n } else {\n return;\n }\n }\n\n $(this._popoutWindow)\n .on('load', this._positionWindow.bind(this))\n .on('unload beforeunload', this._onClose.bind(this));\n\n /**\n * Polling the childwindow to find out if GoldenLayout has been initialised\n * doesn't seem optimal, but the alternatives - adding a callback to the parent\n * window or raising an event on the window object - both would introduce knowledge\n * about the parent to the child window which we'd rather avoid\n */\n let checkReadyInterval = window.setInterval(() => {\n if (\n this._popoutWindow?.__glInstance &&\n this._popoutWindow.__glInstance.isInitialised\n ) {\n this._onInitialised();\n window.clearInterval(checkReadyInterval);\n }\n }, 10);\n }\n\n /**\n * Serialises a map of key:values to a window options string\n *\n * @param windowOptions\n *\n * @returns serialised window options\n */\n _serializeWindowOptions(windowOptions: Record<string, unknown>) {\n var windowOptionsString = [],\n key;\n\n for (key in windowOptions) {\n windowOptionsString.push(key + '=' + windowOptions[key]);\n }\n\n return windowOptionsString.join(',');\n }\n\n /**\n * Creates the URL for the new window, including the\n * config GET parameter\n *\n * @returns URL\n */\n _createUrl() {\n var config: Partial<Config> = { content: this._config };\n const storageKey = 'gl-window-config-' + getUniqueId();\n\n config = minifyConfig(config);\n\n try {\n localStorage.setItem(storageKey, JSON.stringify(config));\n } catch (e: any) {\n throw new Error('Error while writing to localStorage ' + e.toString());\n }\n\n const urlParts = document.location.href.split('?');\n\n // URL doesn't contain GET-parameters\n if (urlParts.length === 1) {\n return urlParts[0] + '?gl-window=' + storageKey;\n\n // URL contains GET-parameters\n } else {\n return document.location.href + '&gl-window=' + storageKey;\n }\n }\n\n /**\n * Move the newly created window roughly to\n * where the component used to be.\n */\n _positionWindow() {\n this._popoutWindow?.moveTo(this._dimensions.left, this._dimensions.top);\n this._popoutWindow?.focus();\n }\n\n /**\n * Callback when the new window is opened and the GoldenLayout instance\n * within it is initialised\n */\n _onInitialised() {\n this.isInitialised = true;\n this.getGlInstance()?.on('popIn', this.popIn, this);\n this.emit('initialised');\n }\n\n /**\n * Invoked 50ms after the window unload event\n */\n _onClose() {\n setTimeout(this.emit.bind(this, 'closed'), 50);\n }\n}\n"],"mappings":";;;AAAA,OAAOA,CAAC,MAAM,QAAQ;AAAC,SAIdC,WAAW,EAAEC,YAAY,EAAEC,YAAY;AAUhD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,MAAMC,aAAa,SAASD,YAAY,CAAC;EAYtDE,WAAWA,CACTC,MAAoB,EACpBC,UAA6B,EAC7BC,QAAgB,EAChBC,aAAqB,EACrBC,aAA4B,EAC5B;IACA,KAAK,CAAC,CAAC;IAACC,eAAA,wBAlBM,KAAK;IAAAA,eAAA;IAAAA,eAAA;IAAAA,eAAA;IAAAA,eAAA;IAAAA,eAAA;IAAAA,eAAA,wBAQnB,IAAI;IAAAA,eAAA,cACQ,IAAI;IAWhB,IAAI,CAACC,OAAO,GAAGN,MAAM;IACrB,IAAI,CAACO,WAAW,GAAGN,UAAU;IAC7B,IAAI,CAACO,SAAS,GAAGN,QAAQ;IACzB,IAAI,CAACO,cAAc,GAAGN,aAAa;IACnC,IAAI,CAACO,cAAc,GAAGN,aAAa;IACnC,IAAI,CAACO,aAAa,CAAC,CAAC;EACtB;EAEAC,QAAQA,CAAA,EAAG;IAAA,IAAAC,mBAAA,EAAAC,oBAAA,EAAAC,IAAA,EAAAC,qBAAA,EAAAC,mBAAA,EAAAC,oBAAA,EAAAC,KAAA,EAAAC,sBAAA,EAAAC,oBAAA,EAAAC,oBAAA,EAAAC,oBAAA;IACT,IAAI,IAAI,CAACC,aAAa,KAAK,KAAK,EAAE;MAChC,MAAM,IAAIC,KAAK,CAAC,iDAAiD,CAAC;IACpE;IACA,OAAO;MACLxB,UAAU,EAAE;QACVyB,KAAK,GAAAb,mBAAA,GAAE,IAAI,CAACc,aAAa,CAAC,CAAC,cAAAd,mBAAA,uBAApBA,mBAAA,CAAsBa,KAAK;QAClCE,MAAM,GAAAd,oBAAA,GAAE,IAAI,CAACa,aAAa,CAAC,CAAC,cAAAb,oBAAA,uBAApBA,oBAAA,CAAsBc,MAAM;QACpCC,IAAI,GAAAd,IAAA,IAAAC,qBAAA,IAAAC,mBAAA,GACF,IAAI,CAACa,aAAa,cAAAb,mBAAA,uBAAlBA,mBAAA,CAAoBc,OAAO,cAAAf,qBAAA,cAAAA,qBAAA,IAAAE,oBAAA,GAAI,IAAI,CAACY,aAAa,cAAAZ,oBAAA,uBAAlBA,oBAAA,CAAoBc,UAAU,cAAAjB,IAAA,cAAAA,IAAA,GAAI,CAAC;QACpEkB,GAAG,GAAAd,KAAA,IAAAC,sBAAA,IAAAC,oBAAA,GAAE,IAAI,CAACS,aAAa,cAAAT,oBAAA,uBAAlBA,oBAAA,CAAoBa,OAAO,cAAAd,sBAAA,cAAAA,sBAAA,IAAAE,oBAAA,GAAI,IAAI,CAACQ,aAAa,cAAAR,oBAAA,uBAAlBA,oBAAA,CAAoBa,SAAS,cAAAhB,KAAA,cAAAA,KAAA,GAAI;MACvE,CAAC;MACDiB,OAAO,GAAAb,oBAAA,GAAE,IAAI,CAACI,aAAa,CAAC,CAAC,cAAAJ,oBAAA,uBAApBA,oBAAA,CAAsBX,QAAQ,CAAC,CAAC,CAACwB,OAAO;MACjDlC,QAAQ,EAAE,IAAI,CAACM,SAAS;MACxBL,aAAa,EAAE,IAAI,CAACM;IACtB,CAAC;EACH;EAEAkB,aAAaA,CAAA,EAAG;IAAA,IAAAU,oBAAA;IACd,QAAAA,oBAAA,GAAO,IAAI,CAACP,aAAa,cAAAO,oBAAA,uBAAlBA,oBAAA,CAAoBC,YAAY;EACzC;EAEAC,SAASA,CAAA,EAAG;IACV,OAAO,IAAI,CAACT,aAAa;EAC3B;EAEAU,KAAKA,CAAA,EAAG;IACN,IAAI,IAAI,CAACb,aAAa,CAAC,CAAC,EAAE;MAAA,IAAAc,oBAAA;MACxB,CAAAA,oBAAA,OAAI,CAACd,aAAa,CAAC,CAAC,cAAAc,oBAAA,eAApBA,oBAAA,CAAsBC,aAAa,CAAC,CAAC;IACvC,CAAC,MAAM;MACL,IAAI;QAAA,IAAAC,eAAA;QACF,CAAAA,eAAA,OAAI,CAACJ,SAAS,CAAC,CAAC,cAAAI,eAAA,eAAhBA,eAAA,CAAkBH,KAAK,CAAC,CAAC;MAC3B,CAAC,CAAC,OAAOI,CAAC,EAAE,CAAC;IACf;EACF;;EAEA;AACF;AACA;AACA;EACEC,KAAKA,CAAA,EAAG;IAAA,IAAAC,WAAA;IACN,IAAIC,KAAK,GAAG,IAAI,CAACtC,cAAc;IAC/B,IAAIuC,WAA8B,GAAG,IAAI;IACzC,IAAIC,UAAsC,GAAG,IAAI;IAEjD,IAAI,IAAI,CAACzC,SAAS,EAAE;MAAA,IAAA0C,oBAAA;MAClB;AACN;AACA;AACA;AACA;AACA;AACA;AACA;AACA;MACMF,WAAW,GAAGtD,CAAC,CAACyD,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,GAAAD,oBAAA,GAAE,IAAI,CAACvB,aAAa,CAAC,CAAC,cAAAuB,oBAAA,uBAApBA,oBAAA,CAAsBtC,QAAQ,CAAC,CAAC,CAAC,CAC/DwB,OAAO,CAAC,CAAC,CAAC;MACba,UAAU,GAAG,IAAI,CAACvC,cAAc,CAAC0C,IAAI,CAACC,YAAY,CAChD,IAAI,CAAC7C,SACP,CAAC,CAAC,CAAC,CAAS;;MAEZ;AACN;AACA;AACA;MACM,IAAI,CAACyC,UAAU,EAAE;QAAA,IAAAK,qBAAA;QACf,IAAI,EAAAA,qBAAA,GAAC,IAAI,CAAC5C,cAAc,CAAC0C,IAAI,CAACG,YAAY,CAACC,MAAM,cAAAF,qBAAA,cAAAA,qBAAA,GAAI,CAAC,IAAI,CAAC,EAAE;UAC3DL,UAAU,GAAG,IAAI,CAACvC,cAAc,CAAC0C,IAAI,CAACG,YAAY,CAAC,CAAC,CAAC;QACvD,CAAC,MAAM;UACLN,UAAU,GAAG,IAAI,CAACvC,cAAc,CAAC0C,IAAI;QACvC;QACAL,KAAK,GAAG,CAAC;MACX;IACF;IAEA,IAAI,CAACC,WAAW,EAAE;MAChB;IACF;IAEA,CAAAF,WAAA,GAAAG,UAAU,cAAAH,WAAA,eAAVA,WAAA,CAAYW,QAAQ,CAACT,WAAW,EAAE,IAAI,CAACvC,cAAc,CAAC;IACtD,IAAI,CAAC+B,KAAK,CAAC,CAAC;EACd;;EAEA;AACF;AACA;AACA;EACE7B,aAAaA,CAAA,EAAG;IACd,IAAM+C,GAAG,GAAG,IAAI,CAACC,UAAU,CAAC,CAAC;IAC7B;AACJ;AACA;AACA;AACA;IACI,IAAMC,KAAK,GAAGC,IAAI,CAACC,KAAK,CAACD,IAAI,CAACE,MAAM,CAAC,CAAC,GAAG,OAAO,CAAC,CAACC,QAAQ,CAAC,EAAE,CAAC;IAC9D;AACJ;AACA;IACI,IAAMC,OAAO,GAAG,IAAI,CAACC,uBAAuB,CAAC;MAC3CxC,KAAK,EAAE,IAAI,CAACnB,WAAW,CAACmB,KAAK;MAC7BE,MAAM,EAAE,IAAI,CAACrB,WAAW,CAACqB,MAAM;MAC/BuC,UAAU,EAAE,IAAI,CAAC5D,WAAW,CAACmB,KAAK;MAClC0C,WAAW,EAAE,IAAI,CAAC7D,WAAW,CAACqB,MAAM;MACpCyC,OAAO,EAAE,IAAI;MACbC,OAAO,EAAE,IAAI;MACbC,QAAQ,EAAE,IAAI;MACdC,WAAW,EAAE,IAAI;MACjBC,SAAS,EAAE,KAAK;MAChBC,UAAU,EAAE,IAAI;MAChBC,MAAM,EAAE;IACV,CAAC,CAAC;;IAEF;IACA,IAAI,CAAC7C,aAAa,GAAG8C,MAAM,CAACC,IAAI,CAACnB,GAAG,EAAEE,KAAK,EAAEK,OAAO,CAEnD;IAED,IAAI,CAAC,IAAI,CAACnC,aAAa,EAAE;MACvB,IACE,IAAI,CAACpB,cAAc,CAACV,MAAM,CAAC8E,QAAQ,CAACC,wBAAwB,KAAK,IAAI,EACrE;QACA,IAAMC,KAAK,GAAG,IAAIvD,KAAK,CAAC,gBAAgB,CAA6B;QACrEuD,KAAK,CAACC,IAAI,GAAG,eAAe;QAC5B,MAAMD,KAAK;MACb,CAAC,MAAM;QACL;MACF;IACF;IAEAtF,CAAC,CAAC,IAAI,CAACoC,aAAa,CAAC,CAClBoD,EAAE,CAAC,MAAM,EAAE,IAAI,CAACC,eAAe,CAACC,IAAI,CAAC,IAAI,CAAC,CAAC,CAC3CF,EAAE,CAAC,qBAAqB,EAAE,IAAI,CAACG,QAAQ,CAACD,IAAI,CAAC,IAAI,CAAC,CAAC;;IAEtD;AACJ;AACA;AACA;AACA;AACA;IACI,IAAIE,kBAAkB,GAAGV,MAAM,CAACW,WAAW,CAAC,MAAM;MAAA,IAAAC,oBAAA;MAChD,IACE,CAAAA,oBAAA,OAAI,CAAC1D,aAAa,cAAA0D,oBAAA,eAAlBA,oBAAA,CAAoBlD,YAAY,IAChC,IAAI,CAACR,aAAa,CAACQ,YAAY,CAACd,aAAa,EAC7C;QACA,IAAI,CAACiE,cAAc,CAAC,CAAC;QACrBb,MAAM,CAACc,aAAa,CAACJ,kBAAkB,CAAC;MAC1C;IACF,CAAC,EAAE,EAAE,CAAC;EACR;;EAEA;AACF;AACA;AACA;AACA;AACA;AACA;EACEpB,uBAAuBA,CAACyB,aAAsC,EAAE;IAC9D,IAAIC,mBAAmB,GAAG,EAAE;MAC1BC,GAAG;IAEL,KAAKA,GAAG,IAAIF,aAAa,EAAE;MACzBC,mBAAmB,CAACE,IAAI,CAACD,GAAG,GAAG,GAAG,GAAGF,aAAa,CAACE,GAAG,CAAC,CAAC;IAC1D;IAEA,OAAOD,mBAAmB,CAACG,IAAI,CAAC,GAAG,CAAC;EACtC;;EAEA;AACF;AACA;AACA;AACA;AACA;EACEpC,UAAUA,CAAA,EAAG;IACX,IAAI3D,MAAuB,GAAG;MAAEoC,OAAO,EAAE,IAAI,CAAC9B;IAAQ,CAAC;IACvD,IAAM0F,UAAU,GAAG,mBAAmB,GAAGrG,WAAW,CAAC,CAAC;IAEtDK,MAAM,GAAGJ,YAAY,CAACI,MAAM,CAAC;IAE7B,IAAI;MACFiG,YAAY,CAACC,OAAO,CAACF,UAAU,EAAEG,IAAI,CAACC,SAAS,CAACpG,MAAM,CAAC,CAAC;IAC1D,CAAC,CAAC,OAAO4C,CAAM,EAAE;MACf,MAAM,IAAInB,KAAK,CAAC,sCAAsC,GAAGmB,CAAC,CAACoB,QAAQ,CAAC,CAAC,CAAC;IACxE;IAEA,IAAMqC,QAAQ,GAAGC,QAAQ,CAAC/B,QAAQ,CAACgC,IAAI,CAACC,KAAK,CAAC,GAAG,CAAC;;IAElD;IACA,IAAIH,QAAQ,CAAC7C,MAAM,KAAK,CAAC,EAAE;MACzB,OAAO6C,QAAQ,CAAC,CAAC,CAAC,GAAG,aAAa,GAAGL,UAAU;;MAE/C;IACF,CAAC,MAAM;MACL,OAAOM,QAAQ,CAAC/B,QAAQ,CAACgC,IAAI,GAAG,aAAa,GAAGP,UAAU;IAC5D;EACF;;EAEA;AACF;AACA;AACA;EACEb,eAAeA,CAAA,EAAG;IAAA,IAAAsB,oBAAA,EAAAC,oBAAA;IAChB,CAAAD,oBAAA,OAAI,CAAC3E,aAAa,cAAA2E,oBAAA,eAAlBA,oBAAA,CAAoBE,MAAM,CAAC,IAAI,CAACpG,WAAW,CAACsB,IAAI,EAAE,IAAI,CAACtB,WAAW,CAAC0B,GAAG,CAAC;IACvE,CAAAyE,oBAAA,OAAI,CAAC5E,aAAa,cAAA4E,oBAAA,eAAlBA,oBAAA,CAAoBE,KAAK,CAAC,CAAC;EAC7B;;EAEA;AACF;AACA;AACA;EACEnB,cAAcA,CAAA,EAAG;IAAA,IAAAoB,oBAAA;IACf,IAAI,CAACrF,aAAa,GAAG,IAAI;IACzB,CAAAqF,oBAAA,OAAI,CAAClF,aAAa,CAAC,CAAC,cAAAkF,oBAAA,eAApBA,oBAAA,CAAsB3B,EAAE,CAAC,OAAO,EAAE,IAAI,CAACrC,KAAK,EAAE,IAAI,CAAC;IACnD,IAAI,CAACiE,IAAI,CAAC,aAAa,CAAC;EAC1B;;EAEA;AACF;AACA;EACEzB,QAAQA,CAAA,EAAG;IACT0B,UAAU,CAAC,IAAI,CAACD,IAAI,CAAC1B,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,EAAE,EAAE,CAAC;EAChD;AACF","ignoreList":[]}
|
|
@@ -131,7 +131,7 @@ export default class DragProxy extends EventEmitter {
|
|
|
131
131
|
*/
|
|
132
132
|
_onDrop() {
|
|
133
133
|
var _this$_layoutManager$3;
|
|
134
|
-
(_this$_layoutManager$3 = this._layoutManager.dropTargetIndicator) === null || _this$_layoutManager$3 === void 0
|
|
134
|
+
(_this$_layoutManager$3 = this._layoutManager.dropTargetIndicator) === null || _this$_layoutManager$3 === void 0 || _this$_layoutManager$3.hide();
|
|
135
135
|
|
|
136
136
|
/*
|
|
137
137
|
* Valid drop area found
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DragProxy.js","names":["$","stripTags","EventEmitter","DragProxy","constructor","x","y","dragListener","layoutManager","contentItem","originalParent","_this$_contentItem$co","_this$_contentItem$co2","_offset$left","_offset$top","_this$_layoutManager$","_this$_layoutManager$2","_this$element$width","_this$element$height","_defineProperty","_dragListener","_layoutManager","_contentItem","_originalParent","on","_onDrag","_onDrop","tab","element","_this$_contentItem$ta","_this$_contentItem$ta2","tabDropPlaceholder","width","outerWidth","height","outerHeight","_template","_side","_sided","addClass","indexOf","toString","find","after","css","left","top","_proxyTab","attr","config","title","text","childElementContainer","append","_updateTree","_$calculateItemAreas","document","body","_setDimensions","length","_this$_proxyTab$outer","_this$_proxyTab$outer2","offset","container","_minX","_minY","_maxX","_maxY","_width","_height","_setDropPosition","emit","offsetX","offsetY","event","_event$pageX","_event$pageY","pageX","pageY","isWithinContainer","settings","constrainDragToContainer","_area","_$getArea","_lastValidArea","_$highlightDropZone","_this$_layoutManager$3","dropTargetIndicator","hide","_$onDrop","addChild","_$destroy","off","remove","parent","removeChild","_$setParent","dimensions","dragProxyWidth","dragProxyHeight","headerHeight","callDownwards"],"sources":["../../src/controls/DragProxy.ts"],"sourcesContent":["import $ from 'jquery';\nimport type { AbstractContentItem, ItemArea, Stack } from '../items';\nimport type LayoutManager from '../LayoutManager';\nimport type { DragListener } from '../utils';\nimport { stripTags, EventEmitter } from '../utils';\n\n/**\n * This class creates a temporary container\n * for the component whilst it is being dragged\n * and handles drag events\n *\n * @param x The initial x position\n * @param y The initial y position\n * @param dragListener\n * @param layoutManager\n * @param contentItem\n * @param originalParent\n */\nexport default class DragProxy extends EventEmitter {\n private static _template =\n '<div class=\"lm_dragProxy\">' +\n '<div class=\"lm_header\">' +\n '<ul class=\"lm_tabs\">' +\n '<li class=\"lm_tab lm_active\"><i class=\"lm_left\"></i>' +\n '<span class=\"lm_title\"></span>' +\n '<i class=\"lm_right\"></i></li>' +\n '</ul>' +\n '</div>' +\n '<div class=\"lm_content\"></div>' +\n '</div>';\n\n private _dragListener: DragListener;\n private _layoutManager: LayoutManager;\n private _contentItem: AbstractContentItem;\n private _originalParent: Stack | null;\n\n private _area: ItemArea | null = null;\n private _lastValidArea: ItemArea | null = null;\n\n private _minX: number;\n private _maxX: number;\n private _minY: number;\n private _maxY: number;\n private _width: number;\n private _height: number;\n private _sided?: boolean;\n\n element: JQuery<HTMLElement>;\n childElementContainer: JQuery<HTMLElement>;\n private _proxyTab: JQuery<HTMLElement>;\n\n constructor(\n x: number,\n y: number,\n dragListener: DragListener,\n layoutManager: LayoutManager,\n contentItem: AbstractContentItem,\n originalParent: Stack | null\n ) {\n super();\n\n this._dragListener = dragListener;\n this._layoutManager = layoutManager;\n this._contentItem = contentItem;\n this._originalParent = originalParent;\n\n this._dragListener.on('drag', this._onDrag, this);\n this._dragListener.on('dragStop', this._onDrop, this);\n\n // set the inserted drag placeholder to be the size of the tab removed, before its removed\n if (this._contentItem.tab && this._contentItem.tab.element) {\n this._layoutManager.tabDropPlaceholder.width(\n this._contentItem.tab.element.outerWidth(true) ?? 0\n );\n this._layoutManager.tabDropPlaceholder.height(\n this._contentItem.tab.element.outerHeight(true) ?? 0\n );\n }\n\n this.element = $(DragProxy._template);\n if (originalParent && originalParent._side) {\n this._sided = originalParent._sided;\n this.element.addClass('lm_' + originalParent._side);\n if (['right', 'bottom'].indexOf(originalParent._side.toString()) >= 0)\n this.element.find('.lm_content').after(this.element.find('.lm_header'));\n }\n this.element.css({ left: x, top: y });\n this._proxyTab = this.element.find('.lm_tab');\n this._proxyTab.attr(\n 'title',\n stripTags(this._contentItem.config.title ?? '')\n );\n this.element.find('.lm_title').text(this._contentItem.config.title ?? '');\n this.childElementContainer = this.element.find('.lm_content');\n this.childElementContainer.append(contentItem.element);\n\n this._updateTree();\n this._layoutManager._$calculateItemAreas();\n\n $(document.body).append(this.element);\n\n // Need to set dimensions after adding the element, or `Component.setSize()` will not pass the `.is('visible')` test and won't update\n this._setDimensions();\n\n // there's no content tab to use yet, use the proxy tab size for placeholder sizing, after it's created\n if (!this._contentItem.tab && this._proxyTab.length) {\n this._layoutManager.tabDropPlaceholder.width(\n this._proxyTab.outerWidth(true) ?? 0\n );\n this._layoutManager.tabDropPlaceholder.height(\n this._proxyTab.outerHeight(true) ?? 0\n );\n }\n\n var offset = this._layoutManager.container.offset();\n\n this._minX = offset?.left ?? 0;\n this._minY = offset?.top ?? 0;\n this._maxX = (this._layoutManager.container.width() ?? 0) + this._minX;\n this._maxY = (this._layoutManager.container.height() ?? 0) + this._minY;\n this._width = this.element.width() ?? 0;\n this._height = this.element.height() ?? 0;\n\n this._setDropPosition(x, y);\n\n this._layoutManager.emit('itemPickedUp', this._contentItem);\n }\n\n /**\n * Callback on every mouseMove event during a drag. Determines if the drag is\n * still within the valid drag area and calls the layoutManager to highlight the\n * current drop area\n *\n * @param offsetX The difference from the original x position in px\n * @param offsetY The difference from the original y position in px\n * @param event\n */\n _onDrag(offsetX: number, offsetY: number, event: JQuery.TriggeredEvent) {\n const x = event.pageX ?? 0;\n const y = event.pageY ?? 0;\n const isWithinContainer =\n x > this._minX && x < this._maxX && y > this._minY && y < this._maxY;\n\n if (\n !isWithinContainer &&\n this._layoutManager.config.settings.constrainDragToContainer === true\n ) {\n return;\n }\n\n this._setDropPosition(x, y);\n }\n\n /**\n * Sets the target position, highlighting the appropriate area\n *\n * @param x The x position in px\n * @param y The y position in px\n */\n _setDropPosition(x: number, y: number) {\n this.element.css({ left: x, top: y });\n this._area = this._layoutManager._$getArea(x, y);\n\n if (this._area !== null) {\n this._lastValidArea = this._area;\n this._area.contentItem._$highlightDropZone(x, y, this._area);\n }\n }\n\n /**\n * Callback when the drag has finished. Determines the drop area\n * and adds the child to it\n */\n _onDrop() {\n this._layoutManager.dropTargetIndicator?.hide();\n\n /*\n * Valid drop area found\n */\n if (this._area !== null) {\n this._area.contentItem._$onDrop(this._contentItem, this._area);\n\n /**\n * No valid drop area available at present, but one has been found before.\n * Use it\n */\n } else if (this._lastValidArea !== null) {\n this._lastValidArea.contentItem._$onDrop(\n this._contentItem,\n this._lastValidArea\n );\n\n /**\n * No valid drop area found during the duration of the drag. Return\n * content item to its original position if a original parent is provided.\n * (Which is not the case if the drag had been initiated by createDragSource)\n */\n } else if (this._originalParent) {\n this._originalParent.addChild(this._contentItem);\n\n /**\n * The drag didn't ultimately end up with adding the content item to\n * any container. In order to ensure clean up happens, destroy the\n * content item.\n */\n } else {\n this._contentItem._$destroy();\n }\n\n this._dragListener.off('drag', this._onDrag, this);\n this._dragListener.off('dragStop', this._onDrop, this);\n\n this.element.remove();\n\n this._layoutManager.emit('itemDropped', this._contentItem);\n }\n\n /**\n * Removes the item from its original position within the tree\n */\n _updateTree() {\n /**\n * parent is null if the drag had been initiated by a external drag source\n */\n if (this._contentItem.parent) {\n this._contentItem.parent.removeChild(this._contentItem, true);\n }\n\n this._contentItem._$setParent(null);\n }\n\n /**\n * Updates the DragProxy's dimensions\n */\n _setDimensions() {\n const dimensions = this._layoutManager.config.dimensions;\n let width = dimensions.dragProxyWidth;\n let height = dimensions.dragProxyHeight;\n\n this.element.width(width);\n this.element.height(height);\n width -= this._sided ? dimensions.headerHeight : 0;\n height -= !this._sided ? dimensions.headerHeight : 0;\n this.childElementContainer.width(width);\n this.childElementContainer.height(height);\n this._contentItem.element.width(width);\n this._contentItem.element.height(height);\n this._contentItem.callDownwards('_$show');\n this._contentItem.callDownwards('setSize');\n }\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"DragProxy.js","names":["$","stripTags","EventEmitter","DragProxy","constructor","x","y","dragListener","layoutManager","contentItem","originalParent","_this$_contentItem$co","_this$_contentItem$co2","_offset$left","_offset$top","_this$_layoutManager$","_this$_layoutManager$2","_this$element$width","_this$element$height","_defineProperty","_dragListener","_layoutManager","_contentItem","_originalParent","on","_onDrag","_onDrop","tab","element","_this$_contentItem$ta","_this$_contentItem$ta2","tabDropPlaceholder","width","outerWidth","height","outerHeight","_template","_side","_sided","addClass","indexOf","toString","find","after","css","left","top","_proxyTab","attr","config","title","text","childElementContainer","append","_updateTree","_$calculateItemAreas","document","body","_setDimensions","length","_this$_proxyTab$outer","_this$_proxyTab$outer2","offset","container","_minX","_minY","_maxX","_maxY","_width","_height","_setDropPosition","emit","offsetX","offsetY","event","_event$pageX","_event$pageY","pageX","pageY","isWithinContainer","settings","constrainDragToContainer","_area","_$getArea","_lastValidArea","_$highlightDropZone","_this$_layoutManager$3","dropTargetIndicator","hide","_$onDrop","addChild","_$destroy","off","remove","parent","removeChild","_$setParent","dimensions","dragProxyWidth","dragProxyHeight","headerHeight","callDownwards"],"sources":["../../src/controls/DragProxy.ts"],"sourcesContent":["import $ from 'jquery';\nimport type { AbstractContentItem, ItemArea, Stack } from '../items';\nimport type LayoutManager from '../LayoutManager';\nimport type { DragListener } from '../utils';\nimport { stripTags, EventEmitter } from '../utils';\n\n/**\n * This class creates a temporary container\n * for the component whilst it is being dragged\n * and handles drag events\n *\n * @param x The initial x position\n * @param y The initial y position\n * @param dragListener\n * @param layoutManager\n * @param contentItem\n * @param originalParent\n */\nexport default class DragProxy extends EventEmitter {\n private static _template =\n '<div class=\"lm_dragProxy\">' +\n '<div class=\"lm_header\">' +\n '<ul class=\"lm_tabs\">' +\n '<li class=\"lm_tab lm_active\"><i class=\"lm_left\"></i>' +\n '<span class=\"lm_title\"></span>' +\n '<i class=\"lm_right\"></i></li>' +\n '</ul>' +\n '</div>' +\n '<div class=\"lm_content\"></div>' +\n '</div>';\n\n private _dragListener: DragListener;\n private _layoutManager: LayoutManager;\n private _contentItem: AbstractContentItem;\n private _originalParent: Stack | null;\n\n private _area: ItemArea | null = null;\n private _lastValidArea: ItemArea | null = null;\n\n private _minX: number;\n private _maxX: number;\n private _minY: number;\n private _maxY: number;\n private _width: number;\n private _height: number;\n private _sided?: boolean;\n\n element: JQuery<HTMLElement>;\n childElementContainer: JQuery<HTMLElement>;\n private _proxyTab: JQuery<HTMLElement>;\n\n constructor(\n x: number,\n y: number,\n dragListener: DragListener,\n layoutManager: LayoutManager,\n contentItem: AbstractContentItem,\n originalParent: Stack | null\n ) {\n super();\n\n this._dragListener = dragListener;\n this._layoutManager = layoutManager;\n this._contentItem = contentItem;\n this._originalParent = originalParent;\n\n this._dragListener.on('drag', this._onDrag, this);\n this._dragListener.on('dragStop', this._onDrop, this);\n\n // set the inserted drag placeholder to be the size of the tab removed, before its removed\n if (this._contentItem.tab && this._contentItem.tab.element) {\n this._layoutManager.tabDropPlaceholder.width(\n this._contentItem.tab.element.outerWidth(true) ?? 0\n );\n this._layoutManager.tabDropPlaceholder.height(\n this._contentItem.tab.element.outerHeight(true) ?? 0\n );\n }\n\n this.element = $(DragProxy._template);\n if (originalParent && originalParent._side) {\n this._sided = originalParent._sided;\n this.element.addClass('lm_' + originalParent._side);\n if (['right', 'bottom'].indexOf(originalParent._side.toString()) >= 0)\n this.element.find('.lm_content').after(this.element.find('.lm_header'));\n }\n this.element.css({ left: x, top: y });\n this._proxyTab = this.element.find('.lm_tab');\n this._proxyTab.attr(\n 'title',\n stripTags(this._contentItem.config.title ?? '')\n );\n this.element.find('.lm_title').text(this._contentItem.config.title ?? '');\n this.childElementContainer = this.element.find('.lm_content');\n this.childElementContainer.append(contentItem.element);\n\n this._updateTree();\n this._layoutManager._$calculateItemAreas();\n\n $(document.body).append(this.element);\n\n // Need to set dimensions after adding the element, or `Component.setSize()` will not pass the `.is('visible')` test and won't update\n this._setDimensions();\n\n // there's no content tab to use yet, use the proxy tab size for placeholder sizing, after it's created\n if (!this._contentItem.tab && this._proxyTab.length) {\n this._layoutManager.tabDropPlaceholder.width(\n this._proxyTab.outerWidth(true) ?? 0\n );\n this._layoutManager.tabDropPlaceholder.height(\n this._proxyTab.outerHeight(true) ?? 0\n );\n }\n\n var offset = this._layoutManager.container.offset();\n\n this._minX = offset?.left ?? 0;\n this._minY = offset?.top ?? 0;\n this._maxX = (this._layoutManager.container.width() ?? 0) + this._minX;\n this._maxY = (this._layoutManager.container.height() ?? 0) + this._minY;\n this._width = this.element.width() ?? 0;\n this._height = this.element.height() ?? 0;\n\n this._setDropPosition(x, y);\n\n this._layoutManager.emit('itemPickedUp', this._contentItem);\n }\n\n /**\n * Callback on every mouseMove event during a drag. Determines if the drag is\n * still within the valid drag area and calls the layoutManager to highlight the\n * current drop area\n *\n * @param offsetX The difference from the original x position in px\n * @param offsetY The difference from the original y position in px\n * @param event\n */\n _onDrag(offsetX: number, offsetY: number, event: JQuery.TriggeredEvent) {\n const x = event.pageX ?? 0;\n const y = event.pageY ?? 0;\n const isWithinContainer =\n x > this._minX && x < this._maxX && y > this._minY && y < this._maxY;\n\n if (\n !isWithinContainer &&\n this._layoutManager.config.settings.constrainDragToContainer === true\n ) {\n return;\n }\n\n this._setDropPosition(x, y);\n }\n\n /**\n * Sets the target position, highlighting the appropriate area\n *\n * @param x The x position in px\n * @param y The y position in px\n */\n _setDropPosition(x: number, y: number) {\n this.element.css({ left: x, top: y });\n this._area = this._layoutManager._$getArea(x, y);\n\n if (this._area !== null) {\n this._lastValidArea = this._area;\n this._area.contentItem._$highlightDropZone(x, y, this._area);\n }\n }\n\n /**\n * Callback when the drag has finished. Determines the drop area\n * and adds the child to it\n */\n _onDrop() {\n this._layoutManager.dropTargetIndicator?.hide();\n\n /*\n * Valid drop area found\n */\n if (this._area !== null) {\n this._area.contentItem._$onDrop(this._contentItem, this._area);\n\n /**\n * No valid drop area available at present, but one has been found before.\n * Use it\n */\n } else if (this._lastValidArea !== null) {\n this._lastValidArea.contentItem._$onDrop(\n this._contentItem,\n this._lastValidArea\n );\n\n /**\n * No valid drop area found during the duration of the drag. Return\n * content item to its original position if a original parent is provided.\n * (Which is not the case if the drag had been initiated by createDragSource)\n */\n } else if (this._originalParent) {\n this._originalParent.addChild(this._contentItem);\n\n /**\n * The drag didn't ultimately end up with adding the content item to\n * any container. In order to ensure clean up happens, destroy the\n * content item.\n */\n } else {\n this._contentItem._$destroy();\n }\n\n this._dragListener.off('drag', this._onDrag, this);\n this._dragListener.off('dragStop', this._onDrop, this);\n\n this.element.remove();\n\n this._layoutManager.emit('itemDropped', this._contentItem);\n }\n\n /**\n * Removes the item from its original position within the tree\n */\n _updateTree() {\n /**\n * parent is null if the drag had been initiated by a external drag source\n */\n if (this._contentItem.parent) {\n this._contentItem.parent.removeChild(this._contentItem, true);\n }\n\n this._contentItem._$setParent(null);\n }\n\n /**\n * Updates the DragProxy's dimensions\n */\n _setDimensions() {\n const dimensions = this._layoutManager.config.dimensions;\n let width = dimensions.dragProxyWidth;\n let height = dimensions.dragProxyHeight;\n\n this.element.width(width);\n this.element.height(height);\n width -= this._sided ? dimensions.headerHeight : 0;\n height -= !this._sided ? dimensions.headerHeight : 0;\n this.childElementContainer.width(width);\n this.childElementContainer.height(height);\n this._contentItem.element.width(width);\n this._contentItem.element.height(height);\n this._contentItem.callDownwards('_$show');\n this._contentItem.callDownwards('setSize');\n }\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DragSource.js","names":["$","DragListener","DragProxy","DragSource","constructor","element","itemConfig","layoutManager","_defineProperty","_element","_itemConfig","_layoutManager","_dragListener","_createDragListener","on","_onDragStart","x","y","contentItem","_$normalizeContentItem","extend","dragProxy"],"sources":["../../src/controls/DragSource.ts"],"sourcesContent":["import $ from 'jquery';\nimport type { ItemConfig } from '../config';\nimport type LayoutManager from '../LayoutManager';\nimport { DragListener } from '../utils';\nimport DragProxy from './DragProxy';\n\n/**\n * Allows for any DOM item to create a component on drag\n * start tobe dragged into the Layout\n *\n * @param element\n * @param itemConfig the configuration for the contentItem that will be created\n * @param layoutManager\n */\nexport default class DragSource {\n _element: JQuery<HTMLElement>;\n _itemConfig: ItemConfig | (() => ItemConfig);\n _layoutManager: LayoutManager;\n _dragListener: DragListener;\n\n constructor(\n element: JQuery<HTMLElement>,\n itemConfig: ItemConfig | (() => ItemConfig),\n layoutManager: LayoutManager\n ) {\n this._element = element;\n this._itemConfig = itemConfig;\n this._layoutManager = layoutManager;\n\n this._dragListener = this._createDragListener();\n }\n\n /**\n * Called initially and after every drag\n */\n _createDragListener() {\n this._dragListener = new DragListener(this._element, true);\n this._dragListener.on('dragStart', this._onDragStart, this);\n this._dragListener.on('dragStop', this._createDragListener, this);\n return this._dragListener;\n }\n\n /**\n * Callback for the DragListener's dragStart event\n *\n * @param x the x position of the mouse on dragStart\n * @param y the x position of the mouse on dragStart\n */\n _onDragStart(x: number, y: number) {\n let itemConfig = this._itemConfig;\n if (typeof itemConfig === 'function') {\n itemConfig = itemConfig();\n }\n const contentItem = this._layoutManager._$normalizeContentItem(\n $.extend(true, {}, itemConfig)\n ),\n dragProxy = new DragProxy(\n x,\n y,\n this._dragListener,\n this._layoutManager,\n contentItem,\n null\n );\n }\n}\n"],"mappings":";;;AAAA,OAAOA,CAAC,MAAM,QAAQ;AAAC,SAGdC,YAAY;AAAA,OACdC,SAAS;AAEhB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,MAAMC,UAAU,CAAC;EAM9BC,WAAWA,CACTC,OAA4B,EAC5BC,UAA2C,EAC3CC,aAA4B,EAC5B;IAAAC,eAAA;IAAAA,eAAA;IAAAA,eAAA;IAAAA,eAAA;IACA,IAAI,CAACC,QAAQ,GAAGJ,OAAO;IACvB,IAAI,CAACK,WAAW,GAAGJ,UAAU;IAC7B,IAAI,CAACK,cAAc,GAAGJ,aAAa;IAEnC,IAAI,CAACK,aAAa,GAAG,IAAI,CAACC,mBAAmB,CAAC,CAAC;EACjD;;EAEA;AACF;AACA;EACEA,mBAAmBA,CAAA,EAAG;IACpB,IAAI,CAACD,aAAa,GAAG,IAAIX,YAAY,CAAC,IAAI,CAACQ,QAAQ,EAAE,IAAI,CAAC;IAC1D,IAAI,CAACG,aAAa,CAACE,EAAE,CAAC,WAAW,EAAE,IAAI,CAACC,YAAY,EAAE,IAAI,CAAC;IAC3D,IAAI,CAACH,aAAa,CAACE,EAAE,CAAC,UAAU,EAAE,IAAI,CAACD,mBAAmB,EAAE,IAAI,CAAC;IACjE,OAAO,IAAI,CAACD,aAAa;EAC3B;;EAEA;AACF;AACA;AACA;AACA;AACA;EACEG,YAAYA,CAACC,CAAS,EAAEC,CAAS,EAAE;IACjC,IAAIX,UAAU,GAAG,IAAI,CAACI,WAAW;IACjC,IAAI,OAAOJ,UAAU,KAAK,UAAU,EAAE;MACpCA,UAAU,GAAGA,UAAU,CAAC,CAAC;IAC3B;IACA,IAAMY,WAAW,GAAG,IAAI,CAACP,cAAc,CAACQ,sBAAsB,CAC1DnB,CAAC,CAACoB,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,EAAEd,UAAU,CAC/B,CAAC;MACDe,SAAS,GAAG,IAAInB,SAAS,CACvBc,CAAC,EACDC,CAAC,EACD,IAAI,CAACL,aAAa,EAClB,IAAI,CAACD,cAAc,EACnBO,WAAW,EACX,IACF,CAAC;EACL;AACF"}
|
|
1
|
+
{"version":3,"file":"DragSource.js","names":["$","DragListener","DragProxy","DragSource","constructor","element","itemConfig","layoutManager","_defineProperty","_element","_itemConfig","_layoutManager","_dragListener","_createDragListener","on","_onDragStart","x","y","contentItem","_$normalizeContentItem","extend","dragProxy"],"sources":["../../src/controls/DragSource.ts"],"sourcesContent":["import $ from 'jquery';\nimport type { ItemConfig } from '../config';\nimport type LayoutManager from '../LayoutManager';\nimport { DragListener } from '../utils';\nimport DragProxy from './DragProxy';\n\n/**\n * Allows for any DOM item to create a component on drag\n * start tobe dragged into the Layout\n *\n * @param element\n * @param itemConfig the configuration for the contentItem that will be created\n * @param layoutManager\n */\nexport default class DragSource {\n _element: JQuery<HTMLElement>;\n _itemConfig: ItemConfig | (() => ItemConfig);\n _layoutManager: LayoutManager;\n _dragListener: DragListener;\n\n constructor(\n element: JQuery<HTMLElement>,\n itemConfig: ItemConfig | (() => ItemConfig),\n layoutManager: LayoutManager\n ) {\n this._element = element;\n this._itemConfig = itemConfig;\n this._layoutManager = layoutManager;\n\n this._dragListener = this._createDragListener();\n }\n\n /**\n * Called initially and after every drag\n */\n _createDragListener() {\n this._dragListener = new DragListener(this._element, true);\n this._dragListener.on('dragStart', this._onDragStart, this);\n this._dragListener.on('dragStop', this._createDragListener, this);\n return this._dragListener;\n }\n\n /**\n * Callback for the DragListener's dragStart event\n *\n * @param x the x position of the mouse on dragStart\n * @param y the x position of the mouse on dragStart\n */\n _onDragStart(x: number, y: number) {\n let itemConfig = this._itemConfig;\n if (typeof itemConfig === 'function') {\n itemConfig = itemConfig();\n }\n const contentItem = this._layoutManager._$normalizeContentItem(\n $.extend(true, {}, itemConfig)\n ),\n dragProxy = new DragProxy(\n x,\n y,\n this._dragListener,\n this._layoutManager,\n contentItem,\n null\n );\n }\n}\n"],"mappings":";;;AAAA,OAAOA,CAAC,MAAM,QAAQ;AAAC,SAGdC,YAAY;AAAA,OACdC,SAAS;AAEhB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,MAAMC,UAAU,CAAC;EAM9BC,WAAWA,CACTC,OAA4B,EAC5BC,UAA2C,EAC3CC,aAA4B,EAC5B;IAAAC,eAAA;IAAAA,eAAA;IAAAA,eAAA;IAAAA,eAAA;IACA,IAAI,CAACC,QAAQ,GAAGJ,OAAO;IACvB,IAAI,CAACK,WAAW,GAAGJ,UAAU;IAC7B,IAAI,CAACK,cAAc,GAAGJ,aAAa;IAEnC,IAAI,CAACK,aAAa,GAAG,IAAI,CAACC,mBAAmB,CAAC,CAAC;EACjD;;EAEA;AACF;AACA;EACEA,mBAAmBA,CAAA,EAAG;IACpB,IAAI,CAACD,aAAa,GAAG,IAAIX,YAAY,CAAC,IAAI,CAACQ,QAAQ,EAAE,IAAI,CAAC;IAC1D,IAAI,CAACG,aAAa,CAACE,EAAE,CAAC,WAAW,EAAE,IAAI,CAACC,YAAY,EAAE,IAAI,CAAC;IAC3D,IAAI,CAACH,aAAa,CAACE,EAAE,CAAC,UAAU,EAAE,IAAI,CAACD,mBAAmB,EAAE,IAAI,CAAC;IACjE,OAAO,IAAI,CAACD,aAAa;EAC3B;;EAEA;AACF;AACA;AACA;AACA;AACA;EACEG,YAAYA,CAACC,CAAS,EAAEC,CAAS,EAAE;IACjC,IAAIX,UAAU,GAAG,IAAI,CAACI,WAAW;IACjC,IAAI,OAAOJ,UAAU,KAAK,UAAU,EAAE;MACpCA,UAAU,GAAGA,UAAU,CAAC,CAAC;IAC3B;IACA,IAAMY,WAAW,GAAG,IAAI,CAACP,cAAc,CAACQ,sBAAsB,CAC1DnB,CAAC,CAACoB,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,EAAEd,UAAU,CAC/B,CAAC;MACDe,SAAS,GAAG,IAAInB,SAAS,CACvBc,CAAC,EACDC,CAAC,EACD,IAAI,CAACL,aAAa,EAClB,IAAI,CAACD,cAAc,EACnBO,WAAW,EACX,IACF,CAAC;EACL;AACF","ignoreList":[]}
|
|
@@ -13,10 +13,9 @@ import DragProxy from "./DragProxy.js";
|
|
|
13
13
|
* @param event used to get the starting position
|
|
14
14
|
*/
|
|
15
15
|
export default class DragSourceFromEvent {
|
|
16
|
-
// we need something to listen for mousemoves against
|
|
17
|
-
|
|
18
16
|
constructor(itemConfig, layoutManager, event) {
|
|
19
17
|
_defineProperty(this, "_element", $(window));
|
|
18
|
+
// we need something to listen for mousemoves against
|
|
20
19
|
_defineProperty(this, "_itemConfig", void 0);
|
|
21
20
|
_defineProperty(this, "_layoutManager", void 0);
|
|
22
21
|
_defineProperty(this, "_dragListener", void 0);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DragSourceFromEvent.js","names":["$","DragListener","DragProxy","DragSourceFromEvent","constructor","itemConfig","layoutManager","event","_defineProperty","window","_itemConfig","_layoutManager","_createDragListener","_dragListener","destroy","_element","on","_onDragStart","_destroy","onMouseDown","_startDrag","undefined","x","y","contentItem","_$normalizeContentItem","extend"],"sources":["../../src/controls/DragSourceFromEvent.ts"],"sourcesContent":["import $ from 'jquery';\nimport type { ItemConfig } from '../config';\nimport type LayoutManager from '../LayoutManager';\nimport { DragListener } from '../utils';\nimport { DragListenerEvent } from '../utils/DragListener';\nimport DragProxy from './DragProxy';\n\n/**\n * Creates a drag item given a starting mouseevent\n * that can then be dragged into the Layout\n *\n * @param itemConfig the configuration for the contentItem that will be created\n * @param layoutManager\n * @param event used to get the starting position\n */\nexport default class DragSourceFromEvent {\n private _element? = $(window) as unknown as JQuery<HTMLElement>; // we need something to listen for mousemoves against\n private _itemConfig?: ItemConfig | (() => ItemConfig);\n private _layoutManager?: LayoutManager;\n private _dragListener?: DragListener;\n\n constructor(\n itemConfig: ItemConfig | (() => ItemConfig),\n layoutManager: LayoutManager,\n event: DragListenerEvent\n ) {\n this._itemConfig = itemConfig;\n this._layoutManager = layoutManager;\n\n this._createDragListener(event);\n }\n\n /**\n * Called initially and after every drag\n */\n _createDragListener(event: DragListenerEvent) {\n if (this._dragListener) {\n this._dragListener.destroy();\n }\n\n if (!this._element) {\n return;\n }\n\n this._dragListener = new DragListener(this._element, true);\n this._dragListener.on('dragStart', this._onDragStart, this);\n this._dragListener.on('dragStop', this._destroy, this);\n\n // manaully pass in an event as mousedow, that already happened to start the dragListener\n this._dragListener.onMouseDown(event);\n this._dragListener._startDrag();\n }\n\n _destroy() {\n this._dragListener = undefined;\n this._element = undefined;\n this._itemConfig = undefined;\n this._layoutManager = undefined;\n }\n\n /**\n * Callback for the DragListener's dragStart event\n *\n * @param x the x position of the mouse on dragStart\n * @param y the x position of the mouse on dragStart\n */\n _onDragStart(x: number, y: number) {\n if (!this._dragListener || !this._layoutManager) {\n return;\n }\n\n var itemConfig = this._itemConfig;\n if (typeof itemConfig === 'function') {\n itemConfig = itemConfig();\n }\n var contentItem = this._layoutManager._$normalizeContentItem(\n $.extend(true, {}, itemConfig)\n );\n new DragProxy(\n x,\n y,\n this._dragListener,\n this._layoutManager,\n contentItem,\n null\n );\n }\n}\n"],"mappings":";;;AAAA,OAAOA,CAAC,MAAM,QAAQ;AAAC,SAGdC,YAAY;AAAA,OAEdC,SAAS;AAEhB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,MAAMC,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"DragSourceFromEvent.js","names":["$","DragListener","DragProxy","DragSourceFromEvent","constructor","itemConfig","layoutManager","event","_defineProperty","window","_itemConfig","_layoutManager","_createDragListener","_dragListener","destroy","_element","on","_onDragStart","_destroy","onMouseDown","_startDrag","undefined","x","y","contentItem","_$normalizeContentItem","extend"],"sources":["../../src/controls/DragSourceFromEvent.ts"],"sourcesContent":["import $ from 'jquery';\nimport type { ItemConfig } from '../config';\nimport type LayoutManager from '../LayoutManager';\nimport { DragListener } from '../utils';\nimport { DragListenerEvent } from '../utils/DragListener';\nimport DragProxy from './DragProxy';\n\n/**\n * Creates a drag item given a starting mouseevent\n * that can then be dragged into the Layout\n *\n * @param itemConfig the configuration for the contentItem that will be created\n * @param layoutManager\n * @param event used to get the starting position\n */\nexport default class DragSourceFromEvent {\n private _element? = $(window) as unknown as JQuery<HTMLElement>; // we need something to listen for mousemoves against\n private _itemConfig?: ItemConfig | (() => ItemConfig);\n private _layoutManager?: LayoutManager;\n private _dragListener?: DragListener;\n\n constructor(\n itemConfig: ItemConfig | (() => ItemConfig),\n layoutManager: LayoutManager,\n event: DragListenerEvent\n ) {\n this._itemConfig = itemConfig;\n this._layoutManager = layoutManager;\n\n this._createDragListener(event);\n }\n\n /**\n * Called initially and after every drag\n */\n _createDragListener(event: DragListenerEvent) {\n if (this._dragListener) {\n this._dragListener.destroy();\n }\n\n if (!this._element) {\n return;\n }\n\n this._dragListener = new DragListener(this._element, true);\n this._dragListener.on('dragStart', this._onDragStart, this);\n this._dragListener.on('dragStop', this._destroy, this);\n\n // manaully pass in an event as mousedow, that already happened to start the dragListener\n this._dragListener.onMouseDown(event);\n this._dragListener._startDrag();\n }\n\n _destroy() {\n this._dragListener = undefined;\n this._element = undefined;\n this._itemConfig = undefined;\n this._layoutManager = undefined;\n }\n\n /**\n * Callback for the DragListener's dragStart event\n *\n * @param x the x position of the mouse on dragStart\n * @param y the x position of the mouse on dragStart\n */\n _onDragStart(x: number, y: number) {\n if (!this._dragListener || !this._layoutManager) {\n return;\n }\n\n var itemConfig = this._itemConfig;\n if (typeof itemConfig === 'function') {\n itemConfig = itemConfig();\n }\n var contentItem = this._layoutManager._$normalizeContentItem(\n $.extend(true, {}, itemConfig)\n );\n new DragProxy(\n x,\n y,\n this._dragListener,\n this._layoutManager,\n contentItem,\n null\n );\n }\n}\n"],"mappings":";;;AAAA,OAAOA,CAAC,MAAM,QAAQ;AAAC,SAGdC,YAAY;AAAA,OAEdC,SAAS;AAEhB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe,MAAMC,mBAAmB,CAAC;EAMvCC,WAAWA,CACTC,UAA2C,EAC3CC,aAA4B,EAC5BC,KAAwB,EACxB;IAAAC,eAAA,mBATkBR,CAAC,CAACS,MAAM,CAAC;IAAoC;IAAAD,eAAA;IAAAA,eAAA;IAAAA,eAAA;IAU/D,IAAI,CAACE,WAAW,GAAGL,UAAU;IAC7B,IAAI,CAACM,cAAc,GAAGL,aAAa;IAEnC,IAAI,CAACM,mBAAmB,CAACL,KAAK,CAAC;EACjC;;EAEA;AACF;AACA;EACEK,mBAAmBA,CAACL,KAAwB,EAAE;IAC5C,IAAI,IAAI,CAACM,aAAa,EAAE;MACtB,IAAI,CAACA,aAAa,CAACC,OAAO,CAAC,CAAC;IAC9B;IAEA,IAAI,CAAC,IAAI,CAACC,QAAQ,EAAE;MAClB;IACF;IAEA,IAAI,CAACF,aAAa,GAAG,IAAIZ,YAAY,CAAC,IAAI,CAACc,QAAQ,EAAE,IAAI,CAAC;IAC1D,IAAI,CAACF,aAAa,CAACG,EAAE,CAAC,WAAW,EAAE,IAAI,CAACC,YAAY,EAAE,IAAI,CAAC;IAC3D,IAAI,CAACJ,aAAa,CAACG,EAAE,CAAC,UAAU,EAAE,IAAI,CAACE,QAAQ,EAAE,IAAI,CAAC;;IAEtD;IACA,IAAI,CAACL,aAAa,CAACM,WAAW,CAACZ,KAAK,CAAC;IACrC,IAAI,CAACM,aAAa,CAACO,UAAU,CAAC,CAAC;EACjC;EAEAF,QAAQA,CAAA,EAAG;IACT,IAAI,CAACL,aAAa,GAAGQ,SAAS;IAC9B,IAAI,CAACN,QAAQ,GAAGM,SAAS;IACzB,IAAI,CAACX,WAAW,GAAGW,SAAS;IAC5B,IAAI,CAACV,cAAc,GAAGU,SAAS;EACjC;;EAEA;AACF;AACA;AACA;AACA;AACA;EACEJ,YAAYA,CAACK,CAAS,EAAEC,CAAS,EAAE;IACjC,IAAI,CAAC,IAAI,CAACV,aAAa,IAAI,CAAC,IAAI,CAACF,cAAc,EAAE;MAC/C;IACF;IAEA,IAAIN,UAAU,GAAG,IAAI,CAACK,WAAW;IACjC,IAAI,OAAOL,UAAU,KAAK,UAAU,EAAE;MACpCA,UAAU,GAAGA,UAAU,CAAC,CAAC;IAC3B;IACA,IAAImB,WAAW,GAAG,IAAI,CAACb,cAAc,CAACc,sBAAsB,CAC1DzB,CAAC,CAAC0B,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,EAAErB,UAAU,CAC/B,CAAC;IACD,IAAIH,SAAS,CACXoB,CAAC,EACDC,CAAC,EACD,IAAI,CAACV,aAAa,EAClB,IAAI,CAACF,cAAc,EACnBa,WAAW,EACX,IACF,CAAC;EACH;AACF","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DropTargetIndicator.js","names":["$","DropTargetIndicator","constructor","_defineProperty","_template","document","body","append","element","destroy","remove","highlightArea","area","css","left","x1","top","y1","width","Math","floor","x2","height","y2","show","hide"],"sources":["../../src/controls/DropTargetIndicator.ts"],"sourcesContent":["import $ from 'jquery';\n\nexport default class DropTargetIndicator {\n private static _template =\n '<div class=\"lm_dropTargetIndicator\"><div class=\"lm_inner\"></div></div>';\n\n element = $(DropTargetIndicator._template);\n\n constructor() {\n $(document.body).append(this.element);\n }\n\n destroy() {\n this.element.remove();\n }\n\n highlightArea(area: { x1: number; x2: number; y1: number; y2: number }) {\n this.element\n .css({\n left: area.x1,\n top: area.y1,\n // marching ants were causing rendering artifacts with fractional pixels\n width: Math.floor(area.x2 - area.x1),\n height: Math.floor(area.y2 - area.y1),\n })\n .show();\n }\n\n hide() {\n this.element.hide();\n }\n}\n"],"mappings":";;;AAAA,OAAOA,CAAC,MAAM,QAAQ;AAEtB,eAAe,MAAMC,mBAAmB,CAAC;EAMvCC,WAAWA,CAAA,EAAG;IAAAC,eAAA,kBAFJH,CAAC,CAACC,mBAAmB,CAACG,SAAS,CAAC;IAGxCJ,CAAC,CAACK,QAAQ,CAACC,IAAI,CAAC,CAACC,MAAM,CAAC,IAAI,CAACC,OAAO,CAAC;EACvC;EAEAC,OAAOA,CAAA,EAAG;IACR,IAAI,CAACD,OAAO,CAACE,MAAM,CAAC,CAAC;EACvB;EAEAC,aAAaA,CAACC,IAAwD,EAAE;IACtE,IAAI,CAACJ,OAAO,CACTK,GAAG,CAAC;MACHC,IAAI,EAAEF,IAAI,CAACG,EAAE;MACbC,GAAG,EAAEJ,IAAI,CAACK,EAAE;MACZ;MACAC,KAAK,EAAEC,IAAI,CAACC,KAAK,CAACR,IAAI,CAACS,EAAE,GAAGT,IAAI,CAACG,EAAE,CAAC;MACpCO,MAAM,EAAEH,IAAI,CAACC,KAAK,CAACR,IAAI,CAACW,EAAE,GAAGX,IAAI,CAACK,EAAE;IACtC,CAAC,CAAC,CACDO,IAAI,CAAC,CAAC;EACX;EAEAC,IAAIA,CAAA,EAAG;IACL,IAAI,CAACjB,OAAO,CAACiB,IAAI,CAAC,CAAC;EACrB;AACF;AAACtB,eAAA,CA7BoBF,mBAAmB,eAEpC,wEAAwE"}
|
|
1
|
+
{"version":3,"file":"DropTargetIndicator.js","names":["$","DropTargetIndicator","constructor","_defineProperty","_template","document","body","append","element","destroy","remove","highlightArea","area","css","left","x1","top","y1","width","Math","floor","x2","height","y2","show","hide"],"sources":["../../src/controls/DropTargetIndicator.ts"],"sourcesContent":["import $ from 'jquery';\n\nexport default class DropTargetIndicator {\n private static _template =\n '<div class=\"lm_dropTargetIndicator\"><div class=\"lm_inner\"></div></div>';\n\n element = $(DropTargetIndicator._template);\n\n constructor() {\n $(document.body).append(this.element);\n }\n\n destroy() {\n this.element.remove();\n }\n\n highlightArea(area: { x1: number; x2: number; y1: number; y2: number }) {\n this.element\n .css({\n left: area.x1,\n top: area.y1,\n // marching ants were causing rendering artifacts with fractional pixels\n width: Math.floor(area.x2 - area.x1),\n height: Math.floor(area.y2 - area.y1),\n })\n .show();\n }\n\n hide() {\n this.element.hide();\n }\n}\n"],"mappings":";;;AAAA,OAAOA,CAAC,MAAM,QAAQ;AAEtB,eAAe,MAAMC,mBAAmB,CAAC;EAMvCC,WAAWA,CAAA,EAAG;IAAAC,eAAA,kBAFJH,CAAC,CAACC,mBAAmB,CAACG,SAAS,CAAC;IAGxCJ,CAAC,CAACK,QAAQ,CAACC,IAAI,CAAC,CAACC,MAAM,CAAC,IAAI,CAACC,OAAO,CAAC;EACvC;EAEAC,OAAOA,CAAA,EAAG;IACR,IAAI,CAACD,OAAO,CAACE,MAAM,CAAC,CAAC;EACvB;EAEAC,aAAaA,CAACC,IAAwD,EAAE;IACtE,IAAI,CAACJ,OAAO,CACTK,GAAG,CAAC;MACHC,IAAI,EAAEF,IAAI,CAACG,EAAE;MACbC,GAAG,EAAEJ,IAAI,CAACK,EAAE;MACZ;MACAC,KAAK,EAAEC,IAAI,CAACC,KAAK,CAACR,IAAI,CAACS,EAAE,GAAGT,IAAI,CAACG,EAAE,CAAC;MACpCO,MAAM,EAAEH,IAAI,CAACC,KAAK,CAACR,IAAI,CAACW,EAAE,GAAGX,IAAI,CAACK,EAAE;IACtC,CAAC,CAAC,CACDO,IAAI,CAAC,CAAC;EACX;EAEAC,IAAIA,CAAA,EAAG;IACL,IAAI,CAACjB,OAAO,CAACiB,IAAI,CAAC,CAAC;EACrB;AACF;AAACtB,eAAA,CA7BoBF,mBAAmB,eAEpC,wEAAwE","ignoreList":[]}
|
package/dist/controls/Header.js
CHANGED
|
@@ -12,12 +12,6 @@ import Tab from "./Tab.js";
|
|
|
12
12
|
* @param parent
|
|
13
13
|
*/
|
|
14
14
|
export default class Header extends EventEmitter {
|
|
15
|
-
// use for scroll repeat
|
|
16
|
-
|
|
17
|
-
// mouse hold timeout to act as hold instead of click
|
|
18
|
-
|
|
19
|
-
// mouse hold acceleration
|
|
20
|
-
|
|
21
15
|
constructor(layoutManager, parent) {
|
|
22
16
|
var _this$layoutManager$c, _this$layoutManager$c2;
|
|
23
17
|
super();
|
|
@@ -35,9 +29,12 @@ export default class Header extends EventEmitter {
|
|
|
35
29
|
_defineProperty(this, "tabDropdownButton", null);
|
|
36
30
|
_defineProperty(this, "tabNextButton", $(Header._nextButtonTemplate));
|
|
37
31
|
_defineProperty(this, "tabPreviousButton", $(Header._previousButtonTemplate));
|
|
32
|
+
// use for scroll repeat
|
|
38
33
|
_defineProperty(this, "holdTimer", null);
|
|
39
34
|
_defineProperty(this, "rAF", null);
|
|
35
|
+
// mouse hold timeout to act as hold instead of click
|
|
40
36
|
_defineProperty(this, "CLICK_TIMEOUT", 500);
|
|
37
|
+
// mouse hold acceleration
|
|
41
38
|
_defineProperty(this, "START_SPEED", 0.01);
|
|
42
39
|
_defineProperty(this, "ACCELERATION", 0.0005);
|
|
43
40
|
_defineProperty(this, "PADDING", 10);
|
|
@@ -160,7 +157,7 @@ export default class Header extends EventEmitter {
|
|
|
160
157
|
}
|
|
161
158
|
|
|
162
159
|
// makes sure dropped tabs are scrollintoview, removed any re-ordering
|
|
163
|
-
(_this$tabs$element$ge = this.tabs[(_this$parent$config$a = this.parent.config.activeItemIndex) !== null && _this$parent$config$a !== void 0 ? _this$parent$config$a : 0].element.get(0)) === null || _this$tabs$element$ge === void 0
|
|
160
|
+
(_this$tabs$element$ge = this.tabs[(_this$parent$config$a = this.parent.config.activeItemIndex) !== null && _this$parent$config$a !== void 0 ? _this$parent$config$a : 0].element.get(0)) === null || _this$tabs$element$ge === void 0 || (_this$tabs$element$ge2 = _this$tabs$element$ge.scrollIntoView) === null || _this$tabs$element$ge2 === void 0 || _this$tabs$element$ge2.call(_this$tabs$element$ge, {
|
|
164
161
|
// Optional chain scrollIntoView call so tests do not error
|
|
165
162
|
inline: 'nearest'
|
|
166
163
|
});
|
|
@@ -190,7 +187,7 @@ export default class Header extends EventEmitter {
|
|
|
190
187
|
// _attachWheelListener is called by parent init
|
|
191
188
|
_attachWheelListener() {
|
|
192
189
|
var _this$tabsContainer$g;
|
|
193
|
-
(_this$tabsContainer$g = this.tabsContainer.get(0)) === null || _this$tabsContainer$g === void 0
|
|
190
|
+
(_this$tabsContainer$g = this.tabsContainer.get(0)) === null || _this$tabsContainer$g === void 0 || _this$tabsContainer$g.addEventListener('wheel', this._handleWheelEvent, {
|
|
194
191
|
passive: true
|
|
195
192
|
});
|
|
196
193
|
}
|
|
@@ -198,7 +195,7 @@ export default class Header extends EventEmitter {
|
|
|
198
195
|
// detach called by this.destroy
|
|
199
196
|
_detachWheelListener() {
|
|
200
197
|
var _this$tabsContainer$g2;
|
|
201
|
-
(_this$tabsContainer$g2 = this.tabsContainer.get(0)) === null || _this$tabsContainer$g2 === void 0
|
|
198
|
+
(_this$tabsContainer$g2 = this.tabsContainer.get(0)) === null || _this$tabsContainer$g2 === void 0 || _this$tabsContainer$g2.removeEventListener('wheel', this._handleWheelEvent);
|
|
202
199
|
}
|
|
203
200
|
_handleWheelEvent(event) {
|
|
204
201
|
var target = event.currentTarget;
|
|
@@ -569,15 +566,15 @@ export default class Header extends EventEmitter {
|
|
|
569
566
|
if (e.key === 'ArrowDown' || e.key === 'Tab' && e.shiftKey === false) {
|
|
570
567
|
var _this$tabDropdownList, _this$tabDropdownList2;
|
|
571
568
|
e.preventDefault();
|
|
572
|
-
(_this$tabDropdownList = this.tabDropdownList) === null || _this$tabDropdownList === void 0
|
|
569
|
+
(_this$tabDropdownList = this.tabDropdownList) === null || _this$tabDropdownList === void 0 || _this$tabDropdownList.eq(this.dropdownKeyIndex).removeClass('lm_keyboard_active');
|
|
573
570
|
this.dropdownKeyIndex = getNextDropdownIndex(this.dropdownKeyIndex, 1, this.tabDropdownList);
|
|
574
|
-
(_this$tabDropdownList2 = this.tabDropdownList) === null || _this$tabDropdownList2 === void 0
|
|
571
|
+
(_this$tabDropdownList2 = this.tabDropdownList) === null || _this$tabDropdownList2 === void 0 || _this$tabDropdownList2.eq(this.dropdownKeyIndex).addClass('lm_keyboard_active');
|
|
575
572
|
} else if (e.key === 'ArrowUp' || e.key === 'Tab') {
|
|
576
573
|
var _this$tabDropdownList3, _this$tabDropdownList4;
|
|
577
574
|
e.preventDefault();
|
|
578
|
-
(_this$tabDropdownList3 = this.tabDropdownList) === null || _this$tabDropdownList3 === void 0
|
|
575
|
+
(_this$tabDropdownList3 = this.tabDropdownList) === null || _this$tabDropdownList3 === void 0 || _this$tabDropdownList3.eq(this.dropdownKeyIndex).removeClass('lm_keyboard_active');
|
|
579
576
|
this.dropdownKeyIndex = getNextDropdownIndex(this.dropdownKeyIndex, -1, this.tabDropdownList);
|
|
580
|
-
(_this$tabDropdownList4 = this.tabDropdownList) === null || _this$tabDropdownList4 === void 0
|
|
577
|
+
(_this$tabDropdownList4 = this.tabDropdownList) === null || _this$tabDropdownList4 === void 0 || _this$tabDropdownList4.eq(this.dropdownKeyIndex).addClass('lm_keyboard_active');
|
|
581
578
|
}
|
|
582
579
|
}
|
|
583
580
|
|
|
@@ -685,7 +682,7 @@ export default class Header extends EventEmitter {
|
|
|
685
682
|
this.parent.popout();
|
|
686
683
|
} else {
|
|
687
684
|
var _this$activeContentIt;
|
|
688
|
-
(_this$activeContentIt = this.activeContentItem) === null || _this$activeContentIt === void 0
|
|
685
|
+
(_this$activeContentIt = this.activeContentItem) === null || _this$activeContentIt === void 0 || _this$activeContentIt.popout();
|
|
689
686
|
}
|
|
690
687
|
}
|
|
691
688
|
|
|
@@ -717,13 +714,13 @@ export default class Header extends EventEmitter {
|
|
|
717
714
|
}
|
|
718
715
|
if (!this.isOverflowing && tabsContainer.scrollWidth > tabsContainer.clientWidth) {
|
|
719
716
|
var _this$tabDropdownButt2;
|
|
720
|
-
(_this$tabDropdownButt2 = this.tabDropdownButton) === null || _this$tabDropdownButt2 === void 0
|
|
717
|
+
(_this$tabDropdownButt2 = this.tabDropdownButton) === null || _this$tabDropdownButt2 === void 0 || _this$tabDropdownButt2.element.show();
|
|
721
718
|
this.tabNextButton.show();
|
|
722
719
|
this.tabPreviousButton.show();
|
|
723
720
|
this.isOverflowing = true;
|
|
724
721
|
} else if (this.isOverflowing && tabsContainer.scrollWidth <= tabsContainer.clientWidth) {
|
|
725
722
|
var _this$tabDropdownButt3;
|
|
726
|
-
(_this$tabDropdownButt3 = this.tabDropdownButton) === null || _this$tabDropdownButt3 === void 0
|
|
723
|
+
(_this$tabDropdownButt3 = this.tabDropdownButton) === null || _this$tabDropdownButt3 === void 0 || _this$tabDropdownButt3.element.hide();
|
|
727
724
|
this.tabNextButton.hide();
|
|
728
725
|
this.tabPreviousButton.hide();
|
|
729
726
|
this.isOverflowing = false;
|