19.2.2000 • Published 4 months ago

@windmillcode/wml-components-base v19.2.2000

Weekly downloads
-
License
-
Repository
github
Last release
4 months ago

WML Components Base

This content is for the 19.0.0 version. Switch to thelatest versionfor up-to-date documentation.

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

Installation

Terminal window npm install -s --verbose @windmillcode/wml-components-base

Usage

WMLUIProperty

The Building Blocks Of Web Apps

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

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

WMLCustomComponent

Custom Components

References

WMLUIProperty

Methods

WMLUIGlobal

framework

WMLEndpoint

WMLUri

Methods

WMLUri Constructor Parameters

WMLView

Methods

angular

WMLRoute

WMLMotionUIProperty

Methods

currentTransitionInfo PropertyTypeDescriptionkeyframestringCurrent keyframe percentage (e.g., "0%").currentStylesobjectCurrent styles applied to the element.transitionEndStylesArray<string>List of CSS properties that have completed transitioning.playStatestringCurrent play state of the transition (e.g., "running", "paused").

WMLMotionUIPropertyState

WMLCustomComponent

WMLImage<V=any,T=any>

Methods

WMLE2ETarget

WMLQueue

Methods

WMLAPIPageRequestModelFilterPredicateEnum

WMLAPIPaginationRequestModel

Methods

WMLAPIPaginationResponseModel

Methods

Types

WMLDeepPartial

Type BehaviorConditionBehaviorTK is a functionKeeps the function type intact.TK is an objectRecursively makes all properties of the object optional using WMLDeepPartial.TK is neither a function nor objectThe property becomes optional.

Functions

updateGlobal

props PropertyTypeDescriptionpropFrameworkNamestring (optional)Optionally updates the framework name in the global object.…restWMLDeepPartial<WMLUIGlobal>All other properties of WMLUIGlobal to be applied globally.

getGlobalObject

Return Object PropertyTypeDescriptionglobalThisanyStandard ECMAScript global object.windowanyGlobal object for browser environments.globalanyGlobal object for Node.js environments.selfanyGlobal object for Web Workers.ObjectFallback empty object if none of the above globals are available.

detectFramework

myWindow PropertyTypeDescriptionmyWindowanyRepresents the global window object or an empty object if window is undefined.

generateUUID(prefix: string)

generateClassPrefix(prefix: string)

generateIdPrefix(prefix: string)

fillMissingProperties(source: object, target: object)

updateClassString(obj: any, myClassDefault: string, classListDefault: string)

toggleClassString(targetClass: string, classList: Array<string>, predicate: Function)

generateRandomNumber(range: number, additional: number)

generateRandomColor()

selectRandomOptionFromArray(myArray: Array<any>, index?: number)

replaceValuesWithPaths<T>(obj: any, path: string, predicate: Function): T

WMLUIPropertyDecorator(target: any, key: any)

Changelog

v0.9.4added WMLQueue just a regular Queue data structure thats all

v0.9.5added index accessing for WMLQueue

v0.10.0add generateRandomNumber, generateRandomColor,and selectRandomOptionFromArraywml

v0.10.1returned the ref created by addCustomComponent

v0.10.2WMLAPIPaginationRequestModel“sort”“direction” enums are now “ASC” |“DESC” | ""

v0.10.3add WMLAPIPaginationResponseModel“columns” of type

Array<{ value:string, type?:string }>

to provide the developer column information

v0.10.4made WMLAPIPaginationResponseModel“data” Array generic

v0.10.5added generateClassPrefix method to functions

v0.10.6updated Function signatuire on WMLUIProperty##click so the event option is optionalv0.11.0provided WMLNGXTranslateLoader to work with ngx-translateprovided WMLModuleForRootProps to work withv0.11.1attempting to deal with an issue where numbers are being returned if no feature is present

v1.0.0

major change functions##addCustomComponent ref.instance.ngOnInit?.() only gets called if the angular versions is less than 14.1.0

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

v2.0.0

MAJOR rename to angular-wml-components-base

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

v2.1.2

made a fix in genearate random color, where some times 5 digits where returned

v2.2.0

WMLUIProperty.id by default is "" should help with type should hurt if your code depends on it it is still optional

v2.2.3

generateClassPrefix prefix parameter supports ="" as default use case,ids and will remove the subsequent _ if its thereWMLUIProperty“id” default param is ""

v16.2.5-0

provided access to WMLOptionsProps to the the container cpnt

v16.2.70

wmlapipaginationrequestmodel##filter[].value is now the any type %!(EXTRA string=

v16.2.80

updated package to reflect the version 16.2.80 of @angular/core package),

v16.2.80

updated package to reflect the version 16.2.80 of @angular/core package,

v16.2.90

updated package to reflect the version 16.2.90 of @angular/core package,

v16.2.91

updated package to reflect the version 16.2.91 of @angular/core package

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, }); }

tsconfig.spec.json... "compilerOptions": { "outDir": "./out-tsc/spec", "types": "jasmine","node" , "module": "commonjs" },...

v16.2.93

added mockDeclarations to wmltestutils so users can add their declarations ,

v16.2.93

updated package to conform with @windmillcode/angular-wml-components-base for unit testing features ,

v16.2.100

updated package to conform with @windmillcode/angular-wml-components-base for unit testing features ,

v16.2.110

updated package to conform with @windmillcode/angular-wml-components-base for unit testing features

v16.2.112

update type inference for replaceValuesWithPaths to be more friendly

v16.2.113

added createBasicObservableError and WMLTestHttpHandler for interceptor test cases and throwing observable errors ,

v16.2.120

updated package to conform with @windmillcode/angular-wml-components-base for unit testing features ,

v17.0.10

updated package to conform with @windmillcode/angular-wml-components-base for unit testing features ,

v17.0.11

updated package to conform with @windmillcode/angular-wml-components-base for unit testing features ,

v17.0.20

updated package to reflect the version ^17.0.2 of @angular/core package

v17.0.21

added data-source-utils.ts to help with pagination and data source logic ,

v17.0.40

updated package to reflect the version ^17.0.4 of @angular/core package,

v17.0.50

updated package to reflect the version ^17.0.5 of @angular/core package,

v17.0.60

updated package to reflect the version ^17.0.6 of @angular/core package,

v17.0.70

updated package to reflect the version ^17.0.7 of @angular/core package

v17.0.7300

added WMLAnimateUIProperty as the basis for all entities meant to be animated,

v17.0.7300

updated package to conform with @windmillcode/angular-wml-components-base ,

v17.0.8300

updated package to conform with @windmillcode/angular-wml-components-base ,

v17.0.7300

updated package to conform with @windmillcode/angular-wml-components-base ,

v17.0.80

updated package to reflect the version ^17.0.8 of @angular/core package

v17.0.8100

prevented animation end event from propagating to child events, given the children are not exactly the same as the parent, ,

v17.0.8100

updated package to conform with @windmillcode/angular-wml-components-base

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 ,

v17.0.8103

updated package to conform with @windmillcode/angular-wml-components-base ,

v17.0.9000

updated package to conform with @windmillcode/angular-wml-components-base

v17.0.9001

added generateIdPrefix ,

v17.0.9000

updated package to conform with @windmillcode/angular-wml-components-base ,

v17.0.9001

updated package to conform with @windmillcode/angular-wml-components-base ,

v17.1.0000

updated package to reflect the version ^17.1.0 of @angular/core package

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,

v17.1.2

updated package to conform with @windmillcode/angular-wml-components-base ,

v17.1.1000

updated package to conform with @windmillcode/angular-wml-components-base ,

v17.1.2000 2/5/24

updated package to reflect the version ^17.1.2 of @angular/core package

v17.1.2001 2/8/24

added toggle functionality for updateClassString ,

v17.1.2001 2/8/24

updated package to conform with @windmillcode/angular-wml-components-base ,

v17.1.3001 2/8/24

updated package to reflect the version ^17.1.3 of @angular/core package,

v17.1.3000 2/8/24

updated package to reflect the version ^17.1.3 of @angular/core package,

v17.2.1000 2/17/24

updated package to reflect the version ^17.2.1 of @angular/core package,

v17.2.2000 2/23/24

updated package to reflect the version ^17.2.2 of @angular/core package,

v17.2.2001 2/23/24

updated package to reflect the version ^17.2.2 of @angular/core package,

v17.2.3000 2/28/24

updated package to reflect the version ^17.2.3 of @angular/core package

v17.2.3001 3/22/24

created WMLComponentBaseZero which shortens and hides the complex logic of our WMLComponentsNew FeaturesIntroduced 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 :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: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: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: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. ,

v17.2.3001 3/2/24

updated package to conform with @windmillcode/angular-wml-components-base

v17.2.3002 3/5/24

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. ,

v17.2.3002 3/5/24

updated package to conform with @windmillcode/angular-wml-components-base ,

v17.2.4000 3/8/24

updated package to reflect the version ^17.2.4 of @angular/core package

v17.2.4002 3/12/24

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.,

v17.2.4002 3/12/24

updated package to conform with @windmillcode/angular-wml-components-base ,

v17.2.4003 3/13/24

updated package to conform with @windmillcode/angular-wml-components-base ,

v17.2.4004 3/13/24

updated package to conform with @windmillcode/angular-wml-components-base ,

v17.3.0 3/17/24

updated package to reflect the version ^17.3.0 of @angular/core package ,

v17.3.1000 3/22/24

updated package to reflect the version ^17.3.1 of @angular/core package,

v17.3.2000 3/28/24

updated package to reflect the version ^17.3.2 of @angular/core package,

v17.3.3000 4/4/24

updated package to reflect the version ^17.3.3 of @angular/core package,

v17.3.4000 4/11/24

updated package to reflect the version ^17.3.4 of @angular/core package

v17.3.4001 4/16/24

added onError to wmlimage prperty ,

v17.3.4001 4/16/24

updated package to conform with @windmillcode/angular-wml-components-base ,

v17.3.5000 4/20/24

updated package to reflect the version ^17.3.5 of @angular/core package

v17.3.5110 4/20/24

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

@WMLConstructorDecoratorexport class T { constructor(props: Partial<T> = {}) { }}

,

v17.3.5110 5/1/24

updated package to conform with @windmillcode/angular-wml-components-base ,

v17.3.6000 5/1/24

updated package to reflect the version ^17.3.6 of @angular/core package,

v17.3.7000 5/4/24

updated package to reflect the version ^17.3.7 of @angular/core package,

v17.3.7000 5/9/24

updated package to reflect the version ^17.3.7 of @angular/core package,

v17.3.8000 5/9/24

updated package to reflect the version ^17.3.8 of @angular/core package,

v17.3.9000 5/16/24

updated package to reflect the version ^17.3.9 of @angular/core package,

v18.0.0 5/22/24

updated package to reflect the version ^18.0.0 of @angular/core package,

v18.0.1 5/22/24

updated package to reflect the version ^18.0.0 of @angular/core package

v18.0.4 5/25/2024 12:50:12 AM EST

UPDATE Modified replaceValuesWithPaths function in functions.ts to include a predicate for custom assignments.

File: functions.ts Section: replaceValuesWithPaths Function: replaceValuesWithPaths() ,

v18.0.4 5/25/24

updated package to conform with @windmillcode/angular-wml-components-base ,

v18.0.1000 5/29/24

updated package to reflect the version ^18.0.1 of @angular/core package ,

v18.0.2000 6/6/24

updated package to reflect the version ^18.0.2 of @angular/core package,

v18.0.3000 6/13/24

updated package to reflect the version ^18.0.3 of @angular/core package,

v18.0.3000 6/13/24

updated package to reflect the version ^18.0.3 of @angular/core package,

v18.0.3000 6/13/24

updated package to reflect the version ^18.0.3 of @angular/core package

v18.0.3010 6/18/2024

FIX projects/wml-components-base/src/lib/models.ts - WMLConstructorDecorator function: Added props to this.wmlInit?.(props) . This means developers can now pass props to wmlInit . ,

v18.0.3010 6/18/24

updated package to conform with @windmillcode/angular-wml-components-base ,

v18.0.3010 6/18/24

updated package to conform with @windmillcode/angular-wml-components-base ,

v18.0.4010 6/23/24

updated package to conform with @windmillcode/angular-wml-components-base ,

v18.0.4000 6/23/24

updated package to conform with @windmillcode/angular-wml-components-base ,

v18.0.4000 6/23/24

updated package to conform with @windmillcode/angular-wml-components-base ,

v18.0.5000 6/26/24

updated package to reflect the version ^18.0.5 of @angular/core package,

v18.0.6000 7/5/24

updated package to reflect the version ^18.0.6 of @angular/core package,

v18.1.0 7/10/24

updated package to reflect the version ^18.1.0 of @angular/core package,

v18.1.0 7/13/24

updated package to reflect the version ^18.1.0 of @angular/core package,

v18.1.3000 7/13/24

updated package to reflect the version ^18.1.0 of @angular/core package,

v18.1.3 7/13/24

updated package to reflect the version ^18.1.0 of @angular/core package,

v18.1.4 7/13/24

updated package to reflect the version ^18.1.0 of @angular/core package,

v18.1.4 7/13/24

updated package to reflect the version ^18.1.0 of @angular/core package

v18.1.6 7/14/24

FIX fixed an error with WMLConstructorDecorator where WMLInit was not being called ,

v18.1.6 7/14/24

updated package to conform with @windmillcode/angular-wml-components-base ,

v18.1.6 7/14/24

updated package to conform with @windmillcode/angular-wml-components-base ,

v18.1.1000 7/18/24

updated package to reflect the version ^18.1.1 of @angular/core package,

v18.1.2000 7/24/24

updated package to reflect the version ^18.1.2 of @angular/core package

v18.1.2300

7/27/2024 02:15:42 PM EST

update WMLRoute now extends WMLView in models.ts. If you were using WMLRoute, you now have access to WMLView’s properties, like cdref.

update Added new properties link and routerLink to WMLRoute in models.ts. This gives more flexibility for routing in your components.

UPDATE Changed WMLImage class to extend WMLRoute instead of WMLUIProperty in models.ts. This means WMLImage now includes routing properties route, link, and routerLink as well as cdref from WMLView ,

v18.1.2230 7/27/24

updated package to conform with @windmillcode/angular-wml-components-base ,

v18.1.2300 7/27/24

updated package to conform with @windmillcode/angular-wml-components-base ,

v18.1.2301 7/30/24

updated package to conform with @windmillcode/angular-wml-components-base

v18.1.3000 []

MAJOR BREAKING CHANGESWMLUIProperty id attribute is undefined by default this is for accessbility and QA so values are not all defined with "" ,

v18.1.3000-beta0 8/1/24

updated package to conform with @windmillcode/angular-wml-components-base ,

v18.1.3000-beta1 8/1/24

updated package to conform with @windmillcode/angular-wml-components-base ,

v18.1.3000-beta2 8/1/24

updated package to conform with @windmillcode/angular-wml-components-base ,

v18.1.3000-beta3 8/1/24

updated package to conform with @windmillcode/angular-wml-components-base ,

v18.1.3000-beta4 8/1/24

v18.1.3000-beta13 8/4/24

updated package to conform with @windmillcode/angular-wml-components-base

v18.1.3001 8/4/24

updated package to conform with @windmillcode/angular-wml-components-base

v18.1.3001 8/4/24

updated package to conform with @windmillcode/angular-wml-components-base

v18.1.3002 8/4/24

updated package to conform with @windmillcode/angular-wml-components-base

v18.1.3002 8/5/24

updated package to conform with @windmillcode/angular-wml-components-base

v18.1.3003 8/5/24

updated package to conform with @windmillcode/angular-wml-components-base

v18.1.3004 8/5/24

updated package to conform with @windmillcode/angular-wml-components-base

v18.1.3005 8/5/24

updated package to conform with @windmillcode/angular-wml-components-base

v18.1.3006 8/5/24

updated package to conform with @windmillcode/angular-wml-components-base

v18.1.3007 8/5/24

updated package to conform with @windmillcode/angular-wml-components-base

v18.1.4000 8/14/24

updated package to conform with @windmillcode/angular-wml-components-base

v18.1.4001 8/14/24

updated package to conform

19.2.1000

4 months ago

19.2.2000

4 months ago

19.2.0

4 months ago

19.1.8000

4 months ago

19.1.7000

5 months ago

19.1.6000

5 months ago

19.1.3112

5 months ago

19.1.3111

6 months ago

19.1.3110

6 months ago

19.1.3100

6 months ago

19.1.4000

5 months ago

19.1.2000

6 months ago

19.1.5000

5 months ago

19.1.3000

6 months ago

19.1.0

6 months ago

19.0.7000

6 months ago

19.0.6000

6 months ago

19.0.5002

6 months ago

19.0.5100

6 months ago

19.0.5001

6 months ago

19.0.5000

7 months ago

19.0.4000

7 months ago

19.0.3000

7 months ago

19.0.2000

7 months ago

19.0.4

8 months ago

19.0.1000

8 months ago

19.0.0

8 months ago

19.0.3

8 months ago

18.2.12000

8 months ago

18.2.12001

8 months ago

18.2.11000

8 months ago

18.2.10000

8 months ago

18.2.9000

9 months ago

18.2.8000

9 months ago

18.2.8001

9 months ago

18.2.7000

9 months ago

18.2.7001

9 months ago

18.2.7010

9 months ago

18.2.6000

9 months ago

18.2.7020

9 months ago

18.2.4000

10 months ago

18.2.3100

10 months ago

18.2.4004

10 months ago

18.2.4003

10 months ago

18.2.3112

10 months ago

18.2.4200

10 months ago

18.2.4002

10 months ago

18.2.3111

10 months ago

18.2.4001

10 months ago

18.2.3110

10 months ago

18.2.4005

10 months ago

18.2.3200

10 months ago

18.2.5000

10 months ago

18.2.5001

10 months ago

18.2.4100

10 months ago

1.1.0

2 years ago

1.0.0

2 years ago

0.9.4

2 years ago

0.9.5

2 years ago

0.11.0

2 years ago

0.10.1

2 years ago

0.11.1

2 years ago

0.10.2

2 years ago

0.10.3

2 years ago

0.10.4

2 years ago

0.10.5

2 years ago

0.10.6

2 years ago

0.10.0

2 years ago

0.9.3

2 years ago

0.9.0

2 years ago

0.8.1

2 years ago

0.8.0

2 years ago

0.9.2

2 years ago

0.9.1

2 years ago

0.5.0

2 years ago

0.4.1

2 years ago

0.7.0

2 years ago

0.6.1

2 years ago

0.4.0

2 years ago

0.3.0

2 years ago

0.2.3

3 years ago

0.2.2

3 years ago

0.2.1

3 years ago

0.2.0

3 years ago

0.1.0

3 years ago

0.0.11

3 years ago

0.0.10

3 years ago

0.0.9

3 years ago

0.0.8

3 years ago

0.0.7

3 years ago

0.0.6

3 years ago

0.0.5

3 years ago

0.0.4

3 years ago

0.0.3

3 years ago

0.0.2

3 years ago