- simplified internal code to process theme options and removed some obsolete code
- fix in css file to prevent overflowing title in minimized panel replacement
- added Dialog extension. This extension adds an easy-to-use interface for dialog elements to virtually any jsPanel. It also offers a
modal()function to create modal dialogs as well asalert(),confirm()andprompt()functions.jsPanel.dialogis a Third Party Extension developed and maintained by Michael Daumling. - added The object used to set a custom theme with
option.themenow accepts the propertiesbgFooter,colorFooterandborderRadiusas well - added method
jsPanel.getCssVariableValue()to process css variables in optionstheme,border,borderRadiusand methods.setTheme(),.setBorder(),setBorderRadius() - updated internal methods
.getThemeDetails(),.applyCustomTheme()and.pOborder()to support the use of css variables inoption.theme,option.border,option.borderRadiusand the methods.setTheme(),.setBorder(),setBorderRadius() - reorganized code in the whole script
- added option
cssto add custom css classes to the panel's html template, includes updated css filesjspanel.css/jspanel.min.css - some internal code improvements
- fix for maximized panels: on
resizestartof a maximized panel its status is now reset to'normalized', the normalize control is hidden and the maximize control is shown again.
- bugfix in
close()method (callingclose()on an already closed panel caused an error) - updated option
onwindowresize - updated option
onparentresize
So far the two options onwindowresize and onparentresize could be set with either boolean true to start a preset behaviour or with a function to start a custom behaviour on the corresponding resize events. Now you can also set options onwindowresize and onparentresize with an object optionally allowing the use of both the preset behaviour AND an additional custom behaviour.
- enabled default use of the PointerEvent API
- added method
jsPanel.usePointerEvents()to disable/enable use of PointerEvent API
- updated CSS files to bugfix a minor issue in
option.minimizeTo - bugfix in
resizeitinteraction - added string value
'closed'to panel propertystatus. Since a closed panel is removed from the DOM this value is only available when a panel reference is saved. - added option to use a custom callback function as setting for
option.closeOnEscapeinstead of just boolean true/false
- bugfix in
dragitinteraction - improved panel positioning, dragit and snap features in order to allow for scrollbars
- added option
parentPanelFrontto the tooltip configuration options (tooltip extension updated to v1.4.0)
- bugfix in the code for the
resizeitinteraction reducing memory leaks. See GitHub issue - bugfix when using the dock extension a docked panel:
- did not reposition when the master panel was repositioned programmatically
- did not reposition when the master panel was resized programmatically
- did not reposition when option
onwindowresizeis activated and the window is resized
- bugfix
layoutextension:jsPanel.layout.restoreIdnow returns the restored panel - added parameter
closeOnMouseleaveincontextmenuextension
- bugfix in the code for the
dragitinteraction reducing memory leaks. See GitHub issue
- bugfix in the
maximize()method
- renamed panel property
autocloseProgressbartoprogressbar. The old property name remains usable for compatibility. - bugfix in option
onwindowresize - various internal improvements in js and css
See also the changelog of v4.11.0-beta for a list of changes compared with v4.10.2
- added method
jsPanel.strToHtml(str)converting a DOMString to aDocumentFragment. - added option
opacity - bugfix in modal extension concerning the use of
onclosedcallback. - bugfix in
autopositionparameter of optionposition. - bugfix in option
onwindowresize. - updated
jsPanel.ajax()in order to improve its usability as general purpose AJAX tool.
This update might require a change in your code if you usejsPanel.ajax()and/or optioncontentAjax. - updated
jsPanel.fetch()in order to improve its usability as general purpose Fetch tool.
This update might require a change in your code if you usejsPanel.fetch()and/or optioncontentFetch. - updated option
contentAjaxoptionally loads only a page fragment. - updated CSS for controlbar
- updated header title is now wrapped in a
<div>instead of a<span> - updated contextmenu extension due to changes in
jsPanel.ajax(). - updated dock extension internally. Should not affect existing code.
- disabled the use of the Pointer Events API. So for now only Touch and Mouse events are used by a panels controls and dragit/resizeit interactions.
- bugfix in modal extension concerning the use of
onclosedcallback - bugfix in
autopositionfeature of optionposition
- bugfix in
autopositionfeature ofoption.position - updated
datepickerextension (which is still experimental)
- bugfix in the resizeit functionality, issue #117
- fixed CSS issue concerning header logo in minimized panel
- added method
jsPanel.toggleClass() - added option
data - updated
layoutextension - updated all jsPanel events (
jspanelloaded,jspanelclosed, etc.) are now cancelable
- bugfix in option resizeit parameter
aspectRatiowhen using modifier keys - fixed/improved some minor code issues
- this releases only fix an issue with
package.json
- updated events
jspanelclosedandjspanelcloseduser - updated
dockextension: master AND slave panels get the same z-index value if either panel is fronted. Recoded event handling within the extension. - updated panel template to fix an issue with IE11
This release fixes a typo in the js files of folder es6module. Other files are not affected.
- bugfix in option
onwindowresize - bugfix in
dragit.disableOnMaximized - bugfix in
dragit.snapfeature - bugfix in option
resizeit - bugfix in option
syncMargins - bugfix in and updated
layout extension - bugfix in method
.setHeaderLogo() - added jsPanel events: implemented event property
panelreferring to the panel firing the event - added
dragit.snapparameteractive - added almost all option
dragitandresizeitparameters are now editable for already existing panels - added option
maximizedMarginis now editable for existing panels - added first implementation of
dragit.dropallowing to move a panel from its current parent element to another one - added SHIFT modifier key action to the resizeit interaction
- updated option
resizeitmodifier key functionality - updated options
dragitandresizeit: the start, drag/resize and stop callbacks now receive the same argument paneldata (instead of args position/size) with css left, top, width and height data - improved handling of
contentSize:"auto"/panelSize:"auto"when combined withautoclose
- bugfix in option
resizeitand panel methodresize() - bugfix in method
jsPanel.close() - added setting
"content"to parameteraspectRatioof optionresizeitin order to maintain the aspect ratio of the content section while resizing a panel - added support for Font Awesome duotone icons to option
iconfont - added modifier keys to the
resizeitfeature - updated z-index handling in
modal extension - updated handling of
iframesin the content section while dragging/resizing a panel - updated event sequence:
jspanelcloseduseris now fired beforejspanelclosed - updated option
onclosedcallback receives a second argumentclosedByUserset totrueif the panel is closed by user action - updated option
onbeforeclosecallback receives a third argumentclosedByUserset totrueif the panel is closed by user action - updated modal extension due to the updated method
jsPanel.close()
- bugfix in option
dragit - bugfix in option
resizeit - bugfix in method
normalize() - bugfix in method
resize() - bugfix in
jsPanel.addScript() - bugfix in the
contextmenuextension - bugfix in the
dockextension - completely recoded methods handling option
position - completely recoded options
onwindowresizeandonparentresize - added option
addCloseControlto add an additional close control to the panel (might be handy if the header section is removed) - added a customizable progressbar to option
autoclose - added method
addControl()to add custom controls to the controlbar of existing panels - added tooltip method
remove()in order to remove a handler triggering a specific tooltip - added polyfill
Number.isInteger()to support IE11 - updated option
headerControlsin order to add custom controls - option theme: when
theme: "none"or the methodsetTheme()is used properties assigned via optionsborderand/orborderRadiusremain untouched - reworked SVG icons for the controls
- updated methods
setBorder()andsetBorderRadius()are now available to existing panels in order to set/change CSS border/borderRadius - updated options
borderandborderRadius - updated tooltip extension: due to new positioning methods
- updated layout extension: added optional use of
sessionStorageinstead oflocalStorage - updated hint extension: due to updated header controls
- various internal bugfixes
- bugfix in
option.dragit.snapconcerning use oftrigger: 'pointer' - bugfix concerning
jspaneldragstop/jspanelresizestopevents - bugfix in method
front() - bugfix in tooltip extension
- added theme modifier
'filleddark' - added parameter
sizeto optionheaderControlsin order to set size of controls - added some more return values to method
overlaps() - added
jsPanel.errorReportingto turn off/on error jsPanel reporting - various minor fixes and improvements
- jsPanel now uses pointer events if supported
- bugfix - recoded the complete
close()function to fix a long standing bug - bugfix in
jsPanel.position()concerning the use of the dock extension - bugfix in
minimize()concerning the use of an image as background - bugfix in option
dragit - bugfix in
tooltipextension - jsPanel themes got numerous updates:
- additional built-in themes
- updated built-in theme colors
- all built-in themes are are now "normal" color themes → less CSS
- recoded bootstrap theme support → no more bootstrap adjustments in jspanel.css needed
- option theme can now be used with an object as value → more theming options and better support of images (includes css gradients) as panel background
- reworked built-in controls icons, updated CSS accordingly and changed hover effect of controls
- added option
onparentresizeto autoreposition childpanels on various resize actions of the parentpanel - added parameter
statusto the callbacksonbeforemaximize,onmaximizedetc. - added parameter options
'hide'and'show'to panel methodsetControlStatus()parameteraction - added optional callback function to panel method
getChildpanels()and the method now returns a NodeList (instead of an array) - added optional callback function to panel method
isChildpanel() - added support for setting
option.position.ofin a position shorthand string - various minor fixes/improvements in js and css
#####Note: The numerous updates in theming might require an update of your code in case you used some kind of custom theme since there no more are theme specific css classes applied to a jsPanel.
- added theme modifier
fillcolorto specify a custom background color for the content section - updated option
borderaccepts all color names usable with optiontheme - updated method
.overlaps() - bugfix in option
resizeit - bugfix in option
onwindowresize - bugfix in option
dragitconcerning optiononwindowresize - updated
start,stop,drag/resizecallbacks in optionsdragit/resizeitnow additionally get theevent objectas argument - added polyfill for
String.prototype.includes() - added CommonJS module exports
- added event
jspanelcloseduserwhich is fired when a panel is closed using the header control - added panel method
.overlaps() - added parameter
aspectRatioto optionresizeit - updated panel method
.close()- it now has a return value depending on whether the panel was closed successfully or not option.containerdefault value is changed to'window'. This might need a change in existing code whencontainer: doccument.bodyis used even though this was the default previouslyoption.maximizedMarginnow accepts a function as valueoption.themesupports color names derived from the Material Design Color System like'bluegray700','orangeA400'etc.- options
position,dragitandresizeitnow correctly position, drag and resize panels appended to a container using csstransform: scale()if both container and panel are scaled - bugfix in global color methods
- modal extension: minor bugfixes
- tooltip extension:
- added method
jsPanel.tooltip.reposition()to reposition existing tooltips - added parameter
autoshowfor tooltips - added support for tooltips positioned relative to another element than target
- improved tooltip connectors
- a few bugfixes in the tooltip extension
- tooltip extension will load a
MouseEvent()polyfill for IE11
- added method
- various tweaks in css and js
- fix in methods
setHeaderLogo()andsetHeaderTitle()- logo and title are now updated in minimized replacement as well - fix in css concerning only IE11 when using very long title texts (controls were pushed out of panel boundaries)
- fix in options
dragitandresizeit- see #53 - added: All parameters of option
positionnow accept a function as value
- fix in options
dragitandresizeit- handler was not unbound when mouse cursor came over a<object>tag in content section of a jsPanel - added click on modal backdrop will close a modal jsPanel
- changed
option.closeOnEscapeis set totrueby default for a modal jPanel
- fixed
jspanel.min.jsto make it work with IE11 - fixed CSS and JS to improve compatibility with Bootstrap > 4.1.2
- fix in the internal function applying a arbitrary theme
- replaced some wrong files in the folder
es6module
- improved method
.smallify() - added method
jsPanel.addScript()in order to add a script to the document - added option
borderRadiusapplies a css border-radius to the panel - when using a mouse draging/resizing and all controls of a panel are now limited to the left mouse button
- bugfix in the dock extensions
- bugfix in the function creating the minimized replacement
- option resizeit defaults of
minWidthandminHeightset to128 - various tweaks in css and js
- fixes a typo disabling option
onwindowresize
- new events
jspaneldragstart,jspaneldrag,jspaneldragstop,jspanelresizestart,jspanelresize,jspanelresizestop - new extension
dockextending a jsPanel with the method.dock(). This method allows to dock one or more slave panels to a master panel. Basically that means a slave panel is dragged, maximized, normalized, minimized, closed and optionally resized together with the master panel it's docked to. - bugfix in option
dragit - bugfix in extension
layout - bugfix in
jspanel.css - bugfix in CSS for Right-To-Left panels
- removed CSS
border-radiussettings from themes
- bugfix in jspanel.css
- fix in method resizeit()
- fix in method jsPanel.ajax()
- fix in methods smallify() and unsmallify()
- fix in CSS for minimized panel containers
- improved option minimizedTo
- improved option position
- added option contentOverflow
- replaced option headerRemove with option header
- various tweaks in css and js
- added property globalCallbacks to the global object jsPanel lets you add callback functions to all or a limited set of jsPanels at once
- change: as of version 4.0.0-beta.3 jsPanel uses built-in SVGs for the controls icons. SVGs are stored in the new property icons of the global object jsPanel. So the directory fonts with all the jsglyph icontfont files is obsolete
- change: use of the PointerEvent API is turned off, only touch events and/or mouse events are used
- improved: panel is fronted upon click in content section even if content is an iframe
- change: start, drag/resize, stop callbacks of options dragit/resizeit now accept an array of functions
- change: all option.on... callbacks except option.onwindowresize now accept an array of functions. This change might necessitate a modification of your code
- various bugfixes and improvements in js and css
- ADDED folder es6module with all necessary files to run jsPanel as native ES6 module
### Version 4.0.0-beta.2 released 2018-01-08
- new setting trigger for option.dragit.snap
- new setting containment for option.dragit.snap
- new setting repositionOnSnap for option.dragit.snap
- new setting resizeToPreSnap for option.dragit.snap
- new panel property snapped
- option.syncMargins, if used, will set option.dragit.snap.containment to true
- new options contentSize and panelSize now accept percentage values
- change in options contentSize and panelSize: if a string has only one value the second one is set to the first by default
- new setting ttipEvent for tooltip extension
- added polyfills to improve compatibility with IE11
- various bugfixes and internal improvements
First public beta version of jsPanel version 4