- 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.dialog
is a Third Party Extension developed and maintained by Michael Daumling. - added The object used to set a custom theme with
option.theme
now accepts the propertiesbgFooter
,colorFooter
andborderRadius
as well - added method
jsPanel.getCssVariableValue()
to process css variables in optionstheme
,border
,borderRadius
and methods.setTheme()
,.setBorder()
,setBorderRadius()
- updated internal methods
.getThemeDetails()
,.applyCustomTheme()
and.pOborder()
to support the use of css variables inoption.theme
,option.border
,option.borderRadius
and the methods.setTheme()
,.setBorder()
,setBorderRadius()
- reorganized code in the whole script
- added option
css
to 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
resizestart
of 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
resizeit
interaction - 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.closeOnEscape
instead of just boolean true/false
- bugfix in
dragit
interaction - improved panel positioning, dragit and snap features in order to allow for scrollbars
- added option
parentPanelFront
to the tooltip configuration options (tooltip extension updated to v1.4.0)
- bugfix in the code for the
resizeit
interaction 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
onwindowresize
is activated and the window is resized
- bugfix
layout
extension:jsPanel.layout.restoreId
now returns the restored panel - added parameter
closeOnMouseleave
incontextmenu
extension
- bugfix in the code for the
dragit
interaction reducing memory leaks. See GitHub issue
- bugfix in the
maximize()
method
- renamed panel property
autocloseProgressbar
toprogressbar
. 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
onclosed
callback. - bugfix in
autoposition
parameter 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
contentAjax
optionally 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
onclosed
callback - bugfix in
autoposition
feature of optionposition
- bugfix in
autoposition
feature ofoption.position
- updated
datepicker
extension (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
layout
extension - updated all jsPanel events (
jspanelloaded
,jspanelclosed
, etc.) are now cancelable
- bugfix in option resizeit parameter
aspectRatio
when using modifier keys - fixed/improved some minor code issues
- this releases only fix an issue with
package.json
- updated events
jspanelclosed
andjspanelcloseduser
- updated
dock
extension: 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.snap
feature - bugfix in option
resizeit
- bugfix in option
syncMargins
- bugfix in and updated
layout extension
- bugfix in method
.setHeaderLogo()
- added jsPanel events: implemented event property
panel
referring to the panel firing the event - added
dragit.snap
parameteractive
- added almost all option
dragit
andresizeit
parameters are now editable for already existing panels - added option
maximizedMargin
is now editable for existing panels - added first implementation of
dragit.drop
allowing to move a panel from its current parent element to another one - added SHIFT modifier key action to the resizeit interaction
- updated option
resizeit
modifier key functionality - updated options
dragit
andresizeit
: 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
resizeit
and panel methodresize()
- bugfix in method
jsPanel.close()
- added setting
"content"
to parameteraspectRatio
of optionresizeit
in 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
resizeit
feature - updated z-index handling in
modal extension
- updated handling of
iframes
in the content section while dragging/resizing a panel - updated event sequence:
jspanelcloseduser
is now fired beforejspanelclosed
- updated option
onclosed
callback receives a second argumentclosedByUser
set totrue
if the panel is closed by user action - updated option
onbeforeclose
callback receives a third argumentclosedByUser
set totrue
if 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
contextmenu
extension - bugfix in the
dock
extension - completely recoded methods handling option
position
- completely recoded options
onwindowresize
andonparentresize
- added option
addCloseControl
to 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
headerControls
in order to add custom controls - option theme: when
theme: "none"
or the methodsetTheme()
is used properties assigned via optionsborder
and/orborderRadius
remain 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
border
andborderRadius
- updated tooltip extension: due to new positioning methods
- updated layout extension: added optional use of
sessionStorage
instead oflocalStorage
- updated hint extension: due to updated header controls
- various internal bugfixes
- bugfix in
option.dragit.snap
concerning use oftrigger: 'pointer'
- bugfix concerning
jspaneldragstop/jspanelresizestop
events - bugfix in method
front()
- bugfix in tooltip extension
- added theme modifier
'filleddark'
- added parameter
size
to optionheaderControls
in order to set size of controls - added some more return values to method
overlaps()
- added
jsPanel.errorReporting
to 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
tooltip
extension - 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
onparentresize
to autoreposition childpanels on various resize actions of the parentpanel - added parameter
status
to the callbacksonbeforemaximize
,onmaximized
etc. - 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.of
in 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
fillcolor
to specify a custom background color for the content section - updated option
border
accepts all color names usable with optiontheme
- updated method
.overlaps()
- bugfix in option
resizeit
- bugfix in option
onwindowresize
- bugfix in option
dragit
concerning optiononwindowresize
- updated
start
,stop
,drag/resize
callbacks in optionsdragit/resizeit
now additionally get theevent object
as argument - added polyfill for
String.prototype.includes()
- added CommonJS module exports
- added event
jspanelcloseduser
which is fired when a panel is closed using the header control - added panel method
.overlaps()
- added parameter
aspectRatio
to optionresizeit
- updated panel method
.close()
- it now has a return value depending on whether the panel was closed successfully or not option.container
default value is changed to'window'
. This might need a change in existing code whencontainer: doccument.body
is used even though this was the default previouslyoption.maximizedMargin
now accepts a function as valueoption.theme
supports color names derived from the Material Design Color System like'bluegray700'
,'orangeA400'
etc.- options
position
,dragit
andresizeit
now 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
autoshow
for 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
dragit
andresizeit
- see #53 - added: All parameters of option
position
now accept a function as value
- fix in options
dragit
andresizeit
- 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.closeOnEscape
is set totrue
by default for a modal jPanel
- fixed
jspanel.min.js
to 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
borderRadius
applies 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
minWidth
andminHeight
set to128
- various tweaks in css and js
- fixes a typo disabling option
onwindowresize
- new events
jspaneldragstart
,jspaneldrag
,jspaneldragstop
,jspanelresizestart
,jspanelresize
,jspanelresizestop
- new extension
dock
extending 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-radius
settings 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