ngx-tethys 19.1.0-next.0 → 19.1.0-next.2
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/CHANGELOG.md +36 -0
- package/README.md +0 -1
- package/action/action.component.d.ts +7 -8
- package/affix/affix.component.d.ts +3 -4
- package/arrow-switcher/arrow-switcher.component.d.ts +5 -1
- package/button/button-group.component.d.ts +5 -12
- package/button/button-icon.component.d.ts +14 -28
- package/button/button.component.d.ts +17 -27
- package/date-picker/styles/calendar.scss +1 -1
- package/date-picker/styles/range-picker.scss +1 -0
- package/date-picker/styles/week-picker.scss +1 -0
- package/dropdown/dropdown-active.directive.d.ts +4 -5
- package/dropdown/dropdown-menu-item.directive.d.ts +7 -15
- package/dropdown/dropdown-menu.component.d.ts +6 -13
- package/dropdown/dropdown-submenu.component.d.ts +2 -4
- package/dropdown/dropdown.directive.d.ts +14 -25
- package/fesm2022/ngx-tethys-action.mjs +15 -16
- package/fesm2022/ngx-tethys-action.mjs.map +1 -1
- package/fesm2022/ngx-tethys-affix.mjs +14 -18
- package/fesm2022/ngx-tethys-affix.mjs.map +1 -1
- package/fesm2022/ngx-tethys-arrow-switcher.mjs +15 -3
- package/fesm2022/ngx-tethys-arrow-switcher.mjs.map +1 -1
- package/fesm2022/ngx-tethys-button.mjs +225 -322
- package/fesm2022/ngx-tethys-button.mjs.map +1 -1
- package/fesm2022/ngx-tethys-carousel.mjs +1 -0
- package/fesm2022/ngx-tethys-carousel.mjs.map +1 -1
- package/fesm2022/ngx-tethys-collapse.mjs +2 -2
- package/fesm2022/ngx-tethys-collapse.mjs.map +1 -1
- package/fesm2022/ngx-tethys-date-picker.mjs +6 -6
- package/fesm2022/ngx-tethys-date-picker.mjs.map +1 -1
- package/fesm2022/ngx-tethys-dropdown.mjs +155 -203
- package/fesm2022/ngx-tethys-dropdown.mjs.map +1 -1
- package/fesm2022/ngx-tethys-flexible-text.mjs +67 -86
- package/fesm2022/ngx-tethys-flexible-text.mjs.map +1 -1
- package/fesm2022/ngx-tethys-grid.mjs +10 -15
- package/fesm2022/ngx-tethys-grid.mjs.map +1 -1
- package/fesm2022/ngx-tethys-icon.mjs +44 -59
- package/fesm2022/ngx-tethys-icon.mjs.map +1 -1
- package/fesm2022/ngx-tethys-image.mjs +40 -36
- package/fesm2022/ngx-tethys-image.mjs.map +1 -1
- package/fesm2022/ngx-tethys-input-number.mjs.map +1 -1
- package/fesm2022/ngx-tethys-progress.mjs +7 -11
- package/fesm2022/ngx-tethys-progress.mjs.map +1 -1
- package/fesm2022/ngx-tethys-property.mjs +8 -19
- package/fesm2022/ngx-tethys-property.mjs.map +1 -1
- package/fesm2022/ngx-tethys-radio.mjs +42 -54
- package/fesm2022/ngx-tethys-radio.mjs.map +1 -1
- package/fesm2022/ngx-tethys-rate.mjs +115 -157
- package/fesm2022/ngx-tethys-rate.mjs.map +1 -1
- package/fesm2022/ngx-tethys-resizable.mjs +111 -157
- package/fesm2022/ngx-tethys-resizable.mjs.map +1 -1
- package/fesm2022/ngx-tethys-segment.mjs +84 -103
- package/fesm2022/ngx-tethys-segment.mjs.map +1 -1
- package/fesm2022/ngx-tethys-shared.mjs +2 -1
- package/fesm2022/ngx-tethys-shared.mjs.map +1 -1
- package/fesm2022/ngx-tethys-slide.mjs +37 -56
- package/fesm2022/ngx-tethys-slide.mjs.map +1 -1
- package/fesm2022/ngx-tethys-slider.mjs.map +1 -1
- package/fesm2022/ngx-tethys-space.mjs +2 -8
- package/fesm2022/ngx-tethys-space.mjs.map +1 -1
- package/fesm2022/ngx-tethys-strength.mjs +52 -66
- package/fesm2022/ngx-tethys-strength.mjs.map +1 -1
- package/fesm2022/ngx-tethys-transfer.mjs +98 -119
- package/fesm2022/ngx-tethys-transfer.mjs.map +1 -1
- package/fesm2022/ngx-tethys-tree-select.mjs +2 -4
- package/fesm2022/ngx-tethys-tree-select.mjs.map +1 -1
- package/fesm2022/ngx-tethys-tree.mjs +281 -401
- package/fesm2022/ngx-tethys-tree.mjs.map +1 -1
- package/fesm2022/ngx-tethys-upload.mjs +2 -2
- package/fesm2022/ngx-tethys-upload.mjs.map +1 -1
- package/fesm2022/ngx-tethys-vote.mjs +53 -99
- package/fesm2022/ngx-tethys-vote.mjs.map +1 -1
- package/fesm2022/ngx-tethys.mjs +1 -1
- package/fesm2022/ngx-tethys.mjs.map +1 -1
- package/flexible-text/flexible-text.component.d.ts +9 -15
- package/grid/flex.d.ts +1 -3
- package/grid/thy-row.directive.d.ts +1 -4
- package/icon/icon.component.d.ts +10 -18
- package/image/image.directive.d.ts +10 -13
- package/image/image.token.d.ts +5 -5
- package/input-number/input-number.component.d.ts +1 -1
- package/package.json +1 -1
- package/progress/progress-circle.component.d.ts +3 -5
- package/progress/progress.component.d.ts +2 -4
- package/property/properties.component.d.ts +0 -2
- package/property/property-item.component.d.ts +3 -10
- package/radio/group/radio-group.component.d.ts +5 -9
- package/rate/rate-item.component.d.ts +8 -11
- package/rate/rate.component.d.ts +18 -29
- package/resizable/resizable.directive.d.ts +18 -31
- package/resizable/resize-handle.component.d.ts +6 -7
- package/resizable/resize-handles.component.d.ts +5 -9
- package/schematics/version.d.ts +1 -1
- package/schematics/version.js +1 -1
- package/segment/segment-item.component.d.ts +9 -15
- package/segment/segment.component.d.ts +11 -15
- package/segment/segment.token.d.ts +4 -3
- package/slide/slide-body/slide-body-section.component.d.ts +2 -6
- package/slide/slide-header/slide-header.component.d.ts +6 -9
- package/space/space.component.d.ts +5 -11
- package/strength/strength.component.d.ts +8 -13
- package/transfer/transfer-list.component.d.ts +15 -15
- package/transfer/transfer.component.d.ts +20 -23
- package/tree/tree-abstract.d.ts +5 -5
- package/tree/tree-node.component.d.ts +24 -37
- package/tree/tree.class.d.ts +4 -4
- package/tree/tree.component.d.ts +47 -75
- package/tree/tree.service.d.ts +3 -4
- package/tree-select/tree-select.component.d.ts +2 -2
- package/vote/vote.component.d.ts +13 -33
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import { InjectionToken, inject, ChangeDetectorRef, ElementRef, Renderer2, NgZone, ViewChild, Component, Injectable, Injector, HostBinding, ViewEncapsulation,
|
|
2
|
+
import { InjectionToken, inject, ChangeDetectorRef, ElementRef, Renderer2, NgZone, ViewChild, Component, Injectable, Injector, HostBinding, ViewEncapsulation, input, computed, contentChild, Directive, NgModule } from '@angular/core';
|
|
3
3
|
import { DOCUMENT, NgTemplateOutlet, CommonModule } from '@angular/common';
|
|
4
4
|
import { ThySharedModule } from 'ngx-tethys/shared';
|
|
5
5
|
import { ThyAbstractOverlayConfig, ThyAbstractOverlayContainer, ThyPortalOutlet, ThyAbstractOverlayRef, ThyAbstractInternalOverlayRef, ThyAbstractOverlayService } from 'ngx-tethys/core';
|
|
@@ -401,24 +401,25 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.8", ngImpor
|
|
|
401
401
|
class ThySlideHeader {
|
|
402
402
|
constructor() {
|
|
403
403
|
this.thySlideService = inject(ThySlideService);
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
this.
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
|
|
404
|
+
/**
|
|
405
|
+
* 标题
|
|
406
|
+
*/
|
|
407
|
+
this.thyTitle = input(undefined);
|
|
408
|
+
/**
|
|
409
|
+
* 标题的图标
|
|
410
|
+
*/
|
|
411
|
+
this.thyIcon = input(undefined);
|
|
412
|
+
this.isIconFont = computed(() => (this.thyIcon() || '').includes('wtf'));
|
|
413
|
+
/**
|
|
414
|
+
* 自定义头模板
|
|
415
|
+
* @type TemplateRef
|
|
416
|
+
*/
|
|
417
|
+
this.headerTemplate = contentChild('thyHeader');
|
|
418
|
+
/**
|
|
419
|
+
* 头部操作区域模板
|
|
420
|
+
* @type TemplateRef
|
|
421
|
+
*/
|
|
422
|
+
this.headerOperateTemplate = contentChild('thyHeaderOperate');
|
|
422
423
|
}
|
|
423
424
|
ngOnInit() { }
|
|
424
425
|
closeModal(event) {
|
|
@@ -426,25 +427,14 @@ class ThySlideHeader {
|
|
|
426
427
|
this.thySlideService.close();
|
|
427
428
|
}
|
|
428
429
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.8", ngImport: i0, type: ThySlideHeader, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
429
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.8", type: ThySlideHeader, isStandalone: true, selector: "thy-slide-header", inputs: { thyTitle: "thyTitle", thyIcon: "thyIcon" }, host: {
|
|
430
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.8", type: ThySlideHeader, isStandalone: true, selector: "thy-slide-header", inputs: { thyTitle: { classPropertyName: "thyTitle", publicName: "thyTitle", isSignal: true, isRequired: false, transformFunction: null }, thyIcon: { classPropertyName: "thyIcon", publicName: "thyIcon", isSignal: true, isRequired: false, transformFunction: null } }, host: { classAttribute: "thy-slide-header" }, queries: [{ propertyName: "headerTemplate", first: true, predicate: ["thyHeader"], descendants: true, isSignal: true }, { propertyName: "headerOperateTemplate", first: true, predicate: ["thyHeaderOperate"], descendants: true, isSignal: true }], ngImport: i0, template: "@if (headerTemplate()) {\n <ng-template [ngTemplateOutlet]=\"headerTemplate()\"></ng-template>\n} @else {\n <h3 class=\"thy-slide-header-title\">\n @if (!isIconFont() && thyIcon()) {\n <thy-icon [thyIconName]=\"thyIcon()\"></thy-icon>\n } @else {\n @if (thyIcon()) {\n <i class=\"wft {{ thyIcon() }}\"></i>\n }\n }\n {{ thyTitle() }}\n </h3>\n <div class=\"thy-slide-header-main\">\n <ng-container>\n @if (headerOperateTemplate()) {\n <ng-template [ngTemplateOutlet]=\"headerOperateTemplate()\"> </ng-template>\n }\n </ng-container>\n </div>\n <a href=\"javascript:;\" class=\"mr-n2\" thyAction thyActionIcon=\"close\" (click)=\"closeModal($event)\"></a>\n}\n", dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: ThyIcon, selector: "thy-icon, [thy-icon]", inputs: ["thyIconType", "thyTwotoneColor", "thyIconName", "thyIconRotate", "thyIconSet", "thyIconLegging", "thyIconLinearGradient"] }, { kind: "component", type: ThyAction, selector: "thy-action, [thyAction]", inputs: ["thyType", "thyIcon", "thyActionIcon", "thyActive", "thyActionActive", "thyTheme", "thyHoverIcon", "thyDisabled"] }] }); }
|
|
430
431
|
}
|
|
431
432
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.8", ngImport: i0, type: ThySlideHeader, decorators: [{
|
|
432
433
|
type: Component,
|
|
433
|
-
args: [{ selector: 'thy-slide-header', imports: [NgTemplateOutlet, ThyIcon, ThyAction],
|
|
434
|
-
|
|
435
|
-
|
|
436
|
-
|
|
437
|
-
}], thyTitle: [{
|
|
438
|
-
type: Input
|
|
439
|
-
}], thyIcon: [{
|
|
440
|
-
type: Input
|
|
441
|
-
}], headerTemplate: [{
|
|
442
|
-
type: ContentChild,
|
|
443
|
-
args: ['thyHeader']
|
|
444
|
-
}], headerOperateTemplate: [{
|
|
445
|
-
type: ContentChild,
|
|
446
|
-
args: ['thyHeaderOperate']
|
|
447
|
-
}] } });
|
|
434
|
+
args: [{ selector: 'thy-slide-header', imports: [NgTemplateOutlet, ThyIcon, ThyAction], host: {
|
|
435
|
+
class: 'thy-slide-header'
|
|
436
|
+
}, template: "@if (headerTemplate()) {\n <ng-template [ngTemplateOutlet]=\"headerTemplate()\"></ng-template>\n} @else {\n <h3 class=\"thy-slide-header-title\">\n @if (!isIconFont() && thyIcon()) {\n <thy-icon [thyIconName]=\"thyIcon()\"></thy-icon>\n } @else {\n @if (thyIcon()) {\n <i class=\"wft {{ thyIcon() }}\"></i>\n }\n }\n {{ thyTitle() }}\n </h3>\n <div class=\"thy-slide-header-main\">\n <ng-container>\n @if (headerOperateTemplate()) {\n <ng-template [ngTemplateOutlet]=\"headerOperateTemplate()\"> </ng-template>\n }\n </ng-container>\n </div>\n <a href=\"javascript:;\" class=\"mr-n2\" thyAction thyActionIcon=\"close\" (click)=\"closeModal($event)\"></a>\n}\n" }]
|
|
437
|
+
}] });
|
|
448
438
|
|
|
449
439
|
/**
|
|
450
440
|
* @name thy-slide-body
|
|
@@ -474,36 +464,27 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.8", ngImpor
|
|
|
474
464
|
*/
|
|
475
465
|
class ThySlideBodySection {
|
|
476
466
|
constructor() {
|
|
477
|
-
|
|
478
|
-
|
|
479
|
-
|
|
480
|
-
|
|
481
|
-
|
|
482
|
-
* @default false
|
|
483
|
-
*/
|
|
484
|
-
set thyDividerBorder(value) {
|
|
485
|
-
this.hasDivider = value;
|
|
467
|
+
/**
|
|
468
|
+
* 是否有分割线
|
|
469
|
+
* @default false
|
|
470
|
+
*/
|
|
471
|
+
this.thyDividerBorder = input(false, { transform: coerceBooleanProperty });
|
|
486
472
|
}
|
|
487
473
|
ngOnInit() { }
|
|
488
474
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.8", ngImport: i0, type: ThySlideBodySection, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
489
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
475
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "19.2.8", type: ThySlideBodySection, isStandalone: true, selector: "thy-slide-body-section", inputs: { thyDividerBorder: { classPropertyName: "thyDividerBorder", publicName: "thyDividerBorder", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class.thy-slide-body-section-divider": "thyDividerBorder()" }, classAttribute: "thy-slide-body-section" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true }); }
|
|
490
476
|
}
|
|
491
477
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.8", ngImport: i0, type: ThySlideBodySection, decorators: [{
|
|
492
478
|
type: Component,
|
|
493
479
|
args: [{
|
|
494
480
|
selector: 'thy-slide-body-section',
|
|
495
|
-
template: '<ng-content></ng-content>'
|
|
481
|
+
template: '<ng-content></ng-content>',
|
|
482
|
+
host: {
|
|
483
|
+
class: 'thy-slide-body-section',
|
|
484
|
+
'[class.thy-slide-body-section-divider]': 'thyDividerBorder()'
|
|
485
|
+
}
|
|
496
486
|
}]
|
|
497
|
-
}]
|
|
498
|
-
type: HostBinding,
|
|
499
|
-
args: ['class.thy-slide-body-section']
|
|
500
|
-
}], hasDivider: [{
|
|
501
|
-
type: HostBinding,
|
|
502
|
-
args: ['class.thy-slide-body-section-divider']
|
|
503
|
-
}], thyDividerBorder: [{
|
|
504
|
-
type: Input,
|
|
505
|
-
args: [{ transform: coerceBooleanProperty }]
|
|
506
|
-
}] } });
|
|
487
|
+
}] });
|
|
507
488
|
|
|
508
489
|
/**
|
|
509
490
|
* @name thy-slide-footer
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ngx-tethys-slide.mjs","sources":["../../../src/slide/slide-animations.ts","../../../src/slide/slide.config.ts","../../../src/slide/slide-container.component.ts","../../../src/slide/slide-ref.service.ts","../../../src/slide/slide.service.ts","../../../src/slide/slide-layout/slide-layout.component.ts","../../../src/slide/slide-header/slide-header.component.ts","../../../src/slide/slide-header/slide-header.component.html","../../../src/slide/slide-body/slide-body.component.ts","../../../src/slide/slide-body/slide-body-section.component.ts","../../../src/slide/slide-footer/slide-footer.component.ts","../../../src/slide/drawer/drawer-container.directive.ts","../../../src/slide/slide.module.ts","../../../src/slide/ngx-tethys-slide.ts"],"sourcesContent":["import { transition, style, animate, AnimationTriggerMetadata, trigger, state } from '@angular/animations';\n\nconst animationBody = [\n transition('void => offsetLeft', [style({ width: 0 }), animate('0.2s ease-in')]),\n transition('offsetLeft => exit', [animate('0.2s', style({ width: 0 }))]),\n transition('void => offsetRight', [style({ width: 0 }), animate('0.2s ease')]),\n transition('offsetRight => exit', [animate('0.2s', style({ width: 0 }))]),\n transition('void => offsetTop', [style({ height: 0 }), animate('0.2s ease-in')]),\n transition('offsetTop => exit', [animate('0.2s', style({ height: 0 }))]),\n transition('void => offsetBottom', [style({ height: 0 }), animate('0.2s ease-in')]),\n transition('offsetBottom => exit', [animate('0.2s', style({ height: 0 }))]),\n\n state('left right top bottom', style({ transform: '*' })),\n transition('void => left', [style({ transform: 'translateX(-100%)' }), animate('0.2s ease-in')]),\n transition('left => exit', [animate('0.2s', style({ transform: 'translateX(-100%)' }))]),\n transition('void => right', [style({ transform: 'translateX(100%)' }), animate('0.2s ease-in')]),\n transition('right => exit', [animate('0.2s', style({ transform: 'translateX(100%)' }))]),\n transition('void => top', [style({ transform: 'translateY(-100%)' }), animate('0.2s ease-in')]),\n transition('top => exit', [animate('0.2s', style({ transform: 'translateY(-100%)' }))]),\n transition('void => bottom', [style({ transform: 'translateY(100%)' }), animate('0.2s ease-in')]),\n transition('bottom => exit', [animate('0.2s', style({ transform: 'translateY(100%)' }))])\n];\n\nexport const thySlideAnimations: {\n readonly slideContainer: AnimationTriggerMetadata;\n} = {\n slideContainer: trigger('slideContainer', animationBody)\n};\n","import { ThyAbstractOverlayConfig, ThyAbstractOverlayOptions } from 'ngx-tethys/core';\n\nimport { ElementRef, InjectionToken } from '@angular/core';\n\nexport type ThySlideFromTypes =\n | 'left'\n | 'right'\n | 'top'\n | 'bottom'\n | 'void'\n | 'exit'\n | 'offsetLeft'\n | 'offsetRight'\n | 'offsetTop'\n | 'offsetBottom';\n\nexport type ThySlideMode = 'over' | 'push' | 'side';\n\n/**\n * @public\n * @order 20\n */\nexport class ThySlideConfig<TData = unknown> extends ThyAbstractOverlayConfig<TData> {\n /**\n * Origin Element, for overlay flexible connected to\n * @type ElementRef<any> | HTMLElement | any\n */\n origin?: ElementRef<any> | HTMLElement | any;\n\n /**\n * slide 进场的方向,可选 left | right | top | bottom\n * @description.en-us set the direction when slide enter\n * @default right\n */\n from?: ThySlideFromTypes;\n\n /**\n * 从距离屏幕边缘 offset 出滑入滑出,单位 px\n */\n offset?: number;\n\n /**\n * set class to trigger element.\n * @type string | string[]\n */\n originActiveClass?: string | string[];\n\n /**\n * slide 弹出的容器,可传入id、HTMLElement 或 ElementRef<HTMLElement>\n * @description.en-us set the drawerContainer by id、HTMLElement or ElementRef<HTMLElement>. e.g. drawerContainer = '#offset-host'\n * @type string | HTMLElement | ElementRef<HTMLElement>\n */\n drawerContainer?: string | HTMLElement | ElementRef<HTMLElement>;\n\n /**\n * slide 进场的方向,可选 push | over | slide\n * @description.en-us set the render way. one of 'over' or 'push'. Default is 'over'\n * @default over\n */\n mode?: ThySlideMode;\n\n /**\n * 是否禁用关闭上一个已打开的 slideRef\n * @description.en-us set whether to disable close the latest item. Default is false\n * @default false\n */\n disableCloseLatest?: boolean;\n}\n\nexport class ThySlideOption extends ThySlideConfig {}\n\nexport const THY_SLIDE_DEFAULT_CONFIG = new InjectionToken<ThySlideConfig>('thy-slide-default-options');\n\nexport const slideAbstractOverlayOptions: ThyAbstractOverlayOptions = {\n name: 'slide',\n animationEnabled: true,\n disposeWhenClose: true\n};\n\nexport const slideDefaultConfigValue = {\n hasBackdrop: true,\n backdropClass: 'thy-slide-backdrop',\n backdropClosable: true,\n closeOnNavigation: true,\n autoFocus: true,\n restoreFocus: true,\n from: 'right',\n panelClass: 'thy-slide',\n containerClass: '',\n role: 'slide',\n offset: 0,\n originActiveClass: 'thy-slide-origin-active',\n mode: 'over',\n drawerContainer: '',\n disableCloseLatest: false\n};\n\nexport const THY_SLIDE_DEFAULT_CONFIG_PROVIDER = {\n provide: THY_SLIDE_DEFAULT_CONFIG,\n useValue: {}\n};\n","import { ThyAbstractOverlayContainer, ThyPortalOutlet } from 'ngx-tethys/core';\nimport { helpers } from 'ngx-tethys/util';\nimport { Observable, Subject } from 'rxjs';\nimport { filter, startWith, takeUntil } from 'rxjs/operators';\n\nimport { AnimationEvent } from '@angular/animations';\nimport { ViewportRuler } from '@angular/cdk/overlay';\nimport { PortalModule } from '@angular/cdk/portal';\nimport { DOCUMENT } from '@angular/common';\nimport { ChangeDetectorRef, Component, ElementRef, NgZone, OnDestroy, Renderer2, ViewChild, inject } from '@angular/core';\nimport { useHostRenderer } from '@tethys/cdk/dom';\n\nimport { thySlideAnimations } from './slide-animations';\nimport { slideAbstractOverlayOptions, ThySlideConfig, ThySlideFromTypes } from './slide.config';\n\n/**\n * @private\n */\n@Component({\n selector: 'thy-slide-container',\n template: ` <ng-template thyPortalOutlet></ng-template> `,\n animations: [thySlideAnimations.slideContainer],\n host: {\n class: 'thy-slide-container',\n '[class.thy-slide-push]': 'isPush',\n '[class.thy-slide-side]': 'isSide',\n '[class.thy-slide-over]': '!isPush && !isSide',\n tabindex: '-1',\n '[attr.role]': `'slide'`,\n '[@slideContainer]': 'animationState',\n '(@slideContainer.start)': 'onAnimationStart($event)',\n '(@slideContainer.done)': 'onAnimationDone($event)',\n '[style.width.px]': 'slideContainerStyles.width',\n '[style.height.px]': 'slideContainerStyles.height',\n '[style.max-height.px]': 'slideContainerStyles.height'\n },\n imports: [PortalModule, ThyPortalOutlet]\n})\nexport class ThySlideContainer extends ThyAbstractOverlayContainer implements OnDestroy {\n private elementRef = inject(ElementRef);\n private document = inject(DOCUMENT);\n config = inject(ThySlideConfig);\n private renderer = inject(Renderer2);\n private viewportRuler = inject(ViewportRuler);\n private readonly ngZone = inject(NgZone);\n\n @ViewChild(ThyPortalOutlet, { static: true })\n portalOutlet: ThyPortalOutlet;\n\n animationOpeningDone: Observable<AnimationEvent>;\n\n animationClosingDone: Observable<AnimationEvent>;\n\n animationState: ThySlideFromTypes = 'void';\n\n slideContainerStyles: { width?: number; height?: number } = {};\n\n private drawerContainerElement: HTMLElement;\n\n private ngUnsubscribe$ = new Subject<void>();\n\n private hostRenderer = useHostRenderer();\n\n get isPush() {\n return this.config.mode === 'push' && !!this.drawerContainerElement;\n }\n\n get isSide() {\n return this.config.mode === 'side' && !!this.drawerContainerElement;\n }\n\n private get isLeftOrRight(): boolean {\n return this.config.from === 'left' || this.config.from === 'right';\n }\n\n private get hostOffset() {\n let offset = 0;\n if (this.isLeftOrRight) {\n offset = this.elementRef.nativeElement.clientWidth + this.config.offset || 0;\n } else {\n offset = this.elementRef.nativeElement.clientHeight + this.config.offset || 0;\n }\n return offset;\n }\n\n private get transform() {\n switch (this.config.from) {\n case 'left':\n return `translateX(${this.hostOffset}px)`;\n case 'right':\n return `translateX(-${this.hostOffset}px)`;\n case 'top':\n return `translateY(${this.hostOffset}px)`;\n case 'bottom':\n return `translateY(${this.hostOffset}px)`;\n }\n }\n\n private get drawerContainerElementClass() {\n return `thy-slide-${this.config.mode}-drawer-container`;\n }\n\n constructor() {\n const changeDetectorRef = inject(ChangeDetectorRef);\n\n super(slideAbstractOverlayOptions, changeDetectorRef);\n this.animationOpeningDone = this.animationStateChanged.pipe(\n filter((event: AnimationEvent) => {\n return event.phaseName === 'done' && event.toState === this.animationState;\n })\n );\n this.animationClosingDone = this.animationStateChanged.pipe(\n filter((event: AnimationEvent) => {\n return event.phaseName === 'done' && event.toState === 'exit';\n })\n );\n this.setDrawerContainerElement();\n this.checkContainerWithinViewport();\n this.addDrawerContainerElementClass();\n }\n\n private setDrawerContainerElement() {\n if (typeof this.config.drawerContainer === 'string') {\n this.drawerContainerElement = this.config.drawerContainer && document.querySelector(this.config.drawerContainer);\n }\n if (this.config.drawerContainer instanceof ElementRef) {\n this.drawerContainerElement = this.config.drawerContainer.nativeElement;\n }\n if (this.config.drawerContainer instanceof HTMLElement) {\n this.drawerContainerElement = this.config.drawerContainer as HTMLElement;\n }\n }\n\n private setSlideContainerStyles() {\n let width, height, top, left;\n const drawerContainerElementRect = (this.drawerContainerElement || document.body).getBoundingClientRect();\n if (this.isLeftOrRight) {\n height = drawerContainerElementRect.height;\n top = drawerContainerElementRect.top;\n this.hostRenderer.setStyle('top', `${top}px`);\n } else {\n width = drawerContainerElementRect.width;\n left = drawerContainerElementRect.left;\n this.hostRenderer.setStyle('left', `${left}px`);\n }\n this.slideContainerStyles = {\n width: width,\n height: height\n };\n }\n\n private checkContainerWithinViewport() {\n this.viewportRuler\n .change(100)\n .pipe(startWith(null), takeUntil(this.ngUnsubscribe$))\n .subscribe(() => {\n this.ngZone.run(() => this.setSlideContainerStyles());\n });\n }\n\n private addDrawerContainerElementClass() {\n if (this.drawerContainerElement) {\n this.renderer.addClass(this.drawerContainerElement, this.drawerContainerElementClass);\n }\n }\n\n private removeDrawerContainerElementClass() {\n if (this.drawerContainerElement) {\n this.renderer.removeClass(this.drawerContainerElement, this.drawerContainerElementClass);\n }\n }\n\n private setDrawerContainerElementStyle() {\n if (this.isSide) {\n this.renderer.setStyle(this.drawerContainerElement, `margin-${this.config.from}`, `${this.hostOffset}px`);\n } else if (this.isPush) {\n this.renderer.setStyle(this.drawerContainerElement, `transform`, this.transform);\n }\n }\n\n private removeDrawerContainerElementStyle() {\n if (this.isSide) {\n this.renderer.removeStyle(this.drawerContainerElement, `margin-${this.config.from}`);\n } else if (this.isPush) {\n this.renderer.removeStyle(this.drawerContainerElement, `transform`);\n }\n }\n\n beforeAttachPortal(): void {\n if (this.config.offset) {\n this.hostRenderer.setStyle(this.config.from, `${this.config.offset}px`);\n this.animationState = helpers.camelCase(['offset', this.config.from]) as ThySlideFromTypes;\n } else {\n this.animationState = this.config.from;\n }\n this.setDrawerContainerElementStyle();\n }\n\n beforeDetachPortal(): void {\n this.removeDrawerContainerElementStyle();\n }\n\n onAnimationDone(event: AnimationEvent) {\n this.animationStateChanged.emit(event);\n }\n\n onAnimationStart(event: AnimationEvent) {\n this.animationStateChanged.emit(event);\n }\n\n ngOnDestroy() {\n super.destroy();\n this.removeDrawerContainerElementClass();\n this.ngUnsubscribe$.next();\n this.ngUnsubscribe$.complete();\n }\n}\n","import { ThyAbstractInternalOverlayRef, ThyAbstractOverlayPosition, ThyAbstractOverlayRef } from 'ngx-tethys/core';\n\nimport { OverlayRef } from '@angular/cdk/overlay';\nimport { Injectable, inject } from '@angular/core';\n\nimport { ThySlideContainer } from './slide-container.component';\nimport { slideAbstractOverlayOptions, ThySlideConfig } from './slide.config';\n\n/**\n * @public\n * @order 30\n */\nexport abstract class ThySlideRef<T, TResult = unknown> extends ThyAbstractOverlayRef<T, ThySlideContainer, TResult> {}\n\n/**\n * @internal\n */\n@Injectable()\nexport class ThyInternalSlideRef<T = unknown, TResult = unknown>\n extends ThyAbstractInternalOverlayRef<T, ThySlideContainer, TResult>\n implements ThySlideRef<T>\n{\n constructor(overlayRef: OverlayRef, containerInstance: ThySlideContainer, config: ThySlideConfig) {\n super(slideAbstractOverlayOptions, overlayRef, containerInstance, config);\n }\n\n updatePosition(position?: ThyAbstractOverlayPosition): this {\n return this.updateGlobalPosition(position);\n }\n}\n","import { ComponentTypeOrTemplateRef, ThyAbstractOverlayRef, ThyAbstractOverlayService } from 'ngx-tethys/core';\nimport { coerceArray } from 'ngx-tethys/util';\nimport { of } from 'rxjs';\n\nimport { Directionality } from '@angular/cdk/bidi';\nimport { coerceElement } from '@angular/cdk/coercion';\nimport { Overlay, OverlayConfig, OverlayRef } from '@angular/cdk/overlay';\nimport { ComponentPortal } from '@angular/cdk/portal';\nimport { Injectable, Injector, OnDestroy, StaticProvider, inject } from '@angular/core';\n\nimport { ThySlideContainer } from './slide-container.component';\nimport { ThyInternalSlideRef, ThySlideRef } from './slide-ref.service';\nimport { slideAbstractOverlayOptions, slideDefaultConfigValue, THY_SLIDE_DEFAULT_CONFIG, ThySlideConfig } from './slide.config';\n\n/**\n * @public\n * @order 10\n */\n@Injectable()\nexport class ThySlideService extends ThyAbstractOverlayService<ThySlideConfig, ThySlideContainer> implements OnDestroy {\n private originElementAddActiveClass(config: ThySlideConfig) {\n if (config.origin) {\n coerceElement<HTMLElement>(config.origin).classList.add(...coerceArray(config.originActiveClass));\n }\n }\n\n private originElementRemoveActiveClass(config: ThySlideConfig) {\n if (config.origin) {\n coerceElement<HTMLElement>(config.origin).classList.remove(...coerceArray(config.originActiveClass));\n }\n }\n\n protected buildOverlayConfig(config: ThySlideConfig): OverlayConfig {\n const defaultClasses: string[] = ['thy-slide-overlay-pane', `thy-slide-${config.from}`];\n const overlayConfig = {\n ...this.buildBaseOverlayConfig(config, defaultClasses),\n width: config.width\n };\n return overlayConfig;\n }\n\n protected attachOverlayContainer(overlay: OverlayRef, config: ThySlideConfig): ThySlideContainer {\n const userInjector = config && config.viewContainerRef && config.viewContainerRef.injector;\n const injector = Injector.create({\n parent: userInjector || this.injector,\n providers: [{ provide: ThySlideConfig, useValue: config }]\n });\n const containerPortal = new ComponentPortal(ThySlideContainer, config.viewContainerRef, injector);\n const containerRef = overlay.attach<ThySlideContainer>(containerPortal);\n return containerRef.instance;\n }\n\n protected createAbstractOverlayRef<T>(\n overlayRef: OverlayRef,\n containerInstance: ThySlideContainer,\n config: ThySlideConfig\n ): ThyAbstractOverlayRef<T, ThySlideContainer, any> {\n return new ThyInternalSlideRef(overlayRef, containerInstance, config);\n }\n\n protected createInjector<T>(\n config: ThySlideConfig,\n overlayRef: ThyAbstractOverlayRef<T, ThySlideContainer, any>,\n containerInstance: ThySlideContainer\n ): Injector {\n const userInjector = config && config.viewContainerRef && config.viewContainerRef.injector;\n\n const injectionTokens: StaticProvider[] = [\n { provide: ThySlideContainer, useValue: containerInstance },\n { provide: ThySlideRef, useValue: overlayRef }\n ];\n\n if (config.direction && (!userInjector || !userInjector.get<Directionality | null>(Directionality, null))) {\n injectionTokens.push({\n provide: Directionality,\n useValue: {\n value: config.direction,\n change: of()\n }\n });\n }\n\n return Injector.create({ parent: userInjector || this.injector, providers: injectionTokens });\n }\n\n private overlayIsOpened(config: ThySlideConfig) {\n const openedOverlay = this.getAbstractOverlayById(config.id);\n const slideConfig = Object.assign({}, this.defaultConfig, config);\n if (!slideConfig.disableCloseLatest) {\n this.close(openedOverlay);\n }\n return openedOverlay;\n }\n\n constructor() {\n const defaultConfig = inject(THY_SLIDE_DEFAULT_CONFIG, { optional: true })!;\n const slideDefaultConfig = Object.assign({}, slideDefaultConfigValue, defaultConfig);\n const overlay = inject(Overlay);\n const injector = inject(Injector);\n\n super(slideAbstractOverlayOptions, overlay, injector, slideDefaultConfig);\n }\n\n /**\n * 打开滑动弹出框\n */\n open<T, TData = unknown, TResult = unknown>(\n componentOrTemplateRef: ComponentTypeOrTemplateRef<T>,\n config: ThySlideConfig<TData>\n ): ThySlideRef<T, TResult> {\n if (this.overlayIsOpened(config)) {\n return;\n }\n const slideRef = this.openOverlay<T, TResult>(componentOrTemplateRef, config);\n this.originElementAddActiveClass(slideRef.containerInstance.config);\n slideRef.afterClosed().subscribe(() => {\n this.originElementRemoveActiveClass(slideRef.containerInstance.config);\n });\n return slideRef;\n }\n\n ngOnDestroy() {\n this.dispose();\n }\n}\n","import { Component, ViewEncapsulation, OnInit, HostBinding } from '@angular/core';\n\n/**\n * @name thy-slide-layout\n * @order 35\n */\n@Component({\n selector: 'thy-slide-layout',\n template: '<ng-content></ng-content>',\n encapsulation: ViewEncapsulation.None\n})\nexport class ThySlideLayout implements OnInit {\n @HostBinding('class.thy-slide-layout') slideLayout = true;\n\n constructor() {}\n\n ngOnInit() {}\n}\n","import { Component, ContentChild, TemplateRef, Input, OnInit, HostBinding, inject } from '@angular/core';\nimport { ThySlideService } from '../slide.service';\nimport { ThyAction } from 'ngx-tethys/action';\nimport { ThyIcon } from 'ngx-tethys/icon';\nimport { NgTemplateOutlet } from '@angular/common';\n\n/**\n * 滑动弹出框的头部组件\n * @name thy-slide-header\n * @order 40\n */\n@Component({\n selector: 'thy-slide-header',\n templateUrl: './slide-header.component.html',\n imports: [NgTemplateOutlet, ThyIcon, ThyAction]\n})\nexport class ThySlideHeader implements OnInit {\n private thySlideService = inject(ThySlideService);\n\n isIconFont = false;\n\n private _iconName = '';\n\n @HostBinding('class.thy-slide-header') slideLayoutHeader = true;\n\n /**\n * 标题\n */\n @Input() thyTitle: string;\n\n /**\n * 标题的图标\n */\n @Input() set thyIcon(value: string) {\n this._iconName = value;\n if (value.includes('wtf')) {\n this.isIconFont = true;\n } else {\n this.isIconFont = false;\n }\n }\n\n get thyIcon() {\n return this._iconName;\n }\n\n /**\n * 自定义头模板\n * @type TemplateRef\n */\n @ContentChild('thyHeader') headerTemplate: TemplateRef<any>;\n\n /**\n * 头部操作区域模板\n * @type TemplateRef\n */\n @ContentChild('thyHeaderOperate') headerOperateTemplate: TemplateRef<any>;\n\n ngOnInit() {}\n\n closeModal(event: Event) {\n event.stopPropagation();\n this.thySlideService.close();\n }\n}\n","@if (headerTemplate) {\n <ng-template [ngTemplateOutlet]=\"headerTemplate\"></ng-template>\n} @else {\n <h3 class=\"thy-slide-header-title\">\n @if (!isIconFont && thyIcon) {\n <thy-icon [thyIconName]=\"thyIcon\"></thy-icon>\n } @else {\n @if (thyIcon) {\n <i class=\"wft {{ thyIcon }}\"></i>\n }\n }\n {{ thyTitle }}\n </h3>\n <div class=\"thy-slide-header-main\">\n <ng-container>\n @if (headerOperateTemplate) {\n <ng-template [ngTemplateOutlet]=\"headerOperateTemplate\"> </ng-template>\n }\n </ng-container>\n </div>\n <a href=\"javascript:;\" class=\"mr-n2\" thyAction thyActionIcon=\"close\" (click)=\"closeModal($event)\"></a>\n}\n","import { Component, HostBinding } from '@angular/core';\n\n/**\n * @name thy-slide-body\n * @order 45\n */\n@Component({\n selector: 'thy-slide-body',\n template: ` <ng-content></ng-content> `\n})\nexport class ThySlideBody {\n @HostBinding('class.thy-slide-body') slideLayoutBody = true;\n}\n","import { Component, Input, OnInit, HostBinding } from '@angular/core';\nimport { coerceBooleanProperty } from 'ngx-tethys/util';\n\n/**\n * @name thy-slide-body-section\n * @order 50\n */\n@Component({\n selector: 'thy-slide-body-section',\n template: '<ng-content></ng-content>'\n})\nexport class ThySlideBodySection implements OnInit {\n @HostBinding('class.thy-slide-body-section') thySlideBodyItem = true;\n\n @HostBinding('class.thy-slide-body-section-divider') hasDivider = false;\n\n /**\n * 是否有分割线\n * @default false\n */\n @Input({ transform: coerceBooleanProperty })\n set thyDividerBorder(value: boolean) {\n this.hasDivider = value;\n }\n\n ngOnInit() {}\n}\n","import { Component, OnInit, HostBinding } from '@angular/core';\n\n/**\n * @name thy-slide-footer\n * @order 55\n */\n@Component({\n selector: 'thy-slide-footer',\n template: '<ng-content></ng-content>'\n})\nexport class ThySlideFooter implements OnInit {\n @HostBinding('class.thy-slide-footer') slideLayoutFooter = true;\n\n ngOnInit() {}\n}\n","import { Directive, ElementRef, inject } from '@angular/core';\n\n/**\n * @name thyDrawerContainer\n * @order 60\n */\n@Directive({\n selector: '[thyDrawerContainer]'\n})\nexport class ThyDrawerContainerDirective {\n elementRef = inject(ElementRef);\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ThySharedModule } from 'ngx-tethys/shared';\nimport { ThySlideService } from './slide.service';\nimport { ThySlideContainer } from './slide-container.component';\nimport { ThyInternalSlideRef } from './slide-ref.service';\nimport { ThySlideLayout } from './slide-layout/slide-layout.component';\nimport { ThySlideHeader } from './slide-header/slide-header.component';\nimport { ThySlideBody } from './slide-body/slide-body.component';\nimport { ThySlideBodySection } from './slide-body/slide-body-section.component';\nimport { ThySlideFooter } from './slide-footer/slide-footer.component';\nimport { ThyIconModule } from 'ngx-tethys/icon';\nimport { OverlayModule } from '@angular/cdk/overlay';\nimport { PortalModule } from '@angular/cdk/portal';\nimport { THY_SLIDE_DEFAULT_CONFIG_PROVIDER } from './slide.config';\nimport { ThyDrawerContainerDirective } from './drawer/drawer-container.directive';\nimport { ThyActionModule } from 'ngx-tethys/action';\n\n@NgModule({\n imports: [\n CommonModule,\n ThySharedModule,\n ThyIconModule,\n OverlayModule,\n PortalModule,\n ThyActionModule,\n ThySlideContainer,\n ThySlideLayout,\n ThySlideHeader,\n ThySlideBody,\n ThySlideBodySection,\n ThySlideFooter,\n ThyDrawerContainerDirective\n ],\n exports: [ThySlideLayout, ThySlideHeader, ThySlideBody, ThySlideBodySection, ThySlideFooter, ThyDrawerContainerDirective],\n providers: [ThyInternalSlideRef, ThySlideService, THY_SLIDE_DEFAULT_CONFIG_PROVIDER]\n})\nexport class ThySlideModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i2.ThySlideContainer","i3.ThySlideConfig"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ngx-tethys-slide.mjs","sources":["../../../src/slide/slide-animations.ts","../../../src/slide/slide.config.ts","../../../src/slide/slide-container.component.ts","../../../src/slide/slide-ref.service.ts","../../../src/slide/slide.service.ts","../../../src/slide/slide-layout/slide-layout.component.ts","../../../src/slide/slide-header/slide-header.component.ts","../../../src/slide/slide-header/slide-header.component.html","../../../src/slide/slide-body/slide-body.component.ts","../../../src/slide/slide-body/slide-body-section.component.ts","../../../src/slide/slide-footer/slide-footer.component.ts","../../../src/slide/drawer/drawer-container.directive.ts","../../../src/slide/slide.module.ts","../../../src/slide/ngx-tethys-slide.ts"],"sourcesContent":["import { transition, style, animate, AnimationTriggerMetadata, trigger, state } from '@angular/animations';\n\nconst animationBody = [\n transition('void => offsetLeft', [style({ width: 0 }), animate('0.2s ease-in')]),\n transition('offsetLeft => exit', [animate('0.2s', style({ width: 0 }))]),\n transition('void => offsetRight', [style({ width: 0 }), animate('0.2s ease')]),\n transition('offsetRight => exit', [animate('0.2s', style({ width: 0 }))]),\n transition('void => offsetTop', [style({ height: 0 }), animate('0.2s ease-in')]),\n transition('offsetTop => exit', [animate('0.2s', style({ height: 0 }))]),\n transition('void => offsetBottom', [style({ height: 0 }), animate('0.2s ease-in')]),\n transition('offsetBottom => exit', [animate('0.2s', style({ height: 0 }))]),\n\n state('left right top bottom', style({ transform: '*' })),\n transition('void => left', [style({ transform: 'translateX(-100%)' }), animate('0.2s ease-in')]),\n transition('left => exit', [animate('0.2s', style({ transform: 'translateX(-100%)' }))]),\n transition('void => right', [style({ transform: 'translateX(100%)' }), animate('0.2s ease-in')]),\n transition('right => exit', [animate('0.2s', style({ transform: 'translateX(100%)' }))]),\n transition('void => top', [style({ transform: 'translateY(-100%)' }), animate('0.2s ease-in')]),\n transition('top => exit', [animate('0.2s', style({ transform: 'translateY(-100%)' }))]),\n transition('void => bottom', [style({ transform: 'translateY(100%)' }), animate('0.2s ease-in')]),\n transition('bottom => exit', [animate('0.2s', style({ transform: 'translateY(100%)' }))])\n];\n\nexport const thySlideAnimations: {\n readonly slideContainer: AnimationTriggerMetadata;\n} = {\n slideContainer: trigger('slideContainer', animationBody)\n};\n","import { ThyAbstractOverlayConfig, ThyAbstractOverlayOptions } from 'ngx-tethys/core';\n\nimport { ElementRef, InjectionToken } from '@angular/core';\n\nexport type ThySlideFromTypes =\n | 'left'\n | 'right'\n | 'top'\n | 'bottom'\n | 'void'\n | 'exit'\n | 'offsetLeft'\n | 'offsetRight'\n | 'offsetTop'\n | 'offsetBottom';\n\nexport type ThySlideMode = 'over' | 'push' | 'side';\n\n/**\n * @public\n * @order 20\n */\nexport class ThySlideConfig<TData = unknown> extends ThyAbstractOverlayConfig<TData> {\n /**\n * Origin Element, for overlay flexible connected to\n * @type ElementRef<any> | HTMLElement | any\n */\n origin?: ElementRef<any> | HTMLElement | any;\n\n /**\n * slide 进场的方向,可选 left | right | top | bottom\n * @description.en-us set the direction when slide enter\n * @default right\n */\n from?: ThySlideFromTypes;\n\n /**\n * 从距离屏幕边缘 offset 出滑入滑出,单位 px\n */\n offset?: number;\n\n /**\n * set class to trigger element.\n * @type string | string[]\n */\n originActiveClass?: string | string[];\n\n /**\n * slide 弹出的容器,可传入id、HTMLElement 或 ElementRef<HTMLElement>\n * @description.en-us set the drawerContainer by id、HTMLElement or ElementRef<HTMLElement>. e.g. drawerContainer = '#offset-host'\n * @type string | HTMLElement | ElementRef<HTMLElement>\n */\n drawerContainer?: string | HTMLElement | ElementRef<HTMLElement>;\n\n /**\n * slide 进场的方向,可选 push | over | slide\n * @description.en-us set the render way. one of 'over' or 'push'. Default is 'over'\n * @default over\n */\n mode?: ThySlideMode;\n\n /**\n * 是否禁用关闭上一个已打开的 slideRef\n * @description.en-us set whether to disable close the latest item. Default is false\n * @default false\n */\n disableCloseLatest?: boolean;\n}\n\nexport class ThySlideOption extends ThySlideConfig {}\n\nexport const THY_SLIDE_DEFAULT_CONFIG = new InjectionToken<ThySlideConfig>('thy-slide-default-options');\n\nexport const slideAbstractOverlayOptions: ThyAbstractOverlayOptions = {\n name: 'slide',\n animationEnabled: true,\n disposeWhenClose: true\n};\n\nexport const slideDefaultConfigValue = {\n hasBackdrop: true,\n backdropClass: 'thy-slide-backdrop',\n backdropClosable: true,\n closeOnNavigation: true,\n autoFocus: true,\n restoreFocus: true,\n from: 'right',\n panelClass: 'thy-slide',\n containerClass: '',\n role: 'slide',\n offset: 0,\n originActiveClass: 'thy-slide-origin-active',\n mode: 'over',\n drawerContainer: '',\n disableCloseLatest: false\n};\n\nexport const THY_SLIDE_DEFAULT_CONFIG_PROVIDER = {\n provide: THY_SLIDE_DEFAULT_CONFIG,\n useValue: {}\n};\n","import { ThyAbstractOverlayContainer, ThyPortalOutlet } from 'ngx-tethys/core';\nimport { helpers } from 'ngx-tethys/util';\nimport { Observable, Subject } from 'rxjs';\nimport { filter, startWith, takeUntil } from 'rxjs/operators';\n\nimport { AnimationEvent } from '@angular/animations';\nimport { ViewportRuler } from '@angular/cdk/overlay';\nimport { PortalModule } from '@angular/cdk/portal';\nimport { DOCUMENT } from '@angular/common';\nimport { ChangeDetectorRef, Component, ElementRef, NgZone, OnDestroy, Renderer2, ViewChild, inject } from '@angular/core';\nimport { useHostRenderer } from '@tethys/cdk/dom';\n\nimport { thySlideAnimations } from './slide-animations';\nimport { slideAbstractOverlayOptions, ThySlideConfig, ThySlideFromTypes } from './slide.config';\n\n/**\n * @private\n */\n@Component({\n selector: 'thy-slide-container',\n template: ` <ng-template thyPortalOutlet></ng-template> `,\n animations: [thySlideAnimations.slideContainer],\n host: {\n class: 'thy-slide-container',\n '[class.thy-slide-push]': 'isPush',\n '[class.thy-slide-side]': 'isSide',\n '[class.thy-slide-over]': '!isPush && !isSide',\n tabindex: '-1',\n '[attr.role]': `'slide'`,\n '[@slideContainer]': 'animationState',\n '(@slideContainer.start)': 'onAnimationStart($event)',\n '(@slideContainer.done)': 'onAnimationDone($event)',\n '[style.width.px]': 'slideContainerStyles.width',\n '[style.height.px]': 'slideContainerStyles.height',\n '[style.max-height.px]': 'slideContainerStyles.height'\n },\n imports: [PortalModule, ThyPortalOutlet]\n})\nexport class ThySlideContainer extends ThyAbstractOverlayContainer implements OnDestroy {\n private elementRef = inject(ElementRef);\n private document = inject(DOCUMENT);\n config = inject(ThySlideConfig);\n private renderer = inject(Renderer2);\n private viewportRuler = inject(ViewportRuler);\n private readonly ngZone = inject(NgZone);\n\n @ViewChild(ThyPortalOutlet, { static: true })\n portalOutlet: ThyPortalOutlet;\n\n animationOpeningDone: Observable<AnimationEvent>;\n\n animationClosingDone: Observable<AnimationEvent>;\n\n animationState: ThySlideFromTypes = 'void';\n\n slideContainerStyles: { width?: number; height?: number } = {};\n\n private drawerContainerElement: HTMLElement;\n\n private ngUnsubscribe$ = new Subject<void>();\n\n private hostRenderer = useHostRenderer();\n\n get isPush() {\n return this.config.mode === 'push' && !!this.drawerContainerElement;\n }\n\n get isSide() {\n return this.config.mode === 'side' && !!this.drawerContainerElement;\n }\n\n private get isLeftOrRight(): boolean {\n return this.config.from === 'left' || this.config.from === 'right';\n }\n\n private get hostOffset() {\n let offset = 0;\n if (this.isLeftOrRight) {\n offset = this.elementRef.nativeElement.clientWidth + this.config.offset || 0;\n } else {\n offset = this.elementRef.nativeElement.clientHeight + this.config.offset || 0;\n }\n return offset;\n }\n\n private get transform() {\n switch (this.config.from) {\n case 'left':\n return `translateX(${this.hostOffset}px)`;\n case 'right':\n return `translateX(-${this.hostOffset}px)`;\n case 'top':\n return `translateY(${this.hostOffset}px)`;\n case 'bottom':\n return `translateY(${this.hostOffset}px)`;\n }\n }\n\n private get drawerContainerElementClass() {\n return `thy-slide-${this.config.mode}-drawer-container`;\n }\n\n constructor() {\n const changeDetectorRef = inject(ChangeDetectorRef);\n\n super(slideAbstractOverlayOptions, changeDetectorRef);\n this.animationOpeningDone = this.animationStateChanged.pipe(\n filter((event: AnimationEvent) => {\n return event.phaseName === 'done' && event.toState === this.animationState;\n })\n );\n this.animationClosingDone = this.animationStateChanged.pipe(\n filter((event: AnimationEvent) => {\n return event.phaseName === 'done' && event.toState === 'exit';\n })\n );\n this.setDrawerContainerElement();\n this.checkContainerWithinViewport();\n this.addDrawerContainerElementClass();\n }\n\n private setDrawerContainerElement() {\n if (typeof this.config.drawerContainer === 'string') {\n this.drawerContainerElement = this.config.drawerContainer && document.querySelector(this.config.drawerContainer);\n }\n if (this.config.drawerContainer instanceof ElementRef) {\n this.drawerContainerElement = this.config.drawerContainer.nativeElement;\n }\n if (this.config.drawerContainer instanceof HTMLElement) {\n this.drawerContainerElement = this.config.drawerContainer as HTMLElement;\n }\n }\n\n private setSlideContainerStyles() {\n let width, height, top, left;\n const drawerContainerElementRect = (this.drawerContainerElement || document.body).getBoundingClientRect();\n if (this.isLeftOrRight) {\n height = drawerContainerElementRect.height;\n top = drawerContainerElementRect.top;\n this.hostRenderer.setStyle('top', `${top}px`);\n } else {\n width = drawerContainerElementRect.width;\n left = drawerContainerElementRect.left;\n this.hostRenderer.setStyle('left', `${left}px`);\n }\n this.slideContainerStyles = {\n width: width,\n height: height\n };\n }\n\n private checkContainerWithinViewport() {\n this.viewportRuler\n .change(100)\n .pipe(startWith(null), takeUntil(this.ngUnsubscribe$))\n .subscribe(() => {\n this.ngZone.run(() => this.setSlideContainerStyles());\n });\n }\n\n private addDrawerContainerElementClass() {\n if (this.drawerContainerElement) {\n this.renderer.addClass(this.drawerContainerElement, this.drawerContainerElementClass);\n }\n }\n\n private removeDrawerContainerElementClass() {\n if (this.drawerContainerElement) {\n this.renderer.removeClass(this.drawerContainerElement, this.drawerContainerElementClass);\n }\n }\n\n private setDrawerContainerElementStyle() {\n if (this.isSide) {\n this.renderer.setStyle(this.drawerContainerElement, `margin-${this.config.from}`, `${this.hostOffset}px`);\n } else if (this.isPush) {\n this.renderer.setStyle(this.drawerContainerElement, `transform`, this.transform);\n }\n }\n\n private removeDrawerContainerElementStyle() {\n if (this.isSide) {\n this.renderer.removeStyle(this.drawerContainerElement, `margin-${this.config.from}`);\n } else if (this.isPush) {\n this.renderer.removeStyle(this.drawerContainerElement, `transform`);\n }\n }\n\n beforeAttachPortal(): void {\n if (this.config.offset) {\n this.hostRenderer.setStyle(this.config.from, `${this.config.offset}px`);\n this.animationState = helpers.camelCase(['offset', this.config.from]) as ThySlideFromTypes;\n } else {\n this.animationState = this.config.from;\n }\n this.setDrawerContainerElementStyle();\n }\n\n beforeDetachPortal(): void {\n this.removeDrawerContainerElementStyle();\n }\n\n onAnimationDone(event: AnimationEvent) {\n this.animationStateChanged.emit(event);\n }\n\n onAnimationStart(event: AnimationEvent) {\n this.animationStateChanged.emit(event);\n }\n\n ngOnDestroy() {\n super.destroy();\n this.removeDrawerContainerElementClass();\n this.ngUnsubscribe$.next();\n this.ngUnsubscribe$.complete();\n }\n}\n","import { ThyAbstractInternalOverlayRef, ThyAbstractOverlayPosition, ThyAbstractOverlayRef } from 'ngx-tethys/core';\n\nimport { OverlayRef } from '@angular/cdk/overlay';\nimport { Injectable, inject } from '@angular/core';\n\nimport { ThySlideContainer } from './slide-container.component';\nimport { slideAbstractOverlayOptions, ThySlideConfig } from './slide.config';\n\n/**\n * @public\n * @order 30\n */\nexport abstract class ThySlideRef<T, TResult = unknown> extends ThyAbstractOverlayRef<T, ThySlideContainer, TResult> {}\n\n/**\n * @internal\n */\n@Injectable()\nexport class ThyInternalSlideRef<T = unknown, TResult = unknown>\n extends ThyAbstractInternalOverlayRef<T, ThySlideContainer, TResult>\n implements ThySlideRef<T>\n{\n constructor(overlayRef: OverlayRef, containerInstance: ThySlideContainer, config: ThySlideConfig) {\n super(slideAbstractOverlayOptions, overlayRef, containerInstance, config);\n }\n\n updatePosition(position?: ThyAbstractOverlayPosition): this {\n return this.updateGlobalPosition(position);\n }\n}\n","import { ComponentTypeOrTemplateRef, ThyAbstractOverlayRef, ThyAbstractOverlayService } from 'ngx-tethys/core';\nimport { coerceArray } from 'ngx-tethys/util';\nimport { of } from 'rxjs';\n\nimport { Directionality } from '@angular/cdk/bidi';\nimport { coerceElement } from '@angular/cdk/coercion';\nimport { Overlay, OverlayConfig, OverlayRef } from '@angular/cdk/overlay';\nimport { ComponentPortal } from '@angular/cdk/portal';\nimport { Injectable, Injector, OnDestroy, StaticProvider, inject } from '@angular/core';\n\nimport { ThySlideContainer } from './slide-container.component';\nimport { ThyInternalSlideRef, ThySlideRef } from './slide-ref.service';\nimport { slideAbstractOverlayOptions, slideDefaultConfigValue, THY_SLIDE_DEFAULT_CONFIG, ThySlideConfig } from './slide.config';\n\n/**\n * @public\n * @order 10\n */\n@Injectable()\nexport class ThySlideService extends ThyAbstractOverlayService<ThySlideConfig, ThySlideContainer> implements OnDestroy {\n private originElementAddActiveClass(config: ThySlideConfig) {\n if (config.origin) {\n coerceElement<HTMLElement>(config.origin).classList.add(...coerceArray(config.originActiveClass));\n }\n }\n\n private originElementRemoveActiveClass(config: ThySlideConfig) {\n if (config.origin) {\n coerceElement<HTMLElement>(config.origin).classList.remove(...coerceArray(config.originActiveClass));\n }\n }\n\n protected buildOverlayConfig(config: ThySlideConfig): OverlayConfig {\n const defaultClasses: string[] = ['thy-slide-overlay-pane', `thy-slide-${config.from}`];\n const overlayConfig = {\n ...this.buildBaseOverlayConfig(config, defaultClasses),\n width: config.width\n };\n return overlayConfig;\n }\n\n protected attachOverlayContainer(overlay: OverlayRef, config: ThySlideConfig): ThySlideContainer {\n const userInjector = config && config.viewContainerRef && config.viewContainerRef.injector;\n const injector = Injector.create({\n parent: userInjector || this.injector,\n providers: [{ provide: ThySlideConfig, useValue: config }]\n });\n const containerPortal = new ComponentPortal(ThySlideContainer, config.viewContainerRef, injector);\n const containerRef = overlay.attach<ThySlideContainer>(containerPortal);\n return containerRef.instance;\n }\n\n protected createAbstractOverlayRef<T>(\n overlayRef: OverlayRef,\n containerInstance: ThySlideContainer,\n config: ThySlideConfig\n ): ThyAbstractOverlayRef<T, ThySlideContainer, any> {\n return new ThyInternalSlideRef(overlayRef, containerInstance, config);\n }\n\n protected createInjector<T>(\n config: ThySlideConfig,\n overlayRef: ThyAbstractOverlayRef<T, ThySlideContainer, any>,\n containerInstance: ThySlideContainer\n ): Injector {\n const userInjector = config && config.viewContainerRef && config.viewContainerRef.injector;\n\n const injectionTokens: StaticProvider[] = [\n { provide: ThySlideContainer, useValue: containerInstance },\n { provide: ThySlideRef, useValue: overlayRef }\n ];\n\n if (config.direction && (!userInjector || !userInjector.get<Directionality | null>(Directionality, null))) {\n injectionTokens.push({\n provide: Directionality,\n useValue: {\n value: config.direction,\n change: of()\n }\n });\n }\n\n return Injector.create({ parent: userInjector || this.injector, providers: injectionTokens });\n }\n\n private overlayIsOpened(config: ThySlideConfig) {\n const openedOverlay = this.getAbstractOverlayById(config.id);\n const slideConfig = Object.assign({}, this.defaultConfig, config);\n if (!slideConfig.disableCloseLatest) {\n this.close(openedOverlay);\n }\n return openedOverlay;\n }\n\n constructor() {\n const defaultConfig = inject(THY_SLIDE_DEFAULT_CONFIG, { optional: true })!;\n const slideDefaultConfig = Object.assign({}, slideDefaultConfigValue, defaultConfig);\n const overlay = inject(Overlay);\n const injector = inject(Injector);\n\n super(slideAbstractOverlayOptions, overlay, injector, slideDefaultConfig);\n }\n\n /**\n * 打开滑动弹出框\n */\n open<T, TData = unknown, TResult = unknown>(\n componentOrTemplateRef: ComponentTypeOrTemplateRef<T>,\n config: ThySlideConfig<TData>\n ): ThySlideRef<T, TResult> {\n if (this.overlayIsOpened(config)) {\n return;\n }\n const slideRef = this.openOverlay<T, TResult>(componentOrTemplateRef, config);\n this.originElementAddActiveClass(slideRef.containerInstance.config);\n slideRef.afterClosed().subscribe(() => {\n this.originElementRemoveActiveClass(slideRef.containerInstance.config);\n });\n return slideRef;\n }\n\n ngOnDestroy() {\n this.dispose();\n }\n}\n","import { Component, ViewEncapsulation, OnInit, HostBinding } from '@angular/core';\n\n/**\n * @name thy-slide-layout\n * @order 35\n */\n@Component({\n selector: 'thy-slide-layout',\n template: '<ng-content></ng-content>',\n encapsulation: ViewEncapsulation.None\n})\nexport class ThySlideLayout implements OnInit {\n @HostBinding('class.thy-slide-layout') slideLayout = true;\n\n constructor() {}\n\n ngOnInit() {}\n}\n","import { Component, TemplateRef, OnInit, inject, input, computed, contentChild } from '@angular/core';\nimport { ThySlideService } from '../slide.service';\nimport { ThyAction } from 'ngx-tethys/action';\nimport { ThyIcon } from 'ngx-tethys/icon';\nimport { NgTemplateOutlet } from '@angular/common';\n\n/**\n * 滑动弹出框的头部组件\n * @name thy-slide-header\n * @order 40\n */\n@Component({\n selector: 'thy-slide-header',\n templateUrl: './slide-header.component.html',\n imports: [NgTemplateOutlet, ThyIcon, ThyAction],\n host: {\n class: 'thy-slide-header'\n }\n})\nexport class ThySlideHeader implements OnInit {\n private thySlideService = inject(ThySlideService);\n\n /**\n * 标题\n */\n readonly thyTitle = input<string>(undefined);\n\n /**\n * 标题的图标\n */\n readonly thyIcon = input<string>(undefined);\n\n readonly isIconFont = computed(() => (this.thyIcon() || '').includes('wtf'));\n\n /**\n * 自定义头模板\n * @type TemplateRef\n */\n readonly headerTemplate = contentChild<TemplateRef<any>>('thyHeader');\n\n /**\n * 头部操作区域模板\n * @type TemplateRef\n */\n readonly headerOperateTemplate = contentChild<TemplateRef<any>>('thyHeaderOperate');\n\n ngOnInit() {}\n\n closeModal(event: Event) {\n event.stopPropagation();\n this.thySlideService.close();\n }\n}\n","@if (headerTemplate()) {\n <ng-template [ngTemplateOutlet]=\"headerTemplate()\"></ng-template>\n} @else {\n <h3 class=\"thy-slide-header-title\">\n @if (!isIconFont() && thyIcon()) {\n <thy-icon [thyIconName]=\"thyIcon()\"></thy-icon>\n } @else {\n @if (thyIcon()) {\n <i class=\"wft {{ thyIcon() }}\"></i>\n }\n }\n {{ thyTitle() }}\n </h3>\n <div class=\"thy-slide-header-main\">\n <ng-container>\n @if (headerOperateTemplate()) {\n <ng-template [ngTemplateOutlet]=\"headerOperateTemplate()\"> </ng-template>\n }\n </ng-container>\n </div>\n <a href=\"javascript:;\" class=\"mr-n2\" thyAction thyActionIcon=\"close\" (click)=\"closeModal($event)\"></a>\n}\n","import { Component, HostBinding } from '@angular/core';\n\n/**\n * @name thy-slide-body\n * @order 45\n */\n@Component({\n selector: 'thy-slide-body',\n template: ` <ng-content></ng-content> `\n})\nexport class ThySlideBody {\n @HostBinding('class.thy-slide-body') slideLayoutBody = true;\n}\n","import { Component, OnInit, input } from '@angular/core';\nimport { coerceBooleanProperty, ThyBooleanInput } from 'ngx-tethys/util';\n\n/**\n * @name thy-slide-body-section\n * @order 50\n */\n@Component({\n selector: 'thy-slide-body-section',\n template: '<ng-content></ng-content>',\n host: {\n class: 'thy-slide-body-section',\n '[class.thy-slide-body-section-divider]': 'thyDividerBorder()'\n }\n})\nexport class ThySlideBodySection implements OnInit {\n /**\n * 是否有分割线\n * @default false\n */\n readonly thyDividerBorder = input<boolean, ThyBooleanInput>(false, { transform: coerceBooleanProperty });\n\n ngOnInit() {}\n}\n","import { Component, OnInit, HostBinding } from '@angular/core';\n\n/**\n * @name thy-slide-footer\n * @order 55\n */\n@Component({\n selector: 'thy-slide-footer',\n template: '<ng-content></ng-content>'\n})\nexport class ThySlideFooter implements OnInit {\n @HostBinding('class.thy-slide-footer') slideLayoutFooter = true;\n\n ngOnInit() {}\n}\n","import { Directive, ElementRef, inject } from '@angular/core';\n\n/**\n * @name thyDrawerContainer\n * @order 60\n */\n@Directive({\n selector: '[thyDrawerContainer]'\n})\nexport class ThyDrawerContainerDirective {\n elementRef = inject(ElementRef);\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ThySharedModule } from 'ngx-tethys/shared';\nimport { ThySlideService } from './slide.service';\nimport { ThySlideContainer } from './slide-container.component';\nimport { ThyInternalSlideRef } from './slide-ref.service';\nimport { ThySlideLayout } from './slide-layout/slide-layout.component';\nimport { ThySlideHeader } from './slide-header/slide-header.component';\nimport { ThySlideBody } from './slide-body/slide-body.component';\nimport { ThySlideBodySection } from './slide-body/slide-body-section.component';\nimport { ThySlideFooter } from './slide-footer/slide-footer.component';\nimport { ThyIconModule } from 'ngx-tethys/icon';\nimport { OverlayModule } from '@angular/cdk/overlay';\nimport { PortalModule } from '@angular/cdk/portal';\nimport { THY_SLIDE_DEFAULT_CONFIG_PROVIDER } from './slide.config';\nimport { ThyDrawerContainerDirective } from './drawer/drawer-container.directive';\nimport { ThyActionModule } from 'ngx-tethys/action';\n\n@NgModule({\n imports: [\n CommonModule,\n ThySharedModule,\n ThyIconModule,\n OverlayModule,\n PortalModule,\n ThyActionModule,\n ThySlideContainer,\n ThySlideLayout,\n ThySlideHeader,\n ThySlideBody,\n ThySlideBodySection,\n ThySlideFooter,\n ThyDrawerContainerDirective\n ],\n exports: [ThySlideLayout, ThySlideHeader, ThySlideBody, ThySlideBodySection, ThySlideFooter, ThyDrawerContainerDirective],\n providers: [ThyInternalSlideRef, ThySlideService, THY_SLIDE_DEFAULT_CONFIG_PROVIDER]\n})\nexport class ThySlideModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i2.ThySlideContainer","i3.ThySlideConfig"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ngx-tethys-slider.mjs","sources":["../../../src/slider/slider.component.ts","../../../src/slider/slider.component.html","../../../src/slider/slider.module.ts","../../../src/slider/ngx-tethys-slider.ts"],"sourcesContent":["import { NgStyle } from '@angular/common';\nimport {\n AfterViewInit,\n ChangeDetectorRef,\n Component,\n ElementRef,\n Input,\n NgZone,\n OnChanges,\n OnDestroy,\n OnInit,\n SimpleChanges,\n WritableSignal,\n effect,\n forwardRef,\n inject,\n input,\n numberAttribute,\n output,\n signal,\n viewChild\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { useHostRenderer } from '@tethys/cdk/dom';\nimport { TabIndexDisabledControlValueAccessorMixin } from 'ngx-tethys/core';\nimport { clamp, coerceBooleanProperty } from 'ngx-tethys/util';\nimport { Observable, Subscription, fromEvent } from 'rxjs';\nimport { distinctUntilChanged, map, pluck, takeUntil, tap } from 'rxjs/operators';\n\nexport type ThySliderType = 'primary' | 'success' | 'info' | 'warning' | 'danger';\n\nexport type ThySliderSize = 'sm' | 'md' | 'lg';\n\n/**\n * 滑动输入条组件\n * @name thy-slider\n * @order 10\n */\n@Component({\n selector: 'thy-slider',\n templateUrl: './slider.component.html',\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => ThySlider),\n multi: true\n }\n ],\n host: {\n '[attr.tabindex]': `tabIndex`,\n '[class.slider-vertical]': 'thyVertical()',\n '[class.slider-disabled]': '!!disabled',\n '[class.thy-slider]': 'true',\n '[class.cursor-pointer]': 'true'\n },\n imports: [NgStyle]\n})\nexport class ThySlider\n extends TabIndexDisabledControlValueAccessorMixin\n implements OnInit, AfterViewInit, OnDestroy, OnChanges, ControlValueAccessor\n{\n private cdr = inject(ChangeDetectorRef);\n private ngZone = inject(NgZone);\n private ref = inject(ElementRef);\n\n /**\n * 是否切换为纵轴模式\n */\n readonly thyVertical = input(false, { transform: coerceBooleanProperty });\n\n /**\n * 是否禁用\n */\n @Input({ transform: coerceBooleanProperty })\n override set thyDisabled(value: boolean) {\n this.disabled = value;\n this.toggleDisabled();\n }\n override get thyDisabled(): boolean {\n return this.disabled;\n }\n\n disabled = false;\n\n readonly sliderRail = viewChild<ElementRef>('sliderRail');\n\n readonly sliderTrack = viewChild<ElementRef>('sliderTrack');\n\n readonly sliderPointer = viewChild<ElementRef>('sliderPointer');\n\n private typeClassName: WritableSignal<string> = signal('');\n\n private sizeClassName: WritableSignal<string> = signal('');\n\n /**\n * 最大值\n */\n readonly thyMax = input(100, { transform: numberAttribute });\n\n /**\n * 最小值\n */\n readonly thyMin = input(0, { transform: numberAttribute });\n\n /**\n * 步长,需要被 thyMax - thyMin 的差值整除。\n */\n readonly thyStep = input(1, { transform: numberAttribute });\n\n /**\n * 切换主题类型\n * @type primary | success | info | warning | danger\n */\n readonly thyType = input<ThySliderType>('success');\n\n /**\n * 通过变量设置颜色\n */\n readonly thyColor = input<string>();\n\n /**\n * 滑动输入条大小\n * @type sm | md | lg\n */\n readonly thySize = input<ThySliderSize>('sm');\n\n /**\n * 移动结束后的回调,参数为当前值\n */\n readonly thyAfterChange = output<{ value: number }>();\n\n public value: number;\n\n private dragStartListener: Observable<number>;\n\n private dragMoveListener: Observable<number>;\n\n private dragEndListener: Observable<Event>;\n\n private dragStartHandler: Subscription | null;\n\n private dragMoveHandler: Subscription | null;\n\n private dragEndHandler: Subscription | null;\n\n private hostRenderer = useHostRenderer();\n\n private onChangeCallback = (v: any) => {};\n\n private onTouchedCallback = (v: any) => {};\n\n constructor() {\n super();\n effect(() => {\n if (this.thyType()) {\n const typeName = `thy-slider-${this.thyType() || 'success'}`;\n this.typeClassName() && this.hostRenderer.removeClass(this.typeClassName());\n this.hostRenderer.addClass(typeName);\n this.typeClassName.set(typeName);\n }\n });\n\n effect(() => {\n if (this.thySize()) {\n const sizeName = `thy-slider-${this.thySize() || 'sm'}`;\n this.sizeClassName() && this.hostRenderer.removeClass(this.sizeClassName());\n this.hostRenderer.addClass(sizeName);\n this.sizeClassName.set(sizeName);\n }\n });\n }\n\n ngOnInit() {\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n verifyMinAndMax(this);\n verifyStepValues(this);\n }\n\n this.toggleDisabled();\n if (this.value === null || this.value === undefined) {\n this.setValue(this.ensureValueInRange(null));\n }\n }\n\n ngAfterViewInit() {\n this.registerMouseEventsListeners();\n this.toggleDisabled();\n }\n\n writeValue(newValue: number) {\n this.setValue(this.ensureValueInRange(newValue));\n }\n\n registerOnChange(fn: any) {\n this.onChangeCallback = fn;\n }\n\n registerOnTouched(fn: any) {\n this.onTouchedCallback = fn;\n }\n\n ngOnChanges(changes: SimpleChanges) {\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n if (changes.hasOwnProperty('thyMin') || changes.hasOwnProperty('thyMax') || changes.hasOwnProperty('thyStep')) {\n verifyMinAndMax(this);\n verifyStepValues(this);\n }\n }\n }\n\n ngOnDestroy() {\n this.unsubscribeMouseListeners();\n }\n\n private toggleDisabled() {\n if (this.thyDisabled) {\n this.unsubscribeMouseListeners();\n } else {\n this.subscribeMouseListeners(['start']);\n }\n }\n\n private setValue(value: number) {\n if (this.value !== value) {\n this.value = value;\n this.updateTrackAndPointer();\n }\n this.onChangeCallback(this.value);\n }\n\n private ensureValueInRange(value: number): number {\n if (!this.valueMustBeValid(value)) {\n return this.thyMin();\n }\n return clamp(value, this.thyMin(), this.thyMax());\n }\n\n private valueMustBeValid(value: number): boolean {\n return !isNaN(typeof value !== 'number' ? parseFloat(value) : value);\n }\n\n private updateTrackAndPointer() {\n const offset = this.valueToOffset(this.value);\n this.updateStyle(offset / 100);\n this.cdr.markForCheck();\n }\n\n private valueToOffset(value: number): number {\n return ((value - this.thyMin()) * 100) / (this.thyMax() - this.thyMin());\n }\n\n private updateStyle(offsetPercentage: number) {\n const percentage = Math.min(1, Math.max(0, offsetPercentage));\n const orientFields: string[] = this.thyVertical() ? ['height', 'bottom'] : ['width', 'left'];\n this.sliderTrack().nativeElement.style[orientFields[0]] = `${percentage * 100}%`;\n this.sliderPointer().nativeElement.style[orientFields[1]] = `${percentage * 100}%`;\n }\n\n private unsubscribeMouseListeners(actions: string[] = ['start', 'move', 'end']) {\n if (actions.includes('start') && this.dragStartHandler) {\n this.dragStartHandler.unsubscribe();\n this.dragStartHandler = null;\n }\n if (actions.includes('move') && this.dragMoveHandler) {\n this.dragMoveHandler.unsubscribe();\n this.dragMoveHandler = null;\n }\n if (actions.includes('end') && this.dragEndHandler) {\n this.dragEndHandler.unsubscribe();\n this.dragEndHandler = null;\n }\n }\n\n private subscribeMouseListeners(actions: string[] = ['start', 'move', 'end']) {\n if (actions.includes('start') && this.dragStartListener && !this.dragStartHandler) {\n this.dragStartHandler = this.dragStartListener.subscribe(this.mouseStartMoving.bind(this));\n }\n\n if (actions.includes('move') && this.dragMoveListener && !this.dragMoveHandler) {\n this.dragMoveHandler = this.dragMoveListener.subscribe(this.mouseMoving.bind(this));\n }\n\n if (actions.includes('end') && this.dragEndListener && !this.dragEndHandler) {\n this.dragEndHandler = this.dragEndListener.subscribe(this.mouseStopMoving.bind(this));\n }\n }\n\n private mouseStartMoving(value: number) {\n this.pointerController(true);\n this.setValue(value);\n }\n\n private mouseMoving(value: number) {\n this.setValue(this.ensureValueInRange(value));\n this.cdr.markForCheck();\n }\n\n private mouseStopMoving(): void {\n this.pointerController(false);\n this.cdr.markForCheck();\n this.thyAfterChange.emit({ value: this.value });\n }\n\n private pointerController(movable: boolean) {\n if (movable) {\n this.subscribeMouseListeners(['move', 'end']);\n } else {\n this.unsubscribeMouseListeners(['move', 'end']);\n }\n }\n private registerMouseEventsListeners() {\n const orientField = this.thyVertical() ? 'pageY' : 'pageX';\n\n this.dragStartListener = this.ngZone.runOutsideAngular(() => {\n return fromEvent(this.ref.nativeElement, 'mousedown').pipe(\n pluck(orientField),\n map((position: number, index) => this.mousePositionToAdaptiveValue(position))\n );\n });\n\n this.dragEndListener = this.ngZone.runOutsideAngular(() => {\n return fromEvent(document, 'mouseup');\n });\n\n this.dragMoveListener = this.ngZone.runOutsideAngular(() => {\n return fromEvent(document, 'mousemove').pipe(\n tap((e: Event) => {\n e.stopPropagation();\n e.preventDefault();\n }),\n pluck(orientField),\n distinctUntilChanged(),\n map((position: number) => this.mousePositionToAdaptiveValue(position)),\n distinctUntilChanged(),\n takeUntil(this.dragEndListener)\n );\n });\n }\n\n private mousePositionToAdaptiveValue(position: number): number {\n const sliderStartPosition = this.getSliderPagePosition();\n const sliderLength = this.getRailLength();\n if (!sliderLength) {\n return this.value;\n }\n const ratio = this.convertPointerPositionToRatio(position, sliderStartPosition, sliderLength);\n const value = this.ratioToValue(ratio);\n return parseFloat(value.toFixed(this.getDecimals(this.thyStep())));\n }\n\n private getSliderPagePosition(): number {\n const rect = this.ref.nativeElement.getBoundingClientRect();\n const window = this.ref.nativeElement.ownerDocument.defaultView;\n const orientFields: string[] = this.thyVertical() ? ['bottom', 'pageYOffset'] : ['left', 'pageXOffset'];\n return rect[orientFields[0]] + window[orientFields[1]];\n }\n\n private getRailLength() {\n const orientFiled = this.thyVertical() ? 'clientHeight' : 'clientWidth';\n\n return this.sliderRail().nativeElement[orientFiled];\n }\n\n private convertPointerPositionToRatio(pointerPosition: number, startPosition: number, totalLength: number) {\n if (this.thyVertical()) {\n return clamp((startPosition - pointerPosition) / totalLength, 0, 1);\n }\n return clamp((pointerPosition - startPosition) / totalLength, 0, 1);\n }\n\n private ratioToValue(ratio: number) {\n let value = (this.thyMax() - this.thyMin()) * ratio + this.thyMin();\n const step = this.thyStep();\n if (ratio === 0) {\n value = this.thyMin();\n } else if (ratio === 1) {\n value = this.thyMax();\n } else {\n value = Math.round(value / step) * step;\n }\n return clamp(value, this.thyMin(), this.thyMax());\n }\n\n private getDecimals(value: number): number {\n const valueString = value.toString();\n const integerLength = valueString.indexOf('.') + 1;\n return integerLength >= 0 ? valueString.length - integerLength : 0;\n }\n}\n\n// Note: keep `verifyMinAndMax` and `verifyStepValues` as separate functions (not as class properties)\n// so they're tree-shakable in production mode.\n\nfunction verifyMinAndMax(ctx: ThySlider): void | never {\n if (ctx.thyMin() >= ctx.thyMax()) {\n throw new Error('min value must less than max value.');\n }\n}\n\nfunction verifyStepValues(ctx: ThySlider): void | never {\n const thyStep = ctx.thyStep();\n if (ctx.thyStep() <= 0 || !thyStep) {\n throw new Error('step value must be greater than 0.');\n } else if (Number.isInteger(thyStep) && (ctx.thyMax() - ctx.thyMin()) % thyStep) {\n throw new Error('(max - min) must be divisible by step.');\n }\n}\n","<div class=\"thy-slider-rail\" #sliderRail>\n <div class=\"thy-slider-track\" #sliderTrack [ngStyle]=\"{ 'background-color': thyColor() }\"></div>\n <div class=\"thy-slider-pointer\" #sliderPointer [ngStyle]=\"{ 'border-color': thyColor() }\"></div>\n</div>\n","import { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { CommonModule } from '@angular/common';\nimport { ThySlider } from './slider.component';\n\n@NgModule({\n imports: [CommonModule, FormsModule, ThySlider],\n exports: [ThySlider],\n providers: []\n})\nexport class ThySliderModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ngx-tethys-slider.mjs","sources":["../../../src/slider/slider.component.ts","../../../src/slider/slider.component.html","../../../src/slider/slider.module.ts","../../../src/slider/ngx-tethys-slider.ts"],"sourcesContent":["import { NgStyle } from '@angular/common';\nimport {\n AfterViewInit,\n ChangeDetectorRef,\n Component,\n ElementRef,\n Input,\n NgZone,\n OnChanges,\n OnDestroy,\n OnInit,\n SimpleChanges,\n WritableSignal,\n effect,\n forwardRef,\n inject,\n input,\n numberAttribute,\n output,\n signal,\n viewChild\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { useHostRenderer } from '@tethys/cdk/dom';\nimport { TabIndexDisabledControlValueAccessorMixin } from 'ngx-tethys/core';\nimport { clamp, coerceBooleanProperty } from 'ngx-tethys/util';\nimport { Observable, Subscription, fromEvent } from 'rxjs';\nimport { distinctUntilChanged, map, pluck, takeUntil, tap } from 'rxjs/operators';\n\nexport type ThySliderType = 'primary' | 'success' | 'info' | 'warning' | 'danger';\n\nexport type ThySliderSize = 'sm' | 'md' | 'lg';\n\n/**\n * 滑动输入条组件\n * @name thy-slider\n * @order 10\n */\n@Component({\n selector: 'thy-slider',\n templateUrl: './slider.component.html',\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => ThySlider),\n multi: true\n }\n ],\n host: {\n '[attr.tabindex]': `tabIndex`,\n '[class.slider-vertical]': 'thyVertical()',\n '[class.slider-disabled]': '!!disabled',\n '[class.thy-slider]': 'true',\n '[class.cursor-pointer]': 'true'\n },\n imports: [NgStyle]\n})\nexport class ThySlider\n extends TabIndexDisabledControlValueAccessorMixin\n implements OnInit, AfterViewInit, OnDestroy, OnChanges, ControlValueAccessor\n{\n private cdr = inject(ChangeDetectorRef);\n private ngZone = inject(NgZone);\n private ref = inject(ElementRef);\n\n /**\n * 是否切换为纵轴模式\n */\n readonly thyVertical = input(false, { transform: coerceBooleanProperty });\n\n /**\n * 是否禁用\n */\n @Input({ transform: coerceBooleanProperty })\n override set thyDisabled(value: boolean) {\n this.disabled = value;\n this.toggleDisabled();\n }\n override get thyDisabled(): boolean {\n return this.disabled;\n }\n\n disabled = false;\n\n readonly sliderRail = viewChild<ElementRef>('sliderRail');\n\n readonly sliderTrack = viewChild<ElementRef>('sliderTrack');\n\n readonly sliderPointer = viewChild<ElementRef>('sliderPointer');\n\n private typeClassName: WritableSignal<string> = signal('');\n\n private sizeClassName: WritableSignal<string> = signal('');\n\n /**\n * 最大值\n */\n readonly thyMax = input<number, unknown>(100, { transform: numberAttribute });\n\n /**\n * 最小值\n */\n readonly thyMin = input<number, unknown>(0, { transform: numberAttribute });\n\n /**\n * 步长,需要被 thyMax - thyMin 的差值整除。\n */\n readonly thyStep = input<number, unknown>(1, { transform: numberAttribute });\n\n /**\n * 切换主题类型\n * @type primary | success | info | warning | danger\n */\n readonly thyType = input<ThySliderType>('success');\n\n /**\n * 通过变量设置颜色\n */\n readonly thyColor = input<string>();\n\n /**\n * 滑动输入条大小\n * @type sm | md | lg\n */\n readonly thySize = input<ThySliderSize>('sm');\n\n /**\n * 移动结束后的回调,参数为当前值\n */\n readonly thyAfterChange = output<{ value: number }>();\n\n public value: number;\n\n private dragStartListener: Observable<number>;\n\n private dragMoveListener: Observable<number>;\n\n private dragEndListener: Observable<Event>;\n\n private dragStartHandler: Subscription | null;\n\n private dragMoveHandler: Subscription | null;\n\n private dragEndHandler: Subscription | null;\n\n private hostRenderer = useHostRenderer();\n\n private onChangeCallback = (v: any) => {};\n\n private onTouchedCallback = (v: any) => {};\n\n constructor() {\n super();\n effect(() => {\n if (this.thyType()) {\n const typeName = `thy-slider-${this.thyType() || 'success'}`;\n this.typeClassName() && this.hostRenderer.removeClass(this.typeClassName());\n this.hostRenderer.addClass(typeName);\n this.typeClassName.set(typeName);\n }\n });\n\n effect(() => {\n if (this.thySize()) {\n const sizeName = `thy-slider-${this.thySize() || 'sm'}`;\n this.sizeClassName() && this.hostRenderer.removeClass(this.sizeClassName());\n this.hostRenderer.addClass(sizeName);\n this.sizeClassName.set(sizeName);\n }\n });\n }\n\n ngOnInit() {\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n verifyMinAndMax(this);\n verifyStepValues(this);\n }\n\n this.toggleDisabled();\n if (this.value === null || this.value === undefined) {\n this.setValue(this.ensureValueInRange(null));\n }\n }\n\n ngAfterViewInit() {\n this.registerMouseEventsListeners();\n this.toggleDisabled();\n }\n\n writeValue(newValue: number) {\n this.setValue(this.ensureValueInRange(newValue));\n }\n\n registerOnChange(fn: any) {\n this.onChangeCallback = fn;\n }\n\n registerOnTouched(fn: any) {\n this.onTouchedCallback = fn;\n }\n\n ngOnChanges(changes: SimpleChanges) {\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n if (changes.hasOwnProperty('thyMin') || changes.hasOwnProperty('thyMax') || changes.hasOwnProperty('thyStep')) {\n verifyMinAndMax(this);\n verifyStepValues(this);\n }\n }\n }\n\n ngOnDestroy() {\n this.unsubscribeMouseListeners();\n }\n\n private toggleDisabled() {\n if (this.thyDisabled) {\n this.unsubscribeMouseListeners();\n } else {\n this.subscribeMouseListeners(['start']);\n }\n }\n\n private setValue(value: number) {\n if (this.value !== value) {\n this.value = value;\n this.updateTrackAndPointer();\n }\n this.onChangeCallback(this.value);\n }\n\n private ensureValueInRange(value: number): number {\n if (!this.valueMustBeValid(value)) {\n return this.thyMin();\n }\n return clamp(value, this.thyMin(), this.thyMax());\n }\n\n private valueMustBeValid(value: number): boolean {\n return !isNaN(typeof value !== 'number' ? parseFloat(value) : value);\n }\n\n private updateTrackAndPointer() {\n const offset = this.valueToOffset(this.value);\n this.updateStyle(offset / 100);\n this.cdr.markForCheck();\n }\n\n private valueToOffset(value: number): number {\n return ((value - this.thyMin()) * 100) / (this.thyMax() - this.thyMin());\n }\n\n private updateStyle(offsetPercentage: number) {\n const percentage = Math.min(1, Math.max(0, offsetPercentage));\n const orientFields: string[] = this.thyVertical() ? ['height', 'bottom'] : ['width', 'left'];\n this.sliderTrack().nativeElement.style[orientFields[0]] = `${percentage * 100}%`;\n this.sliderPointer().nativeElement.style[orientFields[1]] = `${percentage * 100}%`;\n }\n\n private unsubscribeMouseListeners(actions: string[] = ['start', 'move', 'end']) {\n if (actions.includes('start') && this.dragStartHandler) {\n this.dragStartHandler.unsubscribe();\n this.dragStartHandler = null;\n }\n if (actions.includes('move') && this.dragMoveHandler) {\n this.dragMoveHandler.unsubscribe();\n this.dragMoveHandler = null;\n }\n if (actions.includes('end') && this.dragEndHandler) {\n this.dragEndHandler.unsubscribe();\n this.dragEndHandler = null;\n }\n }\n\n private subscribeMouseListeners(actions: string[] = ['start', 'move', 'end']) {\n if (actions.includes('start') && this.dragStartListener && !this.dragStartHandler) {\n this.dragStartHandler = this.dragStartListener.subscribe(this.mouseStartMoving.bind(this));\n }\n\n if (actions.includes('move') && this.dragMoveListener && !this.dragMoveHandler) {\n this.dragMoveHandler = this.dragMoveListener.subscribe(this.mouseMoving.bind(this));\n }\n\n if (actions.includes('end') && this.dragEndListener && !this.dragEndHandler) {\n this.dragEndHandler = this.dragEndListener.subscribe(this.mouseStopMoving.bind(this));\n }\n }\n\n private mouseStartMoving(value: number) {\n this.pointerController(true);\n this.setValue(value);\n }\n\n private mouseMoving(value: number) {\n this.setValue(this.ensureValueInRange(value));\n this.cdr.markForCheck();\n }\n\n private mouseStopMoving(): void {\n this.pointerController(false);\n this.cdr.markForCheck();\n this.thyAfterChange.emit({ value: this.value });\n }\n\n private pointerController(movable: boolean) {\n if (movable) {\n this.subscribeMouseListeners(['move', 'end']);\n } else {\n this.unsubscribeMouseListeners(['move', 'end']);\n }\n }\n private registerMouseEventsListeners() {\n const orientField = this.thyVertical() ? 'pageY' : 'pageX';\n\n this.dragStartListener = this.ngZone.runOutsideAngular(() => {\n return fromEvent(this.ref.nativeElement, 'mousedown').pipe(\n pluck(orientField),\n map((position: number, index) => this.mousePositionToAdaptiveValue(position))\n );\n });\n\n this.dragEndListener = this.ngZone.runOutsideAngular(() => {\n return fromEvent(document, 'mouseup');\n });\n\n this.dragMoveListener = this.ngZone.runOutsideAngular(() => {\n return fromEvent(document, 'mousemove').pipe(\n tap((e: Event) => {\n e.stopPropagation();\n e.preventDefault();\n }),\n pluck(orientField),\n distinctUntilChanged(),\n map((position: number) => this.mousePositionToAdaptiveValue(position)),\n distinctUntilChanged(),\n takeUntil(this.dragEndListener)\n );\n });\n }\n\n private mousePositionToAdaptiveValue(position: number): number {\n const sliderStartPosition = this.getSliderPagePosition();\n const sliderLength = this.getRailLength();\n if (!sliderLength) {\n return this.value;\n }\n const ratio = this.convertPointerPositionToRatio(position, sliderStartPosition, sliderLength);\n const value = this.ratioToValue(ratio);\n return parseFloat(value.toFixed(this.getDecimals(this.thyStep())));\n }\n\n private getSliderPagePosition(): number {\n const rect = this.ref.nativeElement.getBoundingClientRect();\n const window = this.ref.nativeElement.ownerDocument.defaultView;\n const orientFields: string[] = this.thyVertical() ? ['bottom', 'pageYOffset'] : ['left', 'pageXOffset'];\n return rect[orientFields[0]] + window[orientFields[1]];\n }\n\n private getRailLength() {\n const orientFiled = this.thyVertical() ? 'clientHeight' : 'clientWidth';\n\n return this.sliderRail().nativeElement[orientFiled];\n }\n\n private convertPointerPositionToRatio(pointerPosition: number, startPosition: number, totalLength: number) {\n if (this.thyVertical()) {\n return clamp((startPosition - pointerPosition) / totalLength, 0, 1);\n }\n return clamp((pointerPosition - startPosition) / totalLength, 0, 1);\n }\n\n private ratioToValue(ratio: number) {\n let value = (this.thyMax() - this.thyMin()) * ratio + this.thyMin();\n const step = this.thyStep();\n if (ratio === 0) {\n value = this.thyMin();\n } else if (ratio === 1) {\n value = this.thyMax();\n } else {\n value = Math.round(value / step) * step;\n }\n return clamp(value, this.thyMin(), this.thyMax());\n }\n\n private getDecimals(value: number): number {\n const valueString = value.toString();\n const integerLength = valueString.indexOf('.') + 1;\n return integerLength >= 0 ? valueString.length - integerLength : 0;\n }\n}\n\n// Note: keep `verifyMinAndMax` and `verifyStepValues` as separate functions (not as class properties)\n// so they're tree-shakable in production mode.\n\nfunction verifyMinAndMax(ctx: ThySlider): void | never {\n if (ctx.thyMin() >= ctx.thyMax()) {\n throw new Error('min value must less than max value.');\n }\n}\n\nfunction verifyStepValues(ctx: ThySlider): void | never {\n const thyStep = ctx.thyStep();\n if (ctx.thyStep() <= 0 || !thyStep) {\n throw new Error('step value must be greater than 0.');\n } else if (Number.isInteger(thyStep) && (ctx.thyMax() - ctx.thyMin()) % thyStep) {\n throw new Error('(max - min) must be divisible by step.');\n }\n}\n","<div class=\"thy-slider-rail\" #sliderRail>\n <div class=\"thy-slider-track\" #sliderTrack [ngStyle]=\"{ 'background-color': thyColor() }\"></div>\n <div class=\"thy-slider-pointer\" #sliderPointer [ngStyle]=\"{ 'border-color': thyColor() }\"></div>\n</div>\n","import { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { CommonModule } from '@angular/common';\nimport { ThySlider } from './slider.component';\n\n@NgModule({\n imports: [CommonModule, FormsModule, ThySlider],\n exports: [ThySlider],\n providers: []\n})\nexport class ThySliderModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { NgTemplateOutlet, CommonModule } from '@angular/common';
|
|
2
2
|
import * as i0 from '@angular/core';
|
|
3
|
-
import { Directive,
|
|
3
|
+
import { Directive, input, computed, contentChildren, TemplateRef, effect, ChangeDetectionStrategy, Component, NgModule } from '@angular/core';
|
|
4
4
|
import { useHostRenderer } from '@tethys/cdk/dom';
|
|
5
5
|
import { getNumericSize } from 'ngx-tethys/core';
|
|
6
6
|
import { coerceBooleanProperty } from 'ngx-tethys/util';
|
|
@@ -11,15 +11,13 @@ import { coerceBooleanProperty } from 'ngx-tethys/util';
|
|
|
11
11
|
* @order 20
|
|
12
12
|
*/
|
|
13
13
|
class ThySpaceItemDirective {
|
|
14
|
-
constructor() { }
|
|
15
|
-
ngOnInit() { }
|
|
16
14
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.8", ngImport: i0, type: ThySpaceItemDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
17
15
|
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "19.2.8", type: ThySpaceItemDirective, isStandalone: true, selector: "[thySpaceItem]", host: { classAttribute: "thy-space-item" }, ngImport: i0 }); }
|
|
18
16
|
}
|
|
19
17
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.8", ngImport: i0, type: ThySpaceItemDirective, decorators: [{
|
|
20
18
|
type: Directive,
|
|
21
19
|
args: [{ selector: '[thySpaceItem]', host: { class: 'thy-space-item' } }]
|
|
22
|
-
}]
|
|
20
|
+
}] });
|
|
23
21
|
const DEFAULT_SIZE = 'md';
|
|
24
22
|
/**
|
|
25
23
|
* 间距组件
|
|
@@ -28,8 +26,6 @@ const DEFAULT_SIZE = 'md';
|
|
|
28
26
|
*/
|
|
29
27
|
class ThySpace {
|
|
30
28
|
constructor() {
|
|
31
|
-
this.cdr = inject(ChangeDetectorRef);
|
|
32
|
-
this.destroyRef = inject(DestroyRef);
|
|
33
29
|
this.hostRenderer = useHostRenderer();
|
|
34
30
|
/**
|
|
35
31
|
* 大小,支持 `zero` | `xxs` | `xs` | `sm` | `md` | `lg` | `xlg` 和自定义数字大小
|
|
@@ -53,8 +49,6 @@ class ThySpace {
|
|
|
53
49
|
this.hostRenderer.updateClass(this.thyAlign() ? [`align-items-${this.thyAlign()}`] : []);
|
|
54
50
|
});
|
|
55
51
|
}
|
|
56
|
-
ngOnInit() { }
|
|
57
|
-
ngAfterContentInit() { }
|
|
58
52
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.8", ngImport: i0, type: ThySpace, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
59
53
|
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.8", type: ThySpace, isStandalone: true, selector: "thy-space", inputs: { thySize: { classPropertyName: "thySize", publicName: "thySize", isSignal: true, isRequired: false, transformFunction: null }, thyVertical: { classPropertyName: "thyVertical", publicName: "thyVertical", isSignal: true, isRequired: false, transformFunction: null }, thyAlign: { classPropertyName: "thyAlign", publicName: "thyAlign", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class.thy-space": "true", "class.thy-space-vertical": "thyVertical()" } }, queries: [{ propertyName: "items", predicate: ThySpaceItemDirective, read: TemplateRef, isSignal: true }], ngImport: i0, template: "<ng-content></ng-content>\n\n@for (item of items(); track $index; let last = $last; let index = $index) {\n <div class=\"thy-space-item\" [style.margin-right.px]=\"last ? null : space()\">\n <ng-container [ngTemplateOutlet]=\"item\"></ng-container>\n </div>\n}\n", dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
60
54
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ngx-tethys-space.mjs","sources":["../../../src/space/space.component.ts","../../../src/space/space.component.html","../../../src/space/space.module.ts","../../../src/space/ngx-tethys-space.ts"],"sourcesContent":["import { useHostRenderer } from '@tethys/cdk/dom';\n\nimport {
|
|
1
|
+
{"version":3,"file":"ngx-tethys-space.mjs","sources":["../../../src/space/space.component.ts","../../../src/space/space.component.html","../../../src/space/space.module.ts","../../../src/space/ngx-tethys-space.ts"],"sourcesContent":["import { useHostRenderer } from '@tethys/cdk/dom';\n\nimport { ChangeDetectionStrategy, Component, Directive, input, TemplateRef, computed, effect, contentChildren } from '@angular/core';\nimport { ThySpacingSize, getNumericSize } from 'ngx-tethys/core';\nimport { NgTemplateOutlet } from '@angular/common';\nimport { coerceBooleanProperty } from 'ngx-tethys/util';\n\n/**\n * 间距组件项,使用结构性指令 *thySpaceItem 传入模板\n * @name thySpaceItem\n * @order 20\n */\n@Directive({ selector: '[thySpaceItem]', host: { class: 'thy-space-item' } })\nexport class ThySpaceItemDirective {}\n\nconst DEFAULT_SIZE: ThySpacingSize = 'md';\n\n/**\n * 间距组件\n * @name thy-space\n * @order 10\n */\n@Component({\n selector: 'thy-space',\n templateUrl: './space.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n '[class.thy-space]': 'true',\n '[class.thy-space-vertical]': 'thyVertical()'\n },\n imports: [NgTemplateOutlet]\n})\nexport class ThySpace {\n private hostRenderer = useHostRenderer();\n\n /**\n * 大小,支持 `zero` | `xxs` | `xs` | `sm` | `md` | `lg` | `xlg` 和自定义数字大小\n * @type string | number\n */\n readonly thySize = input<ThySpacingSize>(DEFAULT_SIZE);\n\n readonly space = computed(() => {\n return getNumericSize(this.thySize(), DEFAULT_SIZE);\n });\n\n /**\n * 间距垂直方向,默认是水平方向\n */\n readonly thyVertical = input<string | boolean, boolean>(false, { transform: coerceBooleanProperty });\n\n // @ClassBinding(`align-items-{{value}}`)\n /**\n * 对齐方式,可选择 `start` | `end` | `baseline` | `center`\n */\n readonly thyAlign = input<string>();\n\n readonly items = contentChildren(ThySpaceItemDirective, { read: TemplateRef<HTMLElement> });\n\n constructor() {\n effect(() => {\n this.hostRenderer.updateClass(this.thyAlign() ? [`align-items-${this.thyAlign()}`] : []);\n });\n }\n}\n","<ng-content></ng-content>\n\n@for (item of items(); track $index; let last = $last; let index = $index) {\n <div class=\"thy-space-item\" [style.margin-right.px]=\"last ? null : space()\">\n <ng-container [ngTemplateOutlet]=\"item\"></ng-container>\n </div>\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { ThySpace, ThySpaceItemDirective } from './space.component';\n\n@NgModule({\n imports: [CommonModule, ThySpace, ThySpaceItemDirective],\n exports: [ThySpace, ThySpaceItemDirective]\n})\nexport class ThySpaceModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|