@deephaven/golden-layout 0.40.1-beta.0 → 0.40.2-beta.2

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.
@@ -1 +1 @@
1
- .lm_root{position:relative}.lm_row>.lm_item{float:left}.lm_content{overflow:hidden;position:relative;outline:0}.lm_dragging,.lm_dragging *{cursor:grabbing !important;user-select:none}.lm_maximised{position:absolute;top:0;left:0;z-index:40}.lm_maximise_placeholder{display:none}.lm_splitter{position:relative;z-index:20}.lm_splitter:hover,.lm_splitter.lm_dragging{background:orange}.lm_splitter.lm_vertical .lm_drag_handle{width:100%;position:absolute;cursor:ns-resize}.lm_splitter.lm_horizontal{float:left;height:100%}.lm_splitter.lm_horizontal .lm_drag_handle{height:100%;position:absolute;cursor:ew-resize}.lm_header{display:flex;justify-content:space-between;max-width:100%;z-index:12;position:relative}.lm_header.lm_dropdown_open{z-index:22}.lm_header [class^=lm_]{box-sizing:content-box !important}.lm_header .lm_controls{display:flex;user-select:none}.lm_header .lm_controls>li{cursor:pointer;float:left;width:18px;height:18px;text-align:center}.lm_header .lm_controls>li[disabled]{cursor:default;opacity:.1}.lm_header ul{margin:0;padding:0;list-style-type:none}.lm_header .lm_tabs{display:flex;flex-grow:1;overflow:hidden}.lm_header .lm_tab{cursor:pointer;height:14px;margin-top:1px;padding:0px 10px 5px;padding-right:25px;position:relative;min-width:0;flex-shrink:0}.lm_header .lm_tab .lm_title{display:inline-block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}.lm_header .lm_tab .lm_close_tab{width:14px;height:14px;position:absolute;top:0;right:0;text-align:center}.lm_stack.lm_left .lm_header,.lm_stack.lm_right .lm_header{height:100%}.lm_dragProxy.lm_left .lm_header,.lm_dragProxy.lm_right .lm_header,.lm_stack.lm_left .lm_header,.lm_stack.lm_right .lm_header{width:20px;float:left;vertical-align:top}.lm_dragProxy.lm_left .lm_header .lm_tabs,.lm_dragProxy.lm_right .lm_header .lm_tabs,.lm_stack.lm_left .lm_header .lm_tabs,.lm_stack.lm_right .lm_header .lm_tabs{transform-origin:left top;top:0;width:1000px}.lm_dragProxy.lm_left .lm_header .lm_controls,.lm_dragProxy.lm_right .lm_header .lm_controls,.lm_stack.lm_left .lm_header .lm_controls,.lm_stack.lm_right .lm_header .lm_controls{bottom:0}.lm_dragProxy.lm_left .lm_items,.lm_dragProxy.lm_right .lm_items,.lm_stack.lm_left .lm_items,.lm_stack.lm_right .lm_items{float:left}.lm_dragProxy.lm_left .lm_header .lm_tabs,.lm_stack.lm_left .lm_header .lm_tabs{transform:rotate(-90deg) scaleX(-1);left:0}.lm_dragProxy.lm_left .lm_header .lm_tabs .lm_tab,.lm_stack.lm_left .lm_header .lm_tabs .lm_tab{transform:scaleX(-1);margin-top:1px}.lm_dragProxy.lm_left .lm_header .lm_tabdropdown_list,.lm_stack.lm_left .lm_header .lm_tabdropdown_list{top:initial;right:initial;left:20px}.lm_dragProxy.lm_right .lm_content{float:left}.lm_dragProxy.lm_right .lm_header .lm_tabs,.lm_stack.lm_right .lm_header .lm_tabs{transform:rotate(90deg) scaleX(1);left:100%;margin-left:0}.lm_dragProxy.lm_right .lm_header .lm_controls,.lm_stack.lm_right .lm_header .lm_controls{left:3px}.lm_dragProxy.lm_right .lm_header .lm_tabdropdown_list,.lm_stack.lm_right .lm_header .lm_tabdropdown_list{top:initial;right:20px}.lm_dragProxy.lm_bottom .lm_header .lm_tab,.lm_stack.lm_bottom .lm_header .lm_tab{margin-top:0;border-top:none}.lm_dragProxy.lm_bottom .lm_header .lm_controls,.lm_stack.lm_bottom .lm_header .lm_controls{top:3px}.lm_dragProxy.lm_bottom .lm_header .lm_tabdropdown_list,.lm_stack.lm_bottom .lm_header .lm_tabdropdown_list{top:initial;bottom:20px}.lm_drop_tab_placeholder{flex-shrink:0}.lm_header .lm_controls .lm_tabdropdown:before{content:"";width:0;height:0;vertical-align:middle;display:inline-block;border-top:5px dashed;border-right:5px solid transparent;border-left:5px solid transparent;color:#fff}.lm_header .lm_tabdropdown_list{position:absolute;top:20px;right:0;z-index:5;overflow-y:auto;overflow-x:hidden}.lm_header .lm_tabdropdown_list .lm_tabs{flex-direction:column}.lm_header .lm_tabdropdown_list .lm_tab{padding-right:10px}.lm_header .lm_tabdropdown_list .lm_close_tab{display:none !important}.lm_dragProxy{position:absolute;top:0;left:0;z-index:30;pointer-events:none}.lm_dragProxy .lm_header{background:transparent}.lm_dragProxy .lm_content{border-top:none;overflow:hidden}.lm_dropTargetIndicator{display:none;position:absolute;z-index:20;pointer-events:none}.lm_dropTargetIndicator .lm_inner{width:100%;height:100%;position:relative;top:0;left:0}.lm_transition_indicator{display:none;width:20px;height:20px;position:absolute;top:0;left:0;z-index:20}.lm_popin{width:20px;height:20px;position:absolute;bottom:0;right:0;z-index:9999}.lm_popin>*{width:100%;height:100%;position:absolute;top:0;left:0}.lm_popin>.lm_bg{z-index:10}.lm_popin>.lm_icon{z-index:20}/*# sourceMappingURL=goldenlayout-base.css.map */
1
+ .lm_root{position:relative}.lm_row>.lm_item{float:left}.lm_content{overflow:hidden;position:relative;outline:0}.lm_dragging,.lm_dragging *{cursor:grabbing !important;user-select:none}.lm_maximised{position:absolute;top:0;left:0;z-index:40}.lm_maximise_placeholder{display:none}.lm_splitter{position:relative;z-index:20}.lm_splitter:hover,.lm_splitter.lm_dragging{background:orange}.lm_splitter.lm_vertical .lm_drag_handle{width:100%;position:absolute;cursor:ns-resize}.lm_splitter.lm_horizontal{float:left;height:100%}.lm_splitter.lm_horizontal .lm_drag_handle{height:100%;position:absolute;cursor:ew-resize}.lm_header{display:flex;justify-content:space-between;max-width:100%;z-index:12;position:relative}.lm_header.lm_dropdown_open{z-index:22}.lm_header [class^=lm_]{box-sizing:content-box !important}.lm_header .lm_controls{display:flex;user-select:none}.lm_header .lm_controls>li{cursor:pointer;float:left;width:18px;height:18px;text-align:center}.lm_header .lm_controls>li[disabled]{cursor:default;opacity:.1}.lm_header ul{margin:0;padding:0;list-style-type:none}.lm_header .lm_tabs{display:flex;flex-grow:1;overflow:hidden}.lm_header .lm_tab{cursor:pointer;height:14px;margin-top:1px;padding:0px 10px 5px;padding-right:25px;position:relative;min-width:0;flex-shrink:0}.lm_header .lm_tab .lm_title{display:inline-block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}.lm_header .lm_tab .lm_close_tab{width:14px;height:14px;position:absolute;top:0;right:0;text-align:center}.lm_stack.lm_left .lm_header,.lm_stack.lm_right .lm_header{height:100%}.lm_dragProxy.lm_left .lm_header,.lm_dragProxy.lm_right .lm_header,.lm_stack.lm_left .lm_header,.lm_stack.lm_right .lm_header{width:20px;float:left;vertical-align:top}.lm_dragProxy.lm_left .lm_header .lm_tabs,.lm_dragProxy.lm_right .lm_header .lm_tabs,.lm_stack.lm_left .lm_header .lm_tabs,.lm_stack.lm_right .lm_header .lm_tabs{transform-origin:left top;top:0;width:1000px}.lm_dragProxy.lm_left .lm_header .lm_controls,.lm_dragProxy.lm_right .lm_header .lm_controls,.lm_stack.lm_left .lm_header .lm_controls,.lm_stack.lm_right .lm_header .lm_controls{bottom:0}.lm_dragProxy.lm_left .lm_items,.lm_dragProxy.lm_right .lm_items,.lm_stack.lm_left .lm_items,.lm_stack.lm_right .lm_items{float:left}.lm_dragProxy.lm_left .lm_header .lm_tabs,.lm_stack.lm_left .lm_header .lm_tabs{transform:rotate(-90deg) scaleX(-1);left:0}.lm_dragProxy.lm_left .lm_header .lm_tabs .lm_tab,.lm_stack.lm_left .lm_header .lm_tabs .lm_tab{transform:scaleX(-1);margin-top:1px}.lm_dragProxy.lm_left .lm_header .lm_tabdropdown_list,.lm_stack.lm_left .lm_header .lm_tabdropdown_list{top:initial;right:initial;left:20px}.lm_dragProxy.lm_right .lm_content{float:left}.lm_dragProxy.lm_right .lm_header .lm_tabs,.lm_stack.lm_right .lm_header .lm_tabs{transform:rotate(90deg) scaleX(1);left:100%;margin-left:0}.lm_dragProxy.lm_right .lm_header .lm_controls,.lm_stack.lm_right .lm_header .lm_controls{left:3px}.lm_dragProxy.lm_right .lm_header .lm_tabdropdown_list,.lm_stack.lm_right .lm_header .lm_tabdropdown_list{top:initial;right:20px}.lm_dragProxy.lm_bottom .lm_header .lm_tab,.lm_stack.lm_bottom .lm_header .lm_tab{margin-top:0;border-top:none}.lm_dragProxy.lm_bottom .lm_header .lm_controls,.lm_stack.lm_bottom .lm_header .lm_controls{top:3px}.lm_dragProxy.lm_bottom .lm_header .lm_tabdropdown_list,.lm_stack.lm_bottom .lm_header .lm_tabdropdown_list{top:initial;bottom:20px}.lm_drop_tab_placeholder{flex-shrink:0}.lm_header .lm_controls .lm_tabdropdown:before{content:"";width:0;height:0;vertical-align:middle;display:inline-block;border-top:5px dashed;border-right:5px solid transparent;border-left:5px solid transparent;color:#fff}.lm_header .lm_tabdropdown_list{position:absolute;top:20px;right:0;z-index:5;overflow-y:auto;overflow-x:hidden}.lm_header .lm_tabdropdown_list .lm_tabs{flex-direction:column}.lm_header .lm_tabdropdown_list .lm_tab{padding-right:10px}.lm_header .lm_tabdropdown_list .lm_close_tab{display:none !important}.lm_dragProxy{position:absolute;top:0;left:0;z-index:30;pointer-events:none}.lm_dragProxy .lm_header{background:transparent}.lm_dragProxy .lm_content{border-top:none;overflow:hidden}.lm_dropTargetIndicator{display:none;position:absolute;z-index:20;pointer-events:none}.lm_dropTargetIndicator .lm_inner{width:100%;height:100%;position:relative;top:0;left:0}.lm_popin{width:20px;height:20px;position:absolute;bottom:0;right:0;z-index:9999}.lm_popin>*{width:100%;height:100%;position:absolute;top:0;left:0}.lm_popin>.lm_bg{z-index:10}.lm_popin>.lm_icon{z-index:20}/*# sourceMappingURL=goldenlayout-base.css.map */
@@ -1 +1 @@
1
- {"version":3,"sourceRoot":"","sources":["../scss/goldenlayout-base.scss"],"names":[],"mappings":"AAkBA,SACE,kBAGF,iBACE,WAIF,YACE,gBACA,kBACA,UAIF,4BAEE,2BACA,iBAIF,cACE,kBACA,MACA,OACA,WAGF,yBACE,aAIF,aACE,kBACA,WAEA,4CAEE,kBAIA,yCACE,MA/DG,KAgEH,kBACA,iBAIJ,2BACE,WACA,OA9DM,KAgEN,2CACE,OAjEI,KAkEJ,kBACA,iBAMN,WACE,aACA,8BACA,eACA,WACA,kBAEA,4BAQE,WAGF,wBACE,kCAIF,wBACE,aACA,iBAEA,2BACE,eACA,WACA,MA5GG,KA6GH,OAnGI,KAoGJ,kBAGF,qCACE,eACA,WAIJ,cACE,SACA,UACA,qBAGF,oBACE,aACA,YACA,gBAIF,mBACE,eACA,OA/HM,KAgIN,eACA,qBACA,mBACA,kBACA,YACA,cAEA,6BACE,qBACA,mBACA,gBACA,uBACA,eAIF,iCACE,MAzJG,KA0JH,OAlJI,KAmJJ,kBACA,MACA,QACA,kBAQJ,2DACE,YAQF,8HACE,WACA,WACA,mBACA,kKACE,0BACA,MACA,aAEF,kLACE,SAGJ,0HACE,WAOA,gFACE,oCACA,OACA,gGACE,qBACA,eAGJ,wGACE,YACA,cACA,UAKN,mCACE,WAME,kFACE,kCACA,UACA,cAEF,0FACE,SAEF,0GACE,YACA,WAQF,kFACE,aACA,gBAEF,4FACE,QAEF,4GACE,YACA,YAKN,yBACE,cAKA,+CACE,WACA,QACA,SACA,sBACA,qBACA,sBACA,mCACA,kCACA,WAGF,gCACE,kBACA,SACA,QACA,UACA,gBACA,kBAEA,yCACE,sBAGF,wCACE,mBAGF,8CACE,wBAUN,cACE,kBACA,MACA,OACA,WACA,oBAEA,yBACE,uBAGF,0BACE,gBACA,gBAKJ,wBACE,aACA,kBACA,WACA,oBAGA,kCACE,MArUK,KAsUL,OA7TM,KA8TN,kBACA,MACA,OAIJ,yBACE,aACA,MA9UO,KA+UP,OAtUQ,KAuUR,kBACA,MACA,OACA,WAIF,UACE,MAxVO,KAyVP,OAhVQ,KAiVR,kBACA,SACA,QACA,aAEA,YACE,MAjWK,KAkWL,OAzVM,KA0VN,kBACA,MACA,OAGF,iBACE,WAGF,mBACE","file":"goldenlayout-base.css","sourcesContent":["// Width variables (appears count calculates by raw css)\n$width0: 100%; // Appears 3 times\n$width1: 20px; // Appears 2 times\n$width2: 100px; // Appears 1 time\n$width3: 14px; // Appears 1 time\n$width4: 18px; // Appears 1 time\n$width5: 15px; // Appears 1 time\n$width6: 2px; // Appears 1 time\n\n// Height variables (appears count calculates by raw css)\n$height0: 100%; // Appears 4 times\n$height1: 20px; // Appears 2 times\n$height2: 14px; // Appears 2 times\n$height3: 10px; // Appears 1 time\n$height4: 19px; // Appears 1 time\n$height5: 18px; // Appears 1 time\n$height6: 15px; // Appears 1 time\n\n.lm_root {\n position: relative;\n}\n\n.lm_row > .lm_item {\n float: left;\n}\n\n// Single Pane content (area in which final dragged content is contained)\n.lm_content {\n overflow: hidden;\n position: relative;\n outline: 0;\n}\n\n// \".lm_dragging\" is applied to BODY tag during Drag and is also directly applied to the root of the object being dragged\n.lm_dragging,\n.lm_dragging * {\n cursor: grabbing !important;\n user-select: none;\n}\n\n// If a specific Pane is maximized\n.lm_maximised {\n position: absolute;\n top: 0;\n left: 0;\n z-index: 40;\n}\n\n.lm_maximise_placeholder {\n display: none;\n}\n\n// Separator line (handle to change pane size)\n.lm_splitter {\n position: relative;\n z-index: 20;\n\n &:hover, // When hovered by mouse...\n &.lm_dragging {\n background: orange;\n }\n\n &.lm_vertical {\n .lm_drag_handle {\n width: $width0;\n position: absolute;\n cursor: ns-resize;\n }\n }\n\n &.lm_horizontal {\n float: left;\n height: $height0;\n\n .lm_drag_handle {\n height: $height0;\n position: absolute;\n cursor: ew-resize;\n }\n }\n}\n\n// Pane Header (container of Tabs for each pane)\n.lm_header {\n display: flex;\n justify-content: space-between;\n max-width: 100%;\n z-index: 12; //above lm_content, below lm_splitter\n position: relative;\n\n &.lm_dropdown_open {\n // This is an ugly hack, z-index of the whole header needs to be moved up\n // when the menu is open, because its positioned relative to header.\n // The header has a position, which creates a stacking context\n // that can result in the next header being \"above\" the dropdown.\n // The same problem happens for splitters too.\n // A better solution would refactor the dropdown to be a root node,\n // and in general use z-index way less.\n z-index: 22; //above other lm_headers and lm_splitter\n }\n\n [class^='lm_'] {\n box-sizing: content-box !important;\n }\n\n // Pane controls (popout, maximize, minimize, close)\n .lm_controls {\n display: flex;\n user-select: none;\n\n > li {\n cursor: pointer;\n float: left;\n width: $width4;\n height: $height5;\n text-align: center;\n }\n\n > li[disabled] {\n cursor: default;\n opacity: 0.1;\n }\n }\n\n ul {\n margin: 0;\n padding: 0;\n list-style-type: none;\n }\n\n .lm_tabs {\n display: flex;\n flex-grow: 1;\n overflow: hidden;\n }\n\n // Single Tab container. A single Tab is set for each pane, a group of Tabs are contained in \".lm_header\"\n .lm_tab {\n cursor: pointer;\n height: $height2;\n margin-top: 1px;\n padding: 0px 10px 5px;\n padding-right: 25px;\n position: relative;\n min-width: 0;\n flex-shrink: 0;\n\n .lm_title {\n display: inline-block;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n max-width: 100%;\n }\n\n // Close Tab Icon\n .lm_close_tab {\n width: $width3;\n height: $height2;\n position: absolute;\n top: 0;\n right: 0;\n text-align: center;\n }\n }\n}\n\n// Headers positions\n.lm_stack.lm_left,\n.lm_stack.lm_right {\n .lm_header {\n height: 100%;\n }\n}\n\n.lm_dragProxy.lm_left,\n.lm_dragProxy.lm_right,\n.lm_stack.lm_left,\n.lm_stack.lm_right {\n .lm_header {\n width: 20px;\n float: left;\n vertical-align: top;\n .lm_tabs {\n transform-origin: left top;\n top: 0;\n width: 1000px; /*hack*/\n }\n .lm_controls {\n bottom: 0;\n }\n }\n .lm_items {\n float: left;\n }\n}\n\n.lm_dragProxy.lm_left,\n.lm_stack.lm_left {\n .lm_header {\n .lm_tabs {\n transform: rotate(-90deg) scaleX(-1);\n left: 0;\n .lm_tab {\n transform: scaleX(-1);\n margin-top: 1px;\n }\n }\n .lm_tabdropdown_list {\n top: initial;\n right: initial;\n left: 20px;\n }\n }\n}\n\n.lm_dragProxy.lm_right .lm_content {\n float: left;\n}\n\n.lm_dragProxy.lm_right,\n.lm_stack.lm_right {\n .lm_header {\n .lm_tabs {\n transform: rotate(90deg) scaleX(1);\n left: 100%;\n margin-left: 0;\n }\n .lm_controls {\n left: 3px;\n }\n .lm_tabdropdown_list {\n top: initial;\n right: 20px;\n }\n }\n}\n\n.lm_dragProxy.lm_bottom,\n.lm_stack.lm_bottom {\n .lm_header {\n .lm_tab {\n margin-top: 0;\n border-top: none;\n }\n .lm_controls {\n top: 3px;\n }\n .lm_tabdropdown_list {\n top: initial;\n bottom: 20px;\n }\n }\n}\n\n.lm_drop_tab_placeholder {\n flex-shrink: 0;\n}\n\n// Dropdown arrow for additional tabs when too many to be displayed\n.lm_header {\n .lm_controls .lm_tabdropdown:before {\n content: '';\n width: 0;\n height: 0;\n vertical-align: middle;\n display: inline-block;\n border-top: 5px dashed;\n border-right: 5px solid transparent;\n border-left: 5px solid transparent;\n color: white; // Overriden in specific Themes\n }\n\n .lm_tabdropdown_list {\n position: absolute;\n top: 20px;\n right: 0;\n z-index: 5;\n overflow-y: auto;\n overflow-x: hidden;\n\n .lm_tabs {\n flex-direction: column;\n }\n\n .lm_tab {\n padding-right: 10px;\n }\n\n .lm_close_tab {\n display: none !important;\n }\n }\n}\n\n/***********************************\n* Drag Proxy\n***********************************/\n\n// Single Pane content during Drag (style of moving window following mouse)\n.lm_dragProxy {\n position: absolute;\n top: 0;\n left: 0;\n z-index: 30;\n pointer-events: none;\n\n .lm_header {\n background: transparent;\n }\n\n .lm_content {\n border-top: none;\n overflow: hidden;\n }\n}\n\n// Placeholder Container of target position\n.lm_dropTargetIndicator {\n display: none;\n position: absolute;\n z-index: 20;\n pointer-events: none;\n\n // Inner Placeholder\n .lm_inner {\n width: $width0;\n height: $height0;\n position: relative;\n top: 0;\n left: 0;\n }\n}\n\n.lm_transition_indicator {\n display: none;\n width: $width1;\n height: $height1;\n position: absolute;\n top: 0;\n left: 0;\n z-index: 20;\n}\n\n// If a specific Pane is Popped Out, so move it to a different Browser Window, Icon to restore original position is:\n.lm_popin {\n width: $width1;\n height: $height1;\n position: absolute;\n bottom: 0;\n right: 0;\n z-index: 9999;\n\n > * {\n width: $width0;\n height: $height0;\n position: absolute;\n top: 0;\n left: 0;\n }\n\n > .lm_bg {\n z-index: 10;\n }\n\n > .lm_icon {\n z-index: 20;\n }\n}\n"]}
1
+ {"version":3,"sourceRoot":"","sources":["../scss/goldenlayout-base.scss"],"names":[],"mappings":"AAkBA,SACE,kBAGF,iBACE,WAIF,YACE,gBACA,kBACA,UAIF,4BAEE,2BACA,iBAIF,cACE,kBACA,MACA,OACA,WAGF,yBACE,aAIF,aACE,kBACA,WAEA,4CAEE,kBAIA,yCACE,MA/DG,KAgEH,kBACA,iBAIJ,2BACE,WACA,OA9DM,KAgEN,2CACE,OAjEI,KAkEJ,kBACA,iBAMN,WACE,aACA,8BACA,eACA,WACA,kBAEA,4BAQE,WAGF,wBACE,kCAIF,wBACE,aACA,iBAEA,2BACE,eACA,WACA,MA5GG,KA6GH,OAnGI,KAoGJ,kBAGF,qCACE,eACA,WAIJ,cACE,SACA,UACA,qBAGF,oBACE,aACA,YACA,gBAIF,mBACE,eACA,OA/HM,KAgIN,eACA,qBACA,mBACA,kBACA,YACA,cAEA,6BACE,qBACA,mBACA,gBACA,uBACA,eAIF,iCACE,MAzJG,KA0JH,OAlJI,KAmJJ,kBACA,MACA,QACA,kBAQJ,2DACE,YAQF,8HACE,WACA,WACA,mBACA,kKACE,0BACA,MACA,aAEF,kLACE,SAGJ,0HACE,WAOA,gFACE,oCACA,OACA,gGACE,qBACA,eAGJ,wGACE,YACA,cACA,UAKN,mCACE,WAME,kFACE,kCACA,UACA,cAEF,0FACE,SAEF,0GACE,YACA,WAQF,kFACE,aACA,gBAEF,4FACE,QAEF,4GACE,YACA,YAKN,yBACE,cAKA,+CACE,WACA,QACA,SACA,sBACA,qBACA,sBACA,mCACA,kCACA,WAGF,gCACE,kBACA,SACA,QACA,UACA,gBACA,kBAEA,yCACE,sBAGF,wCACE,mBAGF,8CACE,wBAUN,cACE,kBACA,MACA,OACA,WACA,oBAEA,yBACE,uBAGF,0BACE,gBACA,gBAKJ,wBACE,aACA,kBACA,WACA,oBAGA,kCACE,MArUK,KAsUL,OA7TM,KA8TN,kBACA,MACA,OAKJ,UACE,MA9UO,KA+UP,OAtUQ,KAuUR,kBACA,SACA,QACA,aAEA,YACE,MAvVK,KAwVL,OA/UM,KAgVN,kBACA,MACA,OAGF,iBACE,WAGF,mBACE","file":"goldenlayout-base.css","sourcesContent":["// Width variables (appears count calculates by raw css)\n$width0: 100%; // Appears 3 times\n$width1: 20px; // Appears 2 times\n$width2: 100px; // Appears 1 time\n$width3: 14px; // Appears 1 time\n$width4: 18px; // Appears 1 time\n$width5: 15px; // Appears 1 time\n$width6: 2px; // Appears 1 time\n\n// Height variables (appears count calculates by raw css)\n$height0: 100%; // Appears 4 times\n$height1: 20px; // Appears 2 times\n$height2: 14px; // Appears 2 times\n$height3: 10px; // Appears 1 time\n$height4: 19px; // Appears 1 time\n$height5: 18px; // Appears 1 time\n$height6: 15px; // Appears 1 time\n\n.lm_root {\n position: relative;\n}\n\n.lm_row > .lm_item {\n float: left;\n}\n\n// Single Pane content (area in which final dragged content is contained)\n.lm_content {\n overflow: hidden;\n position: relative;\n outline: 0;\n}\n\n// \".lm_dragging\" is applied to BODY tag during Drag and is also directly applied to the root of the object being dragged\n.lm_dragging,\n.lm_dragging * {\n cursor: grabbing !important;\n user-select: none;\n}\n\n// If a specific Pane is maximized\n.lm_maximised {\n position: absolute;\n top: 0;\n left: 0;\n z-index: 40;\n}\n\n.lm_maximise_placeholder {\n display: none;\n}\n\n// Separator line (handle to change pane size)\n.lm_splitter {\n position: relative;\n z-index: 20;\n\n &:hover, // When hovered by mouse...\n &.lm_dragging {\n background: orange;\n }\n\n &.lm_vertical {\n .lm_drag_handle {\n width: $width0;\n position: absolute;\n cursor: ns-resize;\n }\n }\n\n &.lm_horizontal {\n float: left;\n height: $height0;\n\n .lm_drag_handle {\n height: $height0;\n position: absolute;\n cursor: ew-resize;\n }\n }\n}\n\n// Pane Header (container of Tabs for each pane)\n.lm_header {\n display: flex;\n justify-content: space-between;\n max-width: 100%;\n z-index: 12; //above lm_content, below lm_splitter\n position: relative;\n\n &.lm_dropdown_open {\n // This is an ugly hack, z-index of the whole header needs to be moved up\n // when the menu is open, because its positioned relative to header.\n // The header has a position, which creates a stacking context\n // that can result in the next header being \"above\" the dropdown.\n // The same problem happens for splitters too.\n // A better solution would refactor the dropdown to be a root node,\n // and in general use z-index way less.\n z-index: 22; //above other lm_headers and lm_splitter\n }\n\n [class^='lm_'] {\n box-sizing: content-box !important;\n }\n\n // Pane controls (popout, maximize, minimize, close)\n .lm_controls {\n display: flex;\n user-select: none;\n\n > li {\n cursor: pointer;\n float: left;\n width: $width4;\n height: $height5;\n text-align: center;\n }\n\n > li[disabled] {\n cursor: default;\n opacity: 0.1;\n }\n }\n\n ul {\n margin: 0;\n padding: 0;\n list-style-type: none;\n }\n\n .lm_tabs {\n display: flex;\n flex-grow: 1;\n overflow: hidden;\n }\n\n // Single Tab container. A single Tab is set for each pane, a group of Tabs are contained in \".lm_header\"\n .lm_tab {\n cursor: pointer;\n height: $height2;\n margin-top: 1px;\n padding: 0px 10px 5px;\n padding-right: 25px;\n position: relative;\n min-width: 0;\n flex-shrink: 0;\n\n .lm_title {\n display: inline-block;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n max-width: 100%;\n }\n\n // Close Tab Icon\n .lm_close_tab {\n width: $width3;\n height: $height2;\n position: absolute;\n top: 0;\n right: 0;\n text-align: center;\n }\n }\n}\n\n// Headers positions\n.lm_stack.lm_left,\n.lm_stack.lm_right {\n .lm_header {\n height: 100%;\n }\n}\n\n.lm_dragProxy.lm_left,\n.lm_dragProxy.lm_right,\n.lm_stack.lm_left,\n.lm_stack.lm_right {\n .lm_header {\n width: 20px;\n float: left;\n vertical-align: top;\n .lm_tabs {\n transform-origin: left top;\n top: 0;\n width: 1000px; /*hack*/\n }\n .lm_controls {\n bottom: 0;\n }\n }\n .lm_items {\n float: left;\n }\n}\n\n.lm_dragProxy.lm_left,\n.lm_stack.lm_left {\n .lm_header {\n .lm_tabs {\n transform: rotate(-90deg) scaleX(-1);\n left: 0;\n .lm_tab {\n transform: scaleX(-1);\n margin-top: 1px;\n }\n }\n .lm_tabdropdown_list {\n top: initial;\n right: initial;\n left: 20px;\n }\n }\n}\n\n.lm_dragProxy.lm_right .lm_content {\n float: left;\n}\n\n.lm_dragProxy.lm_right,\n.lm_stack.lm_right {\n .lm_header {\n .lm_tabs {\n transform: rotate(90deg) scaleX(1);\n left: 100%;\n margin-left: 0;\n }\n .lm_controls {\n left: 3px;\n }\n .lm_tabdropdown_list {\n top: initial;\n right: 20px;\n }\n }\n}\n\n.lm_dragProxy.lm_bottom,\n.lm_stack.lm_bottom {\n .lm_header {\n .lm_tab {\n margin-top: 0;\n border-top: none;\n }\n .lm_controls {\n top: 3px;\n }\n .lm_tabdropdown_list {\n top: initial;\n bottom: 20px;\n }\n }\n}\n\n.lm_drop_tab_placeholder {\n flex-shrink: 0;\n}\n\n// Dropdown arrow for additional tabs when too many to be displayed\n.lm_header {\n .lm_controls .lm_tabdropdown:before {\n content: '';\n width: 0;\n height: 0;\n vertical-align: middle;\n display: inline-block;\n border-top: 5px dashed;\n border-right: 5px solid transparent;\n border-left: 5px solid transparent;\n color: white; // Overriden in specific Themes\n }\n\n .lm_tabdropdown_list {\n position: absolute;\n top: 20px;\n right: 0;\n z-index: 5;\n overflow-y: auto;\n overflow-x: hidden;\n\n .lm_tabs {\n flex-direction: column;\n }\n\n .lm_tab {\n padding-right: 10px;\n }\n\n .lm_close_tab {\n display: none !important;\n }\n }\n}\n\n/***********************************\n* Drag Proxy\n***********************************/\n\n// Single Pane content during Drag (style of moving window following mouse)\n.lm_dragProxy {\n position: absolute;\n top: 0;\n left: 0;\n z-index: 30;\n pointer-events: none;\n\n .lm_header {\n background: transparent;\n }\n\n .lm_content {\n border-top: none;\n overflow: hidden;\n }\n}\n\n// Placeholder Container of target position\n.lm_dropTargetIndicator {\n display: none;\n position: absolute;\n z-index: 20;\n pointer-events: none;\n\n // Inner Placeholder\n .lm_inner {\n width: $width0;\n height: $height0;\n position: relative;\n top: 0;\n left: 0;\n }\n}\n\n// If a specific Pane is Popped Out, so move it to a different Browser Window, Icon to restore original position is:\n.lm_popin {\n width: $width1;\n height: $height1;\n position: absolute;\n bottom: 0;\n right: 0;\n z-index: 9999;\n\n > * {\n width: $width0;\n height: $height0;\n position: absolute;\n top: 0;\n left: 0;\n }\n\n > .lm_bg {\n z-index: 10;\n }\n\n > .lm_icon {\n z-index: 20;\n }\n}\n"]}
@@ -1 +1 @@
1
- .lm_goldenlayout{background:#000}.lm_content{background:#222}.lm_dragProxy .lm_content{box-shadow:2px 2px 4px rgba(0,0,0,.9)}.lm_dropTargetIndicator{box-shadow:inset 0 0 30px #000;outline:1px dashed #ccc;transition:all 200ms ease}.lm_dropTargetIndicator .lm_inner{background:#000;opacity:.2}.lm_splitter{background:#000;opacity:.001;transition:opacity 200ms ease}.lm_splitter:hover,.lm_splitter.lm_dragging{background:#444;opacity:1}.lm_header{height:20px;user-select:none}.lm_header.lm_selectable{cursor:pointer}.lm_header .lm_tab{font-family:Arial,sans-serif;font-size:12px;color:#999;background:#111;box-shadow:2px -2px 2px rgba(0,0,0,.3);margin-right:2px;padding-bottom:2px;padding-top:2px}.lm_header .lm_tab .lm_close_tab{width:11px;height:11px;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAcAAAAHCAYAAADEUlfTAAAATElEQVR4nG3OwQ0DMQwDwZGRBtR/j1YJzMc5+IDoR+yCVO29g+pu981MFgqZmRdAfU7+CYWcbF11LwALjpBL0N0qybNx/RPU+gOeiS/+XCRwDlTgkQAAAABJRU5ErkJggg==);background-position:center center;background-repeat:no-repeat;top:4px;right:6px;opacity:.4}.lm_header .lm_tab .lm_close_tab:hover{opacity:1}.lm_header .lm_tab.lm_active{border-bottom:none;box-shadow:0 -2px 2px #000;padding-bottom:3px}.lm_header .lm_tab.lm_active .lm_close_tab{opacity:1}.lm_dragProxy.lm_bottom .lm_header .lm_tab,.lm_stack.lm_bottom .lm_header .lm_tab{box-shadow:2px 2px 2px rgba(0,0,0,.3)}.lm_dragProxy.lm_bottom .lm_header .lm_tab.lm_active,.lm_stack.lm_bottom .lm_header .lm_tab.lm_active{box-shadow:0 2px 2px #000}.lm_selected .lm_header{background-color:#452500}.lm_tab:hover,.lm_tab.lm_active{background:#222;color:#ddd}.lm_header .lm_tabs .lm_tab.lm_keyboard_active{color:#000;background:#ddd}.lm_header .lm_controls .lm_tabdropdown:before{color:#fff}.lm_controls>li{position:relative;background-position:center center;background-repeat:no-repeat;opacity:.4;transition:opacity 300ms ease}.lm_controls>li:hover{opacity:1}.lm_controls .lm_popout{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAkAAAAJCAYAAADgkQYQAAAAPklEQVR4nI2Q0QoAIAwCNfr/X7aXCpGN8snBdgejJOzckpkxs9jR6K6T5JpU0nWl5pSXTk7qwh8SnNT+CAAWCgkKFpuSWsUAAAAASUVORK5CYII=)}.lm_controls .lm_maximise{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAkAAAAJCAYAAADgkQYQAAAAKElEQVR4nGP8////fwYCgImQAgYGBgYWKM2IR81/okwajIpgvsMbVgAwgQYRVakEKQAAAABJRU5ErkJggg==)}.lm_controls .lm_close{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAkAAAAJCAYAAADgkQYQAAAAQUlEQVR4nHXOQQ4AMAgCQeT/f6aXpsGK3jSTuCVJAAr7iBdoAwCKd0nwfaAdHbYERw5b44+E8JoBjEYGMBq5gAYP3usUDu2IvoUAAAAASUVORK5CYII=)}.lm_controls .lm_tabnextbutton{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAkAAAAJAQMAAADaX5RTAAAABlBMVEUAAAD///+l2Z/dAAAAAXRSTlMAQObYZgAAABxJREFUCNdjUGBgEGBg4GBgYGFgYAKTHCARoDgABscAe0vtWukAAAAASUVORK5CYII=)}.lm_controls .lm_tabpreviousbutton{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAkAAAAJAQMAAADaX5RTAAAABlBMVEUAAAD///+l2Z/dAAAAAXRSTlMAQObYZgAAABxJREFUCNdjYGJgYGFg4GBgEGBgUACTHCARoDgABSMAXe2fzqEAAAAASUVORK5CYII=)}.lm_maximised .lm_header{background-color:#000}.lm_maximised .lm_controls .lm_maximise{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAYAAACNMs+9AAAAJ0lEQVR4nGP8//8/AzGAiShVI1YhCwMDA8OsWbPwBmZaWhoj0SYCAN1lBxMAX4n0AAAAAElFTkSuQmCC)}.lm_transition_indicator{background-color:#000;border:1px dashed #555}.lm_popin{cursor:pointer}.lm_popin .lm_bg{background:#fff;opacity:.3}.lm_popin .lm_icon{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA0AAAAJCAYAAADpeqZqAAAAWklEQVR4nJWOyw3AIAxDHcQC7L8jbwT3AlJBfNp3SiI7dtRaLSlKKeoA1oEsKSQZCEluexw8Tm3ohk+E7bnOUHUGcNh+HwbBygw4AZ7FN/Lt84p0l+yTflV8AKQyLdcCRJi/AAAAAElFTkSuQmCC);background-position:center center;background-repeat:no-repeat;border-left:1px solid #eee;border-top:1px solid #eee;opacity:.7}.lm_popin:hover .lm_icon{opacity:1}/*# sourceMappingURL=goldenlayout-dark-theme.css.map */
1
+ .lm_goldenlayout{background:#000}.lm_content{background:#222}.lm_dragProxy .lm_content{box-shadow:2px 2px 4px rgba(0,0,0,.9)}.lm_dropTargetIndicator{box-shadow:inset 0 0 30px #000;outline:1px dashed #ccc;transition:all 200ms ease}.lm_dropTargetIndicator .lm_inner{background:#000;opacity:.2}.lm_splitter{background:#000;opacity:.001;transition:opacity 200ms ease}.lm_splitter:hover,.lm_splitter.lm_dragging{background:#444;opacity:1}.lm_header{height:20px;user-select:none}.lm_header.lm_selectable{cursor:pointer}.lm_header .lm_tab{font-family:Arial,sans-serif;font-size:12px;color:#999;background:#111;box-shadow:2px -2px 2px rgba(0,0,0,.3);margin-right:2px;padding-bottom:2px;padding-top:2px}.lm_header .lm_tab .lm_close_tab{width:11px;height:11px;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAcAAAAHCAYAAADEUlfTAAAATElEQVR4nG3OwQ0DMQwDwZGRBtR/j1YJzMc5+IDoR+yCVO29g+pu981MFgqZmRdAfU7+CYWcbF11LwALjpBL0N0qybNx/RPU+gOeiS/+XCRwDlTgkQAAAABJRU5ErkJggg==);background-position:center center;background-repeat:no-repeat;top:4px;right:6px;opacity:.4}.lm_header .lm_tab .lm_close_tab:hover{opacity:1}.lm_header .lm_tab.lm_active{border-bottom:none;box-shadow:0 -2px 2px #000;padding-bottom:3px}.lm_header .lm_tab.lm_active .lm_close_tab{opacity:1}.lm_dragProxy.lm_bottom .lm_header .lm_tab,.lm_stack.lm_bottom .lm_header .lm_tab{box-shadow:2px 2px 2px rgba(0,0,0,.3)}.lm_dragProxy.lm_bottom .lm_header .lm_tab.lm_active,.lm_stack.lm_bottom .lm_header .lm_tab.lm_active{box-shadow:0 2px 2px #000}.lm_selected .lm_header{background-color:#452500}.lm_tab:hover,.lm_tab.lm_active{background:#222;color:#ddd}.lm_header .lm_tabs .lm_tab.lm_keyboard_active{color:#000;background:#ddd}.lm_header .lm_controls .lm_tabdropdown:before{color:#fff}.lm_controls>li{position:relative;background-position:center center;background-repeat:no-repeat;opacity:.4;transition:opacity 300ms ease}.lm_controls>li:hover{opacity:1}.lm_controls .lm_popout{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAkAAAAJCAYAAADgkQYQAAAAPklEQVR4nI2Q0QoAIAwCNfr/X7aXCpGN8snBdgejJOzckpkxs9jR6K6T5JpU0nWl5pSXTk7qwh8SnNT+CAAWCgkKFpuSWsUAAAAASUVORK5CYII=)}.lm_controls .lm_maximise{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAkAAAAJCAYAAADgkQYQAAAAKElEQVR4nGP8////fwYCgImQAgYGBgYWKM2IR81/okwajIpgvsMbVgAwgQYRVakEKQAAAABJRU5ErkJggg==)}.lm_controls .lm_close{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAkAAAAJCAYAAADgkQYQAAAAQUlEQVR4nHXOQQ4AMAgCQeT/f6aXpsGK3jSTuCVJAAr7iBdoAwCKd0nwfaAdHbYERw5b44+E8JoBjEYGMBq5gAYP3usUDu2IvoUAAAAASUVORK5CYII=)}.lm_controls .lm_tabnextbutton{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAkAAAAJAQMAAADaX5RTAAAABlBMVEUAAAD///+l2Z/dAAAAAXRSTlMAQObYZgAAABxJREFUCNdjUGBgEGBg4GBgYGFgYAKTHCARoDgABscAe0vtWukAAAAASUVORK5CYII=)}.lm_controls .lm_tabpreviousbutton{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAkAAAAJAQMAAADaX5RTAAAABlBMVEUAAAD///+l2Z/dAAAAAXRSTlMAQObYZgAAABxJREFUCNdjYGJgYGFg4GBgEGBgUACTHCARoDgABSMAXe2fzqEAAAAASUVORK5CYII=)}.lm_maximised .lm_header{background-color:#000}.lm_maximised .lm_controls .lm_maximise{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAYAAACNMs+9AAAAJ0lEQVR4nGP8//8/AzGAiShVI1YhCwMDA8OsWbPwBmZaWhoj0SYCAN1lBxMAX4n0AAAAAElFTkSuQmCC)}.lm_popin{cursor:pointer}.lm_popin .lm_bg{background:#fff;opacity:.3}.lm_popin .lm_icon{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA0AAAAJCAYAAADpeqZqAAAAWklEQVR4nJWOyw3AIAxDHcQC7L8jbwT3AlJBfNp3SiI7dtRaLSlKKeoA1oEsKSQZCEluexw8Tm3ohk+E7bnOUHUGcNh+HwbBygw4AZ7FN/Lt84p0l+yTflV8AKQyLdcCRJi/AAAAAElFTkSuQmCC);background-position:center center;background-repeat:no-repeat;border-left:1px solid #eee;border-top:1px solid #eee;opacity:.7}.lm_popin:hover .lm_icon{opacity:1}/*# sourceMappingURL=goldenlayout-dark-theme.css.map */
@@ -1 +1 @@
1
- {"version":3,"sourceRoot":"","sources":["../scss/goldenlayout-dark-theme.scss"],"names":[],"mappings":"AAiBA,iBACE,WAjBO,KAqBT,YACE,WArBO,KA0BP,0BACE,sCAKJ,wBACE,+BACA,wBACA,0BAGA,kCACE,WAxCK,KAyCL,WAKJ,aACE,WA/CO,KAgDP,aACA,8BAEA,4CAEE,WA/CK,KAgDL,UAKJ,WACE,YACA,iBAEA,yBACE,eAIF,mBACE,6BACA,eACA,MAhEK,KAiEL,WAhEK,KAiEL,uCACA,iBACA,mBACA,gBAQA,iCACE,WACA,YACA,iOACA,kCACA,4BACA,QACA,UACA,WAEA,uCACE,UAKJ,6BACE,mBACA,2BACA,mBAEA,2CACE,UAQN,kFACE,sCACA,sGACE,0BAOJ,wBACE,iBApHK,QAyHP,gCAGE,WApIK,KAqIL,MAnIK,KAuIT,+CACE,MA3IO,KA4IP,WAzIO,KA6IT,+CACE,MAtIQ,KA4IR,gBACE,kBACA,kCACA,4BACA,WACA,8BAEA,sBACE,UAKJ,wBACE,6MAIF,0BACE,iLAIF,uBACE,iNAGF,+BACE,yMAGF,mCACE,yMAOF,yBACE,iBA/LK,KAoML,wCACE,6KAKN,yBACE,iBA3MO,KA4MP,uBAIF,UACE,eAGA,iBACE,WA1MM,KA2MN,WAIF,mBACE,iPACA,kCACA,4BACA,2BACA,0BACA,WAIA,yBACE","file":"goldenlayout-dark-theme.css","sourcesContent":["// Color variables (appears count calculates by raw css)\n$color0: #000000; // Appears 7 times\n$color1: #222222; // Appears 3 times\n$color2: #eeeeee; // Appears 2 times\n$color3: #dddddd; // Appears 2 times\n\n$color4: #cccccc; // Appears 1 time\n$color5: #444444; // Appears 1 time\n$color6: #999999; // Appears 1 time\n$color7: #111111; // Appears 1 time\n$color8: #452500; // Appears 1 time\n$color9: #555555; // Appears 1 time\n$color10: #ffffff; // Appears 2 time\n\n// \".lm_dragging\" is applied to BODY tag during Drag and is also directly applied to the root of the object being dragged\n\n// Entire GoldenLayout Container, if a background is set, it is visible as color of \"pane header\" and \"splitters\" (if these latest has opacity very low)\n.lm_goldenlayout {\n background: $color0;\n}\n\n// Single Pane content (area in which final dragged content is contained)\n.lm_content {\n background: $color1;\n}\n\n// Single Pane content during Drag (style of moving window following mouse)\n.lm_dragProxy {\n .lm_content {\n box-shadow: 2px 2px 4px rgba(0, 0, 0, 0.9);\n }\n}\n\n// Placeholder Container of target position\n.lm_dropTargetIndicator {\n box-shadow: inset 0 0 30px $color0;\n outline: 1px dashed $color4;\n transition: all 200ms ease;\n\n // Inner Placeholder\n .lm_inner {\n background: $color0;\n opacity: 0.2;\n }\n}\n\n// Separator line (handle to change pane size)\n.lm_splitter {\n background: $color0;\n opacity: 0.001;\n transition: opacity 200ms ease;\n\n &:hover, // When hovered by mouse...\n &.lm_dragging {\n background: $color5;\n opacity: 1;\n }\n}\n\n// Pane Header (container of Tabs for each pane)\n.lm_header {\n height: 20px;\n user-select: none;\n\n &.lm_selectable {\n cursor: pointer;\n }\n\n // Single Tab container. A single Tab is set for each pane, a group of Tabs are contained in \".lm_header\"\n .lm_tab {\n font-family: Arial, sans-serif;\n font-size: 12px;\n color: $color6;\n background: $color7;\n box-shadow: 2px -2px 2px rgba(0, 0, 0, 0.3);\n margin-right: 2px;\n padding-bottom: 2px;\n padding-top: 2px;\n\n /*.lm_title // Present in LIGHT Theme\n {\n padding-top:1px;\n }*/\n\n // Close Tab Icon\n .lm_close_tab {\n width: 11px;\n height: 11px;\n background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAcAAAAHCAYAAADEUlfTAAAATElEQVR4nG3OwQ0DMQwDwZGRBtR/j1YJzMc5+IDoR+yCVO29g+pu981MFgqZmRdAfU7+CYWcbF11LwALjpBL0N0qybNx/RPU+gOeiS/+XCRwDlTgkQAAAABJRU5ErkJggg==);\n background-position: center center;\n background-repeat: no-repeat;\n top: 4px;\n right: 6px;\n opacity: 0.4;\n\n &:hover {\n opacity: 1;\n }\n }\n\n // If Tab is active, so if it's in foreground\n &.lm_active {\n border-bottom: none;\n box-shadow: 0 -2px 2px $color0;\n padding-bottom: 3px;\n\n .lm_close_tab {\n opacity: 1;\n }\n }\n }\n}\n\n.lm_dragProxy.lm_bottom,\n.lm_stack.lm_bottom {\n .lm_header .lm_tab {\n box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.3);\n &.lm_active {\n box-shadow: 0 2px 2px $color0;\n }\n }\n}\n\n// If Pane Header (container of Tabs for each pane) is selected (used only if addition of new Contents is made \"by selection\" and not \"by drag\")\n.lm_selected {\n .lm_header {\n background-color: $color8;\n }\n}\n\n.lm_tab {\n &:hover, // If Tab is hovered\n &.lm_active // If Tab is active, so if it's in foreground\n {\n background: $color1;\n color: $color3;\n }\n}\n\n.lm_header .lm_tabs .lm_tab.lm_keyboard_active {\n color: $color0;\n background: $color3;\n}\n\n// Dropdown arrow for additional tabs when too many to be displayed\n.lm_header .lm_controls .lm_tabdropdown:before {\n color: $color10;\n}\n\n// Pane controls (popout, maximize, minimize, close)\n.lm_controls {\n // All Pane controls shares these\n > li {\n position: relative;\n background-position: center center;\n background-repeat: no-repeat;\n opacity: 0.4;\n transition: opacity 300ms ease;\n\n &:hover {\n opacity: 1;\n }\n }\n\n // Icon to PopOut Pane, so move it to a different Browser Window\n .lm_popout {\n background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAkAAAAJCAYAAADgkQYQAAAAPklEQVR4nI2Q0QoAIAwCNfr/X7aXCpGN8snBdgejJOzckpkxs9jR6K6T5JpU0nWl5pSXTk7qwh8SnNT+CAAWCgkKFpuSWsUAAAAASUVORK5CYII=);\n }\n\n // Icon to Maximize Pane, so it will fill the entire GoldenLayout Container\n .lm_maximise {\n background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAkAAAAJCAYAAADgkQYQAAAAKElEQVR4nGP8////fwYCgImQAgYGBgYWKM2IR81/okwajIpgvsMbVgAwgQYRVakEKQAAAABJRU5ErkJggg==);\n }\n\n // Icon to Close Pane and so remove it from GoldenLayout Container\n .lm_close {\n background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAkAAAAJCAYAAADgkQYQAAAAQUlEQVR4nHXOQQ4AMAgCQeT/f6aXpsGK3jSTuCVJAAr7iBdoAwCKd0nwfaAdHbYERw5b44+E8JoBjEYGMBq5gAYP3usUDu2IvoUAAAAASUVORK5CYII=);\n }\n\n .lm_tabnextbutton {\n background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAkAAAAJAQMAAADaX5RTAAAABlBMVEUAAAD///+l2Z/dAAAAAXRSTlMAQObYZgAAABxJREFUCNdjUGBgEGBg4GBgYGFgYAKTHCARoDgABscAe0vtWukAAAAASUVORK5CYII=);\n }\n\n .lm_tabpreviousbutton {\n background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAkAAAAJAQMAAADaX5RTAAAABlBMVEUAAAD///+l2Z/dAAAAAXRSTlMAQObYZgAAABxJREFUCNdjYGJgYGFg4GBgEGBgUACTHCARoDgABSMAXe2fzqEAAAAASUVORK5CYII=);\n }\n}\n\n// If a specific Pane is maximized\n.lm_maximised {\n // Pane Header (container of Tabs for each pane) can have different style when is Maximized\n .lm_header {\n background-color: $color0;\n }\n\n // Pane controls are different in Maximized Mode, especially the old Icon \"Maximise\" that now has a different meaning, so \"Minimize\" (even if CSS Class did not change)\n .lm_controls {\n .lm_maximise {\n background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAYAAACNMs+9AAAAJ0lEQVR4nGP8//8/AzGAiShVI1YhCwMDA8OsWbPwBmZaWhoj0SYCAN1lBxMAX4n0AAAAAElFTkSuQmCC);\n }\n }\n}\n\n.lm_transition_indicator {\n background-color: $color0;\n border: 1px dashed $color9;\n}\n\n// If a specific Pane is Popped Out, so move it to a different Browser Window, Icon to restore original position is:\n.lm_popin {\n cursor: pointer;\n\n // Background of Icon\n .lm_bg {\n background: $color10;\n opacity: 0.3;\n }\n\n // Icon to Restore original position in Golden Layout Container\n .lm_icon {\n background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA0AAAAJCAYAAADpeqZqAAAAWklEQVR4nJWOyw3AIAxDHcQC7L8jbwT3AlJBfNp3SiI7dtRaLSlKKeoA1oEsKSQZCEluexw8Tm3ohk+E7bnOUHUGcNh+HwbBygw4AZ7FN/Lt84p0l+yTflV8AKQyLdcCRJi/AAAAAElFTkSuQmCC);\n background-position: center center;\n background-repeat: no-repeat;\n border-left: 1px solid $color2;\n border-top: 1px solid $color2;\n opacity: 0.7;\n }\n\n &:hover {\n .lm_icon {\n opacity: 1;\n }\n }\n}\n"]}
1
+ {"version":3,"sourceRoot":"","sources":["../scss/goldenlayout-dark-theme.scss"],"names":[],"mappings":"AAiBA,iBACE,WAjBO,KAqBT,YACE,WArBO,KA0BP,0BACE,sCAKJ,wBACE,+BACA,wBACA,0BAGA,kCACE,WAxCK,KAyCL,WAKJ,aACE,WA/CO,KAgDP,aACA,8BAEA,4CAEE,WA/CK,KAgDL,UAKJ,WACE,YACA,iBAEA,yBACE,eAIF,mBACE,6BACA,eACA,MAhEK,KAiEL,WAhEK,KAiEL,uCACA,iBACA,mBACA,gBAQA,iCACE,WACA,YACA,iOACA,kCACA,4BACA,QACA,UACA,WAEA,uCACE,UAKJ,6BACE,mBACA,2BACA,mBAEA,2CACE,UAQN,kFACE,sCACA,sGACE,0BAOJ,wBACE,iBApHK,QAyHP,gCAGE,WApIK,KAqIL,MAnIK,KAuIT,+CACE,MA3IO,KA4IP,WAzIO,KA6IT,+CACE,MAtIQ,KA4IR,gBACE,kBACA,kCACA,4BACA,WACA,8BAEA,sBACE,UAKJ,wBACE,6MAIF,0BACE,iLAIF,uBACE,iNAGF,+BACE,yMAGF,mCACE,yMAOF,yBACE,iBA/LK,KAoML,wCACE,6KAMN,UACE,eAGA,iBACE,WArMM,KAsMN,WAIF,mBACE,iPACA,kCACA,4BACA,2BACA,0BACA,WAIA,yBACE","file":"goldenlayout-dark-theme.css","sourcesContent":["// Color variables (appears count calculates by raw css)\n$color0: #000000; // Appears 7 times\n$color1: #222222; // Appears 3 times\n$color2: #eeeeee; // Appears 2 times\n$color3: #dddddd; // Appears 2 times\n\n$color4: #cccccc; // Appears 1 time\n$color5: #444444; // Appears 1 time\n$color6: #999999; // Appears 1 time\n$color7: #111111; // Appears 1 time\n$color8: #452500; // Appears 1 time\n$color9: #555555; // Appears 1 time\n$color10: #ffffff; // Appears 2 time\n\n// \".lm_dragging\" is applied to BODY tag during Drag and is also directly applied to the root of the object being dragged\n\n// Entire GoldenLayout Container, if a background is set, it is visible as color of \"pane header\" and \"splitters\" (if these latest has opacity very low)\n.lm_goldenlayout {\n background: $color0;\n}\n\n// Single Pane content (area in which final dragged content is contained)\n.lm_content {\n background: $color1;\n}\n\n// Single Pane content during Drag (style of moving window following mouse)\n.lm_dragProxy {\n .lm_content {\n box-shadow: 2px 2px 4px rgba(0, 0, 0, 0.9);\n }\n}\n\n// Placeholder Container of target position\n.lm_dropTargetIndicator {\n box-shadow: inset 0 0 30px $color0;\n outline: 1px dashed $color4;\n transition: all 200ms ease;\n\n // Inner Placeholder\n .lm_inner {\n background: $color0;\n opacity: 0.2;\n }\n}\n\n// Separator line (handle to change pane size)\n.lm_splitter {\n background: $color0;\n opacity: 0.001;\n transition: opacity 200ms ease;\n\n &:hover, // When hovered by mouse...\n &.lm_dragging {\n background: $color5;\n opacity: 1;\n }\n}\n\n// Pane Header (container of Tabs for each pane)\n.lm_header {\n height: 20px;\n user-select: none;\n\n &.lm_selectable {\n cursor: pointer;\n }\n\n // Single Tab container. A single Tab is set for each pane, a group of Tabs are contained in \".lm_header\"\n .lm_tab {\n font-family: Arial, sans-serif;\n font-size: 12px;\n color: $color6;\n background: $color7;\n box-shadow: 2px -2px 2px rgba(0, 0, 0, 0.3);\n margin-right: 2px;\n padding-bottom: 2px;\n padding-top: 2px;\n\n /*.lm_title // Present in LIGHT Theme\n {\n padding-top:1px;\n }*/\n\n // Close Tab Icon\n .lm_close_tab {\n width: 11px;\n height: 11px;\n background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAcAAAAHCAYAAADEUlfTAAAATElEQVR4nG3OwQ0DMQwDwZGRBtR/j1YJzMc5+IDoR+yCVO29g+pu981MFgqZmRdAfU7+CYWcbF11LwALjpBL0N0qybNx/RPU+gOeiS/+XCRwDlTgkQAAAABJRU5ErkJggg==);\n background-position: center center;\n background-repeat: no-repeat;\n top: 4px;\n right: 6px;\n opacity: 0.4;\n\n &:hover {\n opacity: 1;\n }\n }\n\n // If Tab is active, so if it's in foreground\n &.lm_active {\n border-bottom: none;\n box-shadow: 0 -2px 2px $color0;\n padding-bottom: 3px;\n\n .lm_close_tab {\n opacity: 1;\n }\n }\n }\n}\n\n.lm_dragProxy.lm_bottom,\n.lm_stack.lm_bottom {\n .lm_header .lm_tab {\n box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.3);\n &.lm_active {\n box-shadow: 0 2px 2px $color0;\n }\n }\n}\n\n// If Pane Header (container of Tabs for each pane) is selected (used only if addition of new Contents is made \"by selection\" and not \"by drag\")\n.lm_selected {\n .lm_header {\n background-color: $color8;\n }\n}\n\n.lm_tab {\n &:hover, // If Tab is hovered\n &.lm_active // If Tab is active, so if it's in foreground\n {\n background: $color1;\n color: $color3;\n }\n}\n\n.lm_header .lm_tabs .lm_tab.lm_keyboard_active {\n color: $color0;\n background: $color3;\n}\n\n// Dropdown arrow for additional tabs when too many to be displayed\n.lm_header .lm_controls .lm_tabdropdown:before {\n color: $color10;\n}\n\n// Pane controls (popout, maximize, minimize, close)\n.lm_controls {\n // All Pane controls shares these\n > li {\n position: relative;\n background-position: center center;\n background-repeat: no-repeat;\n opacity: 0.4;\n transition: opacity 300ms ease;\n\n &:hover {\n opacity: 1;\n }\n }\n\n // Icon to PopOut Pane, so move it to a different Browser Window\n .lm_popout {\n background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAkAAAAJCAYAAADgkQYQAAAAPklEQVR4nI2Q0QoAIAwCNfr/X7aXCpGN8snBdgejJOzckpkxs9jR6K6T5JpU0nWl5pSXTk7qwh8SnNT+CAAWCgkKFpuSWsUAAAAASUVORK5CYII=);\n }\n\n // Icon to Maximize Pane, so it will fill the entire GoldenLayout Container\n .lm_maximise {\n background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAkAAAAJCAYAAADgkQYQAAAAKElEQVR4nGP8////fwYCgImQAgYGBgYWKM2IR81/okwajIpgvsMbVgAwgQYRVakEKQAAAABJRU5ErkJggg==);\n }\n\n // Icon to Close Pane and so remove it from GoldenLayout Container\n .lm_close {\n background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAkAAAAJCAYAAADgkQYQAAAAQUlEQVR4nHXOQQ4AMAgCQeT/f6aXpsGK3jSTuCVJAAr7iBdoAwCKd0nwfaAdHbYERw5b44+E8JoBjEYGMBq5gAYP3usUDu2IvoUAAAAASUVORK5CYII=);\n }\n\n .lm_tabnextbutton {\n background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAkAAAAJAQMAAADaX5RTAAAABlBMVEUAAAD///+l2Z/dAAAAAXRSTlMAQObYZgAAABxJREFUCNdjUGBgEGBg4GBgYGFgYAKTHCARoDgABscAe0vtWukAAAAASUVORK5CYII=);\n }\n\n .lm_tabpreviousbutton {\n background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAkAAAAJAQMAAADaX5RTAAAABlBMVEUAAAD///+l2Z/dAAAAAXRSTlMAQObYZgAAABxJREFUCNdjYGJgYGFg4GBgEGBgUACTHCARoDgABSMAXe2fzqEAAAAASUVORK5CYII=);\n }\n}\n\n// If a specific Pane is maximized\n.lm_maximised {\n // Pane Header (container of Tabs for each pane) can have different style when is Maximized\n .lm_header {\n background-color: $color0;\n }\n\n // Pane controls are different in Maximized Mode, especially the old Icon \"Maximise\" that now has a different meaning, so \"Minimize\" (even if CSS Class did not change)\n .lm_controls {\n .lm_maximise {\n background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAKCAYAAACNMs+9AAAAJ0lEQVR4nGP8//8/AzGAiShVI1YhCwMDA8OsWbPwBmZaWhoj0SYCAN1lBxMAX4n0AAAAAElFTkSuQmCC);\n }\n }\n}\n\n// If a specific Pane is Popped Out, so move it to a different Browser Window, Icon to restore original position is:\n.lm_popin {\n cursor: pointer;\n\n // Background of Icon\n .lm_bg {\n background: $color10;\n opacity: 0.3;\n }\n\n // Icon to Restore original position in Golden Layout Container\n .lm_icon {\n background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA0AAAAJCAYAAADpeqZqAAAAWklEQVR4nJWOyw3AIAxDHcQC7L8jbwT3AlJBfNp3SiI7dtRaLSlKKeoA1oEsKSQZCEluexw8Tm3ohk+E7bnOUHUGcNh+HwbBygw4AZ7FN/Lt84p0l+yTflV8AKQyLdcCRJi/AAAAAElFTkSuQmCC);\n background-position: center center;\n background-repeat: no-repeat;\n border-left: 1px solid $color2;\n border-top: 1px solid $color2;\n opacity: 0.7;\n }\n\n &:hover {\n .lm_icon {\n opacity: 1;\n }\n }\n}\n"]}
@@ -1,7 +1,7 @@
1
1
  import React from 'react';
2
2
  import type { ItemConfig, Config, ComponentConfig, ItemConfigType, ReactComponentConfig } from './config';
3
3
  import type { ItemContainer } from './container';
4
- import { BrowserPopout, DragSource, DragSourceFromEvent, DropTargetIndicator, TransitionIndicator } from './controls';
4
+ import { BrowserPopout, DragSource, DragSourceFromEvent, DropTargetIndicator } from './controls';
5
5
  import { AbstractContentItem, ItemArea, Root, Stack } from './items';
6
6
  import { EventEmitter, EventHub } from './utils';
7
7
  export type ComponentConstructor<C extends ComponentConfig | ReactComponentConfig = ComponentConfig> = {
@@ -68,7 +68,6 @@ export default class LayoutManager extends EventEmitter {
68
68
  container: JQuery<HTMLElement>;
69
69
  private _originalContainer;
70
70
  dropTargetIndicator: DropTargetIndicator | null;
71
- transitionIndicator: TransitionIndicator | null;
72
71
  tabDropPlaceholder: JQuery<HTMLElement>;
73
72
  private _typeToItem;
74
73
  constructor(config: Config, container: JQuery<HTMLElement> | HTMLElement | undefined);
@@ -1 +1 @@
1
- {"version":3,"file":"LayoutManager.d.ts","sourceRoot":"","sources":["../src/LayoutManager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"LayoutManager.d.ts","sourceRoot":"","sources":["../src/LayoutManager.ts"],"names":[],"mappings":"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"}
@@ -6,7 +6,7 @@ function _toPrimitive(input, hint) { if (typeof input !== "object" || input ===
6
6
  import $ from 'jquery';
7
7
  import lm from "./base.js";
8
8
  import { defaultConfig } from "./config/index.js";
9
- import { BrowserPopout, DragSource, DragSourceFromEvent, DropTargetIndicator, TransitionIndicator } from "./controls/index.js";
9
+ import { BrowserPopout, DragSource, DragSourceFromEvent, DropTargetIndicator } from "./controls/index.js";
10
10
  import { ConfigurationError } from "./errors/index.js";
11
11
  import { AbstractContentItem, isStack, Component, Root, RowOrColumn, Stack } from "./items/index.js";
12
12
  import { minifyConfig, unminifyConfig, EventEmitter, EventHub, ReactComponentHandler, getQueryStringParam, getUniqueId, stripTags } from "./utils/index.js";
@@ -73,7 +73,6 @@ export default class LayoutManager extends EventEmitter {
73
73
  _defineProperty(this, "container", void 0);
74
74
  _defineProperty(this, "_originalContainer", void 0);
75
75
  _defineProperty(this, "dropTargetIndicator", null);
76
- _defineProperty(this, "transitionIndicator", null);
77
76
  _defineProperty(this, "tabDropPlaceholder", $('<div class="lm_drop_tab_placeholder"></div>'));
78
77
  _defineProperty(this, "_typeToItem", void 0);
79
78
  this._onResize = this._onResize.bind(this);
@@ -263,7 +262,6 @@ export default class LayoutManager extends EventEmitter {
263
262
  }
264
263
  this._setContainer();
265
264
  this.dropTargetIndicator = new DropTargetIndicator();
266
- this.transitionIndicator = new TransitionIndicator();
267
265
  this.updateSize();
268
266
  this._create(this.config);
269
267
  this._bindEvents();
@@ -339,7 +337,7 @@ export default class LayoutManager extends EventEmitter {
339
337
  * within it. After this is called nothing should be left of the LayoutManager.
340
338
  */
341
339
  destroy() {
342
- var _this$dropTargetIndic, _this$transitionIndic;
340
+ var _this$dropTargetIndic;
343
341
  if (this.isInitialised === false || !this.root) {
344
342
  return;
345
343
  }
@@ -351,7 +349,6 @@ export default class LayoutManager extends EventEmitter {
351
349
  this.root.contentItems = [];
352
350
  this.tabDropPlaceholder.remove();
353
351
  (_this$dropTargetIndic = this.dropTargetIndicator) === null || _this$dropTargetIndic === void 0 ? void 0 : _this$dropTargetIndic.destroy();
354
- (_this$transitionIndic = this.transitionIndicator) === null || _this$transitionIndic === void 0 ? void 0 : _this$transitionIndic.destroy();
355
352
  this.eventHub.destroy();
356
353
  this._dragSources.forEach(function (dragSource) {
357
354
  dragSource._dragListener.destroy();
@@ -1 +1 @@
1
- {"version":3,"file":"LayoutManager.js","names":["$","lm","defaultConfig","BrowserPopout","DragSource","DragSourceFromEvent","DropTargetIndicator","TransitionIndicator","ConfigurationError","AbstractContentItem","isStack","Component","Root","RowOrColumn","Stack","minifyConfig","unminifyConfig","EventEmitter","EventHub","ReactComponentHandler","getQueryStringParam","getUniqueId","stripTags","LayoutManager","config","constructor","container","Map","_onResize","bind","_onUnload","_windowBlur","_windowFocus","_createConfig","_originalContainer","_getContainer","isSubWindow","css","_typeToItem","column","row","stack","component","registerComponent","name","render","Error","_components","undefined","cleanup","setFallbackComponent","_fallbackComponent","toConfig","root","isInitialised","settings","dimensions","labels","content","next","configNode","item","key","componentName","type","contentItems","length","i","_$reconcilePopoutWindows","openPopouts","push","maximisedItemId","_maximisedItem","getComponent","getFallbackComponent","init","_subWindowsCreated","_createSubWindows","document","readyState","body","ready","_creationTimeoutPassed","setTimeout","_adjustToWindowMode","_setContainer","dropTargetIndicator","transitionIndicator","updateSize","_create","_bindEvents","_adjustColumnsResponsive","emit","addReactChild","id","element","_reactChildMap","set","_reactChildren","values","removeReactChild","mapElem","get","delete","getReactChildren","width","height","callDownwards","destroy","window","off","tabDropPlaceholder","remove","eventHub","_dragSources","forEach","dragSource","_dragListener","createContentItem","parent","typeErrorMsg","contentItem","Object","keys","join","createPopout","configOrContentItem","parentId","indexInParent","configArray","isItem","self","child","isRoot","addId","Number","isNaN","indexOf","Array","windowLeft","screenX","screenLeft","windowTop","screenY","screenTop","offset","left","top","browserPopout","on","createDragSource","itemConfig","constrainDragToContainer","createDragSourceFromEvent","event","selectItem","_$silent","selectionEnabled","selectedItem","deselect","select","_$maximiseItem","_$minimiseItem","addClass","after","_maximisePlaceholder","prepend","removeClass","removeId","_$closeWindow","close","_$getArea","x","y","smallestSurface","Infinity","mathingArea","_itemAreas","area","x1","x2","y1","y2","surface","_$createRootItemAreas","areaSize","rootArea","areas","side","_$calculateItemAreas","allContentItems","_getAllContentItems","concat","header","_contentAreaDimensions","highlightArea","_$normalizeContentItem","contentItemOrConfig","isPlainObject","newContentItem","getWindow","closed","addChildren","_isFullPage","resize","clearTimeout","_resizeTimeoutId","windowConfigKey","JSON","parse","localStorage","getItem","removeItem","extend","nextNode","node","value","hasHeaders","headerHeight","popInButton","popin","click","title","append","html","offsetHeight","__glInstance","popout","margin","padding","overflow","errorMsg","getItemsById","toggleMaximise","closePopoutsOnUnload","_useResponsiveLayout","_updatingColumnsResponsive","minItemWidth","isRow","_firstLoad","columnCount","totalMinWidth","finalColumnCount","Math","max","floor","stackColumnCount","rootContentItem","firstStackContainer","_findAllStackContainers","_addChildContentItemsToContainer","responsiveMode","addChild","removeChild","stackContainers","_findAllStackContainersRecursive","isComponent"],"sources":["../src/LayoutManager.ts"],"sourcesContent":["import $ from 'jquery';\nimport React from 'react';\nimport lm from './base';\nimport { defaultConfig } from './config';\nimport type {\n ItemConfig,\n Config,\n ComponentConfig,\n ItemConfigType,\n ReactComponentConfig,\n} from './config';\nimport type { ItemContainer } from './container';\nimport {\n BrowserPopout,\n DragSource,\n DragSourceFromEvent,\n DropTargetIndicator,\n TransitionIndicator,\n} from './controls';\nimport { ConfigurationError } from './errors';\nimport {\n AbstractContentItem,\n ItemArea,\n isStack,\n Component,\n Root,\n RowOrColumn,\n Stack,\n} from './items';\nimport {\n minifyConfig,\n unminifyConfig,\n EventEmitter,\n EventHub,\n ReactComponentHandler,\n getQueryStringParam,\n getUniqueId,\n stripTags,\n} from './utils';\n\nexport type ComponentConstructor<\n C extends ComponentConfig | ReactComponentConfig = ComponentConfig\n> = {\n new (container: ItemContainer<C>, state: unknown): unknown;\n};\n\n/**\n * The main class that will be exposed as GoldenLayout.\n *\n * @param config\n * @param container Can be a jQuery selector string or a Dom element. Defaults to body\n */\nexport default class LayoutManager extends EventEmitter {\n /**\n * Hook that allows to access private classes\n */\n static __lm = lm;\n\n /**\n * Takes a GoldenLayout configuration object and\n * replaces its keys and values recursively with\n * one letter codes\n *\n * @param config A GoldenLayout config object\n * @returns minified config\n */\n static minifyConfig(config: Config): Record<string, unknown> {\n return minifyConfig(config);\n }\n\n /**\n * Takes a configuration Object that was previously minified\n * using minifyConfig and returns its original version\n *\n * @param minifiedConfig\n * @returns the original configuration\n */\n static unminifyConfig(config: Record<string, unknown>): Config {\n return unminifyConfig(config);\n }\n\n isInitialised = false;\n private _isFullPage = false;\n private _resizeTimeoutId: number | undefined;\n\n private _components: {\n [name: string]:\n | ComponentConstructor\n | ComponentConstructor<ReactComponentConfig>\n | React.Component\n | React.ForwardRefExoticComponent<any>;\n } = { 'lm-react-component': ReactComponentHandler };\n\n private _fallbackComponent?:\n | ComponentConstructor\n | React.ForwardRefExoticComponent<any>;\n private _itemAreas: ItemArea[] = [];\n private _maximisedItem: AbstractContentItem | null = null;\n private _maximisePlaceholder = $('<div class=\"lm_maximise_place\"></div>');\n private _creationTimeoutPassed = false;\n private _subWindowsCreated = false;\n private _dragSources: DragSource[] = [];\n private _updatingColumnsResponsive = false;\n private _firstLoad = true;\n private _reactChildMap = new Map<string, React.ReactNode>();\n private _reactChildren: React.ReactNode = null;\n\n width: number | null = null;\n height: number | null = null;\n root!: Root; // This will be created after init is called.\n openPopouts: BrowserPopout[] = [];\n selectedItem: AbstractContentItem | null = null;\n isSubWindow = false;\n eventHub = new EventHub(this);\n config: Config;\n container: JQuery<HTMLElement>;\n private _originalContainer: JQuery<HTMLElement> | HTMLElement | undefined;\n dropTargetIndicator: DropTargetIndicator | null = null;\n transitionIndicator: TransitionIndicator | null = null;\n tabDropPlaceholder = $('<div class=\"lm_drop_tab_placeholder\"></div>');\n\n private _typeToItem: {\n [type: string]: new (...args: any[]) => AbstractContentItem;\n };\n\n constructor(\n config: Config,\n container: JQuery<HTMLElement> | HTMLElement | undefined\n ) {\n super();\n\n this._onResize = this._onResize.bind(this);\n this._onUnload = this._onUnload.bind(this);\n this._windowBlur = this._windowBlur.bind(this);\n this._windowFocus = this._windowFocus.bind(this);\n\n this.config = this._createConfig(config);\n this._originalContainer = container;\n this.container = this._getContainer();\n\n if (this.isSubWindow) {\n $('body').css('visibility', 'hidden');\n }\n\n this._typeToItem = {\n column: RowOrColumn.bind(this, true),\n row: RowOrColumn.bind(this, false),\n stack: Stack,\n component: Component,\n };\n }\n\n /**\n * Register a component with the layout manager. If a configuration node\n * of type component is reached it will look up componentName and create the\n * associated component\n *\n * {\n *\t\ttype: \"component\",\n *\t\tcomponentName: \"EquityNewsFeed\",\n *\t\tcomponentState: { \"feedTopic\": \"us-bluechips\" }\n * }\n *\n * @param name\n * @param constructor\n * @returns cleanup function to deregister component\n */\n registerComponent(\n name: string,\n constructor:\n | ComponentConstructor\n | React.Component\n | React.ForwardRefExoticComponent<any>\n ) {\n if (\n typeof constructor !== 'function' &&\n (constructor == null ||\n constructor.render == null ||\n typeof constructor.render !== 'function')\n ) {\n throw new Error('Please register a constructor function');\n }\n\n if (this._components[name] !== undefined) {\n throw new Error('Component ' + name + ' is already registered');\n }\n\n this._components[name] = constructor;\n\n const cleanup = () => {\n if (this._components[name] === undefined) {\n throw new Error('Component ' + name + ' is not registered');\n }\n\n delete this._components[name];\n };\n\n return cleanup;\n }\n\n /**\n * Set a fallback component to be rendered in place of unregistered components\n * @param constructor\n */\n setFallbackComponent(\n constructor: ComponentConstructor | React.ForwardRefExoticComponent<any>\n ) {\n this._fallbackComponent = constructor;\n }\n\n /**\n * Creates a layout configuration object based on the the current state\n * @param root\n * @returns GoldenLayout configuration\n */\n toConfig(root?: AbstractContentItem) {\n if (this.isInitialised === false) {\n throw new Error(\"Can't create config, layout not yet initialised\");\n }\n\n if (root && !(root instanceof AbstractContentItem)) {\n throw new Error('Root must be a ContentItem');\n }\n\n /*\n * settings & labels\n */\n const config: Config = {\n settings: { ...this.config.settings },\n dimensions: { ...this.config.dimensions },\n labels: { ...this.config.labels },\n content: [],\n };\n\n /*\n * Content\n */\n const next = function (\n configNode: ComponentConfig & { [key: string]: unknown },\n item: AbstractContentItem & {\n config: Record<string, unknown>;\n }\n ) {\n for (let key in item.config) {\n if (key !== 'content') {\n configNode[key] = item.config[key];\n }\n }\n\n if (configNode.componentName === 'lm-react-component') {\n // We change the type in `createContentItem`, so change it back here\n configNode.type = 'react-component';\n }\n\n if (item.contentItems.length) {\n configNode.content = [];\n\n for (let i = 0; i < item.contentItems.length; i++) {\n configNode.content[i] = {} as ItemConfigType;\n next(\n configNode.content[i] as ComponentConfig & Record<string, unknown>,\n item.contentItems[i] as AbstractContentItem & {\n config: Record<string, unknown>;\n }\n );\n }\n }\n };\n\n if (root) {\n next(\n (config as unknown) as ComponentConfig & Record<string, unknown>,\n { contentItems: [root] } as AbstractContentItem & {\n config: Record<string, unknown>;\n }\n );\n } else {\n next(\n (config as unknown) as ComponentConfig & Record<string, unknown>,\n (this.root as unknown) as AbstractContentItem & {\n config: Record<string, unknown>;\n }\n );\n }\n\n /*\n * Retrieve config for subwindows\n */\n this._$reconcilePopoutWindows();\n config.openPopouts = [];\n for (let i = 0; i < this.openPopouts.length; i++) {\n config.openPopouts.push(this.openPopouts[i].toConfig());\n }\n\n /*\n * Add maximised item\n */\n config.maximisedItemId = this._maximisedItem ? '__glMaximised' : undefined;\n return config;\n }\n\n /**\n * Returns a previously registered component\n * @param name The name used\n */\n getComponent(name: string) {\n return this._components[name];\n }\n\n /**\n * Returns a fallback component to render in place of unregistered components\n *\n * @public\n *\n * @returns {Function}\n */\n getFallbackComponent() {\n return this._fallbackComponent;\n }\n\n /**\n * Creates the actual layout. Must be called after all initial components\n * are registered. Recurses through the configuration and sets up\n * the item tree.\n *\n * If called before the document is ready it adds itself as a listener\n * to the document.ready event\n */\n init() {\n /**\n * Create the popout windows straight away. If popouts are blocked\n * an error is thrown on the same 'thread' rather than a timeout and can\n * be caught. This also prevents any further initilisation from taking place.\n */\n if (this._subWindowsCreated === false) {\n this._createSubWindows();\n this._subWindowsCreated = true;\n }\n\n /**\n * If the document isn't ready yet, wait for it.\n */\n if (document.readyState === 'loading' || document.body === null) {\n $(document).ready(this.init.bind(this));\n return;\n }\n\n /**\n * If this is a subwindow, wait a few milliseconds for the original\n * page's js calls to be executed, then replace the bodies content\n * with GoldenLayout\n */\n if (this.isSubWindow === true && this._creationTimeoutPassed === false) {\n setTimeout(this.init.bind(this), 7);\n this._creationTimeoutPassed = true;\n return;\n }\n\n if (this.isSubWindow === true) {\n this._adjustToWindowMode();\n }\n\n this._setContainer();\n this.dropTargetIndicator = new DropTargetIndicator();\n this.transitionIndicator = new TransitionIndicator();\n this.updateSize();\n this._create(this.config);\n this._bindEvents();\n this.isInitialised = true;\n this._adjustColumnsResponsive();\n this.emit('initialised');\n }\n\n /**\n * Adds a react child to the layout manager\n * @param id Unique panel id\n * @param element The React element\n */\n addReactChild(id: string, element: React.ReactNode) {\n this._reactChildMap.set(id, element);\n this._reactChildren = [...this._reactChildMap.values()];\n this.emit('reactChildrenChanged');\n }\n\n /**\n * Removes a react child from the layout manager\n * Only removes if the elements for the panelId has not been replaced by a different element\n * @param id Unique panel id\n * @param element The React element\n */\n removeReactChild(id: string, element: React.ReactNode) {\n const mapElem = this._reactChildMap.get(id);\n if (mapElem === element) {\n // If an element was replaced it may be destroyed after the other is created\n // In that case, the new element would be removed\n // Make sure the element being removed is the current element associated with its id\n this._reactChildMap.delete(id);\n this._reactChildren = [...this._reactChildMap.values()];\n this.emit('reactChildrenChanged');\n }\n }\n\n /**\n * Gets the react children in the layout\n *\n * Used in @deephaven/dashboard to mount the react elements\n * inside the app's React tree\n *\n * @returns The react children to mount for this layout manager\n */\n getReactChildren() {\n return this._reactChildren;\n }\n\n /**\n * Updates the layout managers size\n * @param width width in pixels\n * @param height height in pixels\n */\n updateSize(width?: number, height?: number) {\n this.width = width ?? this.container.width() ?? 0;\n this.height = height ?? this.container.height() ?? 0;\n\n if (this.isInitialised === true) {\n this.root.callDownwards('setSize', [this.width, this.height]);\n\n if (this._maximisedItem) {\n this._maximisedItem.element.width(this.container.width() ?? 0);\n this._maximisedItem.element.height(this.container.height() ?? 0);\n this._maximisedItem.callDownwards('setSize');\n }\n\n this._adjustColumnsResponsive();\n }\n }\n\n /**\n * Destroys the LayoutManager instance itself as well as every ContentItem\n * within it. After this is called nothing should be left of the LayoutManager.\n */\n destroy() {\n if (this.isInitialised === false || !this.root) {\n return;\n }\n this._onUnload();\n $(window).off('resize', this._onResize);\n $(window).off('unload beforeunload', this._onUnload);\n $(window).off('blur.lm').off('focus.lm');\n this.root.callDownwards('_$destroy', [], true);\n this.root.contentItems = [];\n this.tabDropPlaceholder.remove();\n this.dropTargetIndicator?.destroy();\n this.transitionIndicator?.destroy();\n this.eventHub.destroy();\n\n this._dragSources.forEach(function (dragSource) {\n dragSource._dragListener.destroy();\n });\n this._dragSources = [];\n }\n\n /**\n * Recursively creates new item tree structures based on a provided\n * ItemConfiguration object\n *\n * @public\n * @param config ItemConfig\n * @param parent The item the newly created item should be a child of\n *\n * @returns Created item\n */\n createContentItem(\n config: Partial<ComponentConfig> & { type: ItemConfig['type'] },\n parent?: AbstractContentItem\n ) {\n var typeErrorMsg, contentItem;\n\n if (typeof config.type !== 'string') {\n throw new ConfigurationError(\"Missing parameter 'type'\", config);\n }\n\n if (config.type === 'react-component') {\n config.type = 'component';\n config.componentName = 'lm-react-component';\n }\n\n if (!this._typeToItem[config.type]) {\n typeErrorMsg =\n \"Unknown type '\" +\n config.type +\n \"'. \" +\n 'Valid types are ' +\n Object.keys(this._typeToItem).join(',');\n\n throw new ConfigurationError(typeErrorMsg);\n }\n\n /**\n * We add an additional stack around every component that's not within a stack anyways.\n */\n if (\n // If this is a component\n config.type === 'component' &&\n // and it's not already within a stack\n !(parent instanceof Stack) &&\n // and we have a parent\n !!parent &&\n // and it's not the topmost item in a new window\n !(this.isSubWindow === true && parent instanceof Root)\n ) {\n config = {\n type: 'stack',\n width: config.width,\n height: config.height,\n content: [config],\n };\n }\n\n contentItem = new this._typeToItem[config.type](this, config, parent);\n return contentItem;\n }\n\n /**\n\t * Creates a popout window with the specified content and dimensions\n\t *\n\t * @param configOrContentItem\n\t * @param dimensions A map with width, height, left and top\n\t * @param parentId the id of the element this item will be appended to\n\t * when popIn is called\n\t * @param indexInParent The position of this item within its parent element\n\n\t * @returns Created popout\n\t */\n createPopout(\n configOrContentItem:\n | ItemConfigType\n | AbstractContentItem\n | ItemConfigType[],\n dimensions?: { width: number; height: number; left: number; top: number },\n parentId?: string,\n indexInParent?: number\n ): BrowserPopout | undefined {\n let config = configOrContentItem;\n let configArray: ItemConfigType[] = [];\n const isItem = configOrContentItem instanceof AbstractContentItem;\n const self = this;\n\n if (isItem) {\n configArray = this.toConfig(configOrContentItem).content;\n parentId = getUniqueId();\n\n /**\n * If the item is the only component within a stack or for some\n * other reason the only child of its parent the parent will be destroyed\n * when the child is removed.\n *\n * In order to support this we move up the tree until we find something\n * that will remain after the item is being popped out\n */\n let parent = configOrContentItem.parent;\n let child = configOrContentItem;\n while (parent?.contentItems.length === 1 && !parent.isRoot) {\n child = parent;\n parent = parent.parent;\n }\n\n parent?.addId(parentId);\n if (indexInParent == undefined || Number.isNaN(indexInParent)) {\n indexInParent = parent?.contentItems.indexOf(child);\n }\n } else {\n if (!(configOrContentItem instanceof Array)) {\n configArray = [configOrContentItem];\n } else {\n configArray = configOrContentItem;\n }\n }\n\n if (!dimensions && isItem) {\n const windowLeft = window.screenX || window.screenLeft;\n const windowTop = window.screenY || window.screenTop;\n const offset = configOrContentItem.element.offset() ?? {\n left: 0,\n top: 0,\n };\n\n dimensions = {\n left: windowLeft + offset.left,\n top: windowTop + offset.top,\n width: configOrContentItem.element.width() ?? 0,\n height: configOrContentItem.element.height() ?? 0,\n };\n }\n\n if (!dimensions && !isItem) {\n dimensions = {\n left: window.screenX || window.screenLeft + 20,\n top: window.screenY || window.screenTop + 20,\n width: 500,\n height: 309,\n };\n }\n\n if (isItem) {\n configOrContentItem.remove();\n }\n\n if (!dimensions || !parentId || indexInParent === undefined) {\n return;\n }\n\n const browserPopout = new BrowserPopout(\n configArray,\n dimensions,\n parentId,\n indexInParent,\n this\n );\n\n browserPopout.on('initialised', function () {\n self.emit('windowOpened', browserPopout);\n });\n\n browserPopout.on('closed', function () {\n self._$reconcilePopoutWindows();\n });\n\n this.openPopouts.push(browserPopout);\n\n return browserPopout;\n }\n\n /**\n * Attaches DragListener to any given DOM element\n * and turns it into a way of creating new ContentItems\n * by 'dragging' the DOM element into the layout\n *\n * @param element\n * @param itemConfig for the new item to be created, or a function which will provide it\n */\n createDragSource(\n element: JQuery<HTMLElement>,\n itemConfig: ComponentConfig | (() => ComponentConfig)\n ) {\n this.config.settings.constrainDragToContainer = false;\n var dragSource = new DragSource(element, itemConfig, this);\n this._dragSources.push(dragSource);\n\n return dragSource;\n }\n\n /**\n * Create a new item in a dragging state, given a starting mouse event to act as the initial position\n *\n * @param itemConfig for the new item to be created, or a function which will provide it\n * @param event used as the starting position for the dragProxy\n */\n createDragSourceFromEvent(\n itemConfig: ItemConfig | (() => ItemConfig),\n event: JQuery.TriggeredEvent\n ) {\n this.config.settings.constrainDragToContainer = false;\n return new DragSourceFromEvent(itemConfig, this, event);\n }\n\n /**\n * Programmatically selects an item. This deselects\n * the currently selected item, selects the specified item\n * and emits a selectionChanged event\n *\n * @param item\n * @param _$silent Wheather to notify the item of its selection\n */\n selectItem(item: AbstractContentItem, _$silent?: boolean) {\n if (this.config.settings.selectionEnabled !== true) {\n throw new Error(\n 'Please set selectionEnabled to true to use this feature'\n );\n }\n\n if (item === this.selectedItem) {\n return;\n }\n\n if (this.selectedItem !== null) {\n this.selectedItem.deselect();\n }\n\n if (item && _$silent !== true) {\n item.select();\n }\n\n this.selectedItem = item;\n\n this.emit('selectionChanged', item);\n }\n\n /*************************\n * PACKAGE PRIVATE\n *************************/\n _$maximiseItem(contentItem: AbstractContentItem) {\n if (this._maximisedItem !== null) {\n this._$minimiseItem(this._maximisedItem);\n }\n this._maximisedItem = contentItem;\n this._maximisedItem.addId('__glMaximised');\n contentItem.element.addClass('lm_maximised');\n contentItem.element.after(this._maximisePlaceholder);\n this.root.element.prepend(contentItem.element);\n contentItem.element.width(this.container.width() ?? 0);\n contentItem.element.height(this.container.height() ?? 0);\n contentItem.callDownwards('setSize');\n this._maximisedItem.emit('maximised');\n this.emit('stateChanged');\n }\n\n _$minimiseItem(contentItem: AbstractContentItem) {\n contentItem.element.removeClass('lm_maximised');\n contentItem.removeId('__glMaximised');\n this._maximisePlaceholder.after(contentItem.element);\n this._maximisePlaceholder.remove();\n contentItem.parent?.callDownwards('setSize');\n this._maximisedItem = null;\n contentItem.emit('minimised');\n this.emit('stateChanged');\n }\n\n /**\n * This method is used to get around sandboxed iframe restrictions.\n * If 'allow-top-navigation' is not specified in the iframe's 'sandbox' attribute\n * (as is the case with codepens) the parent window is forbidden from calling certain\n * methods on the child, such as window.close() or setting document.location.href.\n *\n * This prevented GoldenLayout popouts from popping in in codepens. The fix is to call\n * _$closeWindow on the child window's gl instance which (after a timeout to disconnect\n * the invoking method from the close call) closes itself.\n */\n _$closeWindow() {\n window.setTimeout(function () {\n window.close();\n }, 1);\n }\n\n _$getArea(x: number, y: number) {\n let smallestSurface = Infinity;\n let mathingArea: ItemArea | null = null;\n\n for (let i = 0; i < this._itemAreas.length; i++) {\n const area = this._itemAreas[i];\n\n if (\n x > area.x1 &&\n x < area.x2 &&\n y > area.y1 &&\n y < area.y2 &&\n smallestSurface > area.surface\n ) {\n smallestSurface = area.surface;\n mathingArea = area;\n }\n }\n\n return mathingArea;\n }\n\n /**\n * Creates the drop zones at the edges of the screen\n */\n _$createRootItemAreas() {\n const areaSize = 50;\n const rootArea = { ...this.root._$getArea() };\n\n const areas = [\n {\n ...rootArea,\n side: 'left' as const,\n x2: rootArea.x1 + areaSize,\n },\n {\n ...rootArea,\n side: 'right' as const,\n x1: rootArea.x2 - areaSize,\n },\n {\n ...rootArea,\n side: 'top' as const,\n y2: rootArea.y1 + areaSize,\n },\n {\n ...rootArea,\n side: 'bottom' as const,\n y1: rootArea.y2 - areaSize,\n },\n ];\n\n areas.forEach(area => {\n area.surface = (area.x2 - area.x1) * (area.y2 - area.y1);\n });\n\n this._itemAreas.push(...areas);\n }\n\n _$calculateItemAreas() {\n const allContentItems = this._getAllContentItems();\n this._itemAreas = [];\n\n /**\n * If the last item is dragged out, highlight the entire container size to\n * allow to re-drop it. allContentItems[ 0 ] === this.root at this point\n *\n * Don't include root into the possible drop areas though otherwise since it\n * will used for every gap in the layout, e.g. splitters\n */\n if (allContentItems.length === 1) {\n this._itemAreas.push(this.root._$getArea());\n return;\n }\n this._$createRootItemAreas();\n\n for (let i = 0; i < allContentItems.length; i++) {\n const item = allContentItems[i];\n if (!isStack(item)) {\n continue;\n }\n\n const area = item._$getArea();\n\n if (area === null) {\n continue;\n } else if (area instanceof Array) {\n this._itemAreas = this._itemAreas.concat(area);\n } else {\n this._itemAreas.push(area);\n let header = {\n ...area,\n ...area.contentItem._contentAreaDimensions?.header.highlightArea,\n };\n header.surface = (header.x2 - header.x1) * (header.y2 - header.y1);\n this._itemAreas.push(header);\n }\n }\n }\n\n /**\n * Takes a contentItem or a configuration and optionally a parent\n * item and returns an initialised instance of the contentItem.\n * If the contentItem is a function, it is first called\n *\n * @param contentItemOrConfig\n * @param parent Only necessary when passing in config\n */\n _$normalizeContentItem(\n contentItemOrConfig:\n | { type: ItemConfig['type'] }\n | ItemConfigType\n | AbstractContentItem\n | (() => AbstractContentItem),\n parent?: AbstractContentItem\n ) {\n if (!contentItemOrConfig) {\n throw new Error('No content item defined');\n }\n\n if (typeof contentItemOrConfig === 'function') {\n contentItemOrConfig = contentItemOrConfig();\n }\n\n if (contentItemOrConfig instanceof AbstractContentItem) {\n return contentItemOrConfig;\n }\n\n if ($.isPlainObject(contentItemOrConfig) && contentItemOrConfig.type) {\n var newContentItem = this.createContentItem(contentItemOrConfig, parent);\n newContentItem.callDownwards('_$init');\n return newContentItem;\n } else {\n throw new Error('Invalid contentItem');\n }\n }\n\n /**\n * Iterates through the array of open popout windows and removes the ones\n * that are effectively closed. This is necessary due to the lack of reliably\n * listening for window.close / unload events in a cross browser compatible fashion.\n */\n _$reconcilePopoutWindows() {\n const openPopouts: BrowserPopout[] = [];\n\n for (let i = 0; i < this.openPopouts.length; i++) {\n if (this.openPopouts[i].getWindow()?.closed === false) {\n openPopouts.push(this.openPopouts[i]);\n } else {\n this.emit('windowClosed', this.openPopouts[i]);\n }\n }\n\n if (this.openPopouts.length !== openPopouts.length) {\n this.emit('stateChanged');\n this.openPopouts = openPopouts;\n }\n }\n\n /***************************\n * PRIVATE\n ***************************/\n /**\n * Returns a flattened array of all content items,\n * regardles of level or type\n * @return Flattened array of content items\n */\n _getAllContentItems() {\n const allContentItems: AbstractContentItem[] = [];\n\n const addChildren = (contentItem: AbstractContentItem) => {\n allContentItems.push(contentItem);\n\n if (contentItem.contentItems instanceof Array) {\n for (let i = 0; i < contentItem.contentItems.length; i++) {\n addChildren(contentItem.contentItems[i]);\n }\n }\n };\n\n addChildren(this.root);\n\n return allContentItems;\n }\n\n /**\n * Binds to DOM/BOM events on init\n */\n _bindEvents() {\n if (this._isFullPage) {\n $(window).resize(this._onResize);\n }\n $(window)\n .on('unload beforeunload', this._onUnload)\n .on('blur.lm', this._windowBlur)\n .on('focus.lm', this._windowFocus);\n }\n\n /**\n * Handles setting a class based on window focus, useful for focus indicators\n */\n _windowBlur() {\n this.root.element.addClass('lm_window_blur');\n }\n\n _windowFocus() {\n this.root.element.removeClass('lm_window_blur');\n }\n\n /**\n * Debounces resize events\n */\n _onResize() {\n clearTimeout(this._resizeTimeoutId);\n this._resizeTimeoutId = window.setTimeout(this.updateSize.bind(this), 100);\n }\n\n /**\n * Extends the default config with the user specific settings and applies\n * derivations. Please note that there's a seperate method (AbstractContentItem._extendItemNode)\n * that deals with the extension of item configs\n *\n * @param config\n * @returns config\n */\n _createConfig(config: Config): Config {\n var windowConfigKey = getQueryStringParam('gl-window');\n\n if (windowConfigKey) {\n this.isSubWindow = true;\n config = JSON.parse(localStorage.getItem(windowConfigKey) || '{}');\n config = unminifyConfig(config);\n localStorage.removeItem(windowConfigKey);\n }\n\n config = $.extend(true, {}, defaultConfig, config);\n\n var nextNode = function (node: Record<string, unknown>) {\n for (var key in node) {\n const value = node[key];\n if (key !== 'props' && typeof value === 'object' && value != null) {\n nextNode(value as Record<string, unknown>);\n } else if (key === 'type' && value === 'react-component') {\n node.type = 'component';\n node.componentName = 'lm-react-component';\n }\n }\n };\n\n nextNode(config);\n\n if (config.settings?.hasHeaders === false) {\n config.dimensions.headerHeight = 0;\n }\n\n return config;\n }\n\n /**\n * This is executed when GoldenLayout detects that it is run\n * within a previously opened popout window.\n */\n _adjustToWindowMode() {\n var popInButton = $(\n '<div class=\"lm_popin\" title=\"' +\n this.config.labels.popin +\n '\">' +\n '<div class=\"lm_icon\"></div>' +\n '<div class=\"lm_bg\"></div>' +\n '</div>'\n );\n\n popInButton.click(() => {\n this.emit('popIn');\n });\n\n document.title = stripTags(this.config.content[0].title ?? '');\n\n $('head').append($('body link, body style, template, .gl_keep'));\n\n this.container = $('body')\n .html('')\n .css('visibility', 'visible')\n .append(popInButton);\n\n /*\n * This seems a bit pointless, but actually causes a reflow/re-evaluation getting around\n * slickgrid's \"Cannot find stylesheet.\" bug in chrome\n */\n var x = document.body.offsetHeight; // jshint ignore:line\n\n /*\n * Expose this instance on the window object\n * to allow the opening window to interact with\n * it\n */\n (window as Window &\n typeof globalThis & { __glInstance: LayoutManager }).__glInstance = this;\n }\n\n /**\n * Creates Subwindows (if there are any). Throws an error\n * if popouts are blocked.\n */\n _createSubWindows() {\n if (!this.config.openPopouts) {\n return;\n }\n\n for (let i = 0; i < this.config.openPopouts.length; i++) {\n const popout = this.config.openPopouts[i];\n\n this.createPopout(\n popout.content,\n popout.dimensions,\n popout.parentId,\n popout.indexInParent\n );\n }\n }\n\n _getContainer() {\n const container = this._originalContainer\n ? $(this._originalContainer)\n : $('body');\n\n if (container.length === 0) {\n throw new Error('GoldenLayout container not found');\n }\n\n if (container.length > 1) {\n throw new Error('GoldenLayout more than one container element specified');\n }\n\n return container;\n }\n\n /**\n * Determines what element the layout will be created in\n */\n _setContainer() {\n const container = this._getContainer();\n\n if (container[0] === document.body) {\n this._isFullPage = true;\n\n $('html, body').css({\n height: '100%',\n margin: 0,\n padding: 0,\n overflow: 'hidden',\n });\n }\n\n this.container = container;\n }\n\n /**\n * Kicks of the initial, recursive creation chain\n *\n * @param config GoldenLayout Config\n */\n _create(config: Config) {\n var errorMsg;\n\n if (!(config.content instanceof Array)) {\n if (config.content === undefined) {\n errorMsg = \"Missing setting 'content' on top level of configuration\";\n } else {\n errorMsg = \"Configuration parameter 'content' must be an array\";\n }\n\n throw new ConfigurationError(errorMsg, config);\n }\n\n if (config.content.length > 1) {\n errorMsg = \"Top level content can't contain more then one element.\";\n throw new ConfigurationError(errorMsg, config);\n }\n\n this.root = new Root(this, { content: config.content }, this.container);\n this.root.callDownwards('_$init');\n\n if (config.maximisedItemId === '__glMaximised') {\n this.root.getItemsById(config.maximisedItemId)[0].toggleMaximise();\n }\n }\n\n /**\n * Called when the window is closed or the user navigates away\n * from the page\n */\n _onUnload() {\n if (this.config.settings.closePopoutsOnUnload === true) {\n for (var i = 0; i < this.openPopouts.length; i++) {\n this.openPopouts[i].close();\n }\n }\n }\n\n /**\n * Adjusts the number of columns to be lower to fit the screen and still maintain minItemWidth.\n */\n _adjustColumnsResponsive() {\n // If there is no min width set, or not content items, do nothing.\n if (\n !this._useResponsiveLayout() ||\n this._updatingColumnsResponsive ||\n !this.config.dimensions ||\n !this.config.dimensions.minItemWidth ||\n this.root.contentItems.length === 0 ||\n !this.root.contentItems[0].isRow\n ) {\n this._firstLoad = false;\n return;\n }\n\n this._firstLoad = false;\n\n // If there is only one column, do nothing.\n var columnCount = this.root.contentItems[0].contentItems.length;\n if (columnCount <= 1) {\n return;\n }\n\n // If they all still fit, do nothing.\n var minItemWidth = this.config.dimensions.minItemWidth;\n var totalMinWidth = columnCount * minItemWidth;\n if (this.width == null || totalMinWidth <= this.width) {\n return;\n }\n\n // Prevent updates while it is already happening.\n this._updatingColumnsResponsive = true;\n\n // Figure out how many columns to stack, and put them all in the first stack container.\n var finalColumnCount = Math.max(Math.floor(this.width / minItemWidth), 1);\n var stackColumnCount = columnCount - finalColumnCount;\n\n var rootContentItem = this.root.contentItems[0];\n var firstStackContainer = this._findAllStackContainers()[0];\n for (var i = 0; i < stackColumnCount; i++) {\n // Stack from right.\n var column =\n rootContentItem.contentItems[rootContentItem.contentItems.length - 1];\n this._addChildContentItemsToContainer(firstStackContainer, column);\n }\n\n this._updatingColumnsResponsive = false;\n }\n\n /**\n * Determines if responsive layout should be used.\n *\n * @returns True if responsive layout should be used; otherwise false.\n */\n _useResponsiveLayout() {\n return (\n this.config.settings &&\n (this.config.settings.responsiveMode == 'always' ||\n (this.config.settings.responsiveMode == 'onload' && this._firstLoad))\n );\n }\n\n /**\n * Adds all children of a node to another container recursively.\n * @param container - Container to add child content items to.\n * @param node - Node to search for content items.\n */\n _addChildContentItemsToContainer(\n container: AbstractContentItem,\n node: AbstractContentItem\n ) {\n if (node.type === 'stack') {\n node.contentItems.forEach(function (item) {\n container.addChild(item);\n node.removeChild(item, true);\n });\n } else {\n node.contentItems.forEach(item => {\n this._addChildContentItemsToContainer(container, item);\n });\n }\n }\n\n /**\n * Finds all the stack containers.\n * @returns The found stack containers.\n */\n _findAllStackContainers() {\n const stackContainers: Stack[] = [];\n this._findAllStackContainersRecursive(stackContainers, this.root);\n\n return stackContainers;\n }\n\n /**\n * Finds all the stack containers.\n *\n * @param stackContainers Set of containers to populate.\n * @param node Current node to process.\n */\n _findAllStackContainersRecursive(\n stackContainers: Stack[],\n node: AbstractContentItem\n ) {\n node.contentItems.forEach(item => {\n if (isStack(item)) {\n stackContainers.push(item);\n } else if (!item.isComponent) {\n this._findAllStackContainersRecursive(stackContainers, item);\n }\n });\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"LayoutManager.js","names":["$","lm","defaultConfig","BrowserPopout","DragSource","DragSourceFromEvent","DropTargetIndicator","ConfigurationError","AbstractContentItem","isStack","Component","Root","RowOrColumn","Stack","minifyConfig","unminifyConfig","EventEmitter","EventHub","ReactComponentHandler","getQueryStringParam","getUniqueId","stripTags","LayoutManager","config","constructor","container","Map","_onResize","bind","_onUnload","_windowBlur","_windowFocus","_createConfig","_originalContainer","_getContainer","isSubWindow","css","_typeToItem","column","row","stack","component","registerComponent","name","render","Error","_components","undefined","cleanup","setFallbackComponent","_fallbackComponent","toConfig","root","isInitialised","settings","dimensions","labels","content","next","configNode","item","key","componentName","type","contentItems","length","i","_$reconcilePopoutWindows","openPopouts","push","maximisedItemId","_maximisedItem","getComponent","getFallbackComponent","init","_subWindowsCreated","_createSubWindows","document","readyState","body","ready","_creationTimeoutPassed","setTimeout","_adjustToWindowMode","_setContainer","dropTargetIndicator","updateSize","_create","_bindEvents","_adjustColumnsResponsive","emit","addReactChild","id","element","_reactChildMap","set","_reactChildren","values","removeReactChild","mapElem","get","delete","getReactChildren","width","height","callDownwards","destroy","window","off","tabDropPlaceholder","remove","eventHub","_dragSources","forEach","dragSource","_dragListener","createContentItem","parent","typeErrorMsg","contentItem","Object","keys","join","createPopout","configOrContentItem","parentId","indexInParent","configArray","isItem","self","child","isRoot","addId","Number","isNaN","indexOf","Array","windowLeft","screenX","screenLeft","windowTop","screenY","screenTop","offset","left","top","browserPopout","on","createDragSource","itemConfig","constrainDragToContainer","createDragSourceFromEvent","event","selectItem","_$silent","selectionEnabled","selectedItem","deselect","select","_$maximiseItem","_$minimiseItem","addClass","after","_maximisePlaceholder","prepend","removeClass","removeId","_$closeWindow","close","_$getArea","x","y","smallestSurface","Infinity","mathingArea","_itemAreas","area","x1","x2","y1","y2","surface","_$createRootItemAreas","areaSize","rootArea","areas","side","_$calculateItemAreas","allContentItems","_getAllContentItems","concat","header","_contentAreaDimensions","highlightArea","_$normalizeContentItem","contentItemOrConfig","isPlainObject","newContentItem","getWindow","closed","addChildren","_isFullPage","resize","clearTimeout","_resizeTimeoutId","windowConfigKey","JSON","parse","localStorage","getItem","removeItem","extend","nextNode","node","value","hasHeaders","headerHeight","popInButton","popin","click","title","append","html","offsetHeight","__glInstance","popout","margin","padding","overflow","errorMsg","getItemsById","toggleMaximise","closePopoutsOnUnload","_useResponsiveLayout","_updatingColumnsResponsive","minItemWidth","isRow","_firstLoad","columnCount","totalMinWidth","finalColumnCount","Math","max","floor","stackColumnCount","rootContentItem","firstStackContainer","_findAllStackContainers","_addChildContentItemsToContainer","responsiveMode","addChild","removeChild","stackContainers","_findAllStackContainersRecursive","isComponent"],"sources":["../src/LayoutManager.ts"],"sourcesContent":["import $ from 'jquery';\nimport React from 'react';\nimport lm from './base';\nimport { defaultConfig } from './config';\nimport type {\n ItemConfig,\n Config,\n ComponentConfig,\n ItemConfigType,\n ReactComponentConfig,\n} from './config';\nimport type { ItemContainer } from './container';\nimport {\n BrowserPopout,\n DragSource,\n DragSourceFromEvent,\n DropTargetIndicator,\n} from './controls';\nimport { ConfigurationError } from './errors';\nimport {\n AbstractContentItem,\n ItemArea,\n isStack,\n Component,\n Root,\n RowOrColumn,\n Stack,\n} from './items';\nimport {\n minifyConfig,\n unminifyConfig,\n EventEmitter,\n EventHub,\n ReactComponentHandler,\n getQueryStringParam,\n getUniqueId,\n stripTags,\n} from './utils';\n\nexport type ComponentConstructor<\n C extends ComponentConfig | ReactComponentConfig = ComponentConfig\n> = {\n new (container: ItemContainer<C>, state: unknown): unknown;\n};\n\n/**\n * The main class that will be exposed as GoldenLayout.\n *\n * @param config\n * @param container Can be a jQuery selector string or a Dom element. Defaults to body\n */\nexport default class LayoutManager extends EventEmitter {\n /**\n * Hook that allows to access private classes\n */\n static __lm = lm;\n\n /**\n * Takes a GoldenLayout configuration object and\n * replaces its keys and values recursively with\n * one letter codes\n *\n * @param config A GoldenLayout config object\n * @returns minified config\n */\n static minifyConfig(config: Config): Record<string, unknown> {\n return minifyConfig(config);\n }\n\n /**\n * Takes a configuration Object that was previously minified\n * using minifyConfig and returns its original version\n *\n * @param minifiedConfig\n * @returns the original configuration\n */\n static unminifyConfig(config: Record<string, unknown>): Config {\n return unminifyConfig(config);\n }\n\n isInitialised = false;\n private _isFullPage = false;\n private _resizeTimeoutId: number | undefined;\n\n private _components: {\n [name: string]:\n | ComponentConstructor\n | ComponentConstructor<ReactComponentConfig>\n | React.Component\n | React.ForwardRefExoticComponent<any>;\n } = { 'lm-react-component': ReactComponentHandler };\n\n private _fallbackComponent?:\n | ComponentConstructor\n | React.ForwardRefExoticComponent<any>;\n private _itemAreas: ItemArea[] = [];\n private _maximisedItem: AbstractContentItem | null = null;\n private _maximisePlaceholder = $('<div class=\"lm_maximise_place\"></div>');\n private _creationTimeoutPassed = false;\n private _subWindowsCreated = false;\n private _dragSources: DragSource[] = [];\n private _updatingColumnsResponsive = false;\n private _firstLoad = true;\n private _reactChildMap = new Map<string, React.ReactNode>();\n private _reactChildren: React.ReactNode = null;\n\n width: number | null = null;\n height: number | null = null;\n root!: Root; // This will be created after init is called.\n openPopouts: BrowserPopout[] = [];\n selectedItem: AbstractContentItem | null = null;\n isSubWindow = false;\n eventHub = new EventHub(this);\n config: Config;\n container: JQuery<HTMLElement>;\n private _originalContainer: JQuery<HTMLElement> | HTMLElement | undefined;\n dropTargetIndicator: DropTargetIndicator | null = null;\n tabDropPlaceholder = $('<div class=\"lm_drop_tab_placeholder\"></div>');\n\n private _typeToItem: {\n [type: string]: new (...args: any[]) => AbstractContentItem;\n };\n\n constructor(\n config: Config,\n container: JQuery<HTMLElement> | HTMLElement | undefined\n ) {\n super();\n\n this._onResize = this._onResize.bind(this);\n this._onUnload = this._onUnload.bind(this);\n this._windowBlur = this._windowBlur.bind(this);\n this._windowFocus = this._windowFocus.bind(this);\n\n this.config = this._createConfig(config);\n this._originalContainer = container;\n this.container = this._getContainer();\n\n if (this.isSubWindow) {\n $('body').css('visibility', 'hidden');\n }\n\n this._typeToItem = {\n column: RowOrColumn.bind(this, true),\n row: RowOrColumn.bind(this, false),\n stack: Stack,\n component: Component,\n };\n }\n\n /**\n * Register a component with the layout manager. If a configuration node\n * of type component is reached it will look up componentName and create the\n * associated component\n *\n * {\n *\t\ttype: \"component\",\n *\t\tcomponentName: \"EquityNewsFeed\",\n *\t\tcomponentState: { \"feedTopic\": \"us-bluechips\" }\n * }\n *\n * @param name\n * @param constructor\n * @returns cleanup function to deregister component\n */\n registerComponent(\n name: string,\n constructor:\n | ComponentConstructor\n | React.Component\n | React.ForwardRefExoticComponent<any>\n ) {\n if (\n typeof constructor !== 'function' &&\n (constructor == null ||\n constructor.render == null ||\n typeof constructor.render !== 'function')\n ) {\n throw new Error('Please register a constructor function');\n }\n\n if (this._components[name] !== undefined) {\n throw new Error('Component ' + name + ' is already registered');\n }\n\n this._components[name] = constructor;\n\n const cleanup = () => {\n if (this._components[name] === undefined) {\n throw new Error('Component ' + name + ' is not registered');\n }\n\n delete this._components[name];\n };\n\n return cleanup;\n }\n\n /**\n * Set a fallback component to be rendered in place of unregistered components\n * @param constructor\n */\n setFallbackComponent(\n constructor: ComponentConstructor | React.ForwardRefExoticComponent<any>\n ) {\n this._fallbackComponent = constructor;\n }\n\n /**\n * Creates a layout configuration object based on the the current state\n * @param root\n * @returns GoldenLayout configuration\n */\n toConfig(root?: AbstractContentItem) {\n if (this.isInitialised === false) {\n throw new Error(\"Can't create config, layout not yet initialised\");\n }\n\n if (root && !(root instanceof AbstractContentItem)) {\n throw new Error('Root must be a ContentItem');\n }\n\n /*\n * settings & labels\n */\n const config: Config = {\n settings: { ...this.config.settings },\n dimensions: { ...this.config.dimensions },\n labels: { ...this.config.labels },\n content: [],\n };\n\n /*\n * Content\n */\n const next = function (\n configNode: ComponentConfig & { [key: string]: unknown },\n item: AbstractContentItem & {\n config: Record<string, unknown>;\n }\n ) {\n for (let key in item.config) {\n if (key !== 'content') {\n configNode[key] = item.config[key];\n }\n }\n\n if (configNode.componentName === 'lm-react-component') {\n // We change the type in `createContentItem`, so change it back here\n configNode.type = 'react-component';\n }\n\n if (item.contentItems.length) {\n configNode.content = [];\n\n for (let i = 0; i < item.contentItems.length; i++) {\n configNode.content[i] = {} as ItemConfigType;\n next(\n configNode.content[i] as ComponentConfig & Record<string, unknown>,\n item.contentItems[i] as AbstractContentItem & {\n config: Record<string, unknown>;\n }\n );\n }\n }\n };\n\n if (root) {\n next(\n (config as unknown) as ComponentConfig & Record<string, unknown>,\n { contentItems: [root] } as AbstractContentItem & {\n config: Record<string, unknown>;\n }\n );\n } else {\n next(\n (config as unknown) as ComponentConfig & Record<string, unknown>,\n (this.root as unknown) as AbstractContentItem & {\n config: Record<string, unknown>;\n }\n );\n }\n\n /*\n * Retrieve config for subwindows\n */\n this._$reconcilePopoutWindows();\n config.openPopouts = [];\n for (let i = 0; i < this.openPopouts.length; i++) {\n config.openPopouts.push(this.openPopouts[i].toConfig());\n }\n\n /*\n * Add maximised item\n */\n config.maximisedItemId = this._maximisedItem ? '__glMaximised' : undefined;\n return config;\n }\n\n /**\n * Returns a previously registered component\n * @param name The name used\n */\n getComponent(name: string) {\n return this._components[name];\n }\n\n /**\n * Returns a fallback component to render in place of unregistered components\n *\n * @public\n *\n * @returns {Function}\n */\n getFallbackComponent() {\n return this._fallbackComponent;\n }\n\n /**\n * Creates the actual layout. Must be called after all initial components\n * are registered. Recurses through the configuration and sets up\n * the item tree.\n *\n * If called before the document is ready it adds itself as a listener\n * to the document.ready event\n */\n init() {\n /**\n * Create the popout windows straight away. If popouts are blocked\n * an error is thrown on the same 'thread' rather than a timeout and can\n * be caught. This also prevents any further initilisation from taking place.\n */\n if (this._subWindowsCreated === false) {\n this._createSubWindows();\n this._subWindowsCreated = true;\n }\n\n /**\n * If the document isn't ready yet, wait for it.\n */\n if (document.readyState === 'loading' || document.body === null) {\n $(document).ready(this.init.bind(this));\n return;\n }\n\n /**\n * If this is a subwindow, wait a few milliseconds for the original\n * page's js calls to be executed, then replace the bodies content\n * with GoldenLayout\n */\n if (this.isSubWindow === true && this._creationTimeoutPassed === false) {\n setTimeout(this.init.bind(this), 7);\n this._creationTimeoutPassed = true;\n return;\n }\n\n if (this.isSubWindow === true) {\n this._adjustToWindowMode();\n }\n\n this._setContainer();\n this.dropTargetIndicator = new DropTargetIndicator();\n this.updateSize();\n this._create(this.config);\n this._bindEvents();\n this.isInitialised = true;\n this._adjustColumnsResponsive();\n this.emit('initialised');\n }\n\n /**\n * Adds a react child to the layout manager\n * @param id Unique panel id\n * @param element The React element\n */\n addReactChild(id: string, element: React.ReactNode) {\n this._reactChildMap.set(id, element);\n this._reactChildren = [...this._reactChildMap.values()];\n this.emit('reactChildrenChanged');\n }\n\n /**\n * Removes a react child from the layout manager\n * Only removes if the elements for the panelId has not been replaced by a different element\n * @param id Unique panel id\n * @param element The React element\n */\n removeReactChild(id: string, element: React.ReactNode) {\n const mapElem = this._reactChildMap.get(id);\n if (mapElem === element) {\n // If an element was replaced it may be destroyed after the other is created\n // In that case, the new element would be removed\n // Make sure the element being removed is the current element associated with its id\n this._reactChildMap.delete(id);\n this._reactChildren = [...this._reactChildMap.values()];\n this.emit('reactChildrenChanged');\n }\n }\n\n /**\n * Gets the react children in the layout\n *\n * Used in @deephaven/dashboard to mount the react elements\n * inside the app's React tree\n *\n * @returns The react children to mount for this layout manager\n */\n getReactChildren() {\n return this._reactChildren;\n }\n\n /**\n * Updates the layout managers size\n * @param width width in pixels\n * @param height height in pixels\n */\n updateSize(width?: number, height?: number) {\n this.width = width ?? this.container.width() ?? 0;\n this.height = height ?? this.container.height() ?? 0;\n\n if (this.isInitialised === true) {\n this.root.callDownwards('setSize', [this.width, this.height]);\n\n if (this._maximisedItem) {\n this._maximisedItem.element.width(this.container.width() ?? 0);\n this._maximisedItem.element.height(this.container.height() ?? 0);\n this._maximisedItem.callDownwards('setSize');\n }\n\n this._adjustColumnsResponsive();\n }\n }\n\n /**\n * Destroys the LayoutManager instance itself as well as every ContentItem\n * within it. After this is called nothing should be left of the LayoutManager.\n */\n destroy() {\n if (this.isInitialised === false || !this.root) {\n return;\n }\n this._onUnload();\n $(window).off('resize', this._onResize);\n $(window).off('unload beforeunload', this._onUnload);\n $(window).off('blur.lm').off('focus.lm');\n this.root.callDownwards('_$destroy', [], true);\n this.root.contentItems = [];\n this.tabDropPlaceholder.remove();\n this.dropTargetIndicator?.destroy();\n this.eventHub.destroy();\n\n this._dragSources.forEach(function (dragSource) {\n dragSource._dragListener.destroy();\n });\n this._dragSources = [];\n }\n\n /**\n * Recursively creates new item tree structures based on a provided\n * ItemConfiguration object\n *\n * @public\n * @param config ItemConfig\n * @param parent The item the newly created item should be a child of\n *\n * @returns Created item\n */\n createContentItem(\n config: Partial<ComponentConfig> & { type: ItemConfig['type'] },\n parent?: AbstractContentItem\n ) {\n var typeErrorMsg, contentItem;\n\n if (typeof config.type !== 'string') {\n throw new ConfigurationError(\"Missing parameter 'type'\", config);\n }\n\n if (config.type === 'react-component') {\n config.type = 'component';\n config.componentName = 'lm-react-component';\n }\n\n if (!this._typeToItem[config.type]) {\n typeErrorMsg =\n \"Unknown type '\" +\n config.type +\n \"'. \" +\n 'Valid types are ' +\n Object.keys(this._typeToItem).join(',');\n\n throw new ConfigurationError(typeErrorMsg);\n }\n\n /**\n * We add an additional stack around every component that's not within a stack anyways.\n */\n if (\n // If this is a component\n config.type === 'component' &&\n // and it's not already within a stack\n !(parent instanceof Stack) &&\n // and we have a parent\n !!parent &&\n // and it's not the topmost item in a new window\n !(this.isSubWindow === true && parent instanceof Root)\n ) {\n config = {\n type: 'stack',\n width: config.width,\n height: config.height,\n content: [config],\n };\n }\n\n contentItem = new this._typeToItem[config.type](this, config, parent);\n return contentItem;\n }\n\n /**\n\t * Creates a popout window with the specified content and dimensions\n\t *\n\t * @param configOrContentItem\n\t * @param dimensions A map with width, height, left and top\n\t * @param parentId the id of the element this item will be appended to\n\t * when popIn is called\n\t * @param indexInParent The position of this item within its parent element\n\n\t * @returns Created popout\n\t */\n createPopout(\n configOrContentItem:\n | ItemConfigType\n | AbstractContentItem\n | ItemConfigType[],\n dimensions?: { width: number; height: number; left: number; top: number },\n parentId?: string,\n indexInParent?: number\n ): BrowserPopout | undefined {\n let config = configOrContentItem;\n let configArray: ItemConfigType[] = [];\n const isItem = configOrContentItem instanceof AbstractContentItem;\n const self = this;\n\n if (isItem) {\n configArray = this.toConfig(configOrContentItem).content;\n parentId = getUniqueId();\n\n /**\n * If the item is the only component within a stack or for some\n * other reason the only child of its parent the parent will be destroyed\n * when the child is removed.\n *\n * In order to support this we move up the tree until we find something\n * that will remain after the item is being popped out\n */\n let parent = configOrContentItem.parent;\n let child = configOrContentItem;\n while (parent?.contentItems.length === 1 && !parent.isRoot) {\n child = parent;\n parent = parent.parent;\n }\n\n parent?.addId(parentId);\n if (indexInParent == undefined || Number.isNaN(indexInParent)) {\n indexInParent = parent?.contentItems.indexOf(child);\n }\n } else {\n if (!(configOrContentItem instanceof Array)) {\n configArray = [configOrContentItem];\n } else {\n configArray = configOrContentItem;\n }\n }\n\n if (!dimensions && isItem) {\n const windowLeft = window.screenX || window.screenLeft;\n const windowTop = window.screenY || window.screenTop;\n const offset = configOrContentItem.element.offset() ?? {\n left: 0,\n top: 0,\n };\n\n dimensions = {\n left: windowLeft + offset.left,\n top: windowTop + offset.top,\n width: configOrContentItem.element.width() ?? 0,\n height: configOrContentItem.element.height() ?? 0,\n };\n }\n\n if (!dimensions && !isItem) {\n dimensions = {\n left: window.screenX || window.screenLeft + 20,\n top: window.screenY || window.screenTop + 20,\n width: 500,\n height: 309,\n };\n }\n\n if (isItem) {\n configOrContentItem.remove();\n }\n\n if (!dimensions || !parentId || indexInParent === undefined) {\n return;\n }\n\n const browserPopout = new BrowserPopout(\n configArray,\n dimensions,\n parentId,\n indexInParent,\n this\n );\n\n browserPopout.on('initialised', function () {\n self.emit('windowOpened', browserPopout);\n });\n\n browserPopout.on('closed', function () {\n self._$reconcilePopoutWindows();\n });\n\n this.openPopouts.push(browserPopout);\n\n return browserPopout;\n }\n\n /**\n * Attaches DragListener to any given DOM element\n * and turns it into a way of creating new ContentItems\n * by 'dragging' the DOM element into the layout\n *\n * @param element\n * @param itemConfig for the new item to be created, or a function which will provide it\n */\n createDragSource(\n element: JQuery<HTMLElement>,\n itemConfig: ComponentConfig | (() => ComponentConfig)\n ) {\n this.config.settings.constrainDragToContainer = false;\n var dragSource = new DragSource(element, itemConfig, this);\n this._dragSources.push(dragSource);\n\n return dragSource;\n }\n\n /**\n * Create a new item in a dragging state, given a starting mouse event to act as the initial position\n *\n * @param itemConfig for the new item to be created, or a function which will provide it\n * @param event used as the starting position for the dragProxy\n */\n createDragSourceFromEvent(\n itemConfig: ItemConfig | (() => ItemConfig),\n event: JQuery.TriggeredEvent\n ) {\n this.config.settings.constrainDragToContainer = false;\n return new DragSourceFromEvent(itemConfig, this, event);\n }\n\n /**\n * Programmatically selects an item. This deselects\n * the currently selected item, selects the specified item\n * and emits a selectionChanged event\n *\n * @param item\n * @param _$silent Wheather to notify the item of its selection\n */\n selectItem(item: AbstractContentItem, _$silent?: boolean) {\n if (this.config.settings.selectionEnabled !== true) {\n throw new Error(\n 'Please set selectionEnabled to true to use this feature'\n );\n }\n\n if (item === this.selectedItem) {\n return;\n }\n\n if (this.selectedItem !== null) {\n this.selectedItem.deselect();\n }\n\n if (item && _$silent !== true) {\n item.select();\n }\n\n this.selectedItem = item;\n\n this.emit('selectionChanged', item);\n }\n\n /*************************\n * PACKAGE PRIVATE\n *************************/\n _$maximiseItem(contentItem: AbstractContentItem) {\n if (this._maximisedItem !== null) {\n this._$minimiseItem(this._maximisedItem);\n }\n this._maximisedItem = contentItem;\n this._maximisedItem.addId('__glMaximised');\n contentItem.element.addClass('lm_maximised');\n contentItem.element.after(this._maximisePlaceholder);\n this.root.element.prepend(contentItem.element);\n contentItem.element.width(this.container.width() ?? 0);\n contentItem.element.height(this.container.height() ?? 0);\n contentItem.callDownwards('setSize');\n this._maximisedItem.emit('maximised');\n this.emit('stateChanged');\n }\n\n _$minimiseItem(contentItem: AbstractContentItem) {\n contentItem.element.removeClass('lm_maximised');\n contentItem.removeId('__glMaximised');\n this._maximisePlaceholder.after(contentItem.element);\n this._maximisePlaceholder.remove();\n contentItem.parent?.callDownwards('setSize');\n this._maximisedItem = null;\n contentItem.emit('minimised');\n this.emit('stateChanged');\n }\n\n /**\n * This method is used to get around sandboxed iframe restrictions.\n * If 'allow-top-navigation' is not specified in the iframe's 'sandbox' attribute\n * (as is the case with codepens) the parent window is forbidden from calling certain\n * methods on the child, such as window.close() or setting document.location.href.\n *\n * This prevented GoldenLayout popouts from popping in in codepens. The fix is to call\n * _$closeWindow on the child window's gl instance which (after a timeout to disconnect\n * the invoking method from the close call) closes itself.\n */\n _$closeWindow() {\n window.setTimeout(function () {\n window.close();\n }, 1);\n }\n\n _$getArea(x: number, y: number) {\n let smallestSurface = Infinity;\n let mathingArea: ItemArea | null = null;\n\n for (let i = 0; i < this._itemAreas.length; i++) {\n const area = this._itemAreas[i];\n\n if (\n x > area.x1 &&\n x < area.x2 &&\n y > area.y1 &&\n y < area.y2 &&\n smallestSurface > area.surface\n ) {\n smallestSurface = area.surface;\n mathingArea = area;\n }\n }\n\n return mathingArea;\n }\n\n /**\n * Creates the drop zones at the edges of the screen\n */\n _$createRootItemAreas() {\n const areaSize = 50;\n const rootArea = { ...this.root._$getArea() };\n\n const areas = [\n {\n ...rootArea,\n side: 'left' as const,\n x2: rootArea.x1 + areaSize,\n },\n {\n ...rootArea,\n side: 'right' as const,\n x1: rootArea.x2 - areaSize,\n },\n {\n ...rootArea,\n side: 'top' as const,\n y2: rootArea.y1 + areaSize,\n },\n {\n ...rootArea,\n side: 'bottom' as const,\n y1: rootArea.y2 - areaSize,\n },\n ];\n\n areas.forEach(area => {\n area.surface = (area.x2 - area.x1) * (area.y2 - area.y1);\n });\n\n this._itemAreas.push(...areas);\n }\n\n _$calculateItemAreas() {\n const allContentItems = this._getAllContentItems();\n this._itemAreas = [];\n\n /**\n * If the last item is dragged out, highlight the entire container size to\n * allow to re-drop it. allContentItems[ 0 ] === this.root at this point\n *\n * Don't include root into the possible drop areas though otherwise since it\n * will used for every gap in the layout, e.g. splitters\n */\n if (allContentItems.length === 1) {\n this._itemAreas.push(this.root._$getArea());\n return;\n }\n this._$createRootItemAreas();\n\n for (let i = 0; i < allContentItems.length; i++) {\n const item = allContentItems[i];\n if (!isStack(item)) {\n continue;\n }\n\n const area = item._$getArea();\n\n if (area === null) {\n continue;\n } else if (area instanceof Array) {\n this._itemAreas = this._itemAreas.concat(area);\n } else {\n this._itemAreas.push(area);\n let header = {\n ...area,\n ...area.contentItem._contentAreaDimensions?.header.highlightArea,\n };\n header.surface = (header.x2 - header.x1) * (header.y2 - header.y1);\n this._itemAreas.push(header);\n }\n }\n }\n\n /**\n * Takes a contentItem or a configuration and optionally a parent\n * item and returns an initialised instance of the contentItem.\n * If the contentItem is a function, it is first called\n *\n * @param contentItemOrConfig\n * @param parent Only necessary when passing in config\n */\n _$normalizeContentItem(\n contentItemOrConfig:\n | { type: ItemConfig['type'] }\n | ItemConfigType\n | AbstractContentItem\n | (() => AbstractContentItem),\n parent?: AbstractContentItem\n ) {\n if (!contentItemOrConfig) {\n throw new Error('No content item defined');\n }\n\n if (typeof contentItemOrConfig === 'function') {\n contentItemOrConfig = contentItemOrConfig();\n }\n\n if (contentItemOrConfig instanceof AbstractContentItem) {\n return contentItemOrConfig;\n }\n\n if ($.isPlainObject(contentItemOrConfig) && contentItemOrConfig.type) {\n var newContentItem = this.createContentItem(contentItemOrConfig, parent);\n newContentItem.callDownwards('_$init');\n return newContentItem;\n } else {\n throw new Error('Invalid contentItem');\n }\n }\n\n /**\n * Iterates through the array of open popout windows and removes the ones\n * that are effectively closed. This is necessary due to the lack of reliably\n * listening for window.close / unload events in a cross browser compatible fashion.\n */\n _$reconcilePopoutWindows() {\n const openPopouts: BrowserPopout[] = [];\n\n for (let i = 0; i < this.openPopouts.length; i++) {\n if (this.openPopouts[i].getWindow()?.closed === false) {\n openPopouts.push(this.openPopouts[i]);\n } else {\n this.emit('windowClosed', this.openPopouts[i]);\n }\n }\n\n if (this.openPopouts.length !== openPopouts.length) {\n this.emit('stateChanged');\n this.openPopouts = openPopouts;\n }\n }\n\n /***************************\n * PRIVATE\n ***************************/\n /**\n * Returns a flattened array of all content items,\n * regardles of level or type\n * @return Flattened array of content items\n */\n _getAllContentItems() {\n const allContentItems: AbstractContentItem[] = [];\n\n const addChildren = (contentItem: AbstractContentItem) => {\n allContentItems.push(contentItem);\n\n if (contentItem.contentItems instanceof Array) {\n for (let i = 0; i < contentItem.contentItems.length; i++) {\n addChildren(contentItem.contentItems[i]);\n }\n }\n };\n\n addChildren(this.root);\n\n return allContentItems;\n }\n\n /**\n * Binds to DOM/BOM events on init\n */\n _bindEvents() {\n if (this._isFullPage) {\n $(window).resize(this._onResize);\n }\n $(window)\n .on('unload beforeunload', this._onUnload)\n .on('blur.lm', this._windowBlur)\n .on('focus.lm', this._windowFocus);\n }\n\n /**\n * Handles setting a class based on window focus, useful for focus indicators\n */\n _windowBlur() {\n this.root.element.addClass('lm_window_blur');\n }\n\n _windowFocus() {\n this.root.element.removeClass('lm_window_blur');\n }\n\n /**\n * Debounces resize events\n */\n _onResize() {\n clearTimeout(this._resizeTimeoutId);\n this._resizeTimeoutId = window.setTimeout(this.updateSize.bind(this), 100);\n }\n\n /**\n * Extends the default config with the user specific settings and applies\n * derivations. Please note that there's a seperate method (AbstractContentItem._extendItemNode)\n * that deals with the extension of item configs\n *\n * @param config\n * @returns config\n */\n _createConfig(config: Config): Config {\n var windowConfigKey = getQueryStringParam('gl-window');\n\n if (windowConfigKey) {\n this.isSubWindow = true;\n config = JSON.parse(localStorage.getItem(windowConfigKey) || '{}');\n config = unminifyConfig(config);\n localStorage.removeItem(windowConfigKey);\n }\n\n config = $.extend(true, {}, defaultConfig, config);\n\n var nextNode = function (node: Record<string, unknown>) {\n for (var key in node) {\n const value = node[key];\n if (key !== 'props' && typeof value === 'object' && value != null) {\n nextNode(value as Record<string, unknown>);\n } else if (key === 'type' && value === 'react-component') {\n node.type = 'component';\n node.componentName = 'lm-react-component';\n }\n }\n };\n\n nextNode(config);\n\n if (config.settings?.hasHeaders === false) {\n config.dimensions.headerHeight = 0;\n }\n\n return config;\n }\n\n /**\n * This is executed when GoldenLayout detects that it is run\n * within a previously opened popout window.\n */\n _adjustToWindowMode() {\n var popInButton = $(\n '<div class=\"lm_popin\" title=\"' +\n this.config.labels.popin +\n '\">' +\n '<div class=\"lm_icon\"></div>' +\n '<div class=\"lm_bg\"></div>' +\n '</div>'\n );\n\n popInButton.click(() => {\n this.emit('popIn');\n });\n\n document.title = stripTags(this.config.content[0].title ?? '');\n\n $('head').append($('body link, body style, template, .gl_keep'));\n\n this.container = $('body')\n .html('')\n .css('visibility', 'visible')\n .append(popInButton);\n\n /*\n * This seems a bit pointless, but actually causes a reflow/re-evaluation getting around\n * slickgrid's \"Cannot find stylesheet.\" bug in chrome\n */\n var x = document.body.offsetHeight; // jshint ignore:line\n\n /*\n * Expose this instance on the window object\n * to allow the opening window to interact with\n * it\n */\n (window as Window &\n typeof globalThis & { __glInstance: LayoutManager }).__glInstance = this;\n }\n\n /**\n * Creates Subwindows (if there are any). Throws an error\n * if popouts are blocked.\n */\n _createSubWindows() {\n if (!this.config.openPopouts) {\n return;\n }\n\n for (let i = 0; i < this.config.openPopouts.length; i++) {\n const popout = this.config.openPopouts[i];\n\n this.createPopout(\n popout.content,\n popout.dimensions,\n popout.parentId,\n popout.indexInParent\n );\n }\n }\n\n _getContainer() {\n const container = this._originalContainer\n ? $(this._originalContainer)\n : $('body');\n\n if (container.length === 0) {\n throw new Error('GoldenLayout container not found');\n }\n\n if (container.length > 1) {\n throw new Error('GoldenLayout more than one container element specified');\n }\n\n return container;\n }\n\n /**\n * Determines what element the layout will be created in\n */\n _setContainer() {\n const container = this._getContainer();\n\n if (container[0] === document.body) {\n this._isFullPage = true;\n\n $('html, body').css({\n height: '100%',\n margin: 0,\n padding: 0,\n overflow: 'hidden',\n });\n }\n\n this.container = container;\n }\n\n /**\n * Kicks of the initial, recursive creation chain\n *\n * @param config GoldenLayout Config\n */\n _create(config: Config) {\n var errorMsg;\n\n if (!(config.content instanceof Array)) {\n if (config.content === undefined) {\n errorMsg = \"Missing setting 'content' on top level of configuration\";\n } else {\n errorMsg = \"Configuration parameter 'content' must be an array\";\n }\n\n throw new ConfigurationError(errorMsg, config);\n }\n\n if (config.content.length > 1) {\n errorMsg = \"Top level content can't contain more then one element.\";\n throw new ConfigurationError(errorMsg, config);\n }\n\n this.root = new Root(this, { content: config.content }, this.container);\n this.root.callDownwards('_$init');\n\n if (config.maximisedItemId === '__glMaximised') {\n this.root.getItemsById(config.maximisedItemId)[0].toggleMaximise();\n }\n }\n\n /**\n * Called when the window is closed or the user navigates away\n * from the page\n */\n _onUnload() {\n if (this.config.settings.closePopoutsOnUnload === true) {\n for (var i = 0; i < this.openPopouts.length; i++) {\n this.openPopouts[i].close();\n }\n }\n }\n\n /**\n * Adjusts the number of columns to be lower to fit the screen and still maintain minItemWidth.\n */\n _adjustColumnsResponsive() {\n // If there is no min width set, or not content items, do nothing.\n if (\n !this._useResponsiveLayout() ||\n this._updatingColumnsResponsive ||\n !this.config.dimensions ||\n !this.config.dimensions.minItemWidth ||\n this.root.contentItems.length === 0 ||\n !this.root.contentItems[0].isRow\n ) {\n this._firstLoad = false;\n return;\n }\n\n this._firstLoad = false;\n\n // If there is only one column, do nothing.\n var columnCount = this.root.contentItems[0].contentItems.length;\n if (columnCount <= 1) {\n return;\n }\n\n // If they all still fit, do nothing.\n var minItemWidth = this.config.dimensions.minItemWidth;\n var totalMinWidth = columnCount * minItemWidth;\n if (this.width == null || totalMinWidth <= this.width) {\n return;\n }\n\n // Prevent updates while it is already happening.\n this._updatingColumnsResponsive = true;\n\n // Figure out how many columns to stack, and put them all in the first stack container.\n var finalColumnCount = Math.max(Math.floor(this.width / minItemWidth), 1);\n var stackColumnCount = columnCount - finalColumnCount;\n\n var rootContentItem = this.root.contentItems[0];\n var firstStackContainer = this._findAllStackContainers()[0];\n for (var i = 0; i < stackColumnCount; i++) {\n // Stack from right.\n var column =\n rootContentItem.contentItems[rootContentItem.contentItems.length - 1];\n this._addChildContentItemsToContainer(firstStackContainer, column);\n }\n\n this._updatingColumnsResponsive = false;\n }\n\n /**\n * Determines if responsive layout should be used.\n *\n * @returns True if responsive layout should be used; otherwise false.\n */\n _useResponsiveLayout() {\n return (\n this.config.settings &&\n (this.config.settings.responsiveMode == 'always' ||\n (this.config.settings.responsiveMode == 'onload' && this._firstLoad))\n );\n }\n\n /**\n * Adds all children of a node to another container recursively.\n * @param container - Container to add child content items to.\n * @param node - Node to search for content items.\n */\n _addChildContentItemsToContainer(\n container: AbstractContentItem,\n node: AbstractContentItem\n ) {\n if (node.type === 'stack') {\n node.contentItems.forEach(function (item) {\n container.addChild(item);\n node.removeChild(item, true);\n });\n } else {\n node.contentItems.forEach(item => {\n this._addChildContentItemsToContainer(container, item);\n });\n }\n }\n\n /**\n * Finds all the stack containers.\n * @returns The found stack containers.\n */\n _findAllStackContainers() {\n const stackContainers: Stack[] = [];\n this._findAllStackContainersRecursive(stackContainers, this.root);\n\n return stackContainers;\n }\n\n /**\n * Finds all the stack containers.\n *\n * @param stackContainers Set of containers to populate.\n * @param node Current node to process.\n */\n _findAllStackContainersRecursive(\n stackContainers: Stack[],\n node: AbstractContentItem\n ) {\n node.contentItems.forEach(item => {\n if (isStack(item)) {\n stackContainers.push(item);\n } else if (!item.isComponent) {\n this._findAllStackContainersRecursive(stackContainers, item);\n }\n });\n }\n}\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"DragSource.d.ts","sourceRoot":"","sources":["../../src/controls/DragSource.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAChD,OAAO,KAAK,aAAa,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAGxC;;;;;;;GAOG;AACH,MAAM,CAAC,OAAO,OAAO,UAAU;IAC7B,QAAQ,EAAE,MAAM,CAAC,WAAW,CAAC,CAAC;IAC9B,WAAW,EAAE,cAAc,GAAG,CAAC,MAAM,cAAc,CAAC,CAAC;IACrD,cAAc,EAAE,aAAa,CAAC;IAC9B,aAAa,EAAE,YAAY,CAAC;gBAG1B,OAAO,EAAE,MAAM,CAAC,WAAW,CAAC,EAC5B,UAAU,EAAE,cAAc,GAAG,CAAC,MAAM,cAAc,CAAC,EACnD,aAAa,EAAE,aAAa;IAS9B;;OAEG;IACH,mBAAmB;IAOnB;;;;;OAKG;IACH,YAAY,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM;CAsBlC"}
1
+ {"version":3,"file":"DragSource.d.ts","sourceRoot":"","sources":["../../src/controls/DragSource.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAChD,OAAO,KAAK,aAAa,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAGxC;;;;;;;GAOG;AACH,MAAM,CAAC,OAAO,OAAO,UAAU;IAC7B,QAAQ,EAAE,MAAM,CAAC,WAAW,CAAC,CAAC;IAC9B,WAAW,EAAE,cAAc,GAAG,CAAC,MAAM,cAAc,CAAC,CAAC;IACrD,cAAc,EAAE,aAAa,CAAC;IAC9B,aAAa,EAAE,YAAY,CAAC;gBAG1B,OAAO,EAAE,MAAM,CAAC,WAAW,CAAC,EAC5B,UAAU,EAAE,cAAc,GAAG,CAAC,MAAM,cAAc,CAAC,EACnD,aAAa,EAAE,aAAa;IAS9B;;OAEG;IACH,mBAAmB;IAOnB;;;;;OAKG;IACH,YAAY,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM;CAiBlC"}
@@ -41,14 +41,12 @@ export default class DragSource {
41
41
  * @param y the x position of the mouse on dragStart
42
42
  */
43
43
  _onDragStart(x, y) {
44
- var _this$_layoutManager$;
45
44
  var itemConfig = this._itemConfig;
46
45
  if (typeof itemConfig === 'function') {
47
46
  itemConfig = itemConfig();
48
47
  }
49
48
  var contentItem = this._layoutManager._$normalizeContentItem($.extend(true, {}, itemConfig)),
50
49
  dragProxy = new DragProxy(x, y, this._dragListener, this._layoutManager, contentItem, null);
51
- (_this$_layoutManager$ = this._layoutManager.transitionIndicator) === null || _this$_layoutManager$ === void 0 ? void 0 : _this$_layoutManager$.transitionElements(this._element, dragProxy.element);
52
50
  }
53
51
  }
54
52
  //# sourceMappingURL=DragSource.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"DragSource.js","names":["$","DragListener","DragProxy","DragSource","constructor","element","itemConfig","layoutManager","_element","_itemConfig","_layoutManager","_dragListener","_createDragListener","on","_onDragStart","x","y","contentItem","_$normalizeContentItem","extend","dragProxy","transitionIndicator","transitionElements"],"sources":["../../src/controls/DragSource.ts"],"sourcesContent":["import $ from 'jquery';\nimport type { ItemConfigType } 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: ItemConfigType | (() => ItemConfigType);\n _layoutManager: LayoutManager;\n _dragListener: DragListener;\n\n constructor(\n element: JQuery<HTMLElement>,\n itemConfig: ItemConfigType | (() => ItemConfigType),\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 this._layoutManager.transitionIndicator?.transitionElements(\n this._element,\n dragProxy.element\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,WAAW,CACTC,OAA4B,EAC5BC,UAAmD,EACnDC,aAA4B,EAC5B;IAAA;IAAA;IAAA;IAAA;IACA,IAAI,CAACC,QAAQ,GAAGH,OAAO;IACvB,IAAI,CAACI,WAAW,GAAGH,UAAU;IAC7B,IAAI,CAACI,cAAc,GAAGH,aAAa;IAEnC,IAAI,CAACI,aAAa,GAAG,IAAI,CAACC,mBAAmB,EAAE;EACjD;;EAEA;AACF;AACA;EACEA,mBAAmB,GAAG;IACpB,IAAI,CAACD,aAAa,GAAG,IAAIV,YAAY,CAAC,IAAI,CAACO,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,YAAY,CAACC,CAAS,EAAEC,CAAS,EAAE;IAAA;IACjC,IAAIV,UAAU,GAAG,IAAI,CAACG,WAAW;IACjC,IAAI,OAAOH,UAAU,KAAK,UAAU,EAAE;MACpCA,UAAU,GAAGA,UAAU,EAAE;IAC3B;IACA,IAAMW,WAAW,GAAG,IAAI,CAACP,cAAc,CAACQ,sBAAsB,CAC1DlB,CAAC,CAACmB,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,EAAEb,UAAU,CAAC,CAC/B;MACDc,SAAS,GAAG,IAAIlB,SAAS,CACvBa,CAAC,EACDC,CAAC,EACD,IAAI,CAACL,aAAa,EAClB,IAAI,CAACD,cAAc,EACnBO,WAAW,EACX,IAAI,CACL;IAEH,6BAAI,CAACP,cAAc,CAACW,mBAAmB,0DAAvC,sBAAyCC,kBAAkB,CACzD,IAAI,CAACd,QAAQ,EACbY,SAAS,CAACf,OAAO,CAClB;EACH;AACF"}
1
+ {"version":3,"file":"DragSource.js","names":["$","DragListener","DragProxy","DragSource","constructor","element","itemConfig","layoutManager","_element","_itemConfig","_layoutManager","_dragListener","_createDragListener","on","_onDragStart","x","y","contentItem","_$normalizeContentItem","extend","dragProxy"],"sources":["../../src/controls/DragSource.ts"],"sourcesContent":["import $ from 'jquery';\nimport type { ItemConfigType } 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: ItemConfigType | (() => ItemConfigType);\n _layoutManager: LayoutManager;\n _dragListener: DragListener;\n\n constructor(\n element: JQuery<HTMLElement>,\n itemConfig: ItemConfigType | (() => ItemConfigType),\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,WAAW,CACTC,OAA4B,EAC5BC,UAAmD,EACnDC,aAA4B,EAC5B;IAAA;IAAA;IAAA;IAAA;IACA,IAAI,CAACC,QAAQ,GAAGH,OAAO;IACvB,IAAI,CAACI,WAAW,GAAGH,UAAU;IAC7B,IAAI,CAACI,cAAc,GAAGH,aAAa;IAEnC,IAAI,CAACI,aAAa,GAAG,IAAI,CAACC,mBAAmB,EAAE;EACjD;;EAEA;AACF;AACA;EACEA,mBAAmB,GAAG;IACpB,IAAI,CAACD,aAAa,GAAG,IAAIV,YAAY,CAAC,IAAI,CAACO,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,YAAY,CAACC,CAAS,EAAEC,CAAS,EAAE;IACjC,IAAIV,UAAU,GAAG,IAAI,CAACG,WAAW;IACjC,IAAI,OAAOH,UAAU,KAAK,UAAU,EAAE;MACpCA,UAAU,GAAGA,UAAU,EAAE;IAC3B;IACA,IAAMW,WAAW,GAAG,IAAI,CAACP,cAAc,CAACQ,sBAAsB,CAC1DlB,CAAC,CAACmB,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC,EAAEb,UAAU,CAAC,CAC/B;MACDc,SAAS,GAAG,IAAIlB,SAAS,CACvBa,CAAC,EACDC,CAAC,EACD,IAAI,CAACL,aAAa,EAClB,IAAI,CAACD,cAAc,EACnBO,WAAW,EACX,IAAI,CACL;EACL;AACF"}
@@ -7,5 +7,4 @@ export { default as Header } from './Header';
7
7
  export { default as HeaderButton } from './HeaderButton';
8
8
  export { default as Splitter } from './Splitter';
9
9
  export { default as Tab } from './Tab';
10
- export { default as TransitionIndicator } from './TransitionIndicator';
11
10
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/controls/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAC3D,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,cAAc,CAAC;AACrD,OAAO,EAAE,OAAO,IAAI,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AACvE,OAAO,EAAE,OAAO,IAAI,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AACvE,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,UAAU,CAAC;AAC7C,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACzD,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,YAAY,CAAC;AACjD,OAAO,EAAE,OAAO,IAAI,GAAG,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,EAAE,OAAO,IAAI,mBAAmB,EAAE,MAAM,uBAAuB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/controls/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAC3D,OAAO,EAAE,OAAO,IAAI,SAAS,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,cAAc,CAAC;AACrD,OAAO,EAAE,OAAO,IAAI,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AACvE,OAAO,EAAE,OAAO,IAAI,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AACvE,OAAO,EAAE,OAAO,IAAI,MAAM,EAAE,MAAM,UAAU,CAAC;AAC7C,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACzD,OAAO,EAAE,OAAO,IAAI,QAAQ,EAAE,MAAM,YAAY,CAAC;AACjD,OAAO,EAAE,OAAO,IAAI,GAAG,EAAE,MAAM,OAAO,CAAC"}
@@ -7,5 +7,4 @@ export { default as Header } from "./Header.js";
7
7
  export { default as HeaderButton } from "./HeaderButton.js";
8
8
  export { default as Splitter } from "./Splitter.js";
9
9
  export { default as Tab } from "./Tab.js";
10
- export { default as TransitionIndicator } from "./TransitionIndicator.js";
11
10
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":["default","BrowserPopout","DragProxy","DragSource","DragSourceFromEvent","DropTargetIndicator","Header","HeaderButton","Splitter","Tab","TransitionIndicator"],"sources":["../../src/controls/index.ts"],"sourcesContent":["export { default as BrowserPopout } from './BrowserPopout';\nexport { default as DragProxy } from './DragProxy';\nexport { default as DragSource } from './DragSource';\nexport { default as DragSourceFromEvent } from './DragSourceFromEvent';\nexport { default as DropTargetIndicator } from './DropTargetIndicator';\nexport { default as Header } from './Header';\nexport { default as HeaderButton } from './HeaderButton';\nexport { default as Splitter } from './Splitter';\nexport { default as Tab } from './Tab';\nexport { default as TransitionIndicator } from './TransitionIndicator';\n"],"mappings":"SAASA,OAAO,IAAIC,aAAa;AAAA,SACxBD,OAAO,IAAIE,SAAS;AAAA,SACpBF,OAAO,IAAIG,UAAU;AAAA,SACrBH,OAAO,IAAII,mBAAmB;AAAA,SAC9BJ,OAAO,IAAIK,mBAAmB;AAAA,SAC9BL,OAAO,IAAIM,MAAM;AAAA,SACjBN,OAAO,IAAIO,YAAY;AAAA,SACvBP,OAAO,IAAIQ,QAAQ;AAAA,SACnBR,OAAO,IAAIS,GAAG;AAAA,SACdT,OAAO,IAAIU,mBAAmB"}
1
+ {"version":3,"file":"index.js","names":["default","BrowserPopout","DragProxy","DragSource","DragSourceFromEvent","DropTargetIndicator","Header","HeaderButton","Splitter","Tab"],"sources":["../../src/controls/index.ts"],"sourcesContent":["export { default as BrowserPopout } from './BrowserPopout';\nexport { default as DragProxy } from './DragProxy';\nexport { default as DragSource } from './DragSource';\nexport { default as DragSourceFromEvent } from './DragSourceFromEvent';\nexport { default as DropTargetIndicator } from './DropTargetIndicator';\nexport { default as Header } from './Header';\nexport { default as HeaderButton } from './HeaderButton';\nexport { default as Splitter } from './Splitter';\nexport { default as Tab } from './Tab';\n"],"mappings":"SAASA,OAAO,IAAIC,aAAa;AAAA,SACxBD,OAAO,IAAIE,SAAS;AAAA,SACpBF,OAAO,IAAIG,UAAU;AAAA,SACrBH,OAAO,IAAII,mBAAmB;AAAA,SAC9BJ,OAAO,IAAIK,mBAAmB;AAAA,SAC9BL,OAAO,IAAIM,MAAM;AAAA,SACjBN,OAAO,IAAIO,YAAY;AAAA,SACvBP,OAAO,IAAIQ,QAAQ;AAAA,SACnBR,OAAO,IAAIS,GAAG"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@deephaven/golden-layout",
3
- "version": "0.40.1-beta.0+8c45b264",
3
+ "version": "0.40.2-beta.2+860e4c5c",
4
4
  "author": "Deephaven Data Labs LLC",
5
5
  "license": "Apache-2.0",
6
6
  "description": "A multi-screen javascript Layout manager",
@@ -54,5 +54,5 @@
54
54
  "karma-browserify": "^8.1.0",
55
55
  "watchify": "^4.0.0"
56
56
  },
57
- "gitHead": "8c45b264663ebbd7755729404600c5c480757efa"
57
+ "gitHead": "860e4c5c7c548d9b0aece14455959b5d0a6a6942"
58
58
  }
@@ -332,16 +332,6 @@ $height6: 15px; // Appears 1 time
332
332
  }
333
333
  }
334
334
 
335
- .lm_transition_indicator {
336
- display: none;
337
- width: $width1;
338
- height: $height1;
339
- position: absolute;
340
- top: 0;
341
- left: 0;
342
- z-index: 20;
343
- }
344
-
345
335
  // If a specific Pane is Popped Out, so move it to a different Browser Window, Icon to restore original position is:
346
336
  .lm_popin {
347
337
  width: $width1;
@@ -201,11 +201,6 @@ $color10: #ffffff; // Appears 2 time
201
201
  }
202
202
  }
203
203
 
204
- .lm_transition_indicator {
205
- background-color: $color0;
206
- border: 1px dashed $color9;
207
- }
208
-
209
204
  // If a specific Pane is Popped Out, so move it to a different Browser Window, Icon to restore original position is:
210
205
  .lm_popin {
211
206
  cursor: pointer;
@@ -1,25 +0,0 @@
1
- export type TransitionDimensions = {
2
- left?: number;
3
- top?: number;
4
- width?: number;
5
- height?: number;
6
- opacity?: number;
7
- };
8
- export default class TransitionIndicator {
9
- private _element;
10
- private _toElement;
11
- private _fromDimensions;
12
- private _totalAnimationDuration;
13
- private _animationStartTime;
14
- constructor();
15
- destroy(): void;
16
- transitionElements(fromElement: JQuery<HTMLElement>, toElement: JQuery<HTMLElement>): void;
17
- _nextAnimationFrame(): void;
18
- _measure(element: JQuery<HTMLElement>): {
19
- left: number | undefined;
20
- top: number | undefined;
21
- width: number | undefined;
22
- height: number | undefined;
23
- };
24
- }
25
- //# sourceMappingURL=TransitionIndicator.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"TransitionIndicator.d.ts","sourceRoot":"","sources":["../../src/controls/TransitionIndicator.ts"],"names":[],"mappings":"AAGA,MAAM,MAAM,oBAAoB,GAAG;IACjC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,MAAM,CAAC,OAAO,OAAO,mBAAmB;IACtC,OAAO,CAAC,QAAQ,CAAoD;IACpE,OAAO,CAAC,UAAU,CAAoC;IAEtD,OAAO,CAAC,eAAe,CAA4B;IACnD,OAAO,CAAC,uBAAuB,CAAO;IACtC,OAAO,CAAC,mBAAmB,CAAuB;;IAMlD,OAAO;IAIP,kBAAkB,CAChB,WAAW,EAAE,MAAM,CAAC,WAAW,CAAC,EAChC,SAAS,EAAE,MAAM,CAAC,WAAW,CAAC;IAchC,mBAAmB;IAiCnB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC,WAAW,CAAC;;;;;;CAUtC"}
@@ -1,61 +0,0 @@
1
- function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
2
- function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
3
- function _toPrimitive(input, hint) { if (typeof input !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (typeof res !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
4
- import $ from 'jquery';
5
- import { animFrame } from "../utils/index.js";
6
- export default class TransitionIndicator {
7
- constructor() {
8
- _defineProperty(this, "_element", $('<div class="lm_transition_indicator"></div>'));
9
- _defineProperty(this, "_toElement", null);
10
- _defineProperty(this, "_fromDimensions", {});
11
- _defineProperty(this, "_totalAnimationDuration", 200);
12
- _defineProperty(this, "_animationStartTime", null);
13
- $(document.body).append(this._element);
14
- }
15
- destroy() {
16
- this._element.remove();
17
- }
18
- transitionElements(fromElement, toElement) {
19
- /**
20
- * TODO - This is not quite as cool as expected. Review.
21
- */
22
- return;
23
- // this._toElement = toElement;
24
- // this._animationStartTime = utils.now();
25
- // this._fromDimensions = this._measure(fromElement);
26
- // this._fromDimensions.opacity = 0.8;
27
- // this._element.show().css(this._fromDimensions);
28
- // utils.animFrame(utils.fnBind(this._nextAnimationFrame, this));
29
- }
30
-
31
- _nextAnimationFrame() {
32
- if (!this._toElement || this._animationStartTime == null) {
33
- return;
34
- }
35
- var toDimensions = this._measure(this._toElement);
36
- var animationProgress = (Date.now() - this._animationStartTime) / this._totalAnimationDuration;
37
- var currentFrameStyles = {};
38
- if (animationProgress >= 1) {
39
- this._element.hide();
40
- return;
41
- }
42
- toDimensions.opacity = 0;
43
- var keys = Object.keys(this._fromDimensions);
44
- for (var cssProperty of keys) {
45
- var _this$_fromDimensions, _toDimensions$cssProp, _this$_fromDimensions2;
46
- currentFrameStyles[cssProperty] = ((_this$_fromDimensions = this._fromDimensions[cssProperty]) !== null && _this$_fromDimensions !== void 0 ? _this$_fromDimensions : 0) + (((_toDimensions$cssProp = toDimensions[cssProperty]) !== null && _toDimensions$cssProp !== void 0 ? _toDimensions$cssProp : 0) - ((_this$_fromDimensions2 = this._fromDimensions[cssProperty]) !== null && _this$_fromDimensions2 !== void 0 ? _this$_fromDimensions2 : 0)) * animationProgress;
47
- }
48
- this._element.css(currentFrameStyles);
49
- animFrame(this._nextAnimationFrame.bind(this));
50
- }
51
- _measure(element) {
52
- var offset = element.offset();
53
- return {
54
- left: offset === null || offset === void 0 ? void 0 : offset.left,
55
- top: offset === null || offset === void 0 ? void 0 : offset.top,
56
- width: element.outerWidth(),
57
- height: element.outerHeight()
58
- };
59
- }
60
- }
61
- //# sourceMappingURL=TransitionIndicator.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"TransitionIndicator.js","names":["$","animFrame","TransitionIndicator","constructor","document","body","append","_element","destroy","remove","transitionElements","fromElement","toElement","_nextAnimationFrame","_toElement","_animationStartTime","toDimensions","_measure","animationProgress","Date","now","_totalAnimationDuration","currentFrameStyles","hide","opacity","keys","Object","_fromDimensions","cssProperty","css","bind","element","offset","left","top","width","outerWidth","height","outerHeight"],"sources":["../../src/controls/TransitionIndicator.ts"],"sourcesContent":["import $ from 'jquery';\nimport { animFrame } from '../utils';\n\nexport type TransitionDimensions = {\n left?: number;\n top?: number;\n width?: number;\n height?: number;\n opacity?: number;\n};\n\nexport default class TransitionIndicator {\n private _element = $('<div class=\"lm_transition_indicator\"></div>');\n private _toElement: JQuery<HTMLElement> | null = null;\n\n private _fromDimensions: TransitionDimensions = {};\n private _totalAnimationDuration = 200;\n private _animationStartTime: number | null = null;\n\n constructor() {\n $(document.body).append(this._element);\n }\n\n destroy() {\n this._element.remove();\n }\n\n transitionElements(\n fromElement: JQuery<HTMLElement>,\n toElement: JQuery<HTMLElement>\n ) {\n /**\n * TODO - This is not quite as cool as expected. Review.\n */\n return;\n // this._toElement = toElement;\n // this._animationStartTime = utils.now();\n // this._fromDimensions = this._measure(fromElement);\n // this._fromDimensions.opacity = 0.8;\n // this._element.show().css(this._fromDimensions);\n // utils.animFrame(utils.fnBind(this._nextAnimationFrame, this));\n }\n\n _nextAnimationFrame() {\n if (!this._toElement || this._animationStartTime == null) {\n return;\n }\n\n const toDimensions: TransitionDimensions = this._measure(this._toElement);\n const animationProgress =\n (Date.now() - this._animationStartTime) / this._totalAnimationDuration;\n const currentFrameStyles: TransitionDimensions = {};\n\n if (animationProgress >= 1) {\n this._element.hide();\n return;\n }\n\n toDimensions.opacity = 0;\n\n const keys = Object.keys(this._fromDimensions) as [\n keyof TransitionDimensions\n ];\n\n for (let cssProperty of keys) {\n currentFrameStyles[cssProperty] =\n (this._fromDimensions[cssProperty] ?? 0) +\n ((toDimensions[cssProperty] ?? 0) -\n (this._fromDimensions[cssProperty] ?? 0)) *\n animationProgress;\n }\n\n this._element.css(currentFrameStyles);\n animFrame(this._nextAnimationFrame.bind(this));\n }\n\n _measure(element: JQuery<HTMLElement>) {\n const offset = element.offset();\n\n return {\n left: offset?.left,\n top: offset?.top,\n width: element.outerWidth(),\n height: element.outerHeight(),\n };\n }\n}\n"],"mappings":";;;AAAA,OAAOA,CAAC,MAAM,QAAQ;AAAC,SACdC,SAAS;AAUlB,eAAe,MAAMC,mBAAmB,CAAC;EAQvCC,WAAW,GAAG;IAAA,kCAPKH,CAAC,CAAC,6CAA6C,CAAC;IAAA,oCAClB,IAAI;IAAA,yCAEL,CAAC,CAAC;IAAA,iDAChB,GAAG;IAAA,6CACQ,IAAI;IAG/CA,CAAC,CAACI,QAAQ,CAACC,IAAI,CAAC,CAACC,MAAM,CAAC,IAAI,CAACC,QAAQ,CAAC;EACxC;EAEAC,OAAO,GAAG;IACR,IAAI,CAACD,QAAQ,CAACE,MAAM,EAAE;EACxB;EAEAC,kBAAkB,CAChBC,WAAgC,EAChCC,SAA8B,EAC9B;IACA;AACJ;AACA;IACI;IACA;IACA;IACA;IACA;IACA;IACA;EACF;;EAEAC,mBAAmB,GAAG;IACpB,IAAI,CAAC,IAAI,CAACC,UAAU,IAAI,IAAI,CAACC,mBAAmB,IAAI,IAAI,EAAE;MACxD;IACF;IAEA,IAAMC,YAAkC,GAAG,IAAI,CAACC,QAAQ,CAAC,IAAI,CAACH,UAAU,CAAC;IACzE,IAAMI,iBAAiB,GACrB,CAACC,IAAI,CAACC,GAAG,EAAE,GAAG,IAAI,CAACL,mBAAmB,IAAI,IAAI,CAACM,uBAAuB;IACxE,IAAMC,kBAAwC,GAAG,CAAC,CAAC;IAEnD,IAAIJ,iBAAiB,IAAI,CAAC,EAAE;MAC1B,IAAI,CAACX,QAAQ,CAACgB,IAAI,EAAE;MACpB;IACF;IAEAP,YAAY,CAACQ,OAAO,GAAG,CAAC;IAExB,IAAMC,IAAI,GAAGC,MAAM,CAACD,IAAI,CAAC,IAAI,CAACE,eAAe,CAE5C;IAED,KAAK,IAAIC,WAAW,IAAIH,IAAI,EAAE;MAAA;MAC5BH,kBAAkB,CAACM,WAAW,CAAC,GAC7B,0BAAC,IAAI,CAACD,eAAe,CAACC,WAAW,CAAC,yEAAI,CAAC,IACvC,CAAC,0BAACZ,YAAY,CAACY,WAAW,CAAC,yEAAI,CAAC,+BAC7B,IAAI,CAACD,eAAe,CAACC,WAAW,CAAC,2EAAI,CAAC,CAAC,IACxCV,iBAAiB;IACvB;IAEA,IAAI,CAACX,QAAQ,CAACsB,GAAG,CAACP,kBAAkB,CAAC;IACrCrB,SAAS,CAAC,IAAI,CAACY,mBAAmB,CAACiB,IAAI,CAAC,IAAI,CAAC,CAAC;EAChD;EAEAb,QAAQ,CAACc,OAA4B,EAAE;IACrC,IAAMC,MAAM,GAAGD,OAAO,CAACC,MAAM,EAAE;IAE/B,OAAO;MACLC,IAAI,EAAED,MAAM,aAANA,MAAM,uBAANA,MAAM,CAAEC,IAAI;MAClBC,GAAG,EAAEF,MAAM,aAANA,MAAM,uBAANA,MAAM,CAAEE,GAAG;MAChBC,KAAK,EAAEJ,OAAO,CAACK,UAAU,EAAE;MAC3BC,MAAM,EAAEN,OAAO,CAACO,WAAW;IAC7B,CAAC;EACH;AACF"}