0.1.5 (2023-11-03)
- fix model reactivity when passed to the form through v-model (ce9079c)
0.1.4 (2023-11-03)
- export
BtAbstractVueForm
(ce423df) - export missing constants from the
ui
package (b89db49) - stop setting compiler options when only the vue runtime is present (2213b9e)
0.1.3 (2023-11-02)
- fix SSR (367bbc2)
- fix sub properties not being watched (2cccd81)
- set
null
toundefined
values in the decoded json (1b40957) - stop setting compiler options when only the vue runtime is present (2213b9e)
- bt-form can not configure the validation strategy of the form (afefcda)
- dialogs now supports returning a result to their caller when closing (3da11cf)
- IsType() validator now differentiate integers from floats (34be272)
0.1.2 (2023-05-25)
ApplyToExistingApp
doesn't override globalProperties of the input app anymore (5e8dd36)- add checks for ssr (8f4272c)
- ensure string when calling
updateSize
(b906d9d) - fix several SSR related issues, add a new
SsrPrefetch
immediateStrategy for VueTypescript watchers (a44c5ba) - fix style injection issue on the tree component (28fb724)
- icons from
vue-material-icons
andvue-remix-icons
are now auto registered and usable withbt-icon
as soon as they are imported + add aIconSet
utility used to register new icons intobt-icon
. (57c8b7f)
0.1.1 (2023-04-29)
- ensure instanceof on a Vue component is made on the class constructor (d7a2a4b)
- wrap the bt-form template into a bt-client-only to workaround ssr error (d7ad9dd)
0.1.0 (2023-04-28)
- fix invalid ctor in the stack (12a6605)
0.0.2 (2022-10-12)
- fix "[Vue warn]: onMounted is called when there is no active component instance to be associated with..." if the watcher triggers before the delayed trigger had the chance to fire. (0cc2322)
- SSR support (b7bbdca)
0.0.1 (2022-10-10)
areEqual
andcompareObject
now do a simple comparison of non literal objects (49cf2e1)floatingLabel
was not ignored (9d23e60)get
now searches through its parents (798de39)immediate
tofalse
now works as it should (0dbae44)validate()
was not returningfalse
when the validation failed in a child component with an async validator (0de14b1)- active variants were not updated properly when
onChange
was called without anything actually changing (c9a56f6) - add a
Canceled
status to the response (c6b7fe1) - add a check for the existence of
hasOwnProperty
(90323b0) - add missing arguments (08c82df)
- add missing transform in the direction form => model for form controls (a74f08d)
- add missing unsubscribe (e8b8e4b)
- add previously ignored icons (222f758)
- allow configuration changes to be processed even if already working (b18d3e0)
- allow for
null
theme inbt-theme
+ bug fixes (bb0d40a) - always delay immediate watchers trigger to the next tick (1b35102)
- an empty array is not considered a valid value anymore (8fa0940)
- an item in indeterminate state was not clearing its value from the form control (e734bb8)
- api transformer now works with relations (29b6246)
- avoid doing getPrototypeOf on
null
(3f7d948) - avoid proxify readonly props (bafdfca)
- better handling of null (c42783b)
- better type checking (640fc8c)
- better way of mapping Vue methods and attributes, now working with a prod build (11e5e32)
- bug fix (b53e664)
- bug fix on the overlay + replace
modelValue
byvisible
(582bc5f) - bug fix when cloning arrays (5907b64)
- bug fixes + caching (3239d11)
- bug fixes on the new implementation of trim/ltrim/rtrim (e634c4f)
- build: fix the builds filtering function (fc01636)
- cap the last result count to the total number of items (3a97d38)
- check event's type before assigning the response (048cd7f)
- check that the promise has not already been resolved (f7488a5)
- check the instance equality instead of the identifier. The identifier can be the same even though the
Choice
instance has changed. (31a96e5) - child components are now matched by
id
instead of reference to avoid issues when components are proxified (0bf5381) - components can now access plugins by doing from their
this
(e.g.this.$router
, orthis.$store
) (b908311) - computed with an undefined default value are now correctly created (91ee446)
- configuration was incorrectly extending values (3b1efc7)
- controls that become concrete don't trigger a validation anymore (1a063d4)
- css fix (e5d4255)
- Dependabot alert #7 (6ec968e)
- directives' instances got messed up when multiple directives were applied on the same component (98d8787)
- dispatch results now properly bubble up errors in the parent chain (c1ef459)
- ensure
inlinedChoices
gets its values from the viewData, so proxies are kept (6f8d483) - ensure a change really occurred when triggering a side effect (c388e0a)
- ensure buttons never trigger when disabled (b978781)
- ensure only the view model from which originated the focus is focused (445495b)
- ensure promises rejections are always caught (1fb5788)
- ensure promises rejections are always caught (99c5780)
- ensure the random is always start with a letter to always have a valid class name (563c936)
- ensure the regex's index is reset between each test (b25b791)
- ensure the request is not canceled multiple times (7c3c82d)
- ensure the right render function is assigned when the template is inherited. This bug only appeared in production builds, when the parent component is processed before the child. (37a6961)
- ensure the root element exists before accessing its attributes (de4fa4f)
- ensure the stack is always cleared when leaving the method (b26326a)
- event dispatcher and pipeline can now be mutated while they are running + priority fixes for the pipeline (c1728bb)
- filtering related fixes (657f31e)
- finally creates timing problems, fixed by falling back to a normal then/catch (834392f)
- fix
:deep
expression parsing to allow for inner parenthesis (cc275d0) - fix
require
paths issues with commonjs build (246d0c4) - fix a bug that created invalid view boxes when the svg contains multiple paths (8c281c9)
- fix a bug where the selected choice was incorrect if
createSelectedChoice
was called before the choice was added (65b96f1) - fix a possible infinite loop between the view model and the control when resetting a field with a value (e6bb3b8)
- fix a very strange behavior of PopperJS, see comment for details (3d71eca)
- fix a warning (1a58771)
- fix an error than could occur when unmounted, fix the scrolling when the select's dropdown is first shown (5c7606e)
- fix bad arrow position and incorrect event unbinding (5830da2)
- fix edge case where
onInputBlur
is called while the component is unmounted, making it fail on the call to the vm. (c065901) - fix error status not being propagated when the transform fails (b27678b)
- fix failing test when inheritance is involved (07fa2d9)
- fix failing tests because of the modification of the default validation strategy for the root component (ee4fb23)
- fix floating placeholder overflow (70afe66)
- fix import (4c28b7f)
- fix import that caused tests to fail (85ec3ce)
- fix imports / exports (8dd0670)
- fix infinite loop when the model has a relation on itself (4d75891)
- fix infinite recursion and remove useless processing (13114bc)
- fix interaction between the
validated
andvirtual
states (a77c22a) - fix invalid arguments (26bcf2c)
- fix invalid condition... (c0ca88e)
- fix invalid import (07bf66f)
- fix invalid import path (69028df)
- fix invalid render function for renderless components (8f1dc74)
- fix invalid test (89a994e)
- fix invalid typing (10f0ed4)
- fix min-height no applying to the correct element (742dfa0)
- fix missing export and invalid import (2fdd44c)
- fix ordering issues due to the overlay's z-index not updating when the dialog is hidden and not destroyed (0e589d5)
- fix ordering issues due to the overlay's z-index not updating when the dialog is hidden and not destroyed (22705cc)
- fix package.json because
import '@banquette/vue-typescript/vue-builder'
was failing with Webpack (38f6fa7) - fix style tags ordering (055051f)
- fix the min-width (a0bb429)
- fix validators removal (5b3e0d7)
- fix watcher not waiting the delayed call in certain cases (059909f)
- fix wrong numbers when there is 0 results (11c0e84)
- fix wrong variable in apply implementation (7145f4a)
- fixes on filters (3c1b41f)
- force camelCase conversion of aliases to fix a bug if the name of the alias is in kebab-case (97d1840)
- give priority to the bindings over existing options + minor adjustments (e97757f)
- handle events on svg elements (c134c7a)
- handling of the remote result was incorrect (22aca29)
- huge mistake, the map of transformable properties was mutated by accident... (b902a09)
- huge typo -_- (e071582)
- icons don't need a
<span>
wrapper anymore for popovers to work on them (0d8c060) - invalid
@Watch
targets (c667461) - invalid error message (7064723)
- invalid imports (f3d9f8a)
- invalid type (7cd0025)
- isolate the unsubscribe function of
VueThemes.OnChanged
so it is not called bycomputeChanges
... (f66f6b6) - limit the api's requests interception of
bt-table
to the ones it emitted (6524f96) - make radios work with
v-model
(dce3f71) - make the
Resolve()
parameter optional (faa43f1) - make the floating extras interactive again (8aba61b)
- make the value update when the child filter "UpdateValue" is modified (7bf0d51)
- missing
\
on the regex (594d94b) - model transform metadata now works with inherited properties (77c73b9)
- multiple bug fixes on
throttle
(bbf54ab) - multiple bug fixes on themes switching (2c9ac55)
- old values and
watchEffect
were invalid (3589769) - only mark form components as
NotValidated
is a validator is defined on reset (368226f) - only mark the component as invalid when it has errors of its own (9fd5f0d)
- parent component becomes invalid (and validate return
false
) when a child fail to validate (6a50959) - path are not forced to start with "/" anymore to get a match (6d935d0)
- prevent
blur()
from being called for the control gaining focus (7b78c79) - prevent choices to be deselected when implicitly selected via
updateChoices
when the select is multiple (b158697) - prevent getters from being called when exposed via
@Expose()
(8706075) - prevent infinite recursion when there is a circular dependency on relations (8897b6b)
- prevent the processing to be done twice (40b8161)
- prevent the select to show its choices while disabled (99180b8)
- prevent watchers to fire for an unmounted component (74d3c68)
- promise: progression events are stabilized and better tested (816f5f2)
- propagate failures up in the parent chain (6f5714a)
- proxy was lost when calling a getter, thus losing the ability to call
$
properties inside it (5a0a998) - rejections are now propagated down the validation result promise chain (146765f)
- remove circular dependency in imports (025da2e)
- remove incorrectly named icon components and fix the generator (25fa1fa)
- remove leading "/" that caused an error when components didn't exist yet (6060c1c)
- remove the
areObjectsEqual
test which can lead to infinite recursions (133131a) - remove the cache of __vccOpts because it's incompatible with the inner working of the module (94176a9)
- remove the vue proxy before binding it to the form, so the watcher proxy is inside the vue proxy, otherwise vue will remove it when setting the value (fde1384)
- remove the wrapper from the layout by positioning it as
absolute
(b2eec13) - replace
POST
byPUT
in theput()
method (70dabce) - replace legacy props (8653e62)
- requests can now be replayed + rename of
NoPayloadSymbol
toAutoPayloadSymbol
+ export (f8ac65e) - requests tags are now forwarded to the Api events (7a5f2df)
- response status is now canceled instead of error when in case of a
RequestCanceledException
(d4141f9) - rollback 97d1840855d25e338c9e4d033ab28e5413c6eb88 (6d1e991)
- sfc and scoped styles should now work (64e1db4)
- should stop executing computed on initialization (f859657)
- skip the Array constructor from the contexts stack (07bb682)
- stop adding
undefined
to the control when the selected node has no value + fix reactivity (5244d7a) - stop cloning popper inner options (d9029c3)
- stop exposing the form to the slot, relevant data are now copied into
viewData
(77ffccb) - stop hiding the component when visible is
false
, removing the background color and the interaction is enough (c62aedc) - stop listening for the subtree (1a641be)
- stop the pipeline when an error occurs (3893201)
- stop using the container for
RemoteModule
(4b74a33) - temp fix for themeable props (539f0a5)
- test the case where
:global()
is the whole selector (a94ebd8) - tests: fix tests using the old ObservablePromise syntax (d808740)
- the "components" options now handle the case where it gets a __vccOpts object instead of a constructor (because of the cache) (98a6261)
- the
treatAs
transform condition was invalid (9e946bd) - the content type was missing when the payload is empty (b12092c)
- the form now ignores canceled validation results (f0f87cc)
- the intermediate form used to merge the
loadData
values with the form could override data not defined inloadData
(like anull
relation), this fixes it by filtering out of the form's result the values that are not part ofloadData
. (2f1d7df) - the parent matching now works with non-direct parents (cbb95ae)
- the progress text is now animated again (ebcf8f0)
- the prop configuration now totally replaces root attributes instead of extending them (5bc1719)
- the proxy now returns the target object's keys and property descriptors (4e1a8ec)
- the slot content is now used when a
bt-form-select-choice
has no value (08680d7) - the way methods queue was stored could lead to methods being called in the wrong order, fixed by using an array instead (58125a2)
- the whole width of the select is now interactive (3961bb4)
- theme props are now overridable on component use + force computed to update when a theme value changes (17f2029)
- TS1337: An index signature parameter type cannot be a union type. Consider using a mapped object type instead. (4b4a5fd)
- typing error (6f18ce7)
- typings and unit tests silently failing (b0340cf)
- update the loading state after
bindModel()
(900e74c) - use
watchEffect
instead ofonTrigger
which is not available in production (ca7deaa) - validator was not set when a
FormControl
is given to the factory (c39e988) - view model is now updated back if the value is changed in the
BeforeValueChange
event (aa2e7d6) - was crashing if
hasSlot
was called too soon (d76c2ed) - watch strategy should now work properly (732552c)
- watchers on props were failing to trigger in some situations, now watch the prop's ref instead of a function (95d7fd3)
- watchers were getting out of sync with the component instance when in a loop (4af8f1e)
twoDigits
is nowfixedDigits
(8299325)- add a mandatory
id
attribute to all exceptions (a466e2e) - change the way promises are detected to avoid side effects (7df6532)
- faster
areEqual
(df5850b) - rename
id
intoslug
and make it writeable in all exceptions (01dc382) - rename
remoteModel
intomodel
and make it work with local data (77d9eaa) - rewrite of the
ValidatorComponent
to be more stable and to work without being in abt-form
(e6ed7a4) - simplify the equality tests when setting a new value of a
FormControl
for performance purposes (a017dbb) - stop resolving the vue instance of target elements (aebbc4a)
- various bug fixes, typos, and micro optimizations. Themes styles are now injected at the beginning of the head, and the styles of the wildcard theme are always first (ae23ac3)
AbstractViewModel
is no longer abstract (f99636b)bt-validate-is-type
now accepts types as string (513c65b)treatAs
is now part of the options object (efc79d7)- add support of validation groups + refactoring of the signature of all validators (49a7f81)
- bi-directional focus + simplification (c0dbc5a)
- huge refactoring cleaning up several bad design decisions accumulated along the way (e65fecc)
- huge refactoring of the validation / form validation to integrate validation groups and more (d798bfa)
- huge refactoring, utils separated from core (bdf8013)
- icons components don't use
VueTypescript
anymore to reduce bundle size. (5464c3b) - inverse
wildcardTransformer
andextra
parameters order (24bf388) - make all components validators
.vue
files (f218e8e) - many breaking changes, renaming, refactoring for an easier use by the end-user: (dbe95c8)
- multiple renaming and minor additions (3aff9ce)
- refactoring of the icons. Different packages and now support versions (
version
prop). The generator script is also improved for a better cropping. (c416f7c) - remove
core
package. Replaced byconfig
andexception
packages (c66786f) - remove dependency between "SharedConfiguration" and "VarHolder" (978362d)
- remove useless
ModelChangeEvent
(8ac1588) - rename 'flatten' into 'flattenObject' (515a417)
- rename / replace event args + create a
ApiTransformer
that replaces theHttpTransformer
in the Api listeners (d8d802c) - rename
rawValue
intooriginalValue
in the tree'sNode
object + removeroot
slot (42461ba) - rename
simplifyValidator
intocreateValidator
(bb08d05) - rename
validate
intotransform
and change the purpose ofvalidate
to take aValidatorInterface
(6eb4676) - rename all props that use
:
(3fb6d4f) - rename multiple props + better error handling (b03619b)
- rename several services and Vue components + remove the
.ts
files of all Vue components (e55404a) - replace
modelValue
bydata
(6e7b0d4) - replace
modelValue
byopened
(eea610d) - replace
modelValue
byvisible
(0b7a86e) - replace
once
byoncePerCycleProxy
utility function (5e167c0) - replace the
bt-collapsable
component by a directive (0b2e4fb) - replace the package
vue-material-icons
byvue-icons
that can contain any number of sets of icons (d09c5c4) - rollback to previous
created
(e91ffa0) - simplify the css theming (6c2d0ab)
- typings refactoring and renaming (7fc54d9)
- update the way import prefixes work (11312ca)
- utils split into multiple packages (919386a)
- utils: rename ConstructorFunction (4735c80)
- "extend" doesn't try to clone constructors anymore (27a153b)
AbstractVueFormComponent
now search for a parentbt-form-generic
to automatically assign its form to the proxy (5b5d3bc)bt-form
now emits events (bec3d96)bt-form
should be production ready (0e53eb0)flatten
utility now supports depth control (min or max) (153eaf9)getParent
now goes up the prototype chain when searching for a component by name (64e05cf)inversify
package added (7a41691)isFunction
is now a proper type guard (78c9da4)searchRemoteParamName
now can accept a function (818c3bc)setDefaultValue
not available on containers + reset doesn't trigger a validation anymore (f9973c3)vue-dom-module
package added (535401d)vue-typescript
package added (45f15cd)- add
dependency-injection
package (7b18ba8) - add
getValidatedExtra
method offering the ability to run validators when getting extras (00dd095) - add
SameProperties
andSamePropertiesAndType
type utilities (b20a943) - add a 'arrayUnique' utility function (5f1471c)
- add a 'uniqueId' utility function (2e17e47)
- add a "Not" utility that negate the return of a function. (e1f8256)
- add a "resolve" and "reject" methods to comply with the Promises/A+ specification (59fb73c)
- add a
allowHtml
flag to allow an alert to render a html message/title (5509a7b) - add a
arrayIntersect
utility (5e2503d) - add a
bt-form-hidden
component (09b39a1) - add a
clearable
option to the select (b7ab0d7) - add a
disabled
prop tobt-form
(7f41fb5) - add a
doAndRetry
anddoAndRetryFactory
utilities that make it easier to do a task repeatedly while it fails (6f4d456) - add a
getParent
method to theVue
base class to search for a specific type of component in the parents hierarchy (edbf105) - add a
humanSizeToByteCount
utility, and renamehumanFileSize
(07c2bdb) - add a
jsonEncode
andjsonDecode
utilities that returnnull
on error instead of throwing (84b866a) - add a
messagesStack
utility getter to all exceptions (7e25ce5) - add a
priority
attribute to better control the variants ordering (2d20d0d) - add a
tiptap
ui component (wip) (1c25f58) - add a
Transformable
decorator that is a shorthand to setting multiple transform decorators at once (d670cef) - add a
validate
utility function to easily validate a model manually (f24ca96) - add a
Vue
base class components can (optionally) inherit from to access Vue attributes (ec43e0e) - add a new
BeforeValueChange
event to control and manipulate the value change on aFormControl
(46b6f9c) - add a new
IsType
validator (2e6969c) - add a new
vue-material-icons
package (d76c042) - add a unique id global to the form and expose both ids to the view model (37e0123)
- add an
errorsMap
attribute toAbstractViewModel
(e7fe393) - add an utility to remove all the keys of an object that are not present in another (942f958)
- add base view models / modules for text, select and checkboxes (72ab5fc)
- add basic support of
:deep()
in custom css overrides (7be45b6) - add IOException (902d398)
- add new
character-count
andheading
modules (889dafd) - add new
history
module (76bc153) - add new
ValidationStart
andValidationEnd
events (9767c79) - add optional global functions to easily make api calls from a template (3fb0995)
- add package
vue-form-generic
(8f95a83) - add parent matching support for variant selectors (1a5d49a)
- add php compatible serialize and unserialize method + a utility to get the size in bytes of an utf8 string (0092d89)
- add recursion control utilities (9c8a3d0)
- add size constraints for
bt-form-file
, i18n, better theming and many bug fixes (fed8545) - add support for @Assert in constructor parameters (6a82b85)
- add support for a
validate
method in@Prop
that can verify and/or modify the prop value (950b502) - add support for an alternative array notation for the input nodes (0419e7c)
- add support for deep set (435769f)
- add support for multiple view models per control (6f357e5)
- add support for OR condition in variant matches (a602346)
- add support for textarea
autoSize
(6844b16) - add support for the
:global
keyword that make possible to target an element above the root of the component being themed (87b6840) - add support of draggable dialogs (9108d9b)
- add support of Pojo created with Object.create(null) to isPojo() (39eb335)
- add support of props renaming using a new
name
option in the@Prop
decorator (a42f30f) - add support of the
@ThemeVar
decorator (e654d31) - add support of the
emits
option (4198608) - add template inheritance support for components (8c297e2)
- add the
@Render
,@Provide
and@InjectProvided
decorators + files reorganization (700fa68) - add the
api
package (442e4e5) - add the
blockquote
,list-item
,separator
andtext-align
modules (c438b00) - add the
bt-call
component (f8564e2) - add the
bt-form-file
component (6c3af93) - add the
bt-form-tiptap
component (bf3d27b) - add the
bt-remote
component (4104821) - add the
cloneDeepPrimitive
utility (2b9dea3) - add the
collapsable
component (65a88d1) - add the
Complete
andModify
utility types (0905fbf) - add the
ensureInEnum
utility (7a8f686) - add the
EventPipeline
component (wip) (9b7d57f) - add the
form
package (b382928) - add the
getElementOffset
utility (742a3be) - add the
getViolationsStringsArray
utility method that flattens violations into an array of strings (389b578) - add the
insertInString
utility function (853f8ef) - add the
model
package and its variants (model-api
,model-form
andmodel-validation
) (50bcd00) - add the
object-observer
package (fa88956) - add the
once
utility function (74cfffa) - add the
parseCssDuration
andaddEventListener
utilities (cae868b) - add the
setIntervalWithTimeout
utility (22d706b) - add the
vue-form
package (5712f34) - add the
vue-ui
package (9463f2f) - add the capability to filter subscribers when dispatching (9207b85)
- add the capability to tag a request so emitted event can be easily filtered by subscribers (3046441)
- add the core package (593597d)
- add the dom-modules package (5b1b4b9)
- add the escapeRegex utility (4bab226)
- add the event package (b25fdb3)
- add the fingerprint package (9032415)
- add the http package (491634c)
- add the isIterable utility (025d334)
- add the log package (418a962)
- add the promise package (5ea375f)
- add the simple observable utility (f55928b)
- add the storage package (a7f13ce)
- add the utils-base64 package (58a57f8)
- add the utils-color package (484b195)
- add the utils-crypto package (8823a46)
- add the utils-easing package (a3e6b9c)
- add the utils-json package (6d4e83c)
- add the validation package (12b576e)
- add theming support for components (826cb8a)
- add utilities to work with scalars and compounds types (6af540c)
- add utility functions to make an object reassignable (0c3f1f8)
- add utility methods to easily assign errors to child components (133cad9)
- api requests now support a different model for the request and the response (ea4bb27)
- automatically reassign to the Vue's proxy any ref with a reassignable proxy as value (62f7f90)
- automatically resolves vue typescript instances when accessing templates refs set on components (9b8a258)
- css selectors can now define regexes and can be combined when used (6cef0b3)
- events can now optionally trigger on parent components (0e72dec)
- expose a
refresh
method tobt-remote
that allows the slot to redo the request (eac4c90) - form text are now
clearable
(ac5f9d7) - full support of parent matching (variant / props) + custom callback to test if props match (39d04d3)
- generalization of the glob pattern matching of the validation into a separate package (
utils-glob
) (17f1a86) - generic type support for InjectableIdentifier (0e9fba1)
- generic value type support for
VarHolder
(5d02b86) - GenericCallback now can define the arg and return types (b35a3c9)
- http: add file upload support (4c7fd85)
- http: add FormData and Raw encoders. (50e0bbd)
- http: add support of the PATCH http method (66b95bc)
- http: better file upload support and progression tracking (d38f0e0)
- http: queue priority, retry delay, limit on simultaneous requests, with credentials + some refactoring... (3096701)
- make
getMultiple
react to tags changes (6008609) - model-api: the
ApiTransformer
transform inverse now converts an HttpResponse into a model (d50448b) - new
bt-tree
andbt-form-tree
components + their headless view model (73d703a) - new utility to convert enums to arrays (3a24521)
- now
Transformable
is working on constructor parameters + add thepropertyDecorator
utility (e437791) - ObservablePromise now behave exactly like a promise, and supports async/await syntax. (ddff7c2)
- pagination/filtering/ordering of
bt-table
are now fully supported and can each be local or remote independently (8065847) - promise: add support of catchNotOf() which works the same as catchOf() but with inversed condition (eff47fb)
- promise: add support of catchOf() to limit catch to certain type of errors (b6d20f5)
- promise: make catchNotOf() allow for non object rejections. (e6a7a70)
- refactoring or SimpleObservable (73d3eba)
- rewrite on the trim utility and add ltrim and rtrim + tests (ff0f8dc)
- separate the
BindModel
event into two events:BeforeBindModel
andAfterBindModel
(d3b09f5) - some refactoring and add the ability to use the observable as a promise (ff96813)
- support pojo as load data with a model type defined (9c9e9ee)
- the
Primitive
transformer can take a different type depending on the transform direction (cf91779) - the event dispatcher now always returns a synchronous result (DispatchResult) that can optionally contain a promise (756ef68)
- the event dispatcher now uses SimpleObservable instead of Promise (6485be6)
- the storage can now emit events to notify of changes (b64829f)
- the variant matching now works on any prop (63a12c9)
- theme class name is now automatically injector in themeable components' styles (9d0fcc2)
- url parameters are automatically inferred from the url when an endpoint is created (ab27a11)
- utils-reflection: add utility methods to get constructors arguments types and names (f7a412f)
- utils: add "isNonEmptyString" utility function and simplify "isEmptyString" (aeaf976)
- variants can now match any html attribute (802d9f5)
Max(10, 'string')
is nowMax(10, {treatAs: 'string'})
, same forMin(...)
- the
remote-model
prop is nowmodel
- the events (
tabCreated
,tabRemoved
,focusChanged
) have been removed -
ApiEndpointStorage
is nowApiEndpointStorageService
SharedConfiguration
is nowConfigurationService
DomModulesScanner
is nowDomModulesScannerService
bt-dropdown-divider
andbt-dropdown-item
have been moved in their parent folderBaseInputComponent
is nowBaseFormInputComponent
TextComponent
is nowFormTextComponent
SelectComponent
is nowFormSelectComponent
HiddenComponent
is nowFormHiddenComponent
TiptapConfigurationStorage
is nowTiptapConfigurationService
FormStorage
is nowFormStorageService
- components validators are now
.vue
files v-model
is nowv-model:visible
to control the visibilitybt-collapsable
component is nowv-bt-collapsable
(directive)target
prop has been renamedallowed
-
FormActionErrorEventArg
is nowActionErrorEventArg
FormAfterPersistEventArg
is nowAfterPersistEventArg
FormAfterRemotePersistEventArg
is nowAfterRemotePersistEventArg
FormBeforePersistEventArg
is nowBeforePersistEventArg
ValidateSuccess
andValidateError
events have been replaced byAfterValidate
Remix
icons now have versions likeMaterial
. Soi-remix-home-fill
andi-remix-home-line
are now both ini-remix-home
, you can chose the version using theversion
prop:<i-remix-home version="line"/>
.v-model
becomesv-model:data
to control the content of the treev-model
becomesv-model:opened
to control the collapsed statusv-model
becomesv-model:visible
to control the visibility of the alert-
rawValue
has been renamedoriginalValue
- the
root
slot has been removed, use thenode
slot instead with a test onnode.parent
to test for the root
humanFileSize
is now namedbyteCountToHumanSize
, the signature and functionalities stay the same- the popover's target is not resolved anymore, it will always be the parent DOM element.
- base input css variables are not duplicated in the concrete component anymore. So to override a base input variable, instead of doing:
body {
--bt-form-select-background-color: red;
}
override the base input variables in the correct context:
.bt-form-select {
--bt-form-base-input-background-color: red;
}
- the
@Render()
callback doesn't take the component's instance as first parameter anymore, but as last. areObjectsEqual
has been removed, useareEqual
insteadBindModel
is nowAfterBindModel
- Only primitive values are tested for equality. Objects are now always considered different to avoid recursively check the whole data structure.
- An object literal with a
then()
function is not detected as a promise anymore. Only objects withPromise
in their string representation are. twoDigits(4)
is nowfixedDigits(4, 2)
-
vue-icons
is now replaced byvue-material-icons
andvue-remix-icons
- the
icon
component is now invue-ui
- the
size
prop has been replaced by awidth
andheight
props
-
- all
icon-*
have been renamedi-material-*
- all
- all imports from
@banquette/vue-material-icons
are now from@banquette/vue-icons/material
- the signature of almost all decorators have changed
- validators' common options are now defined through an object (expect for
message
) - the
bindingUpdated
hook is removed - all props with
:
in their name have it replaced by-
: examples:remote:url
=>remote-url
remote:node-url-param
=>remote-node-url-param
-
- the default prefix doesn't use ':' anymore, but put the first letter of the prefixed attribute in uppercase instead
- the alias map doesn't exclude missing elements anymore, but include them with their original name instead
- the alias map accepts
false
as value to exclude the element
validate
option of@Prop
is renamedtransform
-
BeforeResponseEvent
is now used instead ofResponseEvent
inBeforeResponse
events,
ResponseEvent
is now used instead ofRequestEvent
inRequestSuccess
andRequestFailure
events.
ModelChangeEvent
is now replaced withMutationEvent
-
- merge
choicesLabelProperty
andchoicesLabelPropertyExpr
into a singlechoicesLabel
- merge
- rename
choicesIdentifierProperty
intochoicesIdentifier
- rename
choicesValueProperty
intochoicesValue
- rename
choicesDisabledProperty
intochoicesDisabled
- rename
choicesGroupProperty
intochoicesGroup
- 'flatten' is now 'flattenObject'
once
renamedoncePerCycleProxy
- validators components have move out of the
bt-form
dir, because they are not related to it anymore - packages removed:
vue-form
,vue-for-generic
,model-api
packages created:ui
ui
now centralizes the generic view models of all ui components
vue-ui
now contains all ui components (form included)
bt-form-generic
is now bt-form
(included in ui
)
$parent
doesn't resolve the component instance anymore, use$resolvedParent
insteadAbstractViewModel
is renamedViewModel
id
is nowslug
- all exceptions now require an
id
attribute to be defined - there are now two types of tags:
filtering tags
andpropagation tags
, the signature ofsubscribe
has changed accordingly -
extra
is now the 3rd parameter
wildcardTransformer
is now the last parameter
-
addError
now takes a type and message instead of aFormError
- rename
add
asappend
inFormComponentsCollection
- rename
merge
asconcat
inFormComponentsCollection
- rename
setChildrenFilters
assetGroupFilters
- rename
ConfigurableChildrenFilterType
asFilterGroup
-
- the dispatcher now responds with a DispatchResult
- progress is not tracked anymore
- it will never throw, the error in stored the result object instead
simplifyValidator
doesn't exist anymore- replace the
core
injector, a specialisation of the one independency-injection
- many utils have a different location/name
core
package doesn't exist anymore.- all configurations must now implement the "ConfigurationInterface" interface. The storage configuration doesn't allow for a concrete class for the adapter anymore.
- utils: ConstructorFunction has been renamed Constructor.
- http: default payload encoder is now FormData instead of Json.
- promise:
ObservablePromise.Wait
has been renamedObservablePromise.ResolveAfterDelay
and now takes the delay as first parameter instead on second. - utilities that were in "core/utils" have been moved in their own package "utils", accessible through "@banquette/utils".
- The executor function now receive callbacks separately instead of an "observer" object.
- SimpleObservable is now named ObservablePromise. The observer events also change to
resolve
,reject
andprogress
. - all alternative dispatch methods have been removed (except "dispatchSafe").
dispatch
now handle both sync and async calls and returns an observable so intermediate results are accessible.