ngx-tethys 20.0.1 → 20.0.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 +17 -0
- package/action/index.d.ts +3 -3
- package/affix/index.d.ts +1 -1
- package/alert/index.d.ts +3 -3
- package/anchor/index.d.ts +3 -3
- package/arrow-switcher/index.d.ts +6 -6
- package/autocomplete/index.d.ts +7 -7
- package/avatar/index.d.ts +9 -9
- package/back-top/index.d.ts +3 -3
- package/badge/index.d.ts +6 -6
- package/breadcrumb/index.d.ts +7 -7
- package/button/index.d.ts +19 -19
- package/calendar/index.d.ts +8 -8
- package/card/index.d.ts +6 -6
- package/carousel/index.d.ts +4 -4
- package/cascader/index.d.ts +24 -24
- package/collapse/index.d.ts +4 -4
- package/color-picker/index.d.ts +16 -16
- package/comment/index.d.ts +3 -3
- package/copy/index.d.ts +2 -2
- package/core/index.d.ts +22 -22
- package/date-picker/index.d.ts +111 -111
- package/date-range/index.d.ts +5 -5
- package/dialog/index.d.ts +18 -18
- package/divider/index.d.ts +3 -3
- package/drag-drop/index.d.ts +7 -7
- package/dropdown/index.d.ts +10 -10
- package/empty/index.d.ts +12 -12
- package/fesm2022/ngx-tethys-action.mjs +14 -12
- package/fesm2022/ngx-tethys-action.mjs.map +1 -1
- package/fesm2022/ngx-tethys-affix.mjs +7 -7
- package/fesm2022/ngx-tethys-affix.mjs.map +1 -1
- package/fesm2022/ngx-tethys-alert.mjs +10 -10
- package/fesm2022/ngx-tethys-anchor.mjs +11 -11
- package/fesm2022/ngx-tethys-anchor.mjs.map +1 -1
- package/fesm2022/ngx-tethys-arrow-switcher.mjs +7 -7
- package/fesm2022/ngx-tethys-arrow-switcher.mjs.map +1 -1
- package/fesm2022/ngx-tethys-autocomplete.mjs +19 -18
- package/fesm2022/ngx-tethys-autocomplete.mjs.map +1 -1
- package/fesm2022/ngx-tethys-avatar.mjs +23 -22
- package/fesm2022/ngx-tethys-avatar.mjs.map +1 -1
- package/fesm2022/ngx-tethys-back-top.mjs +7 -7
- package/fesm2022/ngx-tethys-badge.mjs +7 -7
- package/fesm2022/ngx-tethys-badge.mjs.map +1 -1
- package/fesm2022/ngx-tethys-breadcrumb.mjs +10 -10
- package/fesm2022/ngx-tethys-breadcrumb.mjs.map +1 -1
- package/fesm2022/ngx-tethys-button.mjs +16 -16
- package/fesm2022/ngx-tethys-button.mjs.map +1 -1
- package/fesm2022/ngx-tethys-calendar.mjs +16 -16
- package/fesm2022/ngx-tethys-calendar.mjs.map +1 -1
- package/fesm2022/ngx-tethys-card.mjs +13 -13
- package/fesm2022/ngx-tethys-card.mjs.map +1 -1
- package/fesm2022/ngx-tethys-carousel.mjs +15 -15
- package/fesm2022/ngx-tethys-carousel.mjs.map +1 -1
- package/fesm2022/ngx-tethys-cascader.mjs +41 -34
- package/fesm2022/ngx-tethys-cascader.mjs.map +1 -1
- package/fesm2022/ngx-tethys-checkbox.mjs +7 -7
- package/fesm2022/ngx-tethys-collapse.mjs +10 -10
- package/fesm2022/ngx-tethys-color-picker.mjs +65 -57
- package/fesm2022/ngx-tethys-color-picker.mjs.map +1 -1
- package/fesm2022/ngx-tethys-comment.mjs +13 -13
- package/fesm2022/ngx-tethys-copy.mjs +10 -10
- package/fesm2022/ngx-tethys-copy.mjs.map +1 -1
- package/fesm2022/ngx-tethys-core.mjs +30 -25
- package/fesm2022/ngx-tethys-core.mjs.map +1 -1
- package/fesm2022/ngx-tethys-date-picker.mjs +184 -174
- package/fesm2022/ngx-tethys-date-picker.mjs.map +1 -1
- package/fesm2022/ngx-tethys-date-range.mjs +16 -16
- package/fesm2022/ngx-tethys-date-range.mjs.map +1 -1
- package/fesm2022/ngx-tethys-dialog.mjs +24 -24
- package/fesm2022/ngx-tethys-dialog.mjs.map +1 -1
- package/fesm2022/ngx-tethys-divider.mjs +7 -7
- package/fesm2022/ngx-tethys-divider.mjs.map +1 -1
- package/fesm2022/ngx-tethys-dot.mjs +7 -7
- package/fesm2022/ngx-tethys-drag-drop.mjs +24 -24
- package/fesm2022/ngx-tethys-drag-drop.mjs.map +1 -1
- package/fesm2022/ngx-tethys-dropdown.mjs +48 -47
- package/fesm2022/ngx-tethys-dropdown.mjs.map +1 -1
- package/fesm2022/ngx-tethys-empty.mjs +13 -13
- package/fesm2022/ngx-tethys-empty.mjs.map +1 -1
- package/fesm2022/ngx-tethys-flexible-text.mjs +7 -7
- package/fesm2022/ngx-tethys-flexible-text.mjs.map +1 -1
- package/fesm2022/ngx-tethys-form.mjs +64 -61
- package/fesm2022/ngx-tethys-form.mjs.map +1 -1
- package/fesm2022/ngx-tethys-fullscreen.mjs +18 -15
- package/fesm2022/ngx-tethys-fullscreen.mjs.map +1 -1
- package/fesm2022/ngx-tethys-grid.mjs +34 -33
- package/fesm2022/ngx-tethys-grid.mjs.map +1 -1
- package/fesm2022/ngx-tethys-guider.mjs +25 -24
- package/fesm2022/ngx-tethys-guider.mjs.map +1 -1
- package/fesm2022/ngx-tethys-i18n.mjs +3 -3
- package/fesm2022/ngx-tethys-i18n.mjs.map +1 -1
- package/fesm2022/ngx-tethys-icon.mjs +15 -13
- package/fesm2022/ngx-tethys-icon.mjs.map +1 -1
- package/fesm2022/ngx-tethys-image.mjs +31 -29
- package/fesm2022/ngx-tethys-image.mjs.map +1 -1
- package/fesm2022/ngx-tethys-input-number.mjs +17 -10
- package/fesm2022/ngx-tethys-input-number.mjs.map +1 -1
- package/fesm2022/ngx-tethys-input.mjs +28 -27
- package/fesm2022/ngx-tethys-input.mjs.map +1 -1
- package/fesm2022/ngx-tethys-layout.mjs +63 -63
- package/fesm2022/ngx-tethys-layout.mjs.map +1 -1
- package/fesm2022/ngx-tethys-list.mjs +21 -18
- package/fesm2022/ngx-tethys-list.mjs.map +1 -1
- package/fesm2022/ngx-tethys-loading.mjs +7 -7
- package/fesm2022/ngx-tethys-mention.mjs +35 -31
- package/fesm2022/ngx-tethys-mention.mjs.map +1 -1
- package/fesm2022/ngx-tethys-menu.mjs +26 -26
- package/fesm2022/ngx-tethys-menu.mjs.map +1 -1
- package/fesm2022/ngx-tethys-message.mjs +24 -24
- package/fesm2022/ngx-tethys-message.mjs.map +1 -1
- package/fesm2022/ngx-tethys-nav.mjs +27 -27
- package/fesm2022/ngx-tethys-nav.mjs.map +1 -1
- package/fesm2022/ngx-tethys-notify.mjs +20 -20
- package/fesm2022/ngx-tethys-notify.mjs.map +1 -1
- package/fesm2022/ngx-tethys-pagination.mjs +18 -18
- package/fesm2022/ngx-tethys-pagination.mjs.map +1 -1
- package/fesm2022/ngx-tethys-popover.mjs +22 -21
- package/fesm2022/ngx-tethys-popover.mjs.map +1 -1
- package/fesm2022/ngx-tethys-progress.mjs +17 -17
- package/fesm2022/ngx-tethys-progress.mjs.map +1 -1
- package/fesm2022/ngx-tethys-property-operation.mjs +11 -11
- package/fesm2022/ngx-tethys-property-operation.mjs.map +1 -1
- package/fesm2022/ngx-tethys-property.mjs +12 -11
- package/fesm2022/ngx-tethys-property.mjs.map +1 -1
- package/fesm2022/ngx-tethys-radio.mjs +17 -17
- package/fesm2022/ngx-tethys-radio.mjs.map +1 -1
- package/fesm2022/ngx-tethys-rate.mjs +12 -12
- package/fesm2022/ngx-tethys-rate.mjs.map +1 -1
- package/fesm2022/ngx-tethys-resizable.mjs +21 -18
- package/fesm2022/ngx-tethys-resizable.mjs.map +1 -1
- package/fesm2022/ngx-tethys-result.mjs +11 -11
- package/fesm2022/ngx-tethys-result.mjs.map +1 -1
- package/fesm2022/ngx-tethys-segment.mjs +19 -16
- package/fesm2022/ngx-tethys-segment.mjs.map +1 -1
- package/fesm2022/ngx-tethys-select.mjs +60 -38
- package/fesm2022/ngx-tethys-select.mjs.map +1 -1
- package/fesm2022/ngx-tethys-shared.mjs +82 -79
- package/fesm2022/ngx-tethys-shared.mjs.map +1 -1
- package/fesm2022/ngx-tethys-skeleton.mjs +32 -32
- package/fesm2022/ngx-tethys-skeleton.mjs.map +1 -1
- package/fesm2022/ngx-tethys-slide.mjs +37 -36
- package/fesm2022/ngx-tethys-slide.mjs.map +1 -1
- package/fesm2022/ngx-tethys-slider.mjs +11 -11
- package/fesm2022/ngx-tethys-slider.mjs.map +1 -1
- package/fesm2022/ngx-tethys-space.mjs +10 -10
- package/fesm2022/ngx-tethys-statistic.mjs +7 -7
- package/fesm2022/ngx-tethys-statistic.mjs.map +1 -1
- package/fesm2022/ngx-tethys-stepper.mjs +22 -22
- package/fesm2022/ngx-tethys-stepper.mjs.map +1 -1
- package/fesm2022/ngx-tethys-strength.mjs +7 -7
- package/fesm2022/ngx-tethys-strength.mjs.map +1 -1
- package/fesm2022/ngx-tethys-switch.mjs +7 -7
- package/fesm2022/ngx-tethys-switch.mjs.map +1 -1
- package/fesm2022/ngx-tethys-table.mjs +28 -28
- package/fesm2022/ngx-tethys-table.mjs.map +1 -1
- package/fesm2022/ngx-tethys-tabs.mjs +13 -13
- package/fesm2022/ngx-tethys-tabs.mjs.map +1 -1
- package/fesm2022/ngx-tethys-tag.mjs +11 -11
- package/fesm2022/ngx-tethys-tag.mjs.map +1 -1
- package/fesm2022/ngx-tethys-testing.mjs +1 -1
- package/fesm2022/ngx-tethys-testing.mjs.map +1 -1
- package/fesm2022/ngx-tethys-time-picker.mjs +22 -22
- package/fesm2022/ngx-tethys-time-picker.mjs.map +1 -1
- package/fesm2022/ngx-tethys-timeline.mjs +14 -14
- package/fesm2022/ngx-tethys-timeline.mjs.map +1 -1
- package/fesm2022/ngx-tethys-tooltip.mjs +19 -16
- package/fesm2022/ngx-tethys-tooltip.mjs.map +1 -1
- package/fesm2022/ngx-tethys-transfer.mjs +15 -15
- package/fesm2022/ngx-tethys-transfer.mjs.map +1 -1
- package/fesm2022/ngx-tethys-tree-select.mjs +17 -17
- package/fesm2022/ngx-tethys-tree-select.mjs.map +1 -1
- package/fesm2022/ngx-tethys-tree.mjs +50 -43
- package/fesm2022/ngx-tethys-tree.mjs.map +1 -1
- package/fesm2022/ngx-tethys-typography.mjs +16 -16
- package/fesm2022/ngx-tethys-typography.mjs.map +1 -1
- package/fesm2022/ngx-tethys-upload.mjs +26 -25
- package/fesm2022/ngx-tethys-upload.mjs.map +1 -1
- package/fesm2022/ngx-tethys-util.mjs +11 -5
- package/fesm2022/ngx-tethys-util.mjs.map +1 -1
- package/fesm2022/ngx-tethys-vote.mjs +7 -7
- package/fesm2022/ngx-tethys-watermark.mjs +18 -15
- package/fesm2022/ngx-tethys-watermark.mjs.map +1 -1
- package/fesm2022/ngx-tethys.mjs +1 -1
- package/fesm2022/ngx-tethys.mjs.map +1 -1
- package/flexible-text/index.d.ts +5 -5
- package/form/index.d.ts +26 -22
- package/fullscreen/index.d.ts +4 -4
- package/grid/index.d.ts +12 -12
- package/guider/index.d.ts +10 -10
- package/i18n/index.d.ts +1 -1
- package/icon/index.d.ts +3 -3
- package/image/index.d.ts +12 -12
- package/input/index.d.ts +22 -22
- package/input-number/index.d.ts +4 -4
- package/layout/index.d.ts +16 -16
- package/list/index.d.ts +16 -15
- package/mention/index.d.ts +4 -4
- package/menu/index.d.ts +7 -7
- package/message/index.d.ts +5 -5
- package/nav/index.d.ts +12 -12
- package/notify/index.d.ts +1 -1
- package/package.json +1 -1
- package/pagination/index.d.ts +21 -17
- package/popover/index.d.ts +8 -8
- package/progress/index.d.ts +18 -18
- package/property/index.d.ts +6 -6
- package/property-operation/index.d.ts +3 -3
- package/radio/index.d.ts +6 -6
- package/rate/index.d.ts +5 -5
- package/resizable/index.d.ts +2 -2
- package/result/index.d.ts +8 -8
- package/schematics/testing/test-workspace.js +1 -0
- package/schematics/version.d.ts +1 -1
- package/schematics/version.js +1 -1
- package/segment/index.d.ts +9 -9
- package/select/index.d.ts +21 -21
- package/shared/index.d.ts +29 -29
- package/skeleton/index.d.ts +52 -52
- package/slide/index.d.ts +5 -5
- package/slider/index.d.ts +6 -6
- package/space/index.d.ts +1 -1
- package/statistic/index.d.ts +18 -18
- package/stepper/index.d.ts +8 -8
- package/switch/index.d.ts +2 -2
- package/table/index.d.ts +24 -24
- package/tabs/index.d.ts +6 -6
- package/testing/index.d.ts +1 -1
- package/time-picker/index.d.ts +21 -21
- package/timeline/index.d.ts +8 -8
- package/tooltip/index.d.ts +12 -12
- package/transfer/index.d.ts +16 -16
- package/tree/index.d.ts +28 -28
- package/tree-select/index.d.ts +13 -13
- package/typography/index.d.ts +3 -3
- package/upload/index.d.ts +4 -4
- package/util/index.d.ts +17 -7
- package/vote/index.d.ts +2 -2
- package/watermark/index.d.ts +2 -2
|
@@ -16,14 +16,14 @@ class ThyTabContent {
|
|
|
16
16
|
this.active = input(false, ...(ngDevMode ? [{ debugName: "active", transform: coerceBooleanProperty }] : [{ transform: coerceBooleanProperty }]));
|
|
17
17
|
this.tabPaneAnimated = input(true, ...(ngDevMode ? [{ debugName: "tabPaneAnimated", transform: coerceBooleanProperty }] : [{ transform: coerceBooleanProperty }]));
|
|
18
18
|
}
|
|
19
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
20
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.
|
|
19
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ThyTabContent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
20
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.15", type: ThyTabContent, isStandalone: true, selector: "thy-tab-content, [thyTabContent]", inputs: { content: { classPropertyName: "content", publicName: "content", isSignal: true, isRequired: false, transformFunction: null }, active: { classPropertyName: "active", publicName: "active", isSignal: true, isRequired: false, transformFunction: null }, tabPaneAnimated: { classPropertyName: "tabPaneAnimated", publicName: "tabPaneAnimated", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "attr.aria-hidden": "!active()", "attr.tabindex": "active() ? 0 : -1", "style.visibility": "tabPaneAnimated() ? active() ? null : \"hidden\" : null", "style.height": "tabPaneAnimated() ? active() ? null : 0 : null", "style.overflow-y": "tabPaneAnimated() ? active() ? null : \"none\" : null", "style.display": "!tabPaneAnimated() ? active() ? null : \"none\" : null" }, classAttribute: "thy-tab-content" }, exportAs: ["thyTabContent"], ngImport: i0, template: `
|
|
21
21
|
@if (active()) {
|
|
22
22
|
<ng-template [ngTemplateOutlet]="content()"></ng-template>
|
|
23
23
|
}
|
|
24
24
|
`, isInline: true, dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
25
25
|
}
|
|
26
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
26
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ThyTabContent, decorators: [{
|
|
27
27
|
type: Component,
|
|
28
28
|
args: [{
|
|
29
29
|
selector: 'thy-tab-content, [thyTabContent]',
|
|
@@ -70,10 +70,10 @@ class ThyTab {
|
|
|
70
70
|
this.thyDisabled = input(false, ...(ngDevMode ? [{ debugName: "thyDisabled", transform: coerceBooleanProperty }] : [{ transform: coerceBooleanProperty }]));
|
|
71
71
|
}
|
|
72
72
|
ngOnInit() { }
|
|
73
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
74
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "20.3.
|
|
73
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ThyTab, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
74
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "20.3.15", type: ThyTab, isStandalone: true, selector: "thy-tab", inputs: { thyTitle: { classPropertyName: "thyTitle", publicName: "thyTitle", isSignal: true, isRequired: false, transformFunction: null }, id: { classPropertyName: "id", publicName: "id", isSignal: true, isRequired: false, transformFunction: null }, thyDisabled: { classPropertyName: "thyDisabled", publicName: "thyDisabled", isSignal: true, isRequired: false, transformFunction: null } }, queries: [{ propertyName: "titleTemplateRef", first: true, predicate: ["title"], descendants: true }], viewQueries: [{ propertyName: "content", first: true, predicate: ["content"], descendants: true, static: true }], ngImport: i0, template: ` <ng-template #content><ng-content></ng-content></ng-template> `, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
75
75
|
}
|
|
76
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
76
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ThyTab, decorators: [{
|
|
77
77
|
type: Component,
|
|
78
78
|
args: [{
|
|
79
79
|
selector: 'thy-tab',
|
|
@@ -171,10 +171,10 @@ class ThyTabs {
|
|
|
171
171
|
const id = tab.id();
|
|
172
172
|
this.thyActiveTab.set(id ? id : index);
|
|
173
173
|
}
|
|
174
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
175
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.
|
|
174
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ThyTabs, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
175
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.15", type: ThyTabs, isStandalone: true, selector: "thy-tabs", inputs: { thyType: { classPropertyName: "thyType", publicName: "thyType", isSignal: true, isRequired: false, transformFunction: null }, thySize: { classPropertyName: "thySize", publicName: "thySize", isSignal: true, isRequired: false, transformFunction: null }, thyActiveTab: { classPropertyName: "thyActiveTab", publicName: "thyActiveTab", isSignal: true, isRequired: false, transformFunction: null }, thyExtra: { classPropertyName: "thyExtra", publicName: "thyExtra", isSignal: true, isRequired: false, transformFunction: null }, thyPosition: { classPropertyName: "thyPosition", publicName: "thyPosition", isSignal: true, isRequired: false, transformFunction: null }, thyAnimated: { classPropertyName: "thyAnimated", publicName: "thyAnimated", isSignal: true, isRequired: false, transformFunction: null }, thyResponsive: { classPropertyName: "thyResponsive", publicName: "thyResponsive", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { thyActiveTab: "thyActiveTabChange" }, host: { properties: { "class.thy-tabs-top": "thyPosition() === 'top'", "class.thy-tabs-left": "thyPosition() === 'left'", "style.overflow": "transitionStarted ? \"hidden\" : null" }, classAttribute: "thy-tabs" }, queries: [{ propertyName: "tabs", predicate: ThyTab, descendants: true }], ngImport: i0, template: "<!-- tabs nav -->\n<thy-nav\n class=\"thy-tabs-nav\"\n [thyType]=\"thyType()\"\n [thySize]=\"thySize()\"\n [thyExtra]=\"thyExtra()\"\n [thyVertical]=\"thyPosition() === 'left'\"\n [thyResponsive]=\"thyResponsive()\">\n @for (tab of tabs; track $index; let i = $index) {\n <a\n href=\"javascript:;\"\n thyNavItem\n [id]=\"tab.id()\"\n [thyNavItemDisabled]=\"tab.thyDisabled()\"\n [thyNavItemActive]=\"(tab.id() && activeTabId() && tab.id() === activeTabId()) ?? i === activeTabIndex()\"\n (click)=\"activeTab(tab, i)\">\n @if (tab.titleTemplateRef) {\n <ng-template [ngTemplateOutlet]=\"tab.titleTemplateRef\"></ng-template>\n } @else {\n {{ tab.thyTitle() }}\n }\n </a>\n }\n</thy-nav>\n<!-- tabs content -->\n<div class=\"thy-tabs-content\" [class.thy-tabs-content-animated]=\"tabPaneAnimated\" [style.margin-left]=\"getTabContentMarginLeft()\">\n @for (tab of tabs; track $index; let i = $index) {\n <div\n thyTabContent\n [active]=\"(tab.id() && activeTabId() && tab.id() === activeTabId()) ?? i === activeTabIndex()\"\n [content]=\"tab.content\"\n [tabPaneAnimated]=\"tabPaneAnimated\"></div>\n }\n</div>\n", dependencies: [{ kind: "component", type: ThyNav, selector: "thy-nav", inputs: ["thyType", "thySize", "thyHorizontal", "thyVertical", "thyFill", "thyResponsive", "thyPauseReCalculate", "thyInsideClosable", "thyPopoverOptions", "thyExtra"] }, { kind: "directive", type: ThyNavItemDirective, selector: "[thyNavLink],[thyNavItem]", inputs: ["id", "thyNavItemActive", "thyNavLinkActive", "thyNavItemDisabled"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: ThyTabContent, selector: "thy-tab-content, [thyTabContent]", inputs: ["content", "active", "tabPaneAnimated"], exportAs: ["thyTabContent"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
176
176
|
}
|
|
177
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
177
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ThyTabs, decorators: [{
|
|
178
178
|
type: Component,
|
|
179
179
|
args: [{ selector: 'thy-tabs', changeDetection: ChangeDetectionStrategy.OnPush, host: {
|
|
180
180
|
class: 'thy-tabs',
|
|
@@ -188,11 +188,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.14", ngImpo
|
|
|
188
188
|
}], thyType: [{ type: i0.Input, args: [{ isSignal: true, alias: "thyType", required: false }] }], thySize: [{ type: i0.Input, args: [{ isSignal: true, alias: "thySize", required: false }] }], thyActiveTab: [{ type: i0.Input, args: [{ isSignal: true, alias: "thyActiveTab", required: false }] }, { type: i0.Output, args: ["thyActiveTabChange"] }], thyExtra: [{ type: i0.Input, args: [{ isSignal: true, alias: "thyExtra", required: false }] }], thyPosition: [{ type: i0.Input, args: [{ isSignal: true, alias: "thyPosition", required: false }] }], thyAnimated: [{ type: i0.Input, args: [{ isSignal: true, alias: "thyAnimated", required: false }] }], thyResponsive: [{ type: i0.Input, args: [{ isSignal: true, alias: "thyResponsive", required: false }] }] } });
|
|
189
189
|
|
|
190
190
|
class ThyTabsModule {
|
|
191
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
192
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.
|
|
193
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.
|
|
191
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ThyTabsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
192
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.15", ngImport: i0, type: ThyTabsModule, imports: [CommonModule, ThyIconModule, ThyNavModule, ThyTabs, ThyTab, ThyTabContent], exports: [ThyTabs, ThyTab] }); }
|
|
193
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ThyTabsModule, imports: [CommonModule, ThyIconModule, ThyNavModule, ThyTabs] }); }
|
|
194
194
|
}
|
|
195
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
195
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ThyTabsModule, decorators: [{
|
|
196
196
|
type: NgModule,
|
|
197
197
|
args: [{
|
|
198
198
|
imports: [CommonModule, ThyIconModule, ThyNavModule, ThyTabs, ThyTab, ThyTabContent],
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ngx-tethys-tabs.mjs","sources":["../../../src/tabs/tab-content.component.ts","../../../src/tabs/tab.component.ts","../../../src/tabs/tabs.component.ts","../../../src/tabs/tabs.component.html","../../../src/tabs/tabs.module.ts","../../../src/tabs/ngx-tethys-tabs.ts"],"sourcesContent":["import { ChangeDetectionStrategy, Component, TemplateRef, ViewEncapsulation, input } from '@angular/core';\nimport { NgTemplateOutlet } from '@angular/common';\nimport { coerceBooleanProperty, ThyBooleanInput } from 'ngx-tethys/util';\n\n/**\n * @private\n */\n@Component({\n selector: 'thy-tab-content, [thyTabContent]',\n exportAs: 'thyTabContent',\n preserveWhitespaces: false,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n template: `\n @if (active()) {\n <ng-template [ngTemplateOutlet]=\"content()\"></ng-template>\n }\n `,\n host: {\n class: 'thy-tab-content',\n '[attr.aria-hidden]': '!active()',\n '[attr.tabindex]': 'active() ? 0 : -1',\n '[style.visibility]': 'tabPaneAnimated() ? active() ? null : \"hidden\" : null',\n '[style.height]': 'tabPaneAnimated() ? active() ? null : 0 : null',\n '[style.overflow-y]': 'tabPaneAnimated() ? active() ? null : \"none\" : null',\n '[style.display]': '!tabPaneAnimated() ? active() ? null : \"none\" : null'\n },\n imports: [NgTemplateOutlet]\n})\nexport class ThyTabContent {\n readonly content = input<TemplateRef<void> | null>(null);\n\n readonly active = input<boolean, ThyBooleanInput>(false, { transform: coerceBooleanProperty });\n\n readonly tabPaneAnimated = input<boolean, ThyBooleanInput>(true, { transform: coerceBooleanProperty });\n}\n","import { Component, OnInit, ChangeDetectionStrategy, ViewChild, TemplateRef, ContentChild, input } from '@angular/core';\nimport { coerceBooleanProperty, ThyBooleanInput } from 'ngx-tethys/util';\n\n/**\n * 选项卡的选项组件\n * @name thy-tab\n */\n@Component({\n selector: 'thy-tab',\n template: ` <ng-template #content><ng-content></ng-content></ng-template> `,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class ThyTab implements OnInit {\n /**\n * 自定义选项标题的模板\n * @type TemplateRef\n */\n @ContentChild('title') titleTemplateRef: TemplateRef<unknown>;\n\n @ViewChild('content', { static: true }) content: TemplateRef<HTMLElement>;\n\n /**\n * 选项标题\n */\n readonly thyTitle = input<string>(undefined);\n\n /**\n * 选项的唯一标识\n */\n readonly id = input<string>(undefined);\n\n /**\n * 是否禁用选项\n * @default false\n */\n readonly thyDisabled = input<boolean, ThyBooleanInput>(false, { transform: coerceBooleanProperty });\n\n constructor() {}\n\n ngOnInit(): void {}\n}\n","import { NgTemplateOutlet } from '@angular/common';\nimport {\n AfterContentInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChildren,\n DestroyRef,\n ElementRef,\n inject,\n input,\n linkedSignal,\n model,\n OnInit,\n QueryList,\n TemplateRef\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { ThyNav, ThyNavItemDirective } from 'ngx-tethys/nav';\nimport { coerceBooleanProperty, isNumber, ThyBooleanInput } from 'ngx-tethys/util';\nimport { fromEvent } from 'rxjs';\nimport { ThyTabContent } from './tab-content.component';\nimport { ThyTab } from './tab.component';\nimport { ThyActiveTabInfo } from './types';\n\nexport type ThyTabsSize = 'lg' | 'md' | 'sm';\n\nexport type ThyTabsType = 'pulled' | 'tabs' | 'pills' | 'lite';\n\nexport type ThyTabsPosition = 'top' | 'left';\n\n/**\n * 选项卡切换组件\n * @name thy-tabs\n */\n@Component({\n selector: 'thy-tabs',\n templateUrl: './tabs.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'thy-tabs',\n '[class.thy-tabs-top]': `thyPosition() === 'top'`,\n '[class.thy-tabs-left]': `thyPosition() === 'left'`,\n '[style.overflow]': `transitionStarted ? \"hidden\" : null`\n },\n imports: [ThyNav, ThyNavItemDirective, NgTemplateOutlet, ThyTabContent]\n})\nexport class ThyTabs implements OnInit, AfterContentInit {\n private cd = inject(ChangeDetectorRef);\n private el = inject(ElementRef);\n\n @ContentChildren(ThyTab, { descendants: true }) tabs = new QueryList<ThyTab>();\n\n private readonly destroyRef = inject(DestroyRef);\n\n /**\n * 标签类型\n * @type 'pulled' | 'tabs' | 'pills' | 'lite'\n */\n readonly thyType = input<ThyTabsType>('tabs');\n\n /**\n * 选项卡的大小\n * @type 'lg' | 'md' | 'sm'\n */\n readonly thySize = input<ThyTabsSize>('md');\n\n /**\n * 激活的项\n */\n readonly thyActiveTab = model<ThyActiveTabInfo>(0);\n\n /**\n * 附加操作\n */\n readonly thyExtra = input<TemplateRef<unknown>>(undefined);\n\n /**\n * 选项卡的位置\n * @type 'top' | 'left'\n */\n readonly thyPosition = input<ThyTabsPosition>('top');\n\n /**\n * 是否使用动画切换 Tabs\n */\n readonly thyAnimated = input<boolean, ThyBooleanInput>(false, { transform: coerceBooleanProperty });\n\n /**\n * 响应式,自动计算宽度存放 thyNavItem,并添加更多弹框\n */\n readonly thyResponsive = input<boolean, ThyBooleanInput>(false, { transform: coerceBooleanProperty });\n\n readonly activeTabIndex = linkedSignal(() => {\n const activeTab = this.thyActiveTab();\n return isNumber(activeTab) ? activeTab : undefined;\n });\n\n readonly activeTabId = linkedSignal(() => {\n return this.thyActiveTab() ?? undefined;\n });\n\n transitionStarted: boolean = false;\n\n constructor() {}\n\n ngOnInit(): void {\n const tabsContent = this.el.nativeElement.querySelector('.thy-tabs-content');\n fromEvent(tabsContent, 'transitionend')\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => {\n this.transitionStarted = false;\n this.cd.markForCheck();\n });\n }\n\n ngAfterContentInit() {\n this.tabs.changes.pipe(takeUntilDestroyed(this.destroyRef)).subscribe(data => {\n this.thyAnimated() && (this.transitionStarted = true);\n this.activeTabIndex.set(data.length - 1);\n this.cd.markForCheck();\n });\n }\n\n get tabPaneAnimated(): boolean {\n return this.thyPosition() === 'top' && this.thyAnimated();\n }\n\n getTabContentMarginLeft(): string {\n if (this.tabPaneAnimated) {\n return `${-(this.activeTabIndex() || 0) * 100}%`;\n }\n return '';\n }\n\n activeTab(tab: ThyTab, index: number) {\n if (tab.thyDisabled()) {\n return;\n }\n this.thyAnimated() && (this.transitionStarted = this.activeTabIndex() !== index);\n const id = tab.id();\n this.thyActiveTab.set(id ? id : index);\n }\n}\n","<!-- tabs nav -->\n<thy-nav\n class=\"thy-tabs-nav\"\n [thyType]=\"thyType()\"\n [thySize]=\"thySize()\"\n [thyExtra]=\"thyExtra()\"\n [thyVertical]=\"thyPosition() === 'left'\"\n [thyResponsive]=\"thyResponsive()\">\n @for (tab of tabs; track $index; let i = $index) {\n <a\n href=\"javascript:;\"\n thyNavItem\n [id]=\"tab.id()\"\n [thyNavItemDisabled]=\"tab.thyDisabled()\"\n [thyNavItemActive]=\"(tab.id() && activeTabId() && tab.id() === activeTabId()) ?? i === activeTabIndex()\"\n (click)=\"activeTab(tab, i)\">\n @if (tab.titleTemplateRef) {\n <ng-template [ngTemplateOutlet]=\"tab.titleTemplateRef\"></ng-template>\n } @else {\n {{ tab.thyTitle() }}\n }\n </a>\n }\n</thy-nav>\n<!-- tabs content -->\n<div class=\"thy-tabs-content\" [class.thy-tabs-content-animated]=\"tabPaneAnimated\" [style.margin-left]=\"getTabContentMarginLeft()\">\n @for (tab of tabs; track $index; let i = $index) {\n <div\n thyTabContent\n [active]=\"(tab.id() && activeTabId() && tab.id() === activeTabId()) ?? i === activeTabIndex()\"\n [content]=\"tab.content\"\n [tabPaneAnimated]=\"tabPaneAnimated\"></div>\n }\n</div>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ThyTabs } from './tabs.component';\nimport { ThyTab } from './tab.component';\nimport { ThyIconModule } from 'ngx-tethys/icon';\nimport { ThyNavModule } from 'ngx-tethys/nav';\nimport { ThyTabContent } from './tab-content.component';\n\n@NgModule({\n imports: [CommonModule, ThyIconModule, ThyNavModule, ThyTabs, ThyTab, ThyTabContent],\n exports: [ThyTabs, ThyTab]\n})\nexport class ThyTabsModule {}\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-tabs.mjs","sources":["../../../src/tabs/tab-content.component.ts","../../../src/tabs/tab.component.ts","../../../src/tabs/tabs.component.ts","../../../src/tabs/tabs.component.html","../../../src/tabs/tabs.module.ts","../../../src/tabs/ngx-tethys-tabs.ts"],"sourcesContent":["import { ChangeDetectionStrategy, Component, TemplateRef, ViewEncapsulation, input } from '@angular/core';\nimport { NgTemplateOutlet } from '@angular/common';\nimport { coerceBooleanProperty, ThyBooleanInput } from 'ngx-tethys/util';\n\n/**\n * @private\n */\n@Component({\n selector: 'thy-tab-content, [thyTabContent]',\n exportAs: 'thyTabContent',\n preserveWhitespaces: false,\n encapsulation: ViewEncapsulation.None,\n changeDetection: ChangeDetectionStrategy.OnPush,\n template: `\n @if (active()) {\n <ng-template [ngTemplateOutlet]=\"content()\"></ng-template>\n }\n `,\n host: {\n class: 'thy-tab-content',\n '[attr.aria-hidden]': '!active()',\n '[attr.tabindex]': 'active() ? 0 : -1',\n '[style.visibility]': 'tabPaneAnimated() ? active() ? null : \"hidden\" : null',\n '[style.height]': 'tabPaneAnimated() ? active() ? null : 0 : null',\n '[style.overflow-y]': 'tabPaneAnimated() ? active() ? null : \"none\" : null',\n '[style.display]': '!tabPaneAnimated() ? active() ? null : \"none\" : null'\n },\n imports: [NgTemplateOutlet]\n})\nexport class ThyTabContent {\n readonly content = input<TemplateRef<void> | null>(null);\n\n readonly active = input<boolean, ThyBooleanInput>(false, { transform: coerceBooleanProperty });\n\n readonly tabPaneAnimated = input<boolean, ThyBooleanInput>(true, { transform: coerceBooleanProperty });\n}\n","import { Component, OnInit, ChangeDetectionStrategy, ViewChild, TemplateRef, ContentChild, input } from '@angular/core';\nimport { coerceBooleanProperty, ThyBooleanInput } from 'ngx-tethys/util';\n\n/**\n * 选项卡的选项组件\n * @name thy-tab\n */\n@Component({\n selector: 'thy-tab',\n template: ` <ng-template #content><ng-content></ng-content></ng-template> `,\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class ThyTab implements OnInit {\n /**\n * 自定义选项标题的模板\n * @type TemplateRef\n */\n @ContentChild('title') titleTemplateRef?: TemplateRef<unknown>;\n\n @ViewChild('content', { static: true }) content!: TemplateRef<HTMLElement>;\n\n /**\n * 选项标题\n */\n readonly thyTitle = input<string | undefined>(undefined);\n\n /**\n * 选项的唯一标识\n */\n readonly id = input<string | undefined>(undefined);\n\n /**\n * 是否禁用选项\n * @default false\n */\n readonly thyDisabled = input<boolean, ThyBooleanInput>(false, { transform: coerceBooleanProperty });\n\n constructor() {}\n\n ngOnInit(): void {}\n}\n","import { NgTemplateOutlet } from '@angular/common';\nimport {\n AfterContentInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChildren,\n DestroyRef,\n ElementRef,\n inject,\n input,\n linkedSignal,\n model,\n OnInit,\n QueryList,\n TemplateRef\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { ThyNav, ThyNavItemDirective } from 'ngx-tethys/nav';\nimport { coerceBooleanProperty, isNumber, ThyBooleanInput } from 'ngx-tethys/util';\nimport { fromEvent } from 'rxjs';\nimport { ThyTabContent } from './tab-content.component';\nimport { ThyTab } from './tab.component';\nimport { ThyActiveTabInfo } from './types';\n\nexport type ThyTabsSize = 'lg' | 'md' | 'sm';\n\nexport type ThyTabsType = 'pulled' | 'tabs' | 'pills' | 'lite';\n\nexport type ThyTabsPosition = 'top' | 'left';\n\n/**\n * 选项卡切换组件\n * @name thy-tabs\n */\n@Component({\n selector: 'thy-tabs',\n templateUrl: './tabs.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'thy-tabs',\n '[class.thy-tabs-top]': `thyPosition() === 'top'`,\n '[class.thy-tabs-left]': `thyPosition() === 'left'`,\n '[style.overflow]': `transitionStarted ? \"hidden\" : null`\n },\n imports: [ThyNav, ThyNavItemDirective, NgTemplateOutlet, ThyTabContent]\n})\nexport class ThyTabs implements OnInit, AfterContentInit {\n private cd = inject(ChangeDetectorRef);\n private el = inject(ElementRef);\n\n @ContentChildren(ThyTab, { descendants: true }) tabs = new QueryList<ThyTab>();\n\n private readonly destroyRef = inject(DestroyRef);\n\n /**\n * 标签类型\n * @type 'pulled' | 'tabs' | 'pills' | 'lite'\n */\n readonly thyType = input<ThyTabsType>('tabs');\n\n /**\n * 选项卡的大小\n * @type 'lg' | 'md' | 'sm'\n */\n readonly thySize = input<ThyTabsSize>('md');\n\n /**\n * 激活的项\n */\n readonly thyActiveTab = model<ThyActiveTabInfo>(0);\n\n /**\n * 附加操作\n */\n readonly thyExtra = input<TemplateRef<unknown> | undefined>(undefined);\n\n /**\n * 选项卡的位置\n * @type 'top' | 'left'\n */\n readonly thyPosition = input<ThyTabsPosition>('top');\n\n /**\n * 是否使用动画切换 Tabs\n */\n readonly thyAnimated = input<boolean, ThyBooleanInput>(false, { transform: coerceBooleanProperty });\n\n /**\n * 响应式,自动计算宽度存放 thyNavItem,并添加更多弹框\n */\n readonly thyResponsive = input<boolean, ThyBooleanInput>(false, { transform: coerceBooleanProperty });\n\n readonly activeTabIndex = linkedSignal(() => {\n const activeTab = this.thyActiveTab();\n return isNumber(activeTab) ? activeTab : undefined;\n });\n\n readonly activeTabId = linkedSignal(() => {\n return this.thyActiveTab() ?? undefined;\n });\n\n transitionStarted: boolean = false;\n\n constructor() {}\n\n ngOnInit(): void {\n const tabsContent = this.el.nativeElement.querySelector('.thy-tabs-content');\n fromEvent(tabsContent, 'transitionend')\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => {\n this.transitionStarted = false;\n this.cd.markForCheck();\n });\n }\n\n ngAfterContentInit() {\n this.tabs.changes.pipe(takeUntilDestroyed(this.destroyRef)).subscribe(data => {\n this.thyAnimated() && (this.transitionStarted = true);\n this.activeTabIndex.set(data.length - 1);\n this.cd.markForCheck();\n });\n }\n\n get tabPaneAnimated(): boolean {\n return this.thyPosition() === 'top' && this.thyAnimated();\n }\n\n getTabContentMarginLeft(): string {\n if (this.tabPaneAnimated) {\n return `${-(this.activeTabIndex() || 0) * 100}%`;\n }\n return '';\n }\n\n activeTab(tab: ThyTab, index: number) {\n if (tab.thyDisabled()) {\n return;\n }\n this.thyAnimated() && (this.transitionStarted = this.activeTabIndex() !== index);\n const id = tab.id();\n this.thyActiveTab.set(id ? id : index);\n }\n}\n","<!-- tabs nav -->\n<thy-nav\n class=\"thy-tabs-nav\"\n [thyType]=\"thyType()\"\n [thySize]=\"thySize()\"\n [thyExtra]=\"thyExtra()\"\n [thyVertical]=\"thyPosition() === 'left'\"\n [thyResponsive]=\"thyResponsive()\">\n @for (tab of tabs; track $index; let i = $index) {\n <a\n href=\"javascript:;\"\n thyNavItem\n [id]=\"tab.id()\"\n [thyNavItemDisabled]=\"tab.thyDisabled()\"\n [thyNavItemActive]=\"(tab.id() && activeTabId() && tab.id() === activeTabId()) ?? i === activeTabIndex()\"\n (click)=\"activeTab(tab, i)\">\n @if (tab.titleTemplateRef) {\n <ng-template [ngTemplateOutlet]=\"tab.titleTemplateRef\"></ng-template>\n } @else {\n {{ tab.thyTitle() }}\n }\n </a>\n }\n</thy-nav>\n<!-- tabs content -->\n<div class=\"thy-tabs-content\" [class.thy-tabs-content-animated]=\"tabPaneAnimated\" [style.margin-left]=\"getTabContentMarginLeft()\">\n @for (tab of tabs; track $index; let i = $index) {\n <div\n thyTabContent\n [active]=\"(tab.id() && activeTabId() && tab.id() === activeTabId()) ?? i === activeTabIndex()\"\n [content]=\"tab.content\"\n [tabPaneAnimated]=\"tabPaneAnimated\"></div>\n }\n</div>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ThyTabs } from './tabs.component';\nimport { ThyTab } from './tab.component';\nimport { ThyIconModule } from 'ngx-tethys/icon';\nimport { ThyNavModule } from 'ngx-tethys/nav';\nimport { ThyTabContent } from './tab-content.component';\n\n@NgModule({\n imports: [CommonModule, ThyIconModule, ThyNavModule, ThyTabs, ThyTab, ThyTabContent],\n exports: [ThyTabs, ThyTab]\n})\nexport class ThyTabsModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
@@ -55,7 +55,7 @@ class ThyTag {
|
|
|
55
55
|
this.elementRef.nativeElement.style.removeProperty('color');
|
|
56
56
|
this.hostRenderer.updateClass([]);
|
|
57
57
|
if (isThemeColor(this.color())) {
|
|
58
|
-
this.hostRenderer.updateClass([`thy-tag-${this.thyTheme() === 'fill' ? '' : this.thyTheme()
|
|
58
|
+
this.hostRenderer.updateClass([`thy-tag-${this.thyTheme() === 'fill' ? '' : `${this.thyTheme()}-`}${this.color()}`]);
|
|
59
59
|
}
|
|
60
60
|
else {
|
|
61
61
|
if (this.thyTheme() === 'fill') {
|
|
@@ -71,10 +71,10 @@ class ThyTag {
|
|
|
71
71
|
}
|
|
72
72
|
}
|
|
73
73
|
}
|
|
74
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
75
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "20.3.
|
|
74
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ThyTag, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
75
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "20.3.15", type: ThyTag, isStandalone: true, selector: "thy-tag,[thyTag]", inputs: { thyTag: { classPropertyName: "thyTag", publicName: "thyTag", isSignal: true, isRequired: false, transformFunction: null }, thyShape: { classPropertyName: "thyShape", publicName: "thyShape", isSignal: true, isRequired: false, transformFunction: null }, thyColor: { classPropertyName: "thyColor", publicName: "thyColor", isSignal: true, isRequired: false, transformFunction: null }, thyTheme: { classPropertyName: "thyTheme", publicName: "thyTheme", isSignal: true, isRequired: false, transformFunction: null }, thySize: { classPropertyName: "thySize", publicName: "thySize", isSignal: true, isRequired: false, transformFunction: null }, thyHoverable: { classPropertyName: "thyHoverable", publicName: "thyHoverable", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class.thy-tag-pill": "thyShape() === \"pill\"", "class.thy-tag-outline": "thyTheme() === \"outline\"", "class.thy-tag-hover": "thyHoverable()", "class.thy-tag-md": "thySize() === \"md\"", "class.thy-tag-sm": "thySize() === \"sm\"", "class.thy-tag-xs": "thySize() === \"xs\"", "class.thy-tag-lg": "thySize() === \"lg\"" }, classAttribute: "thy-tag" }, ngImport: i0, template: "<ng-content></ng-content>\n", changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
76
76
|
}
|
|
77
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
77
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ThyTag, decorators: [{
|
|
78
78
|
type: Component,
|
|
79
79
|
args: [{ selector: 'thy-tag,[thyTag]', changeDetection: ChangeDetectionStrategy.OnPush, host: {
|
|
80
80
|
class: 'thy-tag',
|
|
@@ -94,10 +94,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.14", ngImpo
|
|
|
94
94
|
class ThyTags {
|
|
95
95
|
constructor() { }
|
|
96
96
|
ngOnInit() { }
|
|
97
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
98
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.
|
|
97
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ThyTags, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
98
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.15", type: ThyTags, isStandalone: true, selector: "thy-tags", host: { classAttribute: "thy-tags" }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
99
99
|
}
|
|
100
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
100
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ThyTags, decorators: [{
|
|
101
101
|
type: Component,
|
|
102
102
|
args: [{
|
|
103
103
|
selector: 'thy-tags',
|
|
@@ -110,11 +110,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.14", ngImpo
|
|
|
110
110
|
}], ctorParameters: () => [] });
|
|
111
111
|
|
|
112
112
|
class ThyTagModule {
|
|
113
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.
|
|
114
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.
|
|
115
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.
|
|
113
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ThyTagModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
114
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.15", ngImport: i0, type: ThyTagModule, imports: [CommonModule, ThyIconModule, ThyTag, ThyTags], exports: [ThyTag, ThyTags] }); }
|
|
115
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ThyTagModule, imports: [CommonModule, ThyIconModule] }); }
|
|
116
116
|
}
|
|
117
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.
|
|
117
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.15", ngImport: i0, type: ThyTagModule, decorators: [{
|
|
118
118
|
type: NgModule,
|
|
119
119
|
args: [{
|
|
120
120
|
imports: [CommonModule, ThyIconModule, ThyTag, ThyTags],
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ngx-tethys-tag.mjs","sources":["../../../src/tag/tag.component.ts","../../../src/tag/tag.component.html","../../../src/tag/tags.component.ts","../../../src/tag/tag.module.ts","../../../src/tag/ngx-tethys-tag.ts"],"sourcesContent":["import { ChangeDetectionStrategy, Component, computed, effect, ElementRef, inject, input } from '@angular/core';\nimport { useHostRenderer } from '@tethys/cdk/dom';\nimport { isThemeColor, ThyThemeColor } from 'ngx-tethys/core';\nimport { coerceBooleanProperty, hexToRgb } from 'ngx-tethys/util';\n\nexport type ThyTagColor = ThyThemeColor | string;\n\nexport type ThyTagShape = 'pill' | 'rectangle';\n\nexport type ThyTagSize = 'sm' | 'md' | 'lg';\n\n/**\n * 标签组件\n * @name thy-tag,[thyTag]\n */\n@Component({\n selector: 'thy-tag,[thyTag]',\n templateUrl: './tag.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'thy-tag',\n '[class.thy-tag-pill]': 'thyShape() === \"pill\"',\n '[class.thy-tag-outline]': 'thyTheme() === \"outline\"',\n '[class.thy-tag-hover]': 'thyHoverable()',\n '[class.thy-tag-md]': 'thySize() === \"md\"',\n '[class.thy-tag-sm]': 'thySize() === \"sm\"',\n '[class.thy-tag-xs]': 'thySize() === \"xs\"',\n '[class.thy-tag-lg]': 'thySize() === \"lg\"'\n }\n})\nexport class ThyTag {\n private elementRef = inject(ElementRef);\n\n private hostRenderer = useHostRenderer();\n\n /**\n * 标签颜色,thyColor 的简写\n * @type primary | success | info | warning | danger | default | light | string\n * @default default\n */\n readonly thyTag = input<ThyTagColor>('');\n\n /**\n * 标签形状\n * @type pill | rectangle\n */\n readonly thyShape = input<ThyTagShape>('rectangle');\n\n /**\n * 标签颜色,支持设置主题色和颜色值,主题色为 default、primary、success、info、warning、danger\n */\n readonly thyColor = input<ThyTagColor>('');\n\n /**\n * 标签主题,fill 为颜色填充,outline 为线框,weak-fill 为背景色0.1透明度效果\n * @type outline | fill | weak-fill\n */\n readonly thyTheme = input<'outline' | 'fill' | 'weak-fill'>('fill');\n\n /**\n * 标签大小\n * @type sm | md | lg\n */\n readonly thySize = input<ThyTagSize>('md');\n\n /**\n * 可 Hover 悬停的标签,设置为 true 时会有一个 Hover 效果\n * @default false\n */\n readonly thyHoverable = input(false, { transform: coerceBooleanProperty });\n\n protected readonly color = computed(() => this.thyColor() || this.thyTag() || 'default');\n\n constructor() {\n effect(() => {\n this.setColor();\n });\n }\n\n private setColor(): void {\n this.elementRef.nativeElement.style.removeProperty('background-color');\n this.elementRef.nativeElement.style.removeProperty('border-color');\n this.elementRef.nativeElement.style.removeProperty('color');\n this.hostRenderer.updateClass([]);\n\n if (isThemeColor(this.color())) {\n this.hostRenderer.updateClass([`thy-tag-${this.thyTheme() === 'fill' ? '' : this.thyTheme()
|
|
1
|
+
{"version":3,"file":"ngx-tethys-tag.mjs","sources":["../../../src/tag/tag.component.ts","../../../src/tag/tag.component.html","../../../src/tag/tags.component.ts","../../../src/tag/tag.module.ts","../../../src/tag/ngx-tethys-tag.ts"],"sourcesContent":["import { ChangeDetectionStrategy, Component, computed, effect, ElementRef, inject, input } from '@angular/core';\nimport { useHostRenderer } from '@tethys/cdk/dom';\nimport { isThemeColor, ThyThemeColor } from 'ngx-tethys/core';\nimport { coerceBooleanProperty, hexToRgb } from 'ngx-tethys/util';\n\nexport type ThyTagColor = ThyThemeColor | string;\n\nexport type ThyTagShape = 'pill' | 'rectangle';\n\nexport type ThyTagSize = 'sm' | 'md' | 'lg';\n\n/**\n * 标签组件\n * @name thy-tag,[thyTag]\n */\n@Component({\n selector: 'thy-tag,[thyTag]',\n templateUrl: './tag.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'thy-tag',\n '[class.thy-tag-pill]': 'thyShape() === \"pill\"',\n '[class.thy-tag-outline]': 'thyTheme() === \"outline\"',\n '[class.thy-tag-hover]': 'thyHoverable()',\n '[class.thy-tag-md]': 'thySize() === \"md\"',\n '[class.thy-tag-sm]': 'thySize() === \"sm\"',\n '[class.thy-tag-xs]': 'thySize() === \"xs\"',\n '[class.thy-tag-lg]': 'thySize() === \"lg\"'\n }\n})\nexport class ThyTag {\n private elementRef = inject(ElementRef);\n\n private hostRenderer = useHostRenderer();\n\n /**\n * 标签颜色,thyColor 的简写\n * @type primary | success | info | warning | danger | default | light | string\n * @default default\n */\n readonly thyTag = input<ThyTagColor>('');\n\n /**\n * 标签形状\n * @type pill | rectangle\n */\n readonly thyShape = input<ThyTagShape>('rectangle');\n\n /**\n * 标签颜色,支持设置主题色和颜色值,主题色为 default、primary、success、info、warning、danger\n */\n readonly thyColor = input<ThyTagColor>('');\n\n /**\n * 标签主题,fill 为颜色填充,outline 为线框,weak-fill 为背景色0.1透明度效果\n * @type outline | fill | weak-fill\n */\n readonly thyTheme = input<'outline' | 'fill' | 'weak-fill'>('fill');\n\n /**\n * 标签大小\n * @type sm | md | lg\n */\n readonly thySize = input<ThyTagSize>('md');\n\n /**\n * 可 Hover 悬停的标签,设置为 true 时会有一个 Hover 效果\n * @default false\n */\n readonly thyHoverable = input(false, { transform: coerceBooleanProperty });\n\n protected readonly color = computed(() => this.thyColor() || this.thyTag() || 'default');\n\n constructor() {\n effect(() => {\n this.setColor();\n });\n }\n\n private setColor(): void {\n this.elementRef.nativeElement.style.removeProperty('background-color');\n this.elementRef.nativeElement.style.removeProperty('border-color');\n this.elementRef.nativeElement.style.removeProperty('color');\n this.hostRenderer.updateClass([]);\n\n if (isThemeColor(this.color())) {\n this.hostRenderer.updateClass([`thy-tag-${this.thyTheme() === 'fill' ? '' : `${this.thyTheme() }-`}${this.color()}`]);\n } else {\n if (this.thyTheme() === 'fill') {\n this.elementRef.nativeElement.style.backgroundColor = this.color();\n } else if (this.thyTheme() === 'outline') {\n this.elementRef.nativeElement.style.color = this.color();\n this.elementRef.nativeElement.style['border-color'] = this.color();\n } else {\n this.elementRef.nativeElement.style.backgroundColor = hexToRgb(this.color(), 0.1);\n this.elementRef.nativeElement.style.color = this.color();\n }\n }\n }\n}\n","<ng-content></ng-content>\n","import { Component, OnInit, ChangeDetectionStrategy } from '@angular/core';\n\n/**\n * @name thy-tags\n */\n@Component({\n selector: 'thy-tags',\n template: '<ng-content></ng-content>',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'thy-tags'\n }\n})\nexport class ThyTags implements OnInit {\n constructor() {}\n\n ngOnInit(): void {}\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ThyTag } from './tag.component';\nimport { ThyIconModule } from 'ngx-tethys/icon';\nimport { ThyTags } from './tags.component';\n\n@NgModule({\n imports: [CommonModule, ThyIconModule, ThyTag, ThyTags],\n exports: [ThyTag, ThyTags]\n})\nexport class ThyTagModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
@@ -303,7 +303,7 @@ class FakeDataTransfer {
|
|
|
303
303
|
this.dropEffect = 'none';
|
|
304
304
|
this.effectAllowed = 'all';
|
|
305
305
|
this.types = [];
|
|
306
|
-
this.getData =
|
|
306
|
+
this.getData = (dataFormat) => {
|
|
307
307
|
return this.dataByFormat[dataFormat];
|
|
308
308
|
};
|
|
309
309
|
this.setDragImage = function () {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ngx-tethys-testing.mjs","sources":["../../../src/testing/events.ts","../../../src/testing/dispatcher-events.ts","../../../src/testing/element-focus.ts","../../../src/testing/type-in-element.ts","../../../src/testing/thy-icon.ts","../../../src/testing/data-transfer.ts","../../../src/testing/xhr-mock.ts","../../../src/testing/ngx-tethys-testing.ts"],"sourcesContent":["import { ModifierKeys } from '@angular/cdk/testing';\n\n/**\n * Creates a browser MouseEvent with the specified options.\n * @docs-private\n */\nexport function createMouseEvent(\n type: string,\n clientX = 0,\n clientY = 0,\n button = 0,\n buttons = 1,\n detail = 1,\n modifiers: ModifierKeys = {},\n relatedTarget?: Element\n) {\n // Note: We cannot determine the position of the mouse event based on the screen\n // because the dimensions and position of the browser window are not available\n // To provide reasonable `screenX` and `screenY` coordinates, we simply use the\n // client coordinates as if the browser is opened in fullscreen.\n const screenX = clientX;\n const screenY = clientY;\n\n const event = new MouseEvent(type, {\n bubbles: true,\n cancelable: true,\n view: window,\n screenX,\n screenY,\n clientX,\n clientY,\n button,\n buttons,\n detail,\n relatedTarget,\n ctrlKey: !!modifiers.control,\n altKey: !!modifiers.alt,\n shiftKey: !!modifiers.shift,\n metaKey: !!modifiers.meta\n });\n\n // IE won't set `defaultPrevented` on synthetic events so we need to do it manually.\n const originalPreventDefault = event.preventDefault.bind(event);\n event.preventDefault = function () {\n defineReadonlyEventProperty(event, 'defaultPrevented', true);\n return originalPreventDefault();\n };\n\n return event;\n}\n\n/**\n * Creates a browser `PointerEvent` with the specified options. Pointer events\n * by default will appear as if they are the primary pointer of their type.\n * https://www.w3.org/TR/pointerevents2/#dom-pointerevent-isprimary.\n *\n * For example, if pointer events for a multi-touch interaction are created, the non-primary\n * pointer touches would need to be represented by non-primary pointer events.\n *\n * @docs-private\n */\nexport function createPointerEvent(type: string, clientX = 0, clientY = 0, options: PointerEventInit = { isPrimary: true }) {\n return new PointerEvent(type, {\n bubbles: true,\n cancelable: true,\n view: window,\n clientX,\n clientY,\n ...options\n });\n}\n\n/**\n * Creates a browser TouchEvent with the specified pointer coordinates.\n * @docs-private\n */\nexport function createTouchEvent(type: string, pageX = 0, pageY = 0) {\n // In favor of creating events that work for most of the browsers, the event is created\n // as a basic UI Event. The necessary details for the event will be set manually.\n const event = document.createEvent('UIEvent');\n const touchDetails = { pageX, pageY };\n\n // TS3.6 removes the initUIEvent method and suggests porting to \"new UIEvent()\".\n (event as any).initUIEvent(type, true, true, window, 0);\n\n // Most of the browsers don't have a \"initTouchEvent\" method that can be used to define\n // the touch details.\n defineReadonlyEventProperty(event, 'touches', [touchDetails]);\n defineReadonlyEventProperty(event, 'targetTouches', [touchDetails]);\n defineReadonlyEventProperty(event, 'changedTouches', [touchDetails]);\n\n return event;\n}\n\n/**\n * Creates a keyboard event with the specified key and modifiers.\n * @docs-private\n */\nexport function createKeyboardEvent(type: string, keyCode: number = 0, key: string = '', modifiers: ModifierKeys = {}) {\n const event = document.createEvent('KeyboardEvent');\n const originalPreventDefault = event.preventDefault.bind(event);\n\n // Firefox does not support `initKeyboardEvent`, but supports `initKeyEvent`.\n // https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/initKeyEvent.\n if ((event as any).initKeyEvent !== undefined) {\n (event as any).initKeyEvent(type, true, true, window, modifiers.control, modifiers.alt, modifiers.shift, modifiers.meta, keyCode);\n } else {\n // `initKeyboardEvent` expects to receive modifiers as a whitespace-delimited string\n // See https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/initKeyboardEvent\n let modifiersList = '';\n\n if (modifiers.control) {\n modifiersList += 'Control ';\n }\n\n if (modifiers.alt) {\n modifiersList += 'Alt ';\n }\n\n if (modifiers.shift) {\n modifiersList += 'Shift ';\n }\n\n if (modifiers.meta) {\n modifiersList += 'Meta ';\n }\n\n // TS3.6 removed the `initKeyboardEvent` method and suggested porting to\n // `new KeyboardEvent()` constructor. We cannot use that as we support IE11.\n // https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/initKeyboardEvent.\n (event as any).initKeyboardEvent(\n type,\n true /* canBubble */,\n true /* cancelable */,\n window /* view */,\n 0 /* char */,\n key /* key */,\n 0 /* location */,\n modifiersList.trim() /* modifiersList */,\n false /* repeat */\n );\n }\n\n // Webkit Browsers don't set the keyCode when calling the init function.\n // See related bug https://bugs.webkit.org/show_bug.cgi?id=16735\n defineReadonlyEventProperty(event, 'keyCode', keyCode);\n defineReadonlyEventProperty(event, 'key', key);\n defineReadonlyEventProperty(event, 'ctrlKey', !!modifiers.control);\n defineReadonlyEventProperty(event, 'altKey', !!modifiers.alt);\n defineReadonlyEventProperty(event, 'shiftKey', !!modifiers.shift);\n defineReadonlyEventProperty(event, 'metaKey', !!modifiers.meta);\n\n // IE won't set `defaultPrevented` on synthetic events so we need to do it manually.\n event.preventDefault = function () {\n defineReadonlyEventProperty(event, 'defaultPrevented', true);\n return originalPreventDefault();\n };\n\n return event;\n}\n\n/**\n * Creates a fake event object with any desired event type.\n * @docs-private\n */\nexport function createFakeEvent(type: string, canBubble = false, cancelable = true) {\n const event = document.createEvent('Event');\n event.initEvent(type, canBubble, cancelable);\n return event;\n}\n\nexport function createDragEvent(type: string, dataTransfer: DataTransfer = null, canBubble = false, cancelable = true) {\n const event = document.createEvent('DragEvent');\n event.initEvent(type, canBubble, cancelable);\n defineReadonlyEventProperty(event, 'dataTransfer', dataTransfer);\n return event;\n}\n\n/**\n * Defines a readonly property on the given event object. Readonly properties on an event object\n * are always set as configurable as that matches default readonly properties for DOM event objects.\n */\nfunction defineReadonlyEventProperty(event: Event, propertyName: string, value: any) {\n Object.defineProperty(event, propertyName, { get: () => value, configurable: true });\n}\n","import { ModifierKeys } from '@angular/cdk/testing';\nimport { createFakeEvent, createKeyboardEvent, createMouseEvent, createPointerEvent, createTouchEvent } from './events';\n\n/**\n * Utility to dispatch any event on a Node.\n * @docs-private\n */\nexport function dispatchEvent<T extends Event>(node: Node | Window, event: T): T {\n node.dispatchEvent(event);\n return event;\n}\n\n/**\n * Shorthand to dispatch a fake event on a specified node.\n * @docs-private\n */\nexport function dispatchFakeEvent(node: Node | Window, type: string, canBubble?: boolean): Event {\n return dispatchEvent(node, createFakeEvent(type, canBubble));\n}\n\n/**\n * Shorthand to dispatch a keyboard event with a specified key code and\n * optional modifiers.\n * @docs-private\n */\nexport function dispatchKeyboardEvent(node: Node, type: string, keyCode?: number, key?: string, modifiers?: ModifierKeys): KeyboardEvent {\n return dispatchEvent(node, createKeyboardEvent(type, keyCode, key, modifiers));\n}\n\n/**\n * Shorthand to dispatch a mouse event on the specified coordinates.\n * @docs-private\n */\nexport function dispatchMouseEvent(\n node: Node,\n type: string,\n clientX = 0,\n clientY = 0,\n button?: number,\n buttons?: number,\n detail?: number,\n modifiers?: ModifierKeys,\n relatedTarget?: Element\n): MouseEvent {\n return dispatchEvent(node, createMouseEvent(type, clientX, clientY, button, buttons, detail, modifiers, relatedTarget));\n}\n\n/**\n * Shorthand to dispatch a pointer event on the specified coordinates.\n * @docs-private\n */\nexport function dispatchPointerEvent(node: Node, type: string, clientX = 0, clientY = 0, options?: PointerEventInit): PointerEvent {\n return dispatchEvent(node, createPointerEvent(type, clientX, clientY, options)) as PointerEvent;\n}\n\n/**\n * Shorthand to dispatch a touch event on the specified coordinates.\n * @docs-private\n */\nexport function dispatchTouchEvent(node: Node, type: string, x = 0, y = 0) {\n return dispatchEvent(node, createTouchEvent(type, x, y));\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport { dispatchFakeEvent } from './dispatcher-events';\n\n/**\n * Patches an elements focus and blur methods to emit events consistently and predictably.\n * This is necessary, because some browsers, like IE11, will call the focus handlers asynchronously,\n * while others won't fire them at all if the browser window is not focused.\n */\nexport function patchElementFocus(element: HTMLElement) {\n element.focus = () => dispatchFakeEvent(element, 'focus');\n element.blur = () => dispatchFakeEvent(element, 'blur');\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport { dispatchFakeEvent } from './dispatcher-events';\n\n/**\n * Focuses an input, sets its value and dispatches\n * the `input` event, simulating the user typing.\n * @param value Value to be set on the input.\n * @param element Element onto which to set the value.\n */\nexport function typeInElement(value: string, element: HTMLInputElement) {\n element.focus();\n element.value = value;\n dispatchFakeEvent(element, 'input');\n}\n","import { ThyIconRegistry } from 'ngx-tethys/icon';\n\nimport { Provider, Sanitizer, SecurityContext } from '@angular/core';\nimport { inject } from '@angular/core/testing';\nimport { DomSanitizer } from '@angular/platform-browser';\n\nexport const bypassSanitizeProvider: Provider = {\n provide: Sanitizer,\n useValue: {\n sanitize: (context: SecurityContext, html: string) => html\n }\n};\n\nexport const defaultInlineIconSet = `\n <svg>\n <defs>\n <svg id=\"inbox\"><path d=\"M10 10\"/></svg>\n <svg id=\"close\"><path d=\"M10 10\"/></svg>\n <svg id=\"close-bold\"><path d=\"M10 10\"/></svg>\n <svg id=\"calendar-check\"><path d=\"M10 10\"/></svg>\n <svg id=\"calendar\"><path d=\"M10 10\"/></svg>\n <svg id=\"angle-down\"><path d=\"M10 10\"/></svg>\n <svg id=\"check\"><path d=\"M10 10\"/></svg>\n <svg id=\"application-fill\"></svg>\n <svg id=\"angle-right\"></svg>\n <svg id=\"minus-circle-fill\"></svg>\n <svg id=\"check-circle-fill\"></svg>\n <svg id=\"waring-fill\"></svg>\n <svg id=\"close-circle-fill\"></svg>\n <svg id=\"question-circle-fill\"></svg>\n <svg id=\"more-bold\"></svg>\n <svg id=\"filter\">\n <title>Filter Title</title>\n <defs> <linearGradient id=\"Gradient1\"><stop class=\"stop1\" offset=\"0%\"/><stop class=\"stop2\" offset=\"50%\"/><stop class=\"stop3\" offset=\"100%\"/></linearGradient></defs>\n <style> #rect1 { fill: url(#Gradient1); }</style>\n <path d=\"filter\" style=\" \"/>\n </svg>\n <svg id=\"close-circle-bold-fill\"></svg>\n <svg id=\"search\"></svg>\n <svg id=\"sort-tt\"><style>.circle { fill: orange; }</style><g id=\"phnormal/sort-tt\" stroke-width=\"1\" fill-rule=\"nonzero\"><path d=\"M10 10 0 0 1 5.1 1.5v12.99a.6.6 0 0 1-1.2 0V3.607L2.466 6.082a.6.6 0 1 1-1.04-.6l2.47-4.262a.599.599 0 0 1 .426-.293z\" id=\"ph形状结合\"/><path d=\"M13.765 1.027a.6.6 0 0 1 .778.573v12.805a.6.6 0 1 1-1.2 0V3.682L11.82 6.276a.6.6 0 1 1-1.04-.6l2.558-4.356a.599.599 0 0 1 .427-.293z\" id=\"sort-secondary-color\" transform=\"rotate(-180 12.621 8.003)\"/></g></svg>\n </defs>\n </svg>\n`;\n\nexport const defaultSvgHtml = `\n<svg viewBox=\"0 0 16 16\" id=\"close1\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M7.978 11.997l-.005.006L2.3 6.33l.83-.831 4.848 4.848L12.826 5.5l.83.83-5.673 5.673-.005-.006z\"/>\n</svg>`;\n\nexport const injectDefaultSvgIconSet = () => {\n inject([ThyIconRegistry, DomSanitizer], (iconRegistry: ThyIconRegistry, domSanitizer: DomSanitizer) => {\n iconRegistry.addSvgIconSetLiteral(domSanitizer.bypassSecurityTrustHtml(defaultInlineIconSet));\n })();\n};\n","function removeFromArray<T>(array: T[], item: T) {\n const index = array.indexOf(item);\n\n if (index >= 0) {\n array.splice(index, 1);\n }\n}\n\nexport class FakeDataTransferItem implements DataTransferItem {\n type: string;\n\n constructor(\n private entry: FileSystemEntry,\n public kind: string\n ) {}\n\n getAsFile(): File {\n return this.entry as unknown as File;\n }\n\n getAsString(callback: FunctionStringCallback): void {\n throw new Error('Method not implemented.');\n }\n\n webkitGetAsEntry() {\n return this.entry;\n }\n}\n\nexport class FakeDataTransfer implements DataTransfer {\n dataByFormat = {};\n dropEffect: 'none' | 'copy' | 'link' | 'move' = 'none';\n effectAllowed: 'none' | 'copy' | 'copyLink' | 'copyMove' | 'link' | 'linkMove' | 'move' | 'all' | 'uninitialized' = 'all';\n files: FileList;\n types: string[] = [];\n items: DataTransferItemList;\n\n constructor(files?: File[], items?: DataTransferItem[]) {\n this.files = files as any;\n this.items = items as any;\n }\n\n clearData(dataFormat: string) {\n if (dataFormat) {\n delete this.dataByFormat[dataFormat];\n removeFromArray(this.types, dataFormat);\n } else {\n this.dataByFormat = {};\n this.types = [];\n }\n }\n\n getData = function (dataFormat: string) {\n return this.dataByFormat[dataFormat];\n };\n\n setData(dataFormat: string, data: string) {\n this.dataByFormat[dataFormat] = data;\n\n if (this.types.indexOf(dataFormat) < 0) {\n this.types.push(dataFormat);\n }\n\n return true;\n }\n\n setDragImage = function () {\n // don't do anything (the stub just makes sure there is no error thrown if someone tries to call the method)\n };\n}\n","import { XhrFactory } from '@angular/common';\nimport { HttpHeaders } from '@angular/common/http';\n\nexport class MockXhrFactory implements XhrFactory {\n mock: MockXMLHttpRequest;\n\n build(): XMLHttpRequest {\n return (this.mock = new MockXMLHttpRequest()) as any;\n }\n}\n\nexport class MockXMLHttpRequestUpload {\n constructor(private mock: MockXMLHttpRequest) {}\n\n addEventListener(event: 'progress', handler: Function) {\n this.mock.addEventListener(event === 'progress' ? 'uploadProgress' : event, handler);\n }\n\n removeEventListener(event: 'progress', handler: Function) {\n this.mock.removeEventListener(event === 'progress' ? 'uploadProgress' : event);\n }\n}\n\nexport class MockXMLHttpRequest {\n // Set by method calls.\n body: any;\n // TODO(issue/24571): remove '!'.\n method!: string;\n // TODO(issue/24571): remove '!'.\n url!: string;\n mockHeaders: { [key: string]: string } = {};\n mockAborted: boolean = false;\n\n // Directly settable interface.\n withCredentials: boolean = false;\n responseType: string = 'text';\n\n // Mocked response interface.\n response: any | undefined = undefined;\n responseText: string | undefined = undefined;\n responseURL: string | null = null;\n status: number = 0;\n statusText: string = '';\n mockResponseHeaders: string = '';\n readyState: number;\n\n listeners: {\n error?: (event: ErrorEvent) => void;\n load?: () => void;\n progress?: (event: ProgressEvent) => void;\n uploadProgress?: (event: ProgressEvent) => void;\n readystatechange?: () => void;\n } = {};\n\n upload = new MockXMLHttpRequestUpload(this);\n\n open(method: string, url: string): void {\n this.method = method;\n this.url = url;\n }\n\n send(body: any): void {\n this.body = body;\n }\n\n addEventListener(event: 'error' | 'load' | 'progress' | 'uploadProgress' | 'readystatechange', handler: Function): void {\n this.listeners[event] = handler as any;\n }\n\n removeEventListener(event: 'error' | 'load' | 'progress' | 'uploadProgress' | 'readystatechange'): void {\n delete this.listeners[event];\n }\n\n setRequestHeader(name: string, value: string): void {\n this.mockHeaders[name] = value;\n }\n\n getAllResponseHeaders(): string {\n return this.mockResponseHeaders;\n }\n\n getResponseHeader(header: string): string | null {\n return new HttpHeaders(this.mockResponseHeaders).get(header);\n }\n\n mockFlush(status: number, statusText: string, body?: string | object) {\n if (typeof body === 'string') {\n this.responseText = body;\n } else {\n this.response = body;\n }\n this.status = status;\n this.statusText = statusText;\n this.mockLoadEvent();\n }\n\n mockOnReadyStateChange(readyState: number = XMLHttpRequest.DONE) {\n this.readyState = XMLHttpRequest.DONE;\n this.listeners.readystatechange?.();\n }\n\n mockDownloadProgressEvent(loaded: number, total?: number): void {\n if (this.listeners.progress) {\n this.listeners.progress({ lengthComputable: total !== undefined, loaded, total } as any);\n }\n }\n\n mockUploadProgressEvent(loaded: number, total?: number) {\n if (this.listeners.uploadProgress) {\n this.listeners.uploadProgress({\n lengthComputable: total !== undefined,\n loaded,\n total\n } as any);\n }\n }\n\n mockLoadEvent(): void {\n if (this.listeners.load) {\n this.listeners.load();\n }\n }\n\n mockErrorEvent(error: any): void {\n if (this.listeners.error) {\n this.listeners.error(error);\n }\n }\n\n abort() {\n this.mockAborted = true;\n }\n}\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-testing.mjs","sources":["../../../src/testing/events.ts","../../../src/testing/dispatcher-events.ts","../../../src/testing/element-focus.ts","../../../src/testing/type-in-element.ts","../../../src/testing/thy-icon.ts","../../../src/testing/data-transfer.ts","../../../src/testing/xhr-mock.ts","../../../src/testing/ngx-tethys-testing.ts"],"sourcesContent":["import { ModifierKeys } from '@angular/cdk/testing';\n\n/**\n * Creates a browser MouseEvent with the specified options.\n * @docs-private\n */\nexport function createMouseEvent(\n type: string,\n clientX = 0,\n clientY = 0,\n button = 0,\n buttons = 1,\n detail = 1,\n modifiers: ModifierKeys = {},\n relatedTarget?: Element\n) {\n // Note: We cannot determine the position of the mouse event based on the screen\n // because the dimensions and position of the browser window are not available\n // To provide reasonable `screenX` and `screenY` coordinates, we simply use the\n // client coordinates as if the browser is opened in fullscreen.\n const screenX = clientX;\n const screenY = clientY;\n\n const event = new MouseEvent(type, {\n bubbles: true,\n cancelable: true,\n view: window,\n screenX,\n screenY,\n clientX,\n clientY,\n button,\n buttons,\n detail,\n relatedTarget,\n ctrlKey: !!modifiers.control,\n altKey: !!modifiers.alt,\n shiftKey: !!modifiers.shift,\n metaKey: !!modifiers.meta\n });\n\n // IE won't set `defaultPrevented` on synthetic events so we need to do it manually.\n const originalPreventDefault = event.preventDefault.bind(event);\n event.preventDefault = function () {\n defineReadonlyEventProperty(event, 'defaultPrevented', true);\n return originalPreventDefault();\n };\n\n return event;\n}\n\n/**\n * Creates a browser `PointerEvent` with the specified options. Pointer events\n * by default will appear as if they are the primary pointer of their type.\n * https://www.w3.org/TR/pointerevents2/#dom-pointerevent-isprimary.\n *\n * For example, if pointer events for a multi-touch interaction are created, the non-primary\n * pointer touches would need to be represented by non-primary pointer events.\n *\n * @docs-private\n */\nexport function createPointerEvent(type: string, clientX = 0, clientY = 0, options: PointerEventInit = { isPrimary: true }) {\n return new PointerEvent(type, {\n bubbles: true,\n cancelable: true,\n view: window,\n clientX,\n clientY,\n ...options\n });\n}\n\n/**\n * Creates a browser TouchEvent with the specified pointer coordinates.\n * @docs-private\n */\nexport function createTouchEvent(type: string, pageX = 0, pageY = 0) {\n // In favor of creating events that work for most of the browsers, the event is created\n // as a basic UI Event. The necessary details for the event will be set manually.\n const event = document.createEvent('UIEvent');\n const touchDetails = { pageX, pageY };\n\n // TS3.6 removes the initUIEvent method and suggests porting to \"new UIEvent()\".\n (event as any).initUIEvent(type, true, true, window, 0);\n\n // Most of the browsers don't have a \"initTouchEvent\" method that can be used to define\n // the touch details.\n defineReadonlyEventProperty(event, 'touches', [touchDetails]);\n defineReadonlyEventProperty(event, 'targetTouches', [touchDetails]);\n defineReadonlyEventProperty(event, 'changedTouches', [touchDetails]);\n\n return event;\n}\n\n/**\n * Creates a keyboard event with the specified key and modifiers.\n * @docs-private\n */\nexport function createKeyboardEvent(type: string, keyCode: number = 0, key: string = '', modifiers: ModifierKeys = {}) {\n const event = document.createEvent('KeyboardEvent');\n const originalPreventDefault = event.preventDefault.bind(event);\n\n // Firefox does not support `initKeyboardEvent`, but supports `initKeyEvent`.\n // https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/initKeyEvent.\n if ((event as any).initKeyEvent !== undefined) {\n (event as any).initKeyEvent(type, true, true, window, modifiers.control, modifiers.alt, modifiers.shift, modifiers.meta, keyCode);\n } else {\n // `initKeyboardEvent` expects to receive modifiers as a whitespace-delimited string\n // See https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/initKeyboardEvent\n let modifiersList = '';\n\n if (modifiers.control) {\n modifiersList += 'Control ';\n }\n\n if (modifiers.alt) {\n modifiersList += 'Alt ';\n }\n\n if (modifiers.shift) {\n modifiersList += 'Shift ';\n }\n\n if (modifiers.meta) {\n modifiersList += 'Meta ';\n }\n\n // TS3.6 removed the `initKeyboardEvent` method and suggested porting to\n // `new KeyboardEvent()` constructor. We cannot use that as we support IE11.\n // https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/initKeyboardEvent.\n (event as any).initKeyboardEvent(\n type,\n true /* canBubble */,\n true /* cancelable */,\n window /* view */,\n 0 /* char */,\n key /* key */,\n 0 /* location */,\n modifiersList.trim() /* modifiersList */,\n false /* repeat */\n );\n }\n\n // Webkit Browsers don't set the keyCode when calling the init function.\n // See related bug https://bugs.webkit.org/show_bug.cgi?id=16735\n defineReadonlyEventProperty(event, 'keyCode', keyCode);\n defineReadonlyEventProperty(event, 'key', key);\n defineReadonlyEventProperty(event, 'ctrlKey', !!modifiers.control);\n defineReadonlyEventProperty(event, 'altKey', !!modifiers.alt);\n defineReadonlyEventProperty(event, 'shiftKey', !!modifiers.shift);\n defineReadonlyEventProperty(event, 'metaKey', !!modifiers.meta);\n\n // IE won't set `defaultPrevented` on synthetic events so we need to do it manually.\n event.preventDefault = function () {\n defineReadonlyEventProperty(event, 'defaultPrevented', true);\n return originalPreventDefault();\n };\n\n return event;\n}\n\n/**\n * Creates a fake event object with any desired event type.\n * @docs-private\n */\nexport function createFakeEvent(type: string, canBubble = false, cancelable = true) {\n const event = document.createEvent('Event');\n event.initEvent(type, canBubble, cancelable);\n return event;\n}\n\nexport function createDragEvent(type: string, dataTransfer: DataTransfer | null = null, canBubble = false, cancelable = true) {\n const event = document.createEvent('DragEvent');\n event.initEvent(type, canBubble, cancelable);\n defineReadonlyEventProperty(event, 'dataTransfer', dataTransfer);\n return event;\n}\n\n/**\n * Defines a readonly property on the given event object. Readonly properties on an event object\n * are always set as configurable as that matches default readonly properties for DOM event objects.\n */\nfunction defineReadonlyEventProperty(event: Event, propertyName: string, value: any) {\n Object.defineProperty(event, propertyName, { get: () => value, configurable: true });\n}\n","import { ModifierKeys } from '@angular/cdk/testing';\nimport { createFakeEvent, createKeyboardEvent, createMouseEvent, createPointerEvent, createTouchEvent } from './events';\n\n/**\n * Utility to dispatch any event on a Node.\n * @docs-private\n */\nexport function dispatchEvent<T extends Event>(node: Node | Window, event: T): T {\n node.dispatchEvent(event);\n return event;\n}\n\n/**\n * Shorthand to dispatch a fake event on a specified node.\n * @docs-private\n */\nexport function dispatchFakeEvent(node: Node | Window, type: string, canBubble?: boolean): Event {\n return dispatchEvent(node, createFakeEvent(type, canBubble));\n}\n\n/**\n * Shorthand to dispatch a keyboard event with a specified key code and\n * optional modifiers.\n * @docs-private\n */\nexport function dispatchKeyboardEvent(node: Node, type: string, keyCode?: number, key?: string, modifiers?: ModifierKeys): KeyboardEvent {\n return dispatchEvent(node, createKeyboardEvent(type, keyCode, key, modifiers));\n}\n\n/**\n * Shorthand to dispatch a mouse event on the specified coordinates.\n * @docs-private\n */\nexport function dispatchMouseEvent(\n node: Node,\n type: string,\n clientX = 0,\n clientY = 0,\n button?: number,\n buttons?: number,\n detail?: number,\n modifiers?: ModifierKeys,\n relatedTarget?: Element\n): MouseEvent {\n return dispatchEvent(node, createMouseEvent(type, clientX, clientY, button, buttons, detail, modifiers, relatedTarget));\n}\n\n/**\n * Shorthand to dispatch a pointer event on the specified coordinates.\n * @docs-private\n */\nexport function dispatchPointerEvent(node: Node, type: string, clientX = 0, clientY = 0, options?: PointerEventInit): PointerEvent {\n return dispatchEvent(node, createPointerEvent(type, clientX, clientY, options)) as PointerEvent;\n}\n\n/**\n * Shorthand to dispatch a touch event on the specified coordinates.\n * @docs-private\n */\nexport function dispatchTouchEvent(node: Node, type: string, x = 0, y = 0) {\n return dispatchEvent(node, createTouchEvent(type, x, y));\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport { dispatchFakeEvent } from './dispatcher-events';\n\n/**\n * Patches an elements focus and blur methods to emit events consistently and predictably.\n * This is necessary, because some browsers, like IE11, will call the focus handlers asynchronously,\n * while others won't fire them at all if the browser window is not focused.\n */\nexport function patchElementFocus(element: HTMLElement) {\n element.focus = () => dispatchFakeEvent(element, 'focus');\n element.blur = () => dispatchFakeEvent(element, 'blur');\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport { dispatchFakeEvent } from './dispatcher-events';\n\n/**\n * Focuses an input, sets its value and dispatches\n * the `input` event, simulating the user typing.\n * @param value Value to be set on the input.\n * @param element Element onto which to set the value.\n */\nexport function typeInElement(value: string, element: HTMLInputElement) {\n element.focus();\n element.value = value;\n dispatchFakeEvent(element, 'input');\n}\n","import { ThyIconRegistry } from 'ngx-tethys/icon';\n\nimport { Provider, Sanitizer, SecurityContext } from '@angular/core';\nimport { inject } from '@angular/core/testing';\nimport { DomSanitizer } from '@angular/platform-browser';\n\nexport const bypassSanitizeProvider: Provider = {\n provide: Sanitizer,\n useValue: {\n sanitize: (context: SecurityContext, html: string) => html\n }\n};\n\nexport const defaultInlineIconSet = `\n <svg>\n <defs>\n <svg id=\"inbox\"><path d=\"M10 10\"/></svg>\n <svg id=\"close\"><path d=\"M10 10\"/></svg>\n <svg id=\"close-bold\"><path d=\"M10 10\"/></svg>\n <svg id=\"calendar-check\"><path d=\"M10 10\"/></svg>\n <svg id=\"calendar\"><path d=\"M10 10\"/></svg>\n <svg id=\"angle-down\"><path d=\"M10 10\"/></svg>\n <svg id=\"check\"><path d=\"M10 10\"/></svg>\n <svg id=\"application-fill\"></svg>\n <svg id=\"angle-right\"></svg>\n <svg id=\"minus-circle-fill\"></svg>\n <svg id=\"check-circle-fill\"></svg>\n <svg id=\"waring-fill\"></svg>\n <svg id=\"close-circle-fill\"></svg>\n <svg id=\"question-circle-fill\"></svg>\n <svg id=\"more-bold\"></svg>\n <svg id=\"filter\">\n <title>Filter Title</title>\n <defs> <linearGradient id=\"Gradient1\"><stop class=\"stop1\" offset=\"0%\"/><stop class=\"stop2\" offset=\"50%\"/><stop class=\"stop3\" offset=\"100%\"/></linearGradient></defs>\n <style> #rect1 { fill: url(#Gradient1); }</style>\n <path d=\"filter\" style=\" \"/>\n </svg>\n <svg id=\"close-circle-bold-fill\"></svg>\n <svg id=\"search\"></svg>\n <svg id=\"sort-tt\"><style>.circle { fill: orange; }</style><g id=\"phnormal/sort-tt\" stroke-width=\"1\" fill-rule=\"nonzero\"><path d=\"M10 10 0 0 1 5.1 1.5v12.99a.6.6 0 0 1-1.2 0V3.607L2.466 6.082a.6.6 0 1 1-1.04-.6l2.47-4.262a.599.599 0 0 1 .426-.293z\" id=\"ph形状结合\"/><path d=\"M13.765 1.027a.6.6 0 0 1 .778.573v12.805a.6.6 0 1 1-1.2 0V3.682L11.82 6.276a.6.6 0 1 1-1.04-.6l2.558-4.356a.599.599 0 0 1 .427-.293z\" id=\"sort-secondary-color\" transform=\"rotate(-180 12.621 8.003)\"/></g></svg>\n </defs>\n </svg>\n`;\n\nexport const defaultSvgHtml = `\n<svg viewBox=\"0 0 16 16\" id=\"close1\" xmlns=\"http://www.w3.org/2000/svg\">\n <path d=\"M7.978 11.997l-.005.006L2.3 6.33l.83-.831 4.848 4.848L12.826 5.5l.83.83-5.673 5.673-.005-.006z\"/>\n</svg>`;\n\nexport const injectDefaultSvgIconSet = () => {\n inject([ThyIconRegistry, DomSanitizer], (iconRegistry: ThyIconRegistry, domSanitizer: DomSanitizer) => {\n iconRegistry.addSvgIconSetLiteral(domSanitizer.bypassSecurityTrustHtml(defaultInlineIconSet));\n })();\n};\n","function removeFromArray<T>(array: T[], item: T) {\n const index = array.indexOf(item);\n\n if (index >= 0) {\n array.splice(index, 1);\n }\n}\n\nexport class FakeDataTransferItem implements DataTransferItem {\n type!: string;\n\n constructor(\n private entry: FileSystemEntry,\n public kind: string\n ) {}\n\n getAsFile(): File {\n return this.entry as unknown as File;\n }\n\n getAsString(callback: FunctionStringCallback): void {\n throw new Error('Method not implemented.');\n }\n\n webkitGetAsEntry() {\n return this.entry;\n }\n}\n\nexport class FakeDataTransfer implements DataTransfer {\n dataByFormat = {};\n dropEffect: 'none' | 'copy' | 'link' | 'move' = 'none';\n effectAllowed: 'none' | 'copy' | 'copyLink' | 'copyMove' | 'link' | 'linkMove' | 'move' | 'all' | 'uninitialized' = 'all';\n files!: FileList;\n types: string[] = [];\n items!: DataTransferItemList;\n\n constructor(files?: File[], items?: DataTransferItem[]) {\n this.files = files as any;\n this.items = items as any;\n }\n\n clearData(dataFormat: string) {\n if (dataFormat) {\n delete (this.dataByFormat as any)[dataFormat];\n removeFromArray(this.types, dataFormat);\n } else {\n this.dataByFormat = {};\n this.types = [];\n }\n }\n\n getData = (dataFormat: string) => {\n return (this.dataByFormat as any)[dataFormat];\n };\n\n setData(dataFormat: string, data: string) {\n (this.dataByFormat as any)[dataFormat] = data;\n\n if (this.types.indexOf(dataFormat) < 0) {\n this.types.push(dataFormat);\n }\n\n return true;\n }\n\n setDragImage = function () {\n // don't do anything (the stub just makes sure there is no error thrown if someone tries to call the method)\n };\n}\n","import { XhrFactory } from '@angular/common';\nimport { HttpHeaders } from '@angular/common/http';\n\nexport class MockXhrFactory implements XhrFactory {\n mock!: MockXMLHttpRequest;\n\n build(): XMLHttpRequest {\n return (this.mock = new MockXMLHttpRequest()) as any;\n }\n}\n\nexport class MockXMLHttpRequestUpload {\n constructor(private mock: MockXMLHttpRequest) {}\n\n addEventListener(event: 'progress', handler: Function) {\n this.mock.addEventListener(event === 'progress' ? 'uploadProgress' : event, handler);\n }\n\n removeEventListener(event: 'progress', handler: Function) {\n this.mock.removeEventListener(event === 'progress' ? 'uploadProgress' : event);\n }\n}\n\nexport class MockXMLHttpRequest {\n // Set by method calls.\n body!: any;\n // TODO(issue/24571): remove '!'.\n method!: string;\n // TODO(issue/24571): remove '!'.\n url!: string;\n mockHeaders: { [key: string]: string } = {};\n mockAborted: boolean = false;\n\n // Directly settable interface.\n withCredentials: boolean = false;\n responseType: string = 'text';\n\n // Mocked response interface.\n response: any | undefined = undefined;\n responseText: string | undefined = undefined;\n responseURL: string | null = null;\n status: number = 0;\n statusText: string = '';\n mockResponseHeaders: string = '';\n readyState!: number;\n\n listeners: {\n error?: (event: ErrorEvent) => void;\n load?: () => void;\n progress?: (event: ProgressEvent) => void;\n uploadProgress?: (event: ProgressEvent) => void;\n readystatechange?: () => void;\n } = {};\n\n upload = new MockXMLHttpRequestUpload(this);\n\n open(method: string, url: string): void {\n this.method = method;\n this.url = url;\n }\n\n send(body: any): void {\n this.body = body;\n }\n\n addEventListener(event: 'error' | 'load' | 'progress' | 'uploadProgress' | 'readystatechange', handler: Function): void {\n this.listeners[event] = handler as any;\n }\n\n removeEventListener(event: 'error' | 'load' | 'progress' | 'uploadProgress' | 'readystatechange'): void {\n delete this.listeners[event];\n }\n\n setRequestHeader(name: string, value: string): void {\n this.mockHeaders[name] = value;\n }\n\n getAllResponseHeaders(): string {\n return this.mockResponseHeaders;\n }\n\n getResponseHeader(header: string): string | null {\n return new HttpHeaders(this.mockResponseHeaders).get(header);\n }\n\n mockFlush(status: number, statusText: string, body?: string | object) {\n if (typeof body === 'string') {\n this.responseText = body;\n } else {\n this.response = body;\n }\n this.status = status;\n this.statusText = statusText;\n this.mockLoadEvent();\n }\n\n mockOnReadyStateChange(readyState: number = XMLHttpRequest.DONE) {\n this.readyState = XMLHttpRequest.DONE;\n this.listeners.readystatechange?.();\n }\n\n mockDownloadProgressEvent(loaded: number, total?: number): void {\n if (this.listeners.progress) {\n this.listeners.progress({ lengthComputable: total !== undefined, loaded, total } as any);\n }\n }\n\n mockUploadProgressEvent(loaded: number, total?: number) {\n if (this.listeners.uploadProgress) {\n this.listeners.uploadProgress({\n lengthComputable: total !== undefined,\n loaded,\n total\n } as any);\n }\n }\n\n mockLoadEvent(): void {\n if (this.listeners.load) {\n this.listeners.load();\n }\n }\n\n mockErrorEvent(error: any): void {\n if (this.listeners.error) {\n this.listeners.error(error);\n }\n }\n\n abort() {\n this.mockAborted = true;\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|