@ng-nest/ui 16.0.5 → 16.0.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/anchor/anchor.component.d.ts +1 -0
- package/anchor/anchor.property.d.ts +7 -2
- package/carousel/carousel.component.d.ts +4 -0
- package/carousel/carousel.module.d.ts +2 -1
- package/carousel/carousel.property.d.ts +21 -1
- package/esm2022/anchor/anchor.component.mjs +22 -4
- package/esm2022/anchor/anchor.property.mjs +7 -2
- package/esm2022/auto-complete/auto-complete.component.mjs +7 -1
- package/esm2022/back-top/back-top.component.mjs +6 -3
- package/esm2022/carousel/carousel-panel.component.mjs +2 -1
- package/esm2022/carousel/carousel.component.mjs +17 -3
- package/esm2022/carousel/carousel.module.mjs +5 -4
- package/esm2022/carousel/carousel.property.mjs +16 -2
- package/esm2022/time-picker/time-picker-frame.component.mjs +6 -3
- package/fesm2022/ng-nest-ui-anchor.mjs +27 -4
- package/fesm2022/ng-nest-ui-anchor.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-auto-complete.mjs +6 -0
- package/fesm2022/ng-nest-ui-auto-complete.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-back-top.mjs +5 -2
- package/fesm2022/ng-nest-ui-back-top.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-carousel.mjs +36 -6
- package/fesm2022/ng-nest-ui-carousel.mjs.map +1 -1
- package/fesm2022/ng-nest-ui-time-picker.mjs +5 -2
- package/fesm2022/ng-nest-ui-time-picker.mjs.map +1 -1
- package/package.json +36 -36
|
@@ -9,6 +9,8 @@ import * as i2 from '@angular/common';
|
|
|
9
9
|
import { isPlatformBrowser, CommonModule } from '@angular/common';
|
|
10
10
|
import * as i3 from '@ng-nest/ui/button';
|
|
11
11
|
import { XButtonModule } from '@ng-nest/ui/button';
|
|
12
|
+
import * as i4 from '@ng-nest/ui/progress';
|
|
13
|
+
import { XProgressModule } from '@ng-nest/ui/progress';
|
|
12
14
|
import * as i2$1 from '@angular/platform-browser';
|
|
13
15
|
|
|
14
16
|
/**
|
|
@@ -46,7 +48,7 @@ class XCarouselProperty extends XProperty {
|
|
|
46
48
|
this.activeChange = new EventEmitter();
|
|
47
49
|
}
|
|
48
50
|
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.5", ngImport: i0, type: XCarouselProperty, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
49
|
-
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.5", type: XCarouselProperty, selector: "x-carousel-property", inputs: { active: "active", height: "height", trigger: "trigger", arrow: "arrow", direction: "direction", autoplay: "autoplay", interval: "interval", outside: "outside", card: "card" }, outputs: { activeChange: "activeChange" }, usesInheritance: true, ngImport: i0, template: '', isInline: true }); }
|
|
51
|
+
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.5", type: XCarouselProperty, selector: "x-carousel-property", inputs: { active: "active", height: "height", trigger: "trigger", arrow: "arrow", direction: "direction", autoplay: "autoplay", interval: "interval", outside: "outside", card: "card", text: "text", progress: "progress", progressColor: "progressColor", current: "current" }, outputs: { activeChange: "activeChange" }, usesInheritance: true, ngImport: i0, template: '', isInline: true }); }
|
|
50
52
|
}
|
|
51
53
|
__decorate([
|
|
52
54
|
XInputNumber()
|
|
@@ -72,6 +74,12 @@ __decorate([
|
|
|
72
74
|
__decorate([
|
|
73
75
|
XInputBoolean()
|
|
74
76
|
], XCarouselProperty.prototype, "card", void 0);
|
|
77
|
+
__decorate([
|
|
78
|
+
XInputBoolean()
|
|
79
|
+
], XCarouselProperty.prototype, "progress", void 0);
|
|
80
|
+
__decorate([
|
|
81
|
+
XInputBoolean()
|
|
82
|
+
], XCarouselProperty.prototype, "current", void 0);
|
|
75
83
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.5", ngImport: i0, type: XCarouselProperty, decorators: [{
|
|
76
84
|
type: Component,
|
|
77
85
|
args: [{ selector: `${XCarouselPrefix}-property`, template: '' }]
|
|
@@ -93,6 +101,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.5", ngImpor
|
|
|
93
101
|
type: Input
|
|
94
102
|
}], card: [{
|
|
95
103
|
type: Input
|
|
104
|
+
}], text: [{
|
|
105
|
+
type: Input
|
|
106
|
+
}], progress: [{
|
|
107
|
+
type: Input
|
|
108
|
+
}], progressColor: [{
|
|
109
|
+
type: Input
|
|
110
|
+
}], current: [{
|
|
111
|
+
type: Input
|
|
96
112
|
}], activeChange: [{
|
|
97
113
|
type: Output
|
|
98
114
|
}] } });
|
|
@@ -120,6 +136,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.5", ngImpor
|
|
|
120
136
|
}] } });
|
|
121
137
|
|
|
122
138
|
class XCarouselComponent extends XCarouselProperty {
|
|
139
|
+
get page() {
|
|
140
|
+
return Number(this.active) + 1;
|
|
141
|
+
}
|
|
123
142
|
constructor(renderer, elementRef, cdr, configService) {
|
|
124
143
|
super();
|
|
125
144
|
this.renderer = renderer;
|
|
@@ -130,6 +149,8 @@ class XCarouselComponent extends XCarouselProperty {
|
|
|
130
149
|
this.panelChanges = [];
|
|
131
150
|
this.platformId = inject(PLATFORM_ID);
|
|
132
151
|
this.isBrowser = true;
|
|
152
|
+
this.percent = 0;
|
|
153
|
+
this.count = 0;
|
|
133
154
|
this._unSubject = new Subject();
|
|
134
155
|
this.isBrowser = isPlatformBrowser(this.platformId);
|
|
135
156
|
}
|
|
@@ -167,7 +188,15 @@ class XCarouselComponent extends XCarouselProperty {
|
|
|
167
188
|
if (!this.isBrowser)
|
|
168
189
|
return;
|
|
169
190
|
this.timer && clearInterval(this.timer);
|
|
191
|
+
this.precentTimer && clearInterval(this.precentTimer);
|
|
192
|
+
this.percent = 0;
|
|
193
|
+
const js = Number(this.interval) / 100;
|
|
194
|
+
this.precentTimer = setInterval(() => {
|
|
195
|
+
this.percent += 1;
|
|
196
|
+
this.cdr.detectChanges();
|
|
197
|
+
}, js);
|
|
170
198
|
this.timer = setInterval(() => {
|
|
199
|
+
this.percent = 0;
|
|
171
200
|
this.setActiveItem(Number(this.active) + 1);
|
|
172
201
|
}, Number(this.interval));
|
|
173
202
|
}
|
|
@@ -191,11 +220,11 @@ class XCarouselComponent extends XCarouselProperty {
|
|
|
191
220
|
return index;
|
|
192
221
|
}
|
|
193
222
|
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.5", ngImport: i0, type: XCarouselComponent, deps: [{ token: i0.Renderer2 }, { token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: i1.XConfigService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
194
|
-
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.5", type: XCarouselComponent, selector: "x-carousel", viewQueries: [{ propertyName: "carousel", first: true, predicate: ["carousel"], descendants: true }, { propertyName: "content", first: true, predicate: ["content"], descendants: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<div
|
|
223
|
+
/** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.5", type: XCarouselComponent, selector: "x-carousel", viewQueries: [{ propertyName: "carousel", first: true, predicate: ["carousel"], descendants: true }, { propertyName: "content", first: true, predicate: ["content"], descendants: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<div\r\n #carousel\r\n class=\"x-carousel\"\r\n [ngClass]=\"classMap\"\r\n [class.x-carousel-arrow-always]=\"arrow === 'always'\"\r\n [class.x-carousel-has-current]=\"current\"\r\n [class.x-carousel-indicator-outside]=\"outside || card\"\r\n>\r\n <div #content class=\"x-carousel-content\" [style.height]=\"height\">\r\n <ng-container *ngIf=\"arrow !== 'never' && direction !== 'vertical'\">\r\n <x-button class=\"arrow-left\" icon=\"fto-chevron-left\" (click)=\"action(active, -1)\"></x-button>\r\n <x-button class=\"arrow-right\" icon=\"fto-chevron-right\" (click)=\"action(active, 1)\"></x-button>\r\n </ng-container>\r\n <ng-content></ng-content>\r\n <div class=\"x-carousel-text\" *ngIf=\"text\">{{ text }}</div>\r\n <div class=\"x-carousel-current\" *ngIf=\"current\">\r\n <span class=\"x-carousel-active\">{{ page }}</span> /\r\n <span class=\"x-carousel-count\">{{ count }}</span>\r\n </div>\r\n <div class=\"x-carousel-progress\" *ngIf=\"progress\">\r\n <x-progress [percent]=\"percent\" [color]=\"progressColor\" [info]=\"false\" height=\"0.325rem\"></x-progress>\r\n </div>\r\n </div>\r\n <ul class=\"x-carousel-indicator\">\r\n <li\r\n *ngFor=\"let panel of panelChanges; let i = index; trackBy: trackByPanel\"\r\n [class.x-activated]=\"getActivated(i)\"\r\n (click)=\"action(i, 0, 'click')\"\r\n (mouseenter)=\"action(i, 0, 'hover')\"\r\n >\r\n <x-button type=\"text\"></x-button>\r\n </li>\r\n </ul>\r\n</div>\r\n", styles: [".x-carousel{margin:0;padding:0;font-size:var(--x-font-size);box-sizing:border-box;position:relative}.x-carousel-content{position:relative}.x-carousel-content>x-button{opacity:0;visibility:hidden;top:50%;z-index:10;transform:translateY(-50%);position:absolute;transition:var(--x-animation-duration-base) ease-out}.x-carousel-content>x-button .x-button{border:none;outline:none;padding:0;margin:0;height:2.25rem;width:2.25rem;border-radius:50%;background-color:#1f2d3d26;color:var(--x-background-100);text-align:center}.x-carousel-content>x-button .x-button:hover{color:var(--x-background-100);background-color:#1f2d3d40}.x-carousel-content>x-button.arrow-left{left:1rem;transform:translate3D(-15px,-50%,0)}.x-carousel-content>x-button.arrow-right{right:1rem;transform:translate3D(15px,-50%,0)}.x-carousel-content>x-carousel-panel{position:absolute;top:0;left:0;width:100%;height:100%;display:inline-block;overflow:hidden;background-color:var(--x-background-a100);z-index:0}.x-carousel-content>x-carousel-panel.x-carousel-animating{transition:.4s ease-in-out}.x-carousel-content>x-carousel-panel.x-carousel-card{width:50%}.x-carousel-content>x-carousel-panel.x-carousel-in-stage{cursor:pointer;z-index:1}.x-carousel-content>x-carousel-panel.x-carousel-in-stage .x-carousel-mask{position:absolute;width:100%;height:100%;top:0;left:0;background-color:var(--x-background);opacity:.24;transition:.2s}.x-carousel-content>x-carousel-panel.x-carousel-in-stage:hover .x-carousel-mask{opacity:.12}.x-carousel-content>x-carousel-panel.x-activated{z-index:2}.x-carousel-indicator{bottom:.25rem;left:50%;transform:translate(-50%);position:absolute;z-index:2;display:inline-flex}.x-carousel-indicator>li{cursor:pointer;background-color:transparent;display:inline-flex;padding:.75rem .25rem}.x-carousel-indicator>li>x-button .x-button{padding:0;width:1.875rem;height:.125rem;background-color:#1f2d3d26;transition:.3s}.x-carousel-indicator>li:hover>x-button .x-button{background-color:#1f2d3d40}.x-carousel-indicator>li.x-activated>x-button .x-button{background-color:#ffffffe6}.x-carousel-indicator-outside .x-carousel-indicator{position:static;transform:none;display:flex;align-items:center;justify-content:center}.x-carousel-indicator-outside .x-carousel-indicator>li>x-button .x-button{background-color:var(--x-text-700)}.x-carousel-indicator-outside .x-carousel-indicator>li.x-activated>x-button .x-button{background-color:#00000080}.x-carousel:hover .x-carousel-content>x-button,.x-carousel-arrow-always .x-carousel-content>x-button{opacity:1;visibility:inherit}.x-carousel:hover .x-carousel-content>x-button.arrow-left,.x-carousel-arrow-always .x-carousel-content>x-button.arrow-left{transform:translate3D(0,-50%,0)}.x-carousel:hover .x-carousel-content>x-button.arrow-right,.x-carousel-arrow-always .x-carousel-content>x-button.arrow-right{transform:translate3D(0,-50%,0)}.x-carousel-horizontal,.x-carousel-vertical{overflow:hidden}.x-carousel-vertical>.x-carousel-indicator{right:0;top:50%;left:inherit;bottom:inherit;flex-direction:column;transform:translateY(-50%)}.x-carousel-vertical>.x-carousel-indicator>li{padding:.25rem .75rem}.x-carousel-vertical>.x-carousel-indicator>li>x-button .x-button{width:.125rem;height:1rem}.x-carousel-text{position:absolute;bottom:0;z-index:10;font-size:1rem;padding:.5rem .75rem}.x-carousel-progress{position:absolute;bottom:0;z-index:11;width:100%;height:.5rem}.x-carousel-progress x-progress{position:relative;height:.5rem;display:block;top:0}.x-carousel-progress x-progress .x-progress{position:relative;top:-.5625rem}.x-carousel-progress x-progress .x-progress-rail,.x-carousel-progress x-progress .x-progress-bg{border-radius:0}.x-carousel-progress x-progress .x-progress-rail{background-color:transparent}.x-carousel-current{position:absolute;bottom:0;right:0;z-index:11;padding:.5rem .75rem;font-size:var(--x-font-size-big)}.x-carousel-active{color:var(--x-primary);font-weight:600;font-size:1.5rem}.x-carousel-count{color:var(--x-text);font-weight:600}.x-carousel-has-current .x-carousel-text{padding-right:5rem}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.XButtonComponent, selector: "x-button" }, { kind: "component", type: i4.XProgressComponent, selector: "x-progress" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
195
224
|
}
|
|
196
225
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.5", ngImport: i0, type: XCarouselComponent, decorators: [{
|
|
197
226
|
type: Component,
|
|
198
|
-
args: [{ selector: `${XCarouselPrefix}`, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<div
|
|
227
|
+
args: [{ selector: `${XCarouselPrefix}`, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<div\r\n #carousel\r\n class=\"x-carousel\"\r\n [ngClass]=\"classMap\"\r\n [class.x-carousel-arrow-always]=\"arrow === 'always'\"\r\n [class.x-carousel-has-current]=\"current\"\r\n [class.x-carousel-indicator-outside]=\"outside || card\"\r\n>\r\n <div #content class=\"x-carousel-content\" [style.height]=\"height\">\r\n <ng-container *ngIf=\"arrow !== 'never' && direction !== 'vertical'\">\r\n <x-button class=\"arrow-left\" icon=\"fto-chevron-left\" (click)=\"action(active, -1)\"></x-button>\r\n <x-button class=\"arrow-right\" icon=\"fto-chevron-right\" (click)=\"action(active, 1)\"></x-button>\r\n </ng-container>\r\n <ng-content></ng-content>\r\n <div class=\"x-carousel-text\" *ngIf=\"text\">{{ text }}</div>\r\n <div class=\"x-carousel-current\" *ngIf=\"current\">\r\n <span class=\"x-carousel-active\">{{ page }}</span> /\r\n <span class=\"x-carousel-count\">{{ count }}</span>\r\n </div>\r\n <div class=\"x-carousel-progress\" *ngIf=\"progress\">\r\n <x-progress [percent]=\"percent\" [color]=\"progressColor\" [info]=\"false\" height=\"0.325rem\"></x-progress>\r\n </div>\r\n </div>\r\n <ul class=\"x-carousel-indicator\">\r\n <li\r\n *ngFor=\"let panel of panelChanges; let i = index; trackBy: trackByPanel\"\r\n [class.x-activated]=\"getActivated(i)\"\r\n (click)=\"action(i, 0, 'click')\"\r\n (mouseenter)=\"action(i, 0, 'hover')\"\r\n >\r\n <x-button type=\"text\"></x-button>\r\n </li>\r\n </ul>\r\n</div>\r\n", styles: [".x-carousel{margin:0;padding:0;font-size:var(--x-font-size);box-sizing:border-box;position:relative}.x-carousel-content{position:relative}.x-carousel-content>x-button{opacity:0;visibility:hidden;top:50%;z-index:10;transform:translateY(-50%);position:absolute;transition:var(--x-animation-duration-base) ease-out}.x-carousel-content>x-button .x-button{border:none;outline:none;padding:0;margin:0;height:2.25rem;width:2.25rem;border-radius:50%;background-color:#1f2d3d26;color:var(--x-background-100);text-align:center}.x-carousel-content>x-button .x-button:hover{color:var(--x-background-100);background-color:#1f2d3d40}.x-carousel-content>x-button.arrow-left{left:1rem;transform:translate3D(-15px,-50%,0)}.x-carousel-content>x-button.arrow-right{right:1rem;transform:translate3D(15px,-50%,0)}.x-carousel-content>x-carousel-panel{position:absolute;top:0;left:0;width:100%;height:100%;display:inline-block;overflow:hidden;background-color:var(--x-background-a100);z-index:0}.x-carousel-content>x-carousel-panel.x-carousel-animating{transition:.4s ease-in-out}.x-carousel-content>x-carousel-panel.x-carousel-card{width:50%}.x-carousel-content>x-carousel-panel.x-carousel-in-stage{cursor:pointer;z-index:1}.x-carousel-content>x-carousel-panel.x-carousel-in-stage .x-carousel-mask{position:absolute;width:100%;height:100%;top:0;left:0;background-color:var(--x-background);opacity:.24;transition:.2s}.x-carousel-content>x-carousel-panel.x-carousel-in-stage:hover .x-carousel-mask{opacity:.12}.x-carousel-content>x-carousel-panel.x-activated{z-index:2}.x-carousel-indicator{bottom:.25rem;left:50%;transform:translate(-50%);position:absolute;z-index:2;display:inline-flex}.x-carousel-indicator>li{cursor:pointer;background-color:transparent;display:inline-flex;padding:.75rem .25rem}.x-carousel-indicator>li>x-button .x-button{padding:0;width:1.875rem;height:.125rem;background-color:#1f2d3d26;transition:.3s}.x-carousel-indicator>li:hover>x-button .x-button{background-color:#1f2d3d40}.x-carousel-indicator>li.x-activated>x-button .x-button{background-color:#ffffffe6}.x-carousel-indicator-outside .x-carousel-indicator{position:static;transform:none;display:flex;align-items:center;justify-content:center}.x-carousel-indicator-outside .x-carousel-indicator>li>x-button .x-button{background-color:var(--x-text-700)}.x-carousel-indicator-outside .x-carousel-indicator>li.x-activated>x-button .x-button{background-color:#00000080}.x-carousel:hover .x-carousel-content>x-button,.x-carousel-arrow-always .x-carousel-content>x-button{opacity:1;visibility:inherit}.x-carousel:hover .x-carousel-content>x-button.arrow-left,.x-carousel-arrow-always .x-carousel-content>x-button.arrow-left{transform:translate3D(0,-50%,0)}.x-carousel:hover .x-carousel-content>x-button.arrow-right,.x-carousel-arrow-always .x-carousel-content>x-button.arrow-right{transform:translate3D(0,-50%,0)}.x-carousel-horizontal,.x-carousel-vertical{overflow:hidden}.x-carousel-vertical>.x-carousel-indicator{right:0;top:50%;left:inherit;bottom:inherit;flex-direction:column;transform:translateY(-50%)}.x-carousel-vertical>.x-carousel-indicator>li{padding:.25rem .75rem}.x-carousel-vertical>.x-carousel-indicator>li>x-button .x-button{width:.125rem;height:1rem}.x-carousel-text{position:absolute;bottom:0;z-index:10;font-size:1rem;padding:.5rem .75rem}.x-carousel-progress{position:absolute;bottom:0;z-index:11;width:100%;height:.5rem}.x-carousel-progress x-progress{position:relative;height:.5rem;display:block;top:0}.x-carousel-progress x-progress .x-progress{position:relative;top:-.5625rem}.x-carousel-progress x-progress .x-progress-rail,.x-carousel-progress x-progress .x-progress-bg{border-radius:0}.x-carousel-progress x-progress .x-progress-rail{background-color:transparent}.x-carousel-current{position:absolute;bottom:0;right:0;z-index:11;padding:.5rem .75rem;font-size:var(--x-font-size-big)}.x-carousel-active{color:var(--x-primary);font-weight:600;font-size:1.5rem}.x-carousel-count{color:var(--x-text);font-weight:600}.x-carousel-has-current .x-carousel-text{padding-right:5rem}\n"] }]
|
|
199
228
|
}], ctorParameters: function () { return [{ type: i0.Renderer2 }, { type: i0.ElementRef }, { type: i0.ChangeDetectorRef }, { type: i1.XConfigService }]; }, propDecorators: { carousel: [{
|
|
200
229
|
type: ViewChild,
|
|
201
230
|
args: ['carousel']
|
|
@@ -220,6 +249,7 @@ class XCarouselPanelComponent extends XCarouselPanelProperty {
|
|
|
220
249
|
this.unSubject = new Subject();
|
|
221
250
|
}
|
|
222
251
|
ngOnInit() {
|
|
252
|
+
this.carousel.count++;
|
|
223
253
|
this.carousel.start++;
|
|
224
254
|
this.index = this.carousel.start;
|
|
225
255
|
this.setClass('x-carousel-card', Boolean(this.carousel.card));
|
|
@@ -329,15 +359,15 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.5", ngImpor
|
|
|
329
359
|
|
|
330
360
|
class XCarouselModule {
|
|
331
361
|
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.5", ngImport: i0, type: XCarouselModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
332
|
-
/** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.0.5", ngImport: i0, type: XCarouselModule, declarations: [XCarouselComponent, XCarouselPanelComponent, XCarouselProperty, XCarouselPanelProperty], imports: [CommonModule, XButtonModule], exports: [XCarouselComponent, XCarouselPanelComponent] }); }
|
|
333
|
-
/** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.0.5", ngImport: i0, type: XCarouselModule, imports: [CommonModule, XButtonModule] }); }
|
|
362
|
+
/** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.0.5", ngImport: i0, type: XCarouselModule, declarations: [XCarouselComponent, XCarouselPanelComponent, XCarouselProperty, XCarouselPanelProperty], imports: [CommonModule, XButtonModule, XProgressModule], exports: [XCarouselComponent, XCarouselPanelComponent] }); }
|
|
363
|
+
/** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.0.5", ngImport: i0, type: XCarouselModule, imports: [CommonModule, XButtonModule, XProgressModule] }); }
|
|
334
364
|
}
|
|
335
365
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.5", ngImport: i0, type: XCarouselModule, decorators: [{
|
|
336
366
|
type: NgModule,
|
|
337
367
|
args: [{
|
|
338
368
|
declarations: [XCarouselComponent, XCarouselPanelComponent, XCarouselProperty, XCarouselPanelProperty],
|
|
339
369
|
exports: [XCarouselComponent, XCarouselPanelComponent],
|
|
340
|
-
imports: [CommonModule, XButtonModule]
|
|
370
|
+
imports: [CommonModule, XButtonModule, XProgressModule]
|
|
341
371
|
}]
|
|
342
372
|
}] });
|
|
343
373
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ng-nest-ui-carousel.mjs","sources":["../../../../lib/ng-nest/ui/carousel/carousel.property.ts","../../../../lib/ng-nest/ui/carousel/carousel.component.ts","../../../../lib/ng-nest/ui/carousel/carousel.component.html","../../../../lib/ng-nest/ui/carousel/carousel-panel.component.ts","../../../../lib/ng-nest/ui/carousel/carousel-panel.component.html","../../../../lib/ng-nest/ui/carousel/carousel.module.ts","../../../../lib/ng-nest/ui/carousel/ng-nest-ui-carousel.ts"],"sourcesContent":["import {\r\n XProperty,\r\n XInputNumber,\r\n XInputBoolean,\r\n XNumber,\r\n XBoolean,\r\n XWithConfig,\r\n XShadow,\r\n XDisplayDirection,\r\n XTrigger\r\n} from '@ng-nest/ui/core';\r\nimport { Input, Output, EventEmitter, Component } from '@angular/core';\r\n\r\n/**\r\n * Carousel\r\n * @selector x-carousel\r\n * @decorator component\r\n */\r\nexport const XCarouselPrefix = 'x-carousel';\r\nconst X_CONFIG_NAME = 'carousel';\r\n\r\n/**\r\n * Carousel Property\r\n */\r\n@Component({ selector: `${XCarouselPrefix}-property`, template: '' })\r\nexport class XCarouselProperty extends XProperty {\r\n /**\r\n * @zh_CN 当前激活的幻灯片索引\r\n * @en_US Index of the currently active slide\r\n */\r\n @Input() @XInputNumber() active: XNumber = 0;\r\n /**\r\n * @zh_CN 幻灯片高度\r\n * @en_US Slide height\r\n */\r\n @Input() @XWithConfig<string>(X_CONFIG_NAME, '15rem') height?: string;\r\n /**\r\n * @zh_CN 切换器触发方式\r\n * @en_US Switcher trigger method\r\n */\r\n @Input() @XWithConfig<XCarouselTrigger>(X_CONFIG_NAME, 'hover') trigger?: XCarouselTrigger;\r\n /**\r\n * @zh_CN 箭头显示影藏方式\r\n * @en_US Arrow shows how to hide\r\n */\r\n @Input() @XWithConfig<XCarouselArrow>(X_CONFIG_NAME, 'hover') arrow?: XCarouselArrow;\r\n /**\r\n * @zh_CN 幻灯片轮播方向\r\n * @en_US Slide rotation direction\r\n */\r\n @Input() @XWithConfig<XCarouselDirection>(X_CONFIG_NAME, 'horizontal') direction?: XCarouselDirection;\r\n /**\r\n * @zh_CN 自动切换\r\n * @en_US Automatic switching\r\n */\r\n @Input() @XInputBoolean() autoplay: XBoolean = true;\r\n /**\r\n * @zh_CN 自动切换时间间隔\r\n * @en_US Automatic switching time interval\r\n */\r\n @Input() interval: XNumber = 3000;\r\n /**\r\n * @zh_CN 切换器否显示在外面\r\n * @en_US Whether the switcher is displayed outside\r\n */\r\n @Input() @XInputBoolean() outside?: XBoolean;\r\n /**\r\n * @zh_CN 是否以卡片的方式显示幻灯片\r\n * @en_US Whether to display the slideshow as a card\r\n */\r\n @Input() @XInputBoolean() card?: XBoolean;\r\n /**\r\n * @zh_CN 激活的序号改变的事件\r\n * @en_US The activated sequence number changed event\r\n */\r\n @Output() activeChange = new EventEmitter<number>();\r\n}\r\n\r\n/**\r\n * @zh_CN 指示器切换方式\r\n * @en_US Indicator switching method\r\n */\r\nexport type XCarouselTrigger = XTrigger;\r\n\r\n/**\r\n * @zh_CN 切换箭头显示方式\r\n * @en_US Toggle arrow display\r\n */\r\nexport type XCarouselArrow = XShadow;\r\n\r\n/**\r\n * @zh_CN 走马灯展示的方向\r\n * @en_US The direction of the revolving lantern\r\n */\r\nexport type XCarouselDirection = XDisplayDirection;\r\n\r\n/**\r\n * Carousel Panel\r\n * @selector x-carousel-panel\r\n * @decorator component\r\n */\r\nexport const XCarouselPanelPrefix = 'x-carousel-panel';\r\n\r\n/**\r\n * Carousel Panel Property\r\n */\r\n@Component({ selector: `${XCarouselPanelPrefix}-property`, template: '' })\r\nexport class XCarouselPanelProperty extends XProperty {\r\n /**\r\n * @zh_CN 激活当前幻灯片\r\n * @en_US Activate the current slide\r\n */\r\n @Input() @XInputBoolean() active?: XBoolean;\r\n}\r\n","import {\r\n Component,\r\n OnInit,\r\n ViewEncapsulation,\r\n Renderer2,\r\n ElementRef,\r\n ChangeDetectorRef,\r\n ChangeDetectionStrategy,\r\n SimpleChanges,\r\n OnChanges,\r\n ViewChild,\r\n PLATFORM_ID,\r\n inject\r\n} from '@angular/core';\r\nimport { XCarouselPrefix, XCarouselProperty } from './carousel.property';\r\nimport { XIsUndefined, XIsChange, XIsEmpty, XNumber, XResize, XConfigService, XResizeObserver } from '@ng-nest/ui/core';\r\nimport { BehaviorSubject, Subject } from 'rxjs';\r\nimport { takeUntil, debounceTime } from 'rxjs/operators';\r\nimport { isPlatformBrowser } from '@angular/common';\r\n\r\n@Component({\r\n selector: `${XCarouselPrefix}`,\r\n templateUrl: './carousel.component.html',\r\n styleUrls: ['./carousel.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class XCarouselComponent extends XCarouselProperty implements OnInit, OnChanges {\r\n @ViewChild('carousel') carousel!: ElementRef<HTMLElement>;\r\n @ViewChild('content') content!: ElementRef<HTMLElement>;\r\n start: number = -1;\r\n before!: number;\r\n timer: any;\r\n panelChanges: BehaviorSubject<any>[] = [];\r\n platformId = inject(PLATFORM_ID);\r\n isBrowser = true;\r\n private _unSubject = new Subject<void>();\r\n private _resizeObserver!: XResizeObserver;\r\n\r\n constructor(\r\n public renderer: Renderer2,\r\n public elementRef: ElementRef<HTMLElement>,\r\n public cdr: ChangeDetectorRef,\r\n public configService: XConfigService\r\n ) {\r\n super();\r\n this.isBrowser = isPlatformBrowser(this.platformId);\r\n }\r\n\r\n ngOnInit() {\r\n this.setClassMap();\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.autoplay && this.resetInterval();\r\n XResize(this.content.nativeElement)\r\n .pipe(debounceTime(30), takeUntil(this._unSubject))\r\n .subscribe((x) => {\r\n this.panelChanges.forEach((sub) => sub.next(true));\r\n this._resizeObserver = x.resizeObserver;\r\n this.cdr.detectChanges();\r\n });\r\n }\r\n\r\n ngOnChanges(simples: SimpleChanges): void {\r\n const { active } = simples;\r\n XIsChange(active) && this.setActiveItem(Number(this.active));\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.timer && clearInterval(this.timer);\r\n this.panelChanges.forEach((x) => x.complete());\r\n this._unSubject.complete();\r\n this._unSubject.unsubscribe();\r\n this._resizeObserver?.disconnect();\r\n }\r\n\r\n action(index: XNumber, increase: number, event?: string): void {\r\n if (!XIsUndefined(event) && this.trigger !== event) return;\r\n this.autoplay && this.resetInterval();\r\n this.setActiveItem(Number(index) + increase);\r\n }\r\n\r\n resetInterval(): void {\r\n if (!this.isBrowser) return;\r\n this.timer && clearInterval(this.timer);\r\n this.timer = setInterval(() => {\r\n this.setActiveItem(Number(this.active) + 1);\r\n }, Number(this.interval));\r\n }\r\n\r\n setActiveItem(index: number): void {\r\n if (this.start === -1) return;\r\n this.before = Number(this.active);\r\n const nextValue = index > this.start ? 0 : index < 0 ? this.start : index;\r\n this.active = nextValue;\r\n this.panelChanges.forEach((sub) => sub.next(true));\r\n this.activeChange.emit(this.active);\r\n this.cdr.detectChanges();\r\n }\r\n\r\n setClassMap() {\r\n this.classMap[`${XCarouselPrefix}-${this.direction}`] = !XIsEmpty(this.direction);\r\n }\r\n\r\n getActivated(index: number) {\r\n return Number(this.active) === index;\r\n }\r\n\r\n trackByPanel(index: number, _item: any) {\r\n return index;\r\n }\r\n}\r\n","<div #carousel class=\"x-carousel\" [ngClass]=\"classMap\" [class.x-carousel-arrow-always]=\"arrow === 'always'\">\r\n <div #content class=\"x-carousel-content\" [style.height]=\"height\">\r\n <ng-container *ngIf=\"arrow !== 'never' && direction !== 'vertical'\">\r\n <x-button class=\"arrow-left\" icon=\"fto-chevron-left\" (click)=\"action(active, -1)\"></x-button>\r\n <x-button class=\"arrow-right\" icon=\"fto-chevron-right\" (click)=\"action(active, 1)\"></x-button>\r\n </ng-container>\r\n <ng-content></ng-content>\r\n </div>\r\n <ul class=\"x-carousel-indicator\" [class.x-carousel-indicator-outside]=\"outside || card\">\r\n <li\r\n *ngFor=\"let panel of panelChanges; let i = index; trackBy: trackByPanel\"\r\n [class.x-activated]=\"getActivated(i)\"\r\n (click)=\"action(i, 0, 'click')\"\r\n (mouseenter)=\"action(i, 0, 'hover')\"\r\n >\r\n <x-button type=\"text\"></x-button>\r\n </li>\r\n </ul>\r\n</div>\r\n","import {\r\n Component,\r\n OnInit,\r\n ViewEncapsulation,\r\n Renderer2,\r\n ElementRef,\r\n ChangeDetectorRef,\r\n ChangeDetectionStrategy,\r\n Host,\r\n Optional\r\n} from '@angular/core';\r\nimport { XCarouselPanelPrefix, XCarouselPanelProperty } from './carousel.property';\r\nimport { XDropAnimation, XConfigService } from '@ng-nest/ui/core';\r\nimport { XCarouselComponent } from './carousel.component';\r\nimport { DomSanitizer } from '@angular/platform-browser';\r\nimport { BehaviorSubject, Subject, takeUntil } from 'rxjs';\r\n\r\n@Component({\r\n selector: `${XCarouselPanelPrefix}`,\r\n templateUrl: './carousel-panel.component.html',\r\n styleUrls: ['./carousel-panel.component.scss'],\r\n animations: [XDropAnimation],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class XCarouselPanelComponent extends XCarouselPanelProperty implements OnInit {\r\n index!: number;\r\n width!: number;\r\n height!: number;\r\n animating!: boolean;\r\n preTranslate!: number;\r\n cardScale = 0.83;\r\n scale = 1;\r\n inStage = false;\r\n updateSub = new BehaviorSubject(false);\r\n unSubject = new Subject<void>();\r\n\r\n constructor(\r\n @Optional() @Host() public carousel: XCarouselComponent,\r\n public renderer: Renderer2,\r\n public elementRef: ElementRef<HTMLElement>,\r\n public sanitizer: DomSanitizer,\r\n public cdr: ChangeDetectorRef,\r\n public configService: XConfigService\r\n ) {\r\n super();\r\n }\r\n\r\n ngOnInit() {\r\n this.carousel.start++;\r\n this.index = this.carousel.start;\r\n this.setClass('x-carousel-card', Boolean(this.carousel.card));\r\n this.carousel.panelChanges.push(this.updateSub);\r\n this.updateSub.pipe(takeUntil(this.unSubject)).subscribe((x) => {\r\n if (x) this.update();\r\n });\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.carousel.start--;\r\n const idx = this.carousel.panelChanges.indexOf(this.updateSub);\r\n this.carousel.panelChanges.splice(idx, 1);\r\n this.unSubject.next();\r\n this.unSubject.complete();\r\n }\r\n\r\n setActive() {\r\n const isActive: boolean = this.carousel.active === this.index;\r\n if (this.active !== isActive) {\r\n this.active = isActive;\r\n this.setClass('x-activated', this.active);\r\n }\r\n }\r\n\r\n setStyles() {\r\n this.width = this.elementRef.nativeElement.offsetWidth;\r\n this.height = this.elementRef.nativeElement.offsetHeight;\r\n\r\n let translate: number;\r\n let offset: number = Number(this.carousel.active) - this.index;\r\n let distance = this.width;\r\n let translateType = 'translateX';\r\n if (this.carousel.card) {\r\n if (this.carousel.direction === 'vertical') {\r\n console.warn('[x-carousel] vertical direction is not supported in card mode');\r\n }\r\n this.inStage = Math.round(Math.abs(offset)) <= 1;\r\n this.setClass('x-carousel-in-stage', this.inStage);\r\n translate = this.calcCardTranslate(this.index, Number(this.carousel.active));\r\n this.scale = offset === 0 ? 1 : this.cardScale;\r\n } else {\r\n if (this.carousel.direction === 'vertical') {\r\n distance = this.height;\r\n translateType = 'translateY';\r\n }\r\n const map: any = {\r\n '-2': -distance,\r\n '-1': distance,\r\n '0': 0,\r\n '1': 0 - distance,\r\n '2': distance\r\n };\r\n offset = offset < -2 ? -2 : offset > 2 ? 2 : offset;\r\n translate = map[offset];\r\n }\r\n this.animating =\r\n this.carousel.active === this.index ||\r\n this.carousel.before === this.index ||\r\n this.carousel.start === Math.abs(offset) ||\r\n Boolean(this.carousel.card);\r\n this.setClass('x-carousel-animating', this.animating);\r\n this.renderer.setStyle(this.elementRef.nativeElement, 'transform', `${translateType}(${translate}px) scale(${this.scale})`);\r\n }\r\n\r\n calcCardTranslate(index: number, activeIndex: number) {\r\n const parentWidth = this.carousel.carousel.nativeElement.offsetWidth;\r\n let offset: number = index - activeIndex;\r\n let activeFirstOrLast = this.carousel.start > 1 && this.carousel.start === Math.abs(offset);\r\n if (this.inStage || activeFirstOrLast) {\r\n if (activeFirstOrLast) offset = offset < 0 ? 1 : -1;\r\n return (parentWidth * ((2 - this.cardScale) * offset + 1)) / 4;\r\n } else if (index < activeIndex) {\r\n return (-(1 + this.cardScale) * parentWidth) / 4;\r\n } else {\r\n return ((3 + this.cardScale) * parentWidth) / 4;\r\n }\r\n }\r\n\r\n update() {\r\n this.setActive();\r\n this.setStyles();\r\n this.cdr.detectChanges();\r\n }\r\n\r\n panelClick() {\r\n if (this.carousel.card && this.carousel.active !== this.index) {\r\n this.carousel.autoplay && this.carousel.resetInterval();\r\n this.carousel.setActiveItem(this.index);\r\n }\r\n }\r\n\r\n setClass(cls: string, value: boolean) {\r\n if (value) this.renderer.addClass(this.elementRef.nativeElement, cls);\r\n else this.renderer.removeClass(this.elementRef.nativeElement, cls);\r\n }\r\n}\r\n","<div #carouselPanel class=\"x-carousel-panel\" (click)=\"panelClick()\">\r\n <div *ngIf=\"carousel?.card\" [hidden]=\"active\" class=\"x-carousel-mask\"></div>\r\n <ng-content></ng-content>\r\n</div>\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { XCarouselComponent } from './carousel.component';\r\nimport { XCarouselPanelComponent } from './carousel-panel.component';\r\nimport { XButtonModule } from '@ng-nest/ui/button';\r\nimport { XCarouselProperty, XCarouselPanelProperty } from './carousel.property';\r\n\r\n@NgModule({\r\n declarations: [XCarouselComponent, XCarouselPanelComponent, XCarouselProperty, XCarouselPanelProperty],\r\n exports: [XCarouselComponent, XCarouselPanelComponent],\r\n imports: [CommonModule, XButtonModule]\r\n})\r\nexport class XCarouselModule {}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["takeUntil","i1.XCarouselComponent","i2","i3","i4"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ng-nest-ui-carousel.mjs","sources":["../../../../lib/ng-nest/ui/carousel/carousel.property.ts","../../../../lib/ng-nest/ui/carousel/carousel.component.ts","../../../../lib/ng-nest/ui/carousel/carousel.component.html","../../../../lib/ng-nest/ui/carousel/carousel-panel.component.ts","../../../../lib/ng-nest/ui/carousel/carousel-panel.component.html","../../../../lib/ng-nest/ui/carousel/carousel.module.ts","../../../../lib/ng-nest/ui/carousel/ng-nest-ui-carousel.ts"],"sourcesContent":["import {\r\n XProperty,\r\n XInputNumber,\r\n XInputBoolean,\r\n XNumber,\r\n XBoolean,\r\n XWithConfig,\r\n XShadow,\r\n XDisplayDirection,\r\n XTrigger\r\n} from '@ng-nest/ui/core';\r\nimport { Input, Output, EventEmitter, Component } from '@angular/core';\r\n\r\n/**\r\n * Carousel\r\n * @selector x-carousel\r\n * @decorator component\r\n */\r\nexport const XCarouselPrefix = 'x-carousel';\r\nconst X_CONFIG_NAME = 'carousel';\r\n\r\n/**\r\n * Carousel Property\r\n */\r\n@Component({ selector: `${XCarouselPrefix}-property`, template: '' })\r\nexport class XCarouselProperty extends XProperty {\r\n /**\r\n * @zh_CN 当前激活的幻灯片索引\r\n * @en_US Index of the currently active slide\r\n */\r\n @Input() @XInputNumber() active: XNumber = 0;\r\n /**\r\n * @zh_CN 幻灯片高度\r\n * @en_US Slide height\r\n */\r\n @Input() @XWithConfig<string>(X_CONFIG_NAME, '15rem') height?: string;\r\n /**\r\n * @zh_CN 切换器触发方式\r\n * @en_US Switcher trigger method\r\n */\r\n @Input() @XWithConfig<XCarouselTrigger>(X_CONFIG_NAME, 'hover') trigger?: XCarouselTrigger;\r\n /**\r\n * @zh_CN 箭头显示影藏方式\r\n * @en_US Arrow shows how to hide\r\n */\r\n @Input() @XWithConfig<XCarouselArrow>(X_CONFIG_NAME, 'hover') arrow?: XCarouselArrow;\r\n /**\r\n * @zh_CN 幻灯片轮播方向\r\n * @en_US Slide rotation direction\r\n */\r\n @Input() @XWithConfig<XCarouselDirection>(X_CONFIG_NAME, 'horizontal') direction?: XCarouselDirection;\r\n /**\r\n * @zh_CN 自动切换\r\n * @en_US Automatic switching\r\n */\r\n @Input() @XInputBoolean() autoplay: XBoolean = true;\r\n /**\r\n * @zh_CN 自动切换时间间隔\r\n * @en_US Automatic switching time interval\r\n */\r\n @Input() interval: XNumber = 3000;\r\n /**\r\n * @zh_CN 切换器否显示在外面\r\n * @en_US Whether the switcher is displayed outside\r\n */\r\n @Input() @XInputBoolean() outside?: XBoolean;\r\n /**\r\n * @zh_CN 是否以卡片的方式显示幻灯片\r\n * @en_US Whether to display the slideshow as a card\r\n */\r\n @Input() @XInputBoolean() card?: XBoolean;\r\n /**\r\n * @zh_CN 显示文字\r\n * @en_US Display text\r\n */\r\n @Input() text?: string;\r\n /**\r\n * @zh_CN 显示进度条\r\n * @en_US Show progress\r\n */\r\n @Input() @XInputBoolean() progress?: XBoolean;\r\n /**\r\n * @zh_CN 进度条颜色\r\n * @en_US Progress color\r\n */\r\n @Input() progressColor?: string;\r\n /**\r\n * @zh_CN 显示当前页面\r\n * @en_US Show current page\r\n */\r\n @Input() @XInputBoolean() current?: XBoolean;\r\n /**\r\n * @zh_CN 激活的序号改变的事件\r\n * @en_US The activated sequence number changed event\r\n */\r\n @Output() activeChange = new EventEmitter<number>();\r\n}\r\n\r\n/**\r\n * @zh_CN 指示器切换方式\r\n * @en_US Indicator switching method\r\n */\r\nexport type XCarouselTrigger = XTrigger;\r\n\r\n/**\r\n * @zh_CN 切换箭头显示方式\r\n * @en_US Toggle arrow display\r\n */\r\nexport type XCarouselArrow = XShadow;\r\n\r\n/**\r\n * @zh_CN 走马灯展示的方向\r\n * @en_US The direction of the revolving lantern\r\n */\r\nexport type XCarouselDirection = XDisplayDirection;\r\n\r\n/**\r\n * Carousel Panel\r\n * @selector x-carousel-panel\r\n * @decorator component\r\n */\r\nexport const XCarouselPanelPrefix = 'x-carousel-panel';\r\n\r\n/**\r\n * Carousel Panel Property\r\n */\r\n@Component({ selector: `${XCarouselPanelPrefix}-property`, template: '' })\r\nexport class XCarouselPanelProperty extends XProperty {\r\n /**\r\n * @zh_CN 激活当前幻灯片\r\n * @en_US Activate the current slide\r\n */\r\n @Input() @XInputBoolean() active?: XBoolean;\r\n}\r\n","import {\r\n Component,\r\n OnInit,\r\n ViewEncapsulation,\r\n Renderer2,\r\n ElementRef,\r\n ChangeDetectorRef,\r\n ChangeDetectionStrategy,\r\n SimpleChanges,\r\n OnChanges,\r\n ViewChild,\r\n PLATFORM_ID,\r\n inject\r\n} from '@angular/core';\r\nimport { XCarouselPrefix, XCarouselProperty } from './carousel.property';\r\nimport { XIsUndefined, XIsChange, XIsEmpty, XNumber, XResize, XConfigService, XResizeObserver } from '@ng-nest/ui/core';\r\nimport { BehaviorSubject, Subject } from 'rxjs';\r\nimport { takeUntil, debounceTime } from 'rxjs/operators';\r\nimport { isPlatformBrowser } from '@angular/common';\r\n\r\n@Component({\r\n selector: `${XCarouselPrefix}`,\r\n templateUrl: './carousel.component.html',\r\n styleUrls: ['./carousel.component.scss'],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class XCarouselComponent extends XCarouselProperty implements OnInit, OnChanges {\r\n @ViewChild('carousel') carousel!: ElementRef<HTMLElement>;\r\n @ViewChild('content') content!: ElementRef<HTMLElement>;\r\n start: number = -1;\r\n before!: number;\r\n timer: any;\r\n precentTimer: any;\r\n panelChanges: BehaviorSubject<any>[] = [];\r\n platformId = inject(PLATFORM_ID);\r\n isBrowser = true;\r\n percent = 0;\r\n count = 0;\r\n private _unSubject = new Subject<void>();\r\n private _resizeObserver!: XResizeObserver;\r\n\r\n get page() {\r\n return Number(this.active) + 1;\r\n }\r\n\r\n constructor(\r\n public renderer: Renderer2,\r\n public elementRef: ElementRef<HTMLElement>,\r\n public cdr: ChangeDetectorRef,\r\n public configService: XConfigService\r\n ) {\r\n super();\r\n this.isBrowser = isPlatformBrowser(this.platformId);\r\n }\r\n\r\n ngOnInit() {\r\n this.setClassMap();\r\n }\r\n\r\n ngAfterViewInit() {\r\n this.autoplay && this.resetInterval();\r\n XResize(this.content.nativeElement)\r\n .pipe(debounceTime(30), takeUntil(this._unSubject))\r\n .subscribe((x) => {\r\n this.panelChanges.forEach((sub) => sub.next(true));\r\n this._resizeObserver = x.resizeObserver;\r\n this.cdr.detectChanges();\r\n });\r\n }\r\n\r\n ngOnChanges(simples: SimpleChanges): void {\r\n const { active } = simples;\r\n XIsChange(active) && this.setActiveItem(Number(this.active));\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.timer && clearInterval(this.timer);\r\n this.panelChanges.forEach((x) => x.complete());\r\n this._unSubject.complete();\r\n this._unSubject.unsubscribe();\r\n this._resizeObserver?.disconnect();\r\n }\r\n\r\n action(index: XNumber, increase: number, event?: string): void {\r\n if (!XIsUndefined(event) && this.trigger !== event) return;\r\n this.autoplay && this.resetInterval();\r\n this.setActiveItem(Number(index) + increase);\r\n }\r\n\r\n resetInterval(): void {\r\n if (!this.isBrowser) return;\r\n this.timer && clearInterval(this.timer);\r\n this.precentTimer && clearInterval(this.precentTimer);\r\n this.percent = 0;\r\n const js = Number(this.interval) / 100;\r\n this.precentTimer = setInterval(() => {\r\n this.percent += 1;\r\n this.cdr.detectChanges();\r\n }, js);\r\n this.timer = setInterval(() => {\r\n this.percent = 0;\r\n this.setActiveItem(Number(this.active) + 1);\r\n }, Number(this.interval));\r\n }\r\n\r\n setActiveItem(index: number): void {\r\n if (this.start === -1) return;\r\n this.before = Number(this.active);\r\n const nextValue = index > this.start ? 0 : index < 0 ? this.start : index;\r\n this.active = nextValue;\r\n this.panelChanges.forEach((sub) => sub.next(true));\r\n this.activeChange.emit(this.active);\r\n this.cdr.detectChanges();\r\n }\r\n\r\n setClassMap() {\r\n this.classMap[`${XCarouselPrefix}-${this.direction}`] = !XIsEmpty(this.direction);\r\n }\r\n\r\n getActivated(index: number) {\r\n return Number(this.active) === index;\r\n }\r\n\r\n trackByPanel(index: number, _item: any) {\r\n return index;\r\n }\r\n}\r\n","<div\r\n #carousel\r\n class=\"x-carousel\"\r\n [ngClass]=\"classMap\"\r\n [class.x-carousel-arrow-always]=\"arrow === 'always'\"\r\n [class.x-carousel-has-current]=\"current\"\r\n [class.x-carousel-indicator-outside]=\"outside || card\"\r\n>\r\n <div #content class=\"x-carousel-content\" [style.height]=\"height\">\r\n <ng-container *ngIf=\"arrow !== 'never' && direction !== 'vertical'\">\r\n <x-button class=\"arrow-left\" icon=\"fto-chevron-left\" (click)=\"action(active, -1)\"></x-button>\r\n <x-button class=\"arrow-right\" icon=\"fto-chevron-right\" (click)=\"action(active, 1)\"></x-button>\r\n </ng-container>\r\n <ng-content></ng-content>\r\n <div class=\"x-carousel-text\" *ngIf=\"text\">{{ text }}</div>\r\n <div class=\"x-carousel-current\" *ngIf=\"current\">\r\n <span class=\"x-carousel-active\">{{ page }}</span> /\r\n <span class=\"x-carousel-count\">{{ count }}</span>\r\n </div>\r\n <div class=\"x-carousel-progress\" *ngIf=\"progress\">\r\n <x-progress [percent]=\"percent\" [color]=\"progressColor\" [info]=\"false\" height=\"0.325rem\"></x-progress>\r\n </div>\r\n </div>\r\n <ul class=\"x-carousel-indicator\">\r\n <li\r\n *ngFor=\"let panel of panelChanges; let i = index; trackBy: trackByPanel\"\r\n [class.x-activated]=\"getActivated(i)\"\r\n (click)=\"action(i, 0, 'click')\"\r\n (mouseenter)=\"action(i, 0, 'hover')\"\r\n >\r\n <x-button type=\"text\"></x-button>\r\n </li>\r\n </ul>\r\n</div>\r\n","import {\r\n Component,\r\n OnInit,\r\n ViewEncapsulation,\r\n Renderer2,\r\n ElementRef,\r\n ChangeDetectorRef,\r\n ChangeDetectionStrategy,\r\n Host,\r\n Optional\r\n} from '@angular/core';\r\nimport { XCarouselPanelPrefix, XCarouselPanelProperty } from './carousel.property';\r\nimport { XDropAnimation, XConfigService } from '@ng-nest/ui/core';\r\nimport { XCarouselComponent } from './carousel.component';\r\nimport { DomSanitizer } from '@angular/platform-browser';\r\nimport { BehaviorSubject, Subject, takeUntil } from 'rxjs';\r\n\r\n@Component({\r\n selector: `${XCarouselPanelPrefix}`,\r\n templateUrl: './carousel-panel.component.html',\r\n styleUrls: ['./carousel-panel.component.scss'],\r\n animations: [XDropAnimation],\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush\r\n})\r\nexport class XCarouselPanelComponent extends XCarouselPanelProperty implements OnInit {\r\n index!: number;\r\n width!: number;\r\n height!: number;\r\n animating!: boolean;\r\n preTranslate!: number;\r\n cardScale = 0.83;\r\n scale = 1;\r\n inStage = false;\r\n updateSub = new BehaviorSubject(false);\r\n unSubject = new Subject<void>();\r\n\r\n constructor(\r\n @Optional() @Host() public carousel: XCarouselComponent,\r\n public renderer: Renderer2,\r\n public elementRef: ElementRef<HTMLElement>,\r\n public sanitizer: DomSanitizer,\r\n public cdr: ChangeDetectorRef,\r\n public configService: XConfigService\r\n ) {\r\n super();\r\n }\r\n\r\n ngOnInit() {\r\n this.carousel.count++;\r\n this.carousel.start++;\r\n this.index = this.carousel.start;\r\n this.setClass('x-carousel-card', Boolean(this.carousel.card));\r\n this.carousel.panelChanges.push(this.updateSub);\r\n this.updateSub.pipe(takeUntil(this.unSubject)).subscribe((x) => {\r\n if (x) this.update();\r\n });\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.carousel.start--;\r\n const idx = this.carousel.panelChanges.indexOf(this.updateSub);\r\n this.carousel.panelChanges.splice(idx, 1);\r\n this.unSubject.next();\r\n this.unSubject.complete();\r\n }\r\n\r\n setActive() {\r\n const isActive: boolean = this.carousel.active === this.index;\r\n if (this.active !== isActive) {\r\n this.active = isActive;\r\n this.setClass('x-activated', this.active);\r\n }\r\n }\r\n\r\n setStyles() {\r\n this.width = this.elementRef.nativeElement.offsetWidth;\r\n this.height = this.elementRef.nativeElement.offsetHeight;\r\n\r\n let translate: number;\r\n let offset: number = Number(this.carousel.active) - this.index;\r\n let distance = this.width;\r\n let translateType = 'translateX';\r\n if (this.carousel.card) {\r\n if (this.carousel.direction === 'vertical') {\r\n console.warn('[x-carousel] vertical direction is not supported in card mode');\r\n }\r\n this.inStage = Math.round(Math.abs(offset)) <= 1;\r\n this.setClass('x-carousel-in-stage', this.inStage);\r\n translate = this.calcCardTranslate(this.index, Number(this.carousel.active));\r\n this.scale = offset === 0 ? 1 : this.cardScale;\r\n } else {\r\n if (this.carousel.direction === 'vertical') {\r\n distance = this.height;\r\n translateType = 'translateY';\r\n }\r\n const map: any = {\r\n '-2': -distance,\r\n '-1': distance,\r\n '0': 0,\r\n '1': 0 - distance,\r\n '2': distance\r\n };\r\n offset = offset < -2 ? -2 : offset > 2 ? 2 : offset;\r\n translate = map[offset];\r\n }\r\n this.animating =\r\n this.carousel.active === this.index ||\r\n this.carousel.before === this.index ||\r\n this.carousel.start === Math.abs(offset) ||\r\n Boolean(this.carousel.card);\r\n this.setClass('x-carousel-animating', this.animating);\r\n this.renderer.setStyle(this.elementRef.nativeElement, 'transform', `${translateType}(${translate}px) scale(${this.scale})`);\r\n }\r\n\r\n calcCardTranslate(index: number, activeIndex: number) {\r\n const parentWidth = this.carousel.carousel.nativeElement.offsetWidth;\r\n let offset: number = index - activeIndex;\r\n let activeFirstOrLast = this.carousel.start > 1 && this.carousel.start === Math.abs(offset);\r\n if (this.inStage || activeFirstOrLast) {\r\n if (activeFirstOrLast) offset = offset < 0 ? 1 : -1;\r\n return (parentWidth * ((2 - this.cardScale) * offset + 1)) / 4;\r\n } else if (index < activeIndex) {\r\n return (-(1 + this.cardScale) * parentWidth) / 4;\r\n } else {\r\n return ((3 + this.cardScale) * parentWidth) / 4;\r\n }\r\n }\r\n\r\n update() {\r\n this.setActive();\r\n this.setStyles();\r\n this.cdr.detectChanges();\r\n }\r\n\r\n panelClick() {\r\n if (this.carousel.card && this.carousel.active !== this.index) {\r\n this.carousel.autoplay && this.carousel.resetInterval();\r\n this.carousel.setActiveItem(this.index);\r\n }\r\n }\r\n\r\n setClass(cls: string, value: boolean) {\r\n if (value) this.renderer.addClass(this.elementRef.nativeElement, cls);\r\n else this.renderer.removeClass(this.elementRef.nativeElement, cls);\r\n }\r\n}\r\n","<div #carouselPanel class=\"x-carousel-panel\" (click)=\"panelClick()\">\r\n <div *ngIf=\"carousel?.card\" [hidden]=\"active\" class=\"x-carousel-mask\"></div>\r\n <ng-content></ng-content>\r\n</div>\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { XCarouselComponent } from './carousel.component';\r\nimport { XCarouselPanelComponent } from './carousel-panel.component';\r\nimport { XButtonModule } from '@ng-nest/ui/button';\r\nimport { XCarouselProperty, XCarouselPanelProperty } from './carousel.property';\r\nimport { XProgressModule } from '@ng-nest/ui/progress';\r\n\r\n@NgModule({\r\n declarations: [XCarouselComponent, XCarouselPanelComponent, XCarouselProperty, XCarouselPanelProperty],\r\n exports: [XCarouselComponent, XCarouselPanelComponent],\r\n imports: [CommonModule, XButtonModule, XProgressModule]\r\n})\r\nexport class XCarouselModule {}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["takeUntil","i1.XCarouselComponent","i2","i3","i4"],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
2
|
import { EventEmitter, Component, Input, Output, ViewEncapsulation, ChangeDetectionStrategy, ViewChild, HostBinding, HostListener, inject, NgModule } from '@angular/core';
|
|
3
3
|
import { __decorate } from 'tslib';
|
|
4
|
-
import { XWithConfig, XInputBoolean, XInputNumber, XDataConvert, XIsChange, XIsFunction, XIsEmpty, XIsNull, reqAnimFrame, XConnectBaseAnimation, XIsDate,
|
|
4
|
+
import { XWithConfig, XInputBoolean, XInputNumber, XDataConvert, XIsChange, XIsFunction, XIsEmpty, XIsNull, reqAnimFrame, XIsNumber, XConnectBaseAnimation, XIsDate, XIsString, XClearClass, XParents } from '@ng-nest/ui/core';
|
|
5
5
|
import { XControlValueAccessor, XValueAccessor, XBaseFormModule } from '@ng-nest/ui/base-form';
|
|
6
6
|
import { Subject, fromEvent } from 'rxjs';
|
|
7
7
|
import { map, takeUntil, filter } from 'rxjs/operators';
|
|
@@ -391,7 +391,10 @@ class XTimePickerFrameComponent {
|
|
|
391
391
|
const perTick = (difference / duration) * 10;
|
|
392
392
|
this.scrollAnimating[clsName] = true;
|
|
393
393
|
reqAnimFrame(() => {
|
|
394
|
-
|
|
394
|
+
const num = element.scrollTop + perTick;
|
|
395
|
+
if (XIsNumber(num) && num !== Infinity) {
|
|
396
|
+
element.scrollTop = num;
|
|
397
|
+
}
|
|
395
398
|
if (element.scrollTop === to || duration <= 0) {
|
|
396
399
|
this.scrollAnimating[clsName] = false;
|
|
397
400
|
return;
|