Changelog - globules-io/OGX.JS GitHub Wiki
Version 1.38
Due to internal naming change, that does not affect your code, all components have to be updated and are not backward compatible.
1.38.1
New Features
- [Carousel] setting index can now also trigger a CHANGE event
carousel.val(__n, __trigger_bool)
Bug Fixes
- [Container] fix bad injection at build time
1.38.0
New Features
- [App] now has a
construct
constructor to optionally use when extending App - [App] app instance also exists as constant
OGX.Core
- [Form]
bindField
now support a submit callbacksubmit_cb
outside ofform
- [StackedTree] added
prev
andreset
methods - [StackedTree] now passes itself as additional parameter when triggering an event
- [Tasker] new object to manage background tasks at idle via
requestIdleCallback
Bug Fixes
- [Display] fix
bind
withOSE
script not returningtemplate
- [Display] fix dynamic display via
displays
bound to property - [Workers] fix worker running in interval not stopping when calling
OGX.Workers.stop(worker_id);
Other Changes
- [App] reduced memory footprint, updated internal naming
Version 1.37
This version requires OGX.CLI version
1.14.1+
.
1.37.2
Bug Fixes
- [App] fix app not hiding
Splash
due to app notREADY
when a stage has noOML
, faster init - [CLI]
1.14.3
betterindex
management withlink unlink compress restore
1.37.1
Bug Fixes
- [App] not triggering
READY
when rendering astage
with a singlePopup
asOML
1.37.0
New Features
- [CLI]
1.14.1+
now encrypts, decrypts pak files and config - [Data] exposed
encrypt
anddecrypt
methods - [Net] if the config is encrypted, then Net will encrypt/decrypt
.pak
files if the build is packed. - [OSE] added support to target result property in
crumb
such as{{crumb fetch_id $some_property}}
- [Popup] added
shake
method - [Popup] added
keep_centered
flag - [Popup] added support to
css
animations, supported arefade
,slide
,scale
, some can be combined - [Popup] added
MOVE
andMOVED
events - [Touch] improved
auto state
- [App] added support to
css
animations when changing stages, supported areswap
,flip
,slide
,shuffle
, some can be combined - [App] can now be extended by passing a custom class when creating app =
new OGX.App({core: 'YourClass', ... });
Bug Fixes
- [Uxi] fix floats not receiving
focus
when added to stage usingstage.create
- [OML] not attaching floating objects when detaching then using
OSE
script{'default:Uxi':instance}
to attach
Components
- [Docker]
1.3.0
, addedanim_show
flag, defaults tofade slide
- [FlexCells]
1.5.1
, addedaddCell
,removeCell
andgetCellIndex
methods - [ContextMenu]
1.1.1
, removed obsolete code
Other Changes
- [Ghost] now extends
Placeholder
- [Router] now caches the route only when the route has fully rendered
- [Theme] updated to
1.2.2
- [CLI]
1.14.3
better handling oflink
andunlinks
Version 1.36
1.36.3
Bug Fixes
- [Display] fix dynamic bound
OML
display not returned as clone - [Tree] fix
addItem
to item with existing children, duplicated children
1.36.2
Bug Fixes
- [Display] fix dynamic bound
OML
display
1.36.1
Bug Fixes
- [OML] fix promise result not stored if fetch
id
already used, now overwrites result with sameid
- [View] fix using
html
instead oftemplate
in config, re-interpreted afterDisplay
1.36.0
New Features
- [Form] exposed
enabledForm
&disableForm
internal methods, and now enables/disables binded form or desirated form by passing selector - [Form]
toObj
now skips thedisabled
elements if passedtrue
as 2nd param - [Form]
cb_change
of bound form is now passed an object withoutdisabled
readonly
values - [Tags] added
lowercase
flag in config to force saving input tag as lowercase - [Popup]
maximize
method can now be used to temporary turn if on/offmaximize
andmaximize_dbc
actions, by passing aboolean
- [OML] added
getNodeByProp
, returns a node given aproperty/value
pair - [OML] added
getNodeByName
, returns a node given aname
- [List] now supports direct property/value combo in
get
unset
update
methods, auto transformed to{eq:value}
filter
Bug Fixes
- [Form] not validating a field on
paste
Other Changes
- [OML] remove obsolete internal parameters
Version 1.35
1.35.3
Bug Fixes
- [App] fix
Splash
not hiding when using optionbookmark: true
and reloading page
Components
[FlexCells] 1.4.0 added flatten
method
1.35.2
Bug Fixes
- [Router] fix navigation hang when rendering
Stage
object withoutOML
1.35.1
Bug Fixes
- [App] fix crash when using multiple
Stage
objects and start-up stage has no template.
Other Changes
- [CSS] Splashscreen tweaks
1.35.0
New Features
- [App] added
exit
option, set totrue
by default. Set to false and prevent reload/exit. - [DynamicList]
select
andselectIndex
methods can now be passed an additionaltrigger
parameter to trigger selectionevent
&callback
- [Uxi] focus tree downstream via
focus(2)
now skipsfloating
objects that are notvisible
, previously only available with recursive focus nodes downstream viafocus(1)
- [List] with non uniform objects, skip attributes that have a different
type
when expectingstring
tostring
comparison
Other Changes
- [OSE]
loop
optimization - [App] startup speed improvements
- [App] now trigger
OGX.App.READY
once the default route of the focused Stage at start has been navigated to. - [Router] additional
debug
info
Bug Fixes
- [Bind] fix crash when binding a
Uxi
to aUxi
and the filteringUxi
does not have a value yet
Components
- [FlexCells]
1.3.4
auto_hide
now defaults totrue
Version 1.34
1.34.1
Bug Fixes
- [OML] fix
isOML
trying to parse non-json strings
Components
- [Flip]
1.1.0
addedval
method to get the current side
1.34.0
New Features
- [Placeholder]
placeholders
can now be expressed as a 2D Array - [Tree]
addItem
can now be passed an array of items
Bug Fixes
- [Tree] fix parent item
state
not updated after removing a child usingdeleteItem
- [Display] fix dynamic
OML
viaas
Deprecations
- [Data]
OGX.Data.isOML
has been deprecated in favor toOGX.OML.isOML
Components
- [Flip]
1.0.0
newFlip
component to render and flip between 2OML
trees. - [FlexCells]
1.3.3
fixplaceholder
in complexOML
- [Table]
1.2.0
addedmode
inconfig
andmode
method to set selection mode torow
oritem
(prop/val combo)
Version 1.33
1.33.3
Bug Fixes
- [Placeholder] fix offset in placeholder
Components
- [FlexCells]
1.3.0
value ofcellSize
can now be expressed as an array
1.33.2
Bug Fixes
- [Display] fix bind issue introduced with
1.33.1
Components
- [FlexCells]
1.2.2
value ofmin
can now be expressed as an array of mixed values i.e.[100, '40%', '250']
1.33.1
Bug Fixes
- [Data] fix
clipboard
not triggeringfocus
Other Changes
- [OML]
result
method now flushes result cache ifnull
is passed as parameter
1.33.0
New Features
-
[DynamicList] added
findMove
method to move an item at the desiredindex
-
[Net] added
download
method to create and auto click a download link -
[Uxi] added optional parameter
levels
toreveal
method, only revealn
levels away fromUxi
-
[Display] refactoring, added support to
OSE scripts
intemplate
andcss
binds -
[Touch] added
dblick
constant for double click -
[Tree] added
openItem
,closeItem
andgetItemByPath
methods -
[OSE] added
function
keyword for inline function declaration, or link to a global function{{ function myGlobalFunction }} //link to function {{ function myGlobalFunction() }} //execute function {{ function if( $color === 'red' ){ return '#CC2222'; } return '#22CC22'; } }} //declare and execute
Bug Fixes
- [Tree] fix
selection
not reset when selecting using one of the select methods - [Tree] fix item content not showing on first expend after
updateItem
Breaking Changes
-
[OSE]
function
andmethod
keywords now return link to function/method without executing it if parenthesis aren't present.{{ method myMethod myUxi:MyView }} //returns link to method {{ method myMethod() myUxi:MyView }} //executes method and passes available parameters {{ function MyGlobalFunction }} //returns link to function {{ function MyGlobalFunction() }} //executes function and passes available parameters
Note that the breaking nature of this change only applies to the
method
keyword sincefunction
is new
Version 1.32
1.32.0
New Features
- [DynamicList] added
scroll
method to scroll to an item of the list - [Net] added
upload
method that triggers file select process and returns the selected files - [Media] added
crop
method to resize or crop abase64
encoded image
Bug Fixes
- [Placeholder] fix offset in
placeholder
when anode
does not contain anydefault
selector
Other Changes
- [DynamicList] passes itself as parameter when calling
callbacks.render
- [Theme] Updated default theme
Components
- [Chat]
1.3.0
added attach icon to select and send media - [FlexCells]
1.2.0
better handling of existing HTML when creating aFlexCells
without atemplate
Version 1.31
1.31.2
Bug Fixes
- [Carousel] fix
replaceNode
node not always rendered
1.31.1
Bug Fixes
- [Carousel] fix
replaceNode
node not properly removed
1.31.0
New Features
- [Splash] OGX now has a
Splash
screen with loading progress, set inapp.json
- [List]
update
method can now be passed a custom update function such aslist.update({}, (__item) => {});
- [List] added support to
exist
filtering keyword - [Carousel] added
replaceNode
method - [Uxi] added
onResize
override, called recursively down the tree when a node extendingUxi
gets resized - [Point] added attribute
data-ogx-point
to its element reflecting current point, for styling purposes - [Point] added reference to itself via property
id
when triggeringCHANGE
event - [App] now resizes nodes when entering and exiting the browser fullscreen mode
- [App] can now return the
version
from themanifest.json
doingapp.version((__version) => {...}));
Bug Fixes
- [Uxi] fix
reveal
not showing appropriateCarousel
panel when revealing a nested child and using aContainer
as parent
Other Changes
- [Uxi]
reveal
performance
Components
- [FlexCells]
1.1.2
added get/settercellSize
and eventOGX.FlexCells.RESIZE
on user resize - [Docker]
1.2.3
prevent preview from showing if Popup is already showed
Version 1.30
1.30.0
New Features
- [Window] added
title
method to get/set the title - [DynamicList]
no_selection
can now be expressed as anArray
of values, considering thekey
- [DynamicList] has a new select mode
set
, makes the list items push buttons and prevents unselection - [OML] exposed
Core
optionsmax_render_time
via getter/settermaxRenderTime
andmax_depth
via getter/settermaxDepth
- [Tabs] exposed
config.icons
via getter/settericons
- [Popup] new parameter
config.group_icon
as default icon for agroup
- [Popup] added data attribute containing the
group
if set, for styling purposes - [App] grouping popups now adds
icons
into tabs if popup hadicon
- [App] ungrouping popups now restores the
icon
from theTab
Bug Fixes
- [Carousel] fix children
focus
upon rapid change usingnext
orprev
- [Uxi] fix
parents
without arguments not returning all parents - [App] fix Grouping then ungrouping a
Popup
,title
missing in the ungroupedPopup
Breaking Changes
- [Tabs]
SELECT
is now triggered with a 2nd object containing tab info proper toTabs
such asindex
,index
used to be merged to the tab object. This change only affects your code if you were catching the newindex
by listening to this event.
Other Changes
- [Router] added
resolve
method in debug builds only - [Tabs] performance enhancements
- [Container] performance enhancements
1.29.1
New Features
- [Popup] grouping and ungrouping popups, added support for
icon
&icons
- [OML] added support to
inline OML
withPlaceholder
support
Bug Fixes
- [Tags] fix input not hidden when disabled at start
Other changes
- [OML] debug only, prevents crash when trying to create an instance of an unknown class
1.29.0
New Features
- [Data] Size expressions now support min & max via
[min_value, max_value]
- [Data] added
isSizeExp
method to test for a size expression - [Data] added
toSizeExp
method to convert a dimension and a min max to size expression - [Popup] Added
keep_ratio
flag - [Popup] Added support to
min_width
,min_height
,max_width
,max_height
via size expressions throughResize
- [Window] Added support to
min_width
,min_height
,max_width
,max_height
via size expressions throughResize
- [Resize] Added
keep_ratio
flag - [Resize] Added support to size expressions
- [OML] Added
getNodeClass
andgetNodeId
methods
Version 1.28
1.28.0
New Features
- [App] added
dropNode
method to hard delete aStage
or aView
- [Popup] added support to
maximize
andmaximize_dbc
upon grouping popups - [Form] added
submit
config option for afield
, triggerssubmit
of the form on pressreturn
orenter
- [Bind] now supports
Array
as value when filtering - [GroupedList] added
addItems
shortcut method to batch insert items, viaaddItem
- [GroupedList] added
grouping
method to change the grouping parameters - [GroupedList] now supports inserting filtered items without rendering
- [Roulette] added optional
trigger
flag onval
method
Bug Fixes
- [OSE] fix
mongogx
keyword not properly interpreted - [OSE] fix whitespace causing some issues in some rare cases
- [List] fix
group
bydate
- [Popup] non resizable and centered
Popup
inPopup
not always centering upon parentPopup
user resizing - [GroupedList] fix issue related to
group_order
Other Changes
- [App] methods that did not return anything are now chainable
- [Popup] icon of icons will pass the
Popup
as parameter in thecallback
if no parameter was set - [Uxi] generated id format change to
u00000000000
Deprecations
- [Tabs] removed deprecated
editable
flag
Version 1.27
1.27.1
Bug Fixes
- [Point] fix behavior
1.27.0
This version is compatible with OGX.CLI >= 1.13.0
New Features
- [Uxi] add/remove css classes
ogx_uxi_disabled
,ogx_uxi_blurred
to the element based on state - [OML]
Uxi
tag now useswake
orattach
automatically depending on the state of the Uxi - [Calendar] Default config is now 3
layouts
, can be simplified withsimple: true
which reverts to old behavior - [Calendar] Added up and down arrows on multiple
layouts
- [Router] Added
gather
method, returns array of allowed routes given the current scope - [Scroller] Added
placeholder
support - [Stage] Enhanced
placeholder
support - [Placeholder] Performance improvements
- [Resize] Added cursors on rollover resizeable borders and corners
Bug Fixes
- [Overlay] Fix
removeOverlay
called twice in some cases - [Window] Fix
close_on_click_out
not working when aDynamicList
, present inside theWindow
, has been scrolled - [Uxi]
sleep
fix scrollbar not detached ifuxi
isscroll
Other Changes
- [CSS] update to support Calendar up & down arrows
- [Theme] update to support Calendar up & down arrows
- [Point] fallback onto first point if
Point
's container has nowidth
at start
Version 1.26
1.26.1
New Features
- [Scroller] added
dir
property as direction, in the data object of eventSCROLL
- [Tabs] can now be created disabled by setting
enabled: false
- [Router] new method
reload
as shortcut to getting therequest
and navigating torequest.url
again - [Point] can now be passed a
target
to watch within its element, instead of its own element, thenmin max
, can be in that case, expressed in percent - [Point] exposed
getPoint
to retrieve current computed point
Bug Fixes
- [DynamicList] fix issue with
no_selection
- [DynamicList] fix
scope
asstring
afterjwt
- [DynamicList] fix selection with
HIT
mode andscope
asstring
1.26.0
This version is compatible with OGX.CLI >= 1.13.0
New Features
- [Uxi] initial implementation of
toJSON
andtoOML
export methods ofOML tree
- [Uxi] initial implementation of
data
attribute to have a top filter over allUxi
's, and output data viatoOML
andtoJON
- [Uxi] initial implementation of
filter
method - [Core] added debugging protection on production builds
- [Form] added
change
method to trigger a change event on a bound form. - [Router] request has a new
window
property, set to the initial url on first load. - [DynamicList] added
render
config callback andonRender
method - [OSE] added support to
Templater.jmake
via{{template name object}}
- [OSE] added support to
uxi.property
to target auxi
with a different property thanid
- [OML] extended support to creating nodes from string
- [OML] floats (Window, Popup..) can now be created without an id by using
node:Window
instead ofsome_id:Window
- [Point] added support for pseudo filters instead of ids, for objects to re-use
- [Popup] added
maximize_dbc
flag, if set, double click/tap onPopup
head will maximize/restore ifmaximize
is set totrue
- [Scroller] added
percent
method, returns scroll position in percent.
Bug Fixes
- [Router] fix
stage.url
not updated on back button from a url with rewrite/capture - [Popup] fix
matrix
overridingtranslate3d
when applying multiple transformations
Other Changes
- [MISC] Performance improvements
- [Popup] better handling of z
Deprecations
- [Router]
addTohist
is deprecated in favor ofadd
Version 1.25
1.25.3
Bug Fixes
- [Router] fix
url
method returningundefined
1.25.2
Other Changes
- [Uxi] added support for non focusable components
1.25.1
Bug Fixes
- [Uxi] fix focus upon create from another Uxi
Deprecations
- [Ghost] has been restored for legagy support
1.25.0
This version is compatible with OGX.CLI >= 1.13.0
New Features
- [OML] can now render a tree and disable all children down the tree if a parent is disabled upstream
- [App] new parameter
exportable
to pass at instantiation, allows or preventstoOML
export - [App] new parameter
unique
to prevent another instance running on another tab - [App] hot reload CSS and HTML files without reloading the app (dev builds only) via
refresh
method - [Workers] added
run
,start
,stop
methods control a worker that runs in an interval - [Router] added
gate
method andidle
process - [Router] can now cache the route only once with
once
as value for cache expiration - [Calendar] added
offDates
method andoff_dates
config flag - [Calendar] added
noSelection
method andno_selection
config flag - [Scroller] added
overflow
method
Breaking Changes
- [Uxi]
enable
anddisable
within the Uxi have been replaced byonFocus
andonBlur
- [Router] oml in routes must now be specified as "oml"
Previously
"mystage/myroute:OML" : "myOMLFile"
Now must be passed as
"mystage/myroute" : {"oml":"myOMLFile"}
Other Changes
- [Form] updated
autocomplete
behavior onAndroid
webview - [Popup]
width
andheight
methods are now chainable - [Neutralino] default config file removed in favor of the
builder
command of the CLI - [Scroller] Better handling at creating a Scroller over an element with existing content
- [Geo] Better handling of Google loaded with
defer
- [Scope] Better handling of
regex
Bug Fixes
- [Popup] fix
show:false
at creation shows popup anyway - [Tree] item arrow not closed after children is deleted and parent has no more children
- [Install] fix obsolete dir not removed from install procedure, breaking install from CLI
- [Calendar] fix rare issue when calendar becomes unselectable after stressing it with swipes and clicks
Deprecations
- [Scope]
match
was previously deprecated and has now been removed - [Scope]
check
was previously deprecated and has now been removed - [Scope] passing scope as array is now deprecated in favor to scope expressions
- [Calendar]
swipeable
was previously deprecated and has now been removed - [Ghost] is obsolete and has now been removed
Version 1.24
1.24.5
New Feaures
- [Tree]
updateItem
added optionalboolean
parameter to re-render or not the item's children - [Tree] now returns
item
upon callingselectItem
Bug Fixes
- [Tree] fix issue adding items to
root
when nokey
is set
1.24.4
Bug Fixes
- [Carousel] fix issue using
oml
asdisplay
withas
1.24.3
Bug Fixes
- [Carousel] fix
drag
enabling onresize
- [Touch] fix
state
not applied - [Tabs] fix issue with ungrouping
popups
and grouping backtab
missing
New Features
- [Bind] now triggers
OGX.Bind.FILTER
event from the bound component when a filtering happens, passing the property/value used
Other Changes
- [Popup] force
resizeNodes
ontransitionend
aftermaximize
orminimize
1.24.2
Bug Fixes
- [OML] obsolete
route_data
argument not removed
1.24.1
New Features
- [List] simple
group
(1 property) viaget
can now be passed as string
Bug Fixes
- [DynamicList] fix
refresh
withlimit
of 1 - [Carousel] fix
drag
becomes enabled afterresize
called from animated parent, even if was set tofalse
- [List] fix issue using
groupm
viaget
1.24.0
New Features
- [DynamicList]
select
now supports paths such asselect('user._id', 'whatever');
- [Tabs] added
remove
method, expects property/value pair - [Display]
template
can now be set asOSE expression
and is resolved per item (alternative tobind
) - [Display]
css
can now be set asOSE expression
and is resolved per item (alternative tobind
) - [Window] can now be passed
true
asanim
inshow
method, usesdefault anim
- [Bind] added flag
convert
in config,true
by default, auto converts element value to proper type - [OML]
Bind
can now be passed multiple properties such as{'category,type:Bind':{}}
- [Templater] added
amake
method as a shortcut tomake
but using array of objects instead of single object
Other Changes
- [MISC] template files that were in the
/ogx
folder to be used "by hand" are removed in favor of the CLI - [Theme] theme update
Deprecations
- [Tabs]
editable
is now deprecated in favor ofadd
andremove
, removed from production builds
Bug Fixes
- [Tabs] fix previous tab not always selected by default after removing a tab
- [Tabs] fix tab not always selected when hold + drag
- [OSE] fix some
reserved keywords
used as property not converted back - [Form] fix field
restrict
not applied viabindField
introduced withDynamic Forms
- [Popup] fix wrong position on
hide/scale
after adrag
Version 1.23
1.23.3
Bug Fixes
- [OML] fix issue with
Point
andHtml
Other Changes
- [CSS] minor changes
1.23.1
Bug Fixes
- [Roulette] fix issue with multiple
Roulette
andTouch
1.23.0
New Features
- [Router] routes can now be set a
reload
flag, which, if set totrue
, forces the stage to re-render the route/view - [Router] some link options can be set with
data-reload
data-history
- [DynamicList] in
JWT
app mode, settingtrue
forscope
inDynamicList
config forcesJWT
scope. If set to anything else thanfalse
ortrue
, it will use that as scope instead - [Carousel] now can generate automatically each
OML
sub node with aList
and aDisplay
Other Changes
- [Template] now extends
Uxi
andPlaceholder
when it has children - [Touch] better compatibility
- [Misc] better performance
Bug Fixes
- [Popup] fix not restored at proper position after
maximize
- [Object] fix issue with scrollers sometimes rendered twice
Version 1.22
1.22.4
Other Changes
- [Uxi]
find
acceptsfalse
astype
1.22.3
Other Changes
- [Switch] behavior change, allow setting a value even if component is
disabled
- [Roulette] behavior change, allow setting a value even if component is
disabled
1.22.2
Bug Fixes
- [Net] fix
unpack
1.22.1
Bug Fixes
- [Iceberg] fix
touch
not updated to latest version - [Touch] fix broken
Swipe
- [Window] fix
drag
+hide
not disablingdrag
- [Carousel] fix resizing behavior
Other Changes
- [Misc] performance improvements
1.22.0
New Features
- [List]
unique
added support to deep path - [Popup] now accepts percent for
x
andy
inconfig
- [Popup] ungrouped
Popup
will now acquiredragable
andresizeable
properties from parentPopup
- [Popup] ungrouped
Popup
will be created at removedTab
position on screen - [Carousel]
addNode
supports additional callback parameter called instead of firing event after panel is rendered
Bug Fixes
- [Calendar]
MONTH_DAYS
layout extra line of day - [DynamicList] fix missing
unselect
optional callback - [Tabs] fix issues with
hold
+drag
when reordering - [Popup] fix issue with ungrouping popup when its
Carousel
panel containsOML
- [Popup] fix grouping a simple
Popup
with aContainer Popup
when first node isscroll
- [Popup] fix position when resizing
Other Changes
- [Chat] is now removed from the core framework and moved to extra components
- [Popup] user dragged Popup will not re-center on screen resize if
center
was set totrue
- [Popup] if
x
andy
are set andcenter
set totrue
,center
is automatically set tofalse
- [Popup] will not
center
once it's been user dragged, will notresize
on screen resize if it's been user resized - [Misc] performance improvements
Version 1.21
1.21.1
New Features
- [Form] field config
type
can be set tojson
and used with other components likeTags
1.21.0
New Features
- [Popup] new methods
width
andheight
overridingconfig.width
andconfig.height
- [Calendar] new method
resetSelection
- [Calendar] new switch for method
val
to skip the rendering - [Template] is now a separate class that Views extend by default
- [Placeholder] now supports multiple sub nodes per placeholder
Bug Fixes
- [Popup] fix transition preventing resize
- [CalendarEngines] proper default label
ddd
forMONTH_DAYS
layout
Other changes
- [install] fix
fonts
andthemes
missing if the project already hadwww
upon install
Version 1.20
1.20.2
Bug Fixes
- [DynamicList] fix no selection returned if no key was set
Other changes
- [DynamicList] added
key
method to get/set key
1.20.1
Bug Fixes
- [Roulette] fix missing callback placeholder
onSelect
method - [Touch] fix missing some default parameters
- [FormInstance] fix broken default OMLs
Other changes
- [Tree]
types
withoutdisplay
fallback onto default display - [FormInstance] added support to array of objects as cyclable
1.20.0
Experimental Features
- [Workers] New object to manage and execute
WebWorkers
on the fly
New Features
events vs callbacks
Starting at version 1.20, events for most
Uxi
's now have an equivalent method, if you do not wish to use events. It also opens more possibility, like adding some of your business logic inOML
. You can now set your callbacks in the config when creating aUxi
, i.e., forDynamicList
if you are creating at runtime:
{
...,
"callbacks" : {
"select" : YOUR_FUNCTION
"unselect" : YOUR_FUNCTION
}
}
You can also use the new
OSE
method
keyword to target aUxi
's method when creating fromOML
, such as, for a method of the view instance
{
...,
"callbacks" : {
"select:OSE" : "{{method the_method_of_my_view myView:View}}"
}
}
Dynamic Forms
Another new feature that was missing, was the ability to create dynamic forms on the fly. So far, forms relied on Templates. Now you can generate forms using OGX objects to control each type of field. See the Form section for mpore info
let myFormInstance = OGX.Form.fromObject(MY_OBJECT, PARENT_UXI, SELECTOR);
myFormInstance.onChange = function(obj){...};
Changes
- [OSE] new keyword
method
to target aUxi
'smethod
, format{{method METHOD_NAME UXI_ID:UXI_TYPE}}
- [DynamicList] added
onSelect
andonUnselect
methods, andcallbacks.select
,callbacks.unselect
inconfig
- [Tabs] added
onSelect
,onAdd
,onRemove
methods, andcallbacks.select
,callbacks.add
,callbacks.remove
inconfig
- [Tags] added
onSelect
,onAdd
,onRemove
methods, andcallbacks.select
,callbacks.add
,callbacks.remove
inconfig
- [Iceberg] added
onUp
,onDown
,onLeft
,onRight
,onRestore
methods, andcallbacks.up
,callbacks.down
,callbacks.left
,callbacks.right
,callbacks.restore
inconfig
- [Tree] added
onSelect
,onUnselect
,onOpen
,onClose
,onMove
methods, andcallbacks.select
,callbacks.unselect
,callbacks.open
,callbacks.close
,callbacks.move
inconfig
- [GridSwiper] added
onUp
,onDown
,onLeft
,onRight
methods, andcallbacks.up
,callbacks.down
,callbacks.left
,callbacks.right
inconfig
- [NestList] added
onOpen
,onClose
method, andcallbacks.open
,callbacks.close
inconfig
- [Calendar] added
onSelect
,onUnselect
method, andcallbacks.select
,callbacks.unselect
inconfig
- [Carousel] added
onChange
method, andcallbacks.change
inconfig
- [Dots] added
onSelect
method, andcallbacks.select
inconfig
- [Roulette] added
onChange
method, andcallbacks.change
inconfig
- [Switch] added
onChange
method, andcallbacks.change
inconfig
- [Form] new
FormInstance
subclass created fromfromObject
method
Other Changes
- [Calendar]
format
of built-inlayouts
can now be overridden in the config of the layout - [Calendar] custom layout can now receive a config object
- [OSE] prevent reserved keywords interferring with scripts
Breaking Changes
Calendar layout and engine setup format has changed to allow custom parameters to built-in layouts, without the need to create a custom layout. Before 1.20, only the engine could receive data via a config object
{"layout":"WEEK_DAYS", "engine":"CUSTOM_ENGINE", "config":{}}
Since 1.20, both the layout and engine can be passed a custom object. The layout and the engine must be declared by name now.
{
"layout":{"name":"WEEK_DAYS", "config":{"format":"YYYY"}},
"engine":{"name":"CUSTOM_ENGINE", "config":{}}
}
Bug Fixes
- [Touch] fix issue with
Swipe
andCarousel
- [App] fix issue if
App
is created without config object - [Tree] fix issue when creating an empty
Tree
- [Tree] fix issue with selection and icons
- [Tree] fix issue with
Scroller
on new tree - [Tree]
icons
now handled viacss
Other changes
- [Theme] default theme updated to version
1.2.61
Version 1.19
1.19.1
New Features
- [Touch]
Move
andHold + Move
added additional attributesx, y, distX, distY, dirX, dirY
in callback object - [List] added support to deep path sorting
- [List] added support to deep path updating
1.19.0
Dependency revision
Starting at version 1.19,
ajax
is removed from the custom jQuery build. OGX.JS now usesfetch
all across the framework. If you wish to continue using jQuery's ajax methods, feel free to overwrite the jQuery build inwww/js/lib/jquery
with the full production version. The custom build does NOT include these modules :ajax, css/showHide, deprecated, wrap, effects and deferred
. This is a non breaking change unless you rely on these features within your own code.
- [Net] un-jQuery-fy component
- [Lib] slimmer
jQuery
custom build 3.6.1 - [Lib]
moment.js
updated to 2.29.2
Breaking changes
- [Touch] does not add by default an instance of
Drag
,Move
andSwipe
to components usingTouch
by default, they now must be added on demand.
New features
- [Touch] added
Move
method to callback the distance between the start position and current mouse/touch position - [Touch] added
state
optional parameter with valuesauto
ormanual
- [Touch] added
add
,get
andremove
to allow multiple touches of each kind - [Uxi] added
observeOnce
as proxy toobserve
, turned off automatically once observation completes - [DynamicList] added
ogx_dynamic_list_drag
CSS class, applied when an item of the list is being reordered - [Calendar] added
layouts
method to change the layout configuration on the fly
Bug fixes
- [DynamicList] fix broken
reorder
Other changes
- [Core] refactor around object naming and instantiation, smaller builds and performance improvements
- [Core] object names constants have been removed as they were not useful anymore
Version 1.18
1.18.1
Bug fixes
- [Window] prevent
drag
whenhide
has been called - [StackedTree] fix
DynamicList
overriding back button - [Scope] fix
eval
deprecation in production build - [OML] fix
controllers
rendering priority
1.18.0
New Features
- [OSE] data coming from a route-capture (route data) now has its own variable
%
- [Tree] was the last component not hooked to
OML
, has been overhauled and now supportsOML
rendering andDisplay
- [DynamicList] added support to
whitespace
in ids - [DynamicList] added events
SELECT_FILTERED
andSELECT_UNFILTERED
- [DynamicList]
getSelection
now returns filtered selection if the list has been filtered post selection
Bug fixes
- [OSE] better data support in recursive template in template
Breaking changes
- [Tree]
setIconSize
has been removed, now handled viaCSS
Version 1.17
1.17.1
New Features
- [Router] added
expire
method to clear the cache for a given url
1.17.0
New Features
- [DynamicList] added
no_selection
flag andnoSelection
method - [Color]
rgbToHex
,rgbToHsl
ndhslToRgb
now accept any variation of arguments (string, array, object and arguments) - [Calendar] added
BROWSE
event, triggered when user navigates with top arrow buttons - [Form]
bindField
allowed
flag now defaults to/[0-9a-zA-Z‘’'"à-úÀ-Ú\-\!\.\?#@$\:\(\)\/_,;%' ]/
- [OSE] added additional debugging messages if the script fails
- [Uxi] Added optional flag
name
, andgatherByName
method - [Router] added
OGX.Router.GOTO
event, triggered upon internal link - [Router] Added
cache
feature, allow to reuse complete routes from Cache instead of re-rendering
"cache": [{"url": "stage/home", "expiration": 100}, {"url": "stage/about", "expiration": 300}]
- [Templater, OSE] recursive dynamic templating with custom object is now possible via
OSE
{{template STRING|VARIABLE PATH_TO_OBJECT}}
{{template $type $sub_object}}
{{template article #article}}
- [OML] added
Function
tag, which calls a user function that returns aPromise
. Based on resolve, a different OML node will be rendered
{"my_global_function:Function":{
"id": "my_fnc",
"data" : {...},
"success" : [SOME OML],
"error" : [OTHER OML]
}
}
Down the tree, get the result passed to
success
orerror
callbacks by usingOSE
"data:OSE" : "{{result my_fnc}}"
Bug Fixes
- [Router] fix issues with capturing variable in dynamic routes with multiple dynamic routes
- [Form] fix issue with
bindField
overtextarea
with new lines andrestrict
Deprecations
- [Uxi]
render
has been deprecated with no replacement - [DynamicList]
clear
has been deprecated and replaced withwipe
- [Tags]
clear
has been deprecated and replaced withwipe
- [Chat]
clear
has been deprecated and replaced withwipe
Version 1.16
1.16.0
Bug Fixes
- [DynamicList] fix
css
not updated when usingfindReplace
orreplaceAt
methods while using binds - [DynamicList] fix
findUpdate
not keeping selection css class - [Router] Fix issue with
bookmark
option when using multiple stages - [Router] fix issue with navigation history with empty views
New Features
- [Overlay]
close_on_click
flag can now be passed a callback - [Router] Added
request
method - [Router] Added
jail
config flag - [Router] Internal
a
links are now supported, format/stage/route
- [Form]
change_cb
callback now buffered, preventing multiple events when autofilling multiple fields at once - [Uxi] added
parents
method - [OML] value of selector property can now be expressed as an OSE script
The configuration for a object can be reused via an oml file
{"#my_selector .my_class:Views.MyView":"{{oml some_file}}"}
-
Some methods are now chainable (mainly around UX)
app.cfind('Popup', 'my_popup').disableButtons().addLoading(); app.cfind('DynamicList', 'my_list').disable().addLoading(); app.cfind('DynamicList', 'my_list').insert({...), 0).enable().removeLoading();
Version 1.15
1.15.1
- [Dependency] jquery updated to version
3.6.1
- [Dependency] moment updated to version
2.29.2
- [Media] prevent elements re-init, performance improvements
- [Media] buffered observer
- [Scope] fix rare issues with
eval
, performance improvements
1.15.0
- [DynamicList] better handling of
selection
at start-up - [Calendar] added
browse
flag,swipeable
flag deprecated in favor toswipe
- [Router] fix issue with dynamic routes and
:OML
links - [Popup] added
maximize
andnormalize
methods - [Form] added optional
map
parameter topopulate
- [Form] added optional
params
parameter tobindForm
- [Uxi] added shortcuts
on
&off
into prototype overel
Any object extending the
Uxi
class can now be listened to directly at component level as well. Both methods remain valid.
const list = app.cfind('DynamicList', 'my_list');
//Previously has to listen over el
list.el.on(OGX.DynamicList.SELECT, ...);
//Now can also be listened directly at component level
list.on(OGX.DynamicList.SELECT, ...);
//Also usable over this, previously
this.el.on(this.touch.down, ...);
//Now can be listened directly at Uxi level
this.on(this.touch.down, ...);
Deprecations
- [Calendar]
swipeable
has been marked as deprecated in favor toswipe
Version 1.14
1.14.0
- [DynamicList]
select
now supports array if selection mode ismulti
- [List]
in
andnin
added support tonumber to string|array|object|number comparison
- [Router] added
eval
option to handle custom navigation permissions - [Router] scoping now supports
scope expressions
- [DynamicList] scoping now supports
scope expressions
- [Scope] scope to test can now be declared as a
regular expression
- [Carousel] added
prev
andnext
method
Deprecations
- [Scope]
check
has been marked as deprecated in favor toeval
- [Scope]
match
has been marked as deprecated in favor toeval
All scoping must be declared as scope expression vs previously array. This change impacts
Router
andDynamicList
. Previous route scope
{"mystage/myroute":{
...
scope : ['public', 'user']
}
New format
{"mystage/myroute":{
...
scope : 'public user'
}
Version 1.13
1.13.0
- [Stage] template is now script interpreted
- [Data] added
eval
method - [OSE] fix issues with some
OSE
scripts not evaluated - [Form] removed obsolete polyfill used for
validate
- [Form] fix
change
not triggered when backspace or delete on a field - [Uxi]
reveal
can now be passed an animation constant, only applicable when targeting aPopup
orWindow
- [Uxi]
gather
can now lookup subclasses of Views, Controllers and Stage, such asViews.Myiew
vsView
Version 1.12
1.12.0
- [DynamicList] fix
mode
live change not allowing selection - [Switch] fix
toggle
not triggering update forForm
when stressing it - [Form] minor improvements
- [Router] fix routing issues introduced in 1.11.0
- [Router] faster clearing of existing nodes
- [OML] minor refactoring, speed improvement
- [Placeholder] added support to
default
for Stage - [Point] now extends
Placeholder
- [Popup] fix animation not working on popups with heavy content
- [Stage] now extends
Placeholder
- [Object] internal, better handling of
uxi.kill
- [OML]
Controller
are now constructed last (in the entire tree)
Breaking Changes
Stage now only supports one routing element and the selector of the element must be set in the Stage OML such as
{'my_stage:Stage':{
...,
placeholder:'#my_element'
}}
This change is expressed in the routing, by changing the existing target element of the route, from
...,
'my_stage/my_route':{
'#my_element:SomeObject':{
...
}
}
To this new version. We set the element once in the Stage, and then we just use
default
for all the routes
...,
'my_stage/my_route':{
'default:SomeObject':{
...
}
}
Version 1.11
Deprecations
- [Scope]
match
has been deprecated in favor toeval
which supportsscope expressions
- [Container]
showIndex
has been deprecated in favor toindex
1.11.0
- [Fork] added support to
ose scripts
- [Fork] added support to
scope expressions
- [Chat] Emoji bar via
config.emojis
- [OML, Placeholder] added support to
OML nodes
declared asstring
orose script
- [OML]
max_depth
is now an optional parameter in app config - [OML, OSE]
OSE
scripts are now evaluated recursively with amax_depth
- [Templater]
jmake
added support to global variables - [Popup] fix possible issue with incorrect size of childnodes at start
- [View, Html] now extend
Placeholder
and automatically convertsdefault
selector in children nodes innode:OML
- [Uxi]
observe
now buffered, waits the end of the rendering before triggering a change. - [Uxi]
find
now acceptstype && id
ortype || id
as parameters - [Uxi] added method
stage
to lookup stage from anyUxi
- [Uxi, Carousel, Iceberg, GridSwiper] Tweaks around
focus
andblur
over subtree - [Carousel]
empty
andrender
methods - [Tabs] added
enableTab
anddisableTab
methods
Version 1.10
1.10.1
- [Poly]
String.substr
is now polyfilled since it has been deprecated - [Popup] fix
drag
flag set as function not calling it ifgroup
flag is set - [Core] better handling of grouping popups
- [Uxi] better handling of
blur
andfocus
whendetach
orattach
is called - [Carousel] link nodes to panels performance improvement
1.10.0
- [Net] added support to
.pak
files (oml
,json
andtemplates
) via the CLI's pack command - [Core] minor enhancements
- [Data] enhanced
same
method to also compare non arrays or objects - [Data] added
diff
method - [Form] added
diff
flag for a form
Version 1.9
1.9.4
- [Form] added
diff
flag for a field - [Roulette] minor optimization
- [Popup] fix
width
height
interpreted as size expression uponresize
when they're not - [DynamicList] fix broken
index
method - [DynamicList] fix possible issue when using
key
that can be both interpreted asstring
orint
- [Core, Uxi] fix issue with
app.moveNode
1.9.3
- [Window] Drag can now be enabled/disabled at runtime with the
drag
method - [Scroller] fix not always triggering
TOP
event - [Form] fix
paste
fortextarea
- [Chat] character input now
unrestricted
by default - [DynamicList] fix issue with
scope
not triggering proper item
1.9.2
- [Chat] fix
prependMessages
not keeping scroll position - [Roulette] fix internal
mode
not reset after changing list type (string
vsobject
) - [OSE] logs invalid scripts in
console
- [Tags] added
required
flag - [DynamicList]
getSelection
now returns aList
(vsarray
) ifmode
isn'tsingle
1.9.1
- [OSE] fix
OSE
scripts in loop - [NestList] better handling of
scroller
- [Carousel] fix
Uxi
with no name set not focusing - [Dots] now auto updates when
Carousel
panels are added or removed - [Theater] fix issue with
Theater
not showing
1.9.0
- [Deprecations] all
deprecated methods
removed - [Calendar] added
refresh
method - [Uxi]
css
is now set atUxi
level, all components inheriting it - [OML] now handles
OSE
expressions in selectors viadata:OML
tag - [Index] move from
text/javascript
toapplication/javascript
- [Dependency]
HowlerJS
updated to v2.2.3 - [Dependency]
MomentJS
updated to v2.29.1
Version 1.8
1.8.6 - 1.8.8
- [Install] better upgrade path
1.8.5
- [Calendar] fix selectable overwritten after swipe
- [Install] fix broken path
1.8.4
- [Form] added
getBind
andupdateBind
methods - [OSE] fixes the use of
&&
in OSE expressions - [Switch] Better handling of omitted default value with custom data
- [Carousel] Added
dragLeft
,dragRight
methods anddrag_left
,drag_right
config flags
1.8.3
- [MISC] Minor improvements
- [DynamicList] added
index
,replaceAt
,refreshAt
methods - [Tags] Fixed escaped value if
limit
is 1 - [Carousel] tightened internal selectors for possible nesting issue
- [OML] nodes can now be declared as array of
OSE
scripts - [OML] added
getNodeById
method
1.8.2
- [Templater] added
jmake
method to templatize inside JSON outside ofOSE
- [App] better handling of
moveNode
- [OML] better handling of
max_render_time
- [Uxi] added optional parameters to be passed to
observe
callback - [Popup] fixes
getBestSize
after user resize - [Tabs] auto go to previous
index
upon remove tab - [Carousel] fixed issue with animation when removing first panel
- [Container] exposed tabs object as
.tabs
and carousel as.carousel
- [MISC] minor optimizations
1.8.1
- [Build]
Hotfix
deprecations removed early in production build
Deprecations
All deprecations will be removed in
1.9.0
- [Templater]
getTemplate
deprecated, useget
- [Templater]
templatize
deprecated, usemake
- [OML]
replaceNodeName
deprecated, userename
- [Tags]
addTag
,removeTag
deprecated, useadd
,remove
- [Tags]
renderTags
deprecated, userender
- [Tabs]
addTab
,addTabAt
,removeTab
,removeTabAt
deprecated, useadd
,addAt
,remove
,removeAt
- [Tabs]
selectTabAt
,removeCurrentTab
,selectTab
deprecated, useindex
,removeCurrent
,select
- [Scope]
setScope
,getScope
,setToken
deprecated, usescope
,token
- [StackedTree]
setTree
deprecated, useval
- [Audio, Net]
Hotfix/workaround
new Android webview limitation of 40 (pre)loaded sounds
1.8.0
- [Uxi] scroller now exposed and available via
uxi.scroller
- [Popup] better handling of animations
- [Loading] fix issue with
Popup
- [Misc] minor enhancements
Version 1.7
1.7.6
- [Switch] fix default value if no
value
is passed anddata
is different than default data - [Form] fix
mask
when end user pressesbackspace
orsuppr
in the middle of the string - [App] added
iOS
method to check if the app is currently running on iOS or not - [OSE] improved parsing
- [Data] added
clipboard
method
1.7.5
New Features
- [Uxi] Ability to detach/attach/move via
detach
&attach
methods andapp.moveNode
- [OML] Now supports passing fully formed Uxi as node in OML tree via
:Uxi
tag - [Placeholder] objects in
default
placeholders can be now be declared as string to link to OML file - [App] disable context menu by setting
disable_context
totrue
- [Calendar] select
mode
Breaking Changes
- [DynamicList]
getSelection
now returns a single object (or false) if themode
is set tosingle
Other Changes
- [Touch] added
touch.isRightClick
method - [Theme] updated default theme
- [Form] added
unbindAll
method - [Form] enhanced compatibility with
Roulette
,Switch
,Tags
when used as pure HTML form viapopulate
- [List] can now compare and skip different value types
- [OSE] fix not returning clone of
oml
orjson
file - [Calendar] fix not resetting to proper date on new
val
- [Data] Added
stringToLocale
method - [Theme] default update to
1.2.0.25
- [App] Added
moveNode
method - [Switch] Removed strict evaluation
- [Tags] Added
hide_input_on_disable
flag - [DynamicList]
resetSelection
called upon callingval
- [DynamicList] list is now cloned if no
key
set in config - [NET] fix sounds not preloading if browser tab is blurred
New Features
- Objects sensitive to scope change, when applicable. For now supported only by
DynamicList
, more support incoming.
1.7.0
- [Placeholder] added support to
node:OML
asOML
orJSON
file viaOSE
script i.e.'node:OML':'{{oml myfile}}'
- [JSON]
app.getJSON
now returns a clone - [OML]
app.getOML
now returns a clone - [DynamicList] fix initial rendering happening in a different thread, breaking OML in complexe cases
- [DynamicList] added
selection
flag inconfig
, expects array of ids to select - [DynamicList] added
reselect
flag inconfig
- [DynamicList] items of list are now scope sensitive via
OGX.Scope
if turned on, and scopeCHANGE
- [Form] fix issue with
max
- [Router] fix issue with routing data
- [Scope] new event
CHANGE
- [Audio] Better
Howl
caching - [Scroller]
scroll
method - [Scroller] better handling of button fade animation
Version 1.6
1.6.2
- [Form] added mask support to autofill
- [OML]
max_render_time
is now available for override - [Window] added support to callbacks when
config.icons
are set as objects - [Theme] default theme updated to
1.2.0.15
- [Roulette] added
capture
parameter to config for drag touch setup - [GridSwiper] added
capture
parameter to config for drag touch setup - [Carousel] exposed
drag
method to enable/disable drag or retrieve drag status - [Scroller] untrap move event
- [Touch] added
capture
config parameter to trap event - [Touch] added
OGX.Touch.Click
replacement performance forclick
event over a class with a lot of instances
1.6.1
- [Core] added support to AES encrypted app.json via CLI encrypt command
1.6.0
- [Audio] now relies on Howler.JS
- [Dependency] added Howler.JS
- [Bind] fixed binds with
remote_property
- [Form]
populate
force values as string - [Form]
populateForm
marked as deprecated and removed from production builds, usepopulate
- [Form]
validateForm
marked as deprecated and removed from production builds, usevalidate
- [Form]
formToObj
marked as deprecated and removed from production builds, usetoObj
- [Switch] fixed
change
not always triggered
New Features
- All sounds are now handled via Howler.JS and has been added as dependency.
app.json
encryption (1.6.1)
Version 1.5
1.5.9
- [Display] fixed
css
bind
withOSE
expression - [DynamicList] fixed
findDelete
returning List instead of item is limit is 1 - [GroupedList] fixed
updateItem
inducing a group change - [GroupedList] fixed
replaceItem
inducing a group change - [GroupedList] fixed
updateItem
inducing a group change - [GroupedList] fixed group ordering ignored at init
- [GroupedList]
updateItem
strict
is nowfalse
by default - [List] fixed
findUpdate
limit
1.5.8
- [Display]
css
now supportsOSE
expressions - [GroupedList] fixed mask not updating after a list's nest has changed length
- [GroupedList] fixed broken
updateItem
when changing group - [GroupedList] fixed not properly cleared on re-render
- [Window] added
icons
methods to set/change icons on the fly - [Geo] return
false
if directions are not found - [App] better
findWindow
method
1.5.7
- [Scope] strict mode
- [Geo] remove marker on route option of
drawRoute
- [DynamicList] fix insert passed as array
- [DynamicList] fix
delete
when list is not filtered - [List]
findUpdate
,findDelete
andfindReplace
now support path to property
1.5.6
- [Form] can now be muted via enable/disable
- [OML] return when Html exceed render time, ensures rendering
- [Touch] swipe stop propagation on move
- [Scroller] scroll stop propagation
- [Geo]
clearMap
deprecated, useclearRoute
- [List] added
update
method - [Display] CSS conditions based on
OSE
now - [Window] disabled when
Scroller
bubbles up - [DynamicList] Fix unselect if id value is int as string, convert back to string
1.5.5
- [NestList] fixed preferred position not respected if index is 0
- [GroupedList] fixed
mode
of DynamicList in NestList not passed when creating group - [GroupedList] fixed
replaceItem
, group not removed if group becomes empty - [Router] fixed
404
and403
as int instead of string - [Tags] current tag can be set by passing prop val to find via
val
method - [Tags] fixed disabled after
clear
- [Tags] fixed hidden value not empty after
clear
1.5.4
- [Window] added
HIT_BACK
event triggered when main back icon is touched and Window hides whenhead
is set toback
- [DynamicList]
mode
multi
SELECT
/UNSELECT
event now broadcasted with item (vs selection), usegetSelection
to get full selection - [OML] prevent adding to cache reused uxi via Uxi tag
- [Theme] update for Popup
- [Popup] trigger
CLICK_BUTTON
even if callback was passed - [Popup]
enableButton
&disableButton
methods - [Chat] message url encoded/decoded via flag
url_encode
- [Switch] minor refactor, trap touch down
1.5.3
- [Scroller] changed position due to breaking on iOS
- [Popup] center prevent centering out of view of parent if parent height is bigger than screen height
- [DynamicList] now passes unselected object when triggering
UNSELECT
- [OSE] Added support to callbacks and passing local, thread or temp object as parameter
- [Chat] Auto encode/decode URI components
1.5.2
- [Theme] Default theme update
1.5.1
- [NPM] Better install procedure
New Features
-
[Point] now dispatches at its element when a break point is reached
{min:MIN_WIDTH, max:MAX_WIDTH}
-
[Point] Can now be instantiated without an element, takes by default the parent element in the
OML
tree.selector
becomes its id, likeWindow
andPopup
, such as"#view:Views.MyView":{ ... "node:OML":{ ..., "myPoint:Point":{ "0-768":{ "default:Templates.MyTemplateA":{...} }, "768-1024":{ "default:Templates.MyTemplateB":{...} }, ... } }
-
[Router] routing added support to OML subfile via
:OML
tag, such a, for an OML file namedmyOMLFile
and preloaded"mystage/myroute:OML":"myOMLFile"
-
[OML] added support to
OML
subfile vianode:OML
tag with string as value, or asOSE
expression. Both produce the same result"node:OML":"myOMLFile" "node:OML":"{{oml myOMLFile}}"
-
[Data] added
getBestSize
method -
[Popup] added support to size expressions via
OGX.Data.getBestSize
-
[Window] added support to size expressions via
OGX.Data.getBestSize
Breaking Changes
- [Point] OML markup width range changed from
\d+\:\d+
to\d+\-\d+
. In other words,0:768
should now be0-768
Bug Fixes
- [OML] fix not finding objects to reuse due to hash leftover in
id
- [OML] fix cycling over children of reused object via
Point
- [OML] fix issues with scrolling
Uxi
not properly destroyed
Version 1.4
1.4.3
- [OSE] added
screen
andscope
keywords - [List] added
deleteProperty
method - [Form] now returns invalid if
validate
set totrue
if all fields are empty even if not required - [Tags] clear suggestions when
val
method is passed data - [Tags] Fix
undefined
tag issue withobject
mode
1.4.2
- [Tags]
TAG_REMOVED
event is dispatched with object if mode isobject
- [Tags] Added
SELECT
event - [Tags] Added
display_more
andclick_more
flags - [Tags] Constants values for mode changed to
object
,string
,ascii
, constants unchanged - [Tags] Added
strict
flag - [Tags] Fix issue when using
object
mode and clearing input - [Tags] Fix hidden value not stringified if
max
flag set to 1
1.4.1
- [Core] Added
jwt
flag to config - [Scope]
setScope
method ifjwt
flag set tofalse
(vssetToken
)
1.4.0
News Features & Breaking Changes
app.scope
has been removed. Changing the scope for OGX.JS is now done by passing a JWT token and an issuer. The token is verified and the scope is inherited from the scope value of the token.
OGX.Scope.setToken(JWT_TOKEN, ISSUER);
Bug Fixes
- [OML] Fixed broken
Bind
Version 1.3
1.3.0
New Features
- [Router] force defaults options when options is
null|false|undefined
- [Router]
403
and404
fallback events if router.errors are not set - [Debug] additional debug messages
- [App] added
getOML
method to retrieve loaded OML files from cache - [OML] node can be passed as a OSE script to load an OML file as node
Version 1.2
1.2.10
- [Tags] added display_max flag to limit the number of suggestions
- [DynamicList] fix ghosts remaining in shadow copy of list after deletion if list is filtered
1.2.9
- [OML] refactor blur/focus sequence, fix issues related to objects not receiving focus
- [RouletteTree] better handling of blur/focus for Roulettes
1.2.8
- [Bind] refactor event handler, better handling of multi properties scenarios
- [Prod] console disabled in production builds
- [Carousel] fix Uxi's created with scroll flag not receiving focus
- [Uxi] prevent focusing all nodes along the tree when focusing a top parent with a disabled node along the tree
1.2.7
- [Prod] fix broken prod build from minifier update
- [Debug] version now injected into debug builds
- [Bind] fix local property when bound component value is an object
- [OSE] fix oml property interpreted as oml file
- [Bind] force value as array if value is a OGX.List
1.2.6
- [Window] hide anim param pass true to reuse original anim
- [RouletteTree] fix disabled at start in float objects
- [RouletteTree] consider string of length 0 as null value
1.2.5
- [Object] fix recursive destroy cycling over already destroyed nodes
- [App] fix broken getVisiblePopups
- [Carousel] prevent calling focus/blur on non init child instance
- [Carousel] linkNodes now at construct (vs init)
- [Uxi] added regex support for id to find and cfind methods
- [Popup] ungroup reuses group icons
1.2.4
- [OML] fix Uxi element & listeners not reinit after Uxi move
- [Object] added uncache method
- [Carousel] better handling of nodes indexes
- [Carousel] fix node not focused after tab order swap via Container
- [Tabs] fix wrong cache order after order change from drag
1.2.3
- [Bind] added support to path-to-property of remote_property
- [OML] fix replaceNodeName not returning more than one node
- [OSE] added data support to template in template
- [OSE] fix loop interpretation in some rare cases
- [Templater] OSE template command now handled by Templater instead of OSE, allow data support of template in template
- [RouletteTree] fix disabled roulettes after init with disabled then enable
1.2.2
- [NPM] Restore missing install.js for npm
- [Carousel] no anim on first show (via config.index)
- [APP] Prevent multi UNGROUP trigger, Carousel added anim switch in showPanel
1.2.1
- [Switch] inverted default labels
- [OSE] better variable vs string detection
- [Uxi] faster reveal, better topIndex
- [Uxi] fix not added to cache after Popup group
- [Popup] group fix inverted tabs
1.2.0
New Features
- [OML] added
Uxi
type node, to move to a new node an existingUxi
- [Uxi]
gather
now returns anOGX.List
- [Overlay] added
addGroupOverlay
/removeGroupOverlay
methods - [Tabs] added
val
method to get/set the tab by label - [Container]
tap
+hold
+drag-up
releases content into newPopup
- [Popup] added
group
flag in config. Drag-able popup merge into singleContainer
popup if same group+parent overlap - [Popup] added
title
method to set/get title, exposedz
- [Popup] added
icons
method to set/get icons - [Popup] added
OGX.Popup.GROUP
andOGX.Popup.UNGROUP
event - [App] added
groupPopups
andungroupPopup
methods - [Tabs] added
index
flag in config - [Carousel] added
index
flag in config - [Container] added
index
flag in config - [Touch]
hold
+drag
now also returns relative movement
Bug Fixes
- [Carousel] fixed
addNode
andswapPanels
method
Misc
- [CSS] base + base template updated
Version 1.1
1.1.16
- [Form] populate variable path support
- [Popup] enableButtons disableButtons
- [Chat] fix templating errors
- [Uxi] fix hash not removed from id in cache
- [Container] use val of Carousel instead of setPanel
- [NET] fix sound cache on iOS, better handling of sounds
1.1.14
- [List] prevent rare issue where item is showing as match with no match
- [List] List fix 'in' string to array of strings comparison
- [Data] fix typo in JSON conversion
- [RouletteTree] blured + setVal prevent focus Roulette
- [DynamicList] fix mode multi list with no key unselect
1.1.13
- [Data] stringToVal JSON support
- [Popup] fix resize from left side with anim scale or fade
- [DynamicList] fix bind with RoulettreTree with no value
1.1.12
- [RouletteTree] fix enable roulette not enabled
- [RouletteTree] fix val() return no val if no action
- [Tags] supports forms via hidden input (read only)
- [Tags] hidden input as string (vs array) is max set to 1
1.1.11
- [Build] version bump due to broken npm publish
1.1.10
- [Build] fix bad 1.1.9 build
1.1.9
- [Popup] interactive icons
1.1.8
- [NET] additional messages, fix sounds not loaded on iOS
1.1.7
- [NET] fix path issues with Cordova
1.1.6
- [Controllers] fix destroy, remove obsolete el tag
- [Router] allow same element ids per stage
1.1.5
- [Uxi] Faster clear, additional debug messages
- [Object] additional debug messages
- [Theme] Default template update
1.1.4
- [DynamicList] Added OML support in findDelete, findUpdate, refresh
1.1.3
- [List] fix obj to obj comparison in mode 'in'
1.1.2
- [OML] hotfix
1.1.1
- [Router] added origin:Route 'self'
- [NestList] fix broken render
- [Display] fix templatize old method
- [Threater] additional debug messages
- [List] fix cache single property
- [Cache] fix sound cache
- [Audio] fix sound get/play
1.1.0
New Features
- [OSE] The templater engine got it's own enhanced scripting engine, named
OSE
OGX Scripting Engine - [OSE] Full support of MongOGX find queries in
OML
- [OML]
DynamicList
item is now accessible as variable from OML as{{&item}}
or whatever is set asas
flag in config ofDynamicList
viaOSE
- [Cache] cache-able loaded files are now stored in a new
Cache
class. - [Templater] now uses
OSE
to manipulate and output HTML based on data, allows template in template,getTemplate
now relies onCache
- [Uxi] new
cfind
method to faster globally retrieve anotherUxi
from the uxis' internalCache
- [Object] now has a cache where all living Uxis are stored and cached (via a List) for faster lookup
- [CLI] the
CLI
is now available on all platform via npm/node.js - [Form] field
pattern
can be set either by config or in the html - [List] new method
unset
, list cache now supports combined indexes - [List] filtering with
in
now works with object to object - [Bind] refactored binds, new
Bind
class, now extendable - [Bind] Binds can and should be set in OML, multiple binds per property supported
- [NestList] now bindable/filterable (title only)
- [Debug] new
Debug
class, only available in dev/debug builds - [Calendar] date can be passed as string YYYY-MM-DD
Breaking Changes
- [Uxi]
container
in config is nowel
- [OML] variable used in
:Data
properties must now be set as:OSE
tags, ie:'mydata:OSE':{{#wathever}}
(vs old'mydata:Data':#wathever
) - [OML] fetching preloaded json document now as
OSE
:{{json NAME}}
vs{{NAME.json}}
- [Route] to capture, must now be set to
/stage/users/id:[0-9]+
vs old/stage/users/[0-9]+
- [Display]
view
flag not supported anymore, useoml
flag.template
andcss
still supported - [Core] use of constants as string removed in
app.json
, use constant value - [Core]
preload
tag ofapp.json
is now an object, with paths as properties, useCLI
- [Window] Constant change (
ANIM_LEFT
,HEAD_BACK
), nowLEFT
,BACK
- [Popup] Constant change (
ANIM_SCALE
,ANIM_FADE
), nowSCALE
,FADE
- [HTML] templates are now stored in
html/
(vshtml/templates
) - [List]
get
returns an object iflimit
is set to 1 - [RouletteTree]
val()
now returns a single object - [Templater]
templatize
now requires the string first - [DynamicList] unified methods with
OGX.List
,replace
nowfindReplace
,update
nowfindUpdate
andgetIndex
nowfindIndex
Bug fixes
- [RouletteTree] losing touch swipe after disable then enable
- [GridSwiper] fix swipe not working in Popup
- [Calendar] fix display date not same as date when init with date, select date while swiping
Version 1.0
1.0.14
- [Form] bindField added validate flag
- [Form] bindField trigger change if enter is pressed on non multiline field, supports validate
- [Templater] added global vars support in loop operation
- [Stage] added OML support in app.json
- [Stage] prevent sleeping before OML rendering done
- [Router] enforce reload flag, no adding to history if reload false on same stage and url
- [Data] moved stringToVal method from Form to Data
- [Roulette] added support to data-value attribute to set initial value
- [Switch] added support to data-value attribute to set initial value
1.0.13
- [Popup] Prevent anim transition while dragging
- [Popup] Remove duplicate declaration in default config
- [Popup] Simplified constant values
- [Popup] App defaults for Popup supported across app
- [Switch] Fix toggle
- [App] removePopup true as anim reuses opening anim
- [App] Removed obsolete defaults in app.json for Popup
- [Theme] Popup and Switch tweaks
1.0.12
- [Form] Fix masking with non char keys
- [Form] Fix autocomplete with restrict
- [Geo] Fix zipToAddress
- [Popup] Fix fade anim
- [Popup] Added scale anim
- [Theme] Popup Support for scale anim, clean up
1.0.11
- [Media] Resize directly on bind
- [Form] Better handling of allowed pattern flags
- [Form] Better populateForm method
- [Form] populatForm support for Switch and Roulette
- [Form] stringToVal method
- [Switch] align defaults with doc, support for populateForm
- [Roulette] support for populateForm
1.0.10
- [Uxi] Now handles recursive OML on create
- [Media] Fix bind, resize arg now optional
- [Form] Fix bindField paste with allow/restrict
1.0.9
- [Tags] Change event now broadcasts complete array of user tags
- [Form] Fix missing field property in change_cb when hit enter with bindField
- [Misc] Updated readme
1.0.8
- [App] Fixed template
- [Index] Added preferred template path
- [Index] Fixed CSS core filename
1.0.7
- [Core] Added isDarkMode and toggleTheme methods
- [Core] CSS update
- [Theme] Default theme updated, fixed bad path in index for base folder
1.0.6
- [Tree] setIconSize
- [Calendar] MONTH_WEEKS css not defined
- [Popup] not showing when show set to true in OML
- [App] Prevent onResize error when stage not ready yet
1.0.5
- [DynamicList] replace with no key set
- [DynamicList] update with key set, omitting key on call, arguments fixed
- [Scroller] triggers by default, scrollbar invisible after disable/enable
1.0.4
- [GroupedList] empty array issues
- [DynamicList] pass only one param (using key)
- [DynamicList] refresh method
1.0.3
- [DynamicList] listenBind, toggle, insert at 0
- [Window] css remove obsolete classes, overlay z-index
1.0.2
- [DynamicList] binds linked to blur/focus/enable/disable
- [Uxi] reveal faster and refactored
- [Misc] issues
1.0.1
- [Roulette] Misc issues
- [Touch] disable
- [Uxi] Faster reveal