@acorex/cdk 19.3.0-next.0 → 19.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/collapse/README.md +3 -0
- package/collapse/index.d.ts +6 -0
- package/collapse/lib/collapse-directive/collapse-close-button.directive.d.ts +8 -0
- package/collapse/lib/collapse-directive/collapse-group.directive.d.ts +9 -0
- package/collapse/lib/collapse-directive/collapse-item-content.directive.d.ts +8 -0
- package/collapse/lib/collapse-directive/collapse-item-header.directive.d.ts +5 -0
- package/collapse/lib/collapse-directive/collapse-item.directive.d.ts +13 -0
- package/collapse/lib/collapse.module.d.ts +12 -0
- package/fesm2022/acorex-cdk-collapse.mjs +179 -0
- package/fesm2022/acorex-cdk-collapse.mjs.map +1 -0
- package/fesm2022/acorex-cdk-sticky.mjs +113 -0
- package/fesm2022/acorex-cdk-sticky.mjs.map +1 -0
- package/fesm2022/acorex-cdk-virtual-scroll.mjs +31 -21
- package/fesm2022/acorex-cdk-virtual-scroll.mjs.map +1 -1
- package/package.json +9 -1
- package/sticky/README.md +3 -0
- package/sticky/index.d.ts +1 -0
- package/sticky/lib/sticky.directive.d.ts +29 -0
- package/virtual-scroll/index.d.ts +2 -2
- package/virtual-scroll/lib/virtual-scroll.module.d.ts +3 -3
- package/virtual-scroll/lib/virtual-scrolling-contianer/{virtual-scrolling-contianer.component.d.ts → virtual-scrolling-contianer.directive.d.ts} +6 -7
- package/virtual-scroll/lib/virtual-scrolling-item/virtual-scrolling-item.directive.d.ts +7 -0
- package/virtual-scroll/lib/virtual-scrolling-item/virtual-scrolling-item.component.d.ts +0 -7
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export * from './lib/collapse-directive/collapse-close-button.directive';
|
|
2
|
+
export * from './lib/collapse-directive/collapse-group.directive';
|
|
3
|
+
export * from './lib/collapse-directive/collapse-item-content.directive';
|
|
4
|
+
export * from './lib/collapse-directive/collapse-item-header.directive';
|
|
5
|
+
export * from './lib/collapse-directive/collapse-item.directive';
|
|
6
|
+
export * from './lib/collapse.module';
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import * as i0 from "@angular/core";
|
|
2
|
+
export declare class AXCollapseCloseButtonDirective {
|
|
3
|
+
#private;
|
|
4
|
+
private elm;
|
|
5
|
+
onclick: import("@angular/core").OutputEmitterRef<MouseEvent>;
|
|
6
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<AXCollapseCloseButtonDirective, never>;
|
|
7
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<AXCollapseCloseButtonDirective, "[axCollapseCloseButton]", never, {}, { "onclick": "onclick"; }, never, never, false, never>;
|
|
8
|
+
}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import * as i0 from "@angular/core";
|
|
2
|
+
export declare class AXCollapseGrouplDirective {
|
|
3
|
+
#private;
|
|
4
|
+
accordion: import("@angular/core").InputSignal<boolean>;
|
|
5
|
+
private content;
|
|
6
|
+
private activeIndex;
|
|
7
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<AXCollapseGrouplDirective, never>;
|
|
8
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<AXCollapseGrouplDirective, "[axCollapseGroup]", ["axCollapseGroup"], { "accordion": { "alias": "accordion"; "required": false; "isSignal": true; }; }, {}, ["content"], never, false, never>;
|
|
9
|
+
}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import * as i0 from "@angular/core";
|
|
2
|
+
export declare class AXCollapseItemContentlDirective {
|
|
3
|
+
#private;
|
|
4
|
+
private elm;
|
|
5
|
+
collapseContent: import("@angular/core").WritableSignal<boolean>;
|
|
6
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<AXCollapseItemContentlDirective, never>;
|
|
7
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<AXCollapseItemContentlDirective, "[axCollapseItemContent]", ["axCollapseItemContent"], {}, {}, never, never, false, never>;
|
|
8
|
+
}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import * as i0 from "@angular/core";
|
|
2
|
+
export declare class AXCollapseItemHeaderlDirective {
|
|
3
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<AXCollapseItemHeaderlDirective, never>;
|
|
4
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<AXCollapseItemHeaderlDirective, "[axCollapseItemHeader]", ["axCollapseItemHeader"], {}, {}, never, never, false, never>;
|
|
5
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import * as i0 from "@angular/core";
|
|
2
|
+
export declare class AXCollapseItemlDirective {
|
|
3
|
+
#private;
|
|
4
|
+
private content;
|
|
5
|
+
private close;
|
|
6
|
+
collapse: import("@angular/core").WritableSignal<boolean>;
|
|
7
|
+
onclick: import("@angular/core").OutputEmitterRef<{
|
|
8
|
+
component: AXCollapseItemlDirective;
|
|
9
|
+
}>;
|
|
10
|
+
id: import("@angular/core").WritableSignal<number>;
|
|
11
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<AXCollapseItemlDirective, never>;
|
|
12
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<AXCollapseItemlDirective, "[axCollapseItem]", ["axCollapseItem"], {}, { "onclick": "onclick"; }, ["content", "close"], never, false, never>;
|
|
13
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import * as i0 from "@angular/core";
|
|
2
|
+
import * as i1 from "./collapse-directive/collapse-group.directive";
|
|
3
|
+
import * as i2 from "./collapse-directive/collapse-item-content.directive";
|
|
4
|
+
import * as i3 from "./collapse-directive/collapse-item-header.directive";
|
|
5
|
+
import * as i4 from "./collapse-directive/collapse-item.directive";
|
|
6
|
+
import * as i5 from "./collapse-directive/collapse-close-button.directive";
|
|
7
|
+
import * as i6 from "@angular/common";
|
|
8
|
+
export declare class AXCollapseModule {
|
|
9
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<AXCollapseModule, never>;
|
|
10
|
+
static ɵmod: i0.ɵɵNgModuleDeclaration<AXCollapseModule, [typeof i1.AXCollapseGrouplDirective, typeof i2.AXCollapseItemContentlDirective, typeof i3.AXCollapseItemHeaderlDirective, typeof i4.AXCollapseItemlDirective, typeof i5.AXCollapseCloseButtonDirective], [typeof i6.CommonModule], [typeof i1.AXCollapseGrouplDirective, typeof i2.AXCollapseItemContentlDirective, typeof i3.AXCollapseItemHeaderlDirective, typeof i4.AXCollapseItemlDirective, typeof i5.AXCollapseCloseButtonDirective]>;
|
|
11
|
+
static ɵinj: i0.ɵɵInjectorDeclaration<AXCollapseModule>;
|
|
12
|
+
}
|
|
@@ -0,0 +1,179 @@
|
|
|
1
|
+
import * as i0 from '@angular/core';
|
|
2
|
+
import { inject, ElementRef, output, afterNextRender, Directive, signal, effect, contentChild, input, contentChildren, NgModule } from '@angular/core';
|
|
3
|
+
import { CommonModule } from '@angular/common';
|
|
4
|
+
|
|
5
|
+
class AXCollapseCloseButtonDirective {
|
|
6
|
+
constructor() {
|
|
7
|
+
this.elm = inject(ElementRef);
|
|
8
|
+
this.onclick = output();
|
|
9
|
+
this.#init = afterNextRender(() => {
|
|
10
|
+
if (this.elm.nativeElement) {
|
|
11
|
+
this.elm.nativeElement.onclick = (e) => {
|
|
12
|
+
this.onclick.emit(e);
|
|
13
|
+
};
|
|
14
|
+
}
|
|
15
|
+
});
|
|
16
|
+
}
|
|
17
|
+
#init;
|
|
18
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXCollapseCloseButtonDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
19
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.0.3", type: AXCollapseCloseButtonDirective, isStandalone: false, selector: "[axCollapseCloseButton]", outputs: { onclick: "onclick" }, ngImport: i0 }); }
|
|
20
|
+
}
|
|
21
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXCollapseCloseButtonDirective, decorators: [{
|
|
22
|
+
type: Directive,
|
|
23
|
+
args: [{
|
|
24
|
+
selector: '[axCollapseCloseButton]',
|
|
25
|
+
standalone: false,
|
|
26
|
+
}]
|
|
27
|
+
}] });
|
|
28
|
+
|
|
29
|
+
class AXCollapseItemContentlDirective {
|
|
30
|
+
constructor() {
|
|
31
|
+
this.elm = inject(ElementRef);
|
|
32
|
+
this.collapseContent = signal(true);
|
|
33
|
+
this.#eff = effect(() => {
|
|
34
|
+
this.elm.nativeElement.style.transition = '.5s all ease-in-out';
|
|
35
|
+
if (this.collapseContent()) {
|
|
36
|
+
this.elm.nativeElement.style.opacity = '0';
|
|
37
|
+
this.elm.nativeElement.style.height = '0';
|
|
38
|
+
}
|
|
39
|
+
else {
|
|
40
|
+
this.elm.nativeElement.style.opacity = '1';
|
|
41
|
+
this.elm.nativeElement.style.height = '100%';
|
|
42
|
+
}
|
|
43
|
+
});
|
|
44
|
+
}
|
|
45
|
+
#eff;
|
|
46
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXCollapseItemContentlDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
47
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.0.3", type: AXCollapseItemContentlDirective, isStandalone: false, selector: "[axCollapseItemContent]", exportAs: ["axCollapseItemContent"], ngImport: i0 }); }
|
|
48
|
+
}
|
|
49
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXCollapseItemContentlDirective, decorators: [{
|
|
50
|
+
type: Directive,
|
|
51
|
+
args: [{
|
|
52
|
+
selector: '[axCollapseItemContent]',
|
|
53
|
+
exportAs: 'axCollapseItemContent',
|
|
54
|
+
standalone: false,
|
|
55
|
+
}]
|
|
56
|
+
}] });
|
|
57
|
+
|
|
58
|
+
class AXCollapseItemlDirective {
|
|
59
|
+
constructor() {
|
|
60
|
+
this.content = contentChild(AXCollapseItemContentlDirective);
|
|
61
|
+
this.close = contentChild(AXCollapseCloseButtonDirective);
|
|
62
|
+
this.collapse = signal(true);
|
|
63
|
+
this.onclick = output();
|
|
64
|
+
this.id = signal(Math.random());
|
|
65
|
+
this.#init = effect(() => {
|
|
66
|
+
this.content().collapseContent.set(this.collapse());
|
|
67
|
+
});
|
|
68
|
+
this.#init2 = effect(() => {
|
|
69
|
+
this.close().onclick.subscribe(() => {
|
|
70
|
+
this.collapse.update((prev) => !prev);
|
|
71
|
+
this.onclick.emit({ component: this });
|
|
72
|
+
});
|
|
73
|
+
});
|
|
74
|
+
}
|
|
75
|
+
#init;
|
|
76
|
+
#init2;
|
|
77
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXCollapseItemlDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
78
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.2.0", version: "19.0.3", type: AXCollapseItemlDirective, isStandalone: false, selector: "[axCollapseItem]", outputs: { onclick: "onclick" }, queries: [{ propertyName: "content", first: true, predicate: AXCollapseItemContentlDirective, descendants: true, isSignal: true }, { propertyName: "close", first: true, predicate: AXCollapseCloseButtonDirective, descendants: true, isSignal: true }], exportAs: ["axCollapseItem"], ngImport: i0 }); }
|
|
79
|
+
}
|
|
80
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXCollapseItemlDirective, decorators: [{
|
|
81
|
+
type: Directive,
|
|
82
|
+
args: [{
|
|
83
|
+
selector: '[axCollapseItem]',
|
|
84
|
+
exportAs: 'axCollapseItem',
|
|
85
|
+
standalone: false,
|
|
86
|
+
}]
|
|
87
|
+
}] });
|
|
88
|
+
|
|
89
|
+
class AXCollapseGrouplDirective {
|
|
90
|
+
constructor() {
|
|
91
|
+
this.accordion = input(false);
|
|
92
|
+
this.content = contentChildren(AXCollapseItemlDirective);
|
|
93
|
+
this.activeIndex = signal(0);
|
|
94
|
+
this.#eff = afterNextRender(() => {
|
|
95
|
+
if (!this.accordion())
|
|
96
|
+
return;
|
|
97
|
+
this.content().forEach((element) => {
|
|
98
|
+
element.onclick.subscribe((e) => {
|
|
99
|
+
this.activeIndex.set(e.component.id());
|
|
100
|
+
});
|
|
101
|
+
});
|
|
102
|
+
});
|
|
103
|
+
this.#eff2 = effect(() => {
|
|
104
|
+
if (!this.accordion())
|
|
105
|
+
return;
|
|
106
|
+
this.content().forEach((element) => {
|
|
107
|
+
if (this.activeIndex() === element.id()) {
|
|
108
|
+
element.collapse.set(false);
|
|
109
|
+
}
|
|
110
|
+
else {
|
|
111
|
+
element.collapse.set(true);
|
|
112
|
+
}
|
|
113
|
+
});
|
|
114
|
+
});
|
|
115
|
+
}
|
|
116
|
+
#eff;
|
|
117
|
+
#eff2;
|
|
118
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXCollapseGrouplDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
119
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.2.0", version: "19.0.3", type: AXCollapseGrouplDirective, isStandalone: false, selector: "[axCollapseGroup]", inputs: { accordion: { classPropertyName: "accordion", publicName: "accordion", isSignal: true, isRequired: false, transformFunction: null } }, queries: [{ propertyName: "content", predicate: AXCollapseItemlDirective, isSignal: true }], exportAs: ["axCollapseGroup"], ngImport: i0 }); }
|
|
120
|
+
}
|
|
121
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXCollapseGrouplDirective, decorators: [{
|
|
122
|
+
type: Directive,
|
|
123
|
+
args: [{
|
|
124
|
+
selector: '[axCollapseGroup]',
|
|
125
|
+
exportAs: 'axCollapseGroup',
|
|
126
|
+
standalone: false,
|
|
127
|
+
}]
|
|
128
|
+
}] });
|
|
129
|
+
|
|
130
|
+
class AXCollapseItemHeaderlDirective {
|
|
131
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXCollapseItemHeaderlDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
132
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.0.3", type: AXCollapseItemHeaderlDirective, isStandalone: false, selector: "[axCollapseItemHeader]", exportAs: ["axCollapseItemHeader"], ngImport: i0 }); }
|
|
133
|
+
}
|
|
134
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXCollapseItemHeaderlDirective, decorators: [{
|
|
135
|
+
type: Directive,
|
|
136
|
+
args: [{
|
|
137
|
+
selector: '[axCollapseItemHeader]',
|
|
138
|
+
exportAs: 'axCollapseItemHeader',
|
|
139
|
+
standalone: false,
|
|
140
|
+
}]
|
|
141
|
+
}] });
|
|
142
|
+
|
|
143
|
+
const COMPONENT = [
|
|
144
|
+
AXCollapseGrouplDirective,
|
|
145
|
+
AXCollapseItemContentlDirective,
|
|
146
|
+
AXCollapseItemHeaderlDirective,
|
|
147
|
+
AXCollapseItemlDirective,
|
|
148
|
+
AXCollapseCloseButtonDirective,
|
|
149
|
+
];
|
|
150
|
+
const MODULES = [CommonModule];
|
|
151
|
+
class AXCollapseModule {
|
|
152
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXCollapseModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
153
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.0.3", ngImport: i0, type: AXCollapseModule, declarations: [AXCollapseGrouplDirective,
|
|
154
|
+
AXCollapseItemContentlDirective,
|
|
155
|
+
AXCollapseItemHeaderlDirective,
|
|
156
|
+
AXCollapseItemlDirective,
|
|
157
|
+
AXCollapseCloseButtonDirective], imports: [CommonModule], exports: [AXCollapseGrouplDirective,
|
|
158
|
+
AXCollapseItemContentlDirective,
|
|
159
|
+
AXCollapseItemHeaderlDirective,
|
|
160
|
+
AXCollapseItemlDirective,
|
|
161
|
+
AXCollapseCloseButtonDirective] }); }
|
|
162
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXCollapseModule, imports: [MODULES] }); }
|
|
163
|
+
}
|
|
164
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXCollapseModule, decorators: [{
|
|
165
|
+
type: NgModule,
|
|
166
|
+
args: [{
|
|
167
|
+
declarations: [...COMPONENT],
|
|
168
|
+
imports: [...MODULES],
|
|
169
|
+
exports: [...COMPONENT],
|
|
170
|
+
providers: [],
|
|
171
|
+
}]
|
|
172
|
+
}] });
|
|
173
|
+
|
|
174
|
+
/**
|
|
175
|
+
* Generated bundle index. Do not edit.
|
|
176
|
+
*/
|
|
177
|
+
|
|
178
|
+
export { AXCollapseCloseButtonDirective, AXCollapseGrouplDirective, AXCollapseItemContentlDirective, AXCollapseItemHeaderlDirective, AXCollapseItemlDirective, AXCollapseModule };
|
|
179
|
+
//# sourceMappingURL=acorex-cdk-collapse.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"acorex-cdk-collapse.mjs","sources":["../../../../libs/cdk/collapse/src/lib/collapse-directive/collapse-close-button.directive.ts","../../../../libs/cdk/collapse/src/lib/collapse-directive/collapse-item-content.directive.ts","../../../../libs/cdk/collapse/src/lib/collapse-directive/collapse-item.directive.ts","../../../../libs/cdk/collapse/src/lib/collapse-directive/collapse-group.directive.ts","../../../../libs/cdk/collapse/src/lib/collapse-directive/collapse-item-header.directive.ts","../../../../libs/cdk/collapse/src/lib/collapse.module.ts","../../../../libs/cdk/collapse/src/acorex-cdk-collapse.ts"],"sourcesContent":["import { afterNextRender, Directive, ElementRef, inject, output } from '@angular/core';\n\n@Directive({\n selector: '[axCollapseCloseButton]',\n standalone: false,\n})\nexport class AXCollapseCloseButtonDirective {\n private elm = inject(ElementRef);\n onclick = output<MouseEvent>();\n #init = afterNextRender(() => {\n if (this.elm.nativeElement) {\n (this.elm.nativeElement as HTMLElement).onclick = (e: MouseEvent) => {\n this.onclick.emit(e);\n };\n }\n });\n}\n","import { Directive, effect, ElementRef, inject, signal } from '@angular/core';\n\n@Directive({\n selector: '[axCollapseItemContent]',\n exportAs: 'axCollapseItemContent',\n standalone: false,\n})\nexport class AXCollapseItemContentlDirective {\n private elm = inject(ElementRef);\n collapseContent = signal(true);\n\n #eff = effect(() => {\n (this.elm.nativeElement as HTMLElement).style.transition = '.5s all ease-in-out';\n if (this.collapseContent()) {\n (this.elm.nativeElement as HTMLElement).style.opacity = '0';\n (this.elm.nativeElement as HTMLElement).style.height = '0';\n } else {\n (this.elm.nativeElement as HTMLElement).style.opacity = '1';\n (this.elm.nativeElement as HTMLElement).style.height = '100%';\n }\n });\n}\n","import { contentChild, Directive, effect, output, signal } from '@angular/core';\nimport { AXCollapseCloseButtonDirective } from './collapse-close-button.directive';\nimport { AXCollapseItemContentlDirective } from './collapse-item-content.directive';\n\n@Directive({\n selector: '[axCollapseItem]',\n exportAs: 'axCollapseItem',\n standalone: false,\n})\nexport class AXCollapseItemlDirective {\n private content = contentChild(AXCollapseItemContentlDirective);\n private close = contentChild(AXCollapseCloseButtonDirective);\n\n collapse = signal(true);\n onclick = output<{ component: AXCollapseItemlDirective }>();\n id = signal(Math.random());\n\n #init = effect(() => {\n this.content().collapseContent.set(this.collapse());\n });\n\n #init2 = effect(() => {\n this.close().onclick.subscribe(() => {\n this.collapse.update((prev) => !prev);\n this.onclick.emit({ component: this });\n });\n });\n}\n","import { afterNextRender, contentChildren, Directive, effect, input, signal } from '@angular/core';\nimport { AXCollapseItemlDirective } from './collapse-item.directive';\n\n@Directive({\n selector: '[axCollapseGroup]',\n exportAs: 'axCollapseGroup',\n standalone: false,\n})\nexport class AXCollapseGrouplDirective {\n accordion = input(false);\n private content = contentChildren(AXCollapseItemlDirective);\n private activeIndex = signal(0);\n\n #eff = afterNextRender(() => {\n if (!this.accordion()) return;\n this.content().forEach((element) => {\n element.onclick.subscribe((e) => {\n this.activeIndex.set(e.component.id());\n });\n });\n });\n\n #eff2 = effect(() => {\n if (!this.accordion()) return;\n this.content().forEach((element) => {\n if (this.activeIndex() === element.id()) {\n element.collapse.set(false);\n } else {\n element.collapse.set(true);\n }\n });\n });\n}\n","import { Directive } from '@angular/core';\n\n@Directive({\n selector: '[axCollapseItemHeader]',\n exportAs: 'axCollapseItemHeader',\n standalone: false,\n})\nexport class AXCollapseItemHeaderlDirective {}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { AXCollapseCloseButtonDirective } from './collapse-directive/collapse-close-button.directive';\nimport { AXCollapseGrouplDirective } from './collapse-directive/collapse-group.directive';\nimport { AXCollapseItemContentlDirective } from './collapse-directive/collapse-item-content.directive';\nimport { AXCollapseItemHeaderlDirective } from './collapse-directive/collapse-item-header.directive';\nimport { AXCollapseItemlDirective } from './collapse-directive/collapse-item.directive';\n\nconst COMPONENT = [\n AXCollapseGrouplDirective,\n AXCollapseItemContentlDirective,\n AXCollapseItemHeaderlDirective,\n AXCollapseItemlDirective,\n AXCollapseCloseButtonDirective,\n];\nconst MODULES = [CommonModule];\n\n@NgModule({\n declarations: [...COMPONENT],\n imports: [...MODULES],\n exports: [...COMPONENT],\n providers: [],\n})\nexport class AXCollapseModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,113 @@
|
|
|
1
|
+
import * as i0 from '@angular/core';
|
|
2
|
+
import { EventEmitter, Directive, Input, Output } from '@angular/core';
|
|
3
|
+
|
|
4
|
+
class AXStickyDirective {
|
|
5
|
+
get isSticky() {
|
|
6
|
+
return this._isSticky;
|
|
7
|
+
}
|
|
8
|
+
set isSticky(value) {
|
|
9
|
+
if (this._isSticky !== value) {
|
|
10
|
+
this._isSticky = value;
|
|
11
|
+
this.isStickyChange.emit(value);
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
constructor(element, renderer, zone, cdr) {
|
|
15
|
+
this.element = element;
|
|
16
|
+
this.renderer = renderer;
|
|
17
|
+
this.zone = zone;
|
|
18
|
+
this.cdr = cdr;
|
|
19
|
+
this.stickyOffset = 100;
|
|
20
|
+
this.isStickyChange = new EventEmitter();
|
|
21
|
+
this._isSticky = false;
|
|
22
|
+
this.onParentScroll = () => {
|
|
23
|
+
this.zone.runOutsideAngular(() => {
|
|
24
|
+
const scrollTop = this.parentElement === window ? window.scrollY : this.parentElement.scrollTop;
|
|
25
|
+
const shouldStick = scrollTop + this.stickyOffset >= this.topOffset;
|
|
26
|
+
if (shouldStick !== this.isSticky) {
|
|
27
|
+
this.zone.run(() => {
|
|
28
|
+
this.isSticky = shouldStick;
|
|
29
|
+
this.toggleStickyClasses(shouldStick);
|
|
30
|
+
this.cdr.markForCheck();
|
|
31
|
+
});
|
|
32
|
+
}
|
|
33
|
+
});
|
|
34
|
+
};
|
|
35
|
+
}
|
|
36
|
+
ngAfterViewInit() {
|
|
37
|
+
this.initSticky();
|
|
38
|
+
// Add mutation observer for dynamic content
|
|
39
|
+
this.mutationObserver = new MutationObserver(() => {
|
|
40
|
+
this.updateTopOffset();
|
|
41
|
+
});
|
|
42
|
+
this.mutationObserver.observe(this.element.nativeElement, {
|
|
43
|
+
childList: true,
|
|
44
|
+
subtree: true,
|
|
45
|
+
});
|
|
46
|
+
// Add resize event listener
|
|
47
|
+
window.addEventListener('resize', this.updateTopOffset.bind(this));
|
|
48
|
+
}
|
|
49
|
+
initSticky() {
|
|
50
|
+
if (this.stickyParent instanceof HTMLElement) {
|
|
51
|
+
this.parentElement = this.stickyParent;
|
|
52
|
+
}
|
|
53
|
+
else {
|
|
54
|
+
this.parentElement = document.querySelector(this.stickyParent) || window;
|
|
55
|
+
}
|
|
56
|
+
this.targetElement =
|
|
57
|
+
document.querySelector(this.stickyTarget) || this.element.nativeElement;
|
|
58
|
+
this.updateTopOffset();
|
|
59
|
+
this.parentElement.addEventListener('scroll', this.onParentScroll);
|
|
60
|
+
}
|
|
61
|
+
updateTopOffset() {
|
|
62
|
+
this.zone.runOutsideAngular(() => {
|
|
63
|
+
const rect = this.targetElement.getBoundingClientRect();
|
|
64
|
+
this.topOffset = rect.top + (window.scrollY || 0);
|
|
65
|
+
});
|
|
66
|
+
}
|
|
67
|
+
toggleStickyClasses(isSticky) {
|
|
68
|
+
const classes = this.stickyClass.split(' ').filter(Boolean);
|
|
69
|
+
classes.forEach((className) => {
|
|
70
|
+
if (isSticky) {
|
|
71
|
+
this.renderer.addClass(this.targetElement, className);
|
|
72
|
+
}
|
|
73
|
+
else {
|
|
74
|
+
this.renderer.removeClass(this.targetElement, className);
|
|
75
|
+
}
|
|
76
|
+
});
|
|
77
|
+
}
|
|
78
|
+
ngOnDestroy() {
|
|
79
|
+
this.parentElement.removeEventListener('scroll', this.onParentScroll);
|
|
80
|
+
window.removeEventListener('resize', this.updateTopOffset.bind(this));
|
|
81
|
+
if (this.mutationObserver) {
|
|
82
|
+
this.mutationObserver.disconnect();
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXStickyDirective, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }, { token: i0.NgZone }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
86
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.0.3", type: AXStickyDirective, isStandalone: true, selector: "[axSticky]", inputs: { stickyClass: ["axSticky", "stickyClass"], stickyOffset: "stickyOffset", stickyParent: "stickyParent", stickyTarget: "stickyTarget" }, outputs: { isStickyChange: "isStickyChange" }, exportAs: ["axpSticky"], ngImport: i0 }); }
|
|
87
|
+
}
|
|
88
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXStickyDirective, decorators: [{
|
|
89
|
+
type: Directive,
|
|
90
|
+
args: [{
|
|
91
|
+
selector: '[axSticky]',
|
|
92
|
+
exportAs: 'axpSticky',
|
|
93
|
+
}]
|
|
94
|
+
}], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.Renderer2 }, { type: i0.NgZone }, { type: i0.ChangeDetectorRef }], propDecorators: { stickyClass: [{
|
|
95
|
+
type: Input,
|
|
96
|
+
args: ['axSticky']
|
|
97
|
+
}], stickyOffset: [{
|
|
98
|
+
type: Input,
|
|
99
|
+
args: ['stickyOffset']
|
|
100
|
+
}], isStickyChange: [{
|
|
101
|
+
type: Output
|
|
102
|
+
}], stickyParent: [{
|
|
103
|
+
type: Input
|
|
104
|
+
}], stickyTarget: [{
|
|
105
|
+
type: Input
|
|
106
|
+
}] } });
|
|
107
|
+
|
|
108
|
+
/**
|
|
109
|
+
* Generated bundle index. Do not edit.
|
|
110
|
+
*/
|
|
111
|
+
|
|
112
|
+
export { AXStickyDirective };
|
|
113
|
+
//# sourceMappingURL=acorex-cdk-sticky.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"acorex-cdk-sticky.mjs","sources":["../../../../libs/cdk/sticky/src/lib/sticky.directive.ts","../../../../libs/cdk/sticky/src/acorex-cdk-sticky.ts"],"sourcesContent":["import {\n AfterViewInit,\n ChangeDetectorRef,\n Directive,\n ElementRef,\n EventEmitter,\n Input,\n NgZone,\n OnDestroy,\n Output,\n Renderer2,\n} from '@angular/core';\n\n@Directive({\n selector: '[axSticky]',\n exportAs: 'axpSticky',\n})\nexport class AXStickyDirective implements AfterViewInit, OnDestroy {\n @Input('axSticky') stickyClass!: string;\n @Input('stickyOffset') stickyOffset = 100;\n @Output() isStickyChange: EventEmitter<boolean> = new EventEmitter<boolean>();\n\n private _isSticky = false;\n public get isSticky(): boolean {\n return this._isSticky;\n }\n public set isSticky(value: boolean) {\n if (this._isSticky !== value) {\n this._isSticky = value;\n this.isStickyChange.emit(value);\n }\n }\n\n private topOffset!: number;\n private parentElement!: HTMLElement | Window;\n private targetElement!: HTMLElement;\n private mutationObserver!: MutationObserver;\n\n @Input() stickyParent!: string | HTMLElement;\n @Input() stickyTarget!: string;\n\n constructor(\n private element: ElementRef<HTMLDivElement>,\n private renderer: Renderer2,\n private zone: NgZone,\n private cdr: ChangeDetectorRef,\n ) {}\n\n ngAfterViewInit() {\n this.initSticky();\n\n // Add mutation observer for dynamic content\n this.mutationObserver = new MutationObserver(() => {\n this.updateTopOffset();\n });\n\n this.mutationObserver.observe(this.element.nativeElement, {\n childList: true,\n subtree: true,\n });\n\n // Add resize event listener\n window.addEventListener('resize', this.updateTopOffset.bind(this));\n }\n\n private initSticky() {\n if (this.stickyParent instanceof HTMLElement) {\n this.parentElement = this.stickyParent;\n } else {\n this.parentElement = (document.querySelector(this.stickyParent) as HTMLElement) || window;\n }\n\n this.targetElement =\n (document.querySelector(this.stickyTarget) as HTMLElement) || this.element.nativeElement;\n\n this.updateTopOffset();\n this.parentElement.addEventListener('scroll', this.onParentScroll);\n }\n\n private updateTopOffset(): void {\n this.zone.runOutsideAngular(() => {\n const rect = this.targetElement.getBoundingClientRect();\n this.topOffset = rect.top + (window.scrollY || 0);\n });\n }\n\n private onParentScroll = (): void => {\n this.zone.runOutsideAngular(() => {\n const scrollTop =\n this.parentElement === window ? window.scrollY : (this.parentElement as HTMLElement).scrollTop;\n\n const shouldStick = scrollTop + this.stickyOffset >= this.topOffset;\n\n if (shouldStick !== this.isSticky) {\n this.zone.run(() => {\n this.isSticky = shouldStick;\n this.toggleStickyClasses(shouldStick);\n this.cdr.markForCheck();\n });\n }\n });\n };\n\n private toggleStickyClasses(isSticky: boolean): void {\n const classes = this.stickyClass.split(' ').filter(Boolean);\n classes.forEach((className) => {\n if (isSticky) {\n this.renderer.addClass(this.targetElement, className);\n } else {\n this.renderer.removeClass(this.targetElement, className);\n }\n });\n }\n\n ngOnDestroy() {\n this.parentElement.removeEventListener('scroll', this.onParentScroll);\n window.removeEventListener('resize', this.updateTopOffset.bind(this));\n\n if (this.mutationObserver) {\n this.mutationObserver.disconnect();\n }\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
@@ -1,22 +1,25 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import { inject, ElementRef,
|
|
2
|
+
import { inject, ElementRef, Directive, input, output, contentChildren, signal, computed, effect, afterNextRender, HostBinding, NgModule } from '@angular/core';
|
|
3
3
|
|
|
4
|
-
class
|
|
4
|
+
class AXVirtualScrollingItemDirective {
|
|
5
5
|
constructor() {
|
|
6
6
|
this.elementRef = inject(ElementRef);
|
|
7
7
|
}
|
|
8
8
|
get nativeElement() {
|
|
9
9
|
return this.elementRef.nativeElement;
|
|
10
10
|
}
|
|
11
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type:
|
|
12
|
-
static { this.ɵ
|
|
11
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXVirtualScrollingItemDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
12
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.0.3", type: AXVirtualScrollingItemDirective, isStandalone: false, selector: "[axVirtualScrollingItem]", ngImport: i0 }); }
|
|
13
13
|
}
|
|
14
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type:
|
|
15
|
-
type:
|
|
16
|
-
args: [{
|
|
14
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXVirtualScrollingItemDirective, decorators: [{
|
|
15
|
+
type: Directive,
|
|
16
|
+
args: [{
|
|
17
|
+
selector: '[axVirtualScrollingItem]',
|
|
18
|
+
standalone: false,
|
|
19
|
+
}]
|
|
17
20
|
}] });
|
|
18
21
|
|
|
19
|
-
class
|
|
22
|
+
class AXVirtualScrollingContianerDirective {
|
|
20
23
|
constructor() {
|
|
21
24
|
this.height = input();
|
|
22
25
|
/** @ignore */
|
|
@@ -24,10 +27,9 @@ class AXVirtualScrollingContianerComponent {
|
|
|
24
27
|
this.ScrollEnd = output();
|
|
25
28
|
/** @ignore */
|
|
26
29
|
this.loading = false;
|
|
30
|
+
this.container = inject(ElementRef);
|
|
27
31
|
/** @ignore */
|
|
28
|
-
this.
|
|
29
|
-
/** @ignore */
|
|
30
|
-
this.children = contentChildren(AXVirtualScrollingItemComponent);
|
|
32
|
+
this.children = contentChildren(AXVirtualScrollingItemDirective);
|
|
31
33
|
/** @ignore */
|
|
32
34
|
this.firstCall = signal(false);
|
|
33
35
|
/** @ignore */
|
|
@@ -48,18 +50,23 @@ class AXVirtualScrollingContianerComponent {
|
|
|
48
50
|
this.#eff3 = effect(() => {
|
|
49
51
|
if (this.firstChildElem() && !this.loading) {
|
|
50
52
|
setTimeout(() => {
|
|
51
|
-
this.container
|
|
52
|
-
top: this.container
|
|
53
|
+
this.container.nativeElement.scrollTo({
|
|
54
|
+
top: this.container.nativeElement.scrollHeight,
|
|
53
55
|
behavior: 'instant',
|
|
54
56
|
});
|
|
55
57
|
});
|
|
56
58
|
}
|
|
57
59
|
});
|
|
60
|
+
this.#init = afterNextRender(() => {
|
|
61
|
+
this.container.nativeElement.style.overflowY = 'auto';
|
|
62
|
+
this.container.nativeElement.style.display = 'block';
|
|
63
|
+
});
|
|
58
64
|
}
|
|
59
65
|
/** @ignore */
|
|
60
66
|
#eff2;
|
|
61
67
|
/** @ignore */
|
|
62
68
|
#eff3;
|
|
69
|
+
#init;
|
|
63
70
|
/** @ignore */
|
|
64
71
|
callBack(entries) {
|
|
65
72
|
if (entries[0].isIntersecting && this.firstCall()) {
|
|
@@ -72,22 +79,25 @@ class AXVirtualScrollingContianerComponent {
|
|
|
72
79
|
get __hostClass() {
|
|
73
80
|
return `${this.height()}`;
|
|
74
81
|
}
|
|
75
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type:
|
|
76
|
-
static { this.ɵ
|
|
82
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXVirtualScrollingContianerDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
83
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.2.0", version: "19.0.3", type: AXVirtualScrollingContianerDirective, isStandalone: false, selector: "[axVirtualScrollingContianer]", inputs: { height: { classPropertyName: "height", publicName: "height", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { ScrollEnd: "ScrollEnd" }, host: { properties: { "style.height": "this.__hostClass" } }, queries: [{ propertyName: "children", predicate: AXVirtualScrollingItemDirective, isSignal: true }], ngImport: i0 }); }
|
|
77
84
|
}
|
|
78
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type:
|
|
79
|
-
type:
|
|
80
|
-
args: [{
|
|
85
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXVirtualScrollingContianerDirective, decorators: [{
|
|
86
|
+
type: Directive,
|
|
87
|
+
args: [{
|
|
88
|
+
selector: '[axVirtualScrollingContianer]',
|
|
89
|
+
standalone: false,
|
|
90
|
+
}]
|
|
81
91
|
}], propDecorators: { __hostClass: [{
|
|
82
92
|
type: HostBinding,
|
|
83
93
|
args: ['style.height']
|
|
84
94
|
}] } });
|
|
85
95
|
|
|
86
|
-
const COMPONENT = [
|
|
96
|
+
const COMPONENT = [AXVirtualScrollingContianerDirective, AXVirtualScrollingItemDirective];
|
|
87
97
|
const MODULES = [];
|
|
88
98
|
class AXVirtualScrollModule {
|
|
89
99
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXVirtualScrollModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
90
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.0.3", ngImport: i0, type: AXVirtualScrollModule, declarations: [
|
|
100
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.0.3", ngImport: i0, type: AXVirtualScrollModule, declarations: [AXVirtualScrollingContianerDirective, AXVirtualScrollingItemDirective], exports: [AXVirtualScrollingContianerDirective, AXVirtualScrollingItemDirective] }); }
|
|
91
101
|
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXVirtualScrollModule, imports: [MODULES] }); }
|
|
92
102
|
}
|
|
93
103
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImport: i0, type: AXVirtualScrollModule, decorators: [{
|
|
@@ -104,5 +114,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.0.3", ngImpor
|
|
|
104
114
|
* Generated bundle index. Do not edit.
|
|
105
115
|
*/
|
|
106
116
|
|
|
107
|
-
export { AXVirtualScrollModule,
|
|
117
|
+
export { AXVirtualScrollModule, AXVirtualScrollingContianerDirective, AXVirtualScrollingItemDirective };
|
|
108
118
|
//# sourceMappingURL=acorex-cdk-virtual-scroll.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"acorex-cdk-virtual-scroll.mjs","sources":["../../../../libs/cdk/virtual-scroll/src/lib/virtual-scrolling-item/virtual-scrolling-item.
|
|
1
|
+
{"version":3,"file":"acorex-cdk-virtual-scroll.mjs","sources":["../../../../libs/cdk/virtual-scroll/src/lib/virtual-scrolling-item/virtual-scrolling-item.directive.ts","../../../../libs/cdk/virtual-scroll/src/lib/virtual-scrolling-contianer/virtual-scrolling-contianer.directive.ts","../../../../libs/cdk/virtual-scroll/src/lib/virtual-scroll.module.ts","../../../../libs/cdk/virtual-scroll/src/acorex-cdk-virtual-scroll.ts"],"sourcesContent":["import { Directive, ElementRef, inject } from '@angular/core';\n\n@Directive({\n selector: '[axVirtualScrollingItem]',\n standalone: false,\n})\nexport class AXVirtualScrollingItemDirective {\n private elementRef: ElementRef<HTMLElement> = inject(ElementRef);\n\n public get nativeElement(): HTMLElement {\n return this.elementRef.nativeElement;\n }\n}\n","import {\n afterNextRender,\n computed,\n contentChildren,\n Directive,\n effect,\n ElementRef,\n HostBinding,\n inject,\n input,\n output,\n signal,\n} from '@angular/core';\nimport { AXVirtualScrollingItemDirective } from '../virtual-scrolling-item/virtual-scrolling-item.directive';\n\n@Directive({\n selector: '[axVirtualScrollingContianer]',\n standalone: false,\n})\nexport class AXVirtualScrollingContianerDirective {\n height = input();\n\n /** @ignore */\n protected observer = new IntersectionObserver(this.callBack.bind(this));\n\n ScrollEnd = output();\n\n /** @ignore */\n loading = false;\n\n container = inject(ElementRef);\n\n /** @ignore */\n protected children = contentChildren(AXVirtualScrollingItemDirective);\n\n /** @ignore */\n protected firstCall = signal(false);\n\n /** @ignore */\n protected lastChildElem = computed<Element | null>(() => {\n return this.children()[0]?.nativeElement;\n });\n\n /** @ignore */\n protected firstChildElem = computed<Element | null>(() => {\n return this.children()[this.children().length - 1]?.nativeElement;\n });\n\n /** @ignore */\n #eff2 = effect(() => {\n if (this.lastChildElem()) {\n this.observer.observe(this.lastChildElem());\n }\n });\n\n /** @ignore */\n #eff3 = effect(() => {\n if (this.firstChildElem() && !this.loading) {\n setTimeout(() => {\n this.container.nativeElement.scrollTo({\n top: this.container.nativeElement.scrollHeight,\n behavior: 'instant',\n });\n });\n }\n });\n\n #init = afterNextRender(() => {\n (this.container.nativeElement as HTMLElement).style.overflowY = 'auto';\n (this.container.nativeElement as HTMLElement).style.display = 'block';\n });\n\n /** @ignore */\n protected callBack(entries: IntersectionObserverEntry[]) {\n if (entries[0].isIntersecting && this.firstCall()) {\n this.ScrollEnd.emit();\n this.loading = true;\n }\n this.loading = false;\n this.firstCall.set(true);\n }\n\n @HostBinding('style.height')\n get __hostClass(): string {\n return `${this.height()}`;\n }\n}\n","import { NgModule } from '@angular/core';\nimport { AXVirtualScrollingContianerDirective } from './virtual-scrolling-contianer/virtual-scrolling-contianer.directive';\nimport { AXVirtualScrollingItemDirective } from './virtual-scrolling-item/virtual-scrolling-item.directive';\n\nconst COMPONENT = [AXVirtualScrollingContianerDirective, AXVirtualScrollingItemDirective];\n\nconst MODULES = [];\n\n@NgModule({\n declarations: [...COMPONENT],\n imports: [...MODULES],\n exports: [...COMPONENT],\n providers: [],\n})\nexport class AXVirtualScrollModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@acorex/cdk",
|
|
3
|
-
"version": "19.3.0
|
|
3
|
+
"version": "19.3.0",
|
|
4
4
|
"peerDependencies": {
|
|
5
5
|
"@angular/common": ">=19.0.0",
|
|
6
6
|
"@angular/core": ">=19.0.0",
|
|
@@ -27,10 +27,18 @@
|
|
|
27
27
|
"types": "./carousel/index.d.ts",
|
|
28
28
|
"default": "./fesm2022/acorex-cdk-carousel.mjs"
|
|
29
29
|
},
|
|
30
|
+
"./collapse": {
|
|
31
|
+
"types": "./collapse/index.d.ts",
|
|
32
|
+
"default": "./fesm2022/acorex-cdk-collapse.mjs"
|
|
33
|
+
},
|
|
30
34
|
"./qrcode": {
|
|
31
35
|
"types": "./qrcode/index.d.ts",
|
|
32
36
|
"default": "./fesm2022/acorex-cdk-qrcode.mjs"
|
|
33
37
|
},
|
|
38
|
+
"./sticky": {
|
|
39
|
+
"types": "./sticky/index.d.ts",
|
|
40
|
+
"default": "./fesm2022/acorex-cdk-sticky.mjs"
|
|
41
|
+
},
|
|
34
42
|
"./virtual-scroll": {
|
|
35
43
|
"types": "./virtual-scroll/index.d.ts",
|
|
36
44
|
"default": "./fesm2022/acorex-cdk-virtual-scroll.mjs"
|
package/sticky/README.md
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './lib/sticky.directive';
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { AfterViewInit, ChangeDetectorRef, ElementRef, EventEmitter, NgZone, OnDestroy, Renderer2 } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
export declare class AXStickyDirective implements AfterViewInit, OnDestroy {
|
|
4
|
+
private element;
|
|
5
|
+
private renderer;
|
|
6
|
+
private zone;
|
|
7
|
+
private cdr;
|
|
8
|
+
stickyClass: string;
|
|
9
|
+
stickyOffset: number;
|
|
10
|
+
isStickyChange: EventEmitter<boolean>;
|
|
11
|
+
private _isSticky;
|
|
12
|
+
get isSticky(): boolean;
|
|
13
|
+
set isSticky(value: boolean);
|
|
14
|
+
private topOffset;
|
|
15
|
+
private parentElement;
|
|
16
|
+
private targetElement;
|
|
17
|
+
private mutationObserver;
|
|
18
|
+
stickyParent: string | HTMLElement;
|
|
19
|
+
stickyTarget: string;
|
|
20
|
+
constructor(element: ElementRef<HTMLDivElement>, renderer: Renderer2, zone: NgZone, cdr: ChangeDetectorRef);
|
|
21
|
+
ngAfterViewInit(): void;
|
|
22
|
+
private initSticky;
|
|
23
|
+
private updateTopOffset;
|
|
24
|
+
private onParentScroll;
|
|
25
|
+
private toggleStickyClasses;
|
|
26
|
+
ngOnDestroy(): void;
|
|
27
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<AXStickyDirective, never>;
|
|
28
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<AXStickyDirective, "[axSticky]", ["axpSticky"], { "stickyClass": { "alias": "axSticky"; "required": false; }; "stickyOffset": { "alias": "stickyOffset"; "required": false; }; "stickyParent": { "alias": "stickyParent"; "required": false; }; "stickyTarget": { "alias": "stickyTarget"; "required": false; }; }, { "isStickyChange": "isStickyChange"; }, never, never, true, never>;
|
|
29
|
+
}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
export * from './lib/virtual-scroll.module';
|
|
2
|
-
export * from './lib/virtual-scrolling-contianer/virtual-scrolling-contianer.
|
|
3
|
-
export * from './lib/virtual-scrolling-item/virtual-scrolling-item.
|
|
2
|
+
export * from './lib/virtual-scrolling-contianer/virtual-scrolling-contianer.directive';
|
|
3
|
+
export * from './lib/virtual-scrolling-item/virtual-scrolling-item.directive';
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import * as i0 from "@angular/core";
|
|
2
|
-
import * as i1 from "./virtual-scrolling-contianer/virtual-scrolling-contianer.
|
|
3
|
-
import * as i2 from "./virtual-scrolling-item/virtual-scrolling-item.
|
|
2
|
+
import * as i1 from "./virtual-scrolling-contianer/virtual-scrolling-contianer.directive";
|
|
3
|
+
import * as i2 from "./virtual-scrolling-item/virtual-scrolling-item.directive";
|
|
4
4
|
export declare class AXVirtualScrollModule {
|
|
5
5
|
static ɵfac: i0.ɵɵFactoryDeclaration<AXVirtualScrollModule, never>;
|
|
6
|
-
static ɵmod: i0.ɵɵNgModuleDeclaration<AXVirtualScrollModule, [typeof i1.
|
|
6
|
+
static ɵmod: i0.ɵɵNgModuleDeclaration<AXVirtualScrollModule, [typeof i1.AXVirtualScrollingContianerDirective, typeof i2.AXVirtualScrollingItemDirective], never, [typeof i1.AXVirtualScrollingContianerDirective, typeof i2.AXVirtualScrollingItemDirective]>;
|
|
7
7
|
static ɵinj: i0.ɵɵInjectorDeclaration<AXVirtualScrollModule>;
|
|
8
8
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { ElementRef } from '@angular/core';
|
|
2
|
-
import {
|
|
2
|
+
import { AXVirtualScrollingItemDirective } from '../virtual-scrolling-item/virtual-scrolling-item.directive';
|
|
3
3
|
import * as i0 from "@angular/core";
|
|
4
|
-
export declare class
|
|
4
|
+
export declare class AXVirtualScrollingContianerDirective {
|
|
5
5
|
#private;
|
|
6
6
|
height: import("@angular/core").InputSignal<unknown>;
|
|
7
7
|
/** @ignore */
|
|
@@ -9,10 +9,9 @@ export declare class AXVirtualScrollingContianerComponent {
|
|
|
9
9
|
ScrollEnd: import("@angular/core").OutputEmitterRef<void>;
|
|
10
10
|
/** @ignore */
|
|
11
11
|
loading: boolean;
|
|
12
|
+
container: ElementRef<any>;
|
|
12
13
|
/** @ignore */
|
|
13
|
-
protected
|
|
14
|
-
/** @ignore */
|
|
15
|
-
protected children: import("@angular/core").Signal<readonly AXVirtualScrollingItemComponent[]>;
|
|
14
|
+
protected children: import("@angular/core").Signal<readonly AXVirtualScrollingItemDirective[]>;
|
|
16
15
|
/** @ignore */
|
|
17
16
|
protected firstCall: import("@angular/core").WritableSignal<boolean>;
|
|
18
17
|
/** @ignore */
|
|
@@ -22,6 +21,6 @@ export declare class AXVirtualScrollingContianerComponent {
|
|
|
22
21
|
/** @ignore */
|
|
23
22
|
protected callBack(entries: IntersectionObserverEntry[]): void;
|
|
24
23
|
get __hostClass(): string;
|
|
25
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<
|
|
26
|
-
static
|
|
24
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<AXVirtualScrollingContianerDirective, never>;
|
|
25
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<AXVirtualScrollingContianerDirective, "[axVirtualScrollingContianer]", never, { "height": { "alias": "height"; "required": false; "isSignal": true; }; }, { "ScrollEnd": "ScrollEnd"; }, ["children"], never, false, never>;
|
|
27
26
|
}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import * as i0 from "@angular/core";
|
|
2
|
+
export declare class AXVirtualScrollingItemDirective {
|
|
3
|
+
private elementRef;
|
|
4
|
+
get nativeElement(): HTMLElement;
|
|
5
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<AXVirtualScrollingItemDirective, never>;
|
|
6
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<AXVirtualScrollingItemDirective, "[axVirtualScrollingItem]", never, {}, {}, never, never, false, never>;
|
|
7
|
+
}
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
import * as i0 from "@angular/core";
|
|
2
|
-
export declare class AXVirtualScrollingItemComponent {
|
|
3
|
-
private elementRef;
|
|
4
|
-
get nativeElement(): HTMLElement;
|
|
5
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<AXVirtualScrollingItemComponent, never>;
|
|
6
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<AXVirtualScrollingItemComponent, "ax-virtual-scrolling-item", never, {}, {}, never, ["*"], false, never>;
|
|
7
|
-
}
|