Skip to content

Latest commit

 

History

History
595 lines (538 loc) · 72.4 KB

CHANGELOG.md

File metadata and controls

595 lines (538 loc) · 72.4 KB

0.1.5 (2023-11-03)

Bug Fixes

  • fix model reactivity when passed to the form through v-model (ce9079c)

0.1.4 (2023-11-03)

Bug Fixes

  • 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)

Bug Fixes

  • fix SSR (367bbc2)
  • fix sub properties not being watched (2cccd81)
  • set null to undefined values in the decoded json (1b40957)
  • stop setting compiler options when only the vue runtime is present (2213b9e)

Features

  • 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)

Bug Fixes

  • 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)

Features

  • icons from vue-material-icons and vue-remix-icons are now auto registered and usable with bt-icon as soon as they are imported + add a IconSet utility used to register new icons into bt-icon. (57c8b7f)

0.1.1 (2023-04-29)

Bug Fixes

  • 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)

Bug Fixes

  • fix invalid ctor in the stack (12a6605)

0.0.2 (2022-10-12)

Bug Fixes

  • 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)

Bug Fixes

  • areEqual and compareObject now do a simple comparison of non literal objects (49cf2e1)
  • floatingLabel was not ignored (9d23e60)
  • get now searches through its parents (798de39)
  • immediate to false now works as it should (0dbae44)
  • validate() was not returning false 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 in bt-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 by visible (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, or this.$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 and virtual 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 by computeChanges... (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 by PUT in the put() method (70dabce)
  • replace legacy props (8653e62)
  • requests can now be replayed + rename of NoPayloadSymbol to AutoPayloadSymbol + 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 in loadData (like a null relation), this fixes it by filtering out of the form's result the values that are not part of loadData. (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 of onTrigger 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)

chore

  • twoDigits is now fixedDigits (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 into slug and make it writeable in all exceptions (01dc382)
  • rename remoteModel into model and make it work with local data (77d9eaa)
  • rewrite of the ValidatorComponent to be more stable and to work without being in a bt-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)

Code Refactoring

  • 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 and extra 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 by config and exception 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 the HttpTransformer in the Api listeners (d8d802c)
  • rename rawValue into originalValue in the tree's Node object + remove root slot (42461ba)
  • rename simplifyValidator into createValidator (bb08d05)
  • rename validate into transform and change the purpose of validate to take a ValidatorInterface (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 by data (6e7b0d4)
  • replace modelValue by opened (eea610d)
  • replace modelValue by visible (0b7a86e)
  • replace once by oncePerCycleProxy utility function (5e167c0)
  • replace the bt-collapsable component by a directive (0b2e4fb)
  • replace the package vue-material-icons by vue-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)

Features

  • "extend" doesn't try to clone constructors anymore (27a153b)
  • AbstractVueFormComponent now search for a parent bt-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 and SamePropertiesAndType 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 to bt-form (7f41fb5)
  • add a doAndRetry and doAndRetryFactory utilities that make it easier to do a task repeatedly while it fails (6f4d456)
  • add a getParent method to the Vue base class to search for a specific type of component in the parents hierarchy (edbf105)
  • add a humanSizeToByteCount utility, and rename humanFileSize (07c2bdb)
  • add a jsonEncode and jsonDecode utilities that return null 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 a FormControl (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 to AbstractViewModel (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 and heading modules (889dafd)
  • add new history module (76bc153)
  • add new ValidationStart and ValidationEnd 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 and text-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 and Modify 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 and model-validation) (50bcd00)
  • add the object-observer package (fa88956)
  • add the once utility function (74cfffa)
  • add the parseCssDuration and addEventListener 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 to bt-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 and bt-form-tree components + their headless view model (73d703a)
  • new utility to convert enums to arrays (3a24521)
  • now Transformable is working on constructor parameters + add the propertyDecorator 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 and AfterBindModel (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)

BREAKING CHANGES

  • Max(10, 'string') is now Max(10, {treatAs: 'string'}), same for Min(...)
  • the remote-model prop is now model
  • the events (tabCreated, tabRemoved, focusChanged) have been removed
    • ApiEndpointStorage is now ApiEndpointStorageService
  • SharedConfiguration is now ConfigurationService
  • DomModulesScanner is now DomModulesScannerService
  • bt-dropdown-divider and bt-dropdown-item have been moved in their parent folder
  • BaseInputComponent is now BaseFormInputComponent
  • TextComponent is now FormTextComponent
  • SelectComponent is now FormSelectComponent
  • HiddenComponent is now FormHiddenComponent
  • TiptapConfigurationStorage is now TiptapConfigurationService
  • FormStorage is now FormStorageService
  • components validators are now .vue files
  • v-model is now v-model:visible to control the visibility
  • bt-collapsable component is now v-bt-collapsable (directive)
  • target prop has been renamed allowed
    • FormActionErrorEventArg is now ActionErrorEventArg
  • FormAfterPersistEventArg is now AfterPersistEventArg
  • FormAfterRemotePersistEventArg is now AfterRemotePersistEventArg
  • FormBeforePersistEventArg is now BeforePersistEventArg
  • ValidateSuccess and ValidateError events have been replaced by AfterValidate
  • Remix icons now have versions like Material. So i-remix-home-fill and i-remix-home-line are now both in i-remix-home, you can chose the version using the version prop: <i-remix-home version="line"/>.
  • v-model becomes v-model:data to control the content of the tree
  • v-model becomes v-model:opened to control the collapsed status
  • v-model becomes v-model:visible to control the visibility of the alert
    • rawValue has been renamed originalValue
  • the root slot has been removed, use the node slot instead with a test on node.parent to test for the root
  • humanFileSize is now named byteCountToHumanSize, 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, use areEqual instead
  • BindModel is now AfterBindModel
  • 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 with Promise in their string representation are.
  • twoDigits(4) is now fixedDigits(4, 2)
    • vue-icons is now replaced by vue-material-icons and vue-remix-icons
  • the icon component is now in vue-ui
  • the size prop has been replaced by a width and height props
    • all icon-* have been renamed i-material-*
  • 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 renamed transform
    • BeforeResponseEvent is now used instead of ResponseEvent in BeforeResponse events,
  • ResponseEvent is now used instead of RequestEvent in RequestSuccess and RequestFailure events.
  • ModelChangeEvent is now replaced with MutationEvent
    • merge choicesLabelProperty and choicesLabelPropertyExpr into a single choicesLabel
  • rename choicesIdentifierProperty into choicesIdentifier
  • rename choicesValueProperty into choicesValue
  • rename choicesDisabledProperty into choicesDisabled
  • rename choicesGroupProperty into choicesGroup
  • 'flatten' is now 'flattenObject'
  • once renamed oncePerCycleProxy
  • 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 instead
  • AbstractViewModel is renamed ViewModel
  • id is now slug
  • all exceptions now require an id attribute to be defined
  • there are now two types of tags: filtering tags and propagation tags, the signature of subscribe has changed accordingly
    • extra is now the 3rd parameter
  • wildcardTransformer is now the last parameter
    • addError now takes a type and message instead of a FormError
  • rename add as append in FormComponentsCollection
  • rename merge as concat in FormComponentsCollection
  • rename setChildrenFilters as setGroupFilters
  • rename ConfigurableChildrenFilterType as FilterGroup
    • 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 in dependency-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 renamed ObservablePromise.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 and progress.
  • 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.