nmce-directives 1.2.2 → 1.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +24 -24
- package/_directives/autofocus.d.ts +2 -2
- package/_directives/directives.module.d.ts +5 -6
- package/_directives/index.d.ts +0 -1
- package/esm2022/_directives/autofocus.mjs +8 -8
- package/esm2022/_directives/dataComponent.directive.mjs +4 -4
- package/esm2022/_directives/directives.module.mjs +6 -10
- package/esm2022/_directives/index.mjs +1 -2
- package/esm2022/_directives/scrollInto.directive.mjs +4 -4
- package/esm2022/public-api.mjs +1 -1
- package/fesm2022/nmce-directives.mjs +19 -58
- package/fesm2022/nmce-directives.mjs.map +1 -1
- package/package.json +1 -1
- package/_directives/currencyFormatter.directive.d.ts +0 -16
- package/esm2022/_directives/currencyFormatter.directive.mjs +0 -37
package/README.md
CHANGED
|
@@ -1,24 +1,24 @@
|
|
|
1
|
-
# NmceDirectives
|
|
2
|
-
|
|
3
|
-
This library was generated with [Angular CLI](https://github.com/angular/angular-cli) version 11.2.5.
|
|
4
|
-
|
|
5
|
-
## Code scaffolding
|
|
6
|
-
|
|
7
|
-
Run `ng generate component component-name --project nmce-directives` to generate a new component. You can also use `ng generate directive|pipe|service|class|guard|interface|enum|module --project nmce-directives`.
|
|
8
|
-
> Note: Don't forget to add `--project nmce-directives` or else it will be added to the default project in your `angular.json` file.
|
|
9
|
-
|
|
10
|
-
## Build
|
|
11
|
-
|
|
12
|
-
Run `ng build nmce-directives` to build the project. The build artifacts will be stored in the `dist/` directory.
|
|
13
|
-
|
|
14
|
-
## Publishing
|
|
15
|
-
|
|
16
|
-
After building your library with `ng build nmce-directives`, go to the dist folder `cd dist/nmce-directives` and run `npm publish`.
|
|
17
|
-
|
|
18
|
-
## Running unit tests
|
|
19
|
-
|
|
20
|
-
Run `ng test nmce-directives` to execute the unit tests via [Karma](https://karma-runner.github.io).
|
|
21
|
-
|
|
22
|
-
## Further help
|
|
23
|
-
|
|
24
|
-
To get more help on the Angular CLI use `ng help` or go check out the [Angular CLI Overview and Command Reference](https://angular.io/cli) page.
|
|
1
|
+
# NmceDirectives
|
|
2
|
+
|
|
3
|
+
This library was generated with [Angular CLI](https://github.com/angular/angular-cli) version 11.2.5.
|
|
4
|
+
|
|
5
|
+
## Code scaffolding
|
|
6
|
+
|
|
7
|
+
Run `ng generate component component-name --project nmce-directives` to generate a new component. You can also use `ng generate directive|pipe|service|class|guard|interface|enum|module --project nmce-directives`.
|
|
8
|
+
> Note: Don't forget to add `--project nmce-directives` or else it will be added to the default project in your `angular.json` file.
|
|
9
|
+
|
|
10
|
+
## Build
|
|
11
|
+
|
|
12
|
+
Run `ng build nmce-directives` to build the project. The build artifacts will be stored in the `dist/` directory.
|
|
13
|
+
|
|
14
|
+
## Publishing
|
|
15
|
+
|
|
16
|
+
After building your library with `ng build nmce-directives`, go to the dist folder `cd dist/nmce-directives` and run `npm publish`.
|
|
17
|
+
|
|
18
|
+
## Running unit tests
|
|
19
|
+
|
|
20
|
+
Run `ng test nmce-directives` to execute the unit tests via [Karma](https://karma-runner.github.io).
|
|
21
|
+
|
|
22
|
+
## Further help
|
|
23
|
+
|
|
24
|
+
To get more help on the Angular CLI use `ng help` or go check out the [Angular CLI Overview and Command Reference](https://angular.io/cli) page.
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { AfterViewInit, DoCheck, ElementRef } from '@angular/core';
|
|
2
2
|
import * as i0 from "@angular/core";
|
|
3
3
|
/**
|
|
4
|
-
* Use as a
|
|
4
|
+
* Use as a parameterized input parameter in html element.
|
|
5
5
|
* When used inside a material dialog, this directive may be at odd against the autofocus config parameter of MatDialogConfig,
|
|
6
6
|
* if the autofocus config is not false. Generally speaking, no need to use this directive in a component presented in a mateiral dialog.
|
|
7
7
|
*/
|
|
@@ -9,7 +9,7 @@ export declare class AutofocusDirective implements AfterViewInit, DoCheck {
|
|
|
9
9
|
private el;
|
|
10
10
|
private toFocus;
|
|
11
11
|
private focused;
|
|
12
|
-
private
|
|
12
|
+
private initialized;
|
|
13
13
|
private everFocused;
|
|
14
14
|
constructor(el: ElementRef);
|
|
15
15
|
ngAfterViewInit(): void;
|
|
@@ -1,16 +1,15 @@
|
|
|
1
1
|
import * as i0 from "@angular/core";
|
|
2
2
|
import * as i1 from "./autofocus";
|
|
3
|
-
import * as i2 from "./
|
|
4
|
-
import * as i3 from "./
|
|
5
|
-
import * as i4 from "
|
|
6
|
-
import * as i5 from "@angular/
|
|
7
|
-
import * as i6 from "@angular/forms";
|
|
3
|
+
import * as i2 from "./scrollInto.directive";
|
|
4
|
+
import * as i3 from "./dataComponent.directive";
|
|
5
|
+
import * as i4 from "@angular/common";
|
|
6
|
+
import * as i5 from "@angular/forms";
|
|
8
7
|
/**
|
|
9
8
|
* Contain components. Other feature/lazy modules that need to access custom html element of components like my-datetimepicker still need to import this module explicitly.
|
|
10
9
|
*
|
|
11
10
|
*/
|
|
12
11
|
export declare class NmceDirectivesModule {
|
|
13
12
|
static ɵfac: i0.ɵɵFactoryDeclaration<NmceDirectivesModule, never>;
|
|
14
|
-
static ɵmod: i0.ɵɵNgModuleDeclaration<NmceDirectivesModule, [typeof i1.AutofocusDirective, typeof i2.
|
|
13
|
+
static ɵmod: i0.ɵɵNgModuleDeclaration<NmceDirectivesModule, [typeof i1.AutofocusDirective, typeof i2.ScrollIntoDirective, typeof i3.DataComponentDirective], [typeof i4.CommonModule, typeof i5.FormsModule], [typeof i1.AutofocusDirective, typeof i2.ScrollIntoDirective, typeof i3.DataComponentDirective]>;
|
|
15
14
|
static ɵinj: i0.ɵɵInjectorDeclaration<NmceDirectivesModule>;
|
|
16
15
|
}
|
package/_directives/index.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { Directive, Input } from '@angular/core';
|
|
2
2
|
import * as i0 from "@angular/core";
|
|
3
3
|
/**
|
|
4
|
-
* Use as a
|
|
4
|
+
* Use as a parameterized input parameter in html element.
|
|
5
5
|
* When used inside a material dialog, this directive may be at odd against the autofocus config parameter of MatDialogConfig,
|
|
6
6
|
* if the autofocus config is not false. Generally speaking, no need to use this directive in a component presented in a mateiral dialog.
|
|
7
7
|
*/
|
|
@@ -9,18 +9,18 @@ export class AutofocusDirective {
|
|
|
9
9
|
el;
|
|
10
10
|
toFocus = false;
|
|
11
11
|
focused = false;
|
|
12
|
-
|
|
12
|
+
initialized = false;
|
|
13
13
|
everFocused = false;
|
|
14
14
|
constructor(el) {
|
|
15
15
|
this.el = el;
|
|
16
16
|
//console.debug('autofocusDirective created.');
|
|
17
17
|
}
|
|
18
18
|
ngAfterViewInit() {
|
|
19
|
-
this.
|
|
19
|
+
this.initialized = true;
|
|
20
20
|
this.ngDoCheck();
|
|
21
21
|
}
|
|
22
22
|
ngDoCheck() {
|
|
23
|
-
if (!this.
|
|
23
|
+
if (!this.initialized) {
|
|
24
24
|
return;
|
|
25
25
|
}
|
|
26
26
|
if (this.toFocus && !this.everFocused && !this.focused) {
|
|
@@ -33,10 +33,10 @@ export class AutofocusDirective {
|
|
|
33
33
|
set autofocus(condition) {
|
|
34
34
|
this.toFocus = condition !== false;
|
|
35
35
|
}
|
|
36
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
37
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "
|
|
36
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: AutofocusDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
|
|
37
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.8", type: AutofocusDirective, selector: "[autofocus]", inputs: { autofocus: "autofocus" }, ngImport: i0 });
|
|
38
38
|
}
|
|
39
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
39
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: AutofocusDirective, decorators: [{
|
|
40
40
|
type: Directive,
|
|
41
41
|
args: [{
|
|
42
42
|
selector: '[autofocus]'
|
|
@@ -44,4 +44,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.4", ngImpor
|
|
|
44
44
|
}], ctorParameters: () => [{ type: i0.ElementRef }], propDecorators: { autofocus: [{
|
|
45
45
|
type: Input
|
|
46
46
|
}] } });
|
|
47
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
47
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0b2ZvY3VzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvbm1jZS1kaXJlY3RpdmVzL3NyYy9fZGlyZWN0aXZlcy9hdXRvZm9jdXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFpQixTQUFTLEVBQXVCLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFFckY7Ozs7R0FJRztBQUlILE1BQU0sT0FBTyxrQkFBa0I7SUFLVjtJQUpaLE9BQU8sR0FBRyxLQUFLLENBQUM7SUFDaEIsT0FBTyxHQUFHLEtBQUssQ0FBQztJQUNoQixXQUFXLEdBQUcsS0FBSyxDQUFDO0lBQ3BCLFdBQVcsR0FBRyxLQUFLLENBQUM7SUFDNUIsWUFBb0IsRUFBYztRQUFkLE9BQUUsR0FBRixFQUFFLENBQVk7UUFDakMsK0NBQStDO0lBQ2hELENBQUM7SUFFRCxlQUFlO1FBQ2QsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUM7UUFDeEIsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO0lBQ2xCLENBQUM7SUFFRCxTQUFTO1FBQ1IsSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUFDLE9BQU87UUFBQyxDQUFDO1FBQ2xDLElBQUksSUFBSSxDQUFDLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxXQUFXLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDeEQsSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDOUIsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUM7WUFDcEIsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUM7WUFDeEIsT0FBTyxDQUFDLEtBQUssQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUMvQixDQUFDO0lBQ0YsQ0FBQztJQUVELElBQWEsU0FBUyxDQUFDLFNBQWtCO1FBQ3hDLElBQUksQ0FBQyxPQUFPLEdBQUcsU0FBUyxLQUFLLEtBQUssQ0FBQztJQUNwQyxDQUFDO3VHQTFCVyxrQkFBa0I7MkZBQWxCLGtCQUFrQjs7MkZBQWxCLGtCQUFrQjtrQkFIOUIsU0FBUzttQkFBQztvQkFDVixRQUFRLEVBQUUsYUFBYTtpQkFDdkI7K0VBeUJhLFNBQVM7c0JBQXJCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBZnRlclZpZXdJbml0LCBEaXJlY3RpdmUsIERvQ2hlY2ssIEVsZW1lbnRSZWYsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG4vKipcclxuICogVXNlIGFzIGEgcGFyYW1ldGVyaXplZCBpbnB1dCBwYXJhbWV0ZXIgaW4gaHRtbCBlbGVtZW50LlxyXG4gKiBXaGVuIHVzZWQgaW5zaWRlIGEgbWF0ZXJpYWwgZGlhbG9nLCB0aGlzIGRpcmVjdGl2ZSBtYXkgYmUgYXQgb2RkIGFnYWluc3QgdGhlIGF1dG9mb2N1cyBjb25maWcgcGFyYW1ldGVyIG9mIE1hdERpYWxvZ0NvbmZpZywgXHJcbiAqIGlmIHRoZSBhdXRvZm9jdXMgY29uZmlnIGlzIG5vdCBmYWxzZS4gR2VuZXJhbGx5IHNwZWFraW5nLCBubyBuZWVkIHRvIHVzZSB0aGlzIGRpcmVjdGl2ZSBpbiBhIGNvbXBvbmVudCBwcmVzZW50ZWQgaW4gYSBtYXRlaXJhbCBkaWFsb2cuXHJcbiAqL1xyXG5ARGlyZWN0aXZlKHtcclxuXHRzZWxlY3RvcjogJ1thdXRvZm9jdXNdJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgQXV0b2ZvY3VzRGlyZWN0aXZlIGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCwgRG9DaGVjayB7XHJcblx0cHJpdmF0ZSB0b0ZvY3VzID0gZmFsc2U7XHJcblx0cHJpdmF0ZSBmb2N1c2VkID0gZmFsc2U7XHJcblx0cHJpdmF0ZSBpbml0aWFsaXplZCA9IGZhbHNlO1xyXG5cdHByaXZhdGUgZXZlckZvY3VzZWQgPSBmYWxzZTtcclxuXHRjb25zdHJ1Y3Rvcihwcml2YXRlIGVsOiBFbGVtZW50UmVmKSB7XHJcblx0XHQvL2NvbnNvbGUuZGVidWcoJ2F1dG9mb2N1c0RpcmVjdGl2ZSBjcmVhdGVkLicpO1xyXG5cdH1cclxuXHJcblx0bmdBZnRlclZpZXdJbml0KCkge1xyXG5cdFx0dGhpcy5pbml0aWFsaXplZCA9IHRydWU7XHJcblx0XHR0aGlzLm5nRG9DaGVjaygpO1xyXG5cdH1cclxuXHJcblx0bmdEb0NoZWNrKCkge1xyXG5cdFx0aWYgKCF0aGlzLmluaXRpYWxpemVkKSB7IHJldHVybjsgfVxyXG5cdFx0aWYgKHRoaXMudG9Gb2N1cyAmJiAhdGhpcy5ldmVyRm9jdXNlZCAmJiAhdGhpcy5mb2N1c2VkKSB7XHJcblx0XHRcdHRoaXMuZWwubmF0aXZlRWxlbWVudC5mb2N1cygpO1xyXG5cdFx0XHR0aGlzLmZvY3VzZWQgPSB0cnVlO1xyXG5cdFx0XHR0aGlzLmV2ZXJGb2N1c2VkID0gdHJ1ZTtcclxuXHRcdFx0Y29uc29sZS5kZWJ1ZygnZm9jdXNlZCBub3cuJyk7XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHRASW5wdXQoKSBzZXQgYXV0b2ZvY3VzKGNvbmRpdGlvbjogYm9vbGVhbikge1xyXG5cdFx0dGhpcy50b0ZvY3VzID0gY29uZGl0aW9uICE9PSBmYWxzZTtcclxuXHR9XHJcbn1cclxuIl19
|
|
@@ -5,13 +5,13 @@ export class DataComponentDirective {
|
|
|
5
5
|
constructor(viewContainerRef) {
|
|
6
6
|
this.viewContainerRef = viewContainerRef;
|
|
7
7
|
}
|
|
8
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
9
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "
|
|
8
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: DataComponentDirective, deps: [{ token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Directive });
|
|
9
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.8", type: DataComponentDirective, selector: "[dataComponentHost]", ngImport: i0 });
|
|
10
10
|
}
|
|
11
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
11
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: DataComponentDirective, decorators: [{
|
|
12
12
|
type: Directive,
|
|
13
13
|
args: [{
|
|
14
14
|
selector: '[dataComponentHost]',
|
|
15
15
|
}]
|
|
16
16
|
}], ctorParameters: () => [{ type: i0.ViewContainerRef }] });
|
|
17
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
17
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0YUNvbXBvbmVudC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9ubWNlLWRpcmVjdGl2ZXMvc3JjL19kaXJlY3RpdmVzL2RhdGFDb21wb25lbnQuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQW9CLE1BQU0sZUFBZSxDQUFDOztBQUs1RCxNQUFNLE9BQU8sc0JBQXNCO0lBQ2Y7SUFBbkIsWUFBbUIsZ0JBQWtDO1FBQWxDLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7SUFBSSxDQUFDO3VHQUQ5QyxzQkFBc0I7MkZBQXRCLHNCQUFzQjs7MkZBQXRCLHNCQUFzQjtrQkFIbEMsU0FBUzttQkFBQztvQkFDVixRQUFRLEVBQUUscUJBQXFCO2lCQUMvQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgVmlld0NvbnRhaW5lclJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuQERpcmVjdGl2ZSh7XHJcblx0c2VsZWN0b3I6ICdbZGF0YUNvbXBvbmVudEhvc3RdJyxcclxufSlcclxuZXhwb3J0IGNsYXNzIERhdGFDb21wb25lbnREaXJlY3RpdmUge1xyXG5cdGNvbnN0cnVjdG9yKHB1YmxpYyB2aWV3Q29udGFpbmVyUmVmOiBWaWV3Q29udGFpbmVyUmVmKSB7IH1cclxufVxyXG4iXX0=
|
|
@@ -1,26 +1,24 @@
|
|
|
1
1
|
import { CommonModule } from '@angular/common';
|
|
2
2
|
import { NgModule } from '@angular/core';
|
|
3
3
|
import { FormsModule } from '@angular/forms';
|
|
4
|
-
import { AutofocusDirective,
|
|
4
|
+
import { AutofocusDirective, DataComponentDirective, ScrollIntoDirective } from './index';
|
|
5
5
|
import * as i0 from "@angular/core";
|
|
6
6
|
/**
|
|
7
7
|
* Contain components. Other feature/lazy modules that need to access custom html element of components like my-datetimepicker still need to import this module explicitly.
|
|
8
8
|
*
|
|
9
9
|
*/
|
|
10
10
|
export class NmceDirectivesModule {
|
|
11
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
12
|
-
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "
|
|
13
|
-
CurrencyFormatterDirective,
|
|
11
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: NmceDirectivesModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
12
|
+
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.8", ngImport: i0, type: NmceDirectivesModule, declarations: [AutofocusDirective,
|
|
14
13
|
ScrollIntoDirective,
|
|
15
14
|
DataComponentDirective], imports: [CommonModule,
|
|
16
15
|
FormsModule], exports: [AutofocusDirective,
|
|
17
|
-
CurrencyFormatterDirective,
|
|
18
16
|
ScrollIntoDirective,
|
|
19
17
|
DataComponentDirective] });
|
|
20
|
-
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "
|
|
18
|
+
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: NmceDirectivesModule, imports: [CommonModule,
|
|
21
19
|
FormsModule] });
|
|
22
20
|
}
|
|
23
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
21
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: NmceDirectivesModule, decorators: [{
|
|
24
22
|
type: NgModule,
|
|
25
23
|
args: [{
|
|
26
24
|
imports: [
|
|
@@ -29,16 +27,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.4", ngImpor
|
|
|
29
27
|
],
|
|
30
28
|
declarations: [
|
|
31
29
|
AutofocusDirective,
|
|
32
|
-
CurrencyFormatterDirective,
|
|
33
30
|
ScrollIntoDirective,
|
|
34
31
|
DataComponentDirective,
|
|
35
32
|
],
|
|
36
33
|
exports: [
|
|
37
34
|
AutofocusDirective,
|
|
38
|
-
CurrencyFormatterDirective,
|
|
39
35
|
ScrollIntoDirective,
|
|
40
36
|
DataComponentDirective,
|
|
41
37
|
]
|
|
42
38
|
}]
|
|
43
39
|
}] });
|
|
44
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
40
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlyZWN0aXZlcy5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9ubWNlLWRpcmVjdGl2ZXMvc3JjL19kaXJlY3RpdmVzL2RpcmVjdGl2ZXMubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQ04sa0JBQWtCLEVBQUUsc0JBQXNCLEVBQUUsbUJBQW1CLEVBQy9ELE1BQU0sU0FBUyxDQUFDOztBQUlqQjs7O0dBR0c7QUFvQkgsTUFBTSxPQUFPLG9CQUFvQjt1R0FBcEIsb0JBQW9CO3dHQUFwQixvQkFBb0IsaUJBWi9CLGtCQUFrQjtZQUNsQixtQkFBbUI7WUFDbkIsc0JBQXNCLGFBUHRCLFlBQVk7WUFDWixXQUFXLGFBV1gsa0JBQWtCO1lBQ2xCLG1CQUFtQjtZQUNuQixzQkFBc0I7d0dBR1gsb0JBQW9CLFlBakIvQixZQUFZO1lBQ1osV0FBVzs7MkZBZ0JBLG9CQUFvQjtrQkFuQmhDLFFBQVE7bUJBQUM7b0JBQ1QsT0FBTyxFQUFFO3dCQUNSLFlBQVk7d0JBQ1osV0FBVztxQkFDWDtvQkFFRCxZQUFZLEVBQUU7d0JBQ2Isa0JBQWtCO3dCQUNsQixtQkFBbUI7d0JBQ25CLHNCQUFzQjtxQkFDdEI7b0JBR0QsT0FBTyxFQUFFO3dCQUNSLGtCQUFrQjt3QkFDbEIsbUJBQW1CO3dCQUNuQixzQkFBc0I7cUJBQ3RCO2lCQUNEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7XHJcblx0QXV0b2ZvY3VzRGlyZWN0aXZlLCBEYXRhQ29tcG9uZW50RGlyZWN0aXZlLCBTY3JvbGxJbnRvRGlyZWN0aXZlXHJcbn0gZnJvbSAnLi9pbmRleCc7XHJcblxyXG5cclxuXHJcbi8qKlxyXG4gKiBDb250YWluIGNvbXBvbmVudHMuIE90aGVyIGZlYXR1cmUvbGF6eSBtb2R1bGVzIHRoYXQgbmVlZCB0byBhY2Nlc3MgY3VzdG9tIGh0bWwgZWxlbWVudCBvZiBjb21wb25lbnRzIGxpa2UgbXktZGF0ZXRpbWVwaWNrZXIgc3RpbGwgbmVlZCB0byBpbXBvcnQgdGhpcyBtb2R1bGUgZXhwbGljaXRseS5cclxuICpcclxuICovXHJcbkBOZ01vZHVsZSh7XHJcblx0aW1wb3J0czogW1xyXG5cdFx0Q29tbW9uTW9kdWxlLFxyXG5cdFx0Rm9ybXNNb2R1bGUsXHJcblx0XSxcclxuXHJcblx0ZGVjbGFyYXRpb25zOiBbXHJcblx0XHRBdXRvZm9jdXNEaXJlY3RpdmUsXHJcblx0XHRTY3JvbGxJbnRvRGlyZWN0aXZlLFxyXG5cdFx0RGF0YUNvbXBvbmVudERpcmVjdGl2ZSxcclxuXHRdLFxyXG5cclxuXHJcblx0ZXhwb3J0czogW1xyXG5cdFx0QXV0b2ZvY3VzRGlyZWN0aXZlLFxyXG5cdFx0U2Nyb2xsSW50b0RpcmVjdGl2ZSxcclxuXHRcdERhdGFDb21wb25lbnREaXJlY3RpdmUsXHJcblx0XVxyXG59KVxyXG5leHBvcnQgY2xhc3MgTm1jZURpcmVjdGl2ZXNNb2R1bGUgeyB9XHJcbiJdfQ==
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
export * from './autofocus';
|
|
2
|
-
export * from './currencyFormatter.directive';
|
|
3
2
|
export * from './dataComponent.directive';
|
|
4
3
|
export * from './scrollInto.directive';
|
|
5
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
4
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9ubWNlLWRpcmVjdGl2ZXMvc3JjL19kaXJlY3RpdmVzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsYUFBYSxDQUFDO0FBQzVCLGNBQWMsMkJBQTJCLENBQUM7QUFDMUMsY0FBYyx3QkFBd0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vYXV0b2ZvY3VzJztcclxuZXhwb3J0ICogZnJvbSAnLi9kYXRhQ29tcG9uZW50LmRpcmVjdGl2ZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vc2Nyb2xsSW50by5kaXJlY3RpdmUnO1xyXG4iXX0=
|
|
@@ -15,10 +15,10 @@ export class ScrollIntoDirective {
|
|
|
15
15
|
this.el.nativeElement.scrollIntoView();
|
|
16
16
|
}
|
|
17
17
|
}
|
|
18
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
19
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "
|
|
18
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: ScrollIntoDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
|
|
19
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.8", type: ScrollIntoDirective, selector: "[scrollInto]", inputs: { scrollInto: "scrollInto" }, ngImport: i0 });
|
|
20
20
|
}
|
|
21
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
21
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: ScrollIntoDirective, decorators: [{
|
|
22
22
|
type: Directive,
|
|
23
23
|
args: [{
|
|
24
24
|
selector: '[scrollInto]'
|
|
@@ -26,4 +26,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.4", ngImpor
|
|
|
26
26
|
}], ctorParameters: () => [{ type: i0.ElementRef }], propDecorators: { scrollInto: [{
|
|
27
27
|
type: Input
|
|
28
28
|
}] } });
|
|
29
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
29
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Nyb2xsSW50by5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9ubWNlLWRpcmVjdGl2ZXMvc3JjL19kaXJlY3RpdmVzL3Njcm9sbEludG8uZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBaUIsU0FBUyxFQUFjLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFFNUU7O0dBRUc7QUFJSCxNQUFNLE9BQU8sbUJBQW1CO0lBQ1g7SUFBcEIsWUFBb0IsRUFBYztRQUFkLE9BQUUsR0FBRixFQUFFLENBQVk7UUFDakMsaURBQWlEO0lBQ2xELENBQUM7SUFHRCxVQUFVLEdBQVksS0FBSyxDQUFDO0lBRTVCLGVBQWU7UUFDZCxJQUFJLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztZQUNyQixJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUN4QyxDQUFDO0lBQ0YsQ0FBQzt1R0FaVyxtQkFBbUI7MkZBQW5CLG1CQUFtQjs7MkZBQW5CLG1CQUFtQjtrQkFIL0IsU0FBUzttQkFBQztvQkFDVixRQUFRLEVBQUUsY0FBYztpQkFDeEI7K0VBT0EsVUFBVTtzQkFEVCxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWZ0ZXJWaWV3SW5pdCwgRGlyZWN0aXZlLCBFbGVtZW50UmVmLCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuLyoqXHJcbiAqIFNjcm9sbCB0byBlbGVtZW50IGF0dGFjaGVkLiBBbmQgdGhlIGVsZW1lbnQgbWF5IGJlIGFuIEFuZ3VsYXIgTWF0ZXJpYWwgY29tcG9uZW50IHRvby5cclxuICovXHJcbkBEaXJlY3RpdmUoe1xyXG5cdHNlbGVjdG9yOiAnW3Njcm9sbEludG9dJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgU2Nyb2xsSW50b0RpcmVjdGl2ZSBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQge1xyXG5cdGNvbnN0cnVjdG9yKHByaXZhdGUgZWw6IEVsZW1lbnRSZWYpIHtcclxuXHRcdC8vXHRjb25zb2xlLmRlYnVnKCdTY3JvbGxJbnRvRGlyZWN0aXZlIGNyZWF0ZWQuJyk7XHJcblx0fVxyXG5cclxuXHRASW5wdXQoKVxyXG5cdHNjcm9sbEludG86IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcblx0bmdBZnRlclZpZXdJbml0KCkge1xyXG5cdFx0aWYgKHRoaXMuc2Nyb2xsSW50bykge1xyXG5cdFx0XHR0aGlzLmVsLm5hdGl2ZUVsZW1lbnQuc2Nyb2xsSW50b1ZpZXcoKTtcclxuXHRcdH1cclxuXHR9XHJcbn1cclxuIl19
|
package/esm2022/public-api.mjs
CHANGED
|
@@ -3,4 +3,4 @@
|
|
|
3
3
|
*/
|
|
4
4
|
export * from './_directives/index';
|
|
5
5
|
export * from './_directives/directives.module';
|
|
6
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
6
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL25tY2UtZGlyZWN0aXZlcy9zcmMvcHVibGljLWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMscUJBQXFCLENBQUM7QUFDcEMsY0FBYyxpQ0FBaUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXHJcbiAqIFB1YmxpYyBBUEkgU3VyZmFjZSBvZiBubWNlLWRpcmVjdGl2ZXNcclxuICovXHJcblxyXG5leHBvcnQgKiBmcm9tICcuL19kaXJlY3RpdmVzL2luZGV4JztcclxuZXhwb3J0ICogZnJvbSAnLi9fZGlyZWN0aXZlcy9kaXJlY3RpdmVzLm1vZHVsZSc7XHJcblxyXG4iXX0=
|
|
@@ -1,11 +1,10 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import { Directive, Input,
|
|
3
|
-
import { CurrencyFunc } from 'nmce-func';
|
|
2
|
+
import { Directive, Input, NgModule } from '@angular/core';
|
|
4
3
|
import { CommonModule } from '@angular/common';
|
|
5
4
|
import { FormsModule } from '@angular/forms';
|
|
6
5
|
|
|
7
6
|
/**
|
|
8
|
-
* Use as a
|
|
7
|
+
* Use as a parameterized input parameter in html element.
|
|
9
8
|
* When used inside a material dialog, this directive may be at odd against the autofocus config parameter of MatDialogConfig,
|
|
10
9
|
* if the autofocus config is not false. Generally speaking, no need to use this directive in a component presented in a mateiral dialog.
|
|
11
10
|
*/
|
|
@@ -13,18 +12,18 @@ class AutofocusDirective {
|
|
|
13
12
|
el;
|
|
14
13
|
toFocus = false;
|
|
15
14
|
focused = false;
|
|
16
|
-
|
|
15
|
+
initialized = false;
|
|
17
16
|
everFocused = false;
|
|
18
17
|
constructor(el) {
|
|
19
18
|
this.el = el;
|
|
20
19
|
//console.debug('autofocusDirective created.');
|
|
21
20
|
}
|
|
22
21
|
ngAfterViewInit() {
|
|
23
|
-
this.
|
|
22
|
+
this.initialized = true;
|
|
24
23
|
this.ngDoCheck();
|
|
25
24
|
}
|
|
26
25
|
ngDoCheck() {
|
|
27
|
-
if (!this.
|
|
26
|
+
if (!this.initialized) {
|
|
28
27
|
return;
|
|
29
28
|
}
|
|
30
29
|
if (this.toFocus && !this.everFocused && !this.focused) {
|
|
@@ -37,10 +36,10 @@ class AutofocusDirective {
|
|
|
37
36
|
set autofocus(condition) {
|
|
38
37
|
this.toFocus = condition !== false;
|
|
39
38
|
}
|
|
40
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
41
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "
|
|
39
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: AutofocusDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
|
|
40
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.8", type: AutofocusDirective, selector: "[autofocus]", inputs: { autofocus: "autofocus" }, ngImport: i0 });
|
|
42
41
|
}
|
|
43
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
42
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: AutofocusDirective, decorators: [{
|
|
44
43
|
type: Directive,
|
|
45
44
|
args: [{
|
|
46
45
|
selector: '[autofocus]'
|
|
@@ -49,49 +48,15 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.4", ngImpor
|
|
|
49
48
|
type: Input
|
|
50
49
|
}] } });
|
|
51
50
|
|
|
52
|
-
/**
|
|
53
|
-
* Decorate HTML input for inputing and displaying currency. The input type must not be number and should be text only.
|
|
54
|
-
* If the input type is number, the built-in validator will be fighting against this directive.
|
|
55
|
-
*/
|
|
56
|
-
class CurrencyFormatterDirective {
|
|
57
|
-
elementRef;
|
|
58
|
-
el;
|
|
59
|
-
constructor(elementRef) {
|
|
60
|
-
this.elementRef = elementRef;
|
|
61
|
-
this.el = this.elementRef.nativeElement;
|
|
62
|
-
}
|
|
63
|
-
ngOnInit() {
|
|
64
|
-
this.el.value = CurrencyFunc.transformCurrency(this.el.value);
|
|
65
|
-
}
|
|
66
|
-
onFocus(value) {
|
|
67
|
-
this.el.value = CurrencyFunc.parseCurrency(value); // opossite of transform
|
|
68
|
-
}
|
|
69
|
-
onBlur(value) {
|
|
70
|
-
this.el.value = CurrencyFunc.transformCurrency(value);
|
|
71
|
-
}
|
|
72
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: CurrencyFormatterDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
|
|
73
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.2.4", type: CurrencyFormatterDirective, selector: "[currencyFormatter]", host: { listeners: { "focus": "onFocus($event.target.value)", "blur": "onBlur($event.target.value)" } }, ngImport: i0 });
|
|
74
|
-
}
|
|
75
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: CurrencyFormatterDirective, decorators: [{
|
|
76
|
-
type: Directive,
|
|
77
|
-
args: [{ selector: '[currencyFormatter]' }]
|
|
78
|
-
}], ctorParameters: () => [{ type: i0.ElementRef }], propDecorators: { onFocus: [{
|
|
79
|
-
type: HostListener,
|
|
80
|
-
args: ['focus', ['$event.target.value']]
|
|
81
|
-
}], onBlur: [{
|
|
82
|
-
type: HostListener,
|
|
83
|
-
args: ['blur', ['$event.target.value']]
|
|
84
|
-
}] } });
|
|
85
|
-
|
|
86
51
|
class DataComponentDirective {
|
|
87
52
|
viewContainerRef;
|
|
88
53
|
constructor(viewContainerRef) {
|
|
89
54
|
this.viewContainerRef = viewContainerRef;
|
|
90
55
|
}
|
|
91
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
92
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "
|
|
56
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: DataComponentDirective, deps: [{ token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Directive });
|
|
57
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.8", type: DataComponentDirective, selector: "[dataComponentHost]", ngImport: i0 });
|
|
93
58
|
}
|
|
94
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
59
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: DataComponentDirective, decorators: [{
|
|
95
60
|
type: Directive,
|
|
96
61
|
args: [{
|
|
97
62
|
selector: '[dataComponentHost]',
|
|
@@ -113,10 +78,10 @@ class ScrollIntoDirective {
|
|
|
113
78
|
this.el.nativeElement.scrollIntoView();
|
|
114
79
|
}
|
|
115
80
|
}
|
|
116
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
117
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "
|
|
81
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: ScrollIntoDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
|
|
82
|
+
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.8", type: ScrollIntoDirective, selector: "[scrollInto]", inputs: { scrollInto: "scrollInto" }, ngImport: i0 });
|
|
118
83
|
}
|
|
119
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
84
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: ScrollIntoDirective, decorators: [{
|
|
120
85
|
type: Directive,
|
|
121
86
|
args: [{
|
|
122
87
|
selector: '[scrollInto]'
|
|
@@ -130,19 +95,17 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.4", ngImpor
|
|
|
130
95
|
*
|
|
131
96
|
*/
|
|
132
97
|
class NmceDirectivesModule {
|
|
133
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
134
|
-
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "
|
|
135
|
-
CurrencyFormatterDirective,
|
|
98
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: NmceDirectivesModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
99
|
+
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.8", ngImport: i0, type: NmceDirectivesModule, declarations: [AutofocusDirective,
|
|
136
100
|
ScrollIntoDirective,
|
|
137
101
|
DataComponentDirective], imports: [CommonModule,
|
|
138
102
|
FormsModule], exports: [AutofocusDirective,
|
|
139
|
-
CurrencyFormatterDirective,
|
|
140
103
|
ScrollIntoDirective,
|
|
141
104
|
DataComponentDirective] });
|
|
142
|
-
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "
|
|
105
|
+
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: NmceDirectivesModule, imports: [CommonModule,
|
|
143
106
|
FormsModule] });
|
|
144
107
|
}
|
|
145
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
108
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: NmceDirectivesModule, decorators: [{
|
|
146
109
|
type: NgModule,
|
|
147
110
|
args: [{
|
|
148
111
|
imports: [
|
|
@@ -151,13 +114,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.4", ngImpor
|
|
|
151
114
|
],
|
|
152
115
|
declarations: [
|
|
153
116
|
AutofocusDirective,
|
|
154
|
-
CurrencyFormatterDirective,
|
|
155
117
|
ScrollIntoDirective,
|
|
156
118
|
DataComponentDirective,
|
|
157
119
|
],
|
|
158
120
|
exports: [
|
|
159
121
|
AutofocusDirective,
|
|
160
|
-
CurrencyFormatterDirective,
|
|
161
122
|
ScrollIntoDirective,
|
|
162
123
|
DataComponentDirective,
|
|
163
124
|
]
|
|
@@ -172,5 +133,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.4", ngImpor
|
|
|
172
133
|
* Generated bundle index. Do not edit.
|
|
173
134
|
*/
|
|
174
135
|
|
|
175
|
-
export { AutofocusDirective,
|
|
136
|
+
export { AutofocusDirective, DataComponentDirective, NmceDirectivesModule, ScrollIntoDirective };
|
|
176
137
|
//# sourceMappingURL=nmce-directives.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nmce-directives.mjs","sources":["../../../projects/nmce-directives/src/_directives/autofocus.ts","../../../projects/nmce-directives/src/_directives/
|
|
1
|
+
{"version":3,"file":"nmce-directives.mjs","sources":["../../../projects/nmce-directives/src/_directives/autofocus.ts","../../../projects/nmce-directives/src/_directives/dataComponent.directive.ts","../../../projects/nmce-directives/src/_directives/scrollInto.directive.ts","../../../projects/nmce-directives/src/_directives/directives.module.ts","../../../projects/nmce-directives/src/public-api.ts","../../../projects/nmce-directives/src/nmce-directives.ts"],"sourcesContent":["import { AfterViewInit, Directive, DoCheck, ElementRef, Input } from '@angular/core';\r\n\r\n/**\r\n * Use as a parameterized input parameter in html element.\r\n * When used inside a material dialog, this directive may be at odd against the autofocus config parameter of MatDialogConfig, \r\n * if the autofocus config is not false. Generally speaking, no need to use this directive in a component presented in a mateiral dialog.\r\n */\r\n@Directive({\r\n\tselector: '[autofocus]'\r\n})\r\nexport class AutofocusDirective implements AfterViewInit, DoCheck {\r\n\tprivate toFocus = false;\r\n\tprivate focused = false;\r\n\tprivate initialized = false;\r\n\tprivate everFocused = false;\r\n\tconstructor(private el: ElementRef) {\r\n\t\t//console.debug('autofocusDirective created.');\r\n\t}\r\n\r\n\tngAfterViewInit() {\r\n\t\tthis.initialized = true;\r\n\t\tthis.ngDoCheck();\r\n\t}\r\n\r\n\tngDoCheck() {\r\n\t\tif (!this.initialized) { return; }\r\n\t\tif (this.toFocus && !this.everFocused && !this.focused) {\r\n\t\t\tthis.el.nativeElement.focus();\r\n\t\t\tthis.focused = true;\r\n\t\t\tthis.everFocused = true;\r\n\t\t\tconsole.debug('focused now.');\r\n\t\t}\r\n\t}\r\n\r\n\t@Input() set autofocus(condition: boolean) {\r\n\t\tthis.toFocus = condition !== false;\r\n\t}\r\n}\r\n","import { Directive, ViewContainerRef } from '@angular/core';\r\n\r\n@Directive({\r\n\tselector: '[dataComponentHost]',\r\n})\r\nexport class DataComponentDirective {\r\n\tconstructor(public viewContainerRef: ViewContainerRef) { }\r\n}\r\n","import { AfterViewInit, Directive, ElementRef, Input } from '@angular/core';\r\n\r\n/**\r\n * Scroll to element attached. And the element may be an Angular Material component too.\r\n */\r\n@Directive({\r\n\tselector: '[scrollInto]'\r\n})\r\nexport class ScrollIntoDirective implements AfterViewInit {\r\n\tconstructor(private el: ElementRef) {\r\n\t\t//\tconsole.debug('ScrollIntoDirective created.');\r\n\t}\r\n\r\n\t@Input()\r\n\tscrollInto: boolean = false;\r\n\r\n\tngAfterViewInit() {\r\n\t\tif (this.scrollInto) {\r\n\t\t\tthis.el.nativeElement.scrollIntoView();\r\n\t\t}\r\n\t}\r\n}\r\n","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { FormsModule } from '@angular/forms';\r\nimport {\r\n\tAutofocusDirective, DataComponentDirective, ScrollIntoDirective\r\n} from './index';\r\n\r\n\r\n\r\n/**\r\n * Contain components. Other feature/lazy modules that need to access custom html element of components like my-datetimepicker still need to import this module explicitly.\r\n *\r\n */\r\n@NgModule({\r\n\timports: [\r\n\t\tCommonModule,\r\n\t\tFormsModule,\r\n\t],\r\n\r\n\tdeclarations: [\r\n\t\tAutofocusDirective,\r\n\t\tScrollIntoDirective,\r\n\t\tDataComponentDirective,\r\n\t],\r\n\r\n\r\n\texports: [\r\n\t\tAutofocusDirective,\r\n\t\tScrollIntoDirective,\r\n\t\tDataComponentDirective,\r\n\t]\r\n})\r\nexport class NmceDirectivesModule { }\r\n","/*\r\n * Public API Surface of nmce-directives\r\n */\r\n\r\nexport * from './_directives/index';\r\nexport * from './_directives/directives.module';\r\n\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
import { ElementRef, OnInit } from '@angular/core';
|
|
2
|
-
import * as i0 from "@angular/core";
|
|
3
|
-
/**
|
|
4
|
-
* Decorate HTML input for inputing and displaying currency. The input type must not be number and should be text only.
|
|
5
|
-
* If the input type is number, the built-in validator will be fighting against this directive.
|
|
6
|
-
*/
|
|
7
|
-
export declare class CurrencyFormatterDirective implements OnInit {
|
|
8
|
-
private elementRef;
|
|
9
|
-
private el;
|
|
10
|
-
constructor(elementRef: ElementRef);
|
|
11
|
-
ngOnInit(): void;
|
|
12
|
-
onFocus(value: string): void;
|
|
13
|
-
onBlur(value: string): void;
|
|
14
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<CurrencyFormatterDirective, never>;
|
|
15
|
-
static ɵdir: i0.ɵɵDirectiveDeclaration<CurrencyFormatterDirective, "[currencyFormatter]", never, {}, {}, never, never, false, never>;
|
|
16
|
-
}
|
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
import { Directive, HostListener } from '@angular/core';
|
|
2
|
-
import { CurrencyFunc } from 'nmce-func';
|
|
3
|
-
import * as i0 from "@angular/core";
|
|
4
|
-
/**
|
|
5
|
-
* Decorate HTML input for inputing and displaying currency. The input type must not be number and should be text only.
|
|
6
|
-
* If the input type is number, the built-in validator will be fighting against this directive.
|
|
7
|
-
*/
|
|
8
|
-
export class CurrencyFormatterDirective {
|
|
9
|
-
elementRef;
|
|
10
|
-
el;
|
|
11
|
-
constructor(elementRef) {
|
|
12
|
-
this.elementRef = elementRef;
|
|
13
|
-
this.el = this.elementRef.nativeElement;
|
|
14
|
-
}
|
|
15
|
-
ngOnInit() {
|
|
16
|
-
this.el.value = CurrencyFunc.transformCurrency(this.el.value);
|
|
17
|
-
}
|
|
18
|
-
onFocus(value) {
|
|
19
|
-
this.el.value = CurrencyFunc.parseCurrency(value); // opossite of transform
|
|
20
|
-
}
|
|
21
|
-
onBlur(value) {
|
|
22
|
-
this.el.value = CurrencyFunc.transformCurrency(value);
|
|
23
|
-
}
|
|
24
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: CurrencyFormatterDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
|
|
25
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.2.4", type: CurrencyFormatterDirective, selector: "[currencyFormatter]", host: { listeners: { "focus": "onFocus($event.target.value)", "blur": "onBlur($event.target.value)" } }, ngImport: i0 });
|
|
26
|
-
}
|
|
27
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.4", ngImport: i0, type: CurrencyFormatterDirective, decorators: [{
|
|
28
|
-
type: Directive,
|
|
29
|
-
args: [{ selector: '[currencyFormatter]' }]
|
|
30
|
-
}], ctorParameters: () => [{ type: i0.ElementRef }], propDecorators: { onFocus: [{
|
|
31
|
-
type: HostListener,
|
|
32
|
-
args: ['focus', ['$event.target.value']]
|
|
33
|
-
}], onBlur: [{
|
|
34
|
-
type: HostListener,
|
|
35
|
-
args: ['blur', ['$event.target.value']]
|
|
36
|
-
}] } });
|
|
37
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VycmVuY3lGb3JtYXR0ZXIuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvbm1jZS1kaXJlY3RpdmVzL3NyYy9fZGlyZWN0aXZlcy9jdXJyZW5jeUZvcm1hdHRlci5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBYyxZQUFZLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDNUUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLFdBQVcsQ0FBQzs7QUFFekM7OztHQUdHO0FBRUgsTUFBTSxPQUFPLDBCQUEwQjtJQUlsQjtJQUZaLEVBQUUsQ0FBbUI7SUFFN0IsWUFBb0IsVUFBc0I7UUFBdEIsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQUN6QyxJQUFJLENBQUMsRUFBRSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDO0lBQ3pDLENBQUM7SUFFRCxRQUFRO1FBQ1AsSUFBSSxDQUFDLEVBQUUsQ0FBQyxLQUFLLEdBQUcsWUFBWSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDL0QsQ0FBQztJQUdELE9BQU8sQ0FBQyxLQUFhO1FBQ3BCLElBQUksQ0FBQyxFQUFFLENBQUMsS0FBSyxHQUFHLFlBQVksQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyx3QkFBd0I7SUFDNUUsQ0FBQztJQUdELE1BQU0sQ0FBQyxLQUFhO1FBQ25CLElBQUksQ0FBQyxFQUFFLENBQUMsS0FBSyxHQUFHLFlBQVksQ0FBQyxpQkFBaUIsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN2RCxDQUFDO3VHQXBCVywwQkFBMEI7MkZBQTFCLDBCQUEwQjs7MkZBQTFCLDBCQUEwQjtrQkFEdEMsU0FBUzttQkFBQyxFQUFFLFFBQVEsRUFBRSxxQkFBcUIsRUFBRTsrRUFjN0MsT0FBTztzQkFETixZQUFZO3VCQUFDLE9BQU8sRUFBRSxDQUFDLHFCQUFxQixDQUFDO2dCQU05QyxNQUFNO3NCQURMLFlBQVk7dUJBQUMsTUFBTSxFQUFFLENBQUMscUJBQXFCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIEhvc3RMaXN0ZW5lciwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDdXJyZW5jeUZ1bmMgfSBmcm9tICdubWNlLWZ1bmMnO1xuXG4vKipcbiAqIERlY29yYXRlIEhUTUwgaW5wdXQgZm9yIGlucHV0aW5nIGFuZCBkaXNwbGF5aW5nIGN1cnJlbmN5LiBUaGUgaW5wdXQgdHlwZSBtdXN0IG5vdCBiZSBudW1iZXIgYW5kIHNob3VsZCBiZSB0ZXh0IG9ubHkuXG4gKiBJZiB0aGUgaW5wdXQgdHlwZSBpcyBudW1iZXIsIHRoZSBidWlsdC1pbiB2YWxpZGF0b3Igd2lsbCBiZSBmaWdodGluZyBhZ2FpbnN0IHRoaXMgZGlyZWN0aXZlLlxuICovXG5ARGlyZWN0aXZlKHsgc2VsZWN0b3I6ICdbY3VycmVuY3lGb3JtYXR0ZXJdJyB9KS8vaW5zcGlyZWQgYnkgaHR0cHM6Ly9ibG9nLm5nY29uc3VsdGFudC5pby9jdXN0b20taW5wdXQtZm9ybWF0dGluZy13aXRoLXNpbXBsZS1kaXJlY3RpdmVzLWZvci1hbmd1bGFyLTItZWM3OTIwODI5NzZcbmV4cG9ydCBjbGFzcyBDdXJyZW5jeUZvcm1hdHRlckRpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uSW5pdCB7XG5cblx0cHJpdmF0ZSBlbDogSFRNTElucHV0RWxlbWVudDtcblxuXHRjb25zdHJ1Y3Rvcihwcml2YXRlIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYpIHtcblx0XHR0aGlzLmVsID0gdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQ7XG5cdH1cblxuXHRuZ09uSW5pdCgpIHtcblx0XHR0aGlzLmVsLnZhbHVlID0gQ3VycmVuY3lGdW5jLnRyYW5zZm9ybUN1cnJlbmN5KHRoaXMuZWwudmFsdWUpO1xuXHR9XG5cblx0QEhvc3RMaXN0ZW5lcignZm9jdXMnLCBbJyRldmVudC50YXJnZXQudmFsdWUnXSlcblx0b25Gb2N1cyh2YWx1ZTogc3RyaW5nKSB7XG5cdFx0dGhpcy5lbC52YWx1ZSA9IEN1cnJlbmN5RnVuYy5wYXJzZUN1cnJlbmN5KHZhbHVlKTsgLy8gb3Bvc3NpdGUgb2YgdHJhbnNmb3JtXG5cdH1cblxuXHRASG9zdExpc3RlbmVyKCdibHVyJywgWyckZXZlbnQudGFyZ2V0LnZhbHVlJ10pXG5cdG9uQmx1cih2YWx1ZTogc3RyaW5nKSB7XG5cdFx0dGhpcy5lbC52YWx1ZSA9IEN1cnJlbmN5RnVuYy50cmFuc2Zvcm1DdXJyZW5jeSh2YWx1ZSk7XG5cdH1cblxufVxuXG4iXX0=
|