@alauda/ui 7.3.2-beta → 7.3.2-beta.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/drawer/drawer.service.mjs +12 -4
- package/esm2022/index.mjs +1 -2
- package/esm2022/table/index.mjs +1 -2
- package/esm2022/table/table-scroll.directive.mjs +2 -3
- package/esm2022/table/table.component.mjs +4 -5
- package/fesm2022/alauda-ui.mjs +24 -220
- package/fesm2022/alauda-ui.mjs.map +1 -1
- package/index.d.ts +0 -1
- package/package.json +1 -1
- package/table/index.d.ts +0 -1
- package/table/table-scroll.directive.d.ts +0 -1
- package/table/table.component.d.ts +1 -2
- package/esm2022/resizable/index.mjs +0 -2
- package/esm2022/resizable/resizable.directive.mjs +0 -161
- package/esm2022/table/table-col-resizable.directive.mjs +0 -50
- package/resizable/index.d.ts +0 -1
- package/resizable/resizable.directive.d.ts +0 -37
- package/table/table-col-resizable.directive.d.ts +0 -15
package/index.d.ts
CHANGED
package/package.json
CHANGED
package/table/index.d.ts
CHANGED
|
@@ -3,7 +3,6 @@ export * from './table.module';
|
|
|
3
3
|
export * from './table-cell.component';
|
|
4
4
|
export * from './table-cell.directive';
|
|
5
5
|
export * from './table-cell-def.directive';
|
|
6
|
-
export { TableColResizableDirective } from './table-col-resizable.directive';
|
|
7
6
|
export * from './table-column-def.directive';
|
|
8
7
|
export * from './table-header-cell.directive';
|
|
9
8
|
export * from './table-header-cell-def.directive';
|
|
@@ -6,7 +6,6 @@ import { TableComponent } from './table.component';
|
|
|
6
6
|
import * as i0 from "@angular/core";
|
|
7
7
|
export declare class TableScrollWrapperDirective {
|
|
8
8
|
auiTableScrollWrapper: string;
|
|
9
|
-
el: ElementRef<any>;
|
|
10
9
|
static ɵfac: i0.ɵɵFactoryDeclaration<TableScrollWrapperDirective, never>;
|
|
11
10
|
static ɵdir: i0.ɵɵDirectiveDeclaration<TableScrollWrapperDirective, "[auiTableScrollWrapper]", never, { "auiTableScrollWrapper": { "alias": "auiTableScrollWrapper"; "required": false; }; }, {}, never, never, true, never>;
|
|
12
11
|
}
|
|
@@ -1,12 +1,11 @@
|
|
|
1
1
|
import { CdkTable } from '@angular/cdk/table';
|
|
2
|
-
import { AfterContentInit,
|
|
2
|
+
import { AfterContentInit, OnDestroy } from '@angular/core';
|
|
3
3
|
import { TablePlaceholderDefDirective, TablePlaceholderOutletDirective } from './table-placeholder.directive';
|
|
4
4
|
import * as i0 from "@angular/core";
|
|
5
5
|
export declare class TableComponent<T> extends CdkTable<T> implements AfterContentInit, OnDestroy {
|
|
6
6
|
enableScrollWrapper: boolean;
|
|
7
7
|
_placeholderOutlet: TablePlaceholderOutletDirective;
|
|
8
8
|
_placeholderDef: TablePlaceholderDefDirective;
|
|
9
|
-
el: ElementRef<any>;
|
|
10
9
|
protected get stickyCssClass(): string;
|
|
11
10
|
protected set stickyCssClass(_: string);
|
|
12
11
|
ngAfterContentInit(): void;
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
export { ResizableDirective } from './resizable.directive';
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvcmVzaXphYmxlL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHVCQUF1QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHsgUmVzaXphYmxlRGlyZWN0aXZlIH0gZnJvbSAnLi9yZXNpemFibGUuZGlyZWN0aXZlJztcbiJdfQ==
|
|
@@ -1,161 +0,0 @@
|
|
|
1
|
-
import { DOCUMENT } from '@angular/common';
|
|
2
|
-
import { Directive, EventEmitter, Inject, Input, Output, } from '@angular/core';
|
|
3
|
-
import { fromEvent } from 'rxjs';
|
|
4
|
-
import * as i0 from "@angular/core";
|
|
5
|
-
export class ResizableDirective {
|
|
6
|
-
renderer2;
|
|
7
|
-
zone;
|
|
8
|
-
doc;
|
|
9
|
-
containerElement;
|
|
10
|
-
minWidth;
|
|
11
|
-
maxWidth;
|
|
12
|
-
resizeStartEvent = new EventEmitter();
|
|
13
|
-
resizingEvent = new EventEmitter();
|
|
14
|
-
resizeEndEvent = new EventEmitter();
|
|
15
|
-
element;
|
|
16
|
-
initialWidth;
|
|
17
|
-
mouseDownScreenX;
|
|
18
|
-
resizeHandle;
|
|
19
|
-
resizeOverlay;
|
|
20
|
-
resizeBar;
|
|
21
|
-
mouseUpSubscription;
|
|
22
|
-
document;
|
|
23
|
-
handleHasUp;
|
|
24
|
-
constructor(element, renderer2, zone, doc) {
|
|
25
|
-
this.renderer2 = renderer2;
|
|
26
|
-
this.zone = zone;
|
|
27
|
-
this.doc = doc;
|
|
28
|
-
this.element = element.nativeElement;
|
|
29
|
-
this.document = this.doc;
|
|
30
|
-
}
|
|
31
|
-
ngAfterViewInit() {
|
|
32
|
-
this.createResizeHandle();
|
|
33
|
-
this.renderer2.listen(this.element, 'mouseover', () => {
|
|
34
|
-
this.handleHasUp = true;
|
|
35
|
-
if (!this.resizeBar) {
|
|
36
|
-
this.renderer2.setStyle(this.resizeHandle, 'opacity', 1);
|
|
37
|
-
}
|
|
38
|
-
});
|
|
39
|
-
this.renderer2.listen(this.element, 'mouseout', () => {
|
|
40
|
-
this.handleHasUp = false;
|
|
41
|
-
this.renderer2.setStyle(this.resizeHandle, 'opacity', 0);
|
|
42
|
-
});
|
|
43
|
-
}
|
|
44
|
-
createResizeHandle() {
|
|
45
|
-
if (!this.resizeHandle) {
|
|
46
|
-
this.resizeHandle = this.renderer2.createElement('div');
|
|
47
|
-
this.renderer2.addClass(this.resizeHandle, 'resize-handle');
|
|
48
|
-
this.renderer2.listen(this.resizeHandle, 'click', (e) => e.stopPropagation());
|
|
49
|
-
this.renderer2.listen(this.resizeHandle, 'mousedown', this.onMousedown.bind(this));
|
|
50
|
-
this.renderer2.appendChild(this.element, this.resizeHandle);
|
|
51
|
-
}
|
|
52
|
-
}
|
|
53
|
-
createResizeOverlay() {
|
|
54
|
-
this.resizeOverlay = this.renderer2.createElement('div');
|
|
55
|
-
this.renderer2.addClass(this.resizeOverlay, 'resize-overlay');
|
|
56
|
-
this.renderer2.appendChild(this.containerElement, this.resizeOverlay);
|
|
57
|
-
}
|
|
58
|
-
createResizeBar() {
|
|
59
|
-
this.resizeBar = this.renderer2.createElement('div');
|
|
60
|
-
this.renderer2.addClass(this.resizeBar, 'resize-bar');
|
|
61
|
-
this.renderer2.setStyle(this.resizeBar, 'left', this.element.clientWidth + this.getOffset() + 'px');
|
|
62
|
-
this.renderer2.appendChild(this.containerElement, this.resizeBar);
|
|
63
|
-
}
|
|
64
|
-
onMousedown(event) {
|
|
65
|
-
event.preventDefault();
|
|
66
|
-
event.stopPropagation();
|
|
67
|
-
this.renderer2.setStyle(this.resizeHandle, 'opacity', 0);
|
|
68
|
-
this.initialWidth = this.element.clientWidth;
|
|
69
|
-
this.resizeStartEvent.emit(this.initialWidth);
|
|
70
|
-
this.mouseDownScreenX = event.clientX;
|
|
71
|
-
this.createResizeOverlay();
|
|
72
|
-
this.createResizeBar();
|
|
73
|
-
this.mouseUpSubscription = fromEvent(document, 'mouseup').subscribe(ev => this.onMouseup(ev));
|
|
74
|
-
this.zone.runOutsideAngular(() => {
|
|
75
|
-
this.document.addEventListener('mousemove', this.move);
|
|
76
|
-
});
|
|
77
|
-
}
|
|
78
|
-
onMouseup(event) {
|
|
79
|
-
this.handleHasUp &&
|
|
80
|
-
this.renderer2.setStyle(this.resizeHandle, 'opacity', 1);
|
|
81
|
-
const movementX = event.clientX - this.mouseDownScreenX;
|
|
82
|
-
const newWidth = this.initialWidth + movementX;
|
|
83
|
-
const finalWidth = this.getFinalWidth(newWidth);
|
|
84
|
-
this.renderer2.removeChild(this.element, this.resizeOverlay);
|
|
85
|
-
this.resizeOverlay = null;
|
|
86
|
-
this.renderer2.removeChild(this.containerElement, this.resizeBar);
|
|
87
|
-
this.resizeBar = null;
|
|
88
|
-
this.resizeEndEvent.emit(finalWidth);
|
|
89
|
-
if (this.mouseUpSubscription && !this.mouseUpSubscription.closed) {
|
|
90
|
-
this._destroySubscription();
|
|
91
|
-
}
|
|
92
|
-
this.document.removeEventListener('mousemove', this.move);
|
|
93
|
-
}
|
|
94
|
-
move = (event) => {
|
|
95
|
-
if (!this.resizeBar) {
|
|
96
|
-
return;
|
|
97
|
-
}
|
|
98
|
-
const movementX = event.clientX - this.mouseDownScreenX;
|
|
99
|
-
const newWidth = this.initialWidth + movementX;
|
|
100
|
-
const finalWidth = this.getFinalWidth(newWidth);
|
|
101
|
-
this.renderer2.setStyle(this.resizeBar, 'left', `${finalWidth + this.getOffset()}px`);
|
|
102
|
-
this.resizingEvent.emit(finalWidth);
|
|
103
|
-
};
|
|
104
|
-
getFinalWidth(newWidth) {
|
|
105
|
-
const _max = this.containerElement.clientWidth - this.getOffset();
|
|
106
|
-
const minWidth = this.handleWidth(this.minWidth || this.getOffset());
|
|
107
|
-
const maxWidth = this.handleWidth(this.maxWidth || _max);
|
|
108
|
-
const overMinWidth = !minWidth || newWidth >= minWidth;
|
|
109
|
-
const underMaxWidth = !maxWidth || newWidth <= maxWidth;
|
|
110
|
-
return overMinWidth ? (underMaxWidth ? newWidth : maxWidth) : minWidth;
|
|
111
|
-
}
|
|
112
|
-
getOffset() {
|
|
113
|
-
return (this.element.getBoundingClientRect().left -
|
|
114
|
-
this.containerElement.getBoundingClientRect().left -
|
|
115
|
-
2);
|
|
116
|
-
}
|
|
117
|
-
handleWidth(width) {
|
|
118
|
-
if (!width) {
|
|
119
|
-
return;
|
|
120
|
-
}
|
|
121
|
-
if (typeof width === 'number') {
|
|
122
|
-
return width;
|
|
123
|
-
}
|
|
124
|
-
if (width.includes('%')) {
|
|
125
|
-
const tableWidth = this.containerElement.clientWidth;
|
|
126
|
-
return (tableWidth * parseInt(width, 10)) / 100;
|
|
127
|
-
}
|
|
128
|
-
return parseInt(width.replace(/\D+/, ''), 10);
|
|
129
|
-
}
|
|
130
|
-
_destroySubscription() {
|
|
131
|
-
if (this.mouseUpSubscription) {
|
|
132
|
-
this.mouseUpSubscription.unsubscribe();
|
|
133
|
-
this.mouseUpSubscription = undefined;
|
|
134
|
-
}
|
|
135
|
-
}
|
|
136
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.3", ngImport: i0, type: ResizableDirective, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }, { token: i0.NgZone }, { token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Directive });
|
|
137
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.3", type: ResizableDirective, isStandalone: true, selector: "[auiResizable]", inputs: { containerElement: "containerElement", minWidth: "minWidth", maxWidth: "maxWidth" }, outputs: { resizeStartEvent: "resizeStartEvent", resizingEvent: "resizingEvent", resizeEndEvent: "resizeEndEvent" }, ngImport: i0 });
|
|
138
|
-
}
|
|
139
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.3", ngImport: i0, type: ResizableDirective, decorators: [{
|
|
140
|
-
type: Directive,
|
|
141
|
-
args: [{
|
|
142
|
-
selector: '[auiResizable]',
|
|
143
|
-
standalone: true,
|
|
144
|
-
}]
|
|
145
|
-
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.Renderer2 }, { type: i0.NgZone }, { type: Document, decorators: [{
|
|
146
|
-
type: Inject,
|
|
147
|
-
args: [DOCUMENT]
|
|
148
|
-
}] }]; }, propDecorators: { containerElement: [{
|
|
149
|
-
type: Input
|
|
150
|
-
}], minWidth: [{
|
|
151
|
-
type: Input
|
|
152
|
-
}], maxWidth: [{
|
|
153
|
-
type: Input
|
|
154
|
-
}], resizeStartEvent: [{
|
|
155
|
-
type: Output
|
|
156
|
-
}], resizingEvent: [{
|
|
157
|
-
type: Output
|
|
158
|
-
}], resizeEndEvent: [{
|
|
159
|
-
type: Output
|
|
160
|
-
}] } });
|
|
161
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzaXphYmxlLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3NyYy9yZXNpemFibGUvcmVzaXphYmxlLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDM0MsT0FBTyxFQUVMLFNBQVMsRUFFVCxZQUFZLEVBQ1osTUFBTSxFQUNOLEtBQUssRUFFTCxNQUFNLEdBRVAsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFNBQVMsRUFBZ0IsTUFBTSxNQUFNLENBQUM7O0FBVS9DLE1BQU0sT0FBTyxrQkFBa0I7SUErQmxCO0lBQ1E7SUFFQTtJQWhDbkIsZ0JBQWdCLENBQVU7SUFHMUIsUUFBUSxDQUFTO0lBR2pCLFFBQVEsQ0FBUztJQUdqQixnQkFBZ0IsR0FBRyxJQUFJLFlBQVksRUFBVSxDQUFDO0lBRzlDLGFBQWEsR0FBRyxJQUFJLFlBQVksRUFBVSxDQUFDO0lBRzNDLGNBQWMsR0FBRyxJQUFJLFlBQVksRUFBVSxDQUFDO0lBRTVDLE9BQU8sQ0FBYztJQUNyQixZQUFZLENBQVM7SUFDckIsZ0JBQWdCLENBQVM7SUFDekIsWUFBWSxDQUFjO0lBQzFCLGFBQWEsQ0FBYztJQUMzQixTQUFTLENBQWM7SUFDdkIsbUJBQW1CLENBQWU7SUFDbEMsUUFBUSxDQUFXO0lBQ1gsV0FBVyxDQUFVO0lBRTdCLFlBQ0UsT0FBbUIsRUFDVixTQUFvQixFQUNaLElBQVksRUFFWixHQUFhO1FBSHJCLGNBQVMsR0FBVCxTQUFTLENBQVc7UUFDWixTQUFJLEdBQUosSUFBSSxDQUFRO1FBRVosUUFBRyxHQUFILEdBQUcsQ0FBVTtRQUU5QixJQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQyxhQUFhLENBQUM7UUFDckMsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDO0lBQzNCLENBQUM7SUFFRCxlQUFlO1FBQ2Is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QUFDO1NBQ2pEO1FBQ0QsT0FBTyxRQUFRLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDaEQsQ0FBQztJQUVPLG9CQUFvQjtRQUMxQixJQUFJLElBQUksQ0FBQyxtQkFBbUIsRUFBRTtZQUM1QixJQUFJLENBQUMsbUJBQW1CLENBQUMsV0FBVyxFQUFFLENBQUM7WUFDdkMsSUFBSSxDQUFDLG1CQUFtQixHQUFHLFNBQVMsQ0FBQztTQUN0QztJQUNILENBQUM7dUdBOUxVLGtCQUFrQiwyRkFpQ25CLFFBQVE7MkZBakNQLGtCQUFrQjs7MkZBQWxCLGtCQUFrQjtrQkFKOUIsU0FBUzttQkFBQztvQkFDVCxRQUFRLEVBQUUsZ0JBQWdCO29CQUMxQixVQUFVLEVBQUUsSUFBSTtpQkFDakI7OzBCQWtDSSxNQUFNOzJCQUFDLFFBQVE7NENBL0JsQixnQkFBZ0I7c0JBRGYsS0FBSztnQkFJTixRQUFRO3NCQURQLEtBQUs7Z0JBSU4sUUFBUTtzQkFEUCxLQUFLO2dCQUlOLGdCQUFnQjtzQkFEZixNQUFNO2dCQUlQLGFBQWE7c0JBRFosTUFBTTtnQkFJUCxjQUFjO3NCQURiLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBET0NVTUVOVCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICBBZnRlclZpZXdJbml0LFxuICBEaXJlY3RpdmUsXG4gIEVsZW1lbnRSZWYsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5qZWN0LFxuICBJbnB1dCxcbiAgTmdab25lLFxuICBPdXRwdXQsXG4gIFJlbmRlcmVyMixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBmcm9tRXZlbnQsIFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuXG4vKipcbiAqIOS9v+eUqOatpOaMh+S7pOmcgOimgeW8leWFpXJlc2l6YWJsZS5zY3NzXG4gKiDlm6DkuLrlj4LogIPnur/mmK/ln7rkuo5hYnNvbHV0ZeWumuS9jeeahO+8jOaJgOS7pemcgOimgeWcqOmihOacn+eahOWcsOaWueWKoOS4inJlbGF0aXZl77yI5LiN6Ieq5Yqo5Yqg5piv5Li65LqG6YG/5YWN5L+u5pS55Lia5Yqh5biD5bGA6ICM5a+86Ie05L2/55So6ICF5Ye6546w5oSP5aSW55qE5byC5bi477yJXG4gKi9cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1thdWlSZXNpemFibGVdJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbn0pXG5leHBvcnQgY2xhc3MgUmVzaXphYmxlRGlyZWN0aXZlIGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCB7XG4gIEBJbnB1dCgpXG4gIGNvbnRhaW5lckVsZW1lbnQ6IEVsZW1lbnQ7IC8vIOimgeaPkuWFpeWPguiAg+e6v+eahOWuueWZqOWFg+e0oFxuXG4gIEBJbnB1dCgpXG4gIG1pbldpZHRoOiBzdHJpbmc7XG5cbiAgQElucHV0KClcbiAgbWF4V2lkdGg6IHN0cmluZztcblxuICBAT3V0cHV0KClcbiAgcmVzaXplU3RhcnRFdmVudCA9IG5ldyBFdmVudEVtaXR0ZXI8bnVtYmVyPigpO1xuXG4gIEBPdXRwdXQoKVxuICByZXNpemluZ0V2ZW50ID0gbmV3IEV2ZW50RW1pdHRlcjxudW1iZXI+KCk7XG5cbiAgQE91dHB1dCgpXG4gIHJlc2l6ZUVuZEV2ZW50ID0gbmV3IEV2ZW50RW1pdHRlcjxudW1iZXI+KCk7XG5cbiAgZWxlbWVudDogSFRNTEVsZW1lbnQ7XG4gIGluaXRpYWxXaWR0aDogbnVtYmVyO1xuICBtb3VzZURvd25TY3JlZW5YOiBudW1iZXI7XG4gIHJlc2l6ZUhhbmRsZTogSFRNTEVsZW1lbnQ7IC8vIOWcqOaMh+S7pOS9nOeUqOeahOWFg+e0oOS4iuaPkuWFpeW8leWvvOWIhuWJsue6v++8jGhvdmVy5Yiw5L2c55So5YWD57Sg5ZCO5Ye6546w77yM5ouW5Yqo5LqL5Lu255qE5a6/5Li7XG4gIHJlc2l6ZU92ZXJsYXk6IEhUTUxFbGVtZW50OyAvLyDlnKjmi5bliqjml7bliJvlu7rlh7rkuIDkuKrpgI/mmI7nmoTpga7nvanlsYLvvIznlKjku6XpvKDmoIfmoLflvI/lnKjmi5bliqjml7bmgLvmmK/mi5bliqjmoLflvI9cbiAgcmVzaXplQmFyOiBIVE1MRWxlbWVudDsgLy8g5ouW5Yqo5pe255qE5Y+C6ICD57q/77yM6K+l5Y+C6ICD57q/5Lya6KKr5o+S5YWl5YiwIGNvbnRhaW5lckVsZW1lbnRcbiAgbW91c2VVcFN1YnNjcmlwdGlvbjogU3Vic2NyaXB0aW9uO1xuICBkb2N1bWVudDogRG9jdW1lbnQ7XG4gIHByaXZhdGUgaGFuZGxlSGFzVXA6IGJvb2xlYW47XG5cbiAgY29uc3RydWN0b3IoXG4gICAgZWxlbWVudDogRWxlbWVudFJlZixcbiAgICByZWFkb25seSByZW5kZXJlcjI6IFJlbmRlcmVyMixcbiAgICBwcml2YXRlIHJlYWRvbmx5IHpvbmU6IE5nWm9uZSxcbiAgICBASW5qZWN0KERPQ1VNRU5UKVxuICAgIHByaXZhdGUgcmVhZG9ubHkgZG9jOiBEb2N1bWVudCxcbiAgKSB7XG4gICAgdGhpcy5lbGVtZW50ID0gZWxlbWVudC5uYXRpdmVFbGVtZW50O1xuICAgIHRoaXMuZG9jdW1lbnQgPSB0aGlzLmRvYztcbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICB0aGlzLmNyZWF0ZVJlc2l6ZUhhbmRsZSgpO1xuXG4gICAgdGhpcy5yZW5kZXJlcjIubGlzdGVuKHRoaXMuZWxlbWVudCwgJ21vdXNlb3ZlcicsICgpID0+IHtcbiAgICAgIHRoaXMuaGFuZGxlSGFzVXAgPSB0cnVlO1xuICAgICAgaWYgKCF0aGlzLnJlc2l6ZUJhcikge1xuICAgICAgICB0aGlzLnJlbmRlcmVyMi5zZXRTdHlsZSh0aGlzLnJlc2l6ZUhhbmRsZSwgJ29wYWNpdHknLCAxKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICB0aGlzLnJlbmRlcmVyMi5saXN0ZW4odGhpcy5lbGVtZW50LCAnbW91c2VvdXQnLCAoKSA9PiB7XG4gICAgICB0aGlzLmhhbmRsZUhhc1VwID0gZmFsc2U7XG4gICAgICB0aGlzLnJlbmRlcmVyMi5zZXRTdHlsZSh0aGlzLnJlc2l6ZUhhbmRsZSwgJ29wYWNpdHknLCAwKTtcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgY3JlYXRlUmVzaXplSGFuZGxlKCkge1xuICAgIGlmICghdGhpcy5yZXNpemVIYW5kbGUpIHtcbiAgICAgIHRoaXMucmVzaXplSGFuZGxlID0gdGhpcy5yZW5kZXJlcjIuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XG4gICAgICB0aGlzLnJlbmRlcmVyMi5hZGRDbGFzcyh0aGlzLnJlc2l6ZUhhbmRsZSwgJ3Jlc2l6ZS1oYW5kbGUnKTtcblxuICAgICAgdGhpcy5yZW5kZXJlcjIubGlzdGVuKHRoaXMucmVzaXplSGFuZGxlLCAnY2xpY2snLCAoZTogRXZlbnQpID0+XG4gICAgICAgIGUuc3RvcFByb3BhZ2F0aW9uKCksXG4gICAgICApO1xuICAgICAgdGhpcy5yZW5kZXJlcjIubGlzdGVuKFxuICAgICAgICB0aGlzLnJlc2l6ZUhhbmRsZSxcbiAgICAgICAgJ21vdXNlZG93bicsXG4gICAgICAgIHRoaXMub25Nb3VzZWRvd24uYmluZCh0aGlzKSxcbiAgICAgICk7XG5cbiAgICAgIHRoaXMucmVuZGVyZXIyLmFwcGVuZENoaWxkKHRoaXMuZWxlbWVudCwgdGhpcy5yZXNpemVIYW5kbGUpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgY3JlYXRlUmVzaXplT3ZlcmxheSgpIHtcbiAgICB0aGlzLnJlc2l6ZU92ZXJsYXkgPSB0aGlzLnJlbmRlcmVyMi5jcmVhdGVFbGVtZW50KCdkaXYnKTtcbiAgICB0aGlzLnJlbmRlcmVyMi5hZGRDbGFzcyh0aGlzLnJlc2l6ZU92ZXJsYXksICdyZXNpemUtb3ZlcmxheScpO1xuICAgIHRoaXMucmVuZGVyZXIyLmFwcGVuZENoaWxkKHRoaXMuY29udGFpbmVyRWxlbWVudCwgdGhpcy5yZXNpemVPdmVybGF5KTtcbiAgfVxuXG4gIHByaXZhdGUgY3JlYXRlUmVzaXplQmFyKCkge1xuICAgIHRoaXMucmVzaXplQmFyID0gdGhpcy5yZW5kZXJlcjIuY3JlYXRlRWxlbWVudCgnZGl2Jyk7XG4gICAgdGhpcy5yZW5kZXJlcjIuYWRkQ2xhc3ModGhpcy5yZXNpemVCYXIsICdyZXNpemUtYmFyJyk7XG4gICAgdGhpcy5yZW5kZXJlcjIuc2V0U3R5bGUoXG4gICAgICB0aGlzLnJlc2l6ZUJhcixcbiAgICAgICdsZWZ0JyxcbiAgICAgIHRoaXMuZWxlbWVudC5jbGllbnRXaWR0aCArIHRoaXMuZ2V0T2Zmc2V0KCkgKyAncHgnLFxuICAgICk7XG4gICAgdGhpcy5yZW5kZXJlcjIuYXBwZW5kQ2hpbGQodGhpcy5jb250YWluZXJFbGVtZW50LCB0aGlzLnJlc2l6ZUJhcik7XG4gIH1cblxuICBvbk1vdXNlZG93bihldmVudDogTW91c2VFdmVudCk6IHZvaWQge1xuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG5cbiAgICAvLyDpgb/lhY3kuKTmnaHnur/kuI3lr7npvZBcbiAgICB0aGlzLnJlbmRlcmVyMi5zZXRTdHlsZSh0aGlzLnJlc2l6ZUhhbmRsZSwgJ29wYWNpdHknLCAwKTtcblxuICAgIHRoaXMuaW5pdGlhbFdpZHRoID0gdGhpcy5lbGVtZW50LmNsaWVudFdpZHRoO1xuICAgIHRoaXMucmVzaXplU3RhcnRFdmVudC5lbWl0KHRoaXMuaW5pdGlhbFdpZHRoKTtcbiAgICB0aGlzLm1vdXNlRG93blNjcmVlblggPSBldmVudC5jbGllbnRYO1xuICAgIHRoaXMuY3JlYXRlUmVzaXplT3ZlcmxheSgpO1xuICAgIHRoaXMuY3JlYXRlUmVzaXplQmFyKCk7XG5cbiAgICB0aGlzLm1vdXNlVXBTdWJzY3JpcHRpb24gPSBmcm9tRXZlbnQ8TW91c2VFdmVudD4oXG4gICAgICBkb2N1bWVudCxcbiAgICAgICdtb3VzZXVwJyxcbiAgICApLnN1YnNjcmliZShldiA9PiB0aGlzLm9uTW91c2V1cChldikpO1xuXG4gICAgdGhpcy56b25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHtcbiAgICAgIHRoaXMuZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignbW91c2Vtb3ZlJywgdGhpcy5tb3ZlKTtcbiAgICB9KTtcbiAgfVxuXG4gIG9uTW91c2V1cChldmVudDogTW91c2VFdmVudCk6IHZvaWQge1xuICAgIHRoaXMuaGFuZGxlSGFzVXAgJiZcbiAgICAgIHRoaXMucmVuZGVyZXIyLnNldFN0eWxlKHRoaXMucmVzaXplSGFuZGxlLCAnb3BhY2l0eScsIDEpO1xuXG4gICAgY29uc3QgbW92ZW1lbnRYID0gZXZlbnQuY2xpZW50WCAtIHRoaXMubW91c2VEb3duU2NyZWVuWDtcbiAgICBjb25zdCBuZXdXaWR0aCA9IHRoaXMuaW5pdGlhbFdpZHRoICsgbW92ZW1lbnRYO1xuICAgIGNvbnN0IGZpbmFsV2lkdGggPSB0aGlzLmdldEZpbmFsV2lkdGgobmV3V2lkdGgpO1xuXG4gICAgdGhpcy5yZW5kZXJlcjIucmVtb3ZlQ2hpbGQodGhpcy5lbGVtZW50LCB0aGlzLnJlc2l6ZU92ZXJsYXkpO1xuICAgIHRoaXMucmVzaXplT3ZlcmxheSA9IG51bGw7XG4gICAgdGhpcy5yZW5kZXJlcjIucmVtb3ZlQ2hpbGQodGhpcy5jb250YWluZXJFbGVtZW50LCB0aGlzLnJlc2l6ZUJhcik7XG4gICAgdGhpcy5yZXNpemVCYXIgPSBudWxsO1xuXG4gICAgdGhpcy5yZXNpemVFbmRFdmVudC5lbWl0KGZpbmFsV2lkdGgpO1xuXG4gICAgaWYgKHRoaXMubW91c2VVcFN1YnNjcmlwdGlvbiAmJiAhdGhpcy5tb3VzZVVwU3Vic2NyaXB0aW9uLmNsb3NlZCkge1xuICAgICAgdGhpcy5fZGVzdHJveVN1YnNjcmlwdGlvbigpO1xuICAgIH1cblxuICAgIHRoaXMuZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcignbW91c2Vtb3ZlJywgdGhpcy5tb3ZlKTtcbiAgfVxuXG4gIG1vdmUgPSAoZXZlbnQ6IE1vdXNlRXZlbnQpID0+IHtcbiAgICBpZiAoIXRoaXMucmVzaXplQmFyKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnN0IG1vdmVtZW50WCA9IGV2ZW50LmNsaWVudFggLSB0aGlzLm1vdXNlRG93blNjcmVlblg7XG4gICAgY29uc3QgbmV3V2lkdGggPSB0aGlzLmluaXRpYWxXaWR0aCArIG1vdmVtZW50WDtcblxuICAgIGNvbnN0IGZpbmFsV2lkdGggPSB0aGlzLmdldEZpbmFsV2lkdGgobmV3V2lkdGgpO1xuICAgIHRoaXMucmVuZGVyZXIyLnNldFN0eWxlKFxuICAgICAgdGhpcy5yZXNpemVCYXIsXG4gICAgICAnbGVmdCcsXG4gICAgICBgJHtmaW5hbFdpZHRoICsgdGhpcy5nZXRPZmZzZXQoKX1weGAsXG4gICAgKTtcbiAgICB0aGlzLnJlc2l6aW5nRXZlbnQuZW1pdChmaW5hbFdpZHRoKTtcbiAgfTtcblxuICBwcml2YXRlIGdldEZpbmFsV2lkdGgobmV3V2lkdGg6IG51bWJlcik6IG51bWJlciB7XG4gICAgLy8g5LiN6IO96LaF5Ye66L6555WMXG4gICAgY29uc3QgX21heCA9IHRoaXMuY29udGFpbmVyRWxlbWVudC5jbGllbnRXaWR0aCAtIHRoaXMuZ2V0T2Zmc2V0KCk7XG4gICAgY29uc3QgbWluV2lkdGggPSB0aGlzLmhhbmRsZVdpZHRoKHRoaXMubWluV2lkdGggfHwgdGhpcy5nZXRPZmZzZXQoKSk7XG5cbiAgICBjb25zdCBtYXhXaWR0aCA9IHRoaXMuaGFuZGxlV2lkdGgodGhpcy5tYXhXaWR0aCB8fCBfbWF4KTtcbiAgICBjb25zdCBvdmVyTWluV2lkdGggPSAhbWluV2lkdGggfHwgbmV3V2lkdGggPj0gbWluV2lkdGg7XG4gICAgY29uc3QgdW5kZXJNYXhXaWR0aCA9ICFtYXhXaWR0aCB8fCBuZXdXaWR0aCA8PSBtYXhXaWR0aDtcblxuICAgIHJldHVybiBvdmVyTWluV2lkdGggPyAodW5kZXJNYXhXaWR0aCA/IG5ld1dpZHRoIDogbWF4V2lkdGgpIDogbWluV2lkdGg7XG4gIH1cblxuICBwcml2YXRlIGdldE9mZnNldCgpIHtcbiAgICByZXR1cm4gKFxuICAgICAgdGhpcy5lbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLmxlZnQgLVxuICAgICAgdGhpcy5jb250YWluZXJFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLmxlZnQgLVxuICAgICAgMiAvLyAyIOaYr3Jlc2l6ZUJhcueahOWuveW6plxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIGhhbmRsZVdpZHRoKHdpZHRoOiBzdHJpbmcgfCBudW1iZXIpIHtcbiAgICBpZiAoIXdpZHRoKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGlmICh0eXBlb2Ygd2lkdGggPT09ICdudW1iZXInKSB7XG4gICAgICByZXR1cm4gd2lkdGg7XG4gICAgfVxuICAgIGlmICh3aWR0aC5pbmNsdWRlcygnJScpKSB7XG4gICAgICBjb25zdCB0YWJsZVdpZHRoID0gdGhpcy5jb250YWluZXJFbGVtZW50LmNsaWVudFdpZHRoO1xuICAgICAgcmV0dXJuICh0YWJsZVdpZHRoICogcGFyc2VJbnQod2lkdGgsIDEwKSkgLyAxMDA7XG4gICAgfVxuICAgIHJldHVybiBwYXJzZUludCh3aWR0aC5yZXBsYWNlKC9cXEQrLywgJycpLCAxMCk7XG4gIH1cblxuICBwcml2YXRlIF9kZXN0cm95U3Vic2NyaXB0aW9uKCkge1xuICAgIGlmICh0aGlzLm1vdXNlVXBTdWJzY3JpcHRpb24pIHtcbiAgICAgIHRoaXMubW91c2VVcFN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgICAgdGhpcy5tb3VzZVVwU3Vic2NyaXB0aW9uID0gdW5kZWZpbmVkO1xuICAgIH1cbiAgfVxufVxuIl19
|
|
@@ -1,50 +0,0 @@
|
|
|
1
|
-
import { Directive, inject, Input } from '@angular/core';
|
|
2
|
-
import { ResizableDirective } from '../resizable';
|
|
3
|
-
import { buildBem, handlePixel } from '../utils';
|
|
4
|
-
import { TableColumnDefDirective, TableComponent, TableScrollWrapperDirective, } from './index';
|
|
5
|
-
import * as i0 from "@angular/core";
|
|
6
|
-
export class TableColResizableDirective extends ResizableDirective {
|
|
7
|
-
minWidth = '60px';
|
|
8
|
-
tableColumnDefDirective = inject(TableColumnDefDirective);
|
|
9
|
-
tableComponent = inject(TableComponent);
|
|
10
|
-
tableScrollWrapperDirective = inject(TableScrollWrapperDirective, {
|
|
11
|
-
optional: true,
|
|
12
|
-
});
|
|
13
|
-
styleEl;
|
|
14
|
-
hostAttr;
|
|
15
|
-
ngAfterViewInit() {
|
|
16
|
-
super.ngAfterViewInit();
|
|
17
|
-
this.containerElement = (this.tableScrollWrapperDirective || this.tableComponent).el.nativeElement;
|
|
18
|
-
const bem = buildBem('aui-table');
|
|
19
|
-
this.resizeEndEvent.subscribe(width => {
|
|
20
|
-
this.styleEl &&
|
|
21
|
-
this.renderer2.removeChild(this.containerElement, this.styleEl);
|
|
22
|
-
const className = bem.element(`column-${this.tableColumnDefDirective.cssClassFriendlyName}`);
|
|
23
|
-
if (!this.hostAttr) {
|
|
24
|
-
this.hostAttr = `resizable-${(Math.random() * 1000000).toFixed(0)}`;
|
|
25
|
-
this.containerElement.setAttribute(this.hostAttr, '');
|
|
26
|
-
}
|
|
27
|
-
this.styleEl = this.renderer2.createElement('style');
|
|
28
|
-
this.styleEl.innerHTML = `
|
|
29
|
-
[${this.hostAttr}] .${className} {
|
|
30
|
-
width: ${handlePixel(width)} !important;
|
|
31
|
-
flex: none !important;
|
|
32
|
-
}
|
|
33
|
-
`;
|
|
34
|
-
this.renderer2.appendChild(this.containerElement, this.styleEl);
|
|
35
|
-
this.tableComponent.updateStickyColumnStyles();
|
|
36
|
-
});
|
|
37
|
-
}
|
|
38
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.3", ngImport: i0, type: TableColResizableDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive });
|
|
39
|
-
static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.3", type: TableColResizableDirective, isStandalone: true, selector: "[auiTableColResizable]", inputs: { minWidth: "minWidth" }, usesInheritance: true, ngImport: i0 });
|
|
40
|
-
}
|
|
41
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.3", ngImport: i0, type: TableColResizableDirective, decorators: [{
|
|
42
|
-
type: Directive,
|
|
43
|
-
args: [{
|
|
44
|
-
selector: '[auiTableColResizable]',
|
|
45
|
-
standalone: true,
|
|
46
|
-
}]
|
|
47
|
-
}], propDecorators: { minWidth: [{
|
|
48
|
-
type: Input
|
|
49
|
-
}] } });
|
|
50
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtY29sLXJlc2l6YWJsZS5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvdGFibGUvdGFibGUtY29sLXJlc2l6YWJsZS5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFpQixTQUFTLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV4RSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDbEQsT0FBTyxFQUFFLFFBQVEsRUFBRSxXQUFXLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFFakQsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixjQUFjLEVBQ2QsMkJBQTJCLEdBQzVCLE1BQU0sU0FBUyxDQUFDOztBQU1qQixNQUFNLE9BQU8sMEJBQ1gsU0FBUSxrQkFBa0I7SUFJakIsUUFBUSxHQUFHLE1BQU0sQ0FBQztJQUUzQix1QkFBdUIsR0FBRyxNQUFNLENBQUMsdUJBQXVCLENBQUMsQ0FBQztJQUMxRCxjQUFjLEdBQUcsTUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQ3hDLDJCQUEyQixHQUFHLE1BQU0sQ0FBQywyQkFBMkIsRUFBRTtRQUNoRSxRQUFRLEVBQUUsSUFBSTtLQUNmLENBQUMsQ0FBQztJQUVLLE9BQU8sQ0FBbUI7SUFDMUIsUUFBUSxDQUFTO0lBRWhCLGVBQWU7UUFDdEIsS0FBSyxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBRXhCLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxDQUN0QixJQUFJLENBQUMsMkJBQTJCLElBQUksSUFBSSxDQUFDLGNBQWMsQ0FDeEQsQ0FBQyxFQUFFLENBQUMsYUFBYSxDQUFDO1FBRW5CLE1BQU0sR0FBRyxHQUFHLFFBQVEsQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUVsQyxJQUFJLENBQUMsY0FBYyxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUNwQyxJQUFJLENBQUMsT0FBTztnQkFDVixJQUFJLENBQUMsU0FBUyxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQ2xFLE1BQU0sU0FBUyxHQUFHLEdBQUcsQ0FBQyxPQUFPLENBQzNCLFVBQVUsSUFBSSxDQUFDLHVCQUF1QixDQUFDLG9CQUFvQixFQUFFLENBQzlELENBQUM7WUFDRixJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRTtnQkFDbEIsSUFBSSxDQUFDLFFBQVEsR0FBRyxhQUFhLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxHQUFHLE9BQVMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO2dCQUN0RSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDLENBQUM7YUFDdkQ7WUFDRCxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQ3JELElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxHQUFHO1VBQ3JCLElBQUksQ0FBQyxRQUFRLE1BQU0sU0FBUztpQkFDckIsV0FBVyxDQUFDLEtBQUssQ0FBQzs7O09BRzVCLENBQUM7WUFDRixJQUFJLENBQUMsU0FBUyxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBRWhFLElBQUksQ0FBQyxjQUFjLENBQUMsd0JBQXdCLEVBQUUsQ0FBQztRQUNqRCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7dUdBOUNVLDBCQUEwQjsyRkFBMUIsMEJBQTBCOzsyRkFBMUIsMEJBQTBCO2tCQUp0QyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSx3QkFBd0I7b0JBQ2xDLFVBQVUsRUFBRSxJQUFJO2lCQUNqQjs4QkFNVSxRQUFRO3NCQURoQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWZ0ZXJWaWV3SW5pdCwgRGlyZWN0aXZlLCBpbmplY3QsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IFJlc2l6YWJsZURpcmVjdGl2ZSB9IGZyb20gJy4uL3Jlc2l6YWJsZSc7XG5pbXBvcnQgeyBidWlsZEJlbSwgaGFuZGxlUGl4ZWwgfSBmcm9tICcuLi91dGlscyc7XG5cbmltcG9ydCB7XG4gIFRhYmxlQ29sdW1uRGVmRGlyZWN0aXZlLFxuICBUYWJsZUNvbXBvbmVudCxcbiAgVGFibGVTY3JvbGxXcmFwcGVyRGlyZWN0aXZlLFxufSBmcm9tICcuL2luZGV4JztcblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW2F1aVRhYmxlQ29sUmVzaXphYmxlXScsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG59KVxuZXhwb3J0IGNsYXNzIFRhYmxlQ29sUmVzaXphYmxlRGlyZWN0aXZlXG4gIGV4dGVuZHMgUmVzaXphYmxlRGlyZWN0aXZlXG4gIGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdFxue1xuICBASW5wdXQoKVxuICBvdmVycmlkZSBtaW5XaWR0aCA9ICc2MHB4JztcblxuICB0YWJsZUNvbHVtbkRlZkRpcmVjdGl2ZSA9IGluamVjdChUYWJsZUNvbHVtbkRlZkRpcmVjdGl2ZSk7XG4gIHRhYmxlQ29tcG9uZW50ID0gaW5qZWN0KFRhYmxlQ29tcG9uZW50KTtcbiAgdGFibGVTY3JvbGxXcmFwcGVyRGlyZWN0aXZlID0gaW5qZWN0KFRhYmxlU2Nyb2xsV3JhcHBlckRpcmVjdGl2ZSwge1xuICAgIG9wdGlvbmFsOiB0cnVlLFxuICB9KTtcblxuICBwcml2YXRlIHN0eWxlRWw6IEhUTUxTdHlsZUVsZW1lbnQ7XG4gIHByaXZhdGUgaG9zdEF0dHI6IHN0cmluZztcblxuICBvdmVycmlkZSBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgc3VwZXIubmdBZnRlclZpZXdJbml0KCk7XG5cbiAgICB0aGlzLmNvbnRhaW5lckVsZW1lbnQgPSAoXG4gICAgICB0aGlzLnRhYmxlU2Nyb2xsV3JhcHBlckRpcmVjdGl2ZSB8fCB0aGlzLnRhYmxlQ29tcG9uZW50XG4gICAgKS5lbC5uYXRpdmVFbGVtZW50O1xuXG4gICAgY29uc3QgYmVtID0gYnVpbGRCZW0oJ2F1aS10YWJsZScpO1xuXG4gICAgdGhpcy5yZXNpemVFbmRFdmVudC5zdWJzY3JpYmUod2lkdGggPT4ge1xuICAgICAgdGhpcy5zdHlsZUVsICYmXG4gICAgICAgIHRoaXMucmVuZGVyZXIyLnJlbW92ZUNoaWxkKHRoaXMuY29udGFpbmVyRWxlbWVudCwgdGhpcy5zdHlsZUVsKTtcbiAgICAgIGNvbnN0IGNsYXNzTmFtZSA9IGJlbS5lbGVtZW50KFxuICAgICAgICBgY29sdW1uLSR7dGhpcy50YWJsZUNvbHVtbkRlZkRpcmVjdGl2ZS5jc3NDbGFzc0ZyaWVuZGx5TmFtZX1gLFxuICAgICAgKTtcbiAgICAgIGlmICghdGhpcy5ob3N0QXR0cikge1xuICAgICAgICB0aGlzLmhvc3RBdHRyID0gYHJlc2l6YWJsZS0keyhNYXRoLnJhbmRvbSgpICogMV8wMDBfMDAwKS50b0ZpeGVkKDApfWA7XG4gICAgICAgIHRoaXMuY29udGFpbmVyRWxlbWVudC5zZXRBdHRyaWJ1dGUodGhpcy5ob3N0QXR0ciwgJycpO1xuICAgICAgfVxuICAgICAgdGhpcy5zdHlsZUVsID0gdGhpcy5yZW5kZXJlcjIuY3JlYXRlRWxlbWVudCgnc3R5bGUnKTtcbiAgICAgIHRoaXMuc3R5bGVFbC5pbm5lckhUTUwgPSBgXG4gICAgICAgWyR7dGhpcy5ob3N0QXR0cn1dIC4ke2NsYXNzTmFtZX0ge1xuICAgICAgICB3aWR0aDogJHtoYW5kbGVQaXhlbCh3aWR0aCl9ICFpbXBvcnRhbnQ7XG4gICAgICAgIGZsZXg6IG5vbmUgIWltcG9ydGFudDtcbiAgICAgIH1cbiAgICAgIGA7XG4gICAgICB0aGlzLnJlbmRlcmVyMi5hcHBlbmRDaGlsZCh0aGlzLmNvbnRhaW5lckVsZW1lbnQsIHRoaXMuc3R5bGVFbCk7XG5cbiAgICAgIHRoaXMudGFibGVDb21wb25lbnQudXBkYXRlU3RpY2t5Q29sdW1uU3R5bGVzKCk7XG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
|
package/resizable/index.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export { ResizableDirective } from './resizable.directive';
|
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
import { AfterViewInit, ElementRef, EventEmitter, NgZone, Renderer2 } from '@angular/core';
|
|
2
|
-
import { Subscription } from 'rxjs';
|
|
3
|
-
import * as i0 from "@angular/core";
|
|
4
|
-
export declare class ResizableDirective implements AfterViewInit {
|
|
5
|
-
readonly renderer2: Renderer2;
|
|
6
|
-
private readonly zone;
|
|
7
|
-
private readonly doc;
|
|
8
|
-
containerElement: Element;
|
|
9
|
-
minWidth: string;
|
|
10
|
-
maxWidth: string;
|
|
11
|
-
resizeStartEvent: EventEmitter<number>;
|
|
12
|
-
resizingEvent: EventEmitter<number>;
|
|
13
|
-
resizeEndEvent: EventEmitter<number>;
|
|
14
|
-
element: HTMLElement;
|
|
15
|
-
initialWidth: number;
|
|
16
|
-
mouseDownScreenX: number;
|
|
17
|
-
resizeHandle: HTMLElement;
|
|
18
|
-
resizeOverlay: HTMLElement;
|
|
19
|
-
resizeBar: HTMLElement;
|
|
20
|
-
mouseUpSubscription: Subscription;
|
|
21
|
-
document: Document;
|
|
22
|
-
private handleHasUp;
|
|
23
|
-
constructor(element: ElementRef, renderer2: Renderer2, zone: NgZone, doc: Document);
|
|
24
|
-
ngAfterViewInit(): void;
|
|
25
|
-
private createResizeHandle;
|
|
26
|
-
private createResizeOverlay;
|
|
27
|
-
private createResizeBar;
|
|
28
|
-
onMousedown(event: MouseEvent): void;
|
|
29
|
-
onMouseup(event: MouseEvent): void;
|
|
30
|
-
move: (event: MouseEvent) => void;
|
|
31
|
-
private getFinalWidth;
|
|
32
|
-
private getOffset;
|
|
33
|
-
private handleWidth;
|
|
34
|
-
private _destroySubscription;
|
|
35
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<ResizableDirective, never>;
|
|
36
|
-
static ɵdir: i0.ɵɵDirectiveDeclaration<ResizableDirective, "[auiResizable]", never, { "containerElement": { "alias": "containerElement"; "required": false; }; "minWidth": { "alias": "minWidth"; "required": false; }; "maxWidth": { "alias": "maxWidth"; "required": false; }; }, { "resizeStartEvent": "resizeStartEvent"; "resizingEvent": "resizingEvent"; "resizeEndEvent": "resizeEndEvent"; }, never, never, true, never>;
|
|
37
|
-
}
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
import { AfterViewInit } from '@angular/core';
|
|
2
|
-
import { ResizableDirective } from '../resizable';
|
|
3
|
-
import { TableColumnDefDirective, TableComponent, TableScrollWrapperDirective } from './index';
|
|
4
|
-
import * as i0 from "@angular/core";
|
|
5
|
-
export declare class TableColResizableDirective extends ResizableDirective implements AfterViewInit {
|
|
6
|
-
minWidth: string;
|
|
7
|
-
tableColumnDefDirective: TableColumnDefDirective;
|
|
8
|
-
tableComponent: TableComponent<any>;
|
|
9
|
-
tableScrollWrapperDirective: TableScrollWrapperDirective;
|
|
10
|
-
private styleEl;
|
|
11
|
-
private hostAttr;
|
|
12
|
-
ngAfterViewInit(): void;
|
|
13
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<TableColResizableDirective, never>;
|
|
14
|
-
static ɵdir: i0.ɵɵDirectiveDeclaration<TableColResizableDirective, "[auiTableColResizable]", never, { "minWidth": { "alias": "minWidth"; "required": false; }; }, {}, never, never, true, never>;
|
|
15
|
-
}
|