@ng-nest/ui 14.0.7 → 14.0.8
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/avatar/avatar-group.component.d.ts +8 -0
- package/avatar/avatar.component.d.ts +15 -4
- package/avatar/avatar.module.d.ts +5 -4
- package/avatar/avatar.property.d.ts +31 -3
- package/avatar/examples/en_US/default/badge/README.md +6 -0
- package/avatar/examples/en_US/default/group/README.md +6 -0
- package/avatar/examples/en_US/default/label/README.md +6 -0
- package/avatar/examples/en_US/default/response/README.md +6 -0
- package/avatar/examples/zh_CN/default/badge/README.md +6 -0
- package/avatar/examples/zh_CN/default/group/README.md +6 -0
- package/avatar/examples/zh_CN/default/label/README.md +6 -0
- package/avatar/examples/zh_CN/default/response/README.md +6 -0
- package/avatar/public-api.d.ts +1 -0
- package/badge/badge.component.d.ts +4 -1
- package/badge/badge.property.d.ts +6 -1
- package/badge/examples/en_US/default/animation/README.md +4 -0
- package/badge/examples/en_US/default/standalone/README.md +6 -0
- package/badge/examples/zh_CN/default/animation/README.md +4 -0
- package/badge/examples/zh_CN/default/standalone/README.md +6 -0
- package/calendar/calendar.property.d.ts +2 -1
- package/core/animation/badge.d.ts +1 -0
- package/core/config/config.d.ts +26 -0
- package/core/interfaces/identify.type.d.ts +2 -0
- package/core/interfaces/layout.type.d.ts +15 -0
- package/esm2020/avatar/avatar-group.component.mjs +19 -0
- package/esm2020/avatar/avatar.component.mjs +91 -11
- package/esm2020/avatar/avatar.module.mjs +6 -5
- package/esm2020/avatar/avatar.property.mjs +31 -3
- package/esm2020/avatar/public-api.mjs +2 -1
- package/esm2020/badge/badge.component.mjs +24 -8
- package/esm2020/badge/badge.property.mjs +7 -2
- package/esm2020/calendar/calendar.property.mjs +1 -1
- package/esm2020/core/animation/badge.mjs +17 -1
- package/esm2020/core/config/config.mjs +1 -1
- package/esm2020/core/interfaces/identify.type.mjs +1 -1
- package/esm2020/core/interfaces/layout.type.mjs +1 -1
- package/esm2020/form/form.component.mjs +3 -3
- package/esm2020/i18n/i18n.property.mjs +1 -1
- package/esm2020/i18n/languages/en_US.mjs +5 -1
- package/esm2020/i18n/languages/zh_CN.mjs +5 -1
- package/esm2020/i18n/languages/zh_TW.mjs +5 -1
- package/esm2020/image/image-group.component.mjs +2 -2
- package/esm2020/image/image.component.mjs +13 -5
- package/esm2020/image/image.module.mjs +5 -4
- package/esm2020/image/image.property.mjs +22 -3
- package/esm2020/index.mjs +3 -1
- package/esm2020/keyword/keyword.directive.mjs +66 -0
- package/esm2020/keyword/keyword.module.mjs +19 -0
- package/esm2020/keyword/keyword.property.mjs +41 -0
- package/esm2020/keyword/ng-nest-ui-keyword.mjs +5 -0
- package/esm2020/keyword/public-api.mjs +4 -0
- package/esm2020/list/list-option.component.mjs +4 -4
- package/esm2020/list/list.component.mjs +4 -4
- package/esm2020/list/list.module.mjs +8 -4
- package/esm2020/list/list.property.mjs +19 -3
- package/esm2020/select/select-portal.component.mjs +6 -3
- package/esm2020/select/select.component.mjs +31 -23
- package/esm2020/select/select.property.mjs +8 -2
- package/esm2020/table/table.component.mjs +4 -4
- package/esm2020/tree/tree-node.component.mjs +52 -27
- package/esm2020/tree/tree.component.mjs +173 -58
- package/esm2020/tree/tree.module.mjs +5 -4
- package/esm2020/tree/tree.property.mjs +38 -2
- package/esm2020/tree-select/ng-nest-ui-tree-select.mjs +5 -0
- package/esm2020/tree-select/public-api.mjs +5 -0
- package/esm2020/tree-select/tree-select-portal.component.mjs +110 -0
- package/esm2020/tree-select/tree-select.component.mjs +632 -0
- package/esm2020/tree-select/tree-select.module.mjs +65 -0
- package/esm2020/tree-select/tree-select.property.mjs +153 -0
- package/esm2020/upload/upload.component.mjs +9 -6
- package/esm2020/upload/upload.module.mjs +12 -4
- package/esm2020/upload/upload.property.mjs +10 -3
- package/fesm2015/ng-nest-ui-avatar.mjs +143 -17
- package/fesm2015/ng-nest-ui-avatar.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-badge.mjs +29 -8
- package/fesm2015/ng-nest-ui-badge.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-calendar.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-core.mjs +17 -1
- package/fesm2015/ng-nest-ui-core.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-form.mjs +2 -2
- package/fesm2015/ng-nest-ui-form.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-i18n.mjs +12 -0
- package/fesm2015/ng-nest-ui-i18n.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-image.mjs +39 -11
- package/fesm2015/ng-nest-ui-image.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-keyword.mjs +125 -0
- package/fesm2015/ng-nest-ui-keyword.mjs.map +1 -0
- package/fesm2015/ng-nest-ui-list.mjs +32 -12
- package/fesm2015/ng-nest-ui-list.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-select.mjs +42 -25
- package/fesm2015/ng-nest-ui-select.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-table.mjs +3 -3
- package/fesm2015/ng-nest-ui-table.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-tree-select.mjs +951 -0
- package/fesm2015/ng-nest-ui-tree-select.mjs.map +1 -0
- package/fesm2015/ng-nest-ui-tree.mjs +271 -94
- package/fesm2015/ng-nest-ui-tree.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-upload.mjs +28 -10
- package/fesm2015/ng-nest-ui-upload.mjs.map +1 -1
- package/fesm2015/ng-nest-ui.mjs +2 -0
- package/fesm2015/ng-nest-ui.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-avatar.mjs +140 -17
- package/fesm2020/ng-nest-ui-avatar.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-badge.mjs +29 -8
- package/fesm2020/ng-nest-ui-badge.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-calendar.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-core.mjs +17 -1
- package/fesm2020/ng-nest-ui-core.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-form.mjs +2 -2
- package/fesm2020/ng-nest-ui-form.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-i18n.mjs +12 -0
- package/fesm2020/ng-nest-ui-i18n.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-image.mjs +39 -11
- package/fesm2020/ng-nest-ui-image.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-keyword.mjs +125 -0
- package/fesm2020/ng-nest-ui-keyword.mjs.map +1 -0
- package/fesm2020/ng-nest-ui-list.mjs +32 -12
- package/fesm2020/ng-nest-ui-list.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-select.mjs +42 -25
- package/fesm2020/ng-nest-ui-select.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-table.mjs +3 -3
- package/fesm2020/ng-nest-ui-table.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-tree-select.mjs +946 -0
- package/fesm2020/ng-nest-ui-tree-select.mjs.map +1 -0
- package/fesm2020/ng-nest-ui-tree.mjs +267 -91
- package/fesm2020/ng-nest-ui-tree.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-upload.mjs +28 -10
- package/fesm2020/ng-nest-ui-upload.mjs.map +1 -1
- package/fesm2020/ng-nest-ui.mjs +2 -0
- package/fesm2020/ng-nest-ui.mjs.map +1 -1
- package/i18n/i18n.property.d.ts +5 -0
- package/i18n/languages/en_US.d.ts +4 -0
- package/i18n/languages/zh_CN.d.ts +4 -0
- package/i18n/languages/zh_TW.d.ts +4 -0
- package/image/image.component.d.ts +2 -2
- package/image/image.module.d.ts +3 -2
- package/image/image.property.d.ts +23 -7
- package/index.d.ts +2 -0
- package/keyword/index.d.ts +5 -0
- package/keyword/keyword.directive.d.ts +19 -0
- package/keyword/keyword.module.d.ts +9 -0
- package/keyword/keyword.property.d.ts +40 -0
- package/keyword/public-api.d.ts +3 -0
- package/list/list-option.component.d.ts +0 -1
- package/list/list.module.d.ts +2 -1
- package/list/list.property.d.ts +22 -2
- package/package.json +17 -1
- package/select/examples/en_US/default/default/README.md +1 -2
- package/select/examples/zh_CN/default/default/README.md +1 -2
- package/select/select-portal.component.d.ts +5 -1
- package/select/select.component.d.ts +2 -2
- package/select/select.property.d.ts +6 -1
- package/style/core/index.css +29 -0
- package/style/core/index.css.map +1 -1
- package/style/directives/index.scss +1 -0
- package/style/directives/keyword/index.scss +6 -0
- package/style/directives/keyword/mixin.scss +24 -0
- package/style/directives/keyword/param.scss +3 -0
- package/tree/tree-node.component.d.ts +4 -4
- package/tree/tree.component.d.ts +13 -1
- package/tree/tree.module.d.ts +2 -1
- package/tree/tree.property.d.ts +44 -14
- package/tree-select/examples/en_US/default/README.md +4 -0
- package/tree-select/examples/en_US/default/async/README.md +6 -0
- package/tree-select/examples/en_US/default/bordered/README.md +6 -0
- package/tree-select/examples/en_US/default/custom/README.md +6 -0
- package/tree-select/examples/en_US/default/default/README.md +6 -0
- package/tree-select/examples/en_US/default/disabled/README.md +6 -0
- package/tree-select/examples/en_US/default/label/README.md +6 -0
- package/tree-select/examples/en_US/default/multiple/README.md +6 -0
- package/tree-select/examples/en_US/default/path/README.md +6 -0
- package/tree-select/examples/en_US/default/required/README.md +6 -0
- package/tree-select/examples/en_US/default/scroll/README.md +6 -0
- package/tree-select/examples/en_US/default/search/README.md +7 -0
- package/tree-select/examples/en_US/default/size/README.md +6 -0
- package/tree-select/examples/zh_CN/default/README.md +4 -0
- package/tree-select/examples/zh_CN/default/async/README.md +6 -0
- package/tree-select/examples/zh_CN/default/bordered/README.md +6 -0
- package/tree-select/examples/zh_CN/default/custom/README.md +6 -0
- package/tree-select/examples/zh_CN/default/default/README.md +6 -0
- package/tree-select/examples/zh_CN/default/disabled/README.md +6 -0
- package/tree-select/examples/zh_CN/default/label/README.md +6 -0
- package/tree-select/examples/zh_CN/default/multiple/README.md +6 -0
- package/tree-select/examples/zh_CN/default/path/README.md +6 -0
- package/tree-select/examples/zh_CN/default/required/README.md +6 -0
- package/tree-select/examples/zh_CN/default/scroll/README.md +6 -0
- package/tree-select/examples/zh_CN/default/search/README.md +7 -0
- package/tree-select/examples/zh_CN/default/size/README.md +6 -0
- package/tree-select/index.d.ts +5 -0
- package/tree-select/public-api.d.ts +4 -0
- package/tree-select/tree-select-portal.component.d.ts +62 -0
- package/tree-select/tree-select.component.d.ts +101 -0
- package/tree-select/tree-select.module.d.ts +20 -0
- package/tree-select/tree-select.property.d.ts +202 -0
- package/upload/upload.component.d.ts +1 -1
- package/upload/upload.module.d.ts +3 -1
- package/upload/upload.property.d.ts +13 -3
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import { Component, Input, ViewEncapsulation, ChangeDetectionStrategy, Inject, ViewChild, Optional, NgModule } from '@angular/core';
|
|
2
|
+
import { EventEmitter, Component, Input, Output, ViewEncapsulation, ChangeDetectionStrategy, Inject, ViewChild, Optional, NgModule } from '@angular/core';
|
|
3
3
|
import { __decorate } from 'tslib';
|
|
4
4
|
import * as i1 from '@ng-nest/ui/core';
|
|
5
5
|
import { XProperty, XWithConfig, XIsChange } from '@ng-nest/ui/core';
|
|
@@ -15,6 +15,8 @@ import { Subject, map } from 'rxjs';
|
|
|
15
15
|
import { takeUntil } from 'rxjs/operators';
|
|
16
16
|
import * as i3$1 from '@ng-nest/ui/i18n';
|
|
17
17
|
import { XI18nModule } from '@ng-nest/ui/i18n';
|
|
18
|
+
import * as i7 from '@ng-nest/ui/outlet';
|
|
19
|
+
import { XOutletModule } from '@ng-nest/ui/outlet';
|
|
18
20
|
import { XButtonModule } from '@ng-nest/ui/button';
|
|
19
21
|
|
|
20
22
|
/**
|
|
@@ -28,9 +30,22 @@ const X_CONFIG_NAME = 'image';
|
|
|
28
30
|
* Image Property
|
|
29
31
|
*/
|
|
30
32
|
class XImageProperty extends XProperty {
|
|
33
|
+
constructor() {
|
|
34
|
+
super(...arguments);
|
|
35
|
+
/**
|
|
36
|
+
* @zh_CN 图片加载错误
|
|
37
|
+
* @en_US Picture load failed
|
|
38
|
+
*/
|
|
39
|
+
this.error = new EventEmitter();
|
|
40
|
+
/**
|
|
41
|
+
* @zh_CN 图片加载完成
|
|
42
|
+
* @en_US Picture loading complete
|
|
43
|
+
*/
|
|
44
|
+
this.load = new EventEmitter();
|
|
45
|
+
}
|
|
31
46
|
}
|
|
32
47
|
/** @nocollapse */ XImageProperty.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: XImageProperty, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
33
|
-
/** @nocollapse */ XImageProperty.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.2", type: XImageProperty, selector: "ng-component", inputs: { src: "src", width: "width", height: "height", alt: "alt", fallback: "fallback", previewText: "previewText", placeholder: "placeholder" }, usesInheritance: true, ngImport: i0, template: '', isInline: true });
|
|
48
|
+
/** @nocollapse */ XImageProperty.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.2", type: XImageProperty, selector: "ng-component", inputs: { src: "src", width: "width", height: "height", alt: "alt", fallback: "fallback", previewText: "previewText", placeholder: "placeholder", previewTpl: "previewTpl" }, outputs: { error: "error", load: "load" }, usesInheritance: true, ngImport: i0, template: '', isInline: true });
|
|
34
49
|
__decorate([
|
|
35
50
|
XWithConfig(X_CONFIG_NAME)
|
|
36
51
|
], XImageProperty.prototype, "previewText", void 0);
|
|
@@ -51,6 +66,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImpor
|
|
|
51
66
|
type: Input
|
|
52
67
|
}], placeholder: [{
|
|
53
68
|
type: Input
|
|
69
|
+
}], previewTpl: [{
|
|
70
|
+
type: Input
|
|
71
|
+
}], error: [{
|
|
72
|
+
type: Output
|
|
73
|
+
}], load: [{
|
|
74
|
+
type: Output
|
|
54
75
|
}] } });
|
|
55
76
|
/**
|
|
56
77
|
* Image Preview
|
|
@@ -212,10 +233,10 @@ class XImageGroupComponent {
|
|
|
212
233
|
}
|
|
213
234
|
}
|
|
214
235
|
/** @nocollapse */ XImageGroupComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: XImageGroupComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
215
|
-
/** @nocollapse */ XImageGroupComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.2", type: XImageGroupComponent, selector: "x-image-group", ngImport: i0, template: "<ng-content></ng-content>\r\n", styles: ["x-image-group{display:inline-
|
|
236
|
+
/** @nocollapse */ XImageGroupComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.2", type: XImageGroupComponent, selector: "x-image-group", ngImport: i0, template: "<ng-content></ng-content>\r\n", styles: ["x-image-group{display:inline-flex;flex-wrap:wrap}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
216
237
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: XImageGroupComponent, decorators: [{
|
|
217
238
|
type: Component,
|
|
218
|
-
args: [{ selector: `${XImageGroupPrefix}`, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-content></ng-content>\r\n", styles: ["x-image-group{display:inline-
|
|
239
|
+
args: [{ selector: `${XImageGroupPrefix}`, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-content></ng-content>\r\n", styles: ["x-image-group{display:inline-flex;flex-wrap:wrap}\n"] }]
|
|
219
240
|
}] });
|
|
220
241
|
|
|
221
242
|
class XImageComponent extends XImageProperty {
|
|
@@ -251,6 +272,8 @@ class XImageComponent extends XImageProperty {
|
|
|
251
272
|
let { src } = changes;
|
|
252
273
|
if (XIsChange(src)) {
|
|
253
274
|
this.isLoaded = false;
|
|
275
|
+
this.isError = false;
|
|
276
|
+
this.cdr.detectChanges();
|
|
254
277
|
}
|
|
255
278
|
}
|
|
256
279
|
onPreview() {
|
|
@@ -269,19 +292,24 @@ class XImageComponent extends XImageProperty {
|
|
|
269
292
|
data: data
|
|
270
293
|
});
|
|
271
294
|
}
|
|
272
|
-
onError() {
|
|
295
|
+
onError(event) {
|
|
273
296
|
this.src = this.fallback;
|
|
274
297
|
this.isError = true;
|
|
298
|
+
this.cdr.detectChanges();
|
|
299
|
+
this.error.emit(event);
|
|
275
300
|
}
|
|
276
|
-
onLoad() {
|
|
301
|
+
onLoad(event) {
|
|
277
302
|
this.isLoaded = true;
|
|
303
|
+
this.isError = false;
|
|
304
|
+
this.cdr.detectChanges();
|
|
305
|
+
this.load.emit(event);
|
|
278
306
|
}
|
|
279
307
|
}
|
|
280
308
|
/** @nocollapse */ XImageComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: XImageComponent, deps: [{ token: i0.Renderer2 }, { token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: i1.XConfigService }, { token: i2$1.XDialogService }, { token: i3$1.XI18nService }, { token: XImageGroupComponent, optional: true }], target: i0.ɵɵFactoryTarget.Component });
|
|
281
|
-
/** @nocollapse */ XImageComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.2", type: XImageComponent, selector: "x-image", usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<div class=\"x-image\" [ngClass]=\"classMap\">\r\n <img\r\n [hidden]=\"placeholder && !isLoaded\"\r\n class=\"x-image-img\"\r\n [src]=\"src\"\r\n [style.width]=\"width\"\r\n [style.height]=\"height\"\r\n (error)=\"onError()\"\r\n (load)=\"onLoad()\"\r\n />\r\n <img *ngIf=\"placeholder && !isLoaded\" class=\"x-image-img\" [src]=\"placeholder\" [style.width]=\"width\" [style.height]=\"height\" />\r\n <div class=\"x-image-overlay\" *ngIf=\"!isError\" (click)=\"onPreview()\">\r\n
|
|
309
|
+
/** @nocollapse */ XImageComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.2", type: XImageComponent, selector: "x-image", usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<div class=\"x-image\" [ngClass]=\"classMap\">\r\n <img\r\n *ngIf=\"!isError && !fallback\"\r\n [hidden]=\"placeholder && !isLoaded\"\r\n class=\"x-image-img\"\r\n [src]=\"src\"\r\n [style.width]=\"width\"\r\n [style.height]=\"height\"\r\n (error)=\"onError($event)\"\r\n (load)=\"onLoad($event)\"\r\n />\r\n <img *ngIf=\"placeholder && !isLoaded\" class=\"x-image-img\" [src]=\"placeholder\" [style.width]=\"width\" [style.height]=\"height\" />\r\n <div *ngIf=\"isError && !fallback\" class=\"x-image-error-icon\" [style.width]=\"width\" [style.height]=\"height\">\r\n <x-icon type=\"fto-image\"></x-icon>\r\n </div>\r\n <ng-container *xOutlet=\"previewTpl; context: { $image: this }\">\r\n <div class=\"x-image-overlay\" *ngIf=\"!isError\" (click)=\"onPreview()\">\r\n <div class=\"x-image-text\">\r\n <x-icon type=\"fto-eye\"></x-icon>\r\n <span>{{ getPreviewText }}</span>\r\n </div>\r\n </div>\r\n </ng-container>\r\n</div>\r\n", styles: ["x-image{display:inline-block}.x-image{margin:0;padding:0;position:relative;display:inline-block}.x-image-img{max-width:100%;max-height:100%;vertical-align:middle}.x-image-overlay{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;color:#fff;background:rgba(0,0,0,.5);cursor:pointer;opacity:0;transition:opacity var(--x-animation-duration-base)}.x-image-overlay:hover{opacity:1}.x-image-text>span{margin-left:.25rem}.x-image-error{display:none}.x-image-error-icon{font-size:2rem}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.XIconComponent, selector: "x-icon" }, { kind: "directive", type: i7.XOutletDirective, selector: "[xOutlet]", inputs: ["xOutletContext", "xOutlet"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
282
310
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: XImageComponent, decorators: [{
|
|
283
311
|
type: Component,
|
|
284
|
-
args: [{ selector: `${XImagePrefix}`, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"x-image\" [ngClass]=\"classMap\">\r\n <img\r\n [hidden]=\"placeholder && !isLoaded\"\r\n class=\"x-image-img\"\r\n [src]=\"src\"\r\n [style.width]=\"width\"\r\n [style.height]=\"height\"\r\n (error)=\"onError()\"\r\n (load)=\"onLoad()\"\r\n />\r\n <img *ngIf=\"placeholder && !isLoaded\" class=\"x-image-img\" [src]=\"placeholder\" [style.width]=\"width\" [style.height]=\"height\" />\r\n <div class=\"x-image-overlay\" *ngIf=\"!isError\" (click)=\"onPreview()\">\r\n
|
|
312
|
+
args: [{ selector: `${XImagePrefix}`, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"x-image\" [ngClass]=\"classMap\">\r\n <img\r\n *ngIf=\"!isError && !fallback\"\r\n [hidden]=\"placeholder && !isLoaded\"\r\n class=\"x-image-img\"\r\n [src]=\"src\"\r\n [style.width]=\"width\"\r\n [style.height]=\"height\"\r\n (error)=\"onError($event)\"\r\n (load)=\"onLoad($event)\"\r\n />\r\n <img *ngIf=\"placeholder && !isLoaded\" class=\"x-image-img\" [src]=\"placeholder\" [style.width]=\"width\" [style.height]=\"height\" />\r\n <div *ngIf=\"isError && !fallback\" class=\"x-image-error-icon\" [style.width]=\"width\" [style.height]=\"height\">\r\n <x-icon type=\"fto-image\"></x-icon>\r\n </div>\r\n <ng-container *xOutlet=\"previewTpl; context: { $image: this }\">\r\n <div class=\"x-image-overlay\" *ngIf=\"!isError\" (click)=\"onPreview()\">\r\n <div class=\"x-image-text\">\r\n <x-icon type=\"fto-eye\"></x-icon>\r\n <span>{{ getPreviewText }}</span>\r\n </div>\r\n </div>\r\n </ng-container>\r\n</div>\r\n", styles: ["x-image{display:inline-block}.x-image{margin:0;padding:0;position:relative;display:inline-block}.x-image-img{max-width:100%;max-height:100%;vertical-align:middle}.x-image-overlay{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;color:#fff;background:rgba(0,0,0,.5);cursor:pointer;opacity:0;transition:opacity var(--x-animation-duration-base)}.x-image-overlay:hover{opacity:1}.x-image-text>span{margin-left:.25rem}.x-image-error{display:none}.x-image-error-icon{font-size:2rem}\n"] }]
|
|
285
313
|
}], ctorParameters: function () { return [{ type: i0.Renderer2 }, { type: i0.ElementRef }, { type: i0.ChangeDetectorRef }, { type: i1.XConfigService }, { type: i2$1.XDialogService }, { type: i3$1.XI18nService }, { type: XImageGroupComponent, decorators: [{
|
|
286
314
|
type: Optional
|
|
287
315
|
}] }]; } });
|
|
@@ -289,14 +317,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImpor
|
|
|
289
317
|
class XImageModule {
|
|
290
318
|
}
|
|
291
319
|
/** @nocollapse */ XImageModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: XImageModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
292
|
-
/** @nocollapse */ XImageModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.0.2", ngImport: i0, type: XImageModule, declarations: [XImageComponent, XImageProperty, XImagePreviewComponent, XImagePreviewProperty, XImageGroupComponent], imports: [CommonModule, XIconModule, XDialogModule, XButtonModule, XI18nModule, DragDropModule], exports: [XImageComponent, XImagePreviewComponent, XImageGroupComponent] });
|
|
293
|
-
/** @nocollapse */ XImageModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: XImageModule, imports: [CommonModule, XIconModule, XDialogModule, XButtonModule, XI18nModule, DragDropModule] });
|
|
320
|
+
/** @nocollapse */ XImageModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.0.2", ngImport: i0, type: XImageModule, declarations: [XImageComponent, XImageProperty, XImagePreviewComponent, XImagePreviewProperty, XImageGroupComponent], imports: [CommonModule, XIconModule, XDialogModule, XButtonModule, XI18nModule, XOutletModule, DragDropModule], exports: [XImageComponent, XImagePreviewComponent, XImageGroupComponent] });
|
|
321
|
+
/** @nocollapse */ XImageModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: XImageModule, imports: [CommonModule, XIconModule, XDialogModule, XButtonModule, XI18nModule, XOutletModule, DragDropModule] });
|
|
294
322
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: XImageModule, decorators: [{
|
|
295
323
|
type: NgModule,
|
|
296
324
|
args: [{
|
|
297
325
|
declarations: [XImageComponent, XImageProperty, XImagePreviewComponent, XImagePreviewProperty, XImageGroupComponent],
|
|
298
326
|
exports: [XImageComponent, XImagePreviewComponent, XImageGroupComponent],
|
|
299
|
-
imports: [CommonModule, XIconModule, XDialogModule, XButtonModule, XI18nModule, DragDropModule]
|
|
327
|
+
imports: [CommonModule, XIconModule, XDialogModule, XButtonModule, XI18nModule, XOutletModule, DragDropModule]
|
|
300
328
|
}]
|
|
301
329
|
}] });
|
|
302
330
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ng-nest-ui-image.mjs","sources":["../../../../lib/ng-nest/ui/image/image.property.ts","../../../../lib/ng-nest/ui/image/image-preview.component.ts","../../../../lib/ng-nest/ui/image/image-preview.component.html","../../../../lib/ng-nest/ui/image/image-group.component.ts","../../../../lib/ng-nest/ui/image/image-group.component.html","../../../../lib/ng-nest/ui/image/image.component.ts","../../../../lib/ng-nest/ui/image/image.component.html","../../../../lib/ng-nest/ui/image/image.module.ts","../../../../lib/ng-nest/ui/image/ng-nest-ui-image.ts"],"sourcesContent":["import { Input, Component } from '@angular/core';\r\nimport { XProperty, XWithConfig } from '@ng-nest/ui/core';\r\n\r\n/**\r\n * Image\r\n * @selector x-image\r\n * @decorator component\r\n */\r\nexport const XImagePrefix = 'x-image';\r\nconst X_CONFIG_NAME = 'image';\r\n\r\n/**\r\n * Image Property\r\n */\r\n@Component({ template: '' })\r\nexport class XImageProperty extends XProperty {\r\n /**\r\n * @zh_CN 图片显示地址\r\n * @en_US Picture display address\r\n */\r\n @Input() src!: string;\r\n /**\r\n * @zh_CN 图片宽度\r\n * @en_US Picture width\r\n */\r\n @Input() width!: string;\r\n /**\r\n * @zh_CN 图片高度\r\n * @en_US Picture height\r\n */\r\n @Input() height!: string;\r\n /**\r\n * @zh_CN 图像描述\r\n * @en_US Image description\r\n */\r\n @Input() alt!: string;\r\n /**\r\n * @zh_CN 加载失败显示的地址\r\n * @en_US Load fault tolerance address\r\n */\r\n @Input() fallback!: string;\r\n /**\r\n * @zh_CN 预览文字\r\n * @en_US Preview text\r\n * @default '预览'\r\n */\r\n @Input() @XWithConfig<string>(X_CONFIG_NAME) previewText?: string;\r\n /**\r\n * @zh_CN 渐进加载显示的图片\r\n * @en_US Gradually loaded the display of the display\r\n */\r\n @Input() placeholder?: string;\r\n}\r\n\r\n/**\r\n * @zh_CN 图片节点数据\r\n * @en_US Image node data\r\n */\r\nexport interface XImageNode {\r\n /**\r\n * @zh_CN 图片显示地址\r\n * @en_US Picture display address\r\n */\r\n src?: string;\r\n /**\r\n * @zh_CN 图像描述\r\n * @en_US Image description\r\n */\r\n alt?: string;\r\n /**\r\n * @zh_CN 加载失败显示的地址\r\n * @en_US Load fault tolerance address\r\n */\r\n fallback?: string;\r\n /**\r\n * @zh_CN 当前激活的图片\r\n * @en_US Current activated pictures\r\n */\r\n activated?: boolean;\r\n}\r\n\r\n/**\r\n * Image Preview\r\n * @selector x-image-preview\r\n * @decorator component\r\n */\r\nexport const XImagePreviewPrefix = 'x-image-preview';\r\n\r\n/**\r\n * Image Preview Property\r\n */\r\n@Component({ template: '' })\r\nexport class XImagePreviewProperty extends XProperty {}\r\n\r\n/**\r\n * Image Group\r\n * @selector x-image-group\r\n * @decorator component\r\n */\r\nexport const XImageGroupPrefix = 'x-image-group';\r\n","import {\r\n Component,\r\n ViewEncapsulation,\r\n Renderer2,\r\n ElementRef,\r\n ChangeDetectorRef,\r\n ChangeDetectionStrategy,\r\n OnChanges,\r\n Inject,\r\n ViewChild\r\n} from '@angular/core';\r\nimport { XImageNode, XImagePreviewPrefix, XImagePreviewProperty } from './image.property';\r\nimport { XConfigService } from '@ng-nest/ui/core';\r\nimport { X_DIALOG_DATA } from '@ng-nest/ui/dialog';\r\n\r\n@Component({\r\n selector: `${XImagePreviewPrefix}`,\r\n templateUrl: './image-preview.component.html',\r\n styleUrls: ['./image-preview.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class XImagePreviewComponent extends XImagePreviewProperty implements OnChanges {\r\n imgScale3d = {\r\n x: 1,\r\n y: 1,\r\n z: 1\r\n };\r\n rotate = 0;\r\n\r\n position = {\r\n x: 0,\r\n y: 0\r\n };\r\n\r\n activated?: XImageNode;\r\n total = 1;\r\n current = 1;\r\n\r\n get getWrapperTransform() {\r\n return `translate3d(${this.position.x}px, ${this.position.y}px, 0)`;\r\n }\r\n get getImgTransform() {\r\n return `scale3d(${this.imgScale3d.x}, ${this.imgScale3d.y}, ${this.imgScale3d.z}) rotate(${this.rotate}deg)`;\r\n }\r\n\r\n @ViewChild('imageRef') imageRef!: ElementRef<HTMLImageElement>;\r\n\r\n constructor(\r\n public renderer: Renderer2,\r\n public elementRef: ElementRef,\r\n public cdr: ChangeDetectorRef,\r\n public configService: XConfigService,\r\n @Inject(X_DIALOG_DATA) public data: XImageNode[]\r\n ) {\r\n super();\r\n }\r\n\r\n ngOnInit() {\r\n this.setActivated();\r\n }\r\n\r\n ngOnChanges() {}\r\n\r\n initialization() {\r\n this.imgScale3d = {\r\n x: 1,\r\n y: 1,\r\n z: 1\r\n };\r\n this.rotate = 0;\r\n this.position = {\r\n x: 0,\r\n y: 0\r\n };\r\n }\r\n\r\n setActivated() {\r\n if (!this.data) return;\r\n if (this.data.length === 1) {\r\n this.activated = this.data[0];\r\n this.total = this.current = 1;\r\n } else {\r\n this.total = this.data.length;\r\n this.activated = this.data.find((x, index) => {\r\n if (x.activated) {\r\n this.current = index + 1;\r\n return true;\r\n }\r\n return false;\r\n });\r\n }\r\n }\r\n\r\n onCurrentChange(num: number) {\r\n this.current += num;\r\n this.activated = this.data[this.current - 1];\r\n this.initialization();\r\n }\r\n\r\n onRotate(deg: number) {\r\n this.rotate += deg;\r\n }\r\n\r\n onScale(zoom: number) {\r\n this.imgScale3d.x += zoom;\r\n this.imgScale3d.y += zoom;\r\n }\r\n\r\n onDragReleased() {\r\n let width = this.imageRef.nativeElement.offsetWidth * this.imgScale3d.x;\r\n let height = this.imageRef.nativeElement.offsetHeight * this.imgScale3d.x;\r\n const clientWidth = document.documentElement.clientWidth;\r\n const clientHeight = window.innerHeight || document.documentElement.clientHeight;\r\n const isRotate = this.rotate % 180 !== 0;\r\n const box = this.imageRef.nativeElement.getBoundingClientRect();\r\n const docElem = document.documentElement;\r\n const left = box.left + (window.pageXOffset || docElem.scrollLeft) - (docElem.clientLeft || document.body.clientLeft || 0);\r\n const top = box.top + (window.pageYOffset || docElem.scrollTop) - (docElem.clientTop || document.body.clientTop || 0);\r\n width = isRotate ? height : width;\r\n height = isRotate ? width : height;\r\n\r\n let position = { x: 0, y: 0 };\r\n if (width > clientWidth || height > clientHeight) {\r\n const x = this.fitPoint(left, width, clientWidth);\r\n const y = this.fitPoint(top, height, clientHeight);\r\n position.x = x ? x : 0;\r\n position.y = y ? y : 0;\r\n }\r\n\r\n this.position = { ...this.position, ...position };\r\n }\r\n\r\n fitPoint(start: number, size: number, clientSize: number): number | null {\r\n const startAddSize = start + size;\r\n const offsetStart = (size - clientSize) / 2;\r\n let distance: number | null = null;\r\n\r\n if (size > clientSize) {\r\n if (start > 0) {\r\n distance = offsetStart;\r\n }\r\n if (start < 0 && startAddSize < clientSize) {\r\n distance = -offsetStart;\r\n }\r\n } else {\r\n if (start < 0 || startAddSize > clientSize) {\r\n distance = start < 0 ? offsetStart : -offsetStart;\r\n }\r\n }\r\n\r\n return distance;\r\n }\r\n}\r\n","<div class=\"x-image-preview\" [ngClass]=\"classMap\">\r\n <div class=\"x-image-preview-header\">\r\n <div class=\"x-image-preview-header-left\">\r\n <span class=\"x-image-preview-current\" *ngIf=\"total != 1\">{{ current }} / {{ total }}</span>\r\n </div>\r\n <div class=\"x-image-preview-header-center\">\r\n <x-icon type=\"fto-corner-up-left\" (click)=\"onRotate(-90)\"></x-icon>\r\n <x-icon type=\"fto-corner-up-right\" (click)=\"onRotate(90)\"></x-icon>\r\n <x-icon type=\"fto-zoom-out\" [class.x-image-preview-disabled]=\"imgScale3d.x === 1\" (click)=\"imgScale3d.x > 1 && onScale(-1)\"></x-icon>\r\n <x-icon type=\"fto-zoom-in\" (click)=\"onScale(1)\"></x-icon>\r\n </div>\r\n <div class=\"x-image-preview-header-right\">\r\n <x-icon type=\"fto-x\" x-dialog-close></x-icon>\r\n </div>\r\n </div>\r\n <div\r\n class=\"x-image-preview-wrapper\"\r\n cdkDrag\r\n [style.transform]=\"getWrapperTransform\"\r\n [cdkDragFreeDragPosition]=\"position\"\r\n (cdkDragReleased)=\"onDragReleased()\"\r\n >\r\n <img #imageRef [src]=\"activated?.src\" [attr.alt]=\"activated?.alt\" cdkDragHandle [style.transform]=\"getImgTransform\" />\r\n </div>\r\n <div\r\n *ngIf=\"data && data.length > 1\"\r\n [class.x-image-preview-disabled]=\"current === 1\"\r\n class=\"x-image-preview-left\"\r\n (click)=\"current > 1 && onCurrentChange(-1)\"\r\n >\r\n <x-icon type=\"fto-chevron-left\"></x-icon>\r\n </div>\r\n <div\r\n *ngIf=\"data && data.length > 1\"\r\n [class.x-image-preview-disabled]=\"current === total\"\r\n class=\"x-image-preview-right\"\r\n (click)=\"current != total && onCurrentChange(1)\"\r\n >\r\n <x-icon type=\"fto-chevron-right\"></x-icon>\r\n </div>\r\n</div>\r\n","import { Component, ViewEncapsulation, ChangeDetectionStrategy } from '@angular/core';\r\nimport { XImageComponent } from './image.component';\r\nimport { XImageGroupPrefix } from './image.property';\r\n\r\n@Component({\r\n selector: `${XImageGroupPrefix}`,\r\n templateUrl: './image-group.component.html',\r\n styleUrls: ['./image-group.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class XImageGroupComponent {\r\n images: XImageComponent[] = [];\r\n\r\n addImage(image: XImageComponent): void {\r\n this.images.push(image);\r\n }\r\n}\r\n","<ng-content></ng-content>\r\n","import {\r\n Component,\r\n ViewEncapsulation,\r\n Renderer2,\r\n ElementRef,\r\n ChangeDetectorRef,\r\n ChangeDetectionStrategy,\r\n OnInit,\r\n Optional,\r\n OnChanges,\r\n SimpleChanges\r\n} from '@angular/core';\r\nimport { XImageNode, XImagePrefix, XImageProperty } from './image.property';\r\nimport { XConfigService, XIsChange } from '@ng-nest/ui/core';\r\nimport { XDialogService } from '@ng-nest/ui/dialog';\r\nimport { XImagePreviewComponent } from './image-preview.component';\r\nimport { XI18nImage, XI18nService } from '@ng-nest/ui/i18n';\r\nimport { map, Subject } from 'rxjs';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport { XImageGroupComponent } from './image-group.component';\r\n\r\n@Component({\r\n selector: `${XImagePrefix}`,\r\n templateUrl: './image.component.html',\r\n styleUrls: ['./image.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class XImageComponent extends XImageProperty implements OnInit, OnChanges {\r\n locale: XI18nImage = {};\r\n isError = false;\r\n isLoaded = false;\r\n private _unSubject = new Subject<void>();\r\n\r\n get getPreviewText() {\r\n return this.previewText || this.locale.previewText;\r\n }\r\n constructor(\r\n public renderer: Renderer2,\r\n public elementRef: ElementRef,\r\n public cdr: ChangeDetectorRef,\r\n public configService: XConfigService,\r\n public dialog: XDialogService,\r\n public i18n: XI18nService,\r\n @Optional() public group: XImageGroupComponent\r\n ) {\r\n super();\r\n }\r\n\r\n ngOnInit(): void {\r\n if (this.group) {\r\n this.group.addImage(this);\r\n }\r\n this.i18n.localeChange\r\n .pipe(\r\n map((x) => x.image as XI18nImage),\r\n takeUntil(this._unSubject)\r\n )\r\n .subscribe((x) => {\r\n this.locale = x;\r\n this.cdr.markForCheck();\r\n });\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n let { src } = changes;\r\n if (XIsChange(src)) {\r\n this.isLoaded = false;\r\n }\r\n }\r\n\r\n onPreview() {\r\n let data: XImageNode[] = [];\r\n if (this.group) {\r\n const activatedIndex = this.group.images.indexOf(this);\r\n data = this.group.images.map((x, index) => ({ src: x.src, alt: x.alt, fallback: x.fallback, activated: index === activatedIndex }));\r\n } else {\r\n data = [{ src: this.src, alt: this.alt, fallback: this.fallback }];\r\n }\r\n this.dialog.create(XImagePreviewComponent, {\r\n width: '100%',\r\n height: '100%',\r\n className: 'x-image-preview-portal',\r\n data: data\r\n });\r\n }\r\n\r\n onError() {\r\n this.src = this.fallback;\r\n this.isError = true;\r\n }\r\n\r\n onLoad() {\r\n this.isLoaded = true;\r\n }\r\n}\r\n","<div class=\"x-image\" [ngClass]=\"classMap\">\r\n <img\r\n [hidden]=\"placeholder && !isLoaded\"\r\n class=\"x-image-img\"\r\n [src]=\"src\"\r\n [style.width]=\"width\"\r\n [style.height]=\"height\"\r\n (error)=\"onError()\"\r\n (load)=\"onLoad()\"\r\n />\r\n <img *ngIf=\"placeholder && !isLoaded\" class=\"x-image-img\" [src]=\"placeholder\" [style.width]=\"width\" [style.height]=\"height\" />\r\n <div class=\"x-image-overlay\" *ngIf=\"!isError\" (click)=\"onPreview()\">\r\n <div class=\"x-image-text\">\r\n <x-icon type=\"fto-eye\"></x-icon>\r\n <span>{{ getPreviewText }}</span>\r\n </div>\r\n </div>\r\n</div>\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { XImageComponent } from './image.component';\r\nimport { XIconModule } from '@ng-nest/ui/icon';\r\nimport { XImagePreviewProperty, XImageProperty } from './image.property';\r\nimport { XDialogModule } from '@ng-nest/ui/dialog';\r\nimport { XImagePreviewComponent } from './image-preview.component';\r\nimport { XButtonModule } from '@ng-nest/ui/button';\r\nimport { DragDropModule } from '@angular/cdk/drag-drop';\r\nimport { XI18nModule } from '@ng-nest/ui/i18n';\r\nimport { XImageGroupComponent } from './image-group.component';\r\n\r\n@NgModule({\r\n declarations: [XImageComponent, XImageProperty, XImagePreviewComponent, XImagePreviewProperty, XImageGroupComponent],\r\n exports: [XImageComponent, XImagePreviewComponent, XImageGroupComponent],\r\n imports: [CommonModule, XIconModule, XDialogModule, XButtonModule, XI18nModule, DragDropModule]\r\n})\r\nexport class XImageModule {}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i4","i2","i3","i4.XImageGroupComponent","i5","i6"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ng-nest-ui-image.mjs","sources":["../../../../lib/ng-nest/ui/image/image.property.ts","../../../../lib/ng-nest/ui/image/image-preview.component.ts","../../../../lib/ng-nest/ui/image/image-preview.component.html","../../../../lib/ng-nest/ui/image/image-group.component.ts","../../../../lib/ng-nest/ui/image/image-group.component.html","../../../../lib/ng-nest/ui/image/image.component.ts","../../../../lib/ng-nest/ui/image/image.component.html","../../../../lib/ng-nest/ui/image/image.module.ts","../../../../lib/ng-nest/ui/image/ng-nest-ui-image.ts"],"sourcesContent":["import { Input, Component, Output, EventEmitter } from '@angular/core';\r\nimport { XProperty, XTemplate, XWithConfig } from '@ng-nest/ui/core';\r\n\r\n/**\r\n * Image\r\n * @selector x-image\r\n * @decorator component\r\n */\r\nexport const XImagePrefix = 'x-image';\r\nconst X_CONFIG_NAME = 'image';\r\n\r\n/**\r\n * Image Property\r\n */\r\n@Component({ template: '' })\r\nexport class XImageProperty extends XProperty {\r\n /**\r\n * @zh_CN 图片显示地址\r\n * @en_US Picture display address\r\n */\r\n @Input() src?: string;\r\n /**\r\n * @zh_CN 图片宽度\r\n * @en_US Picture width\r\n */\r\n @Input() width?: string;\r\n /**\r\n * @zh_CN 图片高度\r\n * @en_US Picture height\r\n */\r\n @Input() height?: string;\r\n /**\r\n * @zh_CN 图像描述\r\n * @en_US Image description\r\n */\r\n @Input() alt?: string;\r\n /**\r\n * @zh_CN 加载失败显示的地址\r\n * @en_US Load fault tolerance address\r\n */\r\n @Input() fallback?: string;\r\n /**\r\n * @zh_CN 预览文字\r\n * @en_US Preview text\r\n * @default '预览'\r\n */\r\n @Input() @XWithConfig<string>(X_CONFIG_NAME) previewText?: string;\r\n /**\r\n * @zh_CN 渐进加载显示的图片\r\n * @en_US Gradually loaded the display of the display\r\n */\r\n @Input() placeholder?: string;\r\n /**\r\n * @zh_CN 自定义预览操作\r\n * @en_US Custom preview operation\r\n */\r\n @Input() previewTpl?: XTemplate;\r\n /**\r\n * @zh_CN 图片加载错误\r\n * @en_US Picture load failed\r\n */\r\n @Output() error = new EventEmitter();\r\n /**\r\n * @zh_CN 图片加载完成\r\n * @en_US Picture loading complete\r\n */\r\n @Output() load = new EventEmitter();\r\n}\r\n\r\n/**\r\n * @zh_CN 图片节点数据\r\n * @en_US Image node data\r\n */\r\nexport interface XImageNode {\r\n /**\r\n * @zh_CN 图片显示地址\r\n * @en_US Picture display address\r\n */\r\n src?: string;\r\n /**\r\n * @zh_CN 图像描述\r\n * @en_US Image description\r\n */\r\n alt?: string;\r\n /**\r\n * @zh_CN 加载失败显示的地址\r\n * @en_US Load fault tolerance address\r\n */\r\n fallback?: string;\r\n /**\r\n * @zh_CN 当前激活的图片\r\n * @en_US Current activated pictures\r\n */\r\n activated?: boolean;\r\n}\r\n\r\n/**\r\n * Image Preview\r\n * @selector x-image-preview\r\n * @decorator component\r\n */\r\nexport const XImagePreviewPrefix = 'x-image-preview';\r\n\r\n/**\r\n * Image Preview Property\r\n */\r\n@Component({ template: '' })\r\nexport class XImagePreviewProperty extends XProperty {}\r\n\r\n/**\r\n * Image Group\r\n * @selector x-image-group\r\n * @decorator component\r\n */\r\nexport const XImageGroupPrefix = 'x-image-group';\r\n","import {\r\n Component,\r\n ViewEncapsulation,\r\n Renderer2,\r\n ElementRef,\r\n ChangeDetectorRef,\r\n ChangeDetectionStrategy,\r\n OnChanges,\r\n Inject,\r\n ViewChild\r\n} from '@angular/core';\r\nimport { XImageNode, XImagePreviewPrefix, XImagePreviewProperty } from './image.property';\r\nimport { XConfigService } from '@ng-nest/ui/core';\r\nimport { X_DIALOG_DATA } from '@ng-nest/ui/dialog';\r\n\r\n@Component({\r\n selector: `${XImagePreviewPrefix}`,\r\n templateUrl: './image-preview.component.html',\r\n styleUrls: ['./image-preview.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class XImagePreviewComponent extends XImagePreviewProperty implements OnChanges {\r\n imgScale3d = {\r\n x: 1,\r\n y: 1,\r\n z: 1\r\n };\r\n rotate = 0;\r\n\r\n position = {\r\n x: 0,\r\n y: 0\r\n };\r\n\r\n activated?: XImageNode;\r\n total = 1;\r\n current = 1;\r\n\r\n get getWrapperTransform() {\r\n return `translate3d(${this.position.x}px, ${this.position.y}px, 0)`;\r\n }\r\n get getImgTransform() {\r\n return `scale3d(${this.imgScale3d.x}, ${this.imgScale3d.y}, ${this.imgScale3d.z}) rotate(${this.rotate}deg)`;\r\n }\r\n\r\n @ViewChild('imageRef') imageRef!: ElementRef<HTMLImageElement>;\r\n\r\n constructor(\r\n public renderer: Renderer2,\r\n public elementRef: ElementRef,\r\n public cdr: ChangeDetectorRef,\r\n public configService: XConfigService,\r\n @Inject(X_DIALOG_DATA) public data: XImageNode[]\r\n ) {\r\n super();\r\n }\r\n\r\n ngOnInit() {\r\n this.setActivated();\r\n }\r\n\r\n ngOnChanges() {}\r\n\r\n initialization() {\r\n this.imgScale3d = {\r\n x: 1,\r\n y: 1,\r\n z: 1\r\n };\r\n this.rotate = 0;\r\n this.position = {\r\n x: 0,\r\n y: 0\r\n };\r\n }\r\n\r\n setActivated() {\r\n if (!this.data) return;\r\n if (this.data.length === 1) {\r\n this.activated = this.data[0];\r\n this.total = this.current = 1;\r\n } else {\r\n this.total = this.data.length;\r\n this.activated = this.data.find((x, index) => {\r\n if (x.activated) {\r\n this.current = index + 1;\r\n return true;\r\n }\r\n return false;\r\n });\r\n }\r\n }\r\n\r\n onCurrentChange(num: number) {\r\n this.current += num;\r\n this.activated = this.data[this.current - 1];\r\n this.initialization();\r\n }\r\n\r\n onRotate(deg: number) {\r\n this.rotate += deg;\r\n }\r\n\r\n onScale(zoom: number) {\r\n this.imgScale3d.x += zoom;\r\n this.imgScale3d.y += zoom;\r\n }\r\n\r\n onDragReleased() {\r\n let width = this.imageRef.nativeElement.offsetWidth * this.imgScale3d.x;\r\n let height = this.imageRef.nativeElement.offsetHeight * this.imgScale3d.x;\r\n const clientWidth = document.documentElement.clientWidth;\r\n const clientHeight = window.innerHeight || document.documentElement.clientHeight;\r\n const isRotate = this.rotate % 180 !== 0;\r\n const box = this.imageRef.nativeElement.getBoundingClientRect();\r\n const docElem = document.documentElement;\r\n const left = box.left + (window.pageXOffset || docElem.scrollLeft) - (docElem.clientLeft || document.body.clientLeft || 0);\r\n const top = box.top + (window.pageYOffset || docElem.scrollTop) - (docElem.clientTop || document.body.clientTop || 0);\r\n width = isRotate ? height : width;\r\n height = isRotate ? width : height;\r\n\r\n let position = { x: 0, y: 0 };\r\n if (width > clientWidth || height > clientHeight) {\r\n const x = this.fitPoint(left, width, clientWidth);\r\n const y = this.fitPoint(top, height, clientHeight);\r\n position.x = x ? x : 0;\r\n position.y = y ? y : 0;\r\n }\r\n\r\n this.position = { ...this.position, ...position };\r\n }\r\n\r\n fitPoint(start: number, size: number, clientSize: number): number | null {\r\n const startAddSize = start + size;\r\n const offsetStart = (size - clientSize) / 2;\r\n let distance: number | null = null;\r\n\r\n if (size > clientSize) {\r\n if (start > 0) {\r\n distance = offsetStart;\r\n }\r\n if (start < 0 && startAddSize < clientSize) {\r\n distance = -offsetStart;\r\n }\r\n } else {\r\n if (start < 0 || startAddSize > clientSize) {\r\n distance = start < 0 ? offsetStart : -offsetStart;\r\n }\r\n }\r\n\r\n return distance;\r\n }\r\n}\r\n","<div class=\"x-image-preview\" [ngClass]=\"classMap\">\r\n <div class=\"x-image-preview-header\">\r\n <div class=\"x-image-preview-header-left\">\r\n <span class=\"x-image-preview-current\" *ngIf=\"total != 1\">{{ current }} / {{ total }}</span>\r\n </div>\r\n <div class=\"x-image-preview-header-center\">\r\n <x-icon type=\"fto-corner-up-left\" (click)=\"onRotate(-90)\"></x-icon>\r\n <x-icon type=\"fto-corner-up-right\" (click)=\"onRotate(90)\"></x-icon>\r\n <x-icon type=\"fto-zoom-out\" [class.x-image-preview-disabled]=\"imgScale3d.x === 1\" (click)=\"imgScale3d.x > 1 && onScale(-1)\"></x-icon>\r\n <x-icon type=\"fto-zoom-in\" (click)=\"onScale(1)\"></x-icon>\r\n </div>\r\n <div class=\"x-image-preview-header-right\">\r\n <x-icon type=\"fto-x\" x-dialog-close></x-icon>\r\n </div>\r\n </div>\r\n <div\r\n class=\"x-image-preview-wrapper\"\r\n cdkDrag\r\n [style.transform]=\"getWrapperTransform\"\r\n [cdkDragFreeDragPosition]=\"position\"\r\n (cdkDragReleased)=\"onDragReleased()\"\r\n >\r\n <img #imageRef [src]=\"activated?.src\" [attr.alt]=\"activated?.alt\" cdkDragHandle [style.transform]=\"getImgTransform\" />\r\n </div>\r\n <div\r\n *ngIf=\"data && data.length > 1\"\r\n [class.x-image-preview-disabled]=\"current === 1\"\r\n class=\"x-image-preview-left\"\r\n (click)=\"current > 1 && onCurrentChange(-1)\"\r\n >\r\n <x-icon type=\"fto-chevron-left\"></x-icon>\r\n </div>\r\n <div\r\n *ngIf=\"data && data.length > 1\"\r\n [class.x-image-preview-disabled]=\"current === total\"\r\n class=\"x-image-preview-right\"\r\n (click)=\"current != total && onCurrentChange(1)\"\r\n >\r\n <x-icon type=\"fto-chevron-right\"></x-icon>\r\n </div>\r\n</div>\r\n","import { Component, ViewEncapsulation, ChangeDetectionStrategy } from '@angular/core';\r\nimport { XImageComponent } from './image.component';\r\nimport { XImageGroupPrefix } from './image.property';\r\n\r\n@Component({\r\n selector: `${XImageGroupPrefix}`,\r\n templateUrl: './image-group.component.html',\r\n styleUrls: ['./image-group.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class XImageGroupComponent {\r\n images: XImageComponent[] = [];\r\n\r\n addImage(image: XImageComponent): void {\r\n this.images.push(image);\r\n }\r\n}\r\n","<ng-content></ng-content>\r\n","import {\r\n Component,\r\n ViewEncapsulation,\r\n Renderer2,\r\n ElementRef,\r\n ChangeDetectorRef,\r\n ChangeDetectionStrategy,\r\n OnInit,\r\n Optional,\r\n OnChanges,\r\n SimpleChanges\r\n} from '@angular/core';\r\nimport { XImageNode, XImagePrefix, XImageProperty } from './image.property';\r\nimport { XConfigService, XIsChange } from '@ng-nest/ui/core';\r\nimport { XDialogService } from '@ng-nest/ui/dialog';\r\nimport { XImagePreviewComponent } from './image-preview.component';\r\nimport { XI18nImage, XI18nService } from '@ng-nest/ui/i18n';\r\nimport { map, Subject } from 'rxjs';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport { XImageGroupComponent } from './image-group.component';\r\n\r\n@Component({\r\n selector: `${XImagePrefix}`,\r\n templateUrl: './image.component.html',\r\n styleUrls: ['./image.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class XImageComponent extends XImageProperty implements OnInit, OnChanges {\r\n locale: XI18nImage = {};\r\n isError = false;\r\n isLoaded = false;\r\n private _unSubject = new Subject<void>();\r\n\r\n get getPreviewText() {\r\n return this.previewText || this.locale.previewText;\r\n }\r\n constructor(\r\n public renderer: Renderer2,\r\n public elementRef: ElementRef,\r\n public cdr: ChangeDetectorRef,\r\n public configService: XConfigService,\r\n public dialog: XDialogService,\r\n public i18n: XI18nService,\r\n @Optional() public group: XImageGroupComponent\r\n ) {\r\n super();\r\n }\r\n\r\n ngOnInit(): void {\r\n if (this.group) {\r\n this.group.addImage(this);\r\n }\r\n this.i18n.localeChange\r\n .pipe(\r\n map((x) => x.image as XI18nImage),\r\n takeUntil(this._unSubject)\r\n )\r\n .subscribe((x) => {\r\n this.locale = x;\r\n this.cdr.markForCheck();\r\n });\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n let { src } = changes;\r\n if (XIsChange(src)) {\r\n this.isLoaded = false;\r\n this.isError = false;\r\n this.cdr.detectChanges();\r\n }\r\n }\r\n\r\n onPreview() {\r\n let data: XImageNode[] = [];\r\n if (this.group) {\r\n const activatedIndex = this.group.images.indexOf(this);\r\n data = this.group.images.map((x, index) => ({ src: x.src, alt: x.alt, fallback: x.fallback, activated: index === activatedIndex }));\r\n } else {\r\n data = [{ src: this.src, alt: this.alt, fallback: this.fallback }];\r\n }\r\n this.dialog.create(XImagePreviewComponent, {\r\n width: '100%',\r\n height: '100%',\r\n className: 'x-image-preview-portal',\r\n data: data\r\n });\r\n }\r\n\r\n onError(event: Event) {\r\n this.src = this.fallback;\r\n this.isError = true;\r\n this.cdr.detectChanges();\r\n this.error.emit(event);\r\n }\r\n\r\n onLoad(event: Event) {\r\n this.isLoaded = true;\r\n this.isError = false;\r\n this.cdr.detectChanges();\r\n this.load.emit(event);\r\n }\r\n}\r\n","<div class=\"x-image\" [ngClass]=\"classMap\">\r\n <img\r\n *ngIf=\"!isError && !fallback\"\r\n [hidden]=\"placeholder && !isLoaded\"\r\n class=\"x-image-img\"\r\n [src]=\"src\"\r\n [style.width]=\"width\"\r\n [style.height]=\"height\"\r\n (error)=\"onError($event)\"\r\n (load)=\"onLoad($event)\"\r\n />\r\n <img *ngIf=\"placeholder && !isLoaded\" class=\"x-image-img\" [src]=\"placeholder\" [style.width]=\"width\" [style.height]=\"height\" />\r\n <div *ngIf=\"isError && !fallback\" class=\"x-image-error-icon\" [style.width]=\"width\" [style.height]=\"height\">\r\n <x-icon type=\"fto-image\"></x-icon>\r\n </div>\r\n <ng-container *xOutlet=\"previewTpl; context: { $image: this }\">\r\n <div class=\"x-image-overlay\" *ngIf=\"!isError\" (click)=\"onPreview()\">\r\n <div class=\"x-image-text\">\r\n <x-icon type=\"fto-eye\"></x-icon>\r\n <span>{{ getPreviewText }}</span>\r\n </div>\r\n </div>\r\n </ng-container>\r\n</div>\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { XImageComponent } from './image.component';\r\nimport { XIconModule } from '@ng-nest/ui/icon';\r\nimport { XImagePreviewProperty, XImageProperty } from './image.property';\r\nimport { XDialogModule } from '@ng-nest/ui/dialog';\r\nimport { XImagePreviewComponent } from './image-preview.component';\r\nimport { XButtonModule } from '@ng-nest/ui/button';\r\nimport { DragDropModule } from '@angular/cdk/drag-drop';\r\nimport { XI18nModule } from '@ng-nest/ui/i18n';\r\nimport { XImageGroupComponent } from './image-group.component';\r\nimport { XOutletModule } from '@ng-nest/ui/outlet';\r\n\r\n@NgModule({\r\n declarations: [XImageComponent, XImageProperty, XImagePreviewComponent, XImagePreviewProperty, XImageGroupComponent],\r\n exports: [XImageComponent, XImagePreviewComponent, XImageGroupComponent],\r\n imports: [CommonModule, XIconModule, XDialogModule, XButtonModule, XI18nModule, XOutletModule, DragDropModule]\r\n})\r\nexport class XImageModule {}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i4","i2","i3","i4.XImageGroupComponent","i5","i6"],"mappings":"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"}
|
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
import * as i0 from '@angular/core';
|
|
2
|
+
import { Directive, Input, NgModule } from '@angular/core';
|
|
3
|
+
import { Subject } from 'rxjs';
|
|
4
|
+
import * as i1 from '@ng-nest/ui/core';
|
|
5
|
+
import { XProperty, XWithConfig, XInputBoolean, XIsChange, XIsUndefined, XIsArray, XIsString } from '@ng-nest/ui/core';
|
|
6
|
+
import { __decorate } from 'tslib';
|
|
7
|
+
import { CommonModule } from '@angular/common';
|
|
8
|
+
|
|
9
|
+
/**
|
|
10
|
+
* Keyword
|
|
11
|
+
* @selector x-keyword
|
|
12
|
+
* @decorator directive
|
|
13
|
+
*/
|
|
14
|
+
const XKeywordPrefix = 'x-keyword';
|
|
15
|
+
const X_CONFIG_NAME = 'keyword';
|
|
16
|
+
/**
|
|
17
|
+
* Keyword Property
|
|
18
|
+
*/
|
|
19
|
+
class XKeywordProperty extends XProperty {
|
|
20
|
+
}
|
|
21
|
+
/** @nocollapse */ XKeywordProperty.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: XKeywordProperty, deps: null, target: i0.ɵɵFactoryTarget.Directive });
|
|
22
|
+
/** @nocollapse */ XKeywordProperty.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.0.2", type: XKeywordProperty, selector: "[x-keyword]", inputs: { type: "type", caseSensitive: "caseSensitive", color: "color", text: "text" }, usesInheritance: true, ngImport: i0 });
|
|
23
|
+
__decorate([
|
|
24
|
+
XWithConfig(X_CONFIG_NAME, 'primary')
|
|
25
|
+
], XKeywordProperty.prototype, "type", void 0);
|
|
26
|
+
__decorate([
|
|
27
|
+
XInputBoolean(),
|
|
28
|
+
XWithConfig(X_CONFIG_NAME, true)
|
|
29
|
+
], XKeywordProperty.prototype, "caseSensitive", void 0);
|
|
30
|
+
__decorate([
|
|
31
|
+
XWithConfig(X_CONFIG_NAME)
|
|
32
|
+
], XKeywordProperty.prototype, "color", void 0);
|
|
33
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: XKeywordProperty, decorators: [{
|
|
34
|
+
type: Directive,
|
|
35
|
+
args: [{ selector: '[x-keyword]' }]
|
|
36
|
+
}], propDecorators: { type: [{
|
|
37
|
+
type: Input
|
|
38
|
+
}], caseSensitive: [{
|
|
39
|
+
type: Input
|
|
40
|
+
}], color: [{
|
|
41
|
+
type: Input
|
|
42
|
+
}], text: [{
|
|
43
|
+
type: Input
|
|
44
|
+
}] } });
|
|
45
|
+
|
|
46
|
+
class XKeywordDirective extends XKeywordProperty {
|
|
47
|
+
constructor(renderer, elementRef, configService) {
|
|
48
|
+
super();
|
|
49
|
+
this.renderer = renderer;
|
|
50
|
+
this.elementRef = elementRef;
|
|
51
|
+
this.configService = configService;
|
|
52
|
+
this._unSub = new Subject();
|
|
53
|
+
}
|
|
54
|
+
ngOnInit() {
|
|
55
|
+
this.setClassMap();
|
|
56
|
+
}
|
|
57
|
+
ngAfterViewInit() {
|
|
58
|
+
this.setKeyword();
|
|
59
|
+
}
|
|
60
|
+
ngOnDestroy() {
|
|
61
|
+
this._unSub.next();
|
|
62
|
+
this._unSub.complete();
|
|
63
|
+
}
|
|
64
|
+
ngOnChanges(changes) {
|
|
65
|
+
const { text } = changes;
|
|
66
|
+
XIsChange(text) && this.setKeyword();
|
|
67
|
+
}
|
|
68
|
+
setKeyword() {
|
|
69
|
+
if (XIsUndefined(this.text))
|
|
70
|
+
return;
|
|
71
|
+
const hele = this.elementRef.nativeElement;
|
|
72
|
+
let textContent = hele.textContent;
|
|
73
|
+
if (!textContent)
|
|
74
|
+
return;
|
|
75
|
+
let texts = [];
|
|
76
|
+
if (XIsArray(this.text)) {
|
|
77
|
+
texts = this.text;
|
|
78
|
+
}
|
|
79
|
+
else if (XIsString(this.text)) {
|
|
80
|
+
texts = [this.text];
|
|
81
|
+
}
|
|
82
|
+
const flags = this.caseSensitive ? 'g' : 'gi';
|
|
83
|
+
for (let tx of texts) {
|
|
84
|
+
const reg = new RegExp(tx, flags);
|
|
85
|
+
textContent = textContent.replace(reg, (p1) => {
|
|
86
|
+
return `<span class="x-keyword-text">${p1}</span>`;
|
|
87
|
+
});
|
|
88
|
+
}
|
|
89
|
+
hele.innerHTML = textContent;
|
|
90
|
+
}
|
|
91
|
+
setClassMap() {
|
|
92
|
+
if (!this.color) {
|
|
93
|
+
this.renderer.addClass(this.elementRef.nativeElement, `${XKeywordPrefix}-${this.type}`);
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
/** @nocollapse */ XKeywordDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: XKeywordDirective, deps: [{ token: i0.Renderer2 }, { token: i0.ElementRef }, { token: i1.XConfigService }], target: i0.ɵɵFactoryTarget.Directive });
|
|
98
|
+
/** @nocollapse */ XKeywordDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.0.2", type: XKeywordDirective, selector: "[x-keyword]", usesInheritance: true, usesOnChanges: true, ngImport: i0 });
|
|
99
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: XKeywordDirective, decorators: [{
|
|
100
|
+
type: Directive,
|
|
101
|
+
args: [{
|
|
102
|
+
selector: `[${XKeywordPrefix}]`
|
|
103
|
+
}]
|
|
104
|
+
}], ctorParameters: function () { return [{ type: i0.Renderer2 }, { type: i0.ElementRef }, { type: i1.XConfigService }]; } });
|
|
105
|
+
|
|
106
|
+
class XKeywordModule {
|
|
107
|
+
}
|
|
108
|
+
/** @nocollapse */ XKeywordModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: XKeywordModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
109
|
+
/** @nocollapse */ XKeywordModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.0.2", ngImport: i0, type: XKeywordModule, declarations: [XKeywordDirective, XKeywordProperty], imports: [CommonModule], exports: [XKeywordDirective] });
|
|
110
|
+
/** @nocollapse */ XKeywordModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: XKeywordModule, imports: [CommonModule] });
|
|
111
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: XKeywordModule, decorators: [{
|
|
112
|
+
type: NgModule,
|
|
113
|
+
args: [{
|
|
114
|
+
declarations: [XKeywordDirective, XKeywordProperty],
|
|
115
|
+
exports: [XKeywordDirective],
|
|
116
|
+
imports: [CommonModule]
|
|
117
|
+
}]
|
|
118
|
+
}] });
|
|
119
|
+
|
|
120
|
+
/**
|
|
121
|
+
* Generated bundle index. Do not edit.
|
|
122
|
+
*/
|
|
123
|
+
|
|
124
|
+
export { XKeywordDirective, XKeywordModule, XKeywordPrefix, XKeywordProperty };
|
|
125
|
+
//# sourceMappingURL=ng-nest-ui-keyword.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ng-nest-ui-keyword.mjs","sources":["../../../../lib/ng-nest/ui/keyword/keyword.property.ts","../../../../lib/ng-nest/ui/keyword/keyword.directive.ts","../../../../lib/ng-nest/ui/keyword/keyword.module.ts","../../../../lib/ng-nest/ui/keyword/ng-nest-ui-keyword.ts"],"sourcesContent":["import { XBoolean, XInputBoolean, XProperty, XType, XWithConfig } from '@ng-nest/ui/core';\r\nimport { Input, Directive } from '@angular/core';\r\n\r\n/**\r\n * Keyword\r\n * @selector x-keyword\r\n * @decorator directive\r\n */\r\nexport const XKeywordPrefix = 'x-keyword';\r\nconst X_CONFIG_NAME = 'keyword';\r\n\r\n/**\r\n * Keyword Property\r\n */\r\n@Directive({ selector: '[x-keyword]' })\r\nexport class XKeywordProperty extends XProperty {\r\n /**\r\n * @zh_CN 类型\r\n * @en_US Types of\r\n */\r\n @Input() @XWithConfig<XKeywordType>(X_CONFIG_NAME, 'primary') type?: XKeywordType;\r\n /**\r\n * @zh_CN 匹配关键字区分大小写\r\n * @en_US Case-sensitive\r\n */\r\n @Input() @XInputBoolean() @XWithConfig<XBoolean>(X_CONFIG_NAME, true) caseSensitive!: XBoolean;\r\n /**\r\n * @zh_CN 颜色\r\n * @en_US color\r\n */\r\n @Input() @XWithConfig<string>(X_CONFIG_NAME) color?: string;\r\n /**\r\n * @zh_CN 文字\r\n * @en_US text\r\n */\r\n @Input() text!: string | string[];\r\n}\r\n\r\n/**\r\n * @zh_CN 类型\r\n * @en_US Keyword type\r\n */\r\nexport type XKeywordType = XType;\r\n","import { OnInit, Renderer2, ElementRef, Directive, OnDestroy, AfterViewInit, OnChanges, SimpleChanges } from '@angular/core';\r\nimport { Subject } from 'rxjs';\r\nimport { XConfigService, XIsArray, XIsChange, XIsString, XIsUndefined } from '@ng-nest/ui/core';\r\nimport { XKeywordPrefix, XKeywordProperty } from './keyword.property';\r\n\r\n@Directive({\r\n selector: `[${XKeywordPrefix}]`\r\n})\r\nexport class XKeywordDirective extends XKeywordProperty implements OnInit, OnChanges, OnDestroy, AfterViewInit {\r\n private _unSub = new Subject<void>();\r\n\r\n constructor(private renderer: Renderer2, private elementRef: ElementRef, public configService: XConfigService) {\r\n super();\r\n }\r\n\r\n ngOnInit() {\r\n this.setClassMap();\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.setKeyword();\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this._unSub.next();\r\n this._unSub.complete();\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n const { text } = changes;\r\n XIsChange(text) && this.setKeyword();\r\n }\r\n\r\n setKeyword() {\r\n if (XIsUndefined(this.text)) return;\r\n const hele = this.elementRef.nativeElement as HTMLElement;\r\n let textContent = hele.textContent;\r\n if (!textContent) return;\r\n let texts: string[] = [];\r\n if (XIsArray(this.text)) {\r\n texts = this.text as string[];\r\n } else if (XIsString(this.text)) {\r\n texts = [this.text as string];\r\n }\r\n const flags = this.caseSensitive ? 'g' : 'gi';\r\n for (let tx of texts) {\r\n const reg = new RegExp(tx, flags);\r\n textContent = textContent.replace(reg, (p1) => {\r\n return `<span class=\"x-keyword-text\">${p1}</span>`;\r\n });\r\n }\r\n hele.innerHTML = textContent;\r\n }\r\n\r\n setClassMap() {\r\n if (!this.color) {\r\n this.renderer.addClass(this.elementRef.nativeElement, `${XKeywordPrefix}-${this.type}`);\r\n }\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { XKeywordDirective } from './keyword.directive';\r\nimport { XKeywordProperty } from './keyword.property';\r\n\r\n@NgModule({\r\n declarations: [XKeywordDirective, XKeywordProperty],\r\n exports: [XKeywordDirective],\r\n imports: [CommonModule]\r\n})\r\nexport class XKeywordModule {}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|