[starlightViewModes.switchTo](/Windmillcode-Angular-CDK-Docs/zen-mode/19.0.0/intro/wml-components-base)function h(){const t=window.location.hash;document.querySelectorAll(".starlight-view-modes-switcher-a").forEach(e=>{e.href&&(e.href=e.href.split("#")[0]
npm install @windmillcode/wml-components-basestarlightViewModes.switchTofunction h(){const t=window.location.hash;document.querySelectorAll(".starlight-view-modes-switcher-a").forEach(e=>{e.href&&(e.href=e.href.split("#")[0]+t)})}h();window.addEventListener("hashchange",h);When working on web applications, there is no standard baseline. The WML Components Base Library establishes a foundation for your application, ensuring consistency and scalability. The core of this library is the WMLUIProperty , which represents the basic building block of every element in a web application. This property encapsulates all the essential features, and there are several subclasses like WMLRoute for routes, WMLView to leverage change detection, WMLImage for images and WMLMotionUIProperty for CSS animations and transitions. Each class has properties and methods to optimize your work in those features of your application. You can use this package and leave out the rest of the library and you will get very far building very robust and scalable applications
Section titled “Installation”Terminal window npm install -s --verbose @windmillcode/wml-components-base
Section titled “WMLUIProperty”The Building Blocks Of Web Apps
Section titled “WMLMotionUIProperty”Using CSS Animations
if you want a different animation for you animation states simply use a different keyframe mabye suffixing the keyframes with open and close for organizationPause And Play
if you want a different animation for you animation states simply use a different keyframe mabye suffixing the keyframes with open and close for organization
Section titled “Using CSS transitions”the percentage values at the keyframe styles for transtions are only conceptual becuase there are no percentage values with css transitionsif you pause and play the transition it will not reset the element it was transitioning, but the timer and transition function will reset to their beginning stagesWMLMotionUIProperty Transition Simple Example
WMLMotionUIProperty Transition Decent Example
WMLMotionUIProperty Transition Full Example
Section titled “WMLCustomComponent”Custom Components
Section titled “WMLUIProperty”
| Property | Type | Description |
|---|---|---|
isPresent | boolean | Indicates if the UI property is currently present. |
value | any | The value associated with this UI property. |
text | string | The text associated with this property. |
class | string | CSS class string for the property. |
style | Partial<CSSStyleDeclaration> | Inline styles for the property. |
type | any | The type of UI element (optional). |
click | (evt?: Event) => void | Function to handle click events. |
id | string | Unique identifier for the UI property. |
| Method | Description |
|---|---|
updateClassString | Updates the class string based on the current state. |
toggleClassString | Toggles a class string on or off. |
| Property | Type | Description |
|---|---|---|
| framework | Framework | Holds the detected framework information. |
| Property | Type | Description |
|---|---|---|
| name | WMLUIFrameworkType | The name of the detected UI framework. |
| Property | Type | Description |
|---|---|---|
url | Function | Function that defines the endpoint’s URL. |
automate | boolean | Indicates whether to automate API requests for the endpoint. |
| Property | Type | Description |
|---|---|---|
url | URL | Stores the constructed URL object based on provided properties. |
| Name | Signature | Description |
|---|---|---|
domain | get domain(): string | Retrieves the domain, including port if present. |
fqdn | get fqdn(): string | Returns the fully qualified domain name (FQDN). |
toString | toString(): string | Converts the URL object to a string. |
Section titled “WMLUri Constructor Parameters”
| Name | Type | Description |
|---|---|---|
scheme | string | Optional, defaults to "https". |
host | string | Required, specifies the host name. |
port | number | Optional, specifies the port. |
path | string | Optional, specifies the path. |
query | string | Optional, specifies the query. |
fragment | string | Optional, specifies the fragment. |
| Property | Type | Description |
|---|---|---|
angular | any | Object containing Angular-specific properties like cdref. |
cdref | any | Angular’s ChangeDetectorRef, used for detecting changes in Angular applications (deprecated). |
| Method | Description |
|---|---|
get cdref | Retrieves the ChangeDetectorRef from the Angular-specific properties (deprecated). |
set cdref | Sets the ChangeDetectorRef in the Angular-specific properties (deprecated). |
| Property | Type | Description |
|---|---|---|
cdref | any | Angular’s ChangeDetectorRef used for change detection in Angular applications. |
| Property | Type | Description |
|---|---|---|
route | string | Defines the route for the application, default is ”/”. |
link | string | Optional link associated with the route. |
routerLink | string | Optional router link for navigation. |
Section titled “WMLMotionUIProperty”
| Property | Type | Description |
|---|---|---|
autoOpen | boolean | Automatically opens the UI element when true. |
helperStyles | Partial<CSSStyleDeclaration> | Necessary for animations to work properly. Modify only if you know what you are doing. |
keyFrameStyles | { [k: string]: Partial<CSSStyleDeclaration> } | Object defining keyframe styles for animation. Use "0%", "10%", "11%", … "100%" according to typical CSS keyframes for the key values. |
keyFrameName | string | Name of the unique animation keyframe or unique css transition class . |
motionState | "open" | "opening" | "closing" | "closed" | Current state of the motion . |
motionEndEvent | any | Function called at the end of an motion state. |
motionKeyFrameEvent | any | Function called at specific keyframes during the motion. |
currentTransitionInfo | any | Information about the current transition state, including keyframe, current styles, transition end styles, and play state. |
type | "animation" | "transition" | The type of motion to use, either CSS animations or CSS transitions. |
eventType | "subject" | "callback" | Defines whether the motion events are handled using subject (for Angular) or callback (for all other JS Environment). This controls how motionEndEvent and motionKeyFrameEvent are triggered. |
| Method | Signature | Return Type | Description |
|---|---|---|---|
get keyFrameName | keyFrameName: string | string | Retrieves the current keyframe name used for the animation. |
set keyFrameName | keyFrameName(name: string): void | void | Sets a unique keyframe name for the motion animation. |
getGroupMotionState | getGroupMotionState(): WMLMotionUIPropertyState | WMLMotionUIPropertyState | Returns the current motion state of the animation group. |
motionEndEvent | motionEndEvent(state: WMLMotionUIPropertyState): void | void | Function called at the end of an animation state. |
triggerMotionEndEvent | triggerMotionEndEvent(motionState?: WMLMotionUIPropertyState): void | void | Triggers the motion end event with an optional motion state. |
motionKeyFrameEvent | motionKeyFrameEvent(keyFrame: string): void | void | Function called at specific keyframes during transition animations. |
triggerMotionKeyFrameEvent | triggerMotionKeyFrameEvent(keyFrame?: string): void | void | Triggers the motion keyframe event with an optional keyframe. |
animationEnd | animationEnd(evt?: AnimationEvent): void | void | Handles the animation end event and updates the motion state accordingly. |
transitionEnd | transitionEnd(evt?: TransitionEvent): void | void | Handles the transition end event and updates the motion state accordingly. |
openMotion | openMotion(): void | void | Triggers the opening animation. |
closeMotion | closeMotion(): void | void | Triggers the closing animation. |
pauseMotion | pauseMotion(): void | void | Pauses the current motion animation or transition. |
resumeMotion | resumeMotion(): void | void | Resumes the motion animation or transition if it was paused. |
injectKeyFrames | injectKeyFrames(): void | void | Injects custom keyframes for the motion animation into the document’s styles. |
updateKeyFrames | updateKeyFrames(props:WMLMotionUIProperty["keyFrameStyles"]): void | void | Injects custom keyframes for the motion animation into the document’s styles. |
createKeyFrameName | createKeyFrameName(): void | void | Creates a unique keyframe name for the motion animation. |
checkForDuplicateKeyFrameNames | checkForDuplicateKeyFrameNames(): boolean | boolean | Checks for duplicate keyframe names and returns true if a duplicate is found. |
setupTransitions | setupTransitions(): void | void | Sets up transitions for motion when using the "transition" type. |
getElement | getElement(): Element | Element | Returns the HTML element associated with this motion property. |
getTransitionProperties | getTransitionProperties(): any | any | Retrieves the transition properties of the element. |
currentTransitionInfo Section titled “currentTransitionInfo”
| Property | Type | Description |
|---|---|---|
keyframe | string | Current keyframe percentage (e.g., "0%"). |
currentStyles | object | Current styles applied to the element. |
transitionEndStyles | Array<string> | List of CSS properties that have completed transitioning. |
playState | string | Current play state of the transition (e.g., "running", "paused"). |
Section titled “WMLMotionUIPropertyState”
| Value | Description |
|---|---|
open | The UI element is fully open. |
opening | The UI element is in the process of opening. |
closing | The UI element is in the process of closing. |
closed | The UI element is fully closed. |
Section titled “WMLCustomComponent”
| Property | Type | Description |
|---|---|---|
cpnt | C | The custom component being wrapped. |
props | P | Properties associated with the custom component. |
| Property | Type | Description |
|---|---|---|
src | string | Source URL for the image. |
alt | string | Alt text for accessibility purposes. |
ariaLabel | string | ARIA label for screen readers. |
ariaExpanded | boolean | Indicates whether the image is in an expanded state. Default is false. |
| Name | Signature | Description |
|---|---|---|
onError | (event?: any) => void | Handles the error event when loading the image. |
| Property | Type | Description |
|---|---|---|
runningONE2E | boolean | Indicates if an E2E (end-to-end) test is currently running. |
data | any | Data associated with the E2E test. |
| Property | Type | Description |
|---|---|---|
queue | T[] | Internal array representing the queue of items. |
| Method | Description |
|---|---|
enqueue(item: T) | Adds an item to the queue. |
dequeue() | Removes and returns the first item in the queue. |
isEmpty() | Checks if the queue is empty. |
size() | Returns the number of items in the queue. |
getElementAt(index: number) | Retrieves the element at a specific index in the queue. |
Section titled “WMLAPIPageRequestModelFilterPredicateEnum”
| Property | Type | Description |
|---|---|---|
EQUALS | string | Filter predicate to check if a value is equal. |
STARTSWITH | string | Filter predicate to check if a value starts with a string. |
ENDSWITH | string | Filter predicate to check if a value ends with a string. |
CONTAINS | string | Filter predicate to check if a value contains a string. |
Section titled “WMLAPIPaginationRequestModel”
| Property | Type | Description |
|---|---|---|
fields | Array<{ value: any }> | Array of fields included in the request. |
filter | Array<{ key: string, value: any, predicate?: WMLAPIPageRequestModelFilterPredicateEnum }> | Filter criteria with optional predicates. |
sort | Array<{ key: string, direction: "ASC" | "DESC" | "" }> | Sorting criteria for the request. |
cursor | { value?: string, order?: number } | Cursor-based pagination options. |
pageNum | number | Current page number in the pagination request. |
pageSize | number | Number of items per page. |
errorOccuredIsPresent | boolean | Indicates if an error occurred during the request. |
| Method | Description |
|---|---|
getIndexInfo() | Returns start and end index information for the current page. |
Section titled “WMLAPIPaginationResponseModel”
| Property | Type | Description |
|---|---|---|
columns | Array<{ value: string, type?: string }> | Array of columns in the response data. |
data | Array<any> | Array of data returned by the API. |
metadata | { startOrderValue?: number } | Metadata about the response, including start order values. |
pageNum | number | Current page number in the response. |
pageSize | number | Number of items per page in the response. |
totalPages | number | Total number of pages in the response. |
totalItems | number | Total number of items in the response. |
| Method | Description |
|---|---|
getIndexInfo() | Returns start and end index information for the current page. |
calculateCurrentState() | Calculates pagination state based on total items and pages. |
calcSectionBasedOnPageDetails() | Slices data into sections based on page details. |
Section titled “WMLDeepPartial”
| Description |
|---|
WMLDeepPartial<T> is a type that makes all properties of a type T optional, and if a property is an object, it recursively makes all of its properties optional as well. Functions are left unchanged. |
Type BehaviorSection titled “Type Behavior”
| Condition | Behavior |
|---|---|
T[K] is a function | Keeps the function type intact. |
T[K] is an object | Recursively makes all properties of the object optional using WMLDeepPartial. |
T[K] is neither a function nor object | The property becomes optional. |
| Signature | Return Type | Description |
|---|---|---|
updateGlobal(props: WMLDeepPartial<WMLUIGlobal & { propFrameworkName?: string }>) | void | Updates the global WINDMILLCODE object with provided properties and optionally changes framework name. useful if detectframework gets the framework name wrong |
props Section titled “props”
| Property | Type | Description |
|---|---|---|
| propFrameworkName | string (optional) | Optionally updates the framework name in the global object. |
| …rest | WMLDeepPartial<WMLUIGlobal> | All other properties of WMLUIGlobal to be applied globally. |
Section titled “getGlobalObject”
| Signature | Return Type | Description |
|---|---|---|
getGlobalObject(): any | any | Returns the appropriate global object based on the environment: globalThis, window, global, or self. |
Return Object Section titled “Return Object”
| Property | Type | Description |
|---|---|---|
| globalThis | any | Standard ECMAScript global object. |
| window | any | Global object for browser environments. |
| global | any | Global object for Node.js environments. |
| self | any | Global object for Web Workers. |
Object | Fallback empty object if none of the above globals are available. |
Section titled “detectFramework”
| Signature | Return Type | Description |
|---|---|---|
detectFramework(): WMLUIFrameworkType | WMLUIFrameworkType | Detects the framework used in the environment (React, Angular, Vue.js, etc.). |
myWindow Section titled “myWindow”
| Property | Type | Description |
|---|---|---|
| myWindow | any | Represents the global window object or an empty object if window is undefined. |
Section titled “generateUUID(prefix: string)”
| Description |
|---|
| Generates a UUID with an optional prefix and returns it as a string. |
Section titled “generateClassPrefix(prefix: string)”
| Description |
|---|
| Returns a function that generates class names based on the provided prefix. If the value is empty, it returns the first part of the prefix. |
Section titled “generateIdPrefix(prefix: string)”
| Description |
|---|
| Returns a function that generates ID names based on the provided prefix. If the value is empty, it returns the first part of the prefix. |
Section titled “fillMissingProperties(source: object, target: object)”
| Description |
|---|
Recursively fills missing properties in the target object from the source object. If a property exists in both, the target keeps its value. |
Section titled “updateClassString(obj: any, myClassDefault: string, classListDefault: string)”
| Description |
|---|
| Returns a function to manage the class list of an object. Can add, remove, toggle, or clear class names based on the current state of the object. |
Section titled “toggleClassString(targetClass: string, classList: Array
| Description |
|---|
Toggles a class string on or off within the provided class list. The predicate function determines the action. |
Section titled “generateRandomNumber(range: number, additional: number)”
| Description |
|---|
| Generates a random number within the specified range and adds the additional value. |
Section titled “generateRandomColor()”
| Description |
|---|
| Generates a random hex color code. |
Section titled “selectRandomOptionFromArray(myArray: Array
| Description |
|---|
| Selects a random element from an array. Optionally, an index can be provided to limit the range. |
Section titled “replaceValuesWithPaths
| Description |
|---|
Recursively replaces values in an object with their corresponding path. The predicate function is used to modify the path value. |
Section titled “WMLUIPropertyDecorator(target: any, key: any)”
| Description |
|---|
| Obsolete decorator for handling UI properties. |
Section titled “v0.9.4”added WMLQueue just a regular Queue data structure thats all
Section titled “v0.9.5”added index accessing for WMLQueue
Section titled “v0.10.0”add generateRandomNumber, generateRandomColor,and selectRandomOptionFromArraywml
Section titled “v0.10.1”returned the ref created by addCustomComponent
Section titled “v0.10.2”WMLAPIPaginationRequestModel[“sort”][number][“direction”] enums are now “ASC” |“DESC” | ""
Section titled “v0.10.3”add WMLAPIPaginationResponseModel[“columns”] of type
Array<{ value:string, type?:string }>
to provide the developer column information
Section titled “v0.10.4”made WMLAPIPaginationResponseModel[“data”] Array generic
Section titled “v0.10.5”added generateClassPrefix method to functions
Section titled “v0.10.6”updated Function signatuire on WMLUIProperty##click so the event option is optional
Section titled “v0.11.0”provided WMLNGXTranslateLoader to work with ngx-translateprovided WMLModuleForRootProps to work with
Section titled “v0.11.1”attempting to deal with an issue where numbers are being returned if no feature is present
Section titled “v1.0.0”major change
functions##addCustomComponent ref.instance.ngOnInit?.() only gets called if the angular versions is less than 14.1.0
Section titled “v1.1.0”minor changeadded WMLDeepPartial, a utility types that will make all your nested properties optionalmodified WMLNGXTranslateLoader##i18nLocation to return undefined so numbers dont turn to the indexes of the string
Section titled “v2.0.0”MAJOR rename to angular-wml-components-base
Section titled “v2.1.1”added fn replaceValuesWithPaths which will recursively go through an object and return a new obj with its values in path representation great for i18n
Section titled “v2.1.2”made a fix in genearate random color, where some times 5 digits where returned
Section titled “v2.2.0”WMLUIProperty.id by default is "" should help with type should hurt if your code depends on it it is still optional
Section titled “v2.2.3”generateClassPrefix prefix parameter supports ="" as default use case,ids and will remove the subsequent _ if its thereWMLUIProperty[“id”] default param is ""
Section titled “v16.2.5-0”provided access to WMLOptionsProps to the the container cpnt
Section titled “v16.2.70”wmlapipaginationrequestmodel##filter[].value is now the any type
%!(EXTRA string=
Section titled “v16.2.80”updated package to reflect the version 16.2.80 of @angular/core package),
Section titled “v16.2.80”updated package to reflect the version 16.2.80 of @angular/core package,
Section titled “v16.2.90”updated package to reflect the version 16.2.90 of @angular/core package,
Section titled “v16.2.91”updated package to reflect the version 16.2.91 of @angular/core package
Section titled “v16.2.92”provided spyOnForES6Imports, which finally allows you to spyOnFunctions on es6 imports however refer to the stack overflow project on how toconfigure your angular appin order to get this to work it will not work alone*in test.ts
...const { defineProperty } = Object;Object.defineProperty = function(object, name, meta) { if (meta.get && !meta.configurable) { // it might be an ES6 exports object return defineProperty(object, name, { ...meta, configurable: true, }); } return defineProperty(object, name, meta);};...getTestBed().initTestEnvironment( BrowserDynamicTestingModule, platformBrowserDynamicTesting());
tsconfig.spec.json... "compilerOptions": { "outDir": "./out-tsc/spec", "types": [ "jasmine","node" ], "module": "commonjs" },...
Section titled “v16.2.93”added mockDeclarations to wmltestutils so users can add their declarations
,
Section titled “v16.2.93”updated package to conform with @windmillcode/angular-wml-components-base for unit testing features ,
Section titled “v16.2.100”updated package to conform with @windmillcode/angular-wml-components-base for unit testing features ,
Section titled “v16.2.110”updated package to conform with @windmillcode/angular-wml-components-base for unit testing features
Section titled “v16.2.112”update type inference for replaceValuesWithPaths to be more friendly
Section titled “v16.2.113”added createBasicObservableError and WMLTestHttpHandler for interceptor test cases and throwing observable errors
,
Section titled “v16.2.120”updated package to conform with @windmillcode/angular-wml-components-base for unit testing features ,
Section titled “v17.0.10”updated package to conform with @windmillcode/angular-wml-components-base for unit testing features ,
Section titled “v17.0.11”updated package to conform with @windmillcode/angular-wml-components-base for unit testing features ,
Section titled “v17.0.20”updated package to reflect the version ^17.0.2 of @angular/core package
Section titled “v17.0.21”added data-source-utils.ts to help with pagination and data source logic
,
Section titled “v17.0.40”updated package to reflect the version ^17.0.4 of @angular/core package,
Section titled “v17.0.50”updated package to reflect the version ^17.0.5 of @angular/core package,
Section titled “v17.0.60”updated package to reflect the version ^17.0.6 of @angular/core package,
Section titled “v17.0.70”updated package to reflect the version ^17.0.7 of @angular/core package
Section titled “v17.0.7300”added WMLAnimateUIProperty as the basis for all entities meant to be animated,
Section titled “v17.0.7300”updated package to conform with @windmillcode/angular-wml-components-base
,
Section titled “v17.0.8300”updated package to conform with @windmillcode/angular-wml-components-base ,
Section titled “v17.0.7300”updated package to conform with @windmillcode/angular-wml-components-base ,
Section titled “v17.0.80”updated package to reflect the version ^17.0.8 of @angular/core package
Section titled “v17.0.8100”prevented animation end event from propagating to child events, given the children are not exactly the same as the parent,
,
Section titled “v17.0.8100”updated package to conform with @windmillcode/angular-wml-components-base
Section titled “v17.0.8102”added WMLAnimateUIProperty[“helperStyles”] to help animations run more smootly its value is helperStyles:WMLUIProperty["style"]={ transform:"translate3d(0,0,0)" }
and you can overwrite it as necessary
,
Section titled “v17.0.8103”updated package to conform with @windmillcode/angular-wml-components-base
,
Section titled “v17.0.9000”updated package to conform with @windmillcode/angular-wml-components-base
Section titled “v17.0.9001”added generateIdPrefix
,
Section titled “v17.0.9000”updated package to conform with @windmillcode/angular-wml-components-base ,
Section titled “v17.0.9001”updated package to conform with @windmillcode/angular-wml-components-base ,
Section titled “v17.1.0000”updated package to reflect the version ^17.1.0 of @angular/core package
Section titled “v17.1.2”[BREAKING CHANGE] added WMLAnimateUIProperty.autoOpen, by default animations dont don anything
if you need your animations to autoOpen simply go through all your class instances and make the update,
Section titled “v17.1.2”updated package to conform with @windmillcode/angular-wml-components-base ,
Section titled “v17.1.1000”updated package to conform with @windmillcode/angular-wml-components-base ,
[Section titled “v17.1.2000 [2/5/24]”](#v1712000-2524)updated package to reflect the version ^17.1.2 of @angular/core package
[Section titled “v17.1.2001 [2/8/24]”](#v1712001-2824)added toggle functionality for updateClassString
,
[Section titled “v17.1.2001 [2/8/24]”](#v1712001-2824-1)updated package to conform with @windmillcode/angular-wml-components-base ,
[Section titled “v17.1.3001 [2/8/24]”](#v1713001-2824)updated package to reflect the version ^17.1.3 of @angular/core package,
[Section titled “v17.1.3000 [2/8/24]”](#v1713000-2824)updated package to reflect the version ^17.1.3 of @angular/core package,
[Section titled “v17.2.1000 [2/17/24]”](#v1721000-21724)updated package to reflect the version ^17.2.1 of @angular/core package,
[Section titled “v17.2.2000 [2/23/24]”](#v1722000-22324)updated package to reflect the version ^17.2.2 of @angular/core package,
[Section titled “v17.2.2001 [2/23/24]”](#v1722001-22324)updated package to reflect the version ^17.2.2 of @angular/core package,
[Section titled “v17.2.3000 [2/28/24]”](#v1723000-22824)updated package to reflect the version ^17.2.3 of @angular/core package
[Section titled “v17.2.3001 [3/22/24]”](#v1723001-32224)created WMLComponentBaseZero which shortens and hides the complex logic of
our WMLComponentsNew FeaturesSection titled “New Features”Introduced WMLComponentBaseZero , a new base class designed to simplify and encapsulate the complex logic associated with WML components. This enhancement aims to provide a cleaner and more intuitive interface for working with WML components.Enhancements in component-base.ts :Section titled “Enhancements in component-base.ts:”Refactored WMLComponentBaseZeroProps :
Transitioned from a traditional class-based approach to a mixin-based pattern using WMLComponentBaseZeroPropsMixin . This change is intended to enhance flexibility and reusability across different component implementations.The mixin WMLComponentBaseZeroPropsMixin is now used to dynamically extend a base class, incorporating custom properties and methods essential for WML components.Introduced a new setState method within the mixin, providing a streamlined way to update component state.Introduced WMLComponentBaseZero :
This new base class leverages WMLComponentBaseZeroProps to offer a robust foundation for component development.The constructor now initializes class and ID prefixes if they are provided, enabling more consistent and predictable styling and DOM structure.Enhanced the listenForSetState method to work seamlessly with the new state management approach, ensuring changes are propagated efficiently and reliably.Key Changes to Note:Section titled “Key Changes to Note:”The listenForSetState method now listens to changes from setStateSubj , aligning with the new state management strategy.Destructor ( ngOnDestroy ) logic has been updated to ensure proper cleanup, reducing the risk of memory leaks and ensuring better resource management.Usage:Section titled “Usage:”To leverage the new WMLComponentBaseZero , extend your components from this base class and utilize the provided mechanisms for state management and lifecycle handling.The mixin approach offers enhanced customization, allowing developers to inject additional properties or methods as needed.Recommendations:Section titled “Recommendations:”Review the updated implementation details in WMLComponentBaseZero and WMLComponentBaseZeroPropsMixin to fully understand the new component structure and behavior.Test your components thoroughly to ensure compatibility with the new base class and to leverage the improvements in state management and lifecycle handling.This update signifies our commitment to improving the developer experience and streamlining component development within the WML ecosystem.
,
[Section titled “v17.2.3001 [3/2/24]”](#v1723001-3224)updated package to conform with @windmillcode/angular-wml-components-base
[Section titled “v17.2.3002 [3/5/24]”](#v1723002-3524)[UPDATE] Added a new fields array of type Array<{value:any}> to the WMLAPIPaginationRequestModel class in data-source-utils.ts . This new field is designed to hold additional data fields that may be required during pagination requests.
[PATCH] Modified the animationEnd method in the WMLAnimateUIProperty class within models.ts . The condition now removes any spaces from this.animationClass before checking its presence in the event target’s className. This ensures the animation end logic accurately identifies the target regardless of space characters in the class name.
,
[Section titled “v17.2.3002 [3/5/24]”](#v1723002-3524-1)updated package to conform with @windmillcode/angular-wml-components-base ,
[Section titled “v17.2.4000 [3/8/24]”](#v1724000-3824)updated package to reflect the version ^17.2.4 of @angular/core package
[Section titled “v17.2.4002 [3/12/24]”](#v1724002-31224)[PATCH] In wml-components-base/src/lib/component-base.ts , added a new ReplaySubject called setStateEvent , which enhances state management within the component. Also adjusted the RxJS pipe in the setState method to include an additional operation that emits the updated state to setStateEvent , improving the reactivity of the component state.,
[Section titled “v17.2.4002 [3/12/24]”](#v1724002-31224-1)updated package to conform with @windmillcode/angular-wml-components-base ,
[Section titled “v17.2.4003 [3/13/24]”](#v1724003-31324)updated package to conform with @windmillcode/angular-wml-components-base ,
[Section titled “v17.2.4004 [3/13/24]”](#v1724004-31324)updated package to conform with @windmillcode/angular-wml-components-base ,
[Section titled “v17.3.0 [3/17/24]”](#v1730-31724)updated package to reflect the version ^17.3.0 of @angular/core package
,
[Section titled “v17.3.1000 [3/22/24]”](#v1731000-32224)updated package to reflect the version ^17.3.1 of @angular/core package,
[Section titled “v17.3.2000 [3/28/24]”](#v1732000-32824)updated package to reflect the version ^17.3.2 of @angular/core package,
[Section titled “v17.3.3000 [4/4/24]”](#v1733000-4424)updated package to reflect the version ^17.3.3 of @angular/core package,
[Section titled “v17.3.4000 [4/11/24]”](#v1734000-41124)updated package to reflect the version ^17.3.4 of @angular/core package
[Section titled “v17.3.4001 [4/16/24]”](#v1734001-41624)added onError to wmlimage prperty
,
[Section titled “v17.3.4001 [4/16/24]”](#v1734001-41624-1)updated package to conform with @windmillcode/angular-wml-components-base ,
[Section titled “v17.3.5000 [4/20/24]”](#v1735000-42024)updated package to reflect the version ^17.3.5 of @angular/core package
[Section titled “v17.3.5110 [4/20/24]”](#v1735110-42024)[UPDATE] ensure dervied class passed type to base classes
Updated models.ts by add the WMLConstructorDecorator function, to streamline and optimize object initialization practices within the framework. constructor(props:Partial<T>={}){ let origProps = Object.entries(props).filter(([key, val]) => { return !key.startsWith('param'); }); Object.assign(this, { ...Object.fromEntries(origProps) }); }
so as not to overwhelm developers
to use
@WMLConstructorDecorator