Skip to content

Commit 7433802

Browse files
authored
chore(release): release 13.0.0 (#176)
* chore(release): release 13.0.0
1 parent 5a9057c commit 7433802

File tree

66 files changed

+455
-298
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

66 files changed

+455
-298
lines changed

.browserslistrc

+1-1
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,6 @@
55

66
> 0.5%
77
last 2 versions
8+
last 2 Edge major versions
89
Firefox ESR
910
not dead
10-
not IE 9-10

.eslintignore

+14
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
karma.conf.js
2+
e2e/*
3+
playbook/*
4+
scripts/*
5+
server/*
6+
style-guide/*
7+
preview/*
8+
tools/*
9+
devui-commons/*
10+
assistant/*
11+
commitlint.config.js
12+
node_modules/*
13+
dist/*
14+
publish/*

.eslintrc.js

+1
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ module.exports = {
22
rules: {
33
"no-useless-constructor": "off",
44
"no-useless-concat":"off",
5+
'no-unused-expressions': 'off',
56
"max-params": "off",
67
"@typescript-eslint/no-useless-constructor": "off",
78
"@typescript-eslint/no-parameter-properties": "off",

.gitignore

+1
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@
2626
!.vscode/extensions.json
2727

2828
# misc
29+
/.angular/cache
2930
/.sass-cache
3031
/connect.lock
3132
/coverage

README.md

+2-2
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ To see more in [devui.design](https://devui.design/home).
2323

2424
## Angular Support
2525

26-
Now supports Angular <font color=red>`^12.0.0`</font>
26+
Now supports Angular <font color=red>`^13.0.0`</font>
2727

2828
## Getting Started
2929

@@ -97,7 +97,7 @@ Modern browsers and Internet Explorer 11+.
9797

9898
| [<img src="https://raw.githubusercontent.com/alrra/browser-logos/master/src/edge/edge_48x48.png" alt="IE / Edge" width="24px" height="24px" />](http://godban.github.io/browsers-support-badges/)</br>IE / Edge | [<img src="https://raw.githubusercontent.com/alrra/browser-logos/master/src/firefox/firefox_48x48.png" alt="Firefox" width="24px" height="24px" />](http://godban.github.io/browsers-support-badges/)</br>Firefox | [<img src="https://raw.githubusercontent.com/alrra/browser-logos/master/src/chrome/chrome_48x48.png" alt="Chrome" width="24px" height="24px" />](http://godban.github.io/browsers-support-badges/)</br>Chrome | [<img src="https://raw.githubusercontent.com/alrra/browser-logos/master/src/safari/safari_48x48.png" alt="Safari" width="24px" height="24px" />](http://godban.github.io/browsers-support-badges/)</br>Safari | [<img src="https://raw.githubusercontent.com/alrra/browser-logos/master/src/opera/opera_48x48.png" alt="Opera" width="24px" height="24px" />](http://godban.github.io/browsers-support-badges/)</br>Opera |
9999
| --------- | --------- | --------- | --------- | --------- |
100-
| IE11, Edge| last 2 versions| last 2 versions| last 2 versions| last 2 versions
100+
| Edge | last 2 versions| last 2 versions| last 2 versions| last 2 versions
101101

102102
## Who use it
103103

README_zh_CN.md

+2-2
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ DevUI Design设计系统包含了DevUI规则、设计语言和最佳实践的资
2323

2424
## Angular版本
2525

26-
当前支持的angular版本<font color=red>`^11.0.0`</font>
26+
当前支持的angular版本<font color=red>`^13.0.0`</font>
2727

2828
## 快速开始
2929

@@ -99,7 +99,7 @@ ng serve --open
9999

100100
| [<img src="https://raw.githubusercontent.com/alrra/browser-logos/master/src/edge/edge_48x48.png" alt="IE / Edge" width="24px" height="24px" />](http://godban.github.io/browsers-support-badges/)</br>IE / Edge | [<img src="https://raw.githubusercontent.com/alrra/browser-logos/master/src/firefox/firefox_48x48.png" alt="Firefox" width="24px" height="24px" />](http://godban.github.io/browsers-support-badges/)</br>Firefox | [<img src="https://raw.githubusercontent.com/alrra/browser-logos/master/src/chrome/chrome_48x48.png" alt="Chrome" width="24px" height="24px" />](http://godban.github.io/browsers-support-badges/)</br>Chrome | [<img src="https://raw.githubusercontent.com/alrra/browser-logos/master/src/safari/safari_48x48.png" alt="Safari" width="24px" height="24px" />](http://godban.github.io/browsers-support-badges/)</br>Safari | [<img src="https://raw.githubusercontent.com/alrra/browser-logos/master/src/opera/opera_48x48.png" alt="Opera" width="24px" height="24px" />](http://godban.github.io/browsers-support-badges/)</br>Opera |
101101
| --------- | --------- | --------- | --------- | --------- |
102-
| IE11, Edge| last 2 versions| last 2 versions| last 2 versions| last 2 versions
102+
| Edge | last 2 versions| last 2 versions| last 2 versions| last 2 versions
103103

104104
## 谁在使用
105105

angular.json

+4-3
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,6 @@
5252
"optimization": true,
5353
"outputHashing": "all",
5454
"sourceMap": false,
55-
"extractCss": true,
5655
"namedChunks": false,
5756
"aot": true,
5857
"extractLicenses": true,
@@ -157,12 +156,14 @@
157156
"build": {
158157
"builder": "@angular-devkit/build-angular:ng-packagr",
159158
"options": {
160-
"tsConfig": "devui/tsconfig.lib.json",
161159
"project": "devui/ng-package.json"
162160
},
163161
"configurations": {
164162
"production": {
165163
"tsConfig": "devui/tsconfig.lib.prod.json"
164+
},
165+
"development": {
166+
"tsConfig": "devui/tsconfig.lib.json"
166167
}
167168
}
168169
},
@@ -195,4 +196,4 @@
195196
}
196197
},
197198
"defaultProject": "devui"
198-
}
199+
}

devui/accordion/accordion-item-hreflink.component.ts

+3-3
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
import { Component, HostListener, ViewEncapsulation } from '@angular/core';
1+
import { Component, HostListener, Inject, ViewEncapsulation } from '@angular/core';
22
import { AccordionBaseLinkComponent } from './accordion-base-link-component.class';
3-
import { AccordionComponent } from './accordion.component';
3+
import { ACCORDION } from './accordion-token';
44

55
@Component({
66
selector: 'd-accordion-item-hreflink',
@@ -9,7 +9,7 @@ import { AccordionComponent } from './accordion.component';
99
preserveWhitespaces: false,
1010
})
1111
export class AccordionItemHreflinkComponent extends AccordionBaseLinkComponent {
12-
constructor(protected accordion: AccordionComponent) {
12+
constructor(@Inject(ACCORDION) protected accordion: any) {
1313
super(accordion);
1414
}
1515
@HostListener('click', ['$event'])

devui/accordion/accordion-item-routerlink.component.ts

+3-3
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
1-
import { Component, HostBinding, HostListener, OnChanges, SimpleChanges, ViewChild, ViewEncapsulation} from '@angular/core';
1+
import { Component, HostBinding, HostListener, Inject, OnChanges, SimpleChanges, ViewChild, ViewEncapsulation } from '@angular/core';
22
import { Params, Router, RouterLinkActive, UrlTree } from '@angular/router';
33
import { AccordionBaseLinkComponent } from './accordion-base-link-component.class';
4-
import { AccordionComponent } from './accordion.component';
4+
import { ACCORDION } from './accordion-token';
55

66
@Component({
77
selector: 'd-accordion-item-routerlink',
@@ -29,7 +29,7 @@ export class AccordionItemRouterlinkComponent extends AccordionBaseLinkComponent
2929
public queryParams: Params;
3030
public fragment: string;
3131

32-
constructor(protected accordion: AccordionComponent, private router: Router) {
32+
constructor(@Inject(ACCORDION) protected accordion: any, private router: Router) {
3333
super(accordion);
3434
}
3535

devui/accordion/accordion-item.component.ts

+3-3
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
import { Component, HostListener, ViewEncapsulation } from '@angular/core';
1+
import { Component, HostListener, Inject, ViewEncapsulation } from '@angular/core';
22
import { AccordionBaseItemComponent } from './accordion-base-item-component.class';
3-
import { AccordionComponent } from './accordion.component';
3+
import { ACCORDION } from './accordion-token';
44
import { AccordionBaseItem } from './accordion.type';
55

66
@Component({
@@ -10,7 +10,7 @@ import { AccordionBaseItem } from './accordion.type';
1010
preserveWhitespaces: false,
1111
})
1212
export class AccordionItemComponent extends AccordionBaseItemComponent<AccordionBaseItem> {
13-
constructor(protected accordion: AccordionComponent) {
13+
constructor(@Inject(ACCORDION) protected accordion: any) {
1414
super(accordion);
1515
}
1616
@HostListener('click', ['$event'])
+3
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
import { InjectionToken } from '@angular/core';
2+
3+
export const ACCORDION_LIST = new InjectionToken('AccordionListComponent');

devui/accordion/accordion-list.component.html

+10
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,16 @@
33
<!--菜单类型-->
44
<d-accordion-menu *ngIf="item[childrenKey] !== undefined" [item]="item" [deepth]="deepth" [parent]="parent"></d-accordion-menu>
55
<!--非菜单类型-->
6+
<d-accordion-list
7+
*ngIf="item[childrenKey] !== undefined"
8+
class="devui-accordion-submenu"
9+
[deepth]="deepth + 1"
10+
[data]="item[childrenKey]"
11+
[parent]="item"
12+
[@collapse]="item.open ? 'expanded' : 'collapsed'"
13+
[@.disabled]="!animateState"
14+
>
15+
</d-accordion-list>
616
<ng-container *ngIf="item[childrenKey] === undefined">
717
<!--路由链接-->
818
<d-accordion-item-routerlink

devui/accordion/accordion-list.component.ts

+63-35
Original file line numberDiff line numberDiff line change
@@ -1,37 +1,49 @@
11
import {
2-
Component, Host, HostBinding, Input, OnDestroy, OnInit,
2+
Component, Host, HostBinding, Inject, Input, OnDestroy, OnInit,
33
Optional, QueryList, SkipSelf, ViewChildren, ViewEncapsulation
44
} from '@angular/core';
5+
import { expandCollapse, expandCollapseForDomDestroy } from 'ng-devui/utils';
56
import { AccordionItemRouterlinkComponent } from './accordion-item-routerlink.component';
6-
import { AccordionMenuComponent } from './accordion-menu.component';
7-
import { AccordionComponent } from './accordion.component';
7+
import { ACCORDION_LIST } from './accordion-list-token';
8+
import { ACCORDION_MENU } from './accordion-menu-token';
9+
import { ACCORDION } from './accordion-token';
810
import { AccordionMenuItem } from './accordion.type';
911

1012
@Component({
1113
selector: 'd-accordion-list',
1214
templateUrl: './accordion-list.component.html',
1315
encapsulation: ViewEncapsulation.None,
16+
animations: [expandCollapse, expandCollapseForDomDestroy],
1417
preserveWhitespaces: false,
18+
providers: [{
19+
provide: ACCORDION_LIST,
20+
useExisting: AccordionListComponent
21+
}]
1522
})
1623
export class AccordionListComponent implements OnInit, OnDestroy {
17-
@Input() data: Array<AccordionMenuItem>;
18-
@Input() deepth = 0;
19-
@Input() parent: AccordionMenuItem;
20-
@ViewChildren(AccordionMenuComponent) accordionMenuQueryList: QueryList<AccordionMenuComponent>;
21-
@ViewChildren(AccordionItemRouterlinkComponent) accordionItemRouterlinkQueryList: QueryList<AccordionItemRouterlinkComponent>;
22-
constructor(@Optional() @Host() @SkipSelf() private parentComponent: AccordionMenuComponent,
23-
private accordion: AccordionComponent) {}
24-
ngOnInit(): void {
25-
if (this.parentComponent) {
26-
setTimeout(() => {this.parentComponent.accordionListFromView = this; });
27-
}
28-
}
29-
ngOnDestroy(): void {
30-
if (this.parentComponent) {
31-
this.parentComponent.accordionListFromView = undefined;
32-
}
33-
}
3424

25+
// @HostBinding('class.open')
26+
// get open() {
27+
// return (this.keyOpen === undefined && this.accordion.autoOpenActiveMenu)
28+
// ? this.childActived
29+
// : this.keyOpen;
30+
// }
31+
// get keyOpen() {
32+
// return this.data && this.data[this.accordion.openKey];
33+
// }
34+
35+
// get children() {
36+
// return this.data && this.data[this.accordion.childrenKey];
37+
// }
38+
// get childActived() {
39+
// return this.routerLinkActived || this.hasActiveChildren;
40+
// }
41+
42+
// get showAnimate() {
43+
// return this.accordion.showAnimation;
44+
// }
45+
constructor(@Optional() @Host() @SkipSelf() @Inject(ACCORDION_MENU) private parentComponent: any,
46+
@Inject(ACCORDION) private accordion: any) {}
3547
@HostBinding('class.devui-accordion-show-animate') get animateState() {
3648
return this.accordion.showAnimation;
3749
}
@@ -81,21 +93,6 @@ export class AccordionListComponent implements OnInit, OnDestroy {
8193
get linkDefaultTarget() {
8294
return this.accordion.linkDefaultTarget;
8395
}
84-
private isLinkRouterActive(airlc: AccordionItemRouterlinkComponent): boolean {
85-
return airlc.routerLinkActived;
86-
}
87-
private isMenuRouterActive(amc: AccordionMenuComponent): boolean {
88-
return amc.routerLinkActived;
89-
}
90-
private isMenuDataActive(amc: AccordionMenuComponent): boolean {
91-
return amc.hasActiveChildren;
92-
}
93-
private isItemDataActive(item: AccordionMenuItem): boolean {
94-
return !!item[this.activeKey];
95-
}
96-
private isItemData(item: AccordionMenuItem): boolean {
97-
return item[this.childrenKey] === undefined;
98-
}
9996
get routerLinkActived(): boolean {
10097
return (!!this.accordionItemRouterlinkQueryList
10198
&& this.accordionItemRouterlinkQueryList.some(airlc => this.isLinkRouterActive(airlc))
@@ -111,6 +108,37 @@ export class AccordionListComponent implements OnInit, OnDestroy {
111108
&& this.data.some(item => this.isItemData(item) && this.isItemDataActive(item))
112109
);
113110
}
111+
@Input() data: Array<AccordionMenuItem>;
112+
@Input() deepth = 0;
113+
@Input() parent: AccordionMenuItem;
114+
@ViewChildren(ACCORDION_MENU) accordionMenuQueryList: QueryList<any>;
115+
@ViewChildren(AccordionItemRouterlinkComponent) accordionItemRouterlinkQueryList: QueryList<AccordionItemRouterlinkComponent>;
116+
6;
117+
ngOnInit(): void {
118+
if (this.parentComponent) {
119+
setTimeout(() => {this.parentComponent.accordionListFromView = this; });
120+
}
121+
}
122+
ngOnDestroy(): void {
123+
if (this.parentComponent) {
124+
this.parentComponent.accordionListFromView = undefined;
125+
}
126+
}
127+
private isLinkRouterActive(airlc: AccordionItemRouterlinkComponent): boolean {
128+
return airlc.routerLinkActived;
129+
}
130+
private isMenuRouterActive(amc: any): boolean {
131+
return amc.routerLinkActived;
132+
}
133+
private isMenuDataActive(amc: any): boolean {
134+
return amc.hasActiveChildren;
135+
}
136+
private isItemDataActive(item: AccordionMenuItem): boolean {
137+
return !!item[this.activeKey];
138+
}
139+
private isItemData(item: AccordionMenuItem): boolean {
140+
return item[this.childrenKey] === undefined;
141+
}
114142
menuToggleItemFn = (item: any , event?: any) => {
115143
this.accordion.menuToggleFn({
116144
item: item,
+3
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
import { InjectionToken } from '@angular/core';
2+
3+
export const ACCORDION_MENU = new InjectionToken('AccordionMenuComponent');

devui/accordion/accordion-menu.component.html

-10
Original file line numberDiff line numberDiff line change
@@ -45,13 +45,3 @@
4545
</svg>
4646
</span>
4747
</div>
48-
<d-accordion-list
49-
class="devui-accordion-submenu"
50-
[@collapse]="open ? 'expanded' : 'collapsed'"
51-
[@.disabled]="!showAnimate"
52-
[ngClass]="{ 'devui-accordion-menu-hidden': !open && !showAnimate }"
53-
[deepth]="deepth + 1"
54-
[data]="children"
55-
[parent]="item"
56-
>
57-
</d-accordion-list>

devui/accordion/accordion-menu.component.ts

+9-11
Original file line numberDiff line numberDiff line change
@@ -1,30 +1,28 @@
1-
import { Component, HostBinding, ViewEncapsulation } from '@angular/core';
2-
import { expandCollapse, expandCollapseForDomDestroy } from 'ng-devui/utils';
1+
import { Component, HostBinding, Inject, ViewEncapsulation } from '@angular/core';
32
import { AccordionBaseComponent } from './accordion-base-component.class';
4-
import { AccordionListComponent } from './accordion-list.component';
5-
import { AccordionComponent } from './accordion.component';
3+
import { ACCORDION_MENU } from './accordion-menu-token';
4+
import { ACCORDION } from './accordion-token';
65
import { AccordionBaseMenu, AccordionMenuItem } from './accordion.type';
76
@Component({
87
selector: 'd-accordion-menu',
98
templateUrl: './accordion-menu.component.html',
109
encapsulation: ViewEncapsulation.None,
1110
preserveWhitespaces: false,
12-
animations: [expandCollapse, expandCollapseForDomDestroy]
11+
providers: [{
12+
provide: ACCORDION_MENU,
13+
useExisting: AccordionMenuComponent
14+
}]
1315
})
1416
export class AccordionMenuComponent extends AccordionBaseComponent<AccordionBaseMenu<AccordionMenuItem>> {
1517
@HostBinding('class.devui-accordion-menu-item')
1618
defaultClasses = true;
1719

18-
public accordionListFromView: AccordionListComponent;
20+
public accordionListFromView: any; // AccordionListComponent
1921

2022
get menuItemTemplate() {
2123
return this.accordion.menuItemTemplate;
2224
}
2325

24-
get showAnimate() {
25-
return this.accordion.showAnimation;
26-
}
27-
2826
@HostBinding('class.open')
2927
get open() {
3028
return (this.keyOpen === undefined && this.accordion.autoOpenActiveMenu)
@@ -52,7 +50,7 @@ export class AccordionMenuComponent extends AccordionBaseComponent<AccordionBase
5250
return this.accordionListFromView && this.accordionListFromView.hasActiveChildren;
5351
}
5452

55-
constructor(public accordion: AccordionComponent) {
53+
constructor(@Inject(ACCORDION) public accordion: any) {
5654
super(accordion);
5755
}
5856

devui/accordion/accordion-token.ts

+3
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
import { InjectionToken } from '@angular/core';
2+
3+
export const ACCORDION = new InjectionToken('AccordionComponent');

devui/accordion/accordion.component.scss

-4
Original file line numberDiff line numberDiff line change
@@ -170,10 +170,6 @@
170170
}
171171
}
172172

173-
:host ::ng-deep d-accordion-list.devui-accordion-menu-hidden {
174-
display: none;
175-
}
176-
177173
/* 视觉融合灰线 */
178174
:host ::ng-deep .devui-accordion-item-title {
179175
position: relative;

0 commit comments

Comments
 (0)