ngx-tethys 18.2.2 → 18.2.4
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 +18 -0
- package/esm2022/date-picker/lib/popups/date-popup.component.mjs +2 -2
- package/esm2022/nav/nav-item.directive.mjs +17 -7
- package/esm2022/nav/nav.component.mjs +58 -18
- package/esm2022/tabs/tabs.component.mjs +2 -2
- package/esm2022/version.mjs +2 -2
- package/fesm2022/ngx-tethys-date-picker.mjs +1 -1
- package/fesm2022/ngx-tethys-date-picker.mjs.map +1 -1
- package/fesm2022/ngx-tethys-nav.mjs +72 -22
- package/fesm2022/ngx-tethys-nav.mjs.map +1 -1
- package/fesm2022/ngx-tethys-tabs.mjs +1 -1
- package/fesm2022/ngx-tethys-tabs.mjs.map +1 -1
- package/fesm2022/ngx-tethys.mjs +1 -1
- package/fesm2022/ngx-tethys.mjs.map +1 -1
- package/nav/examples/{type/type.component.scss → card/card.component.scss} +0 -3
- package/nav/nav-item.directive.d.ts +7 -1
- package/nav/nav.component.d.ts +18 -4
- package/nav/styles/mixin.scss +35 -21
- package/nav/styles/nav.scss +75 -13
- package/package.json +1 -1
- package/schematics/version.d.ts +1 -1
- package/schematics/version.js +1 -1
- package/styles/variables.scss +5 -2
- package/theme/examples/basic/basic.component.scss +13 -0
package/fesm2022/ngx-tethys.mjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ngx-tethys.mjs","sources":["../../../src/version.ts","../../../src/ngx-tethys.ts"],"sourcesContent":["import { Version } from '@angular/core';\n\nexport const VERSION = new Version('18.2.
|
|
1
|
+
{"version":3,"file":"ngx-tethys.mjs","sources":["../../../src/version.ts","../../../src/ngx-tethys.ts"],"sourcesContent":["import { Version } from '@angular/core';\n\nexport const VERSION = new Version('18.2.4');\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;MAEa,OAAO,GAAG,IAAI,OAAO,CAAC,QAAQ;;ACF3C;;AAEG;;;;"}
|
|
@@ -11,6 +11,10 @@ export declare class ThyNavItemDirective implements AfterViewInit {
|
|
|
11
11
|
elementRef: ElementRef<any>;
|
|
12
12
|
private routerLinkActive;
|
|
13
13
|
private ngZone;
|
|
14
|
+
/**
|
|
15
|
+
* 唯一标识
|
|
16
|
+
*/
|
|
17
|
+
id: import("@angular/core").InputSignal<string>;
|
|
14
18
|
/**
|
|
15
19
|
* 是否激活状态
|
|
16
20
|
* @default false
|
|
@@ -49,8 +53,10 @@ export declare class ThyNavItemDirective implements AfterViewInit {
|
|
|
49
53
|
setOffset(): void;
|
|
50
54
|
linkIsActive(): boolean;
|
|
51
55
|
setNavLinkHidden(value: boolean): void;
|
|
56
|
+
addClass(className: string): void;
|
|
57
|
+
removeClass(className: string): void;
|
|
52
58
|
static ɵfac: i0.ɵɵFactoryDeclaration<ThyNavItemDirective, never>;
|
|
53
|
-
static ɵdir: i0.ɵɵDirectiveDeclaration<ThyNavItemDirective, "[thyNavLink],[thyNavItem]", never, { "thyNavItemActive": { "alias": "thyNavItemActive"; "required": false; }; "thyNavLinkActive": { "alias": "thyNavLinkActive"; "required": false; }; "thyNavItemDisabled": { "alias": "thyNavItemDisabled"; "required": false; }; }, {}, ["links", "routers"], never, true, never>;
|
|
59
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<ThyNavItemDirective, "[thyNavLink],[thyNavItem]", never, { "id": { "alias": "id"; "required": false; "isSignal": true; }; "thyNavItemActive": { "alias": "thyNavItemActive"; "required": false; }; "thyNavLinkActive": { "alias": "thyNavLinkActive"; "required": false; }; "thyNavItemDisabled": { "alias": "thyNavItemDisabled"; "required": false; }; }, {}, ["links", "routers"], never, true, never>;
|
|
54
60
|
static ngAcceptInputType_thyNavItemActive: boolean | string | number;
|
|
55
61
|
static ngAcceptInputType_thyNavLinkActive: boolean | string | number;
|
|
56
62
|
static ngAcceptInputType_thyNavItemDisabled: boolean | string | number;
|
package/nav/nav.component.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { ThyPopoverConfig } from 'ngx-tethys/popover';
|
|
1
2
|
import { Observable } from 'rxjs';
|
|
2
3
|
import { AfterContentChecked, AfterContentInit, AfterViewInit, ElementRef, OnChanges, OnInit, QueryList, Signal, SimpleChanges, TemplateRef } from '@angular/core';
|
|
3
4
|
import { RouterLinkActive } from '@angular/router';
|
|
@@ -5,7 +6,7 @@ import { ThyNavInkBarDirective } from './nav-ink-bar.directive';
|
|
|
5
6
|
import { ThyNavItemDirective } from './nav-item.directive';
|
|
6
7
|
import { ThyNavLocale } from 'ngx-tethys/i18n';
|
|
7
8
|
import * as i0 from "@angular/core";
|
|
8
|
-
export type ThyNavType = 'pulled' | 'tabs' | 'pills' | 'lite' | 'primary' | 'secondary' | 'thirdly' | 'secondary-divider';
|
|
9
|
+
export type ThyNavType = 'pulled' | 'tabs' | 'pills' | 'lite' | 'card' | 'primary' | 'secondary' | 'thirdly' | 'secondary-divider';
|
|
9
10
|
export type ThyNavSize = 'lg' | 'md' | 'sm';
|
|
10
11
|
export type ThyNavHorizontal = '' | 'start' | 'center' | 'end';
|
|
11
12
|
/**
|
|
@@ -19,7 +20,7 @@ export declare class ThyNav implements OnInit, AfterViewInit, AfterContentInit,
|
|
|
19
20
|
private changeDetectorRef;
|
|
20
21
|
private popover;
|
|
21
22
|
private readonly destroyRef;
|
|
22
|
-
|
|
23
|
+
type: ThyNavType;
|
|
23
24
|
private size;
|
|
24
25
|
initialized: boolean;
|
|
25
26
|
horizontal: ThyNavHorizontal;
|
|
@@ -68,10 +69,20 @@ export declare class ThyNav implements OnInit, AfterViewInit, AfterContentInit,
|
|
|
68
69
|
* @default false
|
|
69
70
|
*/
|
|
70
71
|
thyResponsive: boolean;
|
|
72
|
+
/**
|
|
73
|
+
* 支持暂停自适应计算
|
|
74
|
+
*/
|
|
75
|
+
thyPauseReCalculate: import("@angular/core").InputSignal<boolean>;
|
|
71
76
|
/**
|
|
72
77
|
* 更多操作的菜单点击内部是否可关闭
|
|
78
|
+
* @deprecated please use thyPopoverOptions
|
|
73
79
|
*/
|
|
74
80
|
thyInsideClosable: boolean;
|
|
81
|
+
/**
|
|
82
|
+
* 更多菜单弹出框的参数,底层使用 Popover 组件
|
|
83
|
+
* @type ThyPopoverConfig
|
|
84
|
+
*/
|
|
85
|
+
thyPopoverOptions: import("@angular/core").InputSignal<ThyPopoverConfig<unknown>>;
|
|
75
86
|
/**
|
|
76
87
|
* 右侧额外区域模板
|
|
77
88
|
* @type TemplateRef
|
|
@@ -108,23 +119,26 @@ export declare class ThyNav implements OnInit, AfterViewInit, AfterContentInit,
|
|
|
108
119
|
private updateClasses;
|
|
109
120
|
private curActiveIndex;
|
|
110
121
|
private prevActiveIndex;
|
|
122
|
+
private navSubscription;
|
|
111
123
|
ngOnInit(): void;
|
|
112
124
|
ngAfterViewInit(): void;
|
|
113
125
|
ngAfterContentInit(): void;
|
|
114
126
|
ngAfterContentChecked(): void;
|
|
115
127
|
private setMoreBtnOffset;
|
|
128
|
+
private setNavItemDivider;
|
|
116
129
|
createResizeObserver(element: HTMLElement): Observable<unknown>;
|
|
117
130
|
private calculateMoreIsActive;
|
|
118
131
|
private setHiddenItems;
|
|
119
132
|
private getShowItemsEndIndexWhenHorizontal;
|
|
120
133
|
private getShowItemsEndIndexWhenVertical;
|
|
121
134
|
private resetSizes;
|
|
122
|
-
|
|
135
|
+
openMoreMenu(event: Event, template: TemplateRef<any>): void;
|
|
123
136
|
navItemClick(item: ThyNavItemDirective): void;
|
|
124
137
|
private alignInkBarToSelectedTab;
|
|
125
138
|
ngOnChanges(changes: SimpleChanges): void;
|
|
139
|
+
ngOnDestroy(): void;
|
|
126
140
|
static ɵfac: i0.ɵɵFactoryDeclaration<ThyNav, never>;
|
|
127
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<ThyNav, "thy-nav", never, { "thyType": { "alias": "thyType"; "required": false; }; "thySize": { "alias": "thySize"; "required": false; }; "thyHorizontal": { "alias": "thyHorizontal"; "required": false; }; "thyVertical": { "alias": "thyVertical"; "required": false; }; "thyFill": { "alias": "thyFill"; "required": false; }; "thyResponsive": { "alias": "thyResponsive"; "required": false; }; "thyInsideClosable": { "alias": "thyInsideClosable"; "required": false; }; "thyExtra": { "alias": "thyExtra"; "required": false; }; }, {}, ["moreOperation", "morePopover", "extra", "links", "routers"], ["*"], true, never>;
|
|
141
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<ThyNav, "thy-nav", never, { "thyType": { "alias": "thyType"; "required": false; }; "thySize": { "alias": "thySize"; "required": false; }; "thyHorizontal": { "alias": "thyHorizontal"; "required": false; }; "thyVertical": { "alias": "thyVertical"; "required": false; }; "thyFill": { "alias": "thyFill"; "required": false; }; "thyResponsive": { "alias": "thyResponsive"; "required": false; }; "thyPauseReCalculate": { "alias": "thyPauseReCalculate"; "required": false; "isSignal": true; }; "thyInsideClosable": { "alias": "thyInsideClosable"; "required": false; }; "thyPopoverOptions": { "alias": "thyPopoverOptions"; "required": false; "isSignal": true; }; "thyExtra": { "alias": "thyExtra"; "required": false; }; }, {}, ["moreOperation", "morePopover", "extra", "links", "routers"], ["*"], true, never>;
|
|
128
142
|
static ngAcceptInputType_thyVertical: boolean | string | number;
|
|
129
143
|
static ngAcceptInputType_thyFill: boolean | string | number;
|
|
130
144
|
static ngAcceptInputType_thyResponsive: boolean | string | number;
|
package/nav/styles/mixin.scss
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
@use
|
|
2
|
-
@use
|
|
3
|
-
@use
|
|
4
|
-
@use
|
|
1
|
+
@use 'sass:color';
|
|
2
|
+
@use '../../styles/mixins/hover' as mixins-hover;
|
|
3
|
+
@use '../../styles/mixins/hover';
|
|
4
|
+
@use '../../styles/variables';
|
|
5
5
|
|
|
6
6
|
@mixin nav-item-variant($color, $hover-color, $border-bottom) {
|
|
7
7
|
& {
|
|
@@ -47,7 +47,6 @@
|
|
|
47
47
|
border-radius: $border-radius;
|
|
48
48
|
}
|
|
49
49
|
|
|
50
|
-
|
|
51
50
|
&.thy-nav-origin-active {
|
|
52
51
|
text-decoration: none;
|
|
53
52
|
background: rgba($hover-color, 0.1);
|
|
@@ -79,35 +78,50 @@
|
|
|
79
78
|
}
|
|
80
79
|
}
|
|
81
80
|
|
|
82
|
-
@mixin set-nav-size($nav-item-right-offset: 0px) {
|
|
81
|
+
@mixin set-nav-size($nav-item-right-offset: 0px, $nav-type: '') {
|
|
82
|
+
$nav-card-item-padding: variables.$nav-card-item-padding-y variables.$nav-card-item-padding-x;
|
|
83
|
+
$nav-card-item-right: variables.$nav-card-item-right;
|
|
84
|
+
|
|
83
85
|
.thy-nav-item {
|
|
84
86
|
height: variables.$nav-height;
|
|
85
|
-
@
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
87
|
+
@if ($nav-type == 'card') {
|
|
88
|
+
@include nav-item-size($nav-card-item-padding, $nav-card-item-right, variables.$nav-item-font-size);
|
|
89
|
+
} @else {
|
|
90
|
+
@include nav-item-size(
|
|
91
|
+
variables.$nav-item-padding-y variables.$nav-item-padding-x,
|
|
92
|
+
variables.$nav-item-right - $nav-item-right-offset,
|
|
93
|
+
variables.$nav-item-font-size
|
|
94
|
+
);
|
|
95
|
+
}
|
|
90
96
|
}
|
|
91
97
|
|
|
92
98
|
&.thy-nav-lg {
|
|
93
99
|
.thy-nav-item {
|
|
94
100
|
height: variables.$nav-height-lg;
|
|
95
|
-
@
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
101
|
+
@if ($nav-type == 'card') {
|
|
102
|
+
@include nav-item-size($nav-card-item-padding, $nav-card-item-right, variables.$nav-item-font-size-lg);
|
|
103
|
+
} @else {
|
|
104
|
+
@include nav-item-size(
|
|
105
|
+
variables.$nav-item-padding-y-lg variables.$nav-item-padding-x-lg,
|
|
106
|
+
variables.$nav-item-right-lg - $nav-item-right-offset,
|
|
107
|
+
variables.$nav-item-font-size-lg
|
|
108
|
+
);
|
|
109
|
+
}
|
|
100
110
|
}
|
|
101
111
|
}
|
|
102
112
|
|
|
103
113
|
&.thy-nav-sm {
|
|
104
114
|
.thy-nav-item {
|
|
105
115
|
height: variables.$nav-height-sm;
|
|
106
|
-
@
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
116
|
+
@if ($nav-type == 'card') {
|
|
117
|
+
@include nav-item-size($nav-card-item-padding, $nav-card-item-right, variables.$nav-item-font-size-sm);
|
|
118
|
+
} @else {
|
|
119
|
+
@include nav-item-size(
|
|
120
|
+
variables.$nav-item-padding-y-sm variables.$nav-item-padding-x-sm,
|
|
121
|
+
variables.$nav-item-right-sm - $nav-item-right-offset,
|
|
122
|
+
variables.$nav-item-font-size-sm
|
|
123
|
+
);
|
|
124
|
+
}
|
|
111
125
|
}
|
|
112
126
|
}
|
|
113
127
|
}
|
package/nav/styles/nav.scss
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
@use
|
|
2
|
-
@use
|
|
3
|
-
@use
|
|
4
|
-
@use
|
|
5
|
-
@use
|
|
6
|
-
@use
|
|
1
|
+
@use 'sass:meta';
|
|
2
|
+
@use 'sass:list';
|
|
3
|
+
@use 'sass:map';
|
|
4
|
+
@use '../../styles/variables';
|
|
5
|
+
@use '../../tag/styles/mixin' as tag;
|
|
6
|
+
@use 'mixin';
|
|
7
7
|
|
|
8
8
|
.thy-nav {
|
|
9
9
|
display: flex;
|
|
@@ -29,6 +29,21 @@
|
|
|
29
29
|
.thy-nav-extra {
|
|
30
30
|
display: inline-flex;
|
|
31
31
|
align-items: center;
|
|
32
|
+
flex-grow: 1;
|
|
33
|
+
justify-content: flex-end;
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
.thy-nav-more-icon {
|
|
37
|
+
margin-left: 8px;
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
.thy-nav-origin-active {
|
|
41
|
+
.thy-nav-more-icon {
|
|
42
|
+
svg {
|
|
43
|
+
transform: rotate(180deg);
|
|
44
|
+
transition: transform 0.2s cubic-bezier(0.34, 0.69, 0.1, 1);
|
|
45
|
+
}
|
|
46
|
+
}
|
|
32
47
|
}
|
|
33
48
|
|
|
34
49
|
&-ink-bar {
|
|
@@ -37,7 +52,9 @@
|
|
|
37
52
|
pointer-events: none;
|
|
38
53
|
|
|
39
54
|
&-animated {
|
|
40
|
-
transition:
|
|
55
|
+
transition:
|
|
56
|
+
left 0.3s,
|
|
57
|
+
top 0.3s;
|
|
41
58
|
}
|
|
42
59
|
}
|
|
43
60
|
}
|
|
@@ -66,17 +83,62 @@
|
|
|
66
83
|
@include mixin.set-nav-size(12px);
|
|
67
84
|
}
|
|
68
85
|
|
|
86
|
+
.thy-nav-card {
|
|
87
|
+
@include mixin.nav-border-bottom();
|
|
88
|
+
@include mixin.set-nav-size(0, 'card');
|
|
89
|
+
|
|
90
|
+
.thy-nav-item {
|
|
91
|
+
display: flex;
|
|
92
|
+
align-items: center;
|
|
93
|
+
padding: 12px 20px;
|
|
94
|
+
margin-right: 0;
|
|
95
|
+
border: 1px solid transparent;
|
|
96
|
+
|
|
97
|
+
&.has-right-divider {
|
|
98
|
+
position: relative;
|
|
99
|
+
&::after {
|
|
100
|
+
content: '';
|
|
101
|
+
position: absolute;
|
|
102
|
+
right: 0;
|
|
103
|
+
top: 50%;
|
|
104
|
+
transform: translateY(-50%);
|
|
105
|
+
display: inline-block;
|
|
106
|
+
height: 1rem;
|
|
107
|
+
vertical-align: middle;
|
|
108
|
+
border-left: 1px solid variables.$gray-300;
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
&.active {
|
|
113
|
+
&:not(.thy-nav-more-container) {
|
|
114
|
+
border: 1px solid variables.$border-color;
|
|
115
|
+
border-bottom-color: variables.$bg-default;
|
|
116
|
+
border-bottom-width: 2px;
|
|
117
|
+
border-radius: 8px 8px 0 0;
|
|
118
|
+
&::before {
|
|
119
|
+
left: -8px;
|
|
120
|
+
border-bottom-right-radius: 8px;
|
|
121
|
+
border-width: 0 1px 1px 0;
|
|
122
|
+
box-shadow: 1px 2px 0 variables.$white;
|
|
123
|
+
}
|
|
124
|
+
&::after {
|
|
125
|
+
right: -8px;
|
|
126
|
+
border-bottom-left-radius: 8px;
|
|
127
|
+
border-width: 0 0 1px 1px;
|
|
128
|
+
box-shadow: -1px 2px 0 variables.$white;
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
@include mixin.nav-item-variant(variables.$nav-item-color, variables.$nav-item-hover-color, null);
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
|
|
69
137
|
.thy-nav-pills {
|
|
70
138
|
.thy-nav-item {
|
|
71
|
-
// height: variables.$nav-height - 28px;
|
|
72
139
|
display: inline-flex;
|
|
73
140
|
align-items: center;
|
|
74
141
|
border-bottom-width: 0px;
|
|
75
|
-
// padding: {
|
|
76
|
-
// left: 12px;
|
|
77
|
-
// right: 12px;
|
|
78
|
-
// }
|
|
79
|
-
// @include tag.tag-size('md')
|
|
80
142
|
@include mixin.nav-item-size(null, variables.$nav-item-right, variables.$font-size-sm);
|
|
81
143
|
@include mixin.nav-item-pills-variant(variables.$tag-default-color, variables.$nav-item-hover-color);
|
|
82
144
|
}
|
package/package.json
CHANGED
package/schematics/version.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
export declare const VERSION = "18.2.
|
|
1
|
+
export declare const VERSION = "18.2.4";
|
package/schematics/version.js
CHANGED
package/styles/variables.scss
CHANGED
|
@@ -21,6 +21,7 @@ $success: #73d897 !default;
|
|
|
21
21
|
$info: #5dcfff !default;
|
|
22
22
|
$warning: #ffcd5d !default;
|
|
23
23
|
$danger: #ff7575 !default;
|
|
24
|
+
$black: #000 !default;
|
|
24
25
|
|
|
25
26
|
$body-color: $gray-800 !default;
|
|
26
27
|
$secondary: $gray-700 !default;
|
|
@@ -34,8 +35,6 @@ $pass: #2cccda !default;
|
|
|
34
35
|
$gray-210: #e9e9e9 !default; //整块区域的背景色为 #f3f3f3 后,某个卡片模块的背景色,用于文件详情
|
|
35
36
|
// deprecated
|
|
36
37
|
$gray-900: #212529 !default;
|
|
37
|
-
// deprecated
|
|
38
|
-
$black: #000;
|
|
39
38
|
|
|
40
39
|
/** text color */
|
|
41
40
|
$text-placeholder: $gray-400 !default;
|
|
@@ -529,6 +528,10 @@ $nav-item-padding-y-sm: 0.625rem !default; // 高度 44px
|
|
|
529
528
|
$nav-item-padding-x-sm: 0.5rem !default;
|
|
530
529
|
$nav-item-right-sm: 20px !default;
|
|
531
530
|
$nav-item-font-size-sm: 14px !default;
|
|
531
|
+
// nav card item size
|
|
532
|
+
$nav-card-item-padding-y: 0px !default;
|
|
533
|
+
$nav-card-item-padding-x: 20px !default;
|
|
534
|
+
$nav-card-item-right: 0px !default;
|
|
532
535
|
|
|
533
536
|
$nav-item-primary-padding-y: 0.9512rem !default; // 高度 56px, 文字 15px
|
|
534
537
|
$nav-item-primary-padding-x: 1rem !default;
|