@solar-angular/ui-zorro 18.1.1 → 18.3.0
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/crud/editor.d.ts +1 -2
- package/crud/page.d.ts +8 -2
- package/crud/searcher.d.ts +1 -2
- package/esm2022/crud/editor.mjs +1 -1
- package/esm2022/crud/page.mjs +9 -3
- package/esm2022/crud/searcher.mjs +4 -1
- package/esm2022/fluent-form/controls.mjs +17 -51
- package/esm2022/fluent-form/form.mjs +2 -3
- package/esm2022/fluent-form/helper.mjs +5 -2
- package/fesm2022/solar-angular-ui-zorro-crud.mjs +10 -2
- package/fesm2022/solar-angular-ui-zorro-crud.mjs.map +1 -1
- package/fesm2022/solar-angular-ui-zorro-fluent-form.mjs +24 -56
- package/fesm2022/solar-angular-ui-zorro-fluent-form.mjs.map +1 -1
- package/fluent-form/controls.d.ts +6 -31
- package/fluent-form/form.d.ts +1 -1
- package/fluent-form/helper.d.ts +12 -5
- package/package.json +13 -12
package/crud/editor.d.ts
CHANGED
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import { FormGroup } from '@angular/forms';
|
|
2
|
-
import { AbstractFormGroupSchema } from '@fluent-form/core';
|
|
3
2
|
import { Observable } from 'rxjs';
|
|
4
3
|
export declare class Editor<T> {
|
|
5
4
|
private _visible;
|
|
@@ -7,7 +6,7 @@ export declare class Editor<T> {
|
|
|
7
6
|
originalModel: T;
|
|
8
7
|
model: T;
|
|
9
8
|
loading: boolean;
|
|
10
|
-
schema: AbstractFormGroupSchema
|
|
9
|
+
schema: import("@angular/core").Signal<import("@fluent-form/core").AbstractFormGroupSchema>;
|
|
11
10
|
/** 是否在保存完之后固定抽屉 */
|
|
12
11
|
pin: boolean;
|
|
13
12
|
form?: FormGroup;
|
package/crud/page.d.ts
CHANGED
|
@@ -14,14 +14,20 @@ export declare abstract class CrudPage<T, U = T, V = U> {
|
|
|
14
14
|
protected searcher: Searcher<T>;
|
|
15
15
|
protected editor: Editor<U>;
|
|
16
16
|
/**
|
|
17
|
-
* @deprecated 请使用 {@link
|
|
17
|
+
* @deprecated 请使用 {@link Searcher.pageSize}
|
|
18
18
|
*/
|
|
19
19
|
protected get pageSize(): number;
|
|
20
|
+
/**
|
|
21
|
+
* @deprecated 请使用 {@link Searcher.pageSize}
|
|
22
|
+
*/
|
|
20
23
|
protected set pageSize(value: number);
|
|
21
24
|
/**
|
|
22
|
-
* @deprecated 请使用 {@link
|
|
25
|
+
* @deprecated 请使用 {@link Searcher.pageNo}
|
|
23
26
|
*/
|
|
24
27
|
protected get pageNo(): number;
|
|
28
|
+
/**
|
|
29
|
+
* @deprecated 请使用 {@link Searcher.pageNo}
|
|
30
|
+
*/
|
|
25
31
|
protected set pageNo(value: number);
|
|
26
32
|
readonly message: MessageService;
|
|
27
33
|
protected withTableLoading<X>(): (observable: Observable<X>) => Observable<X>;
|
package/crud/searcher.d.ts
CHANGED
|
@@ -1,9 +1,8 @@
|
|
|
1
1
|
import { FormGroup } from '@angular/forms';
|
|
2
|
-
import { AbstractFormGroupSchema } from '@fluent-form/core';
|
|
3
2
|
export declare class Searcher<T> {
|
|
4
3
|
form?: FormGroup;
|
|
5
4
|
model: Partial<T>;
|
|
6
|
-
schema: AbstractFormGroupSchema
|
|
5
|
+
schema: import("@angular/core").Signal<import("@fluent-form/core").AbstractFormGroupSchema>;
|
|
7
6
|
pageSize: number;
|
|
8
7
|
pageNo: number;
|
|
9
8
|
reset(): void;
|
package/esm2022/crud/editor.mjs
CHANGED
|
@@ -62,4 +62,4 @@ export class Editor {
|
|
|
62
62
|
this.model = model;
|
|
63
63
|
}
|
|
64
64
|
}
|
|
65
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
65
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWRpdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvdWktem9ycm8vY3J1ZC9lZGl0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ3pDLE9BQU8sRUFBYyxRQUFRLEVBQUUsR0FBRyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRWpELE1BQU0sT0FBTyxNQUFNO0lBQW5CO1FBQ1UsYUFBUSxHQUFHLEtBQUssQ0FBQztRQUN6QixZQUFZO1FBQ1osa0JBQWEsR0FBTSxFQUFPLENBQUM7UUFDM0IsVUFBSyxHQUFNLEVBQU8sQ0FBQztRQUNuQixZQUFPLEdBQUcsS0FBSyxDQUFDO1FBQ2hCLGdFQUFnRTtRQUNoRSxXQUFNLEdBQUcsSUFBSSxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQ3pCLG1CQUFtQjtRQUNuQixRQUFHLEdBQUcsS0FBSyxDQUFDO0lBZ0VkLENBQUM7SUE3REMsSUFBSSxPQUFPO1FBQ1QsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDO0lBQ3ZCLENBQUM7SUFFRCxJQUFJLE9BQU8sQ0FBQyxLQUFjO1FBQ3hCLDRCQUE0QjtRQUM1QixJQUFJLElBQUksQ0FBQyxRQUFRLEtBQUssS0FBSyxFQUFFLENBQUM7WUFDNUIsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO2dCQUNYLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLFlBQVk7WUFDNUIsQ0FBQztRQUNILENBQUM7UUFDRCxJQUFJLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQztJQUN4QixDQUFDO0lBRUQ7O09BRUc7SUFDSCxXQUFXO1FBQ1QsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUM7UUFDcEIsT0FBTyxDQUFDLFVBQXlCLEVBQUUsRUFBRTtZQUNuQyxPQUFPLFVBQVUsQ0FBQyxJQUFJLENBQ3BCLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQyxDQUNyQyxDQUFDO1FBQ0osQ0FBQyxDQUFDO0lBQ0osQ0FBQztJQUVEOztPQUVHO0lBQ0gsVUFBVTtRQUNSLE9BQU8sQ0FBQyxVQUF5QixFQUFFLEVBQUUsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUNuRCxHQUFHLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FDcEQsQ0FBQztJQUNKLENBQUM7SUFFRDs7T0FFRztJQUNILE9BQU87UUFDTCxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQztJQUN0QixDQUFDO0lBRUQ7O09BRUc7SUFDSCxPQUFPO1FBQ0wsSUFBSSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUM7SUFDdkIsQ0FBQztJQUVELFNBQVM7UUFDUCxJQUFJLENBQUMsR0FBRyxHQUFHLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQztJQUN2QixDQUFDO0lBRUQsS0FBSztRQUNILElBQUksQ0FBQyxJQUFJLENBQUMsRUFBTyxDQUFDLENBQUM7SUFDckIsQ0FBQztJQUVELElBQUksQ0FBQyxLQUFRO1FBQ1gsSUFBSSxDQUFDLGFBQWEsR0FBRyxLQUFLLENBQUM7UUFDM0IsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7SUFDckIsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgZm9ybSB9IGZyb20gJ0BmbHVlbnQtZm9ybS9jb3JlJztcbmltcG9ydCB7IE9ic2VydmFibGUsIGZpbmFsaXplLCB0YXAgfSBmcm9tICdyeGpzJztcblxuZXhwb3J0IGNsYXNzIEVkaXRvcjxUPiB7XG4gIHByaXZhdGUgX3Zpc2libGUgPSBmYWxzZTtcbiAgLyoqIOaooeWei+WIneWni+WAvCAqL1xuICBvcmlnaW5hbE1vZGVsOiBUID0ge30gYXMgVDtcbiAgbW9kZWw6IFQgPSB7fSBhcyBUO1xuICBsb2FkaW5nID0gZmFsc2U7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZW1wdHktZnVuY3Rpb25cbiAgc2NoZW1hID0gZm9ybSgoKSA9PiB7IH0pO1xuICAvKiog5piv5ZCm5Zyo5L+d5a2Y5a6M5LmL5ZCO5Zu65a6a5oq95bGJICovXG4gIHBpbiA9IGZhbHNlO1xuICBmb3JtPzogRm9ybUdyb3VwO1xuXG4gIGdldCB2aXNpYmxlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl92aXNpYmxlO1xuICB9XG5cbiAgc2V0IHZpc2libGUodmFsdWU6IGJvb2xlYW4pIHtcbiAgICAvLyDmiYvliqjliKTmlq3kuIDkuIvvvIzlm6DkuLrlj4zlkJHnu5HlrprnmoTljp/lm6DvvIzov5nph4zkvJrooqvorr7nva7kuKTmrKFcbiAgICBpZiAodGhpcy5fdmlzaWJsZSAhPT0gdmFsdWUpIHtcbiAgICAgIGlmICghdmFsdWUpIHtcbiAgICAgICAgdGhpcy5yZXNldCgpOyAvLyDlhbPpl63nmoTml7blgJnoh6rliqjph43nva5cbiAgICAgIH1cbiAgICB9XG4gICAgdGhpcy5fdmlzaWJsZSA9IHZhbHVlO1xuICB9XG5cbiAgLyoqXG4gICAqIOiHquWKqOaOp+WItiBsb2FkaW5nIOeKtuaAgVxuICAgKi9cbiAgd2l0aExvYWRpbmc8WD4oKSB7XG4gICAgdGhpcy5sb2FkaW5nID0gdHJ1ZTtcbiAgICByZXR1cm4gKG9ic2VydmFibGU6IE9ic2VydmFibGU8WD4pID0+IHtcbiAgICAgIHJldHVybiBvYnNlcnZhYmxlLnBpcGUoXG4gICAgICAgIGZpbmFsaXplKCgpID0+IHRoaXMubG9hZGluZyA9IGZhbHNlKVxuICAgICAgKTtcbiAgICB9O1xuICB9XG5cbiAgLyoqXG4gICAqIG5leHQg5pe26Ieq5Yqo6YeN572u6KGo5Y2VIOaIliDmlLbotbfnvJbovpHlmahcbiAgICovXG4gIHdpdGhBdHRhY2g8WD4oKSB7XG4gICAgcmV0dXJuIChvYnNlcnZhYmxlOiBPYnNlcnZhYmxlPFg+KSA9PiBvYnNlcnZhYmxlLnBpcGUoXG4gICAgICB0YXAoKCkgPT4gdGhpcy5waW4gPyB0aGlzLnJlc2V0KCkgOiB0aGlzLmRpc21pc3MoKSlcbiAgICApO1xuICB9XG5cbiAgLyoqXG4gICAqIOWRiOeOsOe8lui+keWZqFxuICAgKi9cbiAgcHJlc2VudCgpIHtcbiAgICB0aGlzLnZpc2libGUgPSB0cnVlO1xuICB9XG5cbiAgLyoqXG4gICAqIOWFs+mXree8lui+keWZqFxuICAgKi9cbiAgZGlzbWlzcygpIHtcbiAgICB0aGlzLnZpc2libGUgPSBmYWxzZTtcbiAgfVxuXG4gIHRvZ2dsZVBpbigpIHtcbiAgICB0aGlzLnBpbiA9ICF0aGlzLnBpbjtcbiAgfVxuXG4gIHJlc2V0KCkge1xuICAgIHRoaXMuZmlsbCh7fSBhcyBUKTtcbiAgfVxuXG4gIGZpbGwobW9kZWw6IFQpIHtcbiAgICB0aGlzLm9yaWdpbmFsTW9kZWwgPSBtb2RlbDtcbiAgICB0aGlzLm1vZGVsID0gbW9kZWw7XG4gIH1cbn1cbiJdfQ==
|
package/esm2022/crud/page.mjs
CHANGED
|
@@ -18,20 +18,26 @@ export class CrudPage {
|
|
|
18
18
|
this.message = inject(MessageService);
|
|
19
19
|
}
|
|
20
20
|
/**
|
|
21
|
-
* @deprecated 请使用 {@link
|
|
21
|
+
* @deprecated 请使用 {@link Searcher.pageSize}
|
|
22
22
|
*/
|
|
23
23
|
get pageSize() {
|
|
24
24
|
return this.searcher.pageSize;
|
|
25
25
|
}
|
|
26
|
+
/**
|
|
27
|
+
* @deprecated 请使用 {@link Searcher.pageSize}
|
|
28
|
+
*/
|
|
26
29
|
set pageSize(value) {
|
|
27
30
|
this.searcher.pageSize = value;
|
|
28
31
|
}
|
|
29
32
|
/**
|
|
30
|
-
* @deprecated 请使用 {@link
|
|
33
|
+
* @deprecated 请使用 {@link Searcher.pageNo}
|
|
31
34
|
*/
|
|
32
35
|
get pageNo() {
|
|
33
36
|
return this.searcher.pageNo;
|
|
34
37
|
}
|
|
38
|
+
/**
|
|
39
|
+
* @deprecated 请使用 {@link Searcher.pageNo}
|
|
40
|
+
*/
|
|
35
41
|
set pageNo(value) {
|
|
36
42
|
this.searcher.pageNo = value;
|
|
37
43
|
}
|
|
@@ -79,4 +85,4 @@ export class CrudPage {
|
|
|
79
85
|
*/
|
|
80
86
|
export class PagingCrudPage extends CrudPage {
|
|
81
87
|
}
|
|
82
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
88
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL3VpLXpvcnJvL2NydWQvcGFnZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3ZDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUNqRSxPQUFPLEVBQUUsUUFBUSxFQUFjLE1BQU0sTUFBTSxDQUFDO0FBQzVDLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDbEMsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUV0Qzs7Ozs7R0FLRztBQUNILE1BQU0sT0FBZ0IsUUFBUTtJQUE5QjtRQUNZLFNBQUksR0FBUSxFQUFFLENBQUM7UUFFZixZQUFPLEdBQUcsS0FBSyxDQUFDO1FBRWhCLGFBQVEsR0FBRyxJQUFJLFFBQVEsRUFBSyxDQUFDO1FBQzdCLFdBQU0sR0FBRyxJQUFJLE1BQU0sRUFBSyxDQUFDO1FBMkIxQixZQUFPLEdBQUcsTUFBTSxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBMkM1QyxDQUFDO0lBcEVDOztPQUVHO0lBQ0gsSUFBYyxRQUFRO1FBQ3BCLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUM7SUFDaEMsQ0FBQztJQUNEOztPQUVHO0lBQ0gsSUFBYyxRQUFRLENBQUMsS0FBSztRQUMxQixJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUM7SUFDakMsQ0FBQztJQUNEOztPQUVHO0lBQ0gsSUFBYyxNQUFNO1FBQ2xCLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUM7SUFDOUIsQ0FBQztJQUNEOztPQUVHO0lBQ0gsSUFBYyxNQUFNLENBQUMsS0FBSztRQUN4QixJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUM7SUFDL0IsQ0FBQztJQUlTLGdCQUFnQjtRQUN4QixPQUFPLENBQUMsVUFBeUIsRUFBRSxFQUFFO1lBQ25DLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDO1lBQ3BCLE9BQU8sVUFBVSxDQUFDLElBQUksQ0FDcEIsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDLENBQ3JDLENBQUM7UUFDSixDQUFDLENBQUM7SUFDSixDQUFDO0lBRUQ7OztPQUdHO0lBQ08sV0FBVyxDQUFJLE9BQWdCO1FBQ3ZDLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUksT0FBTyxDQUFDLENBQUM7SUFDOUMsQ0FBQztJQUVEOzs7T0FHRztJQUNPLGlCQUFpQjtRQUN6QixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsaUJBQWlCLEVBQUssQ0FBQztJQUM3QyxDQUFDO0lBRUQ7OztPQUdHO0lBQ08sZUFBZTtRQUN2QixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsZUFBZSxFQUFLLENBQUM7SUFDM0MsQ0FBQztJQUVEOzs7T0FHRztJQUNPLElBQUksQ0FBQyxNQUFTO1FBQ3RCLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3pCLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDeEIsQ0FBQztDQUNGO0FBRUQ7Ozs7O0dBS0c7QUFDSCxNQUFNLE9BQWdCLGNBQWdDLFNBQVEsUUFBaUI7Q0FFOUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE1lc3NhZ2VTZXJ2aWNlIH0gZnJvbSAnQHNvbGFyLWFuZ3VsYXIvdWktem9ycm8vbWVzc2FnZSc7XG5pbXBvcnQgeyBmaW5hbGl6ZSwgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgRWRpdG9yIH0gZnJvbSAnLi9lZGl0b3InO1xuaW1wb3J0IHsgU2VhcmNoZXIgfSBmcm9tICcuL3NlYXJjaGVyJztcblxuLyoqXG4gKiDlop7liKDmlLnmn6XpobXpnaJcbiAqIEB0ZW1wbGF0ZSBUIFNlYXJjaGVyIOeahOaooeWei+exu+Wei1xuICogQHRlbXBsYXRlIFUgRWRpdG9yIOeahOaooeWei+exu+Wei++8jOm7mOiupOS4uiBUXG4gKiBAdGVtcGxhdGUgViBEYXRhIOeahOaooeWei+exu+Wei++8jOm7mOiupOS4uiBVXG4gKi9cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBDcnVkUGFnZTxULCBVID0gVCwgViA9IFU+IHtcbiAgcHJvdGVjdGVkIGRhdGE6IFZbXSA9IFtdO1xuXG4gIHByb3RlY3RlZCBsb2FkaW5nID0gZmFsc2U7XG5cbiAgcHJvdGVjdGVkIHNlYXJjaGVyID0gbmV3IFNlYXJjaGVyPFQ+KCk7XG4gIHByb3RlY3RlZCBlZGl0b3IgPSBuZXcgRWRpdG9yPFU+KCk7XG5cbiAgLyoqXG4gICAqIEBkZXByZWNhdGVkIOivt+S9v+eUqCB7QGxpbmsgU2VhcmNoZXIucGFnZVNpemV9XG4gICAqL1xuICBwcm90ZWN0ZWQgZ2V0IHBhZ2VTaXplKCkge1xuICAgIHJldHVybiB0aGlzLnNlYXJjaGVyLnBhZ2VTaXplO1xuICB9XG4gIC8qKlxuICAgKiBAZGVwcmVjYXRlZCDor7fkvb/nlKgge0BsaW5rIFNlYXJjaGVyLnBhZ2VTaXplfVxuICAgKi9cbiAgcHJvdGVjdGVkIHNldCBwYWdlU2l6ZSh2YWx1ZSkge1xuICAgIHRoaXMuc2VhcmNoZXIucGFnZVNpemUgPSB2YWx1ZTtcbiAgfVxuICAvKipcbiAgICogQGRlcHJlY2F0ZWQg6K+35L2/55SoIHtAbGluayBTZWFyY2hlci5wYWdlTm99XG4gICAqL1xuICBwcm90ZWN0ZWQgZ2V0IHBhZ2VObygpIHtcbiAgICByZXR1cm4gdGhpcy5zZWFyY2hlci5wYWdlTm87XG4gIH1cbiAgLyoqXG4gICAqIEBkZXByZWNhdGVkIOivt+S9v+eUqCB7QGxpbmsgU2VhcmNoZXIucGFnZU5vfVxuICAgKi9cbiAgcHJvdGVjdGVkIHNldCBwYWdlTm8odmFsdWUpIHtcbiAgICB0aGlzLnNlYXJjaGVyLnBhZ2VObyA9IHZhbHVlO1xuICB9XG5cbiAgcmVhZG9ubHkgbWVzc2FnZSA9IGluamVjdChNZXNzYWdlU2VydmljZSk7XG5cbiAgcHJvdGVjdGVkIHdpdGhUYWJsZUxvYWRpbmc8WD4oKSB7XG4gICAgcmV0dXJuIChvYnNlcnZhYmxlOiBPYnNlcnZhYmxlPFg+KSA9PiB7XG4gICAgICB0aGlzLmxvYWRpbmcgPSB0cnVlO1xuICAgICAgcmV0dXJuIG9ic2VydmFibGUucGlwZShcbiAgICAgICAgZmluYWxpemUoKCkgPT4gdGhpcy5sb2FkaW5nID0gZmFsc2UpXG4gICAgICApO1xuICAgIH07XG4gIH1cblxuICAvKipcbiAgICoge0BsaW5rIE1lc3NhZ2VTZXJ2aWNlLndpdGhMb2FkaW5nKCl9IOeahOW/q+aNt+aWueW8j1xuICAgKiBAcGFyYW0gY29udGVudFxuICAgKi9cbiAgcHJvdGVjdGVkIHdpdGhMb2FkaW5nPFg+KGNvbnRlbnQ/OiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5tZXNzYWdlLndpdGhMb2FkaW5nPFg+KGNvbnRlbnQpO1xuICB9XG5cbiAgLyoqXG4gICAqIHtAbGluayBNZXNzYWdlU2VydmljZS53aXRoRGVsZXRlTG9hZGluZygpfSDnmoTlv6vmjbfmlrnlvI9cbiAgICogQHBhcmFtIGNvbnRlbnRcbiAgICovXG4gIHByb3RlY3RlZCB3aXRoRGVsZXRlTG9hZGluZzxYPigpIHtcbiAgICByZXR1cm4gdGhpcy5tZXNzYWdlLndpdGhEZWxldGVMb2FkaW5nPFg+KCk7XG4gIH1cblxuICAvKipcbiAgICoge0BsaW5rIE1lc3NhZ2VTZXJ2aWNlLndpdGhTYXZlTG9hZGluZygpfSDnmoTlv6vmjbfmlrnlvI9cbiAgICogQHBhcmFtIGNvbnRlbnRcbiAgICovXG4gIHByb3RlY3RlZCB3aXRoU2F2ZUxvYWRpbmc8WD4oKSB7XG4gICAgcmV0dXJuIHRoaXMubWVzc2FnZS53aXRoU2F2ZUxvYWRpbmc8WD4oKTtcbiAgfVxuXG4gIC8qKlxuICAgKiDnvJbovpFcbiAgICogQHBhcmFtIGVudGl0eVxuICAgKi9cbiAgcHJvdGVjdGVkIGVkaXQoZW50aXR5OiBVKSB7XG4gICAgdGhpcy5lZGl0b3IuZmlsbChlbnRpdHkpO1xuICAgIHRoaXMuZWRpdG9yLnByZXNlbnQoKTtcbiAgfVxufVxuXG4vKipcbiAqIOW4puWIhumhteeahOWinuWIoOaUueafpemhtemdolxuICogQHRlbXBsYXRlIFQgU2VhcmNoZXIg55qE5qih5Z6L57G75Z6LXG4gKiBAdGVtcGxhdGUgVSBFZGl0b3Ig55qE5qih5Z6L57G75Z6L77yM6buY6K6k5Li6IFRcbiAqIEB0ZW1wbGF0ZSBWIERhdGEg55qE5qih5Z6L57G75Z6L77yM6buY6K6k5Li6IFVcbiAqL1xuZXhwb3J0IGFic3RyYWN0IGNsYXNzIFBhZ2luZ0NydWRQYWdlPFQsIFUgPSBULCBWID0gVT4gZXh0ZW5kcyBDcnVkUGFnZTxULCBVLCBWPiB7XG4gIHByb3RlY3RlZCB0b3RhbFNpemUhOiBudW1iZXI7XG59XG4iXX0=
|
|
@@ -1,6 +1,9 @@
|
|
|
1
|
+
import { form } from '@fluent-form/core';
|
|
1
2
|
export class Searcher {
|
|
2
3
|
constructor() {
|
|
3
4
|
this.model = {};
|
|
5
|
+
// eslint-disable-next-line @typescript-eslint/no-empty-function
|
|
6
|
+
this.schema = form(() => { });
|
|
4
7
|
this.pageSize = 10;
|
|
5
8
|
this.pageNo = 1;
|
|
6
9
|
}
|
|
@@ -9,4 +12,4 @@ export class Searcher {
|
|
|
9
12
|
this.form?.reset({});
|
|
10
13
|
}
|
|
11
14
|
}
|
|
12
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
15
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy91aS16b3Jyby9jcnVkL3NlYXJjaGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUV6QyxNQUFNLE9BQU8sUUFBUTtJQUFyQjtRQUVFLFVBQUssR0FBZSxFQUFFLENBQUM7UUFDdkIsZ0VBQWdFO1FBQ2hFLFdBQU0sR0FBRyxJQUFJLENBQUMsR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFFekIsYUFBUSxHQUFHLEVBQUUsQ0FBQztRQUNkLFdBQU0sR0FBRyxDQUFDLENBQUM7SUFNYixDQUFDO0lBSkMsS0FBSztRQUNILElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO1FBQ2hCLElBQUksQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ3ZCLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IGZvcm0gfSBmcm9tICdAZmx1ZW50LWZvcm0vY29yZSc7XG5cbmV4cG9ydCBjbGFzcyBTZWFyY2hlcjxUPiB7XG4gIGZvcm0/OiBGb3JtR3JvdXA7XG4gIG1vZGVsOiBQYXJ0aWFsPFQ+ID0ge307XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZW1wdHktZnVuY3Rpb25cbiAgc2NoZW1hID0gZm9ybSgoKSA9PiB7IH0pO1xuXG4gIHBhZ2VTaXplID0gMTA7XG4gIHBhZ2VObyA9IDE7XG5cbiAgcmVzZXQoKSB7XG4gICAgdGhpcy5wYWdlTm8gPSAxO1xuICAgIHRoaXMuZm9ybT8ucmVzZXQoe30pO1xuICB9XG59XG4iXX0=
|
|
@@ -1,10 +1,11 @@
|
|
|
1
|
-
import { cascader,
|
|
2
|
-
import { levels2tree, tree2list } from '@solar-
|
|
3
|
-
|
|
4
|
-
|
|
1
|
+
import { cascader, datePicker, dateRangePicker, numberField, radioGroup, textField, toggle } from '@fluent-form/ui-zorro';
|
|
2
|
+
import { levels2tree, tree2list } from '@solar-kit/core';
|
|
3
|
+
import { entitiesToOptions } from './helper';
|
|
4
|
+
export function cellphoneField(key = 'cellphone', length = 11) {
|
|
5
|
+
return textField(key).type('tel').length(length);
|
|
5
6
|
}
|
|
6
|
-
export function
|
|
7
|
-
return
|
|
7
|
+
export function integerField(key) {
|
|
8
|
+
return numberField(key).precision(0);
|
|
8
9
|
}
|
|
9
10
|
export function enabledToggle(key = 'enabled', defaultValue = true) {
|
|
10
11
|
return toggle(key).placeholder(['有效', '无效']).defaultValue(defaultValue);
|
|
@@ -19,47 +20,19 @@ export function genderRadioGroup(key = 'gender') {
|
|
|
19
20
|
]);
|
|
20
21
|
}
|
|
21
22
|
export function categoryCascader(key, channels, categories) {
|
|
22
|
-
return
|
|
23
|
+
return leafCascader(key).options(levels2tree([
|
|
24
|
+
entitiesToOptions(channels),
|
|
25
|
+
entitiesToOptions(categories)
|
|
26
|
+
], { id: 'value', pid: 'channel' }));
|
|
23
27
|
}
|
|
24
28
|
/**
|
|
25
|
-
*
|
|
26
|
-
*
|
|
27
|
-
* 已经配置了 labelProperty: 'fullName', valueProperty: 'id'
|
|
28
|
-
* @param key
|
|
29
|
-
*/
|
|
30
|
-
export function entityCheckboxGroup(key) {
|
|
31
|
-
return checkboxGroup(key).config({ labelProperty: 'fullName', valueProperty: 'id' });
|
|
32
|
-
}
|
|
33
|
-
/**
|
|
34
|
-
* 通用的实体单选框
|
|
35
|
-
*
|
|
36
|
-
* 已经配置了 labelProperty: 'fullName', valueProperty: 'id'
|
|
37
|
-
* @param key
|
|
38
|
-
*/
|
|
39
|
-
export function entityRadioGroup(key) {
|
|
40
|
-
return radioGroup(key).config({ labelProperty: 'fullName', valueProperty: 'id' });
|
|
41
|
-
}
|
|
42
|
-
/**
|
|
43
|
-
* 通用的实体选择器
|
|
44
|
-
*
|
|
45
|
-
* 已经配置了 labelProperty: 'fullName', valueProperty: 'id'
|
|
46
|
-
* @param key
|
|
47
|
-
*/
|
|
48
|
-
export function entitySelect(key) {
|
|
49
|
-
return select(key).config({ labelProperty: 'fullName', valueProperty: 'id' });
|
|
50
|
-
}
|
|
51
|
-
/**
|
|
52
|
-
* 通用的实体联级选择器
|
|
53
|
-
*
|
|
54
|
-
* - 多字段模式下不支持以下选项:
|
|
55
|
-
* - 不支持使用函数作为 options
|
|
56
|
-
* - 不支持 fetchOptions 选项
|
|
29
|
+
* 叶子节点级联选择器
|
|
57
30
|
*
|
|
58
31
|
* options 选项可以使用 `list2tree()` 或 `levels2tree()` 来构造
|
|
59
32
|
*
|
|
60
33
|
* @param key
|
|
61
34
|
*/
|
|
62
|
-
export function
|
|
35
|
+
export function leafCascader(key) {
|
|
63
36
|
let list;
|
|
64
37
|
return cascader(key)
|
|
65
38
|
.trigger('hover')
|
|
@@ -67,29 +40,22 @@ export function entityCascader(key) {
|
|
|
67
40
|
parser: (value, schema) => {
|
|
68
41
|
if (!value)
|
|
69
42
|
return null;
|
|
70
|
-
// 如果输入的是数组,则说明当前是多字段模式,不需要做处理
|
|
71
|
-
if (Array.isArray(value))
|
|
72
|
-
return value;
|
|
73
43
|
// 如果输入的是叶子节点,我们需要转为 [父节点, ..., 叶子节点]
|
|
74
44
|
list ??= tree2list(schema.options);
|
|
75
45
|
// 找到选中的叶子节点
|
|
76
|
-
let node = list.find(node => node.
|
|
46
|
+
let node = list.find(node => node.value === value && (!node.children || node.children.length === 0));
|
|
77
47
|
const levels = [];
|
|
78
48
|
while (node) {
|
|
79
|
-
levels.unshift(node.
|
|
49
|
+
levels.unshift(node.value);
|
|
80
50
|
node = node.parent;
|
|
81
51
|
}
|
|
82
52
|
return levels;
|
|
83
53
|
},
|
|
84
54
|
formatter: value => {
|
|
85
|
-
// 多字段模式,不需要处理
|
|
86
|
-
if (Array.isArray(key))
|
|
87
|
-
return value;
|
|
88
55
|
// 输出的是节点数组,我们只要叶子节点
|
|
89
56
|
return value?.[value.length - 1];
|
|
90
57
|
}
|
|
91
|
-
})
|
|
92
|
-
.config({ labelProperty: 'fullName', valueProperty: 'id' });
|
|
58
|
+
});
|
|
93
59
|
}
|
|
94
60
|
export function datetimePicker(key, format = 'yyyy-MM-dd HH:mm') {
|
|
95
61
|
return datePicker(key)
|
|
@@ -101,4 +67,4 @@ export function datetimeRangePicker(key, format = 'yyyy-MM-dd HH:mm') {
|
|
|
101
67
|
.time({ nzFormat: 'HH:mm' })
|
|
102
68
|
.format(format);
|
|
103
69
|
}
|
|
104
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udHJvbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy91aS16b3Jyby9mbHVlbnQtZm9ybS9jb250cm9scy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQXVOLFFBQVEsRUFBRSxhQUFhLEVBQUUsVUFBVSxFQUFFLGVBQWUsRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDNVYsT0FBTyxFQUFZLFdBQVcsRUFBRSxTQUFTLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUt2RSxNQUFNLFVBQVUsYUFBYSxDQUFDLEdBQUcsR0FBRyxXQUFXLEVBQUUsTUFBTSxHQUFHLEVBQUU7SUFDMUQsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztBQUM5QyxDQUFDO0FBRUQsTUFBTSxVQUFVLE9BQU8sQ0FBQyxHQUFvQjtJQUMxQyxPQUFPLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDbEMsQ0FBQztBQUVELE1BQU0sVUFBVSxhQUFhLENBQUMsTUFBdUIsU0FBUyxFQUFFLFlBQVksR0FBRyxJQUFJO0lBQ2pGLE9BQU8sTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxZQUFZLENBQUMsQ0FBQztBQUMxRSxDQUFDO0FBRUQsTUFBTSxVQUFVLGNBQWMsQ0FBQyxNQUF1QixVQUFVLEVBQUUsWUFBWSxHQUFHLEtBQUs7SUFDcEYsT0FBTyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLFlB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QUFhLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztBQUNoRSxDQUFDO0FBRUQsTUFBTSxVQUFVLGNBQWMsQ0FBQyxHQUFXLEVBQUUsTUFBTSxHQUFHLGtCQUFrQjtJQUNyRSxPQUFPLFVBQVUsQ0FBQyxHQUFHLENBQUM7U0FDbkIsSUFBSSxDQUFDLEVBQUUsUUFBUSxFQUFFLE9BQU8sRUFBRSxDQUFDO1NBQzNCLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztBQUNwQixDQUFDO0FBRUQsTUFBTSxVQUFVLG1CQUFtQixDQUFDLEdBQWMsRUFBRSxNQUFNLEdBQUcsa0JBQWtCO0lBQzdFLE9BQU8sZUFBZSxDQUFDLEdBQUcsQ0FBQztTQUN4QixJQUFJLENBQUMsRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLENBQUM7U0FDM0IsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0FBQ3BCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTY2hlbWFLZXksIFNpbmdsZVNjaGVtYUtleSwgVW5zdGFibGVCdWlsZGVyIH0gZnJvbSAnQGZsdWVudC1mb3JtL2NvcmUnO1xuaW1wb3J0IHsgQ2FzY2FkZXJDb250cm9sU2NoZW1hLCBDaGVja2JveEdyb3VwQ29udHJvbFNjaGVtYSwgRGF0ZVBpY2tlckNvbnRyb2xTY2hlbWEsIERhdGVSYW5nZVBpY2tlckNvbnRyb2xTY2hlbWEsIE51bWJlckNvbnRyb2xTY2hlbWEsIFJhZGlvR3JvdXBDb250cm9sU2NoZW1hLCBTZWxlY3RDb250cm9sU2NoZW1hLCBUZXh0Q29udHJvbFNjaGVtYSwgVG9nZ2xlQ29udHJvbFNjaGVtYSwgY2FzY2FkZXIsIGNoZWNrYm94R3JvdXAsIGRhdGVQaWNrZXIsIGRhdGVSYW5nZVBpY2tlciwgbnVtYmVyLCByYWRpb0dyb3VwLCBzZWxlY3QsIHRleHQsIHRvZ2dsZSB9IGZyb20gJ0BmbHVlbnQtZm9ybS91aS16b3Jybyc7XG5pbXBvcnQgeyBUcmVlTm9kZSwgbGV2ZWxzMnRyZWUsIHRyZWUybGlzdCB9IGZyb20gJ0Bzb2xhci1hbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ2F0ZWdvcnksIENoYW5uZWwgfSBmcm9tICdAc29sYXIta2l0L3BsYW5ldHMvZWFydGgnO1xuaW1wb3J0IHsgR2VuZGVyIH0gZnJvbSAnQHNvbGFyLWtpdC9wbGFuZXRzL3N1bic7XG5pbXBvcnQgeyBLaW5kT3JLZXkgfSBmcm9tICcuL3R5cGluZyc7XG5cbmV4cG9ydCBmdW5jdGlvbiBjZWxscGhvbmVUZXh0KGtleSA9ICdjZWxscGhvbmUnLCBsZW5ndGggPSAxMSk6IFVuc3RhYmxlQnVpbGRlcjxUZXh0Q29udHJvbFNjaGVtYSwgS2luZE9yS2V5IHwgJ3R5cGUnIHwgJ2xlbmd0aCc+IHtcbiAgcmV0dXJuIHRleHQoa2V5KS50eXBlKCd0ZWwnKS5sZW5ndGgobGVuZ3RoKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGludGVnZXIoa2V5OiBTaW5nbGVTY2hlbWFLZXkpOiBVbnN0YWJsZUJ1aWxkZXI8TnVtYmVyQ29udHJvbFNjaGVtYSwgS2luZE9yS2V5IHwgJ3ByZWNpc2lvbic+IHtcbiAgcmV0dXJuIG51bWJlcihrZXkpLnByZWNpc2lvbigwKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGVuYWJsZWRUb2dnbGUoa2V5OiBTaW5nbGVTY2hlbWFLZXkgPSAnZW5hYmxlZCcsIGRlZmF1bHRWYWx1ZSA9IHRydWUpOiBVbnN0YWJsZUJ1aWxkZXI8VG9nZ2xlQ29udHJvbFNjaGVtYSwgS2luZE9yS2V5IHwgJ3BsYWNlaG9sZGVyJyB8ICdkZWZhdWx0VmFsdWUnPiB7XG4gIHJldHVybiB0b2dnbGUoa2V5KS5wbGFjZWhvbGRlcihbJ+acieaViCcsICfml6DmlYgnXSkuZGVmYXVsdFZhbHVlKGRlZmF1bHRWYWx1ZSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBmaW5pc2hlZFRvZ2dsZShrZXk6IFNpbmdsZVNjaGVtYUtleSA9ICdmaW5pc2hlZCcsIGRlZmF1bHRWYWx1ZSA9IGZhbHNlKTogVW5zdGFibGVCdWlsZGVyPFRvZ2dsZUNvbnRyb2xTY2hlbWEsIEtpbmRPcktleSB8ICdwbGFjZWhvbGRlcicgfCAnZGVmYXVsdFZhbHVlJz4ge1xuICByZXR1cm4gdG9nZ2xlKGtleSkucGxhY2Vob2xkZXIoWyflt7LlrozmiJAnLCAn5pyq5a6M5oiQJ10pLmRlZmF1bHRWYWx1ZShkZWZhdWx0VmFsdWUpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2VuZGVyUmFkaW9Hcm91cChrZXkgPSAnZ2VuZGVyJyk6IFVuc3RhYmxlQnVpbGRlcjxSYWRpb0dyb3VwQ29udHJvbFNjaGVtYSwgS2luZE9yS2V5IHwgJ29wdGlvbnMnPiB7XG4gIHJldHVybiByYWRpb0dyb3VwKGtleSkub3B0aW9ucyhbXG4gICAgeyBsYWJlbDogJ+WlsycsIHZhbHVlOiBHZW5kZXIuV29tYW4gfSxcbiAgICB7IGxhYmVsOiAn55S3JywgdmFsdWU6IEdlbmRlci5NYW4gfVxuICBdKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNhdGVnb3J5Q2FzY2FkZXIoa2V5OiBTY2hlbWFLZXksIGNoYW5uZWxzOiBDaGFubmVsW10sIGNhdGVnb3JpZXM6IENhdGVnb3J5W10pOiBVbnN0YWJsZUJ1aWxkZXI8Q2FzY2FkZXJDb250cm9sU2NoZW1hLCBLaW5kT3JLZXkgfCAnb3B0aW9ucycgfCAndHJpZ2dlcicgfCAnY29uZmlnJyB8ICdtYXBwZXInPiB7XG4gIHJldHVybiBlbnRpdHlDYXNjYWRlcihrZXkpLm9wdGlvbnMobGV2ZWxzMnRyZWUoW2NoYW5uZWxzLCBjYXRlZ29yaWVzXSwgJ2NoYW5uZWwnKSk7XG59XG5cbi8qKlxuICog6YCa55So55qE5a6e5L2T5aSa6YCJ5qGGXG4gKlxuICog5bey57uP6YWN572u5LqGIGxhYmVsUHJvcGVydHk6ICdmdWxsTmFtZScsIHZhbHVlUHJvcGVydHk6ICdpZCdcbiAqIEBwYXJhbSBrZXlcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGVudGl0eUNoZWNrYm94R3JvdXAoa2V5OiBzdHJpbmcpOiBVbnN0YWJsZUJ1aWxkZXI8Q2hlY2tib3hHcm91cENvbnRyb2xTY2hlbWEsIEtpbmRPcktleSB8ICdjb25maWcnPiB7XG4gIHJldHVybiBjaGVja2JveEdyb3VwKGtleSkuY29uZmlnKHsgbGFiZWxQcm9wZXJ0eTogJ2Z1bGxOYW1lJywgdmFsdWVQcm9wZXJ0eTogJ2lkJyB9KTtcbn1cblxuLyoqXG4gKiDpgJrnlKjnmoTlrp7kvZPljZXpgInmoYZcbiAqXG4gKiDlt7Lnu4/phY3nva7kuoYgbGFiZWxQcm9wZXJ0eTogJ2Z1bGxOYW1lJywgdmFsdWVQcm9wZXJ0eTogJ2lkJ1xuICogQHBhcmFtIGtleVxuICovXG5leHBvcnQgZnVuY3Rpb24gZW50aXR5UmFkaW9Hcm91cChrZXk6IHN0cmluZyk6IFVuc3RhYmxlQnVpbGRlcjxSYWRpb0dyb3VwQ29udHJvbFNjaGVtYSwgS2luZE9yS2V5IHwgJ2NvbmZpZyc+IHtcbiAgcmV0dXJuIHJhZGlvR3JvdXAoa2V5KS5jb25maWcoeyBsYWJlbFByb3BlcnR5OiAnZnVsbE5hbWUnLCB2YWx1ZVByb3BlcnR5OiAnaWQnIH0pO1xufVxuXG4vKipcbiAqIOmAmueUqOeahOWunuS9k+mAieaLqeWZqFxuICpcbiAqIOW3sue7j+mFjee9ruS6hiBsYWJlbFByb3BlcnR5OiAnZnVsbE5hbWUnLCB2YWx1ZVByb3BlcnR5OiAnaWQnXG4gKiBAcGFyYW0ga2V5XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBlbnRpdHlTZWxlY3Qoa2V5OiBTaW5nbGVTY2hlbWFLZXkpOiBVbnN0YWJsZUJ1aWxkZXI8U2VsZWN0Q29udHJvbFNjaGVtYSwgS2luZE9yS2V5IHwgJ2NvbmZpZyc+IHtcbiAgcmV0dXJuIHNlbGVjdChrZXkpLmNvbmZpZyh7IGxhYmVsUHJvcGVydHk6ICdmdWxsTmFtZScsIHZhbHVlUHJvcGVydHk6ICdpZCcgfSk7XG59XG5cbi8qKlxuICog6YCa55So55qE5a6e5L2T6IGU57qn6YCJ5oup5ZmoXG4gKlxuICogLSDlpJrlrZfmrrXmqKHlvI/kuIvkuI3mlK/mjIHku6XkuIvpgInpobnvvJpcbiAqICAgLSDkuI3mlK/mjIHkvb/nlKjlh73mlbDkvZzkuLogb3B0aW9uc1xuICogICAtIOS4jeaUr+aMgSBmZXRjaE9wdGlvbnMg6YCJ6aG5XG4gKlxuICogb3B0aW9ucyDpgInpobnlj6/ku6Xkvb/nlKggYGxpc3QydHJlZSgpYCDmiJYgYGxldmVsczJ0cmVlKClgIOadpeaehOmAoFxuICpcbiAqIEBwYXJhbSBrZXlcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGVudGl0eUNhc2NhZGVyKGtleTogU2NoZW1hS2V5KTogVW5zdGFibGVCdWlsZGVyPENhc2NhZGVyQ29udHJvbFNjaGVtYSwgS2luZE9yS2V5IHwgJ3RyaWdnZXInIHwgJ2NvbmZpZycgfCAnbWFwcGVyJz4ge1xuICBsZXQgbGlzdDogVHJlZU5vZGVbXTtcblxuICByZXR1cm4gY2FzY2FkZXIoa2V5KVxuICAgIC50cmlnZ2VyKCdob3ZlcicpXG4gICAgLm1hcHBlcih7XG4gICAgICBwYXJzZXI6ICh2YWx1ZTogVHJlZU5vZGVbJ2lkJ10gfCBUcmVlTm9kZVsnaWQnXVtdIHwgbnVsbCwgc2NoZW1hKSA9PiB7XG4gICAgICAgIGlmICghdmFsdWUpIHJldHVybiBudWxsO1xuXG4gICAgICAgIC8vIOWmguaenOi+k+WFpeeahOaYr+aVsOe7hO+8jOWImeivtOaYjuW9k+WJjeaYr+WkmuWtl+auteaooeW8j++8jOS4jemcgOimgeWBmuWkhOeQhlxuICAgICAgICBpZiAoQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHJldHVybiB2YWx1ZTtcblxuICAgICAgICAvLyDlpoLmnpzovpPlhaXnmoTmmK/lj7blrZDoioLngrnvvIzmiJHku6zpnIDopoHovazkuLogW+eItuiKgueCuSwgLi4uLCDlj7blrZDoioLngrldXG4gICAgICAgIGxpc3QgPz89IHRyZWUybGlzdCgoc2NoZW1hIGFzIENhc2NhZGVyQ29udHJvbFNjaGVtYSkub3B0aW9ucyBhcyBUcmVlTm9kZVtdKTtcbiAgICAgICAgLy8g5om+5Yiw6YCJ5Lit55qE5Y+25a2Q6IqC54K5XG4gICAgICAgIGxldCBub2RlID0gbGlzdC5maW5kKG5vZGUgPT4gbm9kZS5pZCA9PT0gdmFsdWUgJiYgbm9kZS5pc0xlYWYpO1xuXG4gICAgICAgIGNvbnN0IGxldmVscyA9IFtdO1xuXG4gICAgICAgIHdoaWxlIChub2RlKSB7XG4gICAgICAgICAgbGV2ZWxzLnVuc2hpZnQobm9kZS5pZCk7XG4gICAgICAgICAgbm9kZSA9IG5vZGUucGFyZW50O1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIGxldmVscztcbiAgICAgIH0sXG4gICAgICBmb3JtYXR0ZXI6IHZhbHVlID0+IHtcbiAgICAgICAgLy8g5aSa5a2X5q615qih5byP77yM5LiN6ZyA6KaB5aSE55CGXG4gICAgICAgIGlmIChBcnJheS5pc0FycmF5KGtleSkpIHJldHVybiB2YWx1ZTtcblxuICAgICAgICAvLyDovpPlh7rnmoTmmK/oioLngrnmlbDnu4TvvIzmiJHku6zlj6ropoHlj7blrZDoioLngrlcbiAgICAgICAgcmV0dXJuIHZhbHVlPy5bdmFsdWUubGVuZ3RoIC0gMV07XG4gICAgICB9XG4gICAgfSlcbiAgICAuY29uZmlnKHsgbGFiZWxQcm9wZXJ0eTogJ2Z1bGxOYW1lJywgdmFsdWVQcm9wZXJ0eTogJ2lkJyB9KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGRhdGV0aW1lUGlja2VyKGtleTogc3RyaW5nLCBmb3JtYXQgPSAneXl5eS1NTS1kZCBISDptbScpOiBVbnN0YWJsZUJ1aWxkZXI8RGF0ZVBpY2tlckNvbnRyb2xTY2hlbWEsIEtpbmRPcktleSB8ICd0aW1lJyB8ICdmb3JtYXQnPiB7XG4gIHJldHVybiBkYXRlUGlja2VyKGtleSlcbiAgICAudGltZSh7IG56Rm9ybWF0OiAnSEg6bW0nIH0pXG4gICAgLmZvcm1hdChmb3JtYXQpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZGF0ZXRpbWVSYW5nZVBpY2tlcihrZXk6IFNjaGVtYUtleSwgZm9ybWF0ID0gJ3l5eXktTU0tZGQgSEg6bW0nKTogVW5zdGFibGVCdWlsZGVyPERhdGVSYW5nZVBpY2tlckNvbnRyb2xTY2hlbWEsIEtpbmRPcktleSB8ICd0aW1lJyB8ICdmb3JtYXQnPiB7XG4gIHJldHVybiBkYXRlUmFuZ2VQaWNrZXIoa2V5KVxuICAgIC50aW1lKHsgbnpGb3JtYXQ6ICdISDptbScgfSlcbiAgICAuZm9ybWF0KGZvcm1hdCk7XG59XG4iXX0=
|
|
70
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udHJvbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy91aS16b3Jyby9mbHVlbnQtZm9ybS9jb250cm9scy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQWdMLFFBQVEsRUFBRSxVQUFVLEVBQUUsZUFBZSxFQUFFLFdBQVcsRUFBRSxVQUFVLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3hTLE9BQU8sRUFBWSxXQUFXLEVBQUUsU0FBUyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFJbkUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sVUFBVSxDQUFDO0FBRzdDLE1BQU0sVUFBVSxjQUFjLENBQUMsR0FBRyxHQUFHLFdBQVcsRUFBRSxNQUFNLEdBQUcsRUFBRTtJQUMzRCxPQUFPLFNBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0FBQ25ELENBQUM7QUFFRCxNQUFNLFVBQVUsWUFBWSxDQUFDLEdBQW9CO0lBQy9DLE9BQU8sV0FBVyxDQUFDLEdBQUcsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUN2QyxDQUFDO0FBRUQsTUFBTSxVQUFVLGFBQWEsQ0FBQyxNQUF1QixTQUFTLEVBQUUsWUFBWSxHQUFHLElBQUk7SUFDakYsT0FBTyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsV0FBVyxDQUFDLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLFlBQVksQ0FBQyxDQUFDO0FBQzFFLENBQUM7QUFFRCxNQUFNLFVBQVUsY0FBYyxDQUFDLE1BQXVCLFVBQVUsRUFBRSxZQUFZLEdBQUcsS0FBSztJQUNwRixPQUFPLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxXQUFXLENBQUMsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsWUFBWSxDQUFDLENBQUM7QUFDNUUsQ0FBQztBQUVELE1BQU0sVUFBVSxnQkFBZ0IsQ0FBQyxHQUFHLEdBQUcsUUFBUTtJQUM3QyxPQUFPLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxPQUFPLENBQUM7UUFDN0IsRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFLEtBQUssc0JBQWMsRUFBRTtRQUNuQyxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUUsS0FBSyxvQkFBWSxFQUFFO0tBQ2xDLENBQUMsQ0FBQztBQUNMLENBQUM7QUFFRCxNQUFNLFVBQVUsZ0JBQWdCLENBQUMsR0FBb0IsRUFBRSxRQUFtQixFQUFFLFVBQXNCO0lBQ2hHLE9BQU8sWUFBWSxDQUFDLEdBQUcsQ0FBQyxDQUFDLE9BQU8sQ0FDOUIsV0FBVyxDQUNUO1FBQ0UsaUJBQWlCLENBQUMsUUFBZ0UsQ0FBQztRQUNuRixpQkFBaUIsQ0FBQyxVQUFVLENBQUM7S0FDOUIsRUFDRCxFQUFFLEVBQUUsRUFBRSxPQUFPLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxDQUNoQyxDQUNGLENBQUM7QUFDSixDQUFDO0FBRUQ7Ozs7OztHQU1HO0FBQ0gsTUFBTSxVQUFVLFlBQVksQ0FBQyxHQUFvQjtJQUMvQyxJQUFJLElBQXdCLENBQUM7SUFFN0IsT0FBTyxRQUFRLENBQUMsR0FBRyxDQUFDO1NBQ2pCLE9BQU8sQ0FBQyxPQUFPLENBQUM7U0FDaEIsTUFBTSxDQUFDO1FBQ04sTUFBTSxFQUFFLENBQUMsS0FBdUMsRUFBRSxNQUFNLEVBQUUsRUFBRTtZQUMxRCxJQUFJLENBQUMsS0FBSztnQkFBRSxPQUFPLElBQUksQ0FBQztZQUV4QixxQ0FBcUM7WUFDckMsSUFBSSxLQUFLLFNBQVMsQ0FBRSxNQUFnQyxDQUFDLE9BQXVDLENBQUMsQ0FBQztZQUM5RixZQUFZO1lBQ1osSUFBSSxJQUFJLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxLQUFLLEtBQUssS0FBSyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFFckcsTUFBTSxNQUFNLEdBQUcsRUFBRSxDQUFDO1lBRWxCLE9BQU8sSUFBSSxFQUFFLENBQUM7Z0JBQ1osTUFBTSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQzNCLElBQUksR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDO1lBQ3JCLENBQUM7WUFFRCxPQUFPLE1BQU0sQ0FBQztRQUNoQixDQUFDO1FBQ0QsU0FBUyxFQUFFLEtBQUssQ0FBQyxFQUFFO1lBQ2pCLG9CQUFvQjtZQUNwQixPQUFPLEtBQUssRUFBRSxDQUFDLEtBQUssQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDbkMsQ0FBQztLQUNGLENBQUMsQ0FBQTtBQUNOLENBQUM7QUFFRCxNQUFNLFVBQVUsY0FBYyxDQUFDLEdBQVcsRUFBRSxNQUFNLEdBQUcsa0JBQWtCO0lBQ3JFLE9BQU8sVUFBVSxDQUFDLEdBQUcsQ0FBQztTQUNuQixJQUFJLENBQUMsRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLENBQUM7U0FDM0IsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0FBQ3BCLENBQUM7QUFFRCxNQUFNLFVBQVUsbUJBQW1CLENBQUMsR0FBYyxFQUFFLE1BQU0sR0FBRyxrQkFBa0I7SUFDN0UsT0FBTyxlQUFlLENBQUMsR0FBRyxDQUFDO1NBQ3hCLElBQUksQ0FBQyxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUUsQ0FBQztTQUMzQixNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7QUFDcEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFNjaGVtYUtleSwgU2luZ2xlU2NoZW1hS2V5LCBVbnN0YWJsZUJ1aWxkZXIgfSBmcm9tICdAZmx1ZW50LWZvcm0vY29yZSc7XG5pbXBvcnQgeyBDYXNjYWRlckNvbnRyb2xTY2hlbWEsIERhdGVQaWNrZXJDb250cm9sU2NoZW1hLCBEYXRlUmFuZ2VQaWNrZXJDb250cm9sU2NoZW1hLCBOdW1iZXJGaWVsZENvbnRyb2xTY2hlbWEsIFJhZGlvR3JvdXBDb250cm9sU2NoZW1hLCBUZXh0RmllbGRDb250cm9sU2NoZW1hLCBUb2dnbGVDb250cm9sU2NoZW1hLCBjYXNjYWRlciwgZGF0ZVBpY2tlciwgZGF0ZVJhbmdlUGlja2VyLCBudW1iZXJGaWVsZCwgcmFkaW9Hcm91cCwgdGV4dEZpZWxkLCB0b2dnbGUgfSBmcm9tICdAZmx1ZW50LWZvcm0vdWktem9ycm8nO1xuaW1wb3J0IHsgVHJlZU5vZGUsIGxldmVsczJ0cmVlLCB0cmVlMmxpc3QgfSBmcm9tICdAc29sYXIta2l0L2NvcmUnO1xuaW1wb3J0IHsgQ2F0ZWdvcnksIENoYW5uZWwgfSBmcm9tICdAc29sYXIta2l0L3BsYW5ldHMvZWFydGgnO1xuaW1wb3J0IHsgR2VuZGVyIH0gZnJvbSAnQHNvbGFyLWtpdC9wbGFuZXRzL3N1bic7XG5pbXBvcnQgeyBOekNhc2NhZGVyT3B0aW9uIH0gZnJvbSAnbmctem9ycm8tYW50ZC9jYXNjYWRlcic7XG5pbXBvcnQgeyBlbnRpdGllc1RvT3B0aW9ucyB9IGZyb20gJy4vaGVscGVyJztcbmltcG9ydCB7IEtpbmRPcktleSB9IGZyb20gJy4vdHlwaW5nJztcblxuZXhwb3J0IGZ1bmN0aW9uIGNlbGxwaG9uZUZpZWxkKGtleSA9ICdjZWxscGhvbmUnLCBsZW5ndGggPSAxMSk6IFVuc3RhYmxlQnVpbGRlcjxUZXh0RmllbGRDb250cm9sU2NoZW1hLCBLaW5kT3JLZXkgfCAndHlwZScgfCAnbGVuZ3RoJz4ge1xuICByZXR1cm4gdGV4dEZpZWxkKGtleSkudHlwZSgndGVsJykubGVuZ3RoKGxlbmd0aCk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpbnRlZ2VyRmllbGQoa2V5OiBTaW5nbGVTY2hlbWFLZXkpOiBVbnN0YWJsZUJ1aWxkZXI8TnVtYmVyRmllbGRDb250cm9sU2NoZW1hLCBLaW5kT3JLZXkgfCAncHJlY2lzaW9uJz4ge1xuICByZXR1cm4gbnVtYmVyRmllbGQoa2V5KS5wcmVjaXNpb24oMCk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBlbmFibGVkVG9nZ2xlKGtleTogU2luZ2xlU2NoZW1hS2V5ID0gJ2VuYWJsZWQnLCBkZWZhdWx0VmFsdWUgPSB0cnVlKTogVW5zdGFibGVCdWlsZGVyPFRvZ2dsZUNvbnRyb2xTY2hlbWEsIEtpbmRPcktleSB8ICdwbGFjZWhvbGRlcicgfCAnZGVmYXVsdFZhbHVlJz4ge1xuICByZXR1cm4gdG9nZ2xlKGtleSkucGxhY2Vob2xkZXIoWyfmnInmlYgnLCAn5peg5pWIJ10pLmRlZmF1bHRWYWx1ZShkZWZhdWx0VmFsdWUpO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZmluaXNoZWRUb2dnbGUoa2V5OiBTaW5nbGVTY2hlbWFLZXkgPSAnZmluaXNoZWQnLCBkZWZhdWx0VmFsdWUgPSBmYWxzZSk6IFVuc3RhYmxlQnVpbGRlcjxUb2dnbGVDb250cm9sU2NoZW1hLCBLaW5kT3JLZXkgfCAncGxhY2Vob2xkZXInIHwgJ2RlZmF1bHRWYWx1ZSc+IHtcbiAgcmV0dXJuIHRvZ2dsZShrZXkpLnBsYWNlaG9sZGVyKFsn5bey5a6M5oiQJywgJ+acquWujOaIkCddKS5kZWZhdWx0VmFsdWUoZGVmYXVsdFZhbHVlKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdlbmRlclJhZGlvR3JvdXAoa2V5ID0gJ2dlbmRlcicpOiBVbnN0YWJsZUJ1aWxkZXI8UmFkaW9Hcm91cENvbnRyb2xTY2hlbWEsIEtpbmRPcktleSB8ICdvcHRpb25zJz4ge1xuICByZXR1cm4gcmFkaW9Hcm91cChrZXkpLm9wdGlvbnMoW1xuICAgIHsgbGFiZWw6ICflpbMnLCB2YWx1ZTogR2VuZGVyLldvbWFuIH0sXG4gICAgeyBsYWJlbDogJ+eUtycsIHZhbHVlOiBHZW5kZXIuTWFuIH1cbiAgXSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjYXRlZ29yeUNhc2NhZGVyKGtleTogU2luZ2xlU2NoZW1hS2V5LCBjaGFubmVsczogQ2hhbm5lbFtdLCBjYXRlZ29yaWVzOiBDYXRlZ29yeVtdKTogVW5zdGFibGVCdWlsZGVyPENhc2NhZGVyQ29udHJvbFNjaGVtYTxTaW5nbGVTY2hlbWFLZXk+LCBLaW5kT3JLZXkgfCAnb3B0aW9ucycgfCAndHJpZ2dlcicgfCAnbWFwcGVyJz4ge1xuICByZXR1cm4gbGVhZkNhc2NhZGVyKGtleSkub3B0aW9ucyhcbiAgICBsZXZlbHMydHJlZShcbiAgICAgIFtcbiAgICAgICAgZW50aXRpZXNUb09wdGlvbnMoY2hhbm5lbHMgYXMgeyBpZDogbnVtYmVyLCBmdWxsTmFtZTogc3RyaW5nLCBjaGFubmVsPzogbnVtYmVyIH1bXSksXG4gICAgICAgIGVudGl0aWVzVG9PcHRpb25zKGNhdGVnb3JpZXMpXG4gICAgICBdLFxuICAgICAgeyBpZDogJ3ZhbHVlJywgcGlkOiAnY2hhbm5lbCcgfVxuICAgIClcbiAgKTtcbn1cblxuLyoqXG4gKiDlj7blrZDoioLngrnnuqfogZTpgInmi6nlmahcbiAqXG4gKiBvcHRpb25zIOmAiemhueWPr+S7peS9v+eUqCBgbGlzdDJ0cmVlKClgIOaIliBgbGV2ZWxzMnRyZWUoKWAg5p2l5p6E6YCgXG4gKlxuICogQHBhcmFtIGtleVxuICovXG5leHBvcnQgZnVuY3Rpb24gbGVhZkNhc2NhZGVyKGtleTogU2luZ2xlU2NoZW1hS2V5KTogVW5zdGFibGVCdWlsZGVyPENhc2NhZGVyQ29udHJvbFNjaGVtYTxTaW5nbGVTY2hlbWFLZXk+LCBLaW5kT3JLZXkgfCAndHJpZ2dlcicgfCAnbWFwcGVyJz4ge1xuICBsZXQgbGlzdDogTnpDYXNjYWRlck9wdGlvbltdO1xuXG4gIHJldHVybiBjYXNjYWRlcihrZXkpXG4gICAgLnRyaWdnZXIoJ2hvdmVyJylcbiAgICAubWFwcGVyKHtcbiAgICAgIHBhcnNlcjogKHZhbHVlOiBOekNhc2NhZGVyT3B0aW9uWyd2YWx1ZSddIHwgbnVsbCwgc2NoZW1hKSA9PiB7XG4gICAgICAgIGlmICghdmFsdWUpIHJldHVybiBudWxsO1xuXG4gICAgICAgIC8vIOWmguaenOi+k+WFpeeahOaYr+WPtuWtkOiKgueCue+8jOaIkeS7rOmcgOimgei9rOS4uiBb54i26IqC54K5LCAuLi4sIOWPtuWtkOiKgueCuV1cbiAgICAgICAgbGlzdCA/Pz0gdHJlZTJsaXN0KChzY2hlbWEgYXMgQ2FzY2FkZXJDb250cm9sU2NoZW1hKS5vcHRpb25zIGFzIFRyZWVOb2RlPE56Q2FzY2FkZXJPcHRpb24+W10pO1xuICAgICAgICAvLyDmib7liLDpgInkuK3nmoTlj7blrZDoioLngrlcbiAgICAgICAgbGV0IG5vZGUgPSBsaXN0LmZpbmQobm9kZSA9PiBub2RlLnZhbHVlID09PSB2YWx1ZSAmJiAoIW5vZGUuY2hpbGRyZW4gfHwgbm9kZS5jaGlsZHJlbi5sZW5ndGggPT09IDApKTtcblxuICAgICAgICBjb25zdCBsZXZlbHMgPSBbXTtcblxuICAgICAgICB3aGlsZSAobm9kZSkge1xuICAgICAgICAgIGxldmVscy51bnNoaWZ0KG5vZGUudmFsdWUpO1xuICAgICAgICAgIG5vZGUgPSBub2RlLnBhcmVudDtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiBsZXZlbHM7XG4gICAgICB9LFxuICAgICAgZm9ybWF0dGVyOiB2YWx1ZSA9PiB7XG4gICAgICAgIC8vIOi+k+WHuueahOaYr+iKgueCueaVsOe7hO+8jOaIkeS7rOWPquimgeWPtuWtkOiKgueCuVxuICAgICAgICByZXR1cm4gdmFsdWU/Llt2YWx1ZS5sZW5ndGggLSAxXTtcbiAgICAgIH1cbiAgICB9KVxufVxuXG5leHBvcnQgZnVuY3Rpb24gZGF0ZXRpbWVQaWNrZXIoa2V5OiBzdHJpbmcsIGZvcm1hdCA9ICd5eXl5LU1NLWRkIEhIOm1tJyk6IFVuc3RhYmxlQnVpbGRlcjxEYXRlUGlja2VyQ29udHJvbFNjaGVtYSwgS2luZE9yS2V5IHwgJ3RpbWUnIHwgJ2Zvcm1hdCc+IHtcbiAgcmV0dXJuIGRhdGVQaWNrZXIoa2V5KVxuICAgIC50aW1lKHsgbnpGb3JtYXQ6ICdISDptbScgfSlcbiAgICAuZm9ybWF0KGZvcm1hdCk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBkYXRldGltZVJhbmdlUGlja2VyKGtleTogU2NoZW1hS2V5LCBmb3JtYXQgPSAneXl5eS1NTS1kZCBISDptbScpOiBVbnN0YWJsZUJ1aWxkZXI8RGF0ZVJhbmdlUGlja2VyQ29udHJvbFNjaGVtYSwgS2luZE9yS2V5IHwgJ3RpbWUnIHwgJ2Zvcm1hdCc+IHtcbiAgcmV0dXJuIGRhdGVSYW5nZVBpY2tlcihrZXkpXG4gICAgLnRpbWUoeyBuekZvcm1hdDogJ0hIOm1tJyB9KVxuICAgIC5mb3JtYXQoZm9ybWF0KTtcbn1cbiJdfQ==
|
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
import { form } from '@fluent-form/core';
|
|
2
|
-
import { headless } from '@fluent-form/ui-zorro';
|
|
1
|
+
import { form, headless } from '@fluent-form/core';
|
|
3
2
|
/**
|
|
4
3
|
* 实体表单
|
|
5
4
|
*
|
|
@@ -12,4 +11,4 @@ export function entityForm(composeFn) {
|
|
|
12
11
|
composeFn();
|
|
13
12
|
});
|
|
14
13
|
}
|
|
15
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
14
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL3VpLXpvcnJvL2ZsdWVudC1mb3JtL2Zvcm0udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUduRDs7Ozs7R0FLRztBQUNILE1BQU0sVUFBVSxVQUFVLENBQUMsU0FBMEI7SUFDbkQsT0FBTyxJQUFJLENBQUMsR0FBRyxFQUFFO1FBQ2YsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ2YsU0FBUyxFQUFFLENBQUM7SUFDZCxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBmb3JtLCBoZWFkbGVzcyB9IGZyb20gJ0BmbHVlbnQtZm9ybS9jb3JlJztcbmltcG9ydCB7IE56U2FmZUFueSB9IGZyb20gJ25nLXpvcnJvLWFudGQvY29yZS90eXBlcyc7XG5cbi8qKlxuICog5a6e5L2T6KGo5Y2VXG4gKlxuICog5YaF572u5LqG5LiA5LiqIEhlYWRsZXNzIElEIOaOp+S7tuWbvuekuu+8mmBoZWFkbGVzcygnaWQnKWBcbiAqIEBwYXJhbSBzY2hlbWFzXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBlbnRpdHlGb3JtKGNvbXBvc2VGbjogKCkgPT4gTnpTYWZlQW55KSB7XG4gIHJldHVybiBmb3JtKCgpID0+IHtcbiAgICBoZWFkbGVzcygnaWQnKTtcbiAgICBjb21wb3NlRm4oKTtcbiAgfSk7XG59XG4iXX0=
|
|
@@ -1,4 +1,7 @@
|
|
|
1
1
|
export function entityToOption(entity) {
|
|
2
|
-
return { label: entity.fullName, value: entity.id };
|
|
2
|
+
return { label: entity.fullName, value: entity.id, ...entity };
|
|
3
3
|
}
|
|
4
|
-
|
|
4
|
+
export function entitiesToOptions(entities) {
|
|
5
|
+
return entities.map(entity => entityToOption(entity));
|
|
6
|
+
}
|
|
7
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVscGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvdWktem9ycm8vZmx1ZW50LWZvcm0vaGVscGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE1BQU0sVUFBVSxjQUFjLENBQXNELE1BQVM7SUFDM0YsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLENBQUMsUUFBUSxFQUFFLEtBQUssRUFBRSxNQUFNLENBQUMsRUFBRSxFQUFFLEdBQUcsTUFBTSxFQUFFLENBQUM7QUFDakUsQ0FBQztBQUVELE1BQU0sVUFBVSxpQkFBaUIsQ0FBc0QsUUFBYTtJQUNsRyxPQUFPLFFBQVEsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztBQUN4RCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiXG5leHBvcnQgZnVuY3Rpb24gZW50aXR5VG9PcHRpb248VCBleHRlbmRzIHsgaWQ6IHN0cmluZyB8IG51bWJlciwgZnVsbE5hbWU6IHN0cmluZyB9PihlbnRpdHk6IFQpIHtcbiAgcmV0dXJuIHsgbGFiZWw6IGVudGl0eS5mdWxsTmFtZSwgdmFsdWU6IGVudGl0eS5pZCwgLi4uZW50aXR5IH07XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBlbnRpdGllc1RvT3B0aW9uczxUIGV4dGVuZHMgeyBpZDogc3RyaW5nIHwgbnVtYmVyLCBmdWxsTmFtZTogc3RyaW5nIH0+KGVudGl0aWVzOiBUW10pIHtcbiAgcmV0dXJuIGVudGl0aWVzLm1hcChlbnRpdHkgPT4gZW50aXR5VG9PcHRpb24oZW50aXR5KSk7XG59XG4iXX0=
|
|
@@ -107,6 +107,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
107
107
|
class Searcher {
|
|
108
108
|
constructor() {
|
|
109
109
|
this.model = {};
|
|
110
|
+
// eslint-disable-next-line @typescript-eslint/no-empty-function
|
|
111
|
+
this.schema = form(() => { });
|
|
110
112
|
this.pageSize = 10;
|
|
111
113
|
this.pageNo = 1;
|
|
112
114
|
}
|
|
@@ -131,20 +133,26 @@ class CrudPage {
|
|
|
131
133
|
this.message = inject(MessageService);
|
|
132
134
|
}
|
|
133
135
|
/**
|
|
134
|
-
* @deprecated 请使用 {@link
|
|
136
|
+
* @deprecated 请使用 {@link Searcher.pageSize}
|
|
135
137
|
*/
|
|
136
138
|
get pageSize() {
|
|
137
139
|
return this.searcher.pageSize;
|
|
138
140
|
}
|
|
141
|
+
/**
|
|
142
|
+
* @deprecated 请使用 {@link Searcher.pageSize}
|
|
143
|
+
*/
|
|
139
144
|
set pageSize(value) {
|
|
140
145
|
this.searcher.pageSize = value;
|
|
141
146
|
}
|
|
142
147
|
/**
|
|
143
|
-
* @deprecated 请使用 {@link
|
|
148
|
+
* @deprecated 请使用 {@link Searcher.pageNo}
|
|
144
149
|
*/
|
|
145
150
|
get pageNo() {
|
|
146
151
|
return this.searcher.pageNo;
|
|
147
152
|
}
|
|
153
|
+
/**
|
|
154
|
+
* @deprecated 请使用 {@link Searcher.pageNo}
|
|
155
|
+
*/
|
|
148
156
|
set pageNo(value) {
|
|
149
157
|
this.searcher.pageNo = value;
|
|
150
158
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"solar-angular-ui-zorro-crud.mjs","sources":["../../../packages/ui-zorro/crud/editor.ts","../../../packages/ui-zorro/crud/editor-drawer/editor-drawer.component.ts","../../../packages/ui-zorro/crud/editor-drawer/editor-drawer.component.html","../../../packages/ui-zorro/crud/searcher.ts","../../../packages/ui-zorro/crud/page.ts","../../../packages/ui-zorro/crud/solar-angular-ui-zorro-crud.ts"],"sourcesContent":["import { FormGroup } from '@angular/forms';\nimport { AbstractFormGroupSchema, form } from '@fluent-form/core';\nimport { Observable, finalize, tap } from 'rxjs';\n\nexport class Editor<T> {\n private _visible = false;\n /** 模型初始值 */\n originalModel: T = {} as T;\n model: T = {} as T;\n loading = false;\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n schema: AbstractFormGroupSchema = form(() => { });\n /** 是否在保存完之后固定抽屉 */\n pin = false;\n form?: FormGroup;\n\n get visible(): boolean {\n return this._visible;\n }\n\n set visible(value: boolean) {\n // 手动判断一下,因为双向绑定的原因,这里会被设置两次\n if (this._visible !== value) {\n if (!value) {\n this.reset(); // 关闭的时候自动重置\n }\n }\n this._visible = value;\n }\n\n /**\n * 自动控制 loading 状态\n */\n withLoading<X>() {\n this.loading = true;\n return (observable: Observable<X>) => {\n return observable.pipe(\n finalize(() => this.loading = false)\n );\n };\n }\n\n /**\n * next 时自动重置表单 或 收起编辑器\n */\n withAttach<X>() {\n return (observable: Observable<X>) => observable.pipe(\n tap(() => this.pin ? this.reset() : this.dismiss())\n );\n }\n\n /**\n * 呈现编辑器\n */\n present() {\n this.visible = true;\n }\n\n /**\n * 关闭编辑器\n */\n dismiss() {\n this.visible = false;\n }\n\n togglePin() {\n this.pin = !this.pin;\n }\n\n reset() {\n this.fill({} as T);\n }\n\n fill(model: T) {\n this.originalModel = model;\n this.model = model;\n }\n}\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { NzDrawerModule } from 'ng-zorro-antd/drawer';\nimport { NzIconModule } from 'ng-zorro-antd/icon';\nimport { NzSpinModule } from 'ng-zorro-antd/spin';\nimport { NzTypographyModule } from 'ng-zorro-antd/typography';\nimport { Editor } from '../editor';\n\n@Component({\n selector: 'sun-editor-drawer',\n standalone: true,\n imports: [\n NzDrawerModule,\n NzSpinModule,\n NzIconModule,\n NzTypographyModule\n ],\n templateUrl: './editor-drawer.component.html',\n styleUrl: './editor-drawer.component.scss'\n})\nexport class SunEditorDrawer<T extends Record<string, any>> {\n @Input() editor!: Editor<T>;\n @Input() width: string | number = 600;\n // TODO: 有些 model 不一定有 primaryKey,可能是两个 foreignKeys,所以要考虑将 operation 变为一个函数\n // 考虑直接做到 signal 版本里,这里就变成一个 computed fn\n @Input() primaryKey = 'id';\n\n @Output() visibleChange = new EventEmitter<boolean>();\n}\n","<nz-drawer\n nzWrapClassName=\"sun-editor-drawer-wrapper\"\n [nzWidth]=\"width\"\n [nzClosable]=\"false\"\n [nzTitle]=\"editorTitle\"\n [nzFooter]=\"editorFooter\"\n [(nzVisible)]=\"editor.visible\"\n (nzVisibleChange)=\"visibleChange.emit($event)\"\n (nzOnClose)=\"editor.visible = false\"\n>\n <nz-spin *nzDrawerContent [nzSpinning]=\"editor.loading\">\n <ng-content />\n </nz-spin>\n</nz-drawer>\n\n<ng-template #editorTitle>\n <div>{{ editor.model[primaryKey] ? '编辑条目' : '新增条目' }}</div>\n\n <span\n nz-icon\n nzType=\"pushpin\"\n [nzTheme]=\"editor.pin ? 'twotone' : 'outline'\"\n (click)=\"editor.togglePin()\"\n ></span>\n</ng-template>\n\n<ng-template #editorFooter>\n <small nz-typography nzType=\"secondary\">\n 注意:标签上带有\n <span nz-typography nzType=\"danger\" style=\"font-family: SimSun, sans-serif\"\n >*</span\n >\n 符号的项目为必填项\n </small>\n</ng-template>\n","import { FormGroup } from '@angular/forms';\nimport { AbstractFormGroupSchema } from '@fluent-form/core';\n\nexport class Searcher<T> {\n form?: FormGroup;\n model: Partial<T> = {};\n schema!: AbstractFormGroupSchema;\n\n pageSize = 10;\n pageNo = 1;\n\n reset() {\n this.pageNo = 1;\n this.form?.reset({});\n }\n}\n","import { inject } from '@angular/core';\nimport { MessageService } from '@solar-angular/ui-zorro/message';\nimport { finalize, Observable } from 'rxjs';\nimport { Editor } from './editor';\nimport { Searcher } from './searcher';\n\n/**\n * 增删改查页面\n * @template T Searcher 的模型类型\n * @template U Editor 的模型类型,默认为 T\n * @template V Data 的模型类型,默认为 U\n */\nexport abstract class CrudPage<T, U = T, V = U> {\n protected data: V[] = [];\n\n protected loading = false;\n\n protected searcher = new Searcher<T>();\n protected editor = new Editor<U>();\n\n /**\n * @deprecated 请使用 {@link searcher} 的 pageSize 属性\n */\n protected get pageSize() {\n return this.searcher.pageSize;\n }\n protected set pageSize(value) {\n this.searcher.pageSize = value;\n }\n /**\n * @deprecated 请使用 {@link searcher} 的 pageNo 属性\n */\n protected get pageNo() {\n return this.searcher.pageNo;\n }\n protected set pageNo(value) {\n this.searcher.pageNo = value;\n }\n\n readonly message = inject(MessageService);\n\n protected withTableLoading<X>() {\n return (observable: Observable<X>) => {\n this.loading = true;\n return observable.pipe(\n finalize(() => this.loading = false)\n );\n };\n }\n\n /**\n * {@link MessageService.withLoading()} 的快捷方式\n * @param content\n */\n protected withLoading<X>(content?: string) {\n return this.message.withLoading<X>(content);\n }\n\n /**\n * {@link MessageService.withDeleteLoading()} 的快捷方式\n * @param content\n */\n protected withDeleteLoading<X>() {\n return this.message.withDeleteLoading<X>();\n }\n\n /**\n * {@link MessageService.withSaveLoading()} 的快捷方式\n * @param content\n */\n protected withSaveLoading<X>() {\n return this.message.withSaveLoading<X>();\n }\n\n /**\n * 编辑\n * @param entity\n */\n protected edit(entity: U) {\n this.editor.fill(entity);\n this.editor.present();\n }\n}\n\n/**\n * 带分页的增删改查页面\n * @template T Searcher 的模型类型\n * @template U Editor 的模型类型,默认为 T\n * @template V Data 的模型类型,默认为 U\n */\nexport abstract class PagingCrudPage<T, U = T, V = U> extends CrudPage<T, U, V> {\n protected totalSize!: number;\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":"solar-angular-ui-zorro-crud.mjs","sources":["../../../packages/ui-zorro/crud/editor.ts","../../../packages/ui-zorro/crud/editor-drawer/editor-drawer.component.ts","../../../packages/ui-zorro/crud/editor-drawer/editor-drawer.component.html","../../../packages/ui-zorro/crud/searcher.ts","../../../packages/ui-zorro/crud/page.ts","../../../packages/ui-zorro/crud/solar-angular-ui-zorro-crud.ts"],"sourcesContent":["import { FormGroup } from '@angular/forms';\nimport { form } from '@fluent-form/core';\nimport { Observable, finalize, tap } from 'rxjs';\n\nexport class Editor<T> {\n private _visible = false;\n /** 模型初始值 */\n originalModel: T = {} as T;\n model: T = {} as T;\n loading = false;\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n schema = form(() => { });\n /** 是否在保存完之后固定抽屉 */\n pin = false;\n form?: FormGroup;\n\n get visible(): boolean {\n return this._visible;\n }\n\n set visible(value: boolean) {\n // 手动判断一下,因为双向绑定的原因,这里会被设置两次\n if (this._visible !== value) {\n if (!value) {\n this.reset(); // 关闭的时候自动重置\n }\n }\n this._visible = value;\n }\n\n /**\n * 自动控制 loading 状态\n */\n withLoading<X>() {\n this.loading = true;\n return (observable: Observable<X>) => {\n return observable.pipe(\n finalize(() => this.loading = false)\n );\n };\n }\n\n /**\n * next 时自动重置表单 或 收起编辑器\n */\n withAttach<X>() {\n return (observable: Observable<X>) => observable.pipe(\n tap(() => this.pin ? this.reset() : this.dismiss())\n );\n }\n\n /**\n * 呈现编辑器\n */\n present() {\n this.visible = true;\n }\n\n /**\n * 关闭编辑器\n */\n dismiss() {\n this.visible = false;\n }\n\n togglePin() {\n this.pin = !this.pin;\n }\n\n reset() {\n this.fill({} as T);\n }\n\n fill(model: T) {\n this.originalModel = model;\n this.model = model;\n }\n}\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { NzDrawerModule } from 'ng-zorro-antd/drawer';\nimport { NzIconModule } from 'ng-zorro-antd/icon';\nimport { NzSpinModule } from 'ng-zorro-antd/spin';\nimport { NzTypographyModule } from 'ng-zorro-antd/typography';\nimport { Editor } from '../editor';\n\n@Component({\n selector: 'sun-editor-drawer',\n standalone: true,\n imports: [\n NzDrawerModule,\n NzSpinModule,\n NzIconModule,\n NzTypographyModule\n ],\n templateUrl: './editor-drawer.component.html',\n styleUrl: './editor-drawer.component.scss'\n})\nexport class SunEditorDrawer<T extends Record<string, any>> {\n @Input() editor!: Editor<T>;\n @Input() width: string | number = 600;\n // TODO: 有些 model 不一定有 primaryKey,可能是两个 foreignKeys,所以要考虑将 operation 变为一个函数\n // 考虑直接做到 signal 版本里,这里就变成一个 computed fn\n @Input() primaryKey = 'id';\n\n @Output() visibleChange = new EventEmitter<boolean>();\n}\n","<nz-drawer\n nzWrapClassName=\"sun-editor-drawer-wrapper\"\n [nzWidth]=\"width\"\n [nzClosable]=\"false\"\n [nzTitle]=\"editorTitle\"\n [nzFooter]=\"editorFooter\"\n [(nzVisible)]=\"editor.visible\"\n (nzVisibleChange)=\"visibleChange.emit($event)\"\n (nzOnClose)=\"editor.visible = false\"\n>\n <nz-spin *nzDrawerContent [nzSpinning]=\"editor.loading\">\n <ng-content />\n </nz-spin>\n</nz-drawer>\n\n<ng-template #editorTitle>\n <div>{{ editor.model[primaryKey] ? '编辑条目' : '新增条目' }}</div>\n\n <span\n nz-icon\n nzType=\"pushpin\"\n [nzTheme]=\"editor.pin ? 'twotone' : 'outline'\"\n (click)=\"editor.togglePin()\"\n ></span>\n</ng-template>\n\n<ng-template #editorFooter>\n <small nz-typography nzType=\"secondary\">\n 注意:标签上带有\n <span nz-typography nzType=\"danger\" style=\"font-family: SimSun, sans-serif\"\n >*</span\n >\n 符号的项目为必填项\n </small>\n</ng-template>\n","import { FormGroup } from '@angular/forms';\nimport { form } from '@fluent-form/core';\n\nexport class Searcher<T> {\n form?: FormGroup;\n model: Partial<T> = {};\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n schema = form(() => { });\n\n pageSize = 10;\n pageNo = 1;\n\n reset() {\n this.pageNo = 1;\n this.form?.reset({});\n }\n}\n","import { inject } from '@angular/core';\nimport { MessageService } from '@solar-angular/ui-zorro/message';\nimport { finalize, Observable } from 'rxjs';\nimport { Editor } from './editor';\nimport { Searcher } from './searcher';\n\n/**\n * 增删改查页面\n * @template T Searcher 的模型类型\n * @template U Editor 的模型类型,默认为 T\n * @template V Data 的模型类型,默认为 U\n */\nexport abstract class CrudPage<T, U = T, V = U> {\n protected data: V[] = [];\n\n protected loading = false;\n\n protected searcher = new Searcher<T>();\n protected editor = new Editor<U>();\n\n /**\n * @deprecated 请使用 {@link Searcher.pageSize}\n */\n protected get pageSize() {\n return this.searcher.pageSize;\n }\n /**\n * @deprecated 请使用 {@link Searcher.pageSize}\n */\n protected set pageSize(value) {\n this.searcher.pageSize = value;\n }\n /**\n * @deprecated 请使用 {@link Searcher.pageNo}\n */\n protected get pageNo() {\n return this.searcher.pageNo;\n }\n /**\n * @deprecated 请使用 {@link Searcher.pageNo}\n */\n protected set pageNo(value) {\n this.searcher.pageNo = value;\n }\n\n readonly message = inject(MessageService);\n\n protected withTableLoading<X>() {\n return (observable: Observable<X>) => {\n this.loading = true;\n return observable.pipe(\n finalize(() => this.loading = false)\n );\n };\n }\n\n /**\n * {@link MessageService.withLoading()} 的快捷方式\n * @param content\n */\n protected withLoading<X>(content?: string) {\n return this.message.withLoading<X>(content);\n }\n\n /**\n * {@link MessageService.withDeleteLoading()} 的快捷方式\n * @param content\n */\n protected withDeleteLoading<X>() {\n return this.message.withDeleteLoading<X>();\n }\n\n /**\n * {@link MessageService.withSaveLoading()} 的快捷方式\n * @param content\n */\n protected withSaveLoading<X>() {\n return this.message.withSaveLoading<X>();\n }\n\n /**\n * 编辑\n * @param entity\n */\n protected edit(entity: U) {\n this.editor.fill(entity);\n this.editor.present();\n }\n}\n\n/**\n * 带分页的增删改查页面\n * @template T Searcher 的模型类型\n * @template U Editor 的模型类型,默认为 T\n * @template V Data 的模型类型,默认为 U\n */\nexport abstract class PagingCrudPage<T, U = T, V = U> extends CrudPage<T, U, V> {\n protected totalSize!: number;\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { button,
|
|
2
|
-
import { levels2tree, tree2list } from '@solar-
|
|
3
|
-
import { form } from '@fluent-form/core';
|
|
1
|
+
import { button, textField, numberField, toggle, radioGroup, cascader, datePicker, dateRangePicker } from '@fluent-form/ui-zorro';
|
|
2
|
+
import { levels2tree, tree2list } from '@solar-kit/core';
|
|
3
|
+
import { form, headless } from '@fluent-form/core';
|
|
4
4
|
|
|
5
5
|
function searchButton() {
|
|
6
6
|
return button().icon('search').content('查询').type('primary');
|
|
@@ -23,11 +23,18 @@ function submitButton() {
|
|
|
23
23
|
.disabled(({ control }) => control.invalid);
|
|
24
24
|
}
|
|
25
25
|
|
|
26
|
-
function
|
|
27
|
-
return
|
|
26
|
+
function entityToOption(entity) {
|
|
27
|
+
return { label: entity.fullName, value: entity.id, ...entity };
|
|
28
|
+
}
|
|
29
|
+
function entitiesToOptions(entities) {
|
|
30
|
+
return entities.map(entity => entityToOption(entity));
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
function cellphoneField(key = 'cellphone', length = 11) {
|
|
34
|
+
return textField(key).type('tel').length(length);
|
|
28
35
|
}
|
|
29
|
-
function
|
|
30
|
-
return
|
|
36
|
+
function integerField(key) {
|
|
37
|
+
return numberField(key).precision(0);
|
|
31
38
|
}
|
|
32
39
|
function enabledToggle(key = 'enabled', defaultValue = true) {
|
|
33
40
|
return toggle(key).placeholder(['有效', '无效']).defaultValue(defaultValue);
|
|
@@ -42,47 +49,19 @@ function genderRadioGroup(key = 'gender') {
|
|
|
42
49
|
]);
|
|
43
50
|
}
|
|
44
51
|
function categoryCascader(key, channels, categories) {
|
|
45
|
-
return
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
*
|
|
50
|
-
* 已经配置了 labelProperty: 'fullName', valueProperty: 'id'
|
|
51
|
-
* @param key
|
|
52
|
-
*/
|
|
53
|
-
function entityCheckboxGroup(key) {
|
|
54
|
-
return checkboxGroup(key).config({ labelProperty: 'fullName', valueProperty: 'id' });
|
|
55
|
-
}
|
|
56
|
-
/**
|
|
57
|
-
* 通用的实体单选框
|
|
58
|
-
*
|
|
59
|
-
* 已经配置了 labelProperty: 'fullName', valueProperty: 'id'
|
|
60
|
-
* @param key
|
|
61
|
-
*/
|
|
62
|
-
function entityRadioGroup(key) {
|
|
63
|
-
return radioGroup(key).config({ labelProperty: 'fullName', valueProperty: 'id' });
|
|
64
|
-
}
|
|
65
|
-
/**
|
|
66
|
-
* 通用的实体选择器
|
|
67
|
-
*
|
|
68
|
-
* 已经配置了 labelProperty: 'fullName', valueProperty: 'id'
|
|
69
|
-
* @param key
|
|
70
|
-
*/
|
|
71
|
-
function entitySelect(key) {
|
|
72
|
-
return select(key).config({ labelProperty: 'fullName', valueProperty: 'id' });
|
|
52
|
+
return leafCascader(key).options(levels2tree([
|
|
53
|
+
entitiesToOptions(channels),
|
|
54
|
+
entitiesToOptions(categories)
|
|
55
|
+
], { id: 'value', pid: 'channel' }));
|
|
73
56
|
}
|
|
74
57
|
/**
|
|
75
|
-
*
|
|
76
|
-
*
|
|
77
|
-
* - 多字段模式下不支持以下选项:
|
|
78
|
-
* - 不支持使用函数作为 options
|
|
79
|
-
* - 不支持 fetchOptions 选项
|
|
58
|
+
* 叶子节点级联选择器
|
|
80
59
|
*
|
|
81
60
|
* options 选项可以使用 `list2tree()` 或 `levels2tree()` 来构造
|
|
82
61
|
*
|
|
83
62
|
* @param key
|
|
84
63
|
*/
|
|
85
|
-
function
|
|
64
|
+
function leafCascader(key) {
|
|
86
65
|
let list;
|
|
87
66
|
return cascader(key)
|
|
88
67
|
.trigger('hover')
|
|
@@ -90,29 +69,22 @@ function entityCascader(key) {
|
|
|
90
69
|
parser: (value, schema) => {
|
|
91
70
|
if (!value)
|
|
92
71
|
return null;
|
|
93
|
-
// 如果输入的是数组,则说明当前是多字段模式,不需要做处理
|
|
94
|
-
if (Array.isArray(value))
|
|
95
|
-
return value;
|
|
96
72
|
// 如果输入的是叶子节点,我们需要转为 [父节点, ..., 叶子节点]
|
|
97
73
|
list ??= tree2list(schema.options);
|
|
98
74
|
// 找到选中的叶子节点
|
|
99
|
-
let node = list.find(node => node.
|
|
75
|
+
let node = list.find(node => node.value === value && (!node.children || node.children.length === 0));
|
|
100
76
|
const levels = [];
|
|
101
77
|
while (node) {
|
|
102
|
-
levels.unshift(node.
|
|
78
|
+
levels.unshift(node.value);
|
|
103
79
|
node = node.parent;
|
|
104
80
|
}
|
|
105
81
|
return levels;
|
|
106
82
|
},
|
|
107
83
|
formatter: value => {
|
|
108
|
-
// 多字段模式,不需要处理
|
|
109
|
-
if (Array.isArray(key))
|
|
110
|
-
return value;
|
|
111
84
|
// 输出的是节点数组,我们只要叶子节点
|
|
112
85
|
return value?.[value.length - 1];
|
|
113
86
|
}
|
|
114
|
-
})
|
|
115
|
-
.config({ labelProperty: 'fullName', valueProperty: 'id' });
|
|
87
|
+
});
|
|
116
88
|
}
|
|
117
89
|
function datetimePicker(key, format = 'yyyy-MM-dd HH:mm') {
|
|
118
90
|
return datePicker(key)
|
|
@@ -138,10 +110,6 @@ function entityForm(composeFn) {
|
|
|
138
110
|
});
|
|
139
111
|
}
|
|
140
112
|
|
|
141
|
-
function entityToOption(entity) {
|
|
142
|
-
return { label: entity.fullName, value: entity.id };
|
|
143
|
-
}
|
|
144
|
-
|
|
145
113
|
function parseLabel(label) {
|
|
146
114
|
if (typeof label === 'string') {
|
|
147
115
|
return label;
|
|
@@ -203,5 +171,5 @@ function useImprovedPickerPatchers() {
|
|
|
203
171
|
* Generated bundle index. Do not edit.
|
|
204
172
|
*/
|
|
205
173
|
|
|
206
|
-
export { addButton, categoryCascader,
|
|
174
|
+
export { addButton, categoryCascader, cellphoneField, datetimePicker, datetimeRangePicker, enabledToggle, entitiesToOptions, entityForm, entityToOption, finishedToggle, genderRadioGroup, integerField, leafCascader, saveButton, searchButton, submitButton, useAutoPlaceholderPatchers, useImprovedPickerPatchers };
|
|
207
175
|
//# sourceMappingURL=solar-angular-ui-zorro-fluent-form.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"solar-angular-ui-zorro-fluent-form.mjs","sources":["../../../packages/ui-zorro/fluent-form/components.ts","../../../packages/ui-zorro/fluent-form/controls.ts","../../../packages/ui-zorro/fluent-form/form.ts","../../../packages/ui-zorro/fluent-form/helper.ts","../../../packages/ui-zorro/fluent-form/patchers.ts","../../../packages/ui-zorro/fluent-form/solar-angular-ui-zorro-fluent-form.ts"],"sourcesContent":["import { UnstableBuilder } from '@fluent-form/core';\nimport { button, ButtonComponentSchema } from '@fluent-form/ui-zorro';\nimport { KindOrKey } from './typing';\n\nexport function searchButton(): UnstableBuilder<ButtonComponentSchema, KindOrKey | 'icon' | 'content' | 'type'> {\n return button().icon('search').content('查询').type('primary');\n}\n\nexport function addButton(): UnstableBuilder<ButtonComponentSchema, KindOrKey | 'icon' | 'content' | 'type' | 'mode'> {\n return button().icon('plus').content('新增').type('primary').mode('button');\n}\n\nexport function saveButton(): UnstableBuilder<ButtonComponentSchema, KindOrKey | 'content' | 'type' | 'disabled'> {\n return button()\n .content('保存')\n .type('primary')\n .variants({ block: true })\n .disabled(({ control }) => control.invalid) as UnstableBuilder<ButtonComponentSchema, KindOrKey | 'content' | 'type' | 'disabled'>;\n}\n\nexport function submitButton(): UnstableBuilder<ButtonComponentSchema, KindOrKey | 'content' | 'type' | 'disabled'> {\n return button()\n .content('提交')\n .type('primary')\n .variants({ block: true })\n .disabled(({ control }) => control.invalid) as UnstableBuilder<ButtonComponentSchema, KindOrKey | 'content' | 'type' | 'disabled'>;\n}\n","import { SchemaKey, SingleSchemaKey, UnstableBuilder } from '@fluent-form/core';\nimport { CascaderControlSchema, CheckboxGroupControlSchema, DatePickerControlSchema, DateRangePickerControlSchema, NumberControlSchema, RadioGroupControlSchema, SelectControlSchema, TextControlSchema, ToggleControlSchema, cascader, checkboxGroup, datePicker, dateRangePicker, number, radioGroup, select, text, toggle } from '@fluent-form/ui-zorro';\nimport { TreeNode, levels2tree, tree2list } from '@solar-angular/core';\nimport { Category, Channel } from '@solar-kit/planets/earth';\nimport { Gender } from '@solar-kit/planets/sun';\nimport { KindOrKey } from './typing';\n\nexport function cellphoneText(key = 'cellphone', length = 11): UnstableBuilder<TextControlSchema, KindOrKey | 'type' | 'length'> {\n return text(key).type('tel').length(length);\n}\n\nexport function integer(key: SingleSchemaKey): UnstableBuilder<NumberControlSchema, KindOrKey | 'precision'> {\n return number(key).precision(0);\n}\n\nexport function enabledToggle(key: SingleSchemaKey = 'enabled', defaultValue = true): UnstableBuilder<ToggleControlSchema, KindOrKey | 'placeholder' | 'defaultValue'> {\n return toggle(key).placeholder(['有效', '无效']).defaultValue(defaultValue);\n}\n\nexport function finishedToggle(key: SingleSchemaKey = 'finished', defaultValue = false): UnstableBuilder<ToggleControlSchema, KindOrKey | 'placeholder' | 'defaultValue'> {\n return toggle(key).placeholder(['已完成', '未完成']).defaultValue(defaultValue);\n}\n\nexport function genderRadioGroup(key = 'gender'): UnstableBuilder<RadioGroupControlSchema, KindOrKey | 'options'> {\n return radioGroup(key).options([\n { label: '女', value: Gender.Woman },\n { label: '男', value: Gender.Man }\n ]);\n}\n\nexport function categoryCascader(key: SchemaKey, channels: Channel[], categories: Category[]): UnstableBuilder<CascaderControlSchema, KindOrKey | 'options' | 'trigger' | 'config' | 'mapper'> {\n return entityCascader(key).options(levels2tree([channels, categories], 'channel'));\n}\n\n/**\n * 通用的实体多选框\n *\n * 已经配置了 labelProperty: 'fullName', valueProperty: 'id'\n * @param key\n */\nexport function entityCheckboxGroup(key: string): UnstableBuilder<CheckboxGroupControlSchema, KindOrKey | 'config'> {\n return checkboxGroup(key).config({ labelProperty: 'fullName', valueProperty: 'id' });\n}\n\n/**\n * 通用的实体单选框\n *\n * 已经配置了 labelProperty: 'fullName', valueProperty: 'id'\n * @param key\n */\nexport function entityRadioGroup(key: string): UnstableBuilder<RadioGroupControlSchema, KindOrKey | 'config'> {\n return radioGroup(key).config({ labelProperty: 'fullName', valueProperty: 'id' });\n}\n\n/**\n * 通用的实体选择器\n *\n * 已经配置了 labelProperty: 'fullName', valueProperty: 'id'\n * @param key\n */\nexport function entitySelect(key: SingleSchemaKey): UnstableBuilder<SelectControlSchema, KindOrKey | 'config'> {\n return select(key).config({ labelProperty: 'fullName', valueProperty: 'id' });\n}\n\n/**\n * 通用的实体联级选择器\n *\n * - 多字段模式下不支持以下选项:\n * - 不支持使用函数作为 options\n * - 不支持 fetchOptions 选项\n *\n * options 选项可以使用 `list2tree()` 或 `levels2tree()` 来构造\n *\n * @param key\n */\nexport function entityCascader(key: SchemaKey): UnstableBuilder<CascaderControlSchema, KindOrKey | 'trigger' | 'config' | 'mapper'> {\n let list: TreeNode[];\n\n return cascader(key)\n .trigger('hover')\n .mapper({\n parser: (value: TreeNode['id'] | TreeNode['id'][] | null, schema) => {\n if (!value) return null;\n\n // 如果输入的是数组,则说明当前是多字段模式,不需要做处理\n if (Array.isArray(value)) return value;\n\n // 如果输入的是叶子节点,我们需要转为 [父节点, ..., 叶子节点]\n list ??= tree2list((schema as CascaderControlSchema).options as TreeNode[]);\n // 找到选中的叶子节点\n let node = list.find(node => node.id === value && node.isLeaf);\n\n const levels = [];\n\n while (node) {\n levels.unshift(node.id);\n node = node.parent;\n }\n\n return levels;\n },\n formatter: value => {\n // 多字段模式,不需要处理\n if (Array.isArray(key)) return value;\n\n // 输出的是节点数组,我们只要叶子节点\n return value?.[value.length - 1];\n }\n })\n .config({ labelProperty: 'fullName', valueProperty: 'id' });\n}\n\nexport function datetimePicker(key: string, format = 'yyyy-MM-dd HH:mm'): UnstableBuilder<DatePickerControlSchema, KindOrKey | 'time' | 'format'> {\n return datePicker(key)\n .time({ nzFormat: 'HH:mm' })\n .format(format);\n}\n\nexport function datetimeRangePicker(key: SchemaKey, format = 'yyyy-MM-dd HH:mm'): UnstableBuilder<DateRangePickerControlSchema, KindOrKey | 'time' | 'format'> {\n return dateRangePicker(key)\n .time({ nzFormat: 'HH:mm' })\n .format(format);\n}\n","import { form } from '@fluent-form/core';\nimport { headless } from '@fluent-form/ui-zorro';\nimport { NzSafeAny } from 'ng-zorro-antd/core/types';\n\n/**\n * 实体表单\n *\n * 内置了一个 Headless ID 控件图示:`headless('id')`\n * @param schemas\n */\nexport function entityForm(composeFn: () => NzSafeAny) {\n return form(() => {\n headless('id');\n composeFn();\n });\n}\n","import { IdEntity } from '@solar-kit/planets/sun';\n\nexport function entityToOption(entity: IdEntity & { fullName: string }) {\n return { label: entity.fullName, value: entity.id };\n}\n","import { SchemaPatcher } from '@fluent-form/core';\nimport { AbstractZorroControlSchema, Label } from '@fluent-form/ui-zorro';\n\nfunction parseLabel(label: string | Label): string {\n if (typeof label === 'string') {\n return label;\n }\n\n return label.content ?? '';\n}\n\nfunction autoPlaceholder(schema: AbstractZorroControlSchema, action: string) {\n const label = schema['label'];\n\n if (label && typeof label !== 'function') {\n (schema as any)['placeholder'] ??= action + parseLabel(label);\n }\n\n return schema;\n}\n\n/**\n * 为文本框字段自动添加 placeholder\n */\nexport function useAutoPlaceholderPatchers(): SchemaPatcher[] {\n return [\n {\n selector: ['text', 'number'],\n patch: schema => autoPlaceholder(schema, '请输入')\n },\n {\n selector: 'textarea',\n patch: schema => autoPlaceholder(schema, '请填写')\n },\n {\n selector: ['date-picker', 'time-picker', 'select', 'cascader', 'tree-select'],\n patch: schema => autoPlaceholder(schema, '请选择')\n }\n ];\n}\n\n/**\n * 1. 自动为非必填字段添加清除按钮\n * 2. 为选择器添加搜索功能\n */\nexport function useImprovedPickerPatchers(): SchemaPatcher[] {\n return [\n {\n selector: ['date-picker', 'date-range-picker', 'time-picker', 'select', 'cascader', 'tree-select'],\n patch: schema => {\n if (!schema['required']) {\n schema['clearable'] ??= true;\n }\n\n return schema;\n }\n },\n {\n selector: ['select', 'cascader', 'tree-select'],\n patch: schema => {\n schema['searchable'] ??= true;\n\n return schema;\n }\n }\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":"solar-angular-ui-zorro-fluent-form.mjs","sources":["../../../packages/ui-zorro/fluent-form/components.ts","../../../packages/ui-zorro/fluent-form/helper.ts","../../../packages/ui-zorro/fluent-form/controls.ts","../../../packages/ui-zorro/fluent-form/form.ts","../../../packages/ui-zorro/fluent-form/patchers.ts","../../../packages/ui-zorro/fluent-form/solar-angular-ui-zorro-fluent-form.ts"],"sourcesContent":["import { UnstableBuilder } from '@fluent-form/core';\nimport { button, ButtonComponentSchema } from '@fluent-form/ui-zorro';\nimport { KindOrKey } from './typing';\n\nexport function searchButton(): UnstableBuilder<ButtonComponentSchema, KindOrKey | 'icon' | 'content' | 'type'> {\n return button().icon('search').content('查询').type('primary');\n}\n\nexport function addButton(): UnstableBuilder<ButtonComponentSchema, KindOrKey | 'icon' | 'content' | 'type' | 'mode'> {\n return button().icon('plus').content('新增').type('primary').mode('button');\n}\n\nexport function saveButton(): UnstableBuilder<ButtonComponentSchema, KindOrKey | 'content' | 'type' | 'disabled'> {\n return button()\n .content('保存')\n .type('primary')\n .variants({ block: true })\n .disabled(({ control }) => control.invalid) as UnstableBuilder<ButtonComponentSchema, KindOrKey | 'content' | 'type' | 'disabled'>;\n}\n\nexport function submitButton(): UnstableBuilder<ButtonComponentSchema, KindOrKey | 'content' | 'type' | 'disabled'> {\n return button()\n .content('提交')\n .type('primary')\n .variants({ block: true })\n .disabled(({ control }) => control.invalid) as UnstableBuilder<ButtonComponentSchema, KindOrKey | 'content' | 'type' | 'disabled'>;\n}\n","\nexport function entityToOption<T extends { id: string | number, fullName: string }>(entity: T) {\n return { label: entity.fullName, value: entity.id, ...entity };\n}\n\nexport function entitiesToOptions<T extends { id: string | number, fullName: string }>(entities: T[]) {\n return entities.map(entity => entityToOption(entity));\n}\n","import { SchemaKey, SingleSchemaKey, UnstableBuilder } from '@fluent-form/core';\nimport { CascaderControlSchema, DatePickerControlSchema, DateRangePickerControlSchema, NumberFieldControlSchema, RadioGroupControlSchema, TextFieldControlSchema, ToggleControlSchema, cascader, datePicker, dateRangePicker, numberField, radioGroup, textField, toggle } from '@fluent-form/ui-zorro';\nimport { TreeNode, levels2tree, tree2list } from '@solar-kit/core';\nimport { Category, Channel } from '@solar-kit/planets/earth';\nimport { Gender } from '@solar-kit/planets/sun';\nimport { NzCascaderOption } from 'ng-zorro-antd/cascader';\nimport { entitiesToOptions } from './helper';\nimport { KindOrKey } from './typing';\n\nexport function cellphoneField(key = 'cellphone', length = 11): UnstableBuilder<TextFieldControlSchema, KindOrKey | 'type' | 'length'> {\n return textField(key).type('tel').length(length);\n}\n\nexport function integerField(key: SingleSchemaKey): UnstableBuilder<NumberFieldControlSchema, KindOrKey | 'precision'> {\n return numberField(key).precision(0);\n}\n\nexport function enabledToggle(key: SingleSchemaKey = 'enabled', defaultValue = true): UnstableBuilder<ToggleControlSchema, KindOrKey | 'placeholder' | 'defaultValue'> {\n return toggle(key).placeholder(['有效', '无效']).defaultValue(defaultValue);\n}\n\nexport function finishedToggle(key: SingleSchemaKey = 'finished', defaultValue = false): UnstableBuilder<ToggleControlSchema, KindOrKey | 'placeholder' | 'defaultValue'> {\n return toggle(key).placeholder(['已完成', '未完成']).defaultValue(defaultValue);\n}\n\nexport function genderRadioGroup(key = 'gender'): UnstableBuilder<RadioGroupControlSchema, KindOrKey | 'options'> {\n return radioGroup(key).options([\n { label: '女', value: Gender.Woman },\n { label: '男', value: Gender.Man }\n ]);\n}\n\nexport function categoryCascader(key: SingleSchemaKey, channels: Channel[], categories: Category[]): UnstableBuilder<CascaderControlSchema<SingleSchemaKey>, KindOrKey | 'options' | 'trigger' | 'mapper'> {\n return leafCascader(key).options(\n levels2tree(\n [\n entitiesToOptions(channels as { id: number, fullName: string, channel?: number }[]),\n entitiesToOptions(categories)\n ],\n { id: 'value', pid: 'channel' }\n )\n );\n}\n\n/**\n * 叶子节点级联选择器\n *\n * options 选项可以使用 `list2tree()` 或 `levels2tree()` 来构造\n *\n * @param key\n */\nexport function leafCascader(key: SingleSchemaKey): UnstableBuilder<CascaderControlSchema<SingleSchemaKey>, KindOrKey | 'trigger' | 'mapper'> {\n let list: NzCascaderOption[];\n\n return cascader(key)\n .trigger('hover')\n .mapper({\n parser: (value: NzCascaderOption['value'] | null, schema) => {\n if (!value) return null;\n\n // 如果输入的是叶子节点,我们需要转为 [父节点, ..., 叶子节点]\n list ??= tree2list((schema as CascaderControlSchema).options as TreeNode<NzCascaderOption>[]);\n // 找到选中的叶子节点\n let node = list.find(node => node.value === value && (!node.children || node.children.length === 0));\n\n const levels = [];\n\n while (node) {\n levels.unshift(node.value);\n node = node.parent;\n }\n\n return levels;\n },\n formatter: value => {\n // 输出的是节点数组,我们只要叶子节点\n return value?.[value.length - 1];\n }\n })\n}\n\nexport function datetimePicker(key: string, format = 'yyyy-MM-dd HH:mm'): UnstableBuilder<DatePickerControlSchema, KindOrKey | 'time' | 'format'> {\n return datePicker(key)\n .time({ nzFormat: 'HH:mm' })\n .format(format);\n}\n\nexport function datetimeRangePicker(key: SchemaKey, format = 'yyyy-MM-dd HH:mm'): UnstableBuilder<DateRangePickerControlSchema, KindOrKey | 'time' | 'format'> {\n return dateRangePicker(key)\n .time({ nzFormat: 'HH:mm' })\n .format(format);\n}\n","import { form, headless } from '@fluent-form/core';\nimport { NzSafeAny } from 'ng-zorro-antd/core/types';\n\n/**\n * 实体表单\n *\n * 内置了一个 Headless ID 控件图示:`headless('id')`\n * @param schemas\n */\nexport function entityForm(composeFn: () => NzSafeAny) {\n return form(() => {\n headless('id');\n composeFn();\n });\n}\n","import { SchemaPatcher } from '@fluent-form/core';\nimport { AbstractZorroControlSchema, Label } from '@fluent-form/ui-zorro';\n\nfunction parseLabel(label: string | Label): string {\n if (typeof label === 'string') {\n return label;\n }\n\n return label.content ?? '';\n}\n\nfunction autoPlaceholder(schema: AbstractZorroControlSchema, action: string) {\n const label = schema['label'];\n\n if (label && typeof label !== 'function') {\n (schema as any)['placeholder'] ??= action + parseLabel(label);\n }\n\n return schema;\n}\n\n/**\n * 为文本框字段自动添加 placeholder\n */\nexport function useAutoPlaceholderPatchers(): SchemaPatcher[] {\n return [\n {\n selector: ['text', 'number'],\n patch: schema => autoPlaceholder(schema, '请输入')\n },\n {\n selector: 'textarea',\n patch: schema => autoPlaceholder(schema, '请填写')\n },\n {\n selector: ['date-picker', 'time-picker', 'select', 'cascader', 'tree-select'],\n patch: schema => autoPlaceholder(schema, '请选择')\n }\n ];\n}\n\n/**\n * 1. 自动为非必填字段添加清除按钮\n * 2. 为选择器添加搜索功能\n */\nexport function useImprovedPickerPatchers(): SchemaPatcher[] {\n return [\n {\n selector: ['date-picker', 'date-range-picker', 'time-picker', 'select', 'cascader', 'tree-select'],\n patch: schema => {\n if (!schema['required']) {\n schema['clearable'] ??= true;\n }\n\n return schema;\n }\n },\n {\n selector: ['select', 'cascader', 'tree-select'],\n patch: schema => {\n schema['searchable'] ??= true;\n\n return schema;\n }\n }\n ];\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
@@ -1,45 +1,20 @@
|
|
|
1
1
|
import { SchemaKey, SingleSchemaKey, UnstableBuilder } from '@fluent-form/core';
|
|
2
|
-
import { CascaderControlSchema,
|
|
2
|
+
import { CascaderControlSchema, DatePickerControlSchema, DateRangePickerControlSchema, NumberFieldControlSchema, RadioGroupControlSchema, TextFieldControlSchema, ToggleControlSchema } from '@fluent-form/ui-zorro';
|
|
3
3
|
import { Category, Channel } from '@solar-kit/planets/earth';
|
|
4
4
|
import { KindOrKey } from './typing';
|
|
5
|
-
export declare function
|
|
6
|
-
export declare function
|
|
5
|
+
export declare function cellphoneField(key?: string, length?: number): UnstableBuilder<TextFieldControlSchema, KindOrKey | 'type' | 'length'>;
|
|
6
|
+
export declare function integerField(key: SingleSchemaKey): UnstableBuilder<NumberFieldControlSchema, KindOrKey | 'precision'>;
|
|
7
7
|
export declare function enabledToggle(key?: SingleSchemaKey, defaultValue?: boolean): UnstableBuilder<ToggleControlSchema, KindOrKey | 'placeholder' | 'defaultValue'>;
|
|
8
8
|
export declare function finishedToggle(key?: SingleSchemaKey, defaultValue?: boolean): UnstableBuilder<ToggleControlSchema, KindOrKey | 'placeholder' | 'defaultValue'>;
|
|
9
9
|
export declare function genderRadioGroup(key?: string): UnstableBuilder<RadioGroupControlSchema, KindOrKey | 'options'>;
|
|
10
|
-
export declare function categoryCascader(key:
|
|
10
|
+
export declare function categoryCascader(key: SingleSchemaKey, channels: Channel[], categories: Category[]): UnstableBuilder<CascaderControlSchema<SingleSchemaKey>, KindOrKey | 'options' | 'trigger' | 'mapper'>;
|
|
11
11
|
/**
|
|
12
|
-
*
|
|
13
|
-
*
|
|
14
|
-
* 已经配置了 labelProperty: 'fullName', valueProperty: 'id'
|
|
15
|
-
* @param key
|
|
16
|
-
*/
|
|
17
|
-
export declare function entityCheckboxGroup(key: string): UnstableBuilder<CheckboxGroupControlSchema, KindOrKey | 'config'>;
|
|
18
|
-
/**
|
|
19
|
-
* 通用的实体单选框
|
|
20
|
-
*
|
|
21
|
-
* 已经配置了 labelProperty: 'fullName', valueProperty: 'id'
|
|
22
|
-
* @param key
|
|
23
|
-
*/
|
|
24
|
-
export declare function entityRadioGroup(key: string): UnstableBuilder<RadioGroupControlSchema, KindOrKey | 'config'>;
|
|
25
|
-
/**
|
|
26
|
-
* 通用的实体选择器
|
|
27
|
-
*
|
|
28
|
-
* 已经配置了 labelProperty: 'fullName', valueProperty: 'id'
|
|
29
|
-
* @param key
|
|
30
|
-
*/
|
|
31
|
-
export declare function entitySelect(key: SingleSchemaKey): UnstableBuilder<SelectControlSchema, KindOrKey | 'config'>;
|
|
32
|
-
/**
|
|
33
|
-
* 通用的实体联级选择器
|
|
34
|
-
*
|
|
35
|
-
* - 多字段模式下不支持以下选项:
|
|
36
|
-
* - 不支持使用函数作为 options
|
|
37
|
-
* - 不支持 fetchOptions 选项
|
|
12
|
+
* 叶子节点级联选择器
|
|
38
13
|
*
|
|
39
14
|
* options 选项可以使用 `list2tree()` 或 `levels2tree()` 来构造
|
|
40
15
|
*
|
|
41
16
|
* @param key
|
|
42
17
|
*/
|
|
43
|
-
export declare function
|
|
18
|
+
export declare function leafCascader(key: SingleSchemaKey): UnstableBuilder<CascaderControlSchema<SingleSchemaKey>, KindOrKey | 'trigger' | 'mapper'>;
|
|
44
19
|
export declare function datetimePicker(key: string, format?: string): UnstableBuilder<DatePickerControlSchema, KindOrKey | 'time' | 'format'>;
|
|
45
20
|
export declare function datetimeRangePicker(key: SchemaKey, format?: string): UnstableBuilder<DateRangePickerControlSchema, KindOrKey | 'time' | 'format'>;
|
package/fluent-form/form.d.ts
CHANGED
|
@@ -5,4 +5,4 @@ import { NzSafeAny } from 'ng-zorro-antd/core/types';
|
|
|
5
5
|
* 内置了一个 Headless ID 控件图示:`headless('id')`
|
|
6
6
|
* @param schemas
|
|
7
7
|
*/
|
|
8
|
-
export declare function entityForm(composeFn: () => NzSafeAny): import("@
|
|
8
|
+
export declare function entityForm(composeFn: () => NzSafeAny): import("@angular/core").Signal<import("@fluent-form/core").AbstractFormGroupSchema>;
|
package/fluent-form/helper.d.ts
CHANGED
|
@@ -1,7 +1,14 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
export declare function entityToOption<T extends {
|
|
2
|
+
id: string | number;
|
|
3
3
|
fullName: string;
|
|
4
|
-
}): {
|
|
4
|
+
}>(entity: T): {
|
|
5
5
|
label: string;
|
|
6
|
-
value: number;
|
|
7
|
-
};
|
|
6
|
+
value: string | number;
|
|
7
|
+
} & T;
|
|
8
|
+
export declare function entitiesToOptions<T extends {
|
|
9
|
+
id: string | number;
|
|
10
|
+
fullName: string;
|
|
11
|
+
}>(entities: T[]): ({
|
|
12
|
+
label: string;
|
|
13
|
+
value: string | number;
|
|
14
|
+
} & T)[];
|
package/package.json
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@solar-angular/ui-zorro",
|
|
3
|
-
"version": "18.
|
|
3
|
+
"version": "18.3.0",
|
|
4
4
|
"sideEffects": false,
|
|
5
5
|
"publishConfig": {
|
|
6
6
|
"access": "public"
|
|
7
7
|
},
|
|
8
8
|
"dependencies": {
|
|
9
|
-
"@solar-angular/core": "18.
|
|
10
|
-
"@solar-angular/planets": "18.
|
|
11
|
-
"@solar-angular/platform-browser": "18.
|
|
9
|
+
"@solar-angular/core": "18.3.0",
|
|
10
|
+
"@solar-angular/planets": "18.3.0",
|
|
11
|
+
"@solar-angular/platform-browser": "18.3.0",
|
|
12
12
|
"tslib": "^2.3.0"
|
|
13
13
|
},
|
|
14
14
|
"peerDependencies": {
|
|
@@ -17,8 +17,9 @@
|
|
|
17
17
|
"@angular/core": "^18.0.0",
|
|
18
18
|
"@angular/forms": "^18.0.0",
|
|
19
19
|
"@angular/service-worker": "^18.0.0",
|
|
20
|
-
"@
|
|
21
|
-
"@fluent-form/
|
|
20
|
+
"@solar-kit/core": "^1.0.6",
|
|
21
|
+
"@fluent-form/core": ">=0.28.0",
|
|
22
|
+
"@fluent-form/ui-zorro": ">=0.28.0",
|
|
22
23
|
"ng-zorro-antd": "^18.0.0"
|
|
23
24
|
},
|
|
24
25
|
"module": "fesm2022/solar-angular-ui-zorro.mjs",
|
|
@@ -51,18 +52,18 @@
|
|
|
51
52
|
"esm": "./esm2022/fluent-form/solar-angular-ui-zorro-fluent-form.mjs",
|
|
52
53
|
"default": "./fesm2022/solar-angular-ui-zorro-fluent-form.mjs"
|
|
53
54
|
},
|
|
54
|
-
"./message": {
|
|
55
|
-
"types": "./message/index.d.ts",
|
|
56
|
-
"esm2022": "./esm2022/message/solar-angular-ui-zorro-message.mjs",
|
|
57
|
-
"esm": "./esm2022/message/solar-angular-ui-zorro-message.mjs",
|
|
58
|
-
"default": "./fesm2022/solar-angular-ui-zorro-message.mjs"
|
|
59
|
-
},
|
|
60
55
|
"./media-uploader": {
|
|
61
56
|
"types": "./media-uploader/index.d.ts",
|
|
62
57
|
"esm2022": "./esm2022/media-uploader/solar-angular-ui-zorro-media-uploader.mjs",
|
|
63
58
|
"esm": "./esm2022/media-uploader/solar-angular-ui-zorro-media-uploader.mjs",
|
|
64
59
|
"default": "./fesm2022/solar-angular-ui-zorro-media-uploader.mjs"
|
|
65
60
|
},
|
|
61
|
+
"./message": {
|
|
62
|
+
"types": "./message/index.d.ts",
|
|
63
|
+
"esm2022": "./esm2022/message/solar-angular-ui-zorro-message.mjs",
|
|
64
|
+
"esm": "./esm2022/message/solar-angular-ui-zorro-message.mjs",
|
|
65
|
+
"default": "./fesm2022/solar-angular-ui-zorro-message.mjs"
|
|
66
|
+
},
|
|
66
67
|
"./page-forbidden": {
|
|
67
68
|
"types": "./page-forbidden/index.d.ts",
|
|
68
69
|
"esm2022": "./esm2022/page-forbidden/solar-angular-ui-zorro-page-forbidden.mjs",
|