Skip to content

Commit 18ab9e9

Browse files
igauchJounQin
andauthored
fix(drawer): no default config when using component mode (#535)
Co-authored-by: JounQin <admin@1stg.me>
1 parent e3fa1cd commit 18ab9e9

File tree

9 files changed

+45
-19
lines changed

9 files changed

+45
-19
lines changed

.changeset/stale-dots-speak.md

+6
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
---
2+
'@alauda/ui': patch
3+
---
4+
5+
- fix(drawer): no default config when using component mode
6+
- feat(drawer): template context support contentParams as $implicit

package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -106,7 +106,7 @@
106106
"zone.js": "^0.13.1"
107107
},
108108
"resolutions": {
109-
"prettier": "~2.7.1"
109+
"prettier": "~2.8.8"
110110
},
111111
"publishConfig": {
112112
"access": "public",

src/date-picker/calendar/range-picker-panel/template.html

+1-1
Original file line numberDiff line numberDiff line change
@@ -113,6 +113,6 @@
113113
<span
114114
*ngIf="value"
115115
class="date-value date-holder"
116-
>{{ value | date: FOOTER_DATE_FORMAT }}</span
116+
>{{ value | date : FOOTER_DATE_FORMAT }}</span
117117
>
118118
</ng-template>

src/drawer/component/internal/internal.component.html

+3-3
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@
2020
<ng-container
2121
*ngIf="isTemplateRef(options.title); else normal"
2222
[ngTemplateOutlet]="options.title"
23-
[ngTemplateOutletContext]="options.contentParams"
23+
[ngTemplateOutletContext]="context"
2424
></ng-container>
2525
<ng-template #normal>
2626
{{ options.title }}
@@ -42,7 +42,7 @@
4242
<ng-container
4343
*ngIf="isTemplateRef(options.content)"
4444
[ngTemplateOutlet]="options.content"
45-
[ngTemplateOutletContext]="options.contentParams"
45+
[ngTemplateOutletContext]="context"
4646
>
4747
</ng-container>
4848
</div>
@@ -54,7 +54,7 @@
5454
<ng-container
5555
*ngIf="isTemplateRef(options.footer); else normal"
5656
[ngTemplateOutlet]="options.footer"
57-
[ngTemplateOutletContext]="options.contentParams"
57+
[ngTemplateOutletContext]="context"
5858
></ng-container>
5959
<ng-template #normal>
6060
{{ options.footer }}

src/drawer/component/internal/internal.component.ts

+7
Original file line numberDiff line numberDiff line change
@@ -119,6 +119,13 @@ export class DrawerInternalComponent<T = unknown, C extends object = object> {
119119
);
120120
}
121121

122+
get context() {
123+
return {
124+
$implicit: this.options.contentParams,
125+
...this.options.contentParams,
126+
};
127+
}
128+
122129
isTemplateRef = isTemplateRef;
123130

124131
constructor(private readonly injector: Injector) {}

src/drawer/drawer.service.ts

+18-6
Original file line numberDiff line numberDiff line change
@@ -8,14 +8,14 @@ import { DrawerRef } from './drawer-ref';
88
import { DrawerOptions, DrawerSize } from './types';
99

1010
const DRAWER_OVERLAY_CLASS = 'aui-drawer-overlay';
11-
const DEFAULT_OPTIONS: DrawerOptions = {
11+
const DEFAULT_OPTIONS = {
1212
size: DrawerSize.Medium,
1313
offsetY: '0',
1414
showClose: true,
1515
hideOnClickOutside: false,
1616
divider: true,
1717
disposeWhenHide: true,
18-
};
18+
} as const satisfies DrawerOptions;
1919

2020
@Injectable()
2121
export class DrawerService<
@@ -46,10 +46,7 @@ export class DrawerService<
4646
}
4747

4848
updateOptions(options: DrawerOptions<T, C>): void {
49-
this.options = {
50-
...(DEFAULT_OPTIONS as DrawerOptions<T, C>),
51-
...options,
52-
};
49+
this.options = merge<DrawerOptions<T, C>>(DEFAULT_OPTIONS, options);
5350
}
5451

5552
private createOverlay() {
@@ -135,3 +132,18 @@ export class DrawerService<
135132
this.dispose();
136133
}
137134
}
135+
136+
function merge<T extends object>(target: T, source: T) {
137+
return Object.keys(source).reduce(
138+
(acc, _key) => {
139+
const key = _key as keyof T;
140+
if (source[key] !== undefined) {
141+
acc[key] = source[key];
142+
}
143+
return acc;
144+
},
145+
{
146+
...target,
147+
},
148+
);
149+
}

src/tabs/tab-group.component.ts

+2-1
Original file line numberDiff line numberDiff line change
@@ -186,7 +186,8 @@ export class TabGroupComponent
186186

187187
/** Event emitted when focus has changed within a tab group. */
188188
@Output()
189-
readonly focusChange: EventEmitter<TabChangeEvent> = new EventEmitter<TabChangeEvent>();
189+
readonly focusChange: EventEmitter<TabChangeEvent> =
190+
new EventEmitter<TabChangeEvent>();
190191

191192
constructor(private readonly _changeDetectorRef: ChangeDetectorRef) {}
192193

src/time-picker/panel/panel.template.html

+3-3
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@
2020
}"
2121
(click)="selectValue(item, TimePickerControlType.Hour)"
2222
>
23-
{{ item | number: '2.0-0' }}
23+
{{ item | number : '2.0-0' }}
2424
</li>
2525
</ul>
2626
<div [class]="bem.element('column-strut')"></div>
@@ -44,7 +44,7 @@
4444
}"
4545
(click)="selectValue(item, TimePickerControlType.Minute)"
4646
>
47-
{{ item | number: '2.0-0' }}
47+
{{ item | number : '2.0-0' }}
4848
</li>
4949
</ul>
5050
<div [class]="bem.element('column-strut')"></div>
@@ -67,7 +67,7 @@
6767
}"
6868
(click)="selectValue(item, TimePickerControlType.Second)"
6969
>
70-
{{ item | number: '2.0-0' }}
70+
{{ item | number : '2.0-0' }}
7171
</li>
7272
</ul>
7373
<div [class]="bem.element('column-strut')"></div>

yarn.lock

+4-4
Original file line numberDiff line numberDiff line change
@@ -15238,10 +15238,10 @@ prettier-plugin-toml@^0.3.1:
1523815238
"@toml-tools/parser" "^0.3.1"
1523915239
prettier "^1.16.0"
1524015240

15241-
prettier@>=2.3, prettier@>=2.3.0, prettier@>=2.4.0, prettier@^1.16.0, prettier@^2.7.1, prettier@^2.8.0, prettier@^2.8.8, prettier@~2.7.1:
15242-
version "2.7.1"
15243-
resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.7.1.tgz#e235806850d057f97bb08368a4f7d899f7760c64"
15244-
integrity sha512-ujppO+MkdPqoVINuDFDRLClm7D78qbDt0/NR+wp5FqEZOoTNAjPHWj17QRhu7geIHJfcNhRk1XVQmF8Bp3ye+g==
15241+
prettier@>=2.3, prettier@>=2.3.0, prettier@>=2.4.0, prettier@^1.16.0, prettier@^2.7.1, prettier@^2.8.0, prettier@^2.8.8, prettier@~2.8.8:
15242+
version "2.8.8"
15243+
resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.8.8.tgz#e8c5d7e98a4305ffe3de2e1fc4aca1a71c28b1da"
15244+
integrity sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==
1524515245

1524615246
pretty-bytes@^5.3.0:
1524715247
version "5.6.0"

0 commit comments

Comments
 (0)