@ng-nest/ui 13.1.4 → 13.1.7
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/auto-complete/auto-complete.component.d.ts +1 -0
- package/auto-complete/auto-complete.property.d.ts +6 -1
- package/core/config/config.d.ts +6 -0
- package/dialog/dialog.component.d.ts +3 -5
- package/dialog/dialog.property.d.ts +10 -5
- package/dropdown/dropdown-portal.component.d.ts +2 -0
- package/dropdown/dropdown.component.d.ts +1 -0
- package/dropdown/dropdown.module.d.ts +2 -1
- package/dropdown/dropdown.property.d.ts +11 -1
- package/esm2020/auto-complete/auto-complete.component.mjs +25 -10
- package/esm2020/auto-complete/auto-complete.property.mjs +8 -2
- package/esm2020/core/config/config.mjs +1 -1
- package/esm2020/core/interfaces/identify.type.mjs +1 -1
- package/esm2020/description/description.component.mjs +3 -3
- package/esm2020/dialog/dialog-portal.component.mjs +8 -3
- package/esm2020/dialog/dialog-ref.mjs +3 -1
- package/esm2020/dialog/dialog.component.mjs +24 -27
- package/esm2020/dialog/dialog.property.mjs +10 -3
- package/esm2020/dialog/dialog.service.mjs +5 -2
- package/esm2020/dropdown/dropdown-portal.component.mjs +10 -4
- package/esm2020/dropdown/dropdown.component.mjs +8 -1
- package/esm2020/dropdown/dropdown.module.mjs +5 -4
- package/esm2020/dropdown/dropdown.property.mjs +11 -2
- package/esm2020/list/list.component.mjs +4 -4
- package/esm2020/menu/menu.component.mjs +3 -3
- package/esm2020/resizable/resizable.directive.mjs +10 -4
- package/esm2020/table/table-body.component.mjs +14 -7
- package/esm2020/table/table.component.mjs +65 -17
- package/esm2020/table/table.module.mjs +5 -1
- package/esm2020/table/table.property.mjs +44 -3
- package/esm2020/upload/upload.component.mjs +9 -4
- package/esm2020/upload/upload.property.mjs +15 -3
- package/fesm2015/ng-nest-ui-auto-complete.mjs +31 -10
- package/fesm2015/ng-nest-ui-auto-complete.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-core.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-description.mjs +2 -2
- package/fesm2015/ng-nest-ui-description.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-dialog.mjs +46 -32
- package/fesm2015/ng-nest-ui-dialog.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-dropdown.mjs +32 -9
- package/fesm2015/ng-nest-ui-dropdown.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-list.mjs +3 -3
- package/fesm2015/ng-nest-ui-list.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-menu.mjs +2 -2
- package/fesm2015/ng-nest-ui-menu.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-resizable.mjs +9 -3
- package/fesm2015/ng-nest-ui-resizable.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-table.mjs +124 -22
- package/fesm2015/ng-nest-ui-table.mjs.map +1 -1
- package/fesm2015/ng-nest-ui-upload.mjs +22 -5
- package/fesm2015/ng-nest-ui-upload.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-auto-complete.mjs +31 -10
- package/fesm2020/ng-nest-ui-auto-complete.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-core.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-description.mjs +2 -2
- package/fesm2020/ng-nest-ui-description.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-dialog.mjs +45 -31
- package/fesm2020/ng-nest-ui-dialog.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-dropdown.mjs +32 -9
- package/fesm2020/ng-nest-ui-dropdown.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-list.mjs +3 -3
- package/fesm2020/ng-nest-ui-list.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-menu.mjs +2 -2
- package/fesm2020/ng-nest-ui-menu.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-resizable.mjs +9 -3
- package/fesm2020/ng-nest-ui-resizable.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-table.mjs +122 -22
- package/fesm2020/ng-nest-ui-table.mjs.map +1 -1
- package/fesm2020/ng-nest-ui-upload.mjs +22 -5
- package/fesm2020/ng-nest-ui-upload.mjs.map +1 -1
- package/package.json +1 -1
- package/resizable/resizable.directive.d.ts +1 -0
- package/style/core/index.css +3 -0
- package/style/core/index.css.map +1 -1
- package/style/directives/resizable/mixin.scss +5 -0
- package/table/examples/en_US/default/expand/README.md +8 -0
- package/table/examples/zh_CN/default/expand/README.md +8 -0
- package/table/table-body.component.d.ts +1 -0
- package/table/table.component.d.ts +10 -2
- package/table/table.module.d.ts +5 -4
- package/table/table.property.d.ts +60 -5
- package/upload/upload.property.d.ts +16 -1
|
@@ -44,7 +44,7 @@ class XAutoCompleteProperty extends XControlValueAccessor {
|
|
|
44
44
|
}
|
|
45
45
|
}
|
|
46
46
|
/** @nocollapse */ /** @nocollapse */ XAutoCompleteProperty.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: XAutoCompleteProperty, deps: null, target: i0.ɵɵFactoryTarget.Component });
|
|
47
|
-
/** @nocollapse */ /** @nocollapse */ XAutoCompleteProperty.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.2", type: XAutoCompleteProperty, selector: "ng-component", inputs: { data: "data", debounceTime: "debounceTime", placement: "placement", nodeTpl: "nodeTpl", size: "size", bordered: "bordered", caseSensitive: "caseSensitive" }, outputs: { nodeEmit: "nodeEmit" }, usesInheritance: true, ngImport: i0, template: '', isInline: true });
|
|
47
|
+
/** @nocollapse */ /** @nocollapse */ XAutoCompleteProperty.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.2", type: XAutoCompleteProperty, selector: "ng-component", inputs: { data: "data", debounceTime: "debounceTime", placement: "placement", nodeTpl: "nodeTpl", size: "size", bordered: "bordered", caseSensitive: "caseSensitive", onlySelect: "onlySelect" }, outputs: { nodeEmit: "nodeEmit" }, usesInheritance: true, ngImport: i0, template: '', isInline: true });
|
|
48
48
|
__decorate([
|
|
49
49
|
XDataConvert()
|
|
50
50
|
], XAutoCompleteProperty.prototype, "data", void 0);
|
|
@@ -65,6 +65,10 @@ __decorate([
|
|
|
65
65
|
XInputBoolean(),
|
|
66
66
|
XWithConfig(X_CONFIG_NAME, true)
|
|
67
67
|
], XAutoCompleteProperty.prototype, "caseSensitive", void 0);
|
|
68
|
+
__decorate([
|
|
69
|
+
XInputBoolean(),
|
|
70
|
+
XWithConfig(X_CONFIG_NAME, false)
|
|
71
|
+
], XAutoCompleteProperty.prototype, "onlySelect", void 0);
|
|
68
72
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImport: i0, type: XAutoCompleteProperty, decorators: [{
|
|
69
73
|
type: Component,
|
|
70
74
|
args: [{ template: '' }]
|
|
@@ -82,6 +86,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.2", ngImpor
|
|
|
82
86
|
type: Input
|
|
83
87
|
}], caseSensitive: [{
|
|
84
88
|
type: Input
|
|
89
|
+
}], onlySelect: [{
|
|
90
|
+
type: Input
|
|
85
91
|
}], nodeEmit: [{
|
|
86
92
|
type: Output
|
|
87
93
|
}] } });
|
|
@@ -253,6 +259,14 @@ class XAutoCompleteComponent extends XAutoCompleteProperty {
|
|
|
253
259
|
if (this.portalAttached()) {
|
|
254
260
|
(_b = (_a = this.portal) === null || _a === void 0 ? void 0 : _a.overlayRef) === null || _b === void 0 ? void 0 : _b.detach();
|
|
255
261
|
this.active = false;
|
|
262
|
+
if (this.onlySelect) {
|
|
263
|
+
if (!this.nodes.map((x) => x.label).includes(this.value)) {
|
|
264
|
+
this.value = '';
|
|
265
|
+
if (this.onChange)
|
|
266
|
+
this.onChange(this.value);
|
|
267
|
+
this.inputChange.next(this.value);
|
|
268
|
+
}
|
|
269
|
+
}
|
|
256
270
|
this.cdr.detectChanges();
|
|
257
271
|
return true;
|
|
258
272
|
}
|
|
@@ -285,8 +299,11 @@ class XAutoCompleteComponent extends XAutoCompleteProperty {
|
|
|
285
299
|
createPortal() {
|
|
286
300
|
var _a;
|
|
287
301
|
this.nodes.filter((x) => x.selected).map((x) => (x.selected = false));
|
|
288
|
-
if (
|
|
289
|
-
this.searchNodes = this.nodes
|
|
302
|
+
if (XIsFunction(this.data)) {
|
|
303
|
+
this.searchNodes = this.nodes;
|
|
304
|
+
}
|
|
305
|
+
else if (!XIsEmpty(this.value)) {
|
|
306
|
+
this.setSearchNodes(this.value);
|
|
290
307
|
}
|
|
291
308
|
this.box = this.inputCom.inputRef.nativeElement.getBoundingClientRect();
|
|
292
309
|
const config = {
|
|
@@ -336,9 +353,9 @@ class XAutoCompleteComponent extends XAutoCompleteProperty {
|
|
|
336
353
|
}
|
|
337
354
|
onNodeClick(node) {
|
|
338
355
|
node = node;
|
|
339
|
-
this.closeSubject.next();
|
|
340
356
|
if (this.value === node.label) {
|
|
341
357
|
this.nodeEmit.emit(node);
|
|
358
|
+
this.closeSubject.next();
|
|
342
359
|
return;
|
|
343
360
|
}
|
|
344
361
|
this.value = node.label;
|
|
@@ -347,6 +364,7 @@ class XAutoCompleteComponent extends XAutoCompleteProperty {
|
|
|
347
364
|
if (this.onChange)
|
|
348
365
|
this.onChange(this.value);
|
|
349
366
|
this.nodeEmit.emit(node);
|
|
367
|
+
this.closeSubject.next();
|
|
350
368
|
this.cdr.detectChanges();
|
|
351
369
|
}
|
|
352
370
|
setPlacement() {
|
|
@@ -360,6 +378,14 @@ class XAutoCompleteComponent extends XAutoCompleteProperty {
|
|
|
360
378
|
var _a, _b;
|
|
361
379
|
this.portalAttached() && ((_b = (_a = this.portal) === null || _a === void 0 ? void 0 : _a.overlayRef) === null || _b === void 0 ? void 0 : _b.updatePositionStrategy(this.setPlacement()));
|
|
362
380
|
}
|
|
381
|
+
setSearchNodes(value) {
|
|
382
|
+
if (this.caseSensitive) {
|
|
383
|
+
this.searchNodes = this.nodes.filter((x) => x.label.indexOf(value) >= 0);
|
|
384
|
+
}
|
|
385
|
+
else {
|
|
386
|
+
this.searchNodes = this.nodes.filter((x) => x.label.toLowerCase().indexOf(value.toLowerCase()) >= 0);
|
|
387
|
+
}
|
|
388
|
+
}
|
|
363
389
|
modelChange(value) {
|
|
364
390
|
if (this.onChange)
|
|
365
391
|
this.onChange(value);
|
|
@@ -395,12 +421,7 @@ class XAutoCompleteComponent extends XAutoCompleteProperty {
|
|
|
395
421
|
this.closeSubject.next();
|
|
396
422
|
}
|
|
397
423
|
else {
|
|
398
|
-
|
|
399
|
-
this.searchNodes = this.nodes.filter((x) => x.label.indexOf(value) >= 0);
|
|
400
|
-
}
|
|
401
|
-
else {
|
|
402
|
-
this.searchNodes = this.nodes.filter((x) => x.label.toLowerCase().indexOf(value.toLowerCase()) >= 0);
|
|
403
|
-
}
|
|
424
|
+
this.setSearchNodes(value);
|
|
404
425
|
this.dataChange.next(this.searchNodes);
|
|
405
426
|
}
|
|
406
427
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ng-nest-ui-auto-complete.mjs","sources":["../../../../lib/ng-nest/ui/auto-complete/auto-complete.property.ts","../../../../lib/ng-nest/ui/auto-complete/auto-complete-portal.component.ts","../../../../lib/ng-nest/ui/auto-complete/auto-complete-portal.component.html","../../../../lib/ng-nest/ui/auto-complete/auto-complete.component.ts","../../../../lib/ng-nest/ui/auto-complete/auto-complete.component.html","../../../../lib/ng-nest/ui/auto-complete/auto-complete.module.ts","../../../../lib/ng-nest/ui/auto-complete/ng-nest-ui-auto-complete.ts"],"sourcesContent":["import {\r\n XParentIdentityProperty,\r\n XDataConvert,\r\n XData,\r\n XWithConfig,\r\n XPositionTopBottom,\r\n XSize,\r\n XInputBoolean,\r\n XBoolean\r\n} from '@ng-nest/ui/core';\r\nimport { Input, Component, TemplateRef, EventEmitter, Output } from '@angular/core';\r\nimport { XControlValueAccessor, XFormOption } from '@ng-nest/ui/base-form';\r\n\r\n/**\r\n * AutoComplete\r\n * @selector x-auto-complete\r\n * @decorator component\r\n */\r\nexport const XAutoCompletePrefix = 'x-auto-complete';\r\nconst X_CONFIG_NAME = 'autoComplete';\r\n\r\n/**\r\n * AutoComplete Property\r\n */\r\n@Component({ template: '' })\r\nexport class XAutoCompleteProperty extends XControlValueAccessor<any> {\r\n /**\r\n * @zh_CN 节点数据\r\n * @en_US Node data\r\n */\r\n @Input() @XDataConvert() data: XData<XAutoCompleteNode> = [];\r\n /**\r\n * @zh_CN 输入延迟执行时间,ms\r\n * @en_US Enter a delay execution time, ms\r\n */\r\n @Input() @XWithConfig<number>(X_CONFIG_NAME, 200) debounceTime?: number;\r\n /**\r\n * @zh_CN 展示方位\r\n * @en_US Display position\r\n */\r\n @Input() @XWithConfig<XPositionTopBottom>(X_CONFIG_NAME, 'bottom') placement?: XPositionTopBottom;\r\n /**\r\n * @zh_CN 节点模板\r\n * @en_US Node template\r\n */\r\n @Input() nodeTpl?: TemplateRef<any>;\r\n /**\r\n * @zh_CN 尺寸\r\n * @en_US Size\r\n */\r\n @Input() @XWithConfig<XSize>(X_CONFIG_NAME, 'medium') override size!: XSize;\r\n /**\r\n * @zh_CN 显示边框\r\n * @en_US Display Border\r\n */\r\n @Input() @XInputBoolean() @XWithConfig<XBoolean>(X_CONFIG_NAME, true) bordered!: XBoolean;\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 Node click event\r\n */\r\n @Output() nodeEmit = new EventEmitter<XAutoCompleteNode>();\r\n}\r\n\r\n/**\r\n * AutoComplete Option\r\n * @undocument true\r\n */\r\nexport interface XAutoCompleteOption extends XFormOption {\r\n /**\r\n * @zh_CN 节点数据\r\n * @en_US Node data\r\n */\r\n data?: XData<XAutoCompleteNode>;\r\n /**\r\n * @zh_CN 输入延迟执行时间,ms\r\n * @en_US Enter a delay execution time, ms\r\n */\r\n debounceTime?: number;\r\n /**\r\n * @zh_CN 展示方位\r\n * @en_US Display position\r\n */\r\n placement?: XPositionTopBottom;\r\n /**\r\n * @zh_CN 节点模板\r\n * @en_US Node template\r\n */\r\n nodeTpl?: TemplateRef<any>;\r\n /**\r\n * @zh_CN 选择节点事件\r\n * @en_US Node click event\r\n */\r\n nodeClick?: (value: XAutoCompleteNode) => void;\r\n}\r\n\r\n/**\r\n * @zh_CN AutoComplete 数据对象\r\n * @en_US AutoComplete data object\r\n */\r\nexport interface XAutoCompleteNode extends XParentIdentityProperty<XAutoCompleteNode> {}\r\n\r\n/**\r\n * AutoComplete Portal\r\n * @selector x-auto-complete-portal\r\n * @decorator component\r\n */\r\nexport const XAutoCompletePortalPrefix = 'x-auto-complete-portal';\r\n","import {\r\n Component,\r\n ViewEncapsulation,\r\n ChangeDetectionStrategy,\r\n ChangeDetectorRef,\r\n OnInit,\r\n OnDestroy,\r\n Renderer2,\r\n HostBinding,\r\n HostListener,\r\n ViewChild,\r\n TemplateRef\r\n} from '@angular/core';\r\nimport { XAutoCompleteNode, XAutoCompletePortalPrefix } from './auto-complete.property';\r\nimport { Subject } from 'rxjs';\r\nimport { XConnectBaseAnimation, XNumber, XPositionTopBottom } from '@ng-nest/ui/core';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport { XListComponent } from '@ng-nest/ui/list';\r\nimport { XInputComponent } from '@ng-nest/ui/input';\r\n\r\n@Component({\r\n selector: `${XAutoCompletePortalPrefix}`,\r\n templateUrl: './auto-complete-portal.component.html',\r\n styleUrls: ['./auto-complete-portal.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n animations: [XConnectBaseAnimation]\r\n})\r\nexport class XAutoCompletePortalComponent implements OnInit, OnDestroy {\r\n @HostBinding('@x-connect-base-animation') public placement!: XPositionTopBottom;\r\n @HostListener('@x-connect-base-animation.done', ['$event']) done(event: { toState: any }) {\r\n this.animating(false);\r\n event.toState === 'void' && this.destroyPortal();\r\n }\r\n @HostListener('@x-connect-base-animation.start', ['$event']) start() {\r\n this.animating(true);\r\n }\r\n @ViewChild('list') list!: XListComponent;\r\n\r\n data!: XAutoCompleteNode[];\r\n value: any;\r\n valueChange!: Subject<any>;\r\n positionChange!: Subject<any>;\r\n dataChange!: Subject<XAutoCompleteNode[]>;\r\n animating!: Function;\r\n destroyPortal!: Function;\r\n closeSubject!: Subject<void>;\r\n keydownSubject!: Subject<KeyboardEvent>;\r\n nodeEmit!: Function;\r\n multiple: XNumber = 1;\r\n nodeTpl!: TemplateRef<any>;\r\n show: boolean = false;\r\n active: number = -1;\r\n inputCom!: XInputComponent;\r\n private _unSubject = new Subject<void>();\r\n\r\n constructor(public renderer: Renderer2, public cdr: ChangeDetectorRef) {}\r\n\r\n ngOnInit(): void {\r\n this.valueChange.pipe(takeUntil(this._unSubject)).subscribe((x) => {\r\n this.value = x;\r\n this.cdr.detectChanges();\r\n });\r\n this.positionChange.pipe(takeUntil(this._unSubject)).subscribe((x) => {\r\n this.placement = x;\r\n this.cdr.detectChanges();\r\n });\r\n this.dataChange.pipe(takeUntil(this._unSubject)).subscribe((x) => {\r\n this.data = x;\r\n this.cdr.detectChanges();\r\n });\r\n this.closeSubject.pipe(takeUntil(this._unSubject)).subscribe(() => {\r\n this.list.setUnActive(this.active);\r\n });\r\n this.keydownSubject.pipe(takeUntil(this._unSubject)).subscribe((x) => {\r\n this.list.keydown(x);\r\n });\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this._unSubject.next();\r\n this._unSubject.unsubscribe();\r\n }\r\n\r\n stopPropagation(event: Event): void {\r\n event.stopPropagation();\r\n }\r\n\r\n nodeClick(node: XAutoCompleteNode) {\r\n this.nodeEmit(node);\r\n }\r\n\r\n onActive(num: number) {\r\n this.active = num;\r\n }\r\n\r\n onTabOut() {\r\n this.closeSubject.next();\r\n }\r\n}\r\n","<div #autoCompletePortal class=\"x-auto-complete-portal\" tabindex=\"-1\" (click)=\"inputCom.inputFocus(); stopPropagation($event)\">\r\n <x-list\r\n #list\r\n [data]=\"data\"\r\n (nodeClick)=\"nodeClick($event)\"\r\n (keyManagerChange)=\"onActive($event)\"\r\n (keyManagerTabOut)=\"onTabOut()\"\r\n [nodeTpl]=\"nodeTpl\"\r\n [scrollElement]=\"autoCompletePortal\"\r\n ></x-list>\r\n</div>\r\n","import { Subject } from 'rxjs';\r\nimport {\r\n Component,\r\n OnInit,\r\n ViewEncapsulation,\r\n ChangeDetectionStrategy,\r\n ChangeDetectorRef,\r\n Renderer2,\r\n ElementRef,\r\n SimpleChanges,\r\n OnChanges,\r\n ViewContainerRef,\r\n ViewChild\r\n} from '@angular/core';\r\nimport { XAutoCompleteNode, XAutoCompleteProperty, XAutoCompletePrefix } from './auto-complete.property';\r\nimport {\r\n XIsEmpty,\r\n XIsObservable,\r\n XIsChange,\r\n XSetData,\r\n XClearClass,\r\n XConfigService,\r\n XPositionTopBottom,\r\n XIsFunction\r\n} from '@ng-nest/ui/core';\r\nimport { XPortalService, XPortalOverlayRef, XPortalConnectedPosition } from '@ng-nest/ui/portal';\r\nimport { XInputComponent } from '@ng-nest/ui/input';\r\nimport { XAutoCompletePortalComponent } from './auto-complete-portal.component';\r\nimport { Overlay, FlexibleConnectedPositionStrategy, ConnectedOverlayPositionChange, OverlayConfig } from '@angular/cdk/overlay';\r\nimport { debounceTime, distinctUntilChanged, takeUntil } from 'rxjs/operators';\r\nimport { DOWN_ARROW, UP_ARROW, ENTER, MAC_ENTER, ESCAPE } from '@angular/cdk/keycodes';\r\nimport { XValueAccessor } from '@ng-nest/ui/base-form';\r\n\r\n@Component({\r\n selector: `${XAutoCompletePrefix}`,\r\n templateUrl: './auto-complete.component.html',\r\n styleUrls: ['./auto-complete.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n providers: [XValueAccessor(XAutoCompleteComponent)]\r\n})\r\nexport class XAutoCompleteComponent extends XAutoCompleteProperty implements OnInit, OnChanges {\r\n @ViewChild('inputCom', { static: true }) inputCom!: XInputComponent;\r\n @ViewChild('autoComplete', { static: true }) autoComplete!: ElementRef;\r\n\r\n override writeValue(value: any) {\r\n this.value = value;\r\n this.valueChange.next(this.value);\r\n this.cdr.detectChanges();\r\n }\r\n\r\n clearable: boolean = false;\r\n enter: boolean = false;\r\n displayValue: any = '';\r\n nodes: XAutoCompleteNode[] = [];\r\n searchNodes: XAutoCompleteNode[] = [];\r\n cloneNodes!: XAutoCompleteNode[];\r\n portal!: XPortalOverlayRef<XAutoCompletePortalComponent>;\r\n icon: string = '';\r\n iconSpin: boolean = false;\r\n box!: DOMRect;\r\n protalHeight!: number;\r\n maxNodes: number = 6;\r\n protalTobottom: boolean = true;\r\n asyncLoading = false;\r\n animating = false;\r\n\r\n override valueTplContext: { $node: any; $isValue: boolean } = { $node: null, $isValue: true };\r\n valueChange: Subject<any> = new Subject();\r\n positionChange: Subject<any> = new Subject();\r\n dataChange: Subject<XAutoCompleteNode[]> = new Subject();\r\n inputChange: Subject<any> = new Subject();\r\n closeSubject: Subject<void> = new Subject();\r\n keydownSubject: Subject<KeyboardEvent> = new Subject();\r\n private _unSubject = new Subject<void>();\r\n\r\n constructor(\r\n public renderer: Renderer2,\r\n private cdr: ChangeDetectorRef,\r\n private portalService: XPortalService,\r\n private viewContainerRef: ViewContainerRef,\r\n private overlay: Overlay,\r\n public configService: XConfigService\r\n ) {\r\n super();\r\n }\r\n\r\n ngOnInit() {\r\n this.setFlex(this.autoComplete.nativeElement, this.renderer, this.justify, this.align, this.direction);\r\n this.setClassMap();\r\n this.setSubject();\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n const { data } = changes;\r\n XIsChange(data) && this.setData();\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.setPortal();\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this._unSubject.next();\r\n this._unSubject.unsubscribe();\r\n }\r\n\r\n setClassMap() {\r\n XClearClass(this.labelMap);\r\n this.labelMap[`x-text-align-${this.labelAlign}`] = this.labelAlign ? true : false;\r\n }\r\n\r\n setData() {\r\n if (XIsObservable(this.data) || XIsFunction(this.data)) return;\r\n XSetData<XAutoCompleteNode>(this.data, this._unSubject).subscribe((x) => {\r\n this.nodes = x;\r\n this.setPortal();\r\n this.cdr.detectChanges();\r\n });\r\n }\r\n\r\n setSubject() {\r\n this.closeSubject.pipe(takeUntil(this._unSubject)).subscribe(() => {\r\n this.closePortal();\r\n });\r\n this.inputChange.pipe(debounceTime(this.debounceTime as number), distinctUntilChanged(), takeUntil(this._unSubject)).subscribe((x) => {\r\n this.modelChange(x);\r\n });\r\n this.keydownSubject.pipe(takeUntil(this._unSubject)).subscribe((x) => {\r\n const keyCode = x.keyCode;\r\n if (!this.portalAttached() && [DOWN_ARROW, UP_ARROW, ENTER, MAC_ENTER].includes(keyCode)) {\r\n this.inputChange.next(this.value);\r\n }\r\n if (this.portalAttached() && [ESCAPE].includes(keyCode)) {\r\n this.closeSubject.next();\r\n }\r\n });\r\n }\r\n\r\n portalAttached() {\r\n return this.portal?.overlayRef?.hasAttached();\r\n }\r\n\r\n closePortal() {\r\n if (this.portalAttached()) {\r\n this.portal?.overlayRef?.detach();\r\n this.active = false;\r\n this.cdr.detectChanges();\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n destroyPortal() {\r\n this.portal?.overlayRef?.dispose();\r\n }\r\n\r\n showPortal() {\r\n if (XIsEmpty(this.value) || this.disabled || this.iconSpin || this.animating) return;\r\n this.active = true;\r\n if ((XIsObservable(this.data) && this.nodes.length === 0) || XIsFunction(this.data)) {\r\n this.icon = 'fto-loader';\r\n this.iconSpin = true;\r\n this.cdr.detectChanges();\r\n XSetData<XAutoCompleteNode>(this.data, this._unSubject, true, this.value).subscribe((x) => {\r\n this.nodes = x;\r\n this.createPortal();\r\n this.icon = '';\r\n this.iconSpin = false;\r\n this.cdr.detectChanges();\r\n });\r\n } else {\r\n this.createPortal();\r\n }\r\n }\r\n\r\n createPortal() {\r\n this.nodes.filter((x) => x.selected).map((x) => (x.selected = false));\r\n if (!XIsEmpty(this.value)) {\r\n this.searchNodes = this.nodes.filter((x) => x.label.indexOf(this.value) >= 0);\r\n }\r\n this.box = this.inputCom.inputRef.nativeElement.getBoundingClientRect();\r\n const config: OverlayConfig = {\r\n backdropClass: '',\r\n width: this.box.width,\r\n positionStrategy: this.setPlacement(),\r\n scrollStrategy: this.overlay.scrollStrategies.reposition()\r\n };\r\n this.setPosition(config);\r\n this.portal = this.portalService.attach({\r\n content: XAutoCompletePortalComponent,\r\n viewContainerRef: this.viewContainerRef,\r\n overlayConfig: config\r\n });\r\n this.portal.overlayRef\r\n ?.outsidePointerEvents()\r\n .pipe(takeUntil(this._unSubject))\r\n .subscribe(() => {\r\n this.closeSubject.next();\r\n });\r\n this.setInstance();\r\n }\r\n\r\n setPosition(config: OverlayConfig) {\r\n let position = config.positionStrategy as FlexibleConnectedPositionStrategy;\r\n position.positionChanges.pipe(takeUntil(this._unSubject)).subscribe((pos: ConnectedOverlayPositionChange) => {\r\n const place = XPortalConnectedPosition.get(pos.connectionPair) as XPositionTopBottom;\r\n place !== this.placement && this.positionChange.next(place);\r\n });\r\n }\r\n\r\n setInstance() {\r\n let componentRef = this.portal.componentRef;\r\n if (!componentRef) return;\r\n Object.assign(componentRef.instance, {\r\n data: this.searchNodes,\r\n value: this.value,\r\n placement: this.placement,\r\n nodeTpl: this.nodeTpl,\r\n valueChange: this.valueChange,\r\n dataChange: this.dataChange,\r\n positionChange: this.positionChange,\r\n closeSubject: this.closeSubject,\r\n keydownSubject: this.keydownSubject,\r\n inputCom: this.inputCom,\r\n destroyPortal: () => this.destroyPortal(),\r\n nodeEmit: (node: XAutoCompleteNode) => this.onNodeClick(node),\r\n animating: (ing: boolean) => (this.animating = ing)\r\n });\r\n componentRef.changeDetectorRef.detectChanges();\r\n }\r\n\r\n onNodeClick(node: XAutoCompleteNode | XAutoCompleteNode[]) {\r\n node = node as XAutoCompleteNode;\r\n this.closeSubject.next();\r\n if (this.value === node.label) {\r\n this.nodeEmit.emit(node);\r\n return;\r\n }\r\n this.value = node.label;\r\n this.valueTplContext.$node = node;\r\n this.inputCom.inputFocus();\r\n if (this.onChange) this.onChange(this.value);\r\n this.nodeEmit.emit(node);\r\n this.cdr.detectChanges();\r\n }\r\n\r\n setPlacement() {\r\n return this.portalService.setPlacement({\r\n elementRef: this.inputCom.inputRef,\r\n placement: [this.placement as XPositionTopBottom, 'bottom-start', 'bottom-end', 'top-start', 'top-end'],\r\n transformOriginOn: 'x-auto-complete-portal'\r\n });\r\n }\r\n\r\n setPortal() {\r\n this.portalAttached() && this.portal?.overlayRef?.updatePositionStrategy(this.setPlacement());\r\n }\r\n\r\n modelChange(value: string | number) {\r\n if (this.onChange) this.onChange(value);\r\n if (XIsFunction(this.data)) {\r\n if (!this.portalAttached()) {\r\n this.showPortal();\r\n } else {\r\n if (XIsEmpty(value)) {\r\n this.closeSubject.next();\r\n } else {\r\n this.icon = 'fto-loader';\r\n this.iconSpin = true;\r\n this.cdr.detectChanges();\r\n XSetData<XAutoCompleteNode>(this.data, this._unSubject, true, value as any).subscribe((x) => {\r\n this.nodes = x;\r\n this.icon = '';\r\n this.iconSpin = false;\r\n this.dataChange.next(this.nodes);\r\n this.cdr.detectChanges();\r\n });\r\n }\r\n }\r\n return;\r\n }\r\n if (this.nodes) {\r\n if (!this.portalAttached()) {\r\n this.showPortal();\r\n } else {\r\n if (XIsEmpty(value)) {\r\n this.closeSubject.next();\r\n } else {\r\n if (this.caseSensitive) {\r\n this.searchNodes = this.nodes.filter((x) => x.label.indexOf(value) >= 0);\r\n } else {\r\n this.searchNodes = this.nodes.filter((x) => (x.label as string).toLowerCase().indexOf((value as string).toLowerCase()) >= 0);\r\n }\r\n this.dataChange.next(this.searchNodes);\r\n }\r\n }\r\n }\r\n }\r\n\r\n clearEmit() {\r\n this.value = '';\r\n this.displayValue = '';\r\n this.valueTplContext.$node = null;\r\n this.valueChange.next(this.value);\r\n this.modelChange(this.value);\r\n }\r\n\r\n formControlChanges() {\r\n this.setData();\r\n this.ngOnInit();\r\n this.cdr.detectChanges();\r\n }\r\n\r\n onKeydown($event: KeyboardEvent) {\r\n this.keydownSubject.next($event);\r\n }\r\n\r\n onFocus(_event: Event) {}\r\n\r\n onInput(_event: Event) {\r\n this.inputChange.next(this.value);\r\n }\r\n\r\n onBlur(_event: Event) {}\r\n}\r\n","<div #autoComplete class=\"x-auto-complete\">\r\n <div class=\"x-auto-complete-row\">\r\n <x-input\r\n #inputCom\r\n type=\"text\"\r\n [label]=\"label\"\r\n [labelWidth]=\"labelWidth\"\r\n [labelAlign]=\"labelAlign\"\r\n [justify]=\"justify\"\r\n [align]=\"align\"\r\n [direction]=\"direction\"\r\n [disabled]=\"disabled\"\r\n [required]=\"required\"\r\n [icon]=\"icon\"\r\n [iconSpin]=\"iconSpin\"\r\n [placeholder]=\"placeholder\"\r\n [readonly]=\"readonly\"\r\n [clearable]=\"clearable\"\r\n [(ngModel)]=\"value\"\r\n [valueTpl]=\"valueTpl\"\r\n [valueTplContext]=\"valueTplContext\"\r\n [size]=\"size\"\r\n [bordered]=\"bordered\"\r\n [before]=\"before\"\r\n [after]=\"after\"\r\n [pattern]=\"pattern\"\r\n [message]=\"message\"\r\n [pointer]=\"pointer\"\r\n [(active)]=\"active\"\r\n (clearEmit)=\"clearEmit()\"\r\n (xInput)=\"onInput($event)\"\r\n (xKeydown)=\"onKeydown($event)\"\r\n (xFocus)=\"onFocus($event)\"\r\n (xBlur)=\"onBlur($event)\"\r\n (xClick)=\"showPortal()\"\r\n ></x-input>\r\n </div>\r\n</div>\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { XAutoCompleteComponent } from './auto-complete.component';\r\nimport { XInputModule } from '@ng-nest/ui/input';\r\nimport { XPortalModule } from '@ng-nest/ui/portal';\r\nimport { XListModule } from '@ng-nest/ui/list';\r\nimport { XBaseFormModule } from '@ng-nest/ui/base-form';\r\nimport { XAutoCompletePortalComponent } from './auto-complete-portal.component';\r\nimport { XAutoCompleteProperty } from './auto-complete.property';\r\n\r\n@NgModule({\r\n declarations: [XAutoCompleteComponent, XAutoCompletePortalComponent, XAutoCompleteProperty],\r\n exports: [XAutoCompleteComponent, XAutoCompletePortalComponent],\r\n imports: [CommonModule, FormsModule, ReactiveFormsModule, XPortalModule, XInputModule, XListModule, XBaseFormModule]\r\n})\r\nexport class XAutoCompleteModule {}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ng-nest-ui-auto-complete.mjs","sources":["../../../../lib/ng-nest/ui/auto-complete/auto-complete.property.ts","../../../../lib/ng-nest/ui/auto-complete/auto-complete-portal.component.ts","../../../../lib/ng-nest/ui/auto-complete/auto-complete-portal.component.html","../../../../lib/ng-nest/ui/auto-complete/auto-complete.component.ts","../../../../lib/ng-nest/ui/auto-complete/auto-complete.component.html","../../../../lib/ng-nest/ui/auto-complete/auto-complete.module.ts","../../../../lib/ng-nest/ui/auto-complete/ng-nest-ui-auto-complete.ts"],"sourcesContent":["import {\r\n XParentIdentityProperty,\r\n XDataConvert,\r\n XData,\r\n XWithConfig,\r\n XPositionTopBottom,\r\n XSize,\r\n XInputBoolean,\r\n XBoolean\r\n} from '@ng-nest/ui/core';\r\nimport { Input, Component, TemplateRef, EventEmitter, Output } from '@angular/core';\r\nimport { XControlValueAccessor, XFormOption } from '@ng-nest/ui/base-form';\r\n\r\n/**\r\n * AutoComplete\r\n * @selector x-auto-complete\r\n * @decorator component\r\n */\r\nexport const XAutoCompletePrefix = 'x-auto-complete';\r\nconst X_CONFIG_NAME = 'autoComplete';\r\n\r\n/**\r\n * AutoComplete Property\r\n */\r\n@Component({ template: '' })\r\nexport class XAutoCompleteProperty extends XControlValueAccessor<any> {\r\n /**\r\n * @zh_CN 节点数据\r\n * @en_US Node data\r\n */\r\n @Input() @XDataConvert() data: XData<XAutoCompleteNode> = [];\r\n /**\r\n * @zh_CN 输入延迟执行时间,ms\r\n * @en_US Enter a delay execution time, ms\r\n */\r\n @Input() @XWithConfig<number>(X_CONFIG_NAME, 200) debounceTime?: number;\r\n /**\r\n * @zh_CN 展示方位\r\n * @en_US Display position\r\n */\r\n @Input() @XWithConfig<XPositionTopBottom>(X_CONFIG_NAME, 'bottom') placement?: XPositionTopBottom;\r\n /**\r\n * @zh_CN 节点模板\r\n * @en_US Node template\r\n */\r\n @Input() nodeTpl?: TemplateRef<any>;\r\n /**\r\n * @zh_CN 尺寸\r\n * @en_US Size\r\n */\r\n @Input() @XWithConfig<XSize>(X_CONFIG_NAME, 'medium') override size!: XSize;\r\n /**\r\n * @zh_CN 显示边框\r\n * @en_US Display Border\r\n */\r\n @Input() @XInputBoolean() @XWithConfig<XBoolean>(X_CONFIG_NAME, true) bordered!: XBoolean;\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 Can only be the value of choice\r\n */\r\n @Input() @XInputBoolean() @XWithConfig<XBoolean>(X_CONFIG_NAME, false) onlySelect!: XBoolean;\r\n /**\r\n * @zh_CN 选择节点事件\r\n * @en_US Node click event\r\n */\r\n @Output() nodeEmit = new EventEmitter<XAutoCompleteNode>();\r\n}\r\n\r\n/**\r\n * AutoComplete Option\r\n * @undocument true\r\n */\r\nexport interface XAutoCompleteOption extends XFormOption {\r\n /**\r\n * @zh_CN 节点数据\r\n * @en_US Node data\r\n */\r\n data?: XData<XAutoCompleteNode>;\r\n /**\r\n * @zh_CN 输入延迟执行时间,ms\r\n * @en_US Enter a delay execution time, ms\r\n */\r\n debounceTime?: number;\r\n /**\r\n * @zh_CN 展示方位\r\n * @en_US Display position\r\n */\r\n placement?: XPositionTopBottom;\r\n /**\r\n * @zh_CN 节点模板\r\n * @en_US Node template\r\n */\r\n nodeTpl?: TemplateRef<any>;\r\n /**\r\n * @zh_CN 选择节点事件\r\n * @en_US Node click event\r\n */\r\n nodeClick?: (value: XAutoCompleteNode) => void;\r\n}\r\n\r\n/**\r\n * @zh_CN AutoComplete 数据对象\r\n * @en_US AutoComplete data object\r\n */\r\nexport interface XAutoCompleteNode extends XParentIdentityProperty<XAutoCompleteNode> {}\r\n\r\n/**\r\n * AutoComplete Portal\r\n * @selector x-auto-complete-portal\r\n * @decorator component\r\n */\r\nexport const XAutoCompletePortalPrefix = 'x-auto-complete-portal';\r\n","import {\r\n Component,\r\n ViewEncapsulation,\r\n ChangeDetectionStrategy,\r\n ChangeDetectorRef,\r\n OnInit,\r\n OnDestroy,\r\n Renderer2,\r\n HostBinding,\r\n HostListener,\r\n ViewChild,\r\n TemplateRef\r\n} from '@angular/core';\r\nimport { XAutoCompleteNode, XAutoCompletePortalPrefix } from './auto-complete.property';\r\nimport { Subject } from 'rxjs';\r\nimport { XConnectBaseAnimation, XNumber, XPositionTopBottom } from '@ng-nest/ui/core';\r\nimport { takeUntil } from 'rxjs/operators';\r\nimport { XListComponent } from '@ng-nest/ui/list';\r\nimport { XInputComponent } from '@ng-nest/ui/input';\r\n\r\n@Component({\r\n selector: `${XAutoCompletePortalPrefix}`,\r\n templateUrl: './auto-complete-portal.component.html',\r\n styleUrls: ['./auto-complete-portal.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n animations: [XConnectBaseAnimation]\r\n})\r\nexport class XAutoCompletePortalComponent implements OnInit, OnDestroy {\r\n @HostBinding('@x-connect-base-animation') public placement!: XPositionTopBottom;\r\n @HostListener('@x-connect-base-animation.done', ['$event']) done(event: { toState: any }) {\r\n this.animating(false);\r\n event.toState === 'void' && this.destroyPortal();\r\n }\r\n @HostListener('@x-connect-base-animation.start', ['$event']) start() {\r\n this.animating(true);\r\n }\r\n @ViewChild('list') list!: XListComponent;\r\n\r\n data!: XAutoCompleteNode[];\r\n value: any;\r\n valueChange!: Subject<any>;\r\n positionChange!: Subject<any>;\r\n dataChange!: Subject<XAutoCompleteNode[]>;\r\n animating!: Function;\r\n destroyPortal!: Function;\r\n closeSubject!: Subject<void>;\r\n keydownSubject!: Subject<KeyboardEvent>;\r\n nodeEmit!: Function;\r\n multiple: XNumber = 1;\r\n nodeTpl!: TemplateRef<any>;\r\n show: boolean = false;\r\n active: number = -1;\r\n inputCom!: XInputComponent;\r\n private _unSubject = new Subject<void>();\r\n\r\n constructor(public renderer: Renderer2, public cdr: ChangeDetectorRef) {}\r\n\r\n ngOnInit(): void {\r\n this.valueChange.pipe(takeUntil(this._unSubject)).subscribe((x) => {\r\n this.value = x;\r\n this.cdr.detectChanges();\r\n });\r\n this.positionChange.pipe(takeUntil(this._unSubject)).subscribe((x) => {\r\n this.placement = x;\r\n this.cdr.detectChanges();\r\n });\r\n this.dataChange.pipe(takeUntil(this._unSubject)).subscribe((x) => {\r\n this.data = x;\r\n this.cdr.detectChanges();\r\n });\r\n this.closeSubject.pipe(takeUntil(this._unSubject)).subscribe(() => {\r\n this.list.setUnActive(this.active);\r\n });\r\n this.keydownSubject.pipe(takeUntil(this._unSubject)).subscribe((x) => {\r\n this.list.keydown(x);\r\n });\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this._unSubject.next();\r\n this._unSubject.unsubscribe();\r\n }\r\n\r\n stopPropagation(event: Event): void {\r\n event.stopPropagation();\r\n }\r\n\r\n nodeClick(node: XAutoCompleteNode) {\r\n this.nodeEmit(node);\r\n }\r\n\r\n onActive(num: number) {\r\n this.active = num;\r\n }\r\n\r\n onTabOut() {\r\n this.closeSubject.next();\r\n }\r\n}\r\n","<div #autoCompletePortal class=\"x-auto-complete-portal\" tabindex=\"-1\" (click)=\"inputCom.inputFocus(); stopPropagation($event)\">\r\n <x-list\r\n #list\r\n [data]=\"data\"\r\n (nodeClick)=\"nodeClick($event)\"\r\n (keyManagerChange)=\"onActive($event)\"\r\n (keyManagerTabOut)=\"onTabOut()\"\r\n [nodeTpl]=\"nodeTpl\"\r\n [scrollElement]=\"autoCompletePortal\"\r\n ></x-list>\r\n</div>\r\n","import { Subject } from 'rxjs';\r\nimport {\r\n Component,\r\n OnInit,\r\n ViewEncapsulation,\r\n ChangeDetectionStrategy,\r\n ChangeDetectorRef,\r\n Renderer2,\r\n ElementRef,\r\n SimpleChanges,\r\n OnChanges,\r\n ViewContainerRef,\r\n ViewChild\r\n} from '@angular/core';\r\nimport { XAutoCompleteNode, XAutoCompleteProperty, XAutoCompletePrefix } from './auto-complete.property';\r\nimport {\r\n XIsEmpty,\r\n XIsObservable,\r\n XIsChange,\r\n XSetData,\r\n XClearClass,\r\n XConfigService,\r\n XPositionTopBottom,\r\n XIsFunction\r\n} from '@ng-nest/ui/core';\r\nimport { XPortalService, XPortalOverlayRef, XPortalConnectedPosition } from '@ng-nest/ui/portal';\r\nimport { XInputComponent } from '@ng-nest/ui/input';\r\nimport { XAutoCompletePortalComponent } from './auto-complete-portal.component';\r\nimport { Overlay, FlexibleConnectedPositionStrategy, ConnectedOverlayPositionChange, OverlayConfig } from '@angular/cdk/overlay';\r\nimport { debounceTime, distinctUntilChanged, takeUntil } from 'rxjs/operators';\r\nimport { DOWN_ARROW, UP_ARROW, ENTER, MAC_ENTER, ESCAPE } from '@angular/cdk/keycodes';\r\nimport { XValueAccessor } from '@ng-nest/ui/base-form';\r\n\r\n@Component({\r\n selector: `${XAutoCompletePrefix}`,\r\n templateUrl: './auto-complete.component.html',\r\n styleUrls: ['./auto-complete.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n providers: [XValueAccessor(XAutoCompleteComponent)]\r\n})\r\nexport class XAutoCompleteComponent extends XAutoCompleteProperty implements OnInit, OnChanges {\r\n @ViewChild('inputCom', { static: true }) inputCom!: XInputComponent;\r\n @ViewChild('autoComplete', { static: true }) autoComplete!: ElementRef;\r\n\r\n override writeValue(value: any) {\r\n this.value = value;\r\n this.valueChange.next(this.value);\r\n this.cdr.detectChanges();\r\n }\r\n\r\n clearable: boolean = false;\r\n enter: boolean = false;\r\n displayValue: any = '';\r\n nodes: XAutoCompleteNode[] = [];\r\n searchNodes: XAutoCompleteNode[] = [];\r\n cloneNodes!: XAutoCompleteNode[];\r\n portal!: XPortalOverlayRef<XAutoCompletePortalComponent>;\r\n icon: string = '';\r\n iconSpin: boolean = false;\r\n box!: DOMRect;\r\n protalHeight!: number;\r\n maxNodes: number = 6;\r\n protalTobottom: boolean = true;\r\n asyncLoading = false;\r\n animating = false;\r\n\r\n override valueTplContext: { $node: any; $isValue: boolean } = { $node: null, $isValue: true };\r\n valueChange: Subject<any> = new Subject();\r\n positionChange: Subject<any> = new Subject();\r\n dataChange: Subject<XAutoCompleteNode[]> = new Subject();\r\n inputChange: Subject<any> = new Subject();\r\n closeSubject: Subject<void> = new Subject();\r\n keydownSubject: Subject<KeyboardEvent> = new Subject();\r\n private _unSubject = new Subject<void>();\r\n\r\n constructor(\r\n public renderer: Renderer2,\r\n private cdr: ChangeDetectorRef,\r\n private portalService: XPortalService,\r\n private viewContainerRef: ViewContainerRef,\r\n private overlay: Overlay,\r\n public configService: XConfigService\r\n ) {\r\n super();\r\n }\r\n\r\n ngOnInit() {\r\n this.setFlex(this.autoComplete.nativeElement, this.renderer, this.justify, this.align, this.direction);\r\n this.setClassMap();\r\n this.setSubject();\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n const { data } = changes;\r\n XIsChange(data) && this.setData();\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.setPortal();\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this._unSubject.next();\r\n this._unSubject.unsubscribe();\r\n }\r\n\r\n setClassMap() {\r\n XClearClass(this.labelMap);\r\n this.labelMap[`x-text-align-${this.labelAlign}`] = this.labelAlign ? true : false;\r\n }\r\n\r\n setData() {\r\n if (XIsObservable(this.data) || XIsFunction(this.data)) return;\r\n XSetData<XAutoCompleteNode>(this.data, this._unSubject).subscribe((x) => {\r\n this.nodes = x;\r\n this.setPortal();\r\n this.cdr.detectChanges();\r\n });\r\n }\r\n\r\n setSubject() {\r\n this.closeSubject.pipe(takeUntil(this._unSubject)).subscribe(() => {\r\n this.closePortal();\r\n });\r\n this.inputChange.pipe(debounceTime(this.debounceTime as number), distinctUntilChanged(), takeUntil(this._unSubject)).subscribe((x) => {\r\n this.modelChange(x);\r\n });\r\n this.keydownSubject.pipe(takeUntil(this._unSubject)).subscribe((x) => {\r\n const keyCode = x.keyCode;\r\n if (!this.portalAttached() && [DOWN_ARROW, UP_ARROW, ENTER, MAC_ENTER].includes(keyCode)) {\r\n this.inputChange.next(this.value);\r\n }\r\n if (this.portalAttached() && [ESCAPE].includes(keyCode)) {\r\n this.closeSubject.next();\r\n }\r\n });\r\n }\r\n\r\n portalAttached() {\r\n return this.portal?.overlayRef?.hasAttached();\r\n }\r\n\r\n closePortal() {\r\n if (this.portalAttached()) {\r\n this.portal?.overlayRef?.detach();\r\n this.active = false;\r\n if (this.onlySelect) {\r\n if (!this.nodes.map((x) => x.label).includes(this.value)) {\r\n this.value = '';\r\n if (this.onChange) this.onChange(this.value);\r\n this.inputChange.next(this.value);\r\n }\r\n }\r\n this.cdr.detectChanges();\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n destroyPortal() {\r\n this.portal?.overlayRef?.dispose();\r\n }\r\n\r\n showPortal() {\r\n if (XIsEmpty(this.value) || this.disabled || this.iconSpin || this.animating) return;\r\n this.active = true;\r\n if ((XIsObservable(this.data) && this.nodes.length === 0) || XIsFunction(this.data)) {\r\n this.icon = 'fto-loader';\r\n this.iconSpin = true;\r\n this.cdr.detectChanges();\r\n XSetData<XAutoCompleteNode>(this.data, this._unSubject, true, this.value).subscribe((x) => {\r\n this.nodes = x;\r\n this.createPortal();\r\n this.icon = '';\r\n this.iconSpin = false;\r\n this.cdr.detectChanges();\r\n });\r\n } else {\r\n this.createPortal();\r\n }\r\n }\r\n\r\n createPortal() {\r\n this.nodes.filter((x) => x.selected).map((x) => (x.selected = false));\r\n if (XIsFunction(this.data)) {\r\n this.searchNodes = this.nodes;\r\n } else if (!XIsEmpty(this.value)) {\r\n this.setSearchNodes(this.value);\r\n }\r\n this.box = this.inputCom.inputRef.nativeElement.getBoundingClientRect();\r\n const config: OverlayConfig = {\r\n backdropClass: '',\r\n width: this.box.width,\r\n positionStrategy: this.setPlacement(),\r\n scrollStrategy: this.overlay.scrollStrategies.reposition()\r\n };\r\n this.setPosition(config);\r\n this.portal = this.portalService.attach({\r\n content: XAutoCompletePortalComponent,\r\n viewContainerRef: this.viewContainerRef,\r\n overlayConfig: config\r\n });\r\n this.portal.overlayRef\r\n ?.outsidePointerEvents()\r\n .pipe(takeUntil(this._unSubject))\r\n .subscribe(() => {\r\n this.closeSubject.next();\r\n });\r\n this.setInstance();\r\n }\r\n\r\n setPosition(config: OverlayConfig) {\r\n let position = config.positionStrategy as FlexibleConnectedPositionStrategy;\r\n position.positionChanges.pipe(takeUntil(this._unSubject)).subscribe((pos: ConnectedOverlayPositionChange) => {\r\n const place = XPortalConnectedPosition.get(pos.connectionPair) as XPositionTopBottom;\r\n place !== this.placement && this.positionChange.next(place);\r\n });\r\n }\r\n\r\n setInstance() {\r\n let componentRef = this.portal.componentRef;\r\n if (!componentRef) return;\r\n Object.assign(componentRef.instance, {\r\n data: this.searchNodes,\r\n value: this.value,\r\n placement: this.placement,\r\n nodeTpl: this.nodeTpl,\r\n valueChange: this.valueChange,\r\n dataChange: this.dataChange,\r\n positionChange: this.positionChange,\r\n closeSubject: this.closeSubject,\r\n keydownSubject: this.keydownSubject,\r\n inputCom: this.inputCom,\r\n destroyPortal: () => this.destroyPortal(),\r\n nodeEmit: (node: XAutoCompleteNode) => this.onNodeClick(node),\r\n animating: (ing: boolean) => (this.animating = ing)\r\n });\r\n componentRef.changeDetectorRef.detectChanges();\r\n }\r\n\r\n onNodeClick(node: XAutoCompleteNode | XAutoCompleteNode[]) {\r\n node = node as XAutoCompleteNode;\r\n if (this.value === node.label) {\r\n this.nodeEmit.emit(node);\r\n this.closeSubject.next();\r\n return;\r\n }\r\n this.value = node.label;\r\n this.valueTplContext.$node = node;\r\n this.inputCom.inputFocus();\r\n if (this.onChange) this.onChange(this.value);\r\n this.nodeEmit.emit(node);\r\n this.closeSubject.next();\r\n this.cdr.detectChanges();\r\n }\r\n\r\n setPlacement() {\r\n return this.portalService.setPlacement({\r\n elementRef: this.inputCom.inputRef,\r\n placement: [this.placement as XPositionTopBottom, 'bottom-start', 'bottom-end', 'top-start', 'top-end'],\r\n transformOriginOn: 'x-auto-complete-portal'\r\n });\r\n }\r\n\r\n setPortal() {\r\n this.portalAttached() && this.portal?.overlayRef?.updatePositionStrategy(this.setPlacement());\r\n }\r\n\r\n setSearchNodes(value: string | number) {\r\n if (this.caseSensitive) {\r\n this.searchNodes = this.nodes.filter((x) => x.label.indexOf(value) >= 0);\r\n } else {\r\n this.searchNodes = this.nodes.filter((x) => (x.label as string).toLowerCase().indexOf((value as string).toLowerCase()) >= 0);\r\n }\r\n }\r\n\r\n modelChange(value: string | number) {\r\n if (this.onChange) this.onChange(value);\r\n if (XIsFunction(this.data)) {\r\n if (!this.portalAttached()) {\r\n this.showPortal();\r\n } else {\r\n if (XIsEmpty(value)) {\r\n this.closeSubject.next();\r\n } else {\r\n this.icon = 'fto-loader';\r\n this.iconSpin = true;\r\n this.cdr.detectChanges();\r\n XSetData<XAutoCompleteNode>(this.data, this._unSubject, true, value as any).subscribe((x) => {\r\n this.nodes = x;\r\n this.icon = '';\r\n this.iconSpin = false;\r\n this.dataChange.next(this.nodes);\r\n this.cdr.detectChanges();\r\n });\r\n }\r\n }\r\n return;\r\n }\r\n if (this.nodes) {\r\n if (!this.portalAttached()) {\r\n this.showPortal();\r\n } else {\r\n if (XIsEmpty(value)) {\r\n this.closeSubject.next();\r\n } else {\r\n this.setSearchNodes(value);\r\n this.dataChange.next(this.searchNodes);\r\n }\r\n }\r\n }\r\n }\r\n\r\n clearEmit() {\r\n this.value = '';\r\n this.displayValue = '';\r\n this.valueTplContext.$node = null;\r\n this.valueChange.next(this.value);\r\n this.modelChange(this.value);\r\n }\r\n\r\n formControlChanges() {\r\n this.setData();\r\n this.ngOnInit();\r\n this.cdr.detectChanges();\r\n }\r\n\r\n onKeydown($event: KeyboardEvent) {\r\n this.keydownSubject.next($event);\r\n }\r\n\r\n onFocus(_event: Event) {}\r\n\r\n onInput(_event: Event) {\r\n this.inputChange.next(this.value);\r\n }\r\n\r\n onBlur(_event: Event) {}\r\n}\r\n","<div #autoComplete class=\"x-auto-complete\">\r\n <div class=\"x-auto-complete-row\">\r\n <x-input\r\n #inputCom\r\n type=\"text\"\r\n [label]=\"label\"\r\n [labelWidth]=\"labelWidth\"\r\n [labelAlign]=\"labelAlign\"\r\n [justify]=\"justify\"\r\n [align]=\"align\"\r\n [direction]=\"direction\"\r\n [disabled]=\"disabled\"\r\n [required]=\"required\"\r\n [icon]=\"icon\"\r\n [iconSpin]=\"iconSpin\"\r\n [placeholder]=\"placeholder\"\r\n [readonly]=\"readonly\"\r\n [clearable]=\"clearable\"\r\n [(ngModel)]=\"value\"\r\n [valueTpl]=\"valueTpl\"\r\n [valueTplContext]=\"valueTplContext\"\r\n [size]=\"size\"\r\n [bordered]=\"bordered\"\r\n [before]=\"before\"\r\n [after]=\"after\"\r\n [pattern]=\"pattern\"\r\n [message]=\"message\"\r\n [pointer]=\"pointer\"\r\n [(active)]=\"active\"\r\n (clearEmit)=\"clearEmit()\"\r\n (xInput)=\"onInput($event)\"\r\n (xKeydown)=\"onKeydown($event)\"\r\n (xFocus)=\"onFocus($event)\"\r\n (xBlur)=\"onBlur($event)\"\r\n (xClick)=\"showPortal()\"\r\n ></x-input>\r\n </div>\r\n</div>\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { XAutoCompleteComponent } from './auto-complete.component';\r\nimport { XInputModule } from '@ng-nest/ui/input';\r\nimport { XPortalModule } from '@ng-nest/ui/portal';\r\nimport { XListModule } from '@ng-nest/ui/list';\r\nimport { XBaseFormModule } from '@ng-nest/ui/base-form';\r\nimport { XAutoCompletePortalComponent } from './auto-complete-portal.component';\r\nimport { XAutoCompleteProperty } from './auto-complete.property';\r\n\r\n@NgModule({\r\n declarations: [XAutoCompleteComponent, XAutoCompletePortalComponent, XAutoCompleteProperty],\r\n exports: [XAutoCompleteComponent, XAutoCompletePortalComponent],\r\n imports: [CommonModule, FormsModule, ReactiveFormsModule, XPortalModule, XInputModule, XListModule, XBaseFormModule]\r\n})\r\nexport class XAutoCompleteModule {}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1"],"mappings":"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"}
|