2.25.0 • Published 7 months ago

@heartlandone/vega-angular-sandbox-pr-1461-0eaf8571e588c49f4fa20b3a711bbc63364fcaa4 v2.25.0

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

Vega Angular

Angular specific wrapper for @heartlandone/vega

How to use

For installation guidance, please refer to https://vega.hlprd.com/guides/getting-started-developers#angular

For development

This library was generated with Angular CLI version 13.2.0.

This is the Angular specific wrapper for @heartlandone/vega with the following file structure (we only list some important file path):

...
├── src
│   ├── lib
│   │   ├── components-module.ts
│   │   └── stencil-generated
│   │       ├── angular-component-lib
│   │       │   └── utils.ts
│   │       └── components.ts => 
│   ...
...
  • ./src/lib/components-module.ts: angular module used to export auto-generated angular directive proxies
  • ./src/lib/stencil-generated/components.ts: stencil auto-generated angular directive proxies which can be used as angular components after import
  • ./src/lib/stencil-generated/angular-component-lib/utils.ts: utility class including proxy related functions used by components.ts

Pre-requisite

Make sure all the dependencies has been installed by running

> npm run install

Consuming change in vega-stencil

Once you build vega-stencil with command npm run build, stencil will auto populate corresponding component classes into ./src/lib/stencil-generated/components.ts

keeping in mind, if there is a new component created, you need to modify ./src/lib/components-module.ts to import the new component

Get started

To generate the compiled lib version for vega-angular please run

> ng build vega-angular

And the built lib can be found in ./dist/vega-angular

In order to use the unpublished lib vega-angular directly for your angular app package, you can choose one of the following options: 1. Directly install the local package into your angular app package by running:

```bash
> npm install file:<relative path to "./dist/vega-angular">
```
  1. Use npm symlink by running
    > npm link
    Note: you might also want to setup the symlink for vega-stencil as it is a direct dependency of vega-angular, so you can consume the local change in both package for your angular app

Troubleshoot

If you encounter the following error

✖ Compiling with Angular sources in Ivy partial compilation mode.
../../projects/vega-angular/src/lib/stencil-generated/value-accessor.ts:4:1 - error NG2004: Directive ValueAccessor has no selector, please add it!

  4 @Directive({})
    ~~~~~~~~~~~~~~
  5 export class ValueAccessor implements ControlValueAccessor {
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
...
 38   }
    ~~~
 39 }
    ~

this is a known issue in stencil https://github.com/ionic-team/stencil-ds-output-targets/issues/174, please add the selector vega-value-accessor like below to fix this issue:

@Directive({ selector: 'vega-value-accessor' })
export class ValueAccessor implements ControlValueAccessor {
    ...
}

Publish the package

Please check our general wiki