raise-common-lib-new 0.0.15 → 0.0.21
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/assets/language/fr.d.ts +3377 -0
- package/assets/language/ja.d.ts +3351 -0
- package/assets/language/ko.d.ts +3351 -0
- package/assets/language/zh-CN.d.ts +3064 -0
- package/assets/language/zh-TW.d.ts +3354 -0
- package/esm2022/assets/language/fr.mjs +3378 -0
- package/esm2022/assets/language/ja.mjs +3352 -0
- package/esm2022/assets/language/ko.mjs +3352 -0
- package/esm2022/assets/language/zh-CN.mjs +3065 -0
- package/esm2022/assets/language/zh-TW.mjs +3355 -0
- package/esm2022/lib/commentary/constants.mjs +2 -0
- package/esm2022/lib/commentary/index.component.mjs +146 -0
- package/esm2022/lib/common-grid/grid-action/grid-action-item/grid-action-item.component.mjs +44 -0
- package/esm2022/lib/common-grid/grid-action/grid-action.component.mjs +18 -0
- package/esm2022/lib/common-grid/index.component.mjs +52 -30
- package/esm2022/lib/dialog/common-delete-dialog/index.component.mjs +2 -2
- package/esm2022/lib/dialog/common-dialog/index.component.mjs +4 -4
- package/esm2022/lib/form/checkbox-group/index.component.mjs +2 -2
- package/esm2022/lib/form/drawer-form/constants.mjs +10 -0
- package/esm2022/lib/form/drawer-form/drawer-form.component.mjs +336 -0
- package/esm2022/lib/form/encrypted-input/index.component.mjs +35 -0
- package/esm2022/lib/form/radio-group/index.component.mjs +2 -2
- package/esm2022/lib/form/switch-input/index.component.mjs +2 -2
- package/esm2022/lib/form/tag-input/index.component.mjs +31 -11
- package/esm2022/lib/form/toolbar-item/index.component.mjs +56 -0
- package/esm2022/lib/layout/drawer/index.component.mjs +165 -0
- package/esm2022/lib/layout/grid-box/index.component.mjs +67 -0
- package/esm2022/lib/layout/main-container/index.component.mjs +50 -8
- package/esm2022/lib/layout/multi-tab/index.component.mjs +267 -0
- package/esm2022/lib/layout/nav-card-group/constants.mjs +2 -0
- package/esm2022/lib/layout/nav-card-group/index.component.mjs +37 -0
- package/esm2022/lib/layout/page-list/index.component.mjs +73 -0
- package/esm2022/lib/layout/page-tab/index.component.mjs +56 -0
- package/esm2022/lib/layout/rs-aside/index.component.mjs +55 -10
- package/esm2022/lib/layout/rs-footer/index.component.mjs +2 -2
- package/esm2022/lib/layout/rs-header/index.component.mjs +38 -29
- package/esm2022/lib/layout/toolbar/constants.mjs +2 -0
- package/esm2022/lib/layout/toolbar/index.component.mjs +79 -0
- package/esm2022/lib/raise-common-lib.module.mjs +116 -17
- package/esm2022/lib/service/common-function.service.mjs +125 -1
- package/esm2022/lib/service/dialog.service.mjs +5 -5
- package/esm2022/lib/service/drawer.service.mjs +111 -0
- package/esm2022/lib/service/icon-loader.service.mjs +12 -9
- package/esm2022/lib/service/keep-alive.service.mjs +83 -0
- package/esm2022/lib/service/translation.service.mjs +98 -0
- package/esm2022/lib/utils/decorator.mjs +14 -0
- package/esm2022/public-api.mjs +35 -16
- package/fesm2022/raise-common-lib-new.mjs +18952 -538
- package/fesm2022/raise-common-lib-new.mjs.map +1 -1
- package/lib/commentary/constants.d.ts +15 -0
- package/lib/commentary/index.component.d.ts +38 -0
- package/lib/common-grid/grid-action/grid-action-item/grid-action-item.component.d.ts +10 -0
- package/lib/common-grid/grid-action/grid-action.component.d.ts +14 -0
- package/lib/common-grid/index.component.d.ts +8 -5
- package/lib/float-box/index.component.d.ts +2 -2
- package/lib/form/drawer-form/constants.d.ts +34 -0
- package/lib/form/drawer-form/drawer-form.component.d.ts +67 -0
- package/lib/form/encrypted-input/index.component.d.ts +14 -0
- package/lib/form/tag-input/index.component.d.ts +9 -3
- package/lib/form/toolbar-item/index.component.d.ts +17 -0
- package/lib/layout/drawer/index.component.d.ts +45 -0
- package/lib/layout/grid-box/index.component.d.ts +19 -0
- package/lib/layout/main-container/index.component.d.ts +11 -1
- package/lib/layout/multi-tab/index.component.d.ts +53 -0
- package/lib/layout/nav-card-group/constants.d.ts +14 -0
- package/lib/layout/nav-card-group/index.component.d.ts +16 -0
- package/lib/layout/page-list/index.component.d.ts +21 -0
- package/lib/layout/page-tab/index.component.d.ts +18 -0
- package/lib/layout/rs-aside/index.component.d.ts +8 -3
- package/lib/layout/rs-header/index.component.d.ts +12 -12
- package/lib/layout/toolbar/constants.d.ts +8 -0
- package/lib/layout/toolbar/index.component.d.ts +22 -0
- package/lib/raise-common-lib.module.d.ts +48 -34
- package/lib/service/common-function.service.d.ts +11 -0
- package/lib/service/drawer.service.d.ts +46 -0
- package/lib/service/icon-loader.service.d.ts +5 -3
- package/lib/service/keep-alive.service.d.ts +15 -0
- package/lib/service/translation.service.d.ts +12 -0
- package/lib/utils/decorator.d.ts +1 -0
- package/package.json +1 -1
- package/public-api.d.ts +34 -15
- package/src/assets/img/close-url.svg +10 -0
- package/src/assets/img/comment-cancel.svg +4 -0
- package/src/assets/img/comment-check.svg +5 -0
- package/src/assets/img/desktop-refresh-btn.svg +6 -0
- package/src/assets/img/down-arrow.svg +3 -0
- package/src/assets/img/drawer-back.svg +4 -0
- package/src/assets/img/eye-close.svg +4 -0
- package/src/assets/img/eye-open.svg +4 -0
- package/src/assets/img/grid-action-copy.svg +6 -0
- package/src/assets/img/grid-action-delete.svg +14 -0
- package/src/assets/img/grid-action-detail.svg +7 -0
- package/src/assets/img/grid-action-download.svg +7 -0
- package/src/assets/img/grid-action-edit.svg +4 -0
- package/src/assets/img/grid-action-export.svg +12 -0
- package/src/assets/img/grid-action-move.svg +8 -0
- package/src/assets/img/grid-action-note.svg +10 -0
- package/src/assets/img/grid-action-send.svg +5 -0
- package/src/assets/img/grid-action-settle.svg +13 -0
- package/src/assets/img/grid-menu-arrow-right.svg +3 -0
- package/src/assets/img/grid-pager-arrow-left.svg +3 -0
- package/src/assets/img/grid-pager-arrows-left.svg +4 -0
- package/src/assets/img/icon-more-active.svg +7 -0
- package/src/assets/img/icon-more.svg +7 -0
- package/src/assets/img/more.svg +5 -0
- package/src/assets/img/split-button-arrow.svg +3 -0
- package/src/assets/img/table-column-menu.svg +5 -0
- package/src/assets/img/table-sort-arrow.svg +6 -0
- package/src/assets/img/toolbar-action-add.svg +4 -0
- package/src/assets/img/toolbar-action-delete.svg +14 -0
- package/src/assets/img/toolbar-action-download.svg +5 -0
- package/src/assets/img/toolbar-action-duplicate.svg +6 -0
- package/src/assets/img/toolbar-action-export.svg +5 -0
- package/src/assets/img/toolbar-action-import.svg +5 -0
- package/src/assets/img/toolbar-action-refresh.svg +14 -0
- package/src/assets/img/toolbar-action-upload.svg +5 -0
- package/src/assets/img/tooltip-icon.svg +4 -0
- package/src/assets/language/fr.ts +3603 -0
- package/src/assets/language/ja.ts +3501 -0
- package/src/assets/language/ko.ts +3478 -0
- package/src/assets/language/zh-CN.ts +3115 -0
- package/src/assets/language/zh-TW.ts +3411 -0
- package/src/assets/style/reset/button.scss +78 -10
- package/src/assets/style/reset/checkbox.scss +33 -0
- package/src/assets/style/reset/dropdown.scss +42 -10
- package/src/assets/style/reset/grid.scss +733 -132
- package/src/assets/style/reset/input.scss +45 -12
- package/src/assets/style/reset/mat-dialog.scss +6 -2
- package/src/assets/style/reset/radio.scss +37 -0
- package/src/assets/style/reset/switch.scss +32 -0
- package/src/assets/style/style.scss +6 -0
- package/src/assets/style/syncfusion.min.css +1 -1
- package/src/assets/style/variables.scss +4 -4
- package/esm2022/lib/layout/common-list/index.component.mjs +0 -43
- package/lib/layout/common-list/index.component.d.ts +0 -15
|
@@ -21,11 +21,11 @@ export class SwitchInputComponent {
|
|
|
21
21
|
this.valueChange.emit(value);
|
|
22
22
|
}
|
|
23
23
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SwitchInputComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
24
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: SwitchInputComponent, selector: "rs-switch-input", inputs: { value: "value", text: "text", orientation: "orientation", disabled: "disabled", error: "error" }, outputs: { valueChange: "valueChange" }, ngImport: i0, template: "<div class=\"rs-switch\" [ngClass]=\"[orientation, error ? 'error' : '', disabled ? 'disabled' : '']\">\r\n <label class=\"switch-label\" (click)=\"onClick()\"> {{ text }} </label>\r\n <ejs-switch\r\n [(ngModel)]=\"value\"\r\n [disabled]=\"disabled\"\r\n (change)=\"onChange($event)\"\r\n ></ejs-switch>\r\n</div>\r\n", styles: [".rs-switch{display:flex;align-items:center;gap:8px}.rs-switch.behind{flex-direction:row-reverse;justify-content:flex-end}.rs-switch .switch-label{color:var(--rs-label-color);font-family:var(--rs-font-family);font-size:var(--rs-font-size);cursor:pointer}.rs-switch.disabled .switch-label{cursor:default;pointer-events:none}
|
|
24
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: SwitchInputComponent, selector: "rs-switch-input", inputs: { value: "value", text: "text", orientation: "orientation", disabled: "disabled", error: "error" }, outputs: { valueChange: "valueChange" }, ngImport: i0, template: "<div class=\"rs-switch\" [ngClass]=\"[orientation, error ? 'error' : '', disabled ? 'disabled' : '']\">\r\n <label class=\"switch-label\" (click)=\"onClick()\"> {{ text }} </label>\r\n <ejs-switch\r\n [(ngModel)]=\"value\"\r\n [disabled]=\"disabled\"\r\n (change)=\"onChange($event)\"\r\n ></ejs-switch>\r\n</div>\r\n", styles: [".rs-switch{display:flex;align-items:center;gap:8px}.rs-switch.behind{flex-direction:row-reverse;justify-content:flex-end}.rs-switch .switch-label{color:var(--rs-label-color);font-family:var(--rs-font-family);font-size:var(--rs-font-size);cursor:pointer}.rs-switch.disabled .switch-label{cursor:default;pointer-events:none}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i3.SwitchComponent, selector: "ejs-switch", inputs: ["checked", "cssClass", "disabled", "enablePersistence", "enableRtl", "htmlAttributes", "locale", "name", "offLabel", "onLabel", "value"], outputs: ["focus", "blur", "change", "created", "checkedChange"] }] });
|
|
25
25
|
}
|
|
26
26
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SwitchInputComponent, decorators: [{
|
|
27
27
|
type: Component,
|
|
28
|
-
args: [{ selector: "rs-switch-input", template: "<div class=\"rs-switch\" [ngClass]=\"[orientation, error ? 'error' : '', disabled ? 'disabled' : '']\">\r\n <label class=\"switch-label\" (click)=\"onClick()\"> {{ text }} </label>\r\n <ejs-switch\r\n [(ngModel)]=\"value\"\r\n [disabled]=\"disabled\"\r\n (change)=\"onChange($event)\"\r\n ></ejs-switch>\r\n</div>\r\n", styles: [".rs-switch{display:flex;align-items:center;gap:8px}.rs-switch.behind{flex-direction:row-reverse;justify-content:flex-end}.rs-switch .switch-label{color:var(--rs-label-color);font-family:var(--rs-font-family);font-size:var(--rs-font-size);cursor:pointer}.rs-switch.disabled .switch-label{cursor:default;pointer-events:none}
|
|
28
|
+
args: [{ selector: "rs-switch-input", template: "<div class=\"rs-switch\" [ngClass]=\"[orientation, error ? 'error' : '', disabled ? 'disabled' : '']\">\r\n <label class=\"switch-label\" (click)=\"onClick()\"> {{ text }} </label>\r\n <ejs-switch\r\n [(ngModel)]=\"value\"\r\n [disabled]=\"disabled\"\r\n (change)=\"onChange($event)\"\r\n ></ejs-switch>\r\n</div>\r\n", styles: [".rs-switch{display:flex;align-items:center;gap:8px}.rs-switch.behind{flex-direction:row-reverse;justify-content:flex-end}.rs-switch .switch-label{color:var(--rs-label-color);font-family:var(--rs-font-family);font-size:var(--rs-font-size);cursor:pointer}.rs-switch.disabled .switch-label{cursor:default;pointer-events:none}\n"] }]
|
|
29
29
|
}], propDecorators: { value: [{
|
|
30
30
|
type: Input
|
|
31
31
|
}], text: [{
|
|
@@ -7,11 +7,18 @@ export class TagInputComponent {
|
|
|
7
7
|
fields;
|
|
8
8
|
disabled = false;
|
|
9
9
|
error = false;
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
10
|
+
minlength = 3;
|
|
11
|
+
maxlength = 30;
|
|
12
|
+
get inputMinlength() {
|
|
13
|
+
return this.minlength === undefined ? 3 : this.minlength;
|
|
14
|
+
}
|
|
15
|
+
get inputMaxlength() {
|
|
16
|
+
return this.minlength === undefined ? 30 : this.maxlength;
|
|
14
17
|
}
|
|
18
|
+
valueChange = new EventEmitter();
|
|
19
|
+
focus = new EventEmitter();
|
|
20
|
+
blur = new EventEmitter();
|
|
21
|
+
ngOnInit() { }
|
|
15
22
|
onRemoveTag(tag) {
|
|
16
23
|
const tagsList = this.value.filter((i) => i !== tag);
|
|
17
24
|
this.valueChange.emit(tagsList);
|
|
@@ -38,12 +45,19 @@ export class TagInputComponent {
|
|
|
38
45
|
onInput() {
|
|
39
46
|
this.inputError = false;
|
|
40
47
|
}
|
|
48
|
+
onFocus() {
|
|
49
|
+
this.focus.emit();
|
|
50
|
+
}
|
|
51
|
+
onBlur(event) {
|
|
52
|
+
this.onAddTag(event);
|
|
53
|
+
this.blur.emit();
|
|
54
|
+
}
|
|
41
55
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TagInputComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
42
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: TagInputComponent, selector: "rs-tag-input", inputs: { value: "value", fields: "fields", disabled: "disabled", error: "error",
|
|
56
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: TagInputComponent, selector: "rs-tag-input", inputs: { value: "value", fields: "fields", disabled: "disabled", error: "error", minlength: ["inputMinlength", "minlength"], maxlength: ["inputMaxlength", "maxlength"] }, outputs: { valueChange: "valueChange", focus: "focus", blur: "blur" }, ngImport: i0, template: "<div\r\n class=\"form-tags\"\r\n [ngClass]=\"{\r\n disabled: disabled,\r\n error: inputError || error\r\n }\"\r\n>\r\n <div class=\"form-tags-item\" *ngFor=\"let tag of value\">\r\n <span>{{ tag }}</span>\r\n <span class=\"form-tags-remove\" (click)=\"onRemoveTag(tag)\"></span>\r\n </div>\r\n <input\r\n class=\"form-tags-input\"\r\n (keyup.enter)=\"onAddTag($event)\"\r\n (input)=\"onInput()\"\r\n (focus)=\"onFocus()\"\r\n (blur)=\"onBlur($event)\"\r\n autocomplete=\"off\"\r\n [minLength]=\"inputMinlength\"\r\n [maxLength]=\"inputMaxlength\"\r\n />\r\n</div>\r\n", styles: [".form-tags{display:flex;flex-flow:row wrap;border-radius:4px;overflow:hidden;gap:4px 8px;padding:3px 4px;min-height:28px;box-shadow:none;border-radius:var(--rs-input-border-radius);border:1px solid var(--rs-input-border-color);background-color:#fff;cursor:pointer}.form-tags:not(.error):not(.disabled):hover{box-shadow:0 0 3px #1f7bff66;border-color:var(--rs-input-hover-border-color)}.form-tags:focus-within{border-color:var(--rs-input-focus-border-color);box-shadow:none}.form-tags.error:not(:focus-within){border-color:var(--rs-input-error-border-color)!important}.form-tags.disabled{pointer-events:none;border-color:var(--rs-input-border-color)!important;font-size:var(--rs-input-font-size);color:var(--rs-input-disabled-color)!important;background-color:var(--rs-input-disabled-bg)!important;-webkit-text-fill-color:var(--rs-input-disabled-color)!important}.form-tags.disabled .form-tags-input{background-color:var(--rs-input-disabled-bg)!important}.form-tags .form-tags-input{flex:auto;width:auto;padding:0 4px;border:none;outline:none;font-size:var(--rs-input-font-size);color:var(--rs-input-color)!important}.form-tags .form-tags-item{box-sizing:border-box;height:20px;padding:0 8px;border:1px solid #eaedf0;border-radius:12px;background-color:#f8fafb;color:#44566c;font-family:Arial;font-size:11px;font-style:normal;font-weight:400;line-height:12px;display:flex;flex-flow:row nowrap;align-items:center;position:relative}.form-tags .form-tags-item .form-tags-remove{visibility:hidden;width:20px;height:20px;border:1px solid #dbe1e7;border-radius:20px;background-color:#fff;line-height:18px;text-align:center;position:absolute;top:-1px;right:-1px}.form-tags .form-tags-item .form-tags-remove:after{content:url(/assets/img/tag-remove.svg);cursor:pointer}.form-tags .form-tags-item:hover .form-tags-remove{visibility:visible}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }] });
|
|
43
57
|
}
|
|
44
58
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TagInputComponent, decorators: [{
|
|
45
59
|
type: Component,
|
|
46
|
-
args: [{ selector: "rs-tag-input", template: "<div\r\n class=\"form-tags\"\r\n [ngClass]=\"{\r\n disabled: disabled,\r\n error: inputError || error\r\n }\"\r\n>\r\n <div class=\"form-tags-item\" *ngFor=\"let tag of value\">\r\n <span>{{ tag }}</span>\r\n <span class=\"form-tags-remove\" (click)=\"onRemoveTag(tag)\"></span>\r\n </div>\r\n <input\r\n class=\"form-tags-input\"\r\n (keyup.enter)=\"onAddTag($event)\"\r\n (input)=\"onInput()\"\r\n (blur)=\"
|
|
60
|
+
args: [{ selector: "rs-tag-input", template: "<div\r\n class=\"form-tags\"\r\n [ngClass]=\"{\r\n disabled: disabled,\r\n error: inputError || error\r\n }\"\r\n>\r\n <div class=\"form-tags-item\" *ngFor=\"let tag of value\">\r\n <span>{{ tag }}</span>\r\n <span class=\"form-tags-remove\" (click)=\"onRemoveTag(tag)\"></span>\r\n </div>\r\n <input\r\n class=\"form-tags-input\"\r\n (keyup.enter)=\"onAddTag($event)\"\r\n (input)=\"onInput()\"\r\n (focus)=\"onFocus()\"\r\n (blur)=\"onBlur($event)\"\r\n autocomplete=\"off\"\r\n [minLength]=\"inputMinlength\"\r\n [maxLength]=\"inputMaxlength\"\r\n />\r\n</div>\r\n", styles: [".form-tags{display:flex;flex-flow:row wrap;border-radius:4px;overflow:hidden;gap:4px 8px;padding:3px 4px;min-height:28px;box-shadow:none;border-radius:var(--rs-input-border-radius);border:1px solid var(--rs-input-border-color);background-color:#fff;cursor:pointer}.form-tags:not(.error):not(.disabled):hover{box-shadow:0 0 3px #1f7bff66;border-color:var(--rs-input-hover-border-color)}.form-tags:focus-within{border-color:var(--rs-input-focus-border-color);box-shadow:none}.form-tags.error:not(:focus-within){border-color:var(--rs-input-error-border-color)!important}.form-tags.disabled{pointer-events:none;border-color:var(--rs-input-border-color)!important;font-size:var(--rs-input-font-size);color:var(--rs-input-disabled-color)!important;background-color:var(--rs-input-disabled-bg)!important;-webkit-text-fill-color:var(--rs-input-disabled-color)!important}.form-tags.disabled .form-tags-input{background-color:var(--rs-input-disabled-bg)!important}.form-tags .form-tags-input{flex:auto;width:auto;padding:0 4px;border:none;outline:none;font-size:var(--rs-input-font-size);color:var(--rs-input-color)!important}.form-tags .form-tags-item{box-sizing:border-box;height:20px;padding:0 8px;border:1px solid #eaedf0;border-radius:12px;background-color:#f8fafb;color:#44566c;font-family:Arial;font-size:11px;font-style:normal;font-weight:400;line-height:12px;display:flex;flex-flow:row nowrap;align-items:center;position:relative}.form-tags .form-tags-item .form-tags-remove{visibility:hidden;width:20px;height:20px;border:1px solid #dbe1e7;border-radius:20px;background-color:#fff;line-height:18px;text-align:center;position:absolute;top:-1px;right:-1px}.form-tags .form-tags-item .form-tags-remove:after{content:url(/assets/img/tag-remove.svg);cursor:pointer}.form-tags .form-tags-item:hover .form-tags-remove{visibility:visible}\n"] }]
|
|
47
61
|
}], propDecorators: { value: [{
|
|
48
62
|
type: Input
|
|
49
63
|
}], fields: [{
|
|
@@ -52,11 +66,17 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
52
66
|
type: Input
|
|
53
67
|
}], error: [{
|
|
54
68
|
type: Input
|
|
55
|
-
}],
|
|
56
|
-
type: Input
|
|
57
|
-
|
|
58
|
-
|
|
69
|
+
}], minlength: [{
|
|
70
|
+
type: Input,
|
|
71
|
+
args: ["inputMinlength"]
|
|
72
|
+
}], maxlength: [{
|
|
73
|
+
type: Input,
|
|
74
|
+
args: ["inputMaxlength"]
|
|
59
75
|
}], valueChange: [{
|
|
60
76
|
type: Output
|
|
77
|
+
}], focus: [{
|
|
78
|
+
type: Output
|
|
79
|
+
}], blur: [{
|
|
80
|
+
type: Output
|
|
61
81
|
}] } });
|
|
62
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
82
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcmFpc2UtY29tbW9uLWxpYi9zcmMvbGliL2Zvcm0vdGFnLWlucHV0L2luZGV4LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3JhaXNlLWNvbW1vbi1saWIvc3JjL2xpYi9mb3JtL3RhZy1pbnB1dC9pbmRleC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNO0FBQ04sT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQzs7O0FBTy9FLE1BQU0sT0FBTyxpQkFBaUI7SUFDbkIsS0FBSyxHQUFHLEVBQUUsQ0FBQztJQUNYLE1BQU0sQ0FBQztJQUNQLFFBQVEsR0FBRyxLQUFLLENBQUM7SUFDakIsS0FBSyxHQUFHLEtBQUssQ0FBQztJQUNFLFNBQVMsR0FBRyxDQUFDLENBQUM7SUFDZCxTQUFTLEdBQUcsRUFBRSxDQUFDO0lBRXhDLElBQUksY0FBYztRQUNoQixPQUFPLElBQUksQ0FBQyxTQUFTLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUM7SUFDM0QsQ0FBQztJQUVELElBQUksY0FBYztRQUNoQixPQUFPLElBQUksQ0FBQyxTQUFTLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUM7SUFDNUQsQ0FBQztJQUdELFdBQVcsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO0lBRXZCLEtBQUssR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO0lBQzNCLElBQUksR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO0lBRXBDLFFBQVEsS0FBSSxDQUFDO0lBQ2IsV0FBVyxDQUFDLEdBQUc7UUFDYixNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDO1FBQ3JELElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ2xDLENBQUM7SUFFRCxRQUFRLENBQUMsS0FBSztRQUNaLE1BQU0sVUFBVSxHQUFHLEtBQUssQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDO1FBQ3RDLElBQUksVUFBVSxJQUFJLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxVQUFVLENBQUMsRUFBRTtZQUNuRCxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLEtBQUssRUFBRSxVQUFVLENBQUMsQ0FBQyxDQUFDO1lBQ25ELEtBQUssQ0FBQyxNQUFNLENBQUMsS0FBSyxHQUFHLEVBQUUsQ0FBQztTQUN6QjtJQUNILENBQUM7SUFDRCxVQUFVLEdBQUcsS0FBSyxDQUFDO0lBQ25CLGdCQUFnQixDQUFDLFVBQVU7UUFDekIsSUFBSSxDQUFDLFVBQVUsR0FBRyxLQUFLLENBQUM7UUFDeEIsTUFBTSxnQkFBZ0IsR0FBRyxVQUFVLENBQUMsTUFBTSxDQUFDO1FBQzNDLElBQ0UsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDO1lBQy9CLGdCQUFnQixHQUFHLElBQUksQ0FBQyxjQUFjO1lBQ3RDLGdCQUFnQixHQUFHLElBQUksQ0FBQyxjQUFjLEVBQ3RDO1lBQ0EsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUM7WUFDdkIsT0FBTyxLQUFLLENBQUM7U0FDZDtRQUNELE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUNELE9BQU87UUFDTCxJQUFJLENBQUMsVUFBVSxHQUFHLEtBQUssQ0FBQztJQUMxQixDQUFDO0lBRUQsT0FBTztRQUNMLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDcEIsQ0FBQztJQUVELE1BQU0sQ0FBQyxLQUFVO1FBQ2YsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNyQixJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ25CLENBQUM7d0dBNURVLGlCQUFpQjs0RkFBakIsaUJBQWlCLHVTQ1I5QixvbUJBc0JBOzs0RkRkYSxpQkFBaUI7a0JBTDdCLFNBQVM7K0JBQ0UsY0FBYzs4QkFLZixLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNtQixTQUFTO3NCQUFqQyxLQUFLO3VCQUFDLGdCQUFnQjtnQkFDRSxTQUFTO3NCQUFqQyxLQUFLO3VCQUFDLGdCQUFnQjtnQkFXdkIsV0FBVztzQkFEVixNQUFNO2dCQUdHLEtBQUs7c0JBQWQsTUFBTTtnQkFDRyxJQUFJO3NCQUFiLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyIvLyDnu4Tku7bnsbtcclxuaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dCB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogXCJycy10YWctaW5wdXRcIixcclxuICB0ZW1wbGF0ZVVybDogXCIuL2luZGV4LmNvbXBvbmVudC5odG1sXCIsXHJcbiAgc3R5bGVVcmxzOiBbXCIuL2luZGV4LmNvbXBvbmVudC5zY3NzXCJdLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgVGFnSW5wdXRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gIEBJbnB1dCgpIHZhbHVlID0gW107XHJcbiAgQElucHV0KCkgZmllbGRzO1xyXG4gIEBJbnB1dCgpIGRpc2FibGVkID0gZmFsc2U7XHJcbiAgQElucHV0KCkgZXJyb3IgPSBmYWxzZTtcclxuICBASW5wdXQoXCJpbnB1dE1pbmxlbmd0aFwiKSBtaW5sZW5ndGggPSAzO1xyXG4gIEBJbnB1dChcImlucHV0TWF4bGVuZ3RoXCIpIG1heGxlbmd0aCA9IDMwO1xyXG5cclxuICBnZXQgaW5wdXRNaW5sZW5ndGgoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5taW5sZW5ndGggPT09IHVuZGVmaW5lZCA/IDMgOiB0aGlzLm1pbmxlbmd0aDtcclxuICB9XHJcblxyXG4gIGdldCBpbnB1dE1heGxlbmd0aCgpIHtcclxuICAgIHJldHVybiB0aGlzLm1pbmxlbmd0aCA9PT0gdW5kZWZpbmVkID8gMzAgOiB0aGlzLm1heGxlbmd0aDtcclxuICB9XHJcblxyXG4gIEBPdXRwdXQoKVxyXG4gIHZhbHVlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG5cclxuICBAT3V0cHV0KCkgZm9jdXMgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQE91dHB1dCgpIGJsdXIgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcblxyXG4gIG5nT25Jbml0KCkge31cclxuICBvblJlbW92ZVRhZyh0YWcpIHtcclxuICAgIGNvbnN0IHRhZ3NMaXN0ID0gdGhpcy52YWx1ZS5maWx0ZXIoKGkpID0+IGkgIT09IHRhZyk7XHJcbiAgICB0aGlzLnZhbHVlQ2hhbmdlLmVtaXQodGFnc0xpc3QpO1xyXG4gIH1cclxuXHJcbiAgb25BZGRUYWcoZXZlbnQpIHtcclxuICAgIGNvbnN0IGlucHV0VmFsdWUgPSBldmVudC50YXJnZXQudmFsdWU7XHJcbiAgICBpZiAoaW5wdXRWYWx1ZSAmJiB0aGlzLnZlcmlmeUlucHV0VmFsdWUoaW5wdXRWYWx1ZSkpIHtcclxuICAgICAgdGhpcy52YWx1ZUNoYW5nZS5lbWl0KFsuLi50aGlzLnZhbHVlLCBpbnB1dFZhbHVlXSk7XHJcbiAgICAgIGV2ZW50LnRhcmdldC52YWx1ZSA9IFwiXCI7XHJcbiAgICB9XHJcbiAgfVxyXG4gIGlucHV0RXJyb3IgPSBmYWxzZTtcclxuICB2ZXJpZnlJbnB1dFZhbHVlKGlucHV0VmFsdWUpIHtcclxuICAgIHRoaXMuaW5wdXRFcnJvciA9IGZhbHNlO1xyXG4gICAgY29uc3QgaW5wdXRWYWx1ZUxlbmd0aCA9IGlucHV0VmFsdWUubGVuZ3RoO1xyXG4gICAgaWYgKFxyXG4gICAgICB0aGlzLnZhbHVlLmluY2x1ZGVzKGlucHV0VmFsdWUpIHx8XHJcbiAgICAgIGlucHV0VmFsdWVMZW5ndGggPiB0aGlzLmlucHV0TWF4bGVuZ3RoIHx8XHJcbiAgICAgIGlucHV0VmFsdWVMZW5ndGggPCB0aGlzLmlucHV0TWlubGVuZ3RoXHJcbiAgICApIHtcclxuICAgICAgdGhpcy5pbnB1dEVycm9yID0gdHJ1ZTtcclxuICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHRydWU7XHJcbiAgfVxyXG4gIG9uSW5wdXQoKSB7XHJcbiAgICB0aGlzLmlucHV0RXJyb3IgPSBmYWxzZTtcclxuICB9XHJcblxyXG4gIG9uRm9jdXMoKSB7XHJcbiAgICB0aGlzLmZvY3VzLmVtaXQoKTtcclxuICB9XHJcblxyXG4gIG9uQmx1cihldmVudDogYW55KSB7XHJcbiAgICB0aGlzLm9uQWRkVGFnKGV2ZW50KTtcclxuICAgIHRoaXMuYmx1ci5lbWl0KCk7XHJcbiAgfVxyXG59XHJcbiIsIjxkaXZcclxuICBjbGFzcz1cImZvcm0tdGFnc1wiXHJcbiAgW25nQ2xhc3NdPVwie1xyXG4gICAgZGlzYWJsZWQ6IGRpc2FibGVkLFxyXG4gICAgZXJyb3I6IGlucHV0RXJyb3IgfHwgZXJyb3JcclxuICB9XCJcclxuPlxyXG4gIDxkaXYgY2xhc3M9XCJmb3JtLXRhZ3MtaXRlbVwiICpuZ0Zvcj1cImxldCB0YWcgb2YgdmFsdWVcIj5cclxuICAgIDxzcGFuPnt7IHRhZyB9fTwvc3Bhbj5cclxuICAgIDxzcGFuIGNsYXNzPVwiZm9ybS10YWdzLXJlbW92ZVwiIChjbGljayk9XCJvblJlbW92ZVRhZyh0YWcpXCI+PC9zcGFuPlxyXG4gIDwvZGl2PlxyXG4gIDxpbnB1dFxyXG4gICAgY2xhc3M9XCJmb3JtLXRhZ3MtaW5wdXRcIlxyXG4gICAgKGtleXVwLmVudGVyKT1cIm9uQWRkVGFnKCRldmVudClcIlxyXG4gICAgKGlucHV0KT1cIm9uSW5wdXQoKVwiXHJcbiAgICAoZm9jdXMpPVwib25Gb2N1cygpXCJcclxuICAgIChibHVyKT1cIm9uQmx1cigkZXZlbnQpXCJcclxuICAgIGF1dG9jb21wbGV0ZT1cIm9mZlwiXHJcbiAgICBbbWluTGVuZ3RoXT1cImlucHV0TWlubGVuZ3RoXCJcclxuICAgIFttYXhMZW5ndGhdPVwiaW5wdXRNYXhsZW5ndGhcIlxyXG4gIC8+XHJcbjwvZGl2PlxyXG4iXX0=
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import { Component, HostBinding, Input, ViewChild, } from "@angular/core";
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
import * as i1 from "@angular/common";
|
|
4
|
+
import * as i2 from "@angular/material/menu";
|
|
5
|
+
export class ToolbarItemComponent {
|
|
6
|
+
image;
|
|
7
|
+
text;
|
|
8
|
+
disabled;
|
|
9
|
+
children = [];
|
|
10
|
+
disabledOptions = {};
|
|
11
|
+
buttonElement;
|
|
12
|
+
get hostDisabled() {
|
|
13
|
+
return !!this.disabled;
|
|
14
|
+
}
|
|
15
|
+
// 暴露方法供父组件调用
|
|
16
|
+
getWidth() {
|
|
17
|
+
return this.buttonElement.nativeElement.offsetWidth;
|
|
18
|
+
}
|
|
19
|
+
ImageType = [
|
|
20
|
+
"Add",
|
|
21
|
+
"Delete",
|
|
22
|
+
"Import",
|
|
23
|
+
"Export",
|
|
24
|
+
"Upload",
|
|
25
|
+
"Download",
|
|
26
|
+
"Duplicate",
|
|
27
|
+
"Refresh",
|
|
28
|
+
];
|
|
29
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ToolbarItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
30
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: ToolbarItemComponent, selector: "rs-toolbar-item", inputs: { image: "image", text: "text", disabled: "disabled", children: "children", disabledOptions: "disabledOptions" }, host: { properties: { "class.disabled": "this.hostDisabled" } }, viewQueries: [{ propertyName: "buttonElement", first: true, predicate: ["buttonElement"], descendants: true }], ngImport: i0, template: "<button\r\n *ngIf=\"!children.length\"\r\n class=\"toolbar-action-item e-btn text\"\r\n #buttonElement\r\n [disabled]=\"!!disabled\"\r\n>\r\n <span class=\"toolbar-action-image\" [attr.data-type]=\"image\">\r\n <img *ngIf=\"!ImageType.includes(image)\" [src]=\"image\" />\r\n </span>\r\n <span>{{ text }}</span>\r\n</button>\r\n\r\n<button\r\n *ngIf=\"children.length\"\r\n class=\"toolbar-action-item e-btn text\"\r\n #buttonElement\r\n mat-menu-item\r\n [matMenuTriggerFor]=\"menu\"\r\n [disabled]=\"!!disabled\"\r\n>\r\n <span class=\"toolbar-action-image\" [attr.data-type]=\"image\">\r\n <img *ngIf=\"!ImageType.includes(image)\" [src]=\"image\" />\r\n </span>\r\n <span>{{ text }}</span>\r\n</button>\r\n<mat-menu #menu=\"matMenu\">\r\n <ng-container *ngFor=\"let button of children\">\r\n <button\r\n class=\"toolbar-action-item e-btn text\"\r\n [disabled]=\"(button.key && disabledOptions[button.key]) || false\"\r\n (click)=\"button.action()\"\r\n >\r\n <span class=\"toolbar-action-image\" [attr.data-type]=\"button.image\">\r\n <img *ngIf=\"!ImageType.includes(button.image)\" [src]=\"button.image\" />\r\n </span>\r\n <span>{{ button.text }}</span>\r\n </button>\r\n </ng-container>\r\n</mat-menu>\r\n", styles: ["rs-toolbar-item.disabled{pointer-events:none}.toolbar-action-item{min-width:auto;padding:4px 8px}.toolbar-action-item .toolbar-action-image{height:16px;display:flex;flex-flow:row nowrap;justify-content:center;align-items:center}.toolbar-action-item .toolbar-action-image:before{display:block;width:16px;height:16px;line-height:16px}.toolbar-action-item .toolbar-action-image[data-type=Add]:before{content:url(/assets/img/toolbar-action-add.svg)}.toolbar-action-item .toolbar-action-image[data-type=Delete]:before{content:url(/assets/img/toolbar-action-delete.svg)}.toolbar-action-item .toolbar-action-image[data-type=Import]:before{content:url(/assets/img/toolbar-action-import.svg)}.toolbar-action-item .toolbar-action-image[data-type=Upload]:before{content:url(/assets/img/toolbar-action-upload.svg)}.toolbar-action-item .toolbar-action-image[data-type=Download]:before{content:url(/assets/img/toolbar-action-download.svg)}.toolbar-action-item .toolbar-action-image[data-type=Export]:before{content:url(/assets/img/toolbar-action-export.svg)}.toolbar-action-item .toolbar-action-image[data-type=Duplicate]:before{content:url(/assets/img/toolbar-action-duplicate.svg)}.toolbar-action-item .toolbar-action-image[data-type=Refresh]:before{content:url(/assets/img/toolbar-action-refresh.svg)}.toolbar-action-item .toolbar-action-image img{height:16px;display:block}.toolbar-action-item.e-btn{width:100%;justify-content:flex-start}.toolbar-action-item ::ng-deep .mat-mdc-menu-item-text{display:flex;gap:6px;align-items:center}.toolbar-action-item.mat-mdc-menu-item{min-height:24px}.toolbar-action-item.mat-menu-item:after{display:none}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.MatMenu, selector: "mat-menu", exportAs: ["matMenu"] }, { kind: "component", type: i2.MatMenuItem, selector: "[mat-menu-item]", inputs: ["disabled", "disableRipple", "role"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i2.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", exportAs: ["matMenuTrigger"] }] });
|
|
31
|
+
}
|
|
32
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ToolbarItemComponent, decorators: [{
|
|
33
|
+
type: Component,
|
|
34
|
+
args: [{ selector: "rs-toolbar-item", template: "<button\r\n *ngIf=\"!children.length\"\r\n class=\"toolbar-action-item e-btn text\"\r\n #buttonElement\r\n [disabled]=\"!!disabled\"\r\n>\r\n <span class=\"toolbar-action-image\" [attr.data-type]=\"image\">\r\n <img *ngIf=\"!ImageType.includes(image)\" [src]=\"image\" />\r\n </span>\r\n <span>{{ text }}</span>\r\n</button>\r\n\r\n<button\r\n *ngIf=\"children.length\"\r\n class=\"toolbar-action-item e-btn text\"\r\n #buttonElement\r\n mat-menu-item\r\n [matMenuTriggerFor]=\"menu\"\r\n [disabled]=\"!!disabled\"\r\n>\r\n <span class=\"toolbar-action-image\" [attr.data-type]=\"image\">\r\n <img *ngIf=\"!ImageType.includes(image)\" [src]=\"image\" />\r\n </span>\r\n <span>{{ text }}</span>\r\n</button>\r\n<mat-menu #menu=\"matMenu\">\r\n <ng-container *ngFor=\"let button of children\">\r\n <button\r\n class=\"toolbar-action-item e-btn text\"\r\n [disabled]=\"(button.key && disabledOptions[button.key]) || false\"\r\n (click)=\"button.action()\"\r\n >\r\n <span class=\"toolbar-action-image\" [attr.data-type]=\"button.image\">\r\n <img *ngIf=\"!ImageType.includes(button.image)\" [src]=\"button.image\" />\r\n </span>\r\n <span>{{ button.text }}</span>\r\n </button>\r\n </ng-container>\r\n</mat-menu>\r\n", styles: ["rs-toolbar-item.disabled{pointer-events:none}.toolbar-action-item{min-width:auto;padding:4px 8px}.toolbar-action-item .toolbar-action-image{height:16px;display:flex;flex-flow:row nowrap;justify-content:center;align-items:center}.toolbar-action-item .toolbar-action-image:before{display:block;width:16px;height:16px;line-height:16px}.toolbar-action-item .toolbar-action-image[data-type=Add]:before{content:url(/assets/img/toolbar-action-add.svg)}.toolbar-action-item .toolbar-action-image[data-type=Delete]:before{content:url(/assets/img/toolbar-action-delete.svg)}.toolbar-action-item .toolbar-action-image[data-type=Import]:before{content:url(/assets/img/toolbar-action-import.svg)}.toolbar-action-item .toolbar-action-image[data-type=Upload]:before{content:url(/assets/img/toolbar-action-upload.svg)}.toolbar-action-item .toolbar-action-image[data-type=Download]:before{content:url(/assets/img/toolbar-action-download.svg)}.toolbar-action-item .toolbar-action-image[data-type=Export]:before{content:url(/assets/img/toolbar-action-export.svg)}.toolbar-action-item .toolbar-action-image[data-type=Duplicate]:before{content:url(/assets/img/toolbar-action-duplicate.svg)}.toolbar-action-item .toolbar-action-image[data-type=Refresh]:before{content:url(/assets/img/toolbar-action-refresh.svg)}.toolbar-action-item .toolbar-action-image img{height:16px;display:block}.toolbar-action-item.e-btn{width:100%;justify-content:flex-start}.toolbar-action-item ::ng-deep .mat-mdc-menu-item-text{display:flex;gap:6px;align-items:center}.toolbar-action-item.mat-mdc-menu-item{min-height:24px}.toolbar-action-item.mat-menu-item:after{display:none}\n"] }]
|
|
35
|
+
}], propDecorators: { image: [{
|
|
36
|
+
type: Input,
|
|
37
|
+
args: ["image"]
|
|
38
|
+
}], text: [{
|
|
39
|
+
type: Input,
|
|
40
|
+
args: ["text"]
|
|
41
|
+
}], disabled: [{
|
|
42
|
+
type: Input,
|
|
43
|
+
args: ["disabled"]
|
|
44
|
+
}], children: [{
|
|
45
|
+
type: Input,
|
|
46
|
+
args: ["children"]
|
|
47
|
+
}], disabledOptions: [{
|
|
48
|
+
type: Input
|
|
49
|
+
}], buttonElement: [{
|
|
50
|
+
type: ViewChild,
|
|
51
|
+
args: ["buttonElement", { static: false }]
|
|
52
|
+
}], hostDisabled: [{
|
|
53
|
+
type: HostBinding,
|
|
54
|
+
args: ["class.disabled"]
|
|
55
|
+
}] } });
|
|
56
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcmFpc2UtY29tbW9uLWxpYi9zcmMvbGliL2Zvcm0vdG9vbGJhci1pdGVtL2luZGV4LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3JhaXNlLWNvbW1vbi1saWIvc3JjL2xpYi9mb3JtL3Rvb2xiYXItaXRlbS9pbmRleC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUVULFdBQVcsRUFDWCxLQUFLLEVBQ0wsU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFDOzs7O0FBT3ZCLE1BQU0sT0FBTyxvQkFBb0I7SUFDZixLQUFLLENBQVM7SUFDZixJQUFJLENBQVM7SUFDVCxRQUFRLENBQVU7SUFDbEIsUUFBUSxHQUFVLEVBQUUsQ0FBQztJQUMvQixlQUFlLEdBQXlCLEVBQUUsQ0FBQztJQUdMLGFBQWEsQ0FBYztJQUMxRSxJQUFtQyxZQUFZO1FBQzdDLE9BQU8sQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUM7SUFDekIsQ0FBQztJQUVELGFBQWE7SUFDYixRQUFRO1FBQ04sT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDLGFBQWEsQ0FBQyxXQUFXLENBQUM7SUFDdEQsQ0FBQztJQUVELFNBQVMsR0FBRztRQUNWLEtBQUs7UUFDTCxRQUFRO1FBQ1IsUUFBUTtRQUNSLFFBQVE7UUFDUixRQUFRO1FBQ1IsVUFBVTtRQUNWLFdBQVc7UUFDWCxTQUFTO0tBQ1YsQ0FBQzt3R0EzQlMsb0JBQW9COzRGQUFwQixvQkFBb0Isa1dDYmpDLHF3Q0F1Q0E7OzRGRDFCYSxvQkFBb0I7a0JBTGhDLFNBQVM7K0JBQ0UsaUJBQWlCOzhCQUtYLEtBQUs7c0JBQXBCLEtBQUs7dUJBQUMsT0FBTztnQkFDQyxJQUFJO3NCQUFsQixLQUFLO3VCQUFDLE1BQU07Z0JBQ00sUUFBUTtzQkFBMUIsS0FBSzt1QkFBQyxVQUFVO2dCQUNFLFFBQVE7c0JBQTFCLEtBQUs7dUJBQUMsVUFBVTtnQkFDUixlQUFlO3NCQUF2QixLQUFLO2dCQUd5QyxhQUFhO3NCQUEzRCxTQUFTO3VCQUFDLGVBQWUsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUU7Z0JBQ1YsWUFBWTtzQkFBOUMsV0FBVzt1QkFBQyxnQkFBZ0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIENvbXBvbmVudCxcclxuICBFbGVtZW50UmVmLFxyXG4gIEhvc3RCaW5kaW5nLFxyXG4gIElucHV0LFxyXG4gIFZpZXdDaGlsZCxcclxufSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6IFwicnMtdG9vbGJhci1pdGVtXCIsXHJcbiAgdGVtcGxhdGVVcmw6IFwiLi9pbmRleC5jb21wb25lbnQuaHRtbFwiLFxyXG4gIHN0eWxlVXJsczogW1wiLi9pbmRleC5jb21wb25lbnQuc2Nzc1wiXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIFRvb2xiYXJJdGVtQ29tcG9uZW50IHtcclxuICBASW5wdXQoXCJpbWFnZVwiKSBpbWFnZTogc3RyaW5nO1xyXG4gIEBJbnB1dChcInRleHRcIikgdGV4dDogc3RyaW5nO1xyXG4gIEBJbnB1dChcImRpc2FibGVkXCIpIGRpc2FibGVkOiBib29sZWFuO1xyXG4gIEBJbnB1dChcImNoaWxkcmVuXCIpIGNoaWxkcmVuOiBhbnlbXSA9IFtdO1xyXG4gIEBJbnB1dCgpIGRpc2FibGVkT3B0aW9uczoge1trZXk6IHN0cmluZ106IGFueX0gPSB7fTtcclxuXHJcblxyXG4gIEBWaWV3Q2hpbGQoXCJidXR0b25FbGVtZW50XCIsIHsgc3RhdGljOiBmYWxzZSB9KSBidXR0b25FbGVtZW50ITogRWxlbWVudFJlZjtcclxuICBASG9zdEJpbmRpbmcoXCJjbGFzcy5kaXNhYmxlZFwiKSBnZXQgaG9zdERpc2FibGVkKCkge1xyXG4gICAgcmV0dXJuICEhdGhpcy5kaXNhYmxlZDtcclxuICB9XHJcblxyXG4gIC8vIOaatOmcsuaWueazleS+m+eItue7hOS7tuiwg+eUqFxyXG4gIGdldFdpZHRoKCk6IG51bWJlciB7XHJcbiAgICByZXR1cm4gdGhpcy5idXR0b25FbGVtZW50Lm5hdGl2ZUVsZW1lbnQub2Zmc2V0V2lkdGg7XHJcbiAgfVxyXG5cclxuICBJbWFnZVR5cGUgPSBbXHJcbiAgICBcIkFkZFwiLFxyXG4gICAgXCJEZWxldGVcIixcclxuICAgIFwiSW1wb3J0XCIsXHJcbiAgICBcIkV4cG9ydFwiLFxyXG4gICAgXCJVcGxvYWRcIixcclxuICAgIFwiRG93bmxvYWRcIixcclxuICAgIFwiRHVwbGljYXRlXCIsXHJcbiAgICBcIlJlZnJlc2hcIixcclxuICBdO1xyXG59XHJcbiIsIjxidXR0b25cclxuICAqbmdJZj1cIiFjaGlsZHJlbi5sZW5ndGhcIlxyXG4gIGNsYXNzPVwidG9vbGJhci1hY3Rpb24taXRlbSBlLWJ0biB0ZXh0XCJcclxuICAjYnV0dG9uRWxlbWVudFxyXG4gIFtkaXNhYmxlZF09XCIhIWRpc2FibGVkXCJcclxuPlxyXG4gIDxzcGFuIGNsYXNzPVwidG9vbGJhci1hY3Rpb24taW1hZ2VcIiBbYXR0ci5kYXRhLXR5cGVdPVwiaW1hZ2VcIj5cclxuICAgIDxpbWcgKm5nSWY9XCIhSW1hZ2VUeXBlLmluY2x1ZGVzKGltYWdlKVwiIFtzcmNdPVwiaW1hZ2VcIiAvPlxyXG4gIDwvc3Bhbj5cclxuICA8c3Bhbj57eyB0ZXh0IH19PC9zcGFuPlxyXG48L2J1dHRvbj5cclxuXHJcbjxidXR0b25cclxuICAqbmdJZj1cImNoaWxkcmVuLmxlbmd0aFwiXHJcbiAgY2xhc3M9XCJ0b29sYmFyLWFjdGlvbi1pdGVtIGUtYnRuIHRleHRcIlxyXG4gICNidXR0b25FbGVtZW50XHJcbiAgbWF0LW1lbnUtaXRlbVxyXG4gIFttYXRNZW51VHJpZ2dlckZvcl09XCJtZW51XCJcclxuICBbZGlzYWJsZWRdPVwiISFkaXNhYmxlZFwiXHJcbj5cclxuICA8c3BhbiBjbGFzcz1cInRvb2xiYXItYWN0aW9uLWltYWdlXCIgW2F0dHIuZGF0YS10eXBlXT1cImltYWdlXCI+XHJcbiAgICA8aW1nICpuZ0lmPVwiIUltYWdlVHlwZS5pbmNsdWRlcyhpbWFnZSlcIiBbc3JjXT1cImltYWdlXCIgLz5cclxuICA8L3NwYW4+XHJcbiAgPHNwYW4+e3sgdGV4dCB9fTwvc3Bhbj5cclxuPC9idXR0b24+XHJcbjxtYXQtbWVudSAjbWVudT1cIm1hdE1lbnVcIj5cclxuICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBidXR0b24gb2YgY2hpbGRyZW5cIj5cclxuICAgIDxidXR0b25cclxuICAgICAgY2xhc3M9XCJ0b29sYmFyLWFjdGlvbi1pdGVtIGUtYnRuIHRleHRcIlxyXG4gICAgICBbZGlzYWJsZWRdPVwiKGJ1dHRvbi5rZXkgJiYgZGlzYWJsZWRPcHRpb25zW2J1dHRvbi5rZXldKSB8fCBmYWxzZVwiXHJcbiAgICAgIChjbGljayk9XCJidXR0b24uYWN0aW9uKClcIlxyXG4gICAgPlxyXG4gICAgICA8c3BhbiBjbGFzcz1cInRvb2xiYXItYWN0aW9uLWltYWdlXCIgW2F0dHIuZGF0YS10eXBlXT1cImJ1dHRvbi5pbWFnZVwiPlxyXG4gICAgICAgIDxpbWcgKm5nSWY9XCIhSW1hZ2VUeXBlLmluY2x1ZGVzKGJ1dHRvbi5pbWFnZSlcIiBbc3JjXT1cImJ1dHRvbi5pbWFnZVwiIC8+XHJcbiAgICAgIDwvc3Bhbj5cclxuICAgICAgPHNwYW4+e3sgYnV0dG9uLnRleHQgfX08L3NwYW4+XHJcbiAgICA8L2J1dHRvbj5cclxuICA8L25nLWNvbnRhaW5lcj5cclxuPC9tYXQtbWVudT5cclxuIl19
|
|
@@ -0,0 +1,165 @@
|
|
|
1
|
+
import { Component, ViewChild, ViewContainerRef, } from "@angular/core";
|
|
2
|
+
import { BehaviorSubject } from "rxjs";
|
|
3
|
+
import { DefaultDrawerConfig, } from "../../service/drawer.service";
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
import * as i1 from "../../service/drawer.service";
|
|
6
|
+
import * as i2 from "@angular/common";
|
|
7
|
+
export class DrawerComponent {
|
|
8
|
+
resolver;
|
|
9
|
+
service;
|
|
10
|
+
element;
|
|
11
|
+
drawer;
|
|
12
|
+
header;
|
|
13
|
+
content;
|
|
14
|
+
toolbarSlot;
|
|
15
|
+
headerSlot;
|
|
16
|
+
topSlot;
|
|
17
|
+
container;
|
|
18
|
+
config = DefaultDrawerConfig;
|
|
19
|
+
useTransition = "yes";
|
|
20
|
+
$isOpened = new BehaviorSubject(false);
|
|
21
|
+
hiddenDrawer = true;
|
|
22
|
+
componentRefMap = new Map();
|
|
23
|
+
constructor(resolver, service) {
|
|
24
|
+
this.resolver = resolver;
|
|
25
|
+
this.service = service;
|
|
26
|
+
}
|
|
27
|
+
createDynamicComponent(component) {
|
|
28
|
+
// 确保在调用之前目标组件已经在entryComponents中声明
|
|
29
|
+
const factory = this.resolver.resolveComponentFactory(component);
|
|
30
|
+
const componentRef = this.container.createComponent(factory);
|
|
31
|
+
return componentRef;
|
|
32
|
+
}
|
|
33
|
+
destroyDynamicComponent(componentRef) {
|
|
34
|
+
if (componentRef) {
|
|
35
|
+
componentRef.destroy();
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
setComponentData(componentRef, data = {}) {
|
|
39
|
+
// 如果需要传递数据给动态组件,可以这样做
|
|
40
|
+
if (componentRef) {
|
|
41
|
+
Object.entries(data).forEach(([key, value]) => {
|
|
42
|
+
componentRef.instance[key] = value;
|
|
43
|
+
});
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
getSlotElement(componentRef, selector) {
|
|
47
|
+
const componentEl = componentRef.location.nativeElement;
|
|
48
|
+
return componentEl.querySelector(selector);
|
|
49
|
+
}
|
|
50
|
+
setSlotElement(slotEl, containerEl) {
|
|
51
|
+
containerEl.innerHTML = "";
|
|
52
|
+
if (slotEl) {
|
|
53
|
+
containerEl.append(slotEl);
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
setCache(cache) {
|
|
57
|
+
this.setSlotElement(cache.toolbarEl, this.toolbarSlot.nativeElement);
|
|
58
|
+
this.setSlotElement(cache.headerEl, this.headerSlot.nativeElement);
|
|
59
|
+
this.setSlotElement(cache.topEl, this.topSlot.nativeElement);
|
|
60
|
+
const drawerTop = cache.config.top ? `${cache.config.top}px` : "";
|
|
61
|
+
this.element.nativeElement.style.setProperty("--drawer-top", drawerTop);
|
|
62
|
+
if (cache.config.mode === "inner") {
|
|
63
|
+
this.content.nativeElement.insertBefore(this.header.nativeElement, this.content.nativeElement.firstChild);
|
|
64
|
+
this.content.nativeElement.append(this.toolbarSlot.nativeElement);
|
|
65
|
+
}
|
|
66
|
+
else {
|
|
67
|
+
this.drawer.nativeElement.insertBefore(this.header.nativeElement, this.drawer.nativeElement.firstChild);
|
|
68
|
+
this.header.nativeElement.append(this.toolbarSlot.nativeElement);
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
show(component, config, data) {
|
|
72
|
+
const showConfig = { ...DefaultDrawerConfig, ...config };
|
|
73
|
+
const componentRef = this.createDynamicComponent(component);
|
|
74
|
+
const toolbarEl = this.getSlotElement(componentRef, "[drawer-toolbar]");
|
|
75
|
+
const headerEl = this.getSlotElement(componentRef, "[drawer-header]");
|
|
76
|
+
const topEl = this.getSlotElement(componentRef, "[drawer-top]");
|
|
77
|
+
const cache = {
|
|
78
|
+
config: showConfig,
|
|
79
|
+
ref: componentRef,
|
|
80
|
+
toolbarEl,
|
|
81
|
+
headerEl,
|
|
82
|
+
topEl,
|
|
83
|
+
};
|
|
84
|
+
this.setComponentData(componentRef, data);
|
|
85
|
+
this.componentRefMap.set(this.service.cacheKey, cache);
|
|
86
|
+
this.setCache(cache);
|
|
87
|
+
this.config = showConfig;
|
|
88
|
+
this.toggleOpenStatus(true, true);
|
|
89
|
+
return componentRef.instance;
|
|
90
|
+
}
|
|
91
|
+
hide() {
|
|
92
|
+
this.service.hide();
|
|
93
|
+
}
|
|
94
|
+
back() {
|
|
95
|
+
this.deleteCache(this.service.cacheKey);
|
|
96
|
+
this.toggleOpenStatus(false, true);
|
|
97
|
+
}
|
|
98
|
+
deleteCache(cacheKey) {
|
|
99
|
+
const cache = this.componentRefMap.get(cacheKey);
|
|
100
|
+
if (cache) {
|
|
101
|
+
this.destroyDynamicComponent(cache.ref);
|
|
102
|
+
}
|
|
103
|
+
this.componentRefMap.delete(cacheKey);
|
|
104
|
+
}
|
|
105
|
+
onRouteChange() {
|
|
106
|
+
this.componentRefMap.forEach((cache) => {
|
|
107
|
+
cache.ref.location.nativeElement.style.display = "none";
|
|
108
|
+
});
|
|
109
|
+
const cache = this.componentRefMap.get(this.service.cacheKey);
|
|
110
|
+
if (cache) {
|
|
111
|
+
cache.ref.location.nativeElement.style.display = "";
|
|
112
|
+
this.config = cache.config;
|
|
113
|
+
this.setCache(cache);
|
|
114
|
+
this.toggleOpenStatus(true);
|
|
115
|
+
}
|
|
116
|
+
else {
|
|
117
|
+
this.toggleOpenStatus(false);
|
|
118
|
+
}
|
|
119
|
+
this.useTransition = "no";
|
|
120
|
+
}
|
|
121
|
+
toggleOpenStatus(isOpen, useTransition = false) {
|
|
122
|
+
this.$isOpened.next(isOpen);
|
|
123
|
+
this.useTransition = useTransition ? "yes" : "no";
|
|
124
|
+
this.hiddenDrawer = !isOpen && !useTransition;
|
|
125
|
+
}
|
|
126
|
+
onTransitionEnd() {
|
|
127
|
+
if (!this.$isOpened.getValue()) {
|
|
128
|
+
this.hiddenDrawer = true;
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DrawerComponent, deps: [{ token: i0.ComponentFactoryResolver }, { token: i1.DrawerService }], target: i0.ɵɵFactoryTarget.Component });
|
|
132
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: DrawerComponent, selector: "rs-drawer", viewQueries: [{ propertyName: "element", first: true, predicate: ["element"], descendants: true }, { propertyName: "drawer", first: true, predicate: ["drawer"], descendants: true }, { propertyName: "header", first: true, predicate: ["header"], descendants: true }, { propertyName: "content", first: true, predicate: ["content"], descendants: true }, { propertyName: "toolbarSlot", first: true, predicate: ["toolbarSlot"], descendants: true }, { propertyName: "headerSlot", first: true, predicate: ["headerSlot"], descendants: true }, { propertyName: "topSlot", first: true, predicate: ["topSlot"], descendants: true }, { propertyName: "container", first: true, predicate: ["dynamicComponentContainer"], descendants: true, read: ViewContainerRef }], ngImport: i0, template: "<div #element id=\"rs-drawer-container\" class=\"rs-drawer-container\">\r\n <div class=\"rs-drawer-content\">\r\n <ng-content></ng-content>\r\n </div>\r\n <div\r\n #drawer\r\n class=\"rs-drawer\"\r\n [attr.data-mode]=\"config.mode\"\r\n [attr.data-opened]=\"($isOpened | async) ? 'yes' : 'no'\"\r\n [attr.data-transition]=\"useTransition\"\r\n [hidden]=\"hiddenDrawer\"\r\n (transitionend)=\"onTransitionEnd()\"\r\n >\r\n <div class=\"drawer-header\" #header>\r\n <button class=\"drawer-return-button\" (click)=\"hide()\">\r\n <span class=\"drawer-sub-title\" *ngIf=\"config.subTitle\">\r\n {{ config.subTitle }}\r\n </span>\r\n </button>\r\n <div class=\"drawer-title\">{{ config.title }}</div>\r\n <div class=\"drawer-header-slot\" #headerSlot></div>\r\n </div>\r\n <div class=\"drawer-top-slot\" #topSlot></div>\r\n <div class=\"drawer-content-box\">\r\n <div class=\"drawer-content\" #content>\r\n <div class=\"drawer-content-container\">\r\n <ng-template #dynamicComponentContainer></ng-template>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"drawer-toolbar-slot\" #toolbarSlot></div>\r\n </div>\r\n</div>\r\n", styles: [":host{display:block;height:100%}#rs-drawer-container{height:100%}.rs-drawer-container{height:100%;background-color:transparent;overflow:hidden;position:relative}.rs-drawer-container .rs-drawer-content{width:100%;height:100%;overflow:auto;margin-right:0!important}.rs-drawer-container .rs-drawer-content::-webkit-scrollbar{width:5px;height:5px;background:#fff;position:static;z-index:999;border-radius:10px}.rs-drawer-container .rs-drawer-content::-webkit-scrollbar-thumb{background:#eaedf0}.rs-drawer-container .rs-drawer{width:100%;height:100%;border-left:none;background-color:transparent;overflow:visible;pointer-events:none;opacity:0;display:flex;flex-flow:column nowrap;position:absolute;z-index:2;top:0;left:100%}.rs-drawer-container .rs-drawer[data-opened=yes]{left:0;opacity:1}.rs-drawer-container .rs-drawer[data-transition=yes]{transition:.5s ease-in-out;transition-property:opacity,left}.rs-drawer-container .rs-drawer .drawer-header{flex:none;display:flex;flex-flow:row nowrap;justify-content:flex-start;align-items:center;box-sizing:content-box;pointer-events:auto}.rs-drawer-container .rs-drawer .drawer-header .drawer-return-button{flex:none;display:flex;flex-flow:row nowrap;align-items:center;padding:0;border:none;background-color:transparent;cursor:pointer}.rs-drawer-container .rs-drawer .drawer-header .drawer-return-button:before{content:url(\"data:image/svg+xml,%3Csvg width%3D%2224%22 height%3D%2224%22 viewBox%3D%220 0 24 24%22 fill%3D%22none%22 xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0D%3Cpath d%3D%22M12 18L7.54986 12L12 6%22 stroke%3D%22%236C7C90%22 stroke-linecap%3D%22round%22%2F%3E%0D%3Cpath d%3D%22M17.427 12.5C17.7031 12.5 17.927 12.2761 17.927 12C17.927 11.7239 17.7031 11.5 17.427 11.5L17.427 12.5ZM7.39893 12.5L17.427 12.5L17.427 11.5L7.39893 11.5L7.39893 12.5Z%22 fill%3D%22%236C7C90%22%2F%3E%0D%3C%2Fsvg%3E%0D\");width:24px;height:24px;margin-right:8px;transition:transform ease-in-out 125ms}.rs-drawer-container .rs-drawer .drawer-header .drawer-return-button:hover:before{transform:translate(-2px)}.rs-drawer-container .rs-drawer .drawer-header .drawer-return-button .drawer-sub-title{margin-right:12px;font-family:Arial;font-style:normal;font-weight:400}.rs-drawer-container .rs-drawer .drawer-header .drawer-title{flex:none;min-height:14px;padding:0 12px;border-left:1px solid #bdc4ca;font-family:Arial;font-style:normal;font-weight:400}.rs-drawer-container .rs-drawer .drawer-header .drawer-title:empty{padding:0}.rs-drawer-container .rs-drawer .drawer-content-box{flex:auto;height:0;background-color:#f7fafb;pointer-events:auto}.rs-drawer-container .rs-drawer .drawer-content{height:100%;padding:0 20px;border:1px solid #ebedf0;border-radius:15px;background-color:#fff;display:flex;flex-flow:column nowrap}.rs-drawer-container .rs-drawer .drawer-content .drawer-content-container{flex:auto;overflow:hidden auto}.rs-drawer-container .rs-drawer .drawer-toolbar-slot{flex:none;height:32px;margin-left:auto;display:flex;flex-flow:row nowrap;justify-content:flex-end;align-items:center;pointer-events:auto}.rs-drawer-container .rs-drawer .drawer-toolbar-slot:empty{display:none}.rs-drawer-container .rs-drawer .drawer-top-slot{flex:none;pointer-events:auto}.rs-drawer-container .rs-drawer .drawer-top-slot:empty{height:var(--drawer-top, 0px);pointer-events:none}.rs-drawer-container .rs-drawer[data-mode=outer] .drawer-header{height:46px;padding:0 12px 0 8px;background-color:#f7fafb}.rs-drawer-container .rs-drawer[data-mode=outer] .drawer-header .drawer-sub-title,.rs-drawer-container .rs-drawer[data-mode=outer] .drawer-header .drawer-title{color:#1f3f5c;font-size:15px;font-weight:700;line-height:18px}.rs-drawer-container .rs-drawer[data-mode=outer] .drawer-content{padding-bottom:20px}.rs-drawer-container .rs-drawer[data-mode=outer] .drawer-content .drawer-content-container{margin-right:-20px;padding-right:20px}.rs-drawer-container .rs-drawer[data-mode=inner] .drawer-top-slot:empty+.drawer-content-box{padding-top:calc((var(--drawer-top, 0) + 1) * 16px)}.rs-drawer-container .rs-drawer[data-mode=inner] .drawer-header{height:24px;padding:6px 0;border-bottom:1px solid #eaedf0}.rs-drawer-container .rs-drawer[data-mode=inner] .drawer-header .drawer-sub-title,.rs-drawer-container .rs-drawer[data-mode=inner] .drawer-header .drawer-title{color:#44566c;font-size:12px;line-height:14px}.rs-drawer-container .rs-drawer[data-mode=inner] .drawer-header .drawer-title{font-weight:700}.rs-drawer-container .rs-drawer[data-mode=inner] .drawer-content .drawer-content-container{margin-right:-20px;padding-right:20px;padding-left:8px}.rs-drawer-container .rs-drawer[data-mode=inner] .drawer-toolbar-slot{width:100%;padding:16px 0;box-sizing:content-box;border-top:1px solid #eaedf0}::ng-deep .rs-drawer-container .rs-drawer .drawer-toolbar-slot [drawer-toolbar]{display:flex;flex-flow:row nowrap;justify-content:flex-end;align-items:center;gap:12px}::ng-deep .rs-drawer-container .rs-drawer .drawer-toolbar-slot [drawer-toolbar] button{display:flex;flex-flow:row nowrap;justify-content:center;align-items:center;gap:6px;min-width:80px;height:32px;padding:0 12px;border:1px solid #adb5bd;border-radius:4px;background-color:#fff;cursor:pointer;color:#44566c;font-size:13px;font-family:Arial;font-style:normal;font-weight:400;line-height:16px}::ng-deep .rs-drawer-container .rs-drawer .drawer-toolbar-slot [drawer-toolbar] button:hover{border-color:#6c7c90}::ng-deep .rs-drawer-container .rs-drawer .drawer-toolbar-slot [drawer-toolbar] button:disabled{opacity:1!important;border-color:#6c7c9066;color:#44566c66;cursor:unset}::ng-deep .rs-drawer-container .rs-drawer .drawer-toolbar-slot [drawer-toolbar] button.primary{border:none;background-color:#1364b3;color:#fff}::ng-deep .rs-drawer-container .rs-drawer .drawer-toolbar-slot [drawer-toolbar] button.primary:hover{background-color:#176bca}::ng-deep .rs-drawer-container .rs-drawer .drawer-toolbar-slot [drawer-toolbar] button.primary:disabled{background-color:#1364b366}::ng-deep .rs-drawer-container .rs-drawer .drawer-toolbar-slot [drawer-toolbar] button img{width:16px;height:16px}::ng-deep .rs-drawer-container .rs-drawer[data-mode=outer] .drawer-toolbar-slot [drawer-toolbar] button{height:26px;font-size:12px;line-height:14px}::ng-deep .rs-drawer-container .rs-drawer[data-mode=inner] .drawer-toolbar-slot [drawer-toolbar] button img{display:none}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }] });
|
|
133
|
+
}
|
|
134
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DrawerComponent, decorators: [{
|
|
135
|
+
type: Component,
|
|
136
|
+
args: [{ selector: "rs-drawer", template: "<div #element id=\"rs-drawer-container\" class=\"rs-drawer-container\">\r\n <div class=\"rs-drawer-content\">\r\n <ng-content></ng-content>\r\n </div>\r\n <div\r\n #drawer\r\n class=\"rs-drawer\"\r\n [attr.data-mode]=\"config.mode\"\r\n [attr.data-opened]=\"($isOpened | async) ? 'yes' : 'no'\"\r\n [attr.data-transition]=\"useTransition\"\r\n [hidden]=\"hiddenDrawer\"\r\n (transitionend)=\"onTransitionEnd()\"\r\n >\r\n <div class=\"drawer-header\" #header>\r\n <button class=\"drawer-return-button\" (click)=\"hide()\">\r\n <span class=\"drawer-sub-title\" *ngIf=\"config.subTitle\">\r\n {{ config.subTitle }}\r\n </span>\r\n </button>\r\n <div class=\"drawer-title\">{{ config.title }}</div>\r\n <div class=\"drawer-header-slot\" #headerSlot></div>\r\n </div>\r\n <div class=\"drawer-top-slot\" #topSlot></div>\r\n <div class=\"drawer-content-box\">\r\n <div class=\"drawer-content\" #content>\r\n <div class=\"drawer-content-container\">\r\n <ng-template #dynamicComponentContainer></ng-template>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"drawer-toolbar-slot\" #toolbarSlot></div>\r\n </div>\r\n</div>\r\n", styles: [":host{display:block;height:100%}#rs-drawer-container{height:100%}.rs-drawer-container{height:100%;background-color:transparent;overflow:hidden;position:relative}.rs-drawer-container .rs-drawer-content{width:100%;height:100%;overflow:auto;margin-right:0!important}.rs-drawer-container .rs-drawer-content::-webkit-scrollbar{width:5px;height:5px;background:#fff;position:static;z-index:999;border-radius:10px}.rs-drawer-container .rs-drawer-content::-webkit-scrollbar-thumb{background:#eaedf0}.rs-drawer-container .rs-drawer{width:100%;height:100%;border-left:none;background-color:transparent;overflow:visible;pointer-events:none;opacity:0;display:flex;flex-flow:column nowrap;position:absolute;z-index:2;top:0;left:100%}.rs-drawer-container .rs-drawer[data-opened=yes]{left:0;opacity:1}.rs-drawer-container .rs-drawer[data-transition=yes]{transition:.5s ease-in-out;transition-property:opacity,left}.rs-drawer-container .rs-drawer .drawer-header{flex:none;display:flex;flex-flow:row nowrap;justify-content:flex-start;align-items:center;box-sizing:content-box;pointer-events:auto}.rs-drawer-container .rs-drawer .drawer-header .drawer-return-button{flex:none;display:flex;flex-flow:row nowrap;align-items:center;padding:0;border:none;background-color:transparent;cursor:pointer}.rs-drawer-container .rs-drawer .drawer-header .drawer-return-button:before{content:url(\"data:image/svg+xml,%3Csvg width%3D%2224%22 height%3D%2224%22 viewBox%3D%220 0 24 24%22 fill%3D%22none%22 xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0D%3Cpath d%3D%22M12 18L7.54986 12L12 6%22 stroke%3D%22%236C7C90%22 stroke-linecap%3D%22round%22%2F%3E%0D%3Cpath d%3D%22M17.427 12.5C17.7031 12.5 17.927 12.2761 17.927 12C17.927 11.7239 17.7031 11.5 17.427 11.5L17.427 12.5ZM7.39893 12.5L17.427 12.5L17.427 11.5L7.39893 11.5L7.39893 12.5Z%22 fill%3D%22%236C7C90%22%2F%3E%0D%3C%2Fsvg%3E%0D\");width:24px;height:24px;margin-right:8px;transition:transform ease-in-out 125ms}.rs-drawer-container .rs-drawer .drawer-header .drawer-return-button:hover:before{transform:translate(-2px)}.rs-drawer-container .rs-drawer .drawer-header .drawer-return-button .drawer-sub-title{margin-right:12px;font-family:Arial;font-style:normal;font-weight:400}.rs-drawer-container .rs-drawer .drawer-header .drawer-title{flex:none;min-height:14px;padding:0 12px;border-left:1px solid #bdc4ca;font-family:Arial;font-style:normal;font-weight:400}.rs-drawer-container .rs-drawer .drawer-header .drawer-title:empty{padding:0}.rs-drawer-container .rs-drawer .drawer-content-box{flex:auto;height:0;background-color:#f7fafb;pointer-events:auto}.rs-drawer-container .rs-drawer .drawer-content{height:100%;padding:0 20px;border:1px solid #ebedf0;border-radius:15px;background-color:#fff;display:flex;flex-flow:column nowrap}.rs-drawer-container .rs-drawer .drawer-content .drawer-content-container{flex:auto;overflow:hidden auto}.rs-drawer-container .rs-drawer .drawer-toolbar-slot{flex:none;height:32px;margin-left:auto;display:flex;flex-flow:row nowrap;justify-content:flex-end;align-items:center;pointer-events:auto}.rs-drawer-container .rs-drawer .drawer-toolbar-slot:empty{display:none}.rs-drawer-container .rs-drawer .drawer-top-slot{flex:none;pointer-events:auto}.rs-drawer-container .rs-drawer .drawer-top-slot:empty{height:var(--drawer-top, 0px);pointer-events:none}.rs-drawer-container .rs-drawer[data-mode=outer] .drawer-header{height:46px;padding:0 12px 0 8px;background-color:#f7fafb}.rs-drawer-container .rs-drawer[data-mode=outer] .drawer-header .drawer-sub-title,.rs-drawer-container .rs-drawer[data-mode=outer] .drawer-header .drawer-title{color:#1f3f5c;font-size:15px;font-weight:700;line-height:18px}.rs-drawer-container .rs-drawer[data-mode=outer] .drawer-content{padding-bottom:20px}.rs-drawer-container .rs-drawer[data-mode=outer] .drawer-content .drawer-content-container{margin-right:-20px;padding-right:20px}.rs-drawer-container .rs-drawer[data-mode=inner] .drawer-top-slot:empty+.drawer-content-box{padding-top:calc((var(--drawer-top, 0) + 1) * 16px)}.rs-drawer-container .rs-drawer[data-mode=inner] .drawer-header{height:24px;padding:6px 0;border-bottom:1px solid #eaedf0}.rs-drawer-container .rs-drawer[data-mode=inner] .drawer-header .drawer-sub-title,.rs-drawer-container .rs-drawer[data-mode=inner] .drawer-header .drawer-title{color:#44566c;font-size:12px;line-height:14px}.rs-drawer-container .rs-drawer[data-mode=inner] .drawer-header .drawer-title{font-weight:700}.rs-drawer-container .rs-drawer[data-mode=inner] .drawer-content .drawer-content-container{margin-right:-20px;padding-right:20px;padding-left:8px}.rs-drawer-container .rs-drawer[data-mode=inner] .drawer-toolbar-slot{width:100%;padding:16px 0;box-sizing:content-box;border-top:1px solid #eaedf0}::ng-deep .rs-drawer-container .rs-drawer .drawer-toolbar-slot [drawer-toolbar]{display:flex;flex-flow:row nowrap;justify-content:flex-end;align-items:center;gap:12px}::ng-deep .rs-drawer-container .rs-drawer .drawer-toolbar-slot [drawer-toolbar] button{display:flex;flex-flow:row nowrap;justify-content:center;align-items:center;gap:6px;min-width:80px;height:32px;padding:0 12px;border:1px solid #adb5bd;border-radius:4px;background-color:#fff;cursor:pointer;color:#44566c;font-size:13px;font-family:Arial;font-style:normal;font-weight:400;line-height:16px}::ng-deep .rs-drawer-container .rs-drawer .drawer-toolbar-slot [drawer-toolbar] button:hover{border-color:#6c7c90}::ng-deep .rs-drawer-container .rs-drawer .drawer-toolbar-slot [drawer-toolbar] button:disabled{opacity:1!important;border-color:#6c7c9066;color:#44566c66;cursor:unset}::ng-deep .rs-drawer-container .rs-drawer .drawer-toolbar-slot [drawer-toolbar] button.primary{border:none;background-color:#1364b3;color:#fff}::ng-deep .rs-drawer-container .rs-drawer .drawer-toolbar-slot [drawer-toolbar] button.primary:hover{background-color:#176bca}::ng-deep .rs-drawer-container .rs-drawer .drawer-toolbar-slot [drawer-toolbar] button.primary:disabled{background-color:#1364b366}::ng-deep .rs-drawer-container .rs-drawer .drawer-toolbar-slot [drawer-toolbar] button img{width:16px;height:16px}::ng-deep .rs-drawer-container .rs-drawer[data-mode=outer] .drawer-toolbar-slot [drawer-toolbar] button{height:26px;font-size:12px;line-height:14px}::ng-deep .rs-drawer-container .rs-drawer[data-mode=inner] .drawer-toolbar-slot [drawer-toolbar] button img{display:none}\n"] }]
|
|
137
|
+
}], ctorParameters: function () { return [{ type: i0.ComponentFactoryResolver }, { type: i1.DrawerService }]; }, propDecorators: { element: [{
|
|
138
|
+
type: ViewChild,
|
|
139
|
+
args: ["element", { static: false }]
|
|
140
|
+
}], drawer: [{
|
|
141
|
+
type: ViewChild,
|
|
142
|
+
args: ["drawer", { static: false }]
|
|
143
|
+
}], header: [{
|
|
144
|
+
type: ViewChild,
|
|
145
|
+
args: ["header", { static: false }]
|
|
146
|
+
}], content: [{
|
|
147
|
+
type: ViewChild,
|
|
148
|
+
args: ["content", { static: false }]
|
|
149
|
+
}], toolbarSlot: [{
|
|
150
|
+
type: ViewChild,
|
|
151
|
+
args: ["toolbarSlot", { static: false }]
|
|
152
|
+
}], headerSlot: [{
|
|
153
|
+
type: ViewChild,
|
|
154
|
+
args: ["headerSlot", { static: false }]
|
|
155
|
+
}], topSlot: [{
|
|
156
|
+
type: ViewChild,
|
|
157
|
+
args: ["topSlot", { static: false }]
|
|
158
|
+
}], container: [{
|
|
159
|
+
type: ViewChild,
|
|
160
|
+
args: ["dynamicComponentContainer", {
|
|
161
|
+
read: ViewContainerRef,
|
|
162
|
+
static: false,
|
|
163
|
+
}]
|
|
164
|
+
}] } });
|
|
165
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcmFpc2UtY29tbW9uLWxpYi9zcmMvbGliL2xheW91dC9kcmF3ZXIvaW5kZXguY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcmFpc2UtY29tbW9uLWxpYi9zcmMvbGliL2xheW91dC9kcmF3ZXIvaW5kZXguY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxTQUFTLEVBQ1QsZ0JBQWdCLEdBSWpCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDdkMsT0FBTyxFQUVMLG1CQUFtQixHQUVwQixNQUFNLDhCQUE4QixDQUFDOzs7O0FBZXRDLE1BQU0sT0FBTyxlQUFlO0lBMEJoQjtJQUNBO0lBMUIrQixPQUFPLENBQTZCO0lBQ3JDLE1BQU0sQ0FBNkI7SUFDbkMsTUFBTSxDQUE2QjtJQUNsQyxPQUFPLENBQTZCO0lBRzdFLFdBQVcsQ0FBNkI7SUFFeEMsVUFBVSxDQUE2QjtJQUNFLE9BQU8sQ0FBNkI7SUFNckUsU0FBUyxDQUFtQjtJQUVwQyxNQUFNLEdBQWlCLG1CQUFtQixDQUFDO0lBQzNDLGFBQWEsR0FBaUIsS0FBSyxDQUFDO0lBQ3BDLFNBQVMsR0FBRyxJQUFJLGVBQWUsQ0FBVSxLQUFLLENBQUMsQ0FBQztJQUNoRCxZQUFZLEdBQUcsSUFBSSxDQUFDO0lBRVosZUFBZSxHQUFHLElBQUksR0FBRyxFQUFnQyxDQUFDO0lBRWxFLFlBQ1UsUUFBa0MsRUFDbEMsT0FBc0I7UUFEdEIsYUFBUSxHQUFSLFFBQVEsQ0FBMEI7UUFDbEMsWUFBTyxHQUFQLE9BQU8sQ0FBZTtJQUM3QixDQUFDO0lBRUksc0JBQXNCLENBQUMsU0FBc0M7UUFDbkUsbUNBQW1DO1FBQ25DLE1BQU0sT0FBTyxH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ZW50IjpbImltcG9ydCB7XHJcbiAgQ29tcG9uZW50LFxyXG4gIFZpZXdDaGlsZCxcclxuICBWaWV3Q29udGFpbmVyUmVmLFxyXG4gIENvbXBvbmVudEZhY3RvcnlSZXNvbHZlcixcclxuICBDb21wb25lbnRSZWYsXHJcbiAgRWxlbWVudFJlZixcclxufSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QgfSBmcm9tIFwicnhqc1wiO1xyXG5pbXBvcnQge1xyXG4gIERyYXdlckNvbmZpZyxcclxuICBEZWZhdWx0RHJhd2VyQ29uZmlnLFxyXG4gIERyYXdlclNlcnZpY2UsXHJcbn0gZnJvbSBcIi4uLy4uL3NlcnZpY2UvZHJhd2VyLnNlcnZpY2VcIjtcclxuXHJcbnR5cGUgRHJhd2VyQ29tcG9uZW50Q2FjaGUgPSB7XHJcbiAgcmVmOiBDb21wb25lbnRSZWY8YW55PjtcclxuICBjb25maWc6IERyYXdlckNvbmZpZztcclxuICB0b29sYmFyRWw6IEhUTUxFbGVtZW50O1xyXG4gIGhlYWRlckVsOiBIVE1MRWxlbWVudDtcclxuICB0b3BFbDogSFRNTEVsZW1lbnQ7XHJcbn07XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogXCJycy1kcmF3ZXJcIixcclxuICB0ZW1wbGF0ZVVybDogXCIuL2luZGV4LmNvbXBvbmVudC5odG1sXCIsXHJcbiAgc3R5bGVVcmxzOiBbXCIuL2luZGV4LmNvbXBvbmVudC5zY3NzXCJdLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgRHJhd2VyQ29tcG9uZW50IHtcclxuICBAVmlld0NoaWxkKFwiZWxlbWVudFwiLCB7IHN0YXRpYzogZmFsc2UgfSkgZWxlbWVudDogRWxlbWVudFJlZjxIVE1MRGl2RWxlbWVudD47XHJcbiAgQFZpZXdDaGlsZChcImRyYXdlclwiLCB7IHN0YXRpYzogZmFsc2UgfSkgZHJhd2VyOiBFbGVtZW50UmVmPEhUTUxEaXZFbGVtZW50PjtcclxuICBAVmlld0NoaWxkKFwiaGVhZGVyXCIsIHsgc3RhdGljOiBmYWxzZSB9KSBoZWFkZXI6IEVsZW1lbnRSZWY8SFRNTERpdkVsZW1lbnQ+O1xyXG4gIEBWaWV3Q2hpbGQoXCJjb250ZW50XCIsIHsgc3RhdGljOiBmYWxzZSB9KSBjb250ZW50OiBFbGVtZW50UmVmPEhUTUxEaXZFbGVtZW50PjtcclxuXHJcbiAgQFZpZXdDaGlsZChcInRvb2xiYXJTbG90XCIsIHsgc3RhdGljOiBmYWxzZSB9KVxyXG4gIHRvb2xiYXJTbG90OiBFbGVtZW50UmVmPEhUTUxEaXZFbGVtZW50PjtcclxuICBAVmlld0NoaWxkKFwiaGVhZGVyU2xvdFwiLCB7IHN0YXRpYzogZmFsc2UgfSlcclxuICBoZWFkZXJTbG90OiBFbGVtZW50UmVmPEhUTUxEaXZFbGVtZW50PjtcclxuICBAVmlld0NoaWxkKFwidG9wU2xvdFwiLCB7IHN0YXRpYzogZmFsc2UgfSkgdG9wU2xvdDogRWxlbWVudFJlZjxIVE1MRGl2RWxlbWVudD47XHJcblxyXG4gIEBWaWV3Q2hpbGQoXCJkeW5hbWljQ29tcG9uZW50Q29udGFpbmVyXCIsIHtcclxuICAgIHJlYWQ6IFZpZXdDb250YWluZXJSZWYsXHJcbiAgICBzdGF0aWM6IGZhbHNlLFxyXG4gIH0pXHJcbiAgcHJpdmF0ZSBjb250YWluZXI6IFZpZXdDb250YWluZXJSZWY7XHJcblxyXG4gIGNvbmZpZzogRHJhd2VyQ29uZmlnID0gRGVmYXVsdERyYXdlckNvbmZpZztcclxuICB1c2VUcmFuc2l0aW9uOiBcInllc1wiIHwgXCJub1wiID0gXCJ5ZXNcIjtcclxuICAkaXNPcGVuZWQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KGZhbHNlKTtcclxuICBoaWRkZW5EcmF3ZXIgPSB0cnVlO1xyXG5cclxuICBwcml2YXRlIGNvbXBvbmVudFJlZk1hcCA9IG5ldyBNYXA8c3RyaW5nLCBEcmF3ZXJDb21wb25lbnRDYWNoZT4oKTtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIHJlc29sdmVyOiBDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIsXHJcbiAgICBwcml2YXRlIHNlcnZpY2U6IERyYXdlclNlcnZpY2VcclxuICApIHt9XHJcblxyXG4gIHByaXZhdGUgY3JlYXRlRHluYW1pY0NvbXBvbmVudChjb21wb25lbnQ6IG5ldyAoLi4uYXJnczogYW55W10pID0+IGFueSkge1xyXG4gICAgLy8g56Gu5L+d5Zyo6LCD55So5LmL5YmN55uu5qCH57uE5Lu25bey57uP5ZyoZW50cnlDb21wb25lbnRz5Lit5aOw5piOXHJcbiAgICBjb25zdCBmYWN0b3J5ID0gdGhpcy5yZXNvbHZlci5yZXNvbHZlQ29tcG9uZW50RmFjdG9yeShjb21wb25lbnQpO1xyXG4gICAgY29uc3QgY29tcG9uZW50UmVmID0gdGhpcy5jb250YWluZXIuY3JlYXRlQ29tcG9uZW50KGZhY3RvcnkpO1xyXG4gICAgcmV0dXJuIGNvbXBvbmVudFJlZjtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZGVzdHJveUR5bmFtaWNDb21wb25lbnQoY29tcG9uZW50UmVmOiBDb21wb25lbnRSZWY8YW55Pikge1xyXG4gICAgaWYgKGNvbXBvbmVudFJlZikge1xyXG4gICAgICBjb21wb25lbnRSZWYuZGVzdHJveSgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBzZXRDb21wb25lbnREYXRhKFxyXG4gICAgY29tcG9uZW50UmVmOiBDb21wb25lbnRSZWY8YW55PixcclxuICAgIGRhdGE6IFJlY29yZDxzdHJpbmcsIGFueT4gPSB7fVxyXG4gICkge1xyXG4gICAgLy8g5aaC5p6c6ZyA6KaB5Lyg6YCS5pWw5o2u57uZ5Yqo5oCB57uE5Lu277yM5Y+v5Lul6L+Z5qC35YGaXHJcbiAgICBpZiAoY29tcG9uZW50UmVmKSB7XHJcbiAgICAgIE9iamVjdC5lbnRyaWVzKGRhdGEpLmZvckVhY2goKFtrZXksIHZhbHVlXSkgPT4ge1xyXG4gICAgICAgIGNvbXBvbmVudFJlZi5pbnN0YW5jZVtrZXldID0gdmFsdWU7XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBnZXRTbG90RWxlbWVudChjb21wb25lbnRSZWY6IENvbXBvbmVudFJlZjxhbnk+LCBzZWxlY3Rvcjogc3RyaW5nKSB7XHJcbiAgICBjb25zdCBjb21wb25lbnRFbCA9IGNvbXBvbmVudFJlZi5sb2NhdGlvbi5uYXRpdmVFbGVtZW50O1xyXG4gICAgcmV0dXJuIGNvbXBvbmVudEVsLnF1ZXJ5U2VsZWN0b3Ioc2VsZWN0b3IpIGFzIEhUTUxFbGVtZW50O1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBzZXRTbG90RWxlbWVudChzbG90RWw6IEhUTUxFbGVtZW50LCBjb250YWluZXJFbDogSFRNTEVsZW1lbnQpIHtcclxuICAgIGNvbnRhaW5lckVsLmlubmVySFRNTCA9IFwiXCI7XHJcbiAgICBpZiAoc2xvdEVsKSB7XHJcbiAgICAgIGNvbnRhaW5lckVsLmFwcGVuZChzbG90RWwpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgc2V0Q2FjaGUoY2FjaGU6IERyYXdlckNvbXBvbmVudENhY2hlKSB7XHJcbiAgICB0aGlzLnNldFNsb3RFbGVtZW50KGNhY2hlLnRvb2xiYXJFbCwgdGhpcy50b29sYmFyU2xvdC5uYXRpdmVFbGVtZW50KTtcclxuICAgIHRoaXMuc2V0U2xvdEVsZW1lbnQoY2FjaGUuaGVhZGVyRWwsIHRoaXMuaGVhZGVyU2xvdC5uYXRpdmVFbGVtZW50KTtcclxuICAgIHRoaXMuc2V0U2xvdEVsZW1lbnQoY2FjaGUudG9wRWwsIHRoaXMudG9wU2xvdC5uYXRpdmVFbGVtZW50KTtcclxuICAgIGNvbnN0IGRyYXdlclRvcCA9IGNhY2hlLmNvbmZpZy50b3AgPyBgJHtjYWNoZS5jb25maWcudG9wfXB4YCA6IFwiXCI7XHJcbiAgICB0aGlzLmVsZW1lbnQubmF0aXZlRWxlbWVudC5zdHlsZS5zZXRQcm9wZXJ0eShcIi0tZHJhd2VyLXRvcFwiLCBkcmF3ZXJUb3ApO1xyXG4gICAgaWYgKGNhY2hlLmNvbmZpZy5tb2RlID09PSBcImlubmVyXCIpIHtcclxuICAgICAgdGhpcy5jb250ZW50Lm5hdGl2ZUVsZW1lbnQuaW5zZXJ0QmVmb3JlKFxyXG4gICAgICAgIHRoaXMuaGVhZGVyLm5hdGl2ZUVsZW1lbnQsXHJcbiAgICAgICAgdGhpcy5jb250ZW50Lm5hdGl2ZUVsZW1lbnQuZmlyc3RDaGlsZFxyXG4gICAgICApO1xyXG4gICAgICB0aGlzLmNvbnRlbnQubmF0aXZlRWxlbWVudC5hcHBlbmQodGhpcy50b29sYmFyU2xvdC5uYXRpdmVFbGVtZW50KTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuZHJhd2VyLm5hdGl2ZUVsZW1lbnQuaW5zZXJ0QmVmb3JlKFxyXG4gICAgICAgIHRoaXMuaGVhZGVyLm5hdGl2ZUVsZW1lbnQsXHJcbiAgICAgICAgdGhpcy5kcmF3ZXIubmF0aXZlRWxlbWVudC5maXJzdENoaWxkXHJcbiAgICAgICk7XHJcbiAgICAgIHRoaXMuaGVhZGVyLm5hdGl2ZUVsZW1lbnQuYXBwZW5kKHRoaXMudG9vbGJhclNsb3QubmF0aXZlRWxlbWVudCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBzaG93PFQ+KFxyXG4gICAgY29tcG9uZW50OiBuZXcgKC4uLmFyZ3M6IGFueVtdKSA9PiBULFxyXG4gICAgY29uZmlnOiBEcmF3ZXJDb25maWcsXHJcbiAgICBkYXRhOiBSZWNvcmQ8c3RyaW5nLCBhbnk+XHJcbiAgKTogVCB7XHJcbiAgICBjb25zdCBzaG93Q29uZmlnID0geyAuLi5EZWZhdWx0RHJhd2VyQ29uZmlnLCAuLi5jb25maWcgfTtcclxuICAgIGNvbnN0IGNvbXBvbmVudFJlZiA9IHRoaXMuY3JlYXRlRHluYW1pY0NvbXBvbmVudChjb21wb25lbnQpO1xyXG4gICAgY29uc3QgdG9vbGJhckVsID0gdGhpcy5nZXRTbG90RWxlbWVudChjb21wb25lbnRSZWYsIFwiW2RyYXdlci10b29sYmFyXVwiKTtcclxuICAgIGNvbnN0IGhlYWRlckVsID0gdGhpcy5nZXRTbG90RWxlbWVudChjb21wb25lbnRSZWYsIFwiW2RyYXdlci1oZWFkZXJdXCIpO1xyXG4gICAgY29uc3QgdG9wRWwgPSB0aGlzLmdldFNsb3RFbGVtZW50KGNvbXBvbmVudFJlZiwgXCJbZHJhd2VyLXRvcF1cIik7XHJcbiAgICBjb25zdCBjYWNoZSA9IHtcclxuICAgICAgY29uZmlnOiBzaG93Q29uZmlnLFxyXG4gICAgICByZWY6IGNvbXBvbmVudFJlZixcclxuICAgICAgdG9vbGJhckVsLFxyXG4gICAgICBoZWFkZXJFbCxcclxuICAgICAgdG9wRWwsXHJcbiAgICB9O1xyXG5cclxuICAgIHRoaXMuc2V0Q29tcG9uZW50RGF0YShjb21wb25lbnRSZWYsIGRhdGEpO1xyXG4gICAgdGhpcy5jb21wb25lbnRSZWZNYXAuc2V0KHRoaXMuc2VydmljZS5jYWNoZUtleSwgY2FjaGUpO1xyXG5cclxuICAgIHRoaXMuc2V0Q2FjaGUoY2FjaGUpO1xyXG4gICAgdGhpcy5jb25maWcgPSBzaG93Q29uZmlnO1xyXG4gICAgdGhpcy50b2dnbGVPcGVuU3RhdHVzKHRydWUsIHRydWUpO1xyXG4gICAgcmV0dXJuIGNvbXBvbmVudFJlZi5pbnN0YW5jZTtcclxuICB9XHJcblxyXG4gIGhpZGUoKSB7XHJcbiAgICB0aGlzLnNlcnZpY2UuaGlkZSgpO1xyXG4gIH1cclxuXHJcbiAgYmFjaygpIHtcclxuICAgIHRoaXMuZGVsZXRlQ2FjaGUodGhpcy5zZXJ2aWNlLmNhY2hlS2V5KTtcclxuICAgIHRoaXMudG9nZ2xlT3BlblN0YXR1cyhmYWxzZSwgdHJ1ZSk7XHJcbiAgfVxyXG5cclxuICBkZWxldGVDYWNoZShjYWNoZUtleTogc3RyaW5nKSB7XHJcbiAgICBjb25zdCBjYWNoZSA9IHRoaXMuY29tcG9uZW50UmVmTWFwLmdldChjYWNoZUtleSk7XHJcbiAgICBpZiAoY2FjaGUpIHtcclxuICAgICAgdGhpcy5kZXN0cm95RHluYW1pY0NvbXBvbmVudChjYWNoZS5yZWYpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5jb21wb25lbnRSZWZNYXAuZGVsZXRlKGNhY2hlS2V5KTtcclxuICB9XHJcblxyXG4gIG9uUm91dGVDaGFuZ2UoKSB7XHJcbiAgICB0aGlzLmNvbXBvbmVudFJlZk1hcC5mb3JFYWNoKChjYWNoZSkgPT4ge1xyXG4gICAgICBjYWNoZS5yZWYubG9jYXRpb24ubmF0aXZlRWxlbWVudC5zdHlsZS5kaXNwbGF5ID0gXCJub25lXCI7XHJcbiAgICB9KTtcclxuICAgIGNvbnN0IGNhY2hlID0gdGhpcy5jb21wb25lbnRSZWZNYXAuZ2V0KHRoaXMuc2VydmljZS5jYWNoZUtleSk7XHJcbiAgICBpZiAoY2FjaGUpIHtcclxuICAgICAgY2FjaGUucmVmLmxvY2F0aW9uLm5hdGl2ZUVsZW1lbnQuc3R5bGUuZGlzcGxheSA9IFwiXCI7XHJcbiAgICAgIHRoaXMuY29uZmlnID0gY2FjaGUuY29uZmlnO1xyXG4gICAgICB0aGlzLnNldENhY2hlKGNhY2hlKTtcclxuICAgICAgdGhpcy50b2dnbGVPcGVuU3RhdHVzKHRydWUpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy50b2dnbGVPcGVuU3RhdHVzKGZhbHNlKTtcclxuICAgIH1cclxuICAgIHRoaXMudXNlVHJhbnNpdGlvbiA9IFwibm9cIjtcclxuICB9XHJcblxyXG4gIHRvZ2dsZU9wZW5TdGF0dXMoaXNPcGVuOiBib29sZWFuLCB1c2VUcmFuc2l0aW9uID0gZmFsc2UpIHtcclxuICAgIHRoaXMuJGlzT3BlbmVkLm5leHQoaXNPcGVuKTtcclxuICAgIHRoaXMudXNlVHJhbnNpdGlvbiA9IHVzZVRyYW5zaXRpb24gPyBcInllc1wiIDogXCJub1wiO1xyXG4gICAgdGhpcy5oaWRkZW5EcmF3ZXIgPSAhaXNPcGVuICYmICF1c2VUcmFuc2l0aW9uO1xyXG4gIH1cclxuXHJcbiAgb25UcmFuc2l0aW9uRW5kKCkge1xyXG4gICAgaWYgKCF0aGlzLiRpc09wZW5lZC5nZXRWYWx1ZSgpKSB7XHJcbiAgICAgIHRoaXMuaGlkZGVuRHJhd2VyID0gdHJ1ZTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIiwiPGRpdiAjZWxlbWVudCBpZD1cInJzLWRyYXdlci1jb250YWluZXJcIiBjbGFzcz1cInJzLWRyYXdlci1jb250YWluZXJcIj5cclxuICA8ZGl2IGNsYXNzPVwicnMtZHJhd2VyLWNvbnRlbnRcIj5cclxuICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cclxuICA8L2Rpdj5cclxuICA8ZGl2XHJcbiAgICAjZHJhd2VyXHJcbiAgICBjbGFzcz1cInJzLWRyYXdlclwiXHJcbiAgICBbYXR0ci5kYXRhLW1vZGVdPVwiY29uZmlnLm1vZGVcIlxyXG4gICAgW2F0dHIuZGF0YS1vcGVuZWRdPVwiKCRpc09wZW5lZCB8IGFzeW5jKSA/ICd5ZXMnIDogJ25vJ1wiXHJcbiAgICBbYXR0ci5kYXRhLXRyYW5zaXRpb25dPVwidXNlVHJhbnNpdGlvblwiXHJcbiAgICBbaGlkZGVuXT1cImhpZGRlbkRyYXdlclwiXHJcbiAgICAodHJhbnNpdGlvbmVuZCk9XCJvblRyYW5zaXRpb25FbmQoKVwiXHJcbiAgPlxyXG4gICAgPGRpdiBjbGFzcz1cImRyYXdlci1oZWFkZXJcIiAjaGVhZGVyPlxyXG4gICAgICA8YnV0dG9uIGNsYXNzPVwiZHJhd2VyLXJldHVybi1idXR0b25cIiAoY2xpY2spPVwiaGlkZSgpXCI+XHJcbiAgICAgICAgPHNwYW4gY2xhc3M9XCJkcmF3ZXItc3ViLXRpdGxlXCIgKm5nSWY9XCJjb25maWcuc3ViVGl0bGVcIj5cclxuICAgICAgICAgIHt7IGNvbmZpZy5zdWJUaXRsZSB9fVxyXG4gICAgICAgIDwvc3Bhbj5cclxuICAgICAgPC9idXR0b24+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJkcmF3ZXItdGl0bGVcIj57eyBjb25maWcudGl0bGUgfX08L2Rpdj5cclxuICAgICAgPGRpdiBjbGFzcz1cImRyYXdlci1oZWFkZXItc2xvdFwiICNoZWFkZXJTbG90PjwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwiZHJhd2VyLXRvcC1zbG90XCIgI3RvcFNsb3Q+PC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwiZHJhd2VyLWNvbnRlbnQtYm94XCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJkcmF3ZXItY29udGVudFwiICNjb250ZW50PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJkcmF3ZXItY29udGVudC1jb250YWluZXJcIj5cclxuICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjZHluYW1pY0NvbXBvbmVudENvbnRhaW5lcj48L25nLXRlbXBsYXRlPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cImRyYXdlci10b29sYmFyLXNsb3RcIiAjdG9vbGJhclNsb3Q+PC9kaXY+XHJcbiAgPC9kaXY+XHJcbjwvZGl2PlxyXG4iXX0=
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
// 组件类
|
|
2
|
+
import { Component, ContentChild, Input, } from "@angular/core";
|
|
3
|
+
import { CommonGridComponent } from "../../common-grid/index.component";
|
|
4
|
+
import { debounce } from "lodash";
|
|
5
|
+
import { GridComponent } from "@syncfusion/ej2-angular-grids";
|
|
6
|
+
import { TreeGridComponent } from "@syncfusion/ej2-angular-treegrid";
|
|
7
|
+
import * as i0 from "@angular/core";
|
|
8
|
+
import * as i1 from "@angular/common";
|
|
9
|
+
import * as i2 from "@angular/forms";
|
|
10
|
+
import * as i3 from "@syncfusion/ej2-angular-inputs";
|
|
11
|
+
export class GridBoxComponent {
|
|
12
|
+
gridContent;
|
|
13
|
+
orignGrid;
|
|
14
|
+
treeGrid;
|
|
15
|
+
wholeToolbarSlot;
|
|
16
|
+
hideSearch = false;
|
|
17
|
+
isInner = false;
|
|
18
|
+
debouncedInput;
|
|
19
|
+
hasWholeToolbarSlot = false;
|
|
20
|
+
ngOnInit() {
|
|
21
|
+
this.debouncedInput = debounce(() => {
|
|
22
|
+
this.onSeach();
|
|
23
|
+
}, 300);
|
|
24
|
+
}
|
|
25
|
+
ngAfterContentInit() {
|
|
26
|
+
// 检测是否传入了 wholeToolbarSlot
|
|
27
|
+
this.hasWholeToolbarSlot = !!this.wholeToolbarSlot;
|
|
28
|
+
}
|
|
29
|
+
searchValue;
|
|
30
|
+
onSeach() {
|
|
31
|
+
if (this.gridContent) {
|
|
32
|
+
this.gridContent.grid.search(this.searchValue);
|
|
33
|
+
}
|
|
34
|
+
else if (this.orignGrid) {
|
|
35
|
+
this.orignGrid.search(this.searchValue);
|
|
36
|
+
}
|
|
37
|
+
else if (this.treeGrid) {
|
|
38
|
+
this.treeGrid.search(this.searchValue);
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
onInput() {
|
|
42
|
+
this.debouncedInput();
|
|
43
|
+
}
|
|
44
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: GridBoxComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
45
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: GridBoxComponent, selector: "rs-grid-box", inputs: { hideSearch: "hideSearch", isInner: "isInner" }, queries: [{ propertyName: "gridContent", first: true, predicate: CommonGridComponent, descendants: true }, { propertyName: "orignGrid", first: true, predicate: GridComponent, descendants: true }, { propertyName: "treeGrid", first: true, predicate: TreeGridComponent, descendants: true }, { propertyName: "wholeToolbarSlot", first: true, predicate: ["wholeToolbarSlot"], descendants: true }], ngImport: i0, template: "<div class=\"rs-grid-box\" [ngClass]=\"{ 'is-not-inner': !isInner }\">\r\n <div class=\"rs-content-tab\">\r\n <ng-content select=\"[contentTabSlot]\"></ng-content>\r\n </div>\r\n <div class=\"rs-toolbar-wrap\">\r\n <div class=\"rs-whole-bar\" *ngIf=\"hasWholeToolbarSlot\">\r\n <ng-content select=\"[wholeToolbarSlot]\"></ng-content>\r\n </div>\r\n <div class=\"rs-left-col\" *ngIf=\"!hasWholeToolbarSlot\">\r\n <ng-content select=\"[leftToolbarBtnSlot]\"></ng-content>\r\n </div>\r\n <div class=\"rs-right-col\" *ngIf=\"!hasWholeToolbarSlot\">\r\n <ng-content select=\"[rightToolbarBtnSlot]\"></ng-content>\r\n <div class=\"rs-search-input\" *ngIf=\"!hideSearch\">\r\n <ejs-textbox\r\n type=\"text\"\r\n class=\"e-input\"\r\n [(ngModel)]=\"searchValue\"\r\n (input)=\"onInput()\"\r\n placeholder=\"Search all fields\"\r\n [showClearButton]=\"true\"\r\n autocomplete=\"off\"\r\n ></ejs-textbox>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"rs-grid-wrap\">\r\n <ng-content select=\"[gridSlot]\"></ng-content>\r\n </div>\r\n</div>\r\n", styles: [":host{height:100%}.rs-grid-box{display:flex;flex-direction:column;height:100%}.rs-grid-box.is-not-inner{border-radius:15px;padding:12px 20px;background:#fff;border:1px solid var(--rs-border-color);box-shadow:0 0 4px #0000001a}.rs-grid-box .rs-toolbar-wrap{display:flex;justify-content:space-between;align-items:center;padding-bottom:4px;border-bottom:1px solid #eaedf0}.rs-grid-box .rs-toolbar-wrap .rs-whole-bar{width:100%}.rs-grid-box .rs-toolbar-wrap .rs-left-col,.rs-grid-box .rs-toolbar-wrap .rs-right-col{display:flex;align-items:center}.rs-grid-box .rs-toolbar-wrap .rs-left-col ::ng-deep .e-btn,.rs-grid-box .rs-toolbar-wrap .rs-right-col ::ng-deep .e-btn{height:24px!important;min-width:auto!important}.rs-grid-box .rs-toolbar-wrap .rs-left-col{flex:1;width:0;gap:4px}.rs-grid-box .rs-toolbar-wrap .rs-right-col{gap:12px}.rs-grid-box .rs-grid-wrap{flex:1;height:0}.rs-grid-box .rs-search-input{width:240px}.rs-grid-box .rs-search-input ::ng-deep .e-input-group{border-radius:14px!important}.rs-grid-box .rs-search-input ::ng-deep .e-input-group.e-input-focus,.rs-grid-box .rs-search-input ::ng-deep .e-input-group:hover{box-shadow:0 0 3px #1f7bff66!important;border-color:var(--rs-input-hover-border-color)!important}.rs-grid-box .rs-search-input ::ng-deep .e-input-group.e-input-focus input.e-input,.rs-grid-box .rs-search-input ::ng-deep .e-input-group:hover input.e-input{box-shadow:none!important}.rs-grid-box .rs-search-input ::ng-deep .e-input-group input.e-input{width:calc(100% - 50px);height:26px}.rs-grid-box .rs-search-input ::ng-deep .e-input-group input.e-input:hover{box-shadow:none!important}.rs-grid-box .rs-search-input ::ng-deep .e-input-group:before{content:\"\"!important;margin:6px 0 0 8px;display:block;width:16px;height:16px;background-image:url(/assets/img/search.svg);background-size:cover;background-position:center}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i3.TextBoxComponent, selector: "ejs-textbox", inputs: ["autocomplete", "cssClass", "enablePersistence", "enableRtl", "enabled", "floatLabelType", "htmlAttributes", "locale", "multiline", "placeholder", "readonly", "showClearButton", "type", "value", "width"], outputs: ["blur", "change", "created", "destroyed", "focus", "input", "valueChange"] }] });
|
|
46
|
+
}
|
|
47
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: GridBoxComponent, decorators: [{
|
|
48
|
+
type: Component,
|
|
49
|
+
args: [{ selector: "rs-grid-box", template: "<div class=\"rs-grid-box\" [ngClass]=\"{ 'is-not-inner': !isInner }\">\r\n <div class=\"rs-content-tab\">\r\n <ng-content select=\"[contentTabSlot]\"></ng-content>\r\n </div>\r\n <div class=\"rs-toolbar-wrap\">\r\n <div class=\"rs-whole-bar\" *ngIf=\"hasWholeToolbarSlot\">\r\n <ng-content select=\"[wholeToolbarSlot]\"></ng-content>\r\n </div>\r\n <div class=\"rs-left-col\" *ngIf=\"!hasWholeToolbarSlot\">\r\n <ng-content select=\"[leftToolbarBtnSlot]\"></ng-content>\r\n </div>\r\n <div class=\"rs-right-col\" *ngIf=\"!hasWholeToolbarSlot\">\r\n <ng-content select=\"[rightToolbarBtnSlot]\"></ng-content>\r\n <div class=\"rs-search-input\" *ngIf=\"!hideSearch\">\r\n <ejs-textbox\r\n type=\"text\"\r\n class=\"e-input\"\r\n [(ngModel)]=\"searchValue\"\r\n (input)=\"onInput()\"\r\n placeholder=\"Search all fields\"\r\n [showClearButton]=\"true\"\r\n autocomplete=\"off\"\r\n ></ejs-textbox>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"rs-grid-wrap\">\r\n <ng-content select=\"[gridSlot]\"></ng-content>\r\n </div>\r\n</div>\r\n", styles: [":host{height:100%}.rs-grid-box{display:flex;flex-direction:column;height:100%}.rs-grid-box.is-not-inner{border-radius:15px;padding:12px 20px;background:#fff;border:1px solid var(--rs-border-color);box-shadow:0 0 4px #0000001a}.rs-grid-box .rs-toolbar-wrap{display:flex;justify-content:space-between;align-items:center;padding-bottom:4px;border-bottom:1px solid #eaedf0}.rs-grid-box .rs-toolbar-wrap .rs-whole-bar{width:100%}.rs-grid-box .rs-toolbar-wrap .rs-left-col,.rs-grid-box .rs-toolbar-wrap .rs-right-col{display:flex;align-items:center}.rs-grid-box .rs-toolbar-wrap .rs-left-col ::ng-deep .e-btn,.rs-grid-box .rs-toolbar-wrap .rs-right-col ::ng-deep .e-btn{height:24px!important;min-width:auto!important}.rs-grid-box .rs-toolbar-wrap .rs-left-col{flex:1;width:0;gap:4px}.rs-grid-box .rs-toolbar-wrap .rs-right-col{gap:12px}.rs-grid-box .rs-grid-wrap{flex:1;height:0}.rs-grid-box .rs-search-input{width:240px}.rs-grid-box .rs-search-input ::ng-deep .e-input-group{border-radius:14px!important}.rs-grid-box .rs-search-input ::ng-deep .e-input-group.e-input-focus,.rs-grid-box .rs-search-input ::ng-deep .e-input-group:hover{box-shadow:0 0 3px #1f7bff66!important;border-color:var(--rs-input-hover-border-color)!important}.rs-grid-box .rs-search-input ::ng-deep .e-input-group.e-input-focus input.e-input,.rs-grid-box .rs-search-input ::ng-deep .e-input-group:hover input.e-input{box-shadow:none!important}.rs-grid-box .rs-search-input ::ng-deep .e-input-group input.e-input{width:calc(100% - 50px);height:26px}.rs-grid-box .rs-search-input ::ng-deep .e-input-group input.e-input:hover{box-shadow:none!important}.rs-grid-box .rs-search-input ::ng-deep .e-input-group:before{content:\"\"!important;margin:6px 0 0 8px;display:block;width:16px;height:16px;background-image:url(/assets/img/search.svg);background-size:cover;background-position:center}\n"] }]
|
|
50
|
+
}], propDecorators: { gridContent: [{
|
|
51
|
+
type: ContentChild,
|
|
52
|
+
args: [CommonGridComponent, { static: false }]
|
|
53
|
+
}], orignGrid: [{
|
|
54
|
+
type: ContentChild,
|
|
55
|
+
args: [GridComponent, { static: false }]
|
|
56
|
+
}], treeGrid: [{
|
|
57
|
+
type: ContentChild,
|
|
58
|
+
args: [TreeGridComponent, { static: false }]
|
|
59
|
+
}], wholeToolbarSlot: [{
|
|
60
|
+
type: ContentChild,
|
|
61
|
+
args: ["wholeToolbarSlot", { static: false }]
|
|
62
|
+
}], hideSearch: [{
|
|
63
|
+
type: Input
|
|
64
|
+
}], isInner: [{
|
|
65
|
+
type: Input
|
|
66
|
+
}] } });
|
|
67
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcmFpc2UtY29tbW9uLWxpYi9zcmMvbGliL2xheW91dC9ncmlkLWJveC9pbmRleC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9yYWlzZS1jb21tb24tbGliL3NyYy9saWIvbGF5b3V0L2dyaWQtYm94L2luZGV4LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU07QUFDTixPQUFPLEVBRUwsU0FBUyxFQUNULFlBQVksRUFDWixLQUFLLEdBRU4sTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDeEUsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUNsQyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDOUQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7Ozs7O0FBT3JFLE1BQU0sT0FBTyxnQkFBZ0I7SUFDMkIsV0FBVyxDQUFDO0lBQ2xCLFNBQVMsQ0FBQztJQUNOLFFBQVEsQ0FBQztJQUNSLGdCQUFnQixDQUFNO0lBRWxFLFVBQVUsR0FBRyxLQUFLLENBQUM7SUFDbkIsT0FBTyxHQUFHLEtBQUssQ0FBQztJQUVqQixjQUFjLENBQVc7SUFDakMsbUJBQW1CLEdBQVksS0FBSyxDQUFDO0lBQ3JDLFFBQVE7UUFDTixJQUFJLENBQUMsY0FBYyxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUU7WUFDbEMsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ2pCLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQztJQUNWLENBQUM7SUFFRCxrQkFBa0I7UUFDaEIsMkJBQTJCO1FBQzNCLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDO0lBQ3JELENBQUM7SUFFRCxXQUFXLENBQUM7SUFDWixPQUFPO1FBQ0wsSUFBSSxJQUFJLENBQUMsV0FBVyxFQUFFO1lBQ3BCLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7U0FDaEQ7YUFBTSxJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUU7WUFDekIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1NBQ3pDO2FBQU0sSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQ3hCLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztTQUN4QztJQUNILENBQUM7SUFFRCxPQUFPO1FBQ0wsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO0lBQ3hCLENBQUM7d0dBbkNVLGdCQUFnQjs0RkFBaEIsZ0JBQWdCLHNKQUNiLG1CQUFtQiw0RUFDbkIsYUFBYSwyRUFDYixpQkFBaUIsdUpDckJqQyxtcENBOEJBOzs0RkRaYSxnQkFBZ0I7a0JBTDVCLFNBQVM7K0JBQ0UsYUFBYTs4QkFLK0IsV0FBVztzQkFBaEUsWUFBWTt1QkFBQyxtQkFBbUIsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUU7Z0JBQ0osU0FBUztzQkFBeEQsWUFBWTt1QkFBQyxhQUFhLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFO2dCQUNNLFFBQVE7c0JBQTNELFlBQVk7dUJBQUMsaUJBQWlCLEVBQUUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFO2dCQUNHLGdCQUFnQjtzQkFBcEUsWUFBWTt1QkFBQyxrQkFBa0IsRUFBRSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUU7Z0JBRTFDLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiLy8g57uE5Lu257G7XHJcbmltcG9ydCB7XHJcbiAgQWZ0ZXJDb250ZW50SW5pdCxcclxuICBDb21wb25lbnQsXHJcbiAgQ29udGVudENoaWxkLFxyXG4gIElucHV0LFxyXG4gIE9uSW5pdCxcclxufSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBDb21tb25HcmlkQ29tcG9uZW50IH0gZnJvbSBcIi4uLy4uL2NvbW1vbi1ncmlkL2luZGV4LmNvbXBvbmVudFwiO1xyXG5pbXBvcnQgeyBkZWJvdW5jZSB9IGZyb20gXCJsb2Rhc2hcIjtcclxuaW1wb3J0IHsgR3JpZENvbXBvbmVudCB9IGZyb20gXCJAc3luY2Z1c2lvbi9lajItYW5ndWxhci1ncmlkc1wiO1xyXG5pbXBvcnQgeyBUcmVlR3JpZENvbXBvbmVudCB9IGZyb20gXCJAc3luY2Z1c2lvbi9lajItYW5ndWxhci10cmVlZ3JpZFwiO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6IFwicnMtZ3JpZC1ib3hcIixcclxuICB0ZW1wbGF0ZVVybDogXCIuL2luZGV4LmNvbXBvbmVudC5odG1sXCIsXHJcbiAgc3R5bGVVcmxzOiBbXCIuL2luZGV4LmNvbXBvbmVudC5zY3NzXCJdLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgR3JpZEJveENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJDb250ZW50SW5pdCB7XHJcbiAgQENvbnRlbnRDaGlsZChDb21tb25HcmlkQ29tcG9uZW50LCB7IHN0YXRpYzogZmFsc2UgfSkgZ3JpZENvbnRlbnQ7XHJcbiAgQENvbnRlbnRDaGlsZChHcmlkQ29tcG9uZW50LCB7IHN0YXRpYzogZmFsc2UgfSkgb3JpZ25HcmlkO1xyXG4gIEBDb250ZW50Q2hpbGQoVHJlZUdyaWRDb21wb25lbnQsIHsgc3RhdGljOiBmYWxzZSB9KSB0cmVlR3JpZDtcclxuICBAQ29udGVudENoaWxkKFwid2hvbGVUb29sYmFyU2xvdFwiLCB7IHN0YXRpYzogZmFsc2UgfSkgd2hvbGVUb29sYmFyU2xvdDogYW55O1xyXG5cclxuICBASW5wdXQoKSBoaWRlU2VhcmNoID0gZmFsc2U7XHJcbiAgQElucHV0KCkgaXNJbm5lciA9IGZhbHNlO1xyXG5cclxuICBwcml2YXRlIGRlYm91bmNlZElucHV0OiBGdW5jdGlvbjtcclxuICBoYXNXaG9sZVRvb2xiYXJTbG90OiBib29sZWFuID0gZmFsc2U7XHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICB0aGlzLmRlYm91bmNlZElucHV0ID0gZGVib3VuY2UoKCkgPT4ge1xyXG4gICAgICB0aGlzLm9uU2VhY2goKTtcclxuICAgIH0sIDMwMCk7XHJcbiAgfVxyXG5cclxuICBuZ0FmdGVyQ29udGVudEluaXQoKSB7XHJcbiAgICAvLyDmo4DmtYvmmK/lkKbkvKDlhaXkuoYgd2hvbGVUb29sYmFyU2xvdFxyXG4gICAgdGhpcy5oYXNXaG9sZVRvb2xiYXJTbG90ID0gISF0aGlzLndob2xlVG9vbGJhclNsb3Q7XHJcbiAgfVxyXG5cclxuICBzZWFyY2hWYWx1ZTtcclxuICBvblNlYWNoKCkge1xyXG4gICAgaWYgKHRoaXMuZ3JpZENvbnRlbnQpIHtcclxuICAgICAgdGhpcy5ncmlkQ29udGVudC5ncmlkLnNlYXJjaCh0aGlzLnNlYXJjaFZhbHVlKTtcclxuICAgIH0gZWxzZSBpZiAodGhpcy5vcmlnbkdyaWQpIHtcclxuICAgICAgdGhpcy5vcmlnbkdyaWQuc2VhcmNoKHRoaXMuc2VhcmNoVmFsdWUpO1xyXG4gICAgfSBlbHNlIGlmICh0aGlzLnRyZWVHcmlkKSB7XHJcbiAgICAgIHRoaXMudHJlZUdyaWQuc2VhcmNoKHRoaXMuc2VhcmNoVmFsdWUpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgb25JbnB1dCgpIHtcclxuICAgIHRoaXMuZGVib3VuY2VkSW5wdXQoKTtcclxuICB9XHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cInJzLWdyaWQtYm94XCIgW25nQ2xhc3NdPVwieyAnaXMtbm90LWlubmVyJzogIWlzSW5uZXIgfVwiPlxyXG4gIDxkaXYgY2xhc3M9XCJycy1jb250ZW50LXRhYlwiPlxyXG4gICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW2NvbnRlbnRUYWJTbG90XVwiPjwvbmctY29udGVudD5cclxuICA8L2Rpdj5cclxuICA8ZGl2IGNsYXNzPVwicnMtdG9vbGJhci13cmFwXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwicnMtd2hvbGUtYmFyXCIgKm5nSWY9XCJoYXNXaG9sZVRvb2xiYXJTbG90XCI+XHJcbiAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIlt3aG9sZVRvb2xiYXJTbG90XVwiPjwvbmctY29udGVudD5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cInJzLWxlZnQtY29sXCIgKm5nSWY9XCIhaGFzV2hvbGVUb29sYmFyU2xvdFwiPlxyXG4gICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbbGVmdFRvb2xiYXJCdG5TbG90XVwiPjwvbmctY29udGVudD5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cInJzLXJpZ2h0LWNvbFwiICpuZ0lmPVwiIWhhc1dob2xlVG9vbGJhclNsb3RcIj5cclxuICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW3JpZ2h0VG9vbGJhckJ0blNsb3RdXCI+PC9uZy1jb250ZW50PlxyXG4gICAgICA8ZGl2IGNsYXNzPVwicnMtc2VhcmNoLWlucHV0XCIgKm5nSWY9XCIhaGlkZVNlYXJjaFwiPlxyXG4gICAgICAgIDxlanMtdGV4dGJveFxyXG4gICAgICAgICAgdHlwZT1cInRleHRcIlxyXG4gICAgICAgICAgY2xhc3M9XCJlLWlucHV0XCJcclxuICAgICAgICAgIFsobmdNb2RlbCldPVwic2VhcmNoVmFsdWVcIlxyXG4gICAgICAgICAgKGlucHV0KT1cIm9uSW5wdXQoKVwiXHJcbiAgICAgICAgICBwbGFjZWhvbGRlcj1cIlNlYXJjaCBhbGwgZmllbGRzXCJcclxuICAgICAgICAgIFtzaG93Q2xlYXJCdXR0b25dPVwidHJ1ZVwiXHJcbiAgICAgICAgICBhdXRvY29tcGxldGU9XCJvZmZcIlxyXG4gICAgICAgID48L2Vqcy10ZXh0Ym94PlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG4gIDxkaXYgY2xhc3M9XCJycy1ncmlkLXdyYXBcIj5cclxuICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIltncmlkU2xvdF1cIj48L25nLWNvbnRlbnQ+XHJcbiAgPC9kaXY+XHJcbjwvZGl2PlxyXG4iXX0=
|