raise-common-lib-new 0.0.36 → 0.0.38
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/README.md +24 -24
- package/esm2022/lib/actions/toolbar/constants.mjs +2 -0
- package/esm2022/lib/{layout → actions}/toolbar/index.component.mjs +3 -3
- package/esm2022/lib/actions/toolbar-item/index.component.mjs +82 -0
- package/esm2022/lib/commentary/index.component.mjs +19 -10
- package/esm2022/lib/common-grid/grid-action/grid-action-item/grid-action-item.component.mjs +42 -3
- package/esm2022/lib/common-grid/grid-action/grid-action.component.mjs +2 -2
- package/esm2022/lib/common-grid/index.component.mjs +30 -3
- package/esm2022/lib/dialog/common-delete-dialog/index.component.mjs +11 -7
- package/esm2022/lib/dialog/common-dialog/index.component.mjs +45 -12
- package/esm2022/lib/float-box/index.component.mjs +3 -1
- package/esm2022/lib/form/confirm-select/index.component.mjs +78 -0
- package/esm2022/lib/form/drawer-form/constants.mjs +1 -1
- package/esm2022/lib/form/drawer-form/drawer-form.component.mjs +52 -24
- package/esm2022/lib/form/richtexteditor/ai-config.mjs +35 -0
- package/esm2022/lib/form/richtexteditor/data-config.mjs +222 -0
- package/esm2022/lib/form/richtexteditor/index.component.mjs +425 -0
- package/esm2022/lib/form/richtexteditor/openapi.mjs +121 -0
- package/esm2022/lib/form/search-input/index.component.mjs +45 -0
- package/esm2022/lib/form/tag-input/index.component.mjs +1 -1
- package/esm2022/lib/layout/drawer/index.component.mjs +28 -18
- package/esm2022/lib/layout/grid-box/index.component.mjs +28 -19
- package/esm2022/lib/layout/main-container/index.component.mjs +3 -3
- package/esm2022/lib/layout/multi-tab/index.component.mjs +80 -41
- package/esm2022/lib/layout/page-list/index.component.mjs +28 -19
- package/esm2022/lib/layout/rs-aside/index.component.mjs +12 -9
- package/esm2022/lib/layout/rs-footer/index.component.mjs +2 -2
- package/esm2022/lib/layout/rs-header/index.component.mjs +6 -3
- package/esm2022/lib/raise-common-lib.module.mjs +43 -15
- package/esm2022/lib/service/dialog.service.mjs +9 -6
- package/esm2022/lib/service/drawer.service.mjs +8 -6
- package/esm2022/lib/truncated-text-toggle/index.component.mjs +41 -0
- package/esm2022/public-api.mjs +7 -4
- package/fesm2022/raise-common-lib-new.mjs +1433 -220
- package/fesm2022/raise-common-lib-new.mjs.map +1 -1
- package/lib/{form → actions}/toolbar-item/index.component.d.ts +2 -1
- package/lib/commentary/index.component.d.ts +2 -2
- package/lib/common-grid/grid-action/grid-action-item/grid-action-item.component.d.ts +6 -1
- package/lib/common-grid/index.component.d.ts +10 -1
- package/lib/dialog/common-delete-dialog/index.component.d.ts +8 -2
- package/lib/dialog/common-dialog/index.component.d.ts +10 -2
- package/lib/float-box/index.component.d.ts +2 -2
- package/lib/form/confirm-select/index.component.d.ts +28 -0
- package/lib/form/drawer-form/constants.d.ts +2 -0
- package/lib/form/drawer-form/drawer-form.component.d.ts +8 -5
- package/lib/form/richtexteditor/ai-config.d.ts +10 -0
- package/lib/form/richtexteditor/data-config.d.ts +14 -0
- package/lib/form/richtexteditor/index.component.d.ts +83 -0
- package/lib/form/richtexteditor/openapi.d.ts +3 -0
- package/lib/form/search-input/index.component.d.ts +17 -0
- package/lib/layout/drawer/index.component.d.ts +8 -7
- package/lib/layout/grid-box/index.component.d.ts +9 -6
- package/lib/layout/multi-tab/index.component.d.ts +9 -3
- package/lib/layout/page-list/index.component.d.ts +9 -6
- package/lib/layout/rs-aside/index.component.d.ts +3 -1
- package/lib/layout/rs-header/index.component.d.ts +2 -1
- package/lib/raise-common-lib.module.d.ts +37 -32
- package/lib/service/dialog.service.d.ts +3 -1
- package/lib/service/drawer.service.d.ts +1 -1
- package/lib/truncated-text-toggle/index.component.d.ts +15 -0
- package/package.json +2 -2
- package/public-api.d.ts +6 -3
- package/src/assets/img/arrow_right.svg +4 -4
- package/src/assets/img/calendar-disabled.svg +6 -6
- package/src/assets/img/calendar.svg +6 -6
- package/src/assets/img/calendar_arrow_left.svg +3 -3
- package/src/assets/img/calendar_arrow_right.svg +3 -3
- package/src/assets/img/checked-vector.svg +3 -3
- package/src/assets/img/click_show_more_icon.svg +3 -0
- package/src/assets/img/dialog-close.svg +4 -0
- package/src/assets/img/dialog-grow.svg +6 -0
- package/src/assets/img/dialog-shrink.svg +6 -0
- package/src/assets/img/editor-copy.svg +5 -0
- package/src/assets/img/grid-action-detail.svg +4 -5
- package/src/assets/img/grid-action-duplicate.svg +6 -0
- package/src/assets/img/grid-action-export.svg +4 -11
- package/src/assets/img/grid-action-preview.svg +7 -0
- package/src/assets/img/grid-action-refresh.svg +4 -0
- package/src/assets/img/grid-action-verify.svg +7 -0
- package/src/assets/img/grid-action-viewStatus.svg +3 -0
- package/src/assets/img/grid-menu-arrow-up.svg +4 -0
- package/src/assets/img/grid-menu-filter.svg +6 -0
- package/src/assets/img/info.svg +5 -0
- package/src/assets/img/plus.svg +4 -4
- package/src/assets/img/search.svg +4 -4
- package/src/assets/img/shrink-icon.svg +6 -0
- package/src/assets/img/time-disabled.svg +4 -4
- package/src/assets/img/time.svg +4 -4
- package/src/assets/img/toolbar-action-addFolder.svg +17 -0
- package/src/assets/img/toolbar-action-calculator.svg +11 -0
- package/src/assets/img/toolbar-action-collapse.svg +7 -0
- package/src/assets/img/toolbar-action-combine.svg +4 -0
- package/src/assets/img/toolbar-action-edit.svg +4 -0
- package/src/assets/img/toolbar-action-expand.svg +7 -0
- package/src/assets/img/toolbar-action-fetchData.svg +3 -0
- package/src/assets/img/toolbar-action-folderMove.svg +8 -0
- package/src/assets/img/toolbar-action-lock.svg +6 -0
- package/src/assets/img/toolbar-action-preview.svg +7 -0
- package/src/assets/img/toolbar-action-publish.svg +5 -0
- package/src/assets/img/toolbar-action-refresh.svg +3 -13
- package/src/assets/img/toolbar-action-reminders.svg +10 -0
- package/src/assets/img/toolbar-action-rename.svg +7 -0
- package/src/assets/img/toolbar-action-saveSequence.svg +5 -0
- package/src/assets/img/toolbar-action-send-file.svg +5 -0
- package/src/assets/img/toolbar-action-settle.svg +7 -0
- package/src/assets/img/toolbar-action-share.svg +5 -0
- package/src/assets/img/toolbar-action-submitForApproval.svg +4 -0
- package/src/assets/img/toolbar-action-sync.svg +4 -0
- package/src/assets/img/toolbar-action-template.svg +6 -0
- package/src/assets/img/toolbar-action-update.svg +11 -0
- package/src/assets/img/toolbar-action-workflow.svg +9 -0
- package/src/assets/style/reset/button.scss +3 -3
- package/src/assets/style/reset/checkbox.scss +15 -9
- package/src/assets/style/reset/dropdown.scss +56 -14
- package/src/assets/style/reset/grid.scss +134 -2
- package/src/assets/style/reset/mat-dialog.scss +1 -2
- package/src/assets/style/reset/radio.scss +33 -35
- package/src/assets/style/style.scss +0 -1
- package/esm2022/lib/form/toolbar-item/index.component.mjs +0 -56
- package/esm2022/lib/layout/toolbar/constants.mjs +0 -2
- /package/lib/{layout → actions}/toolbar/constants.d.ts +0 -0
- /package/lib/{layout → actions}/toolbar/index.component.d.ts +0 -0
|
@@ -2,19 +2,19 @@ import * as i0 from '@angular/core';
|
|
|
2
2
|
import { EventEmitter, Component, ViewChild, Input, Output, HostBinding, Injectable, Inject, ContentChild, HostListener, ViewContainerRef, ViewChildren, NgModule, CUSTOM_ELEMENTS_SCHEMA } from '@angular/core';
|
|
3
3
|
import { times, debounce } from 'lodash';
|
|
4
4
|
import * as i1 from '@angular/common';
|
|
5
|
-
import {
|
|
5
|
+
import { CommonModule } from '@angular/common';
|
|
6
6
|
import * as i2 from '@syncfusion/ej2-angular-grids';
|
|
7
|
-
import { GridComponent, GridModule, PagerModule, GridAllModule, PageService, SortService, FilterService, ExcelExportService, EditService, ResizeService, ToolbarService, ColumnChooserService, AggregateService, ColumnMenuService, DetailRowService, SelectionService, GroupService } from '@syncfusion/ej2-angular-grids';
|
|
7
|
+
import { GridComponent, GridModule, PagerModule, GridAllModule, PageService, RowDDService, SortService, FilterService, ExcelExportService, EditService, ResizeService, ToolbarService, ColumnChooserService, AggregateService, ColumnMenuService, DetailRowService, SelectionService, GroupService } from '@syncfusion/ej2-angular-grids';
|
|
8
8
|
import * as i3 from '@syncfusion/ej2-angular-charts';
|
|
9
9
|
import { ChartAllModule, AccumulationChartAllModule, RangeNavigatorAllModule, AccumulationChartModule, PieSeriesService, AccumulationLegendService, AccumulationTooltipService, AccumulationAnnotationService, AccumulationDataLabelService } from '@syncfusion/ej2-angular-charts';
|
|
10
10
|
import * as i2$1 from '@angular/material/menu';
|
|
11
11
|
import { MatMenuModule } from '@angular/material/menu';
|
|
12
12
|
import * as i2$2 from '@angular/material/tooltip';
|
|
13
13
|
import { MatTooltipModule } from '@angular/material/tooltip';
|
|
14
|
-
import * as
|
|
14
|
+
import * as i4 from '@angular/material/icon';
|
|
15
15
|
import { MatIconModule } from '@angular/material/icon';
|
|
16
16
|
import { __decorate } from 'tslib';
|
|
17
|
-
import { Subject
|
|
17
|
+
import { Subject } from 'rxjs';
|
|
18
18
|
import * as i1$2 from '@angular/material/snack-bar';
|
|
19
19
|
import { MAT_SNACK_BAR_DATA, MatSnackBarModule } from '@angular/material/snack-bar';
|
|
20
20
|
import * as i1$1 from '@angular/material/dialog';
|
|
@@ -22,33 +22,38 @@ import { MAT_DIALOG_DATA, MatDialogModule } from '@angular/material/dialog';
|
|
|
22
22
|
import * as i2$3 from '@angular/forms';
|
|
23
23
|
import { ReactiveFormsModule, FormsModule } from '@angular/forms';
|
|
24
24
|
import { TreeGridComponent } from '@syncfusion/ej2-angular-treegrid';
|
|
25
|
-
import * as
|
|
25
|
+
import * as i2$4 from '@syncfusion/ej2-angular-inputs';
|
|
26
26
|
import { TextBoxModule, ColorPickerModule, UploaderModule, NumericTextBoxModule } from '@syncfusion/ej2-angular-inputs';
|
|
27
|
-
import * as i2$
|
|
28
|
-
import { CarouselAllModule, ToolbarModule, TabModule } from '@syncfusion/ej2-angular-navigations';
|
|
27
|
+
import * as i2$5 from '@syncfusion/ej2-angular-navigations';
|
|
28
|
+
import { CarouselAllModule, ToolbarModule, TabModule, TreeViewModule } from '@syncfusion/ej2-angular-navigations';
|
|
29
29
|
import * as i1$3 from '@angular/router';
|
|
30
|
-
import { NavigationEnd } from '@angular/router';
|
|
30
|
+
import { NavigationEnd, NavigationStart } from '@angular/router';
|
|
31
31
|
import { filter } from 'rxjs/operators';
|
|
32
|
-
import * as i5 from '@
|
|
32
|
+
import * as i5 from '@angular/cdk/drag-drop';
|
|
33
|
+
import { moveItemInArray, DragDropModule } from '@angular/cdk/drag-drop';
|
|
34
|
+
import * as i5$1 from '@syncfusion/ej2-angular-popups';
|
|
33
35
|
import { TooltipModule, DialogModule } from '@syncfusion/ej2-angular-popups';
|
|
34
36
|
import { setCulture, L10n } from '@syncfusion/ej2-base';
|
|
35
37
|
import * as i1$4 from '@angular/common/http';
|
|
36
38
|
import { HttpClientModule } from '@angular/common/http';
|
|
37
|
-
import * as i3$
|
|
38
|
-
import { DropDownButtonModule, SplitButtonModule } from '@syncfusion/ej2-angular-splitbuttons';
|
|
39
|
-
import * as i3$
|
|
39
|
+
import * as i3$1 from '@syncfusion/ej2-angular-splitbuttons';
|
|
40
|
+
import { DropDownButton, DropDownButtonModule, SplitButtonModule } from '@syncfusion/ej2-angular-splitbuttons';
|
|
41
|
+
import * as i3$2 from '@syncfusion/ej2-angular-buttons';
|
|
40
42
|
import { SwitchModule, CheckBoxModule, RadioButtonModule, ButtonModule } from '@syncfusion/ej2-angular-buttons';
|
|
41
43
|
import { Query } from '@syncfusion/ej2-data';
|
|
42
|
-
import
|
|
44
|
+
import moment from 'moment';
|
|
45
|
+
import * as i4$1 from '@syncfusion/ej2-angular-calendars';
|
|
43
46
|
import { DatePickerModule, DateRangePickerModule, DateTimePickerModule } from '@syncfusion/ej2-angular-calendars';
|
|
44
|
-
import * as
|
|
47
|
+
import * as i6 from '@syncfusion/ej2-angular-dropdowns';
|
|
45
48
|
import { DropDownListModule, DropDownTreeModule, MultiSelectAllModule, AutoCompleteModule, ListBoxModule } from '@syncfusion/ej2-angular-dropdowns';
|
|
46
|
-
import * as
|
|
49
|
+
import * as i1$5 from 'raise-common-lib';
|
|
50
|
+
import * as i7 from '@syncfusion/ej2-angular-richtexteditor';
|
|
51
|
+
import { RichTextEditorAllModule, HtmlEditorService, ToolbarService as ToolbarService$2 } from '@syncfusion/ej2-angular-richtexteditor';
|
|
52
|
+
import * as i2$6 from '@angular/platform-browser';
|
|
47
53
|
import { DiagramModule } from '@syncfusion/ej2-angular-diagrams';
|
|
48
54
|
import { PivotViewAllModule, PivotFieldListAllModule } from '@syncfusion/ej2-angular-pivotview';
|
|
49
55
|
import { DashboardLayoutModule } from '@syncfusion/ej2-angular-layouts';
|
|
50
56
|
import { PdfViewerModule, LinkAnnotationService, BookmarkViewService, MagnificationService, ThumbnailViewService, ToolbarService as ToolbarService$1, NavigationService, TextSearchService, TextSelectionService, PrintService } from '@syncfusion/ej2-angular-pdfviewer';
|
|
51
|
-
import { RichTextEditorAllModule, HtmlEditorService, ToolbarService as ToolbarService$2 } from '@syncfusion/ej2-angular-richtexteditor';
|
|
52
57
|
|
|
53
58
|
class CommonGridComponent {
|
|
54
59
|
ref;
|
|
@@ -71,6 +76,7 @@ class CommonGridComponent {
|
|
|
71
76
|
columnTemplate;
|
|
72
77
|
pageSettings;
|
|
73
78
|
allowPaging = true;
|
|
79
|
+
allowRowDragAndDrop = false;
|
|
74
80
|
clipMode = "EllipsisWithTooltip";
|
|
75
81
|
checkBoxWidth = 32; // col 数量过少的时候,check宽度会拉伸,这时候设置null
|
|
76
82
|
childGrid;
|
|
@@ -107,6 +113,7 @@ class CommonGridComponent {
|
|
|
107
113
|
actionComplete = new EventEmitter();
|
|
108
114
|
rowSelected = new EventEmitter();
|
|
109
115
|
rowDeselected = new EventEmitter();
|
|
116
|
+
rowDeselecting = new EventEmitter();
|
|
110
117
|
onContextMenu = new EventEmitter();
|
|
111
118
|
actionHandler = new EventEmitter();
|
|
112
119
|
queryCellInfo = new EventEmitter();
|
|
@@ -116,6 +123,9 @@ class CommonGridComponent {
|
|
|
116
123
|
dataBound = new EventEmitter();
|
|
117
124
|
exportQueryCellInfo = new EventEmitter();
|
|
118
125
|
rowSelecting = new EventEmitter();
|
|
126
|
+
rowDrop = new EventEmitter();
|
|
127
|
+
rowDrag = new EventEmitter();
|
|
128
|
+
rowDragStart = new EventEmitter();
|
|
119
129
|
selectId = [];
|
|
120
130
|
startPaging = false;
|
|
121
131
|
indexList = [];
|
|
@@ -176,9 +186,18 @@ class CommonGridComponent {
|
|
|
176
186
|
_exportQueryCellInfo(args) {
|
|
177
187
|
this.exportQueryCellInfo.emit(args);
|
|
178
188
|
}
|
|
189
|
+
_rowDrag(args) {
|
|
190
|
+
this.rowDrag.emit(args);
|
|
191
|
+
}
|
|
192
|
+
_rowDragStart(args) {
|
|
193
|
+
this.rowDragStart.emit(args);
|
|
194
|
+
}
|
|
179
195
|
_recordDoubleClick($event) {
|
|
180
196
|
this.recordDoubleClick.emit($event);
|
|
181
197
|
}
|
|
198
|
+
_rowDeselecting($event) {
|
|
199
|
+
this.rowDeselecting.emit($event);
|
|
200
|
+
}
|
|
182
201
|
/**
|
|
183
202
|
* [selectionSettings]="{ checkboxOnly: true }"
|
|
184
203
|
[showCheckBox]="true"
|
|
@@ -360,6 +379,9 @@ class CommonGridComponent {
|
|
|
360
379
|
getSelectedRecords() {
|
|
361
380
|
return this.grid.getSelectedRecords();
|
|
362
381
|
}
|
|
382
|
+
onRowDrop(e) {
|
|
383
|
+
this.rowDrop.emit(e);
|
|
384
|
+
}
|
|
363
385
|
_rowDataBound($event) {
|
|
364
386
|
if (this.disableSystemRow && $event.data && $event.data.IsSystem) {
|
|
365
387
|
$event.row.classList.add("e-disabled");
|
|
@@ -417,11 +439,11 @@ class CommonGridComponent {
|
|
|
417
439
|
this.ref && this.ref.detectChanges();
|
|
418
440
|
}
|
|
419
441
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CommonGridComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
420
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: CommonGridComponent, selector: "rs-common-grid", inputs: { showCheckBox: "showCheckBox", loaded: "loaded", hiddenLoaded: "hiddenLoaded", authorized: "authorized", selectedDiffKey: "selectedDiffKey", gridHeight: "gridHeight", gridId: "gridId", resizeSettings: "resizeSettings", filterSettings: "filterSettings", template: "template", fields: "fields", dataSource: "dataSource", editSettings: "editSettings", columnTemplate: "columnTemplate", pageSettings: "pageSettings", allowPaging: "allowPaging", clipMode: "clipMode", checkBoxWidth: "checkBoxWidth", childGrid: "childGrid", frozenColumns: "frozenColumns", columnChooserSettings: "columnChooserSettings", contextMenuItems: "contextMenuItems", selectionSettings: "selectionSettings", alwaysShowCheckbox: "alwaysShowCheckbox", defaultRecord: "defaultRecord", disableSystemRow: "disableSystemRow" }, outputs: { recordDoubleClick: "recordDoubleClick", actionComplete: "actionComplete", rowSelected: "rowSelected", rowDeselected: "rowDeselected", onContextMenu: "onContextMenu", actionHandler: "actionHandler", queryCellInfo: "queryCellInfo", recordClick: "recordClick", actionBegin: "actionBegin", rowDataBound: "rowDataBound", dataBound: "dataBound", exportQueryCellInfo: "exportQueryCellInfo", rowSelecting: "rowSelecting" }, viewQueries: [{ propertyName: "grid", first: true, predicate: ["grid"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<ejs-grid\r\n
|
|
442
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: CommonGridComponent, selector: "rs-common-grid", inputs: { showCheckBox: "showCheckBox", loaded: "loaded", hiddenLoaded: "hiddenLoaded", authorized: "authorized", selectedDiffKey: "selectedDiffKey", gridHeight: "gridHeight", gridId: "gridId", resizeSettings: "resizeSettings", filterSettings: "filterSettings", template: "template", fields: "fields", dataSource: "dataSource", editSettings: "editSettings", columnTemplate: "columnTemplate", pageSettings: "pageSettings", allowPaging: "allowPaging", allowRowDragAndDrop: "allowRowDragAndDrop", clipMode: "clipMode", checkBoxWidth: "checkBoxWidth", childGrid: "childGrid", frozenColumns: "frozenColumns", columnChooserSettings: "columnChooserSettings", contextMenuItems: "contextMenuItems", selectionSettings: "selectionSettings", alwaysShowCheckbox: "alwaysShowCheckbox", defaultRecord: "defaultRecord", disableSystemRow: "disableSystemRow" }, outputs: { recordDoubleClick: "recordDoubleClick", actionComplete: "actionComplete", rowSelected: "rowSelected", rowDeselected: "rowDeselected", rowDeselecting: "rowDeselecting", onContextMenu: "onContextMenu", actionHandler: "actionHandler", queryCellInfo: "queryCellInfo", recordClick: "recordClick", actionBegin: "actionBegin", rowDataBound: "rowDataBound", dataBound: "dataBound", exportQueryCellInfo: "exportQueryCellInfo", rowSelecting: "rowSelecting", rowDrop: "rowDrop", rowDrag: "rowDrag", rowDragStart: "rowDragStart" }, viewQueries: [{ propertyName: "grid", first: true, predicate: ["grid"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<ejs-grid\r\n #grid\r\n [id]=\"gridId\"\r\n [ngClass]=\"{\r\n 'hide-Check-box': !alwaysShowCheckbox,\r\n 'grid-loading': className === 'grid-loading'\r\n }\"\r\n [dataSource]=\"dataSource\"\r\n [allowPaging]=\"allowPaging && pageSettings\"\r\n [allowResizing]=\"true\"\r\n [pageSettings]=\"pageSettings\"\r\n [showColumnMenu]=\"true\"\r\n [allowSorting]=\"true\"\r\n [allowFiltering]=\"true\"\r\n [allowExcelExport]=\"true\"\r\n [allowRowDragAndDrop]=\"allowRowDragAndDrop\"\r\n [filterSettings]=\"filterSettings\"\r\n [resizeSettings]=\"resizeSettings\"\r\n [allowSelection]=\"true\"\r\n [editSettings]=\"editSettings\"\r\n [childGrid]=\"childGrid\"\r\n [contextMenuItems]=\"dataSource && dataSource.length ? contextMenuItems : null\"\r\n [selectionSettings]=\"selectionSettings\"\r\n (recordClick)=\"_recordClick($event)\"\r\n (recordDoubleClick)=\"_recordDoubleClick($event)\"\r\n (actionBegin)=\"_actionBegin($event)\"\r\n (actionComplete)=\"_actionHandler($event)\"\r\n (rowSelected)=\"_rowSelected($event)\"\r\n (rowDeselecting)=\"_rowDeselecting($event)\"\r\n (rowDeselected)=\"_rowDeselected($event)\"\r\n style=\"border: none\"\r\n (contextMenuClick)=\"_onContextMenu($event)\"\r\n (contextMenuOpen)=\"contextMenuOpen($event)\"\r\n (queryCellInfo)=\"customiseCell($event)\"\r\n (dataBound)=\"_dataBound($event)\"\r\n (rowDataBound)=\"_rowDataBound($event)\"\r\n (rowSelecting)=\"_rowSelecting($event)\"\r\n (excelQueryCellInfo)=\"_exportQueryCellInfo($event)\"\r\n (rowDrop)=\"onRowDrop($event)\"\r\n (rowDragStart)=\"_rowDragStart($event)\"\r\n (rowDrag)=\"_rowDrag($event)\"\r\n (load)=\"_load()\"\r\n [frozenColumns]=\"frozenColumns\"\r\n [columnChooserSettings]=\"columnChooserSettings\"\r\n>\r\n <e-columns>\r\n <e-column\r\n *ngIf=\"showCheckBox\"\r\n type=\"checkbox\"\r\n [width]=\"checkBoxWidth\"\r\n [minWidth]=\"checkBoxWidth\"\r\n [showColumnMenu]=\"false\"\r\n [allowResizing]=\"false\"\r\n ></e-column>\r\n <e-column\r\n *ngFor=\"let item of fields; trackBy: trackByFn; let last = last\"\r\n [field]=\"item.columnName\"\r\n [filter]=\"item.filter ? item.filter : { type: 'CheckBox' }\"\r\n [customAttributes]=\"\r\n item.colName === 'entityUserList' || item.colName === 'kycProgress'\r\n ? { class: 'hideColumnFilterClass' }\r\n : {}\r\n \"\r\n [headerText]=\"item.columnDisplayName\"\r\n [textAlign]=\"item.textAlign\"\r\n [showColumnMenu]=\"item.showColumnMenu === undefined ? true : false\"\r\n [allowFiltering]=\"item.allowFiltering === undefined ? true : false\"\r\n [allowSorting]=\"item.allowSorting === undefined ? true : false\"\r\n [editType]=\"item.editType\"\r\n [validationRules]=\"item.validationRules\"\r\n [type]=\"item.dataType || 'string'\"\r\n [width]=\"item.width\"\r\n [minWidth]=\"item.minWidth\"\r\n [format]=\"item.format\"\r\n [visible]=\"item.visible\"\r\n [template]=\"item.showTemplate ? columnTemplate : undefined\"\r\n [clipMode]=\"\r\n item.clipMode ? item.clipMode : clipMode || 'EllipsisWithTooltip'\r\n \"\r\n [sortComparer]=\"item.dateComparer || null\"\r\n [allowResizing]=\"!last\"\r\n >\r\n </e-column>\r\n </e-columns>\r\n</ejs-grid>\r\n", styles: [""], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { 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.GridComponent, selector: "ejs-grid", inputs: ["adaptiveUIMode", "aggregates", "allowExcelExport", "allowFiltering", "allowGrouping", "allowKeyboard", "allowMultiSorting", "allowPaging", "allowPdfExport", "allowReordering", "allowResizing", "allowRowDragAndDrop", "allowSelection", "allowSorting", "allowTextWrap", "autoFit", "childGrid", "clipMode", "columnChooserSettings", "columnMenuItems", "columnQueryMode", "columns", "contextMenuItems", "cssClass", "currencyCode", "currentAction", "currentViewData", "dataSource", "detailTemplate", "editSettings", "ej2StatePersistenceVersion", "emptyRecordTemplate", "enableAdaptiveUI", "enableAltRow", "enableAutoFill", "enableColumnVirtualization", "enableHeaderFocus", "enableHover", "enableHtmlSanitizer", "enableImmutableMode", "enableInfiniteScrolling", "enablePersistence", "enableRtl", "enableStickyHeader", "enableVirtualMaskRow", "enableVirtualization", "exportGrids", "filterSettings", "frozenColumns", "frozenRows", "gridLines", "groupSettings", "height", "hierarchyPrintMode", "infiniteScrollSettings", "loadingIndicator", "locale", "pageSettings", "pagerTemplate", "parentDetails", "printMode", "query", "queryString", "resizeSettings", "rowDropSettings", "rowHeight", "rowRenderingMode", "rowTemplate", "searchSettings", "selectedRowIndex", "selectionSettings", "showColumnChooser", "showColumnMenu", "showHider", "sortSettings", "textWrapSettings", "toolbar", "toolbarTemplate", "width"], outputs: ["actionBegin", "actionComplete", "actionFailure", "batchAdd", "batchCancel", "batchDelete", "beforeAutoFill", "beforeBatchAdd", "beforeBatchDelete", "beforeBatchSave", "beforeCopy", "beforeDataBound", "beforeExcelExport", "beforeOpenAdaptiveDialog", "beforeOpenColumnChooser", "beforePaste", "beforePdfExport", "beforePrint", "beginEdit", "cellDeselected", "cellDeselecting", "cellEdit", "cellSave", "cellSaved", "cellSelected", "cellSelecting", "checkBoxChange", "columnDataStateChange", "columnDeselected", "columnDeselecting", "columnDrag", "columnDragStart", "columnDrop", "columnMenuClick", "columnMenuOpen", "columnSelected", "columnSelecting", "commandClick", "contextMenuClick", "contextMenuOpen", "created", "dataBound", "dataSourceChanged", "dataStateChange", "destroyed", "detailDataBound", "excelAggregateQueryCellInfo", "excelExportComplete", "excelHeaderQueryCellInfo", "excelQueryCellInfo", "exportDetailDataBound", "exportDetailTemplate", "exportGroupCaption", "headerCellInfo", "keyPressed", "lazyLoadGroupCollapse", "lazyLoadGroupExpand", "load", "pdfAggregateQueryCellInfo", "pdfExportComplete", "pdfHeaderQueryCellInfo", "pdfQueryCellInfo", "printComplete", "queryCellInfo", "recordClick", "recordDoubleClick", "resizeStart", "resizeStop", "resizing", "rowDataBound", "rowDeselected", "rowDeselecting", "rowDrag", "rowDragStart", "rowDragStartHelper", "rowDrop", "rowSelected", "rowSelecting", "toolbarClick", "dataSourceChange"] }, { kind: "directive", type: i2.ColumnDirective, selector: "ejs-grid>e-columns>e-column", inputs: ["allowEditing", "allowFiltering", "allowGrouping", "allowReordering", "allowResizing", "allowSearching", "allowSorting", "autoFit", "clipMode", "columns", "commands", "customAttributes", "dataSource", "defaultValue", "disableHtmlEncode", "displayAsCheckBox", "edit", "editTemplate", "editType", "enableGroupByFormat", "field", "filter", "filterBarTemplate", "filterTemplate", "foreignKeyField", "foreignKeyValue", "format", "formatter", "freeze", "headerTemplate", "headerText", "headerTextAlign", "headerValueAccessor", "hideAtMedia", "index", "isFrozen", "isIdentity", "isPrimaryKey", "lockColumn", "maxWidth", "minWidth", "showColumnMenu", "showInColumnChooser", "sortComparer", "template", "textAlign", "type", "uid", "validationRules", "valueAccessor", "visible", "width"] }, { kind: "directive", type: i2.ColumnsDirective, selector: "ejs-grid>e-columns" }, { kind: "directive", type: i2.AggregateColumnDirective, selector: "ejs-grid>e-aggregates>e-aggregate>e-columns>e-column", inputs: ["columnName", "customAggregate", "field", "footerTemplate", "format", "groupCaptionTemplate", "groupFooterTemplate", "type"] }, { kind: "directive", type: i2.AggregateColumnsDirective, selector: "ejs-grid>e-aggregates>e-aggregate>e-columns" }, { kind: "directive", type: i3.ColumnDirective, selector: "e-columns>e-column", inputs: ["border", "width"] }, { kind: "directive", type: i3.ColumnsDirective, selector: "ejs-chart>e-columns" }] });
|
|
421
443
|
}
|
|
422
444
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CommonGridComponent, decorators: [{
|
|
423
445
|
type: Component,
|
|
424
|
-
args: [{ selector: "rs-common-grid", template: "<ejs-grid\r\n
|
|
446
|
+
args: [{ selector: "rs-common-grid", template: "<ejs-grid\r\n #grid\r\n [id]=\"gridId\"\r\n [ngClass]=\"{\r\n 'hide-Check-box': !alwaysShowCheckbox,\r\n 'grid-loading': className === 'grid-loading'\r\n }\"\r\n [dataSource]=\"dataSource\"\r\n [allowPaging]=\"allowPaging && pageSettings\"\r\n [allowResizing]=\"true\"\r\n [pageSettings]=\"pageSettings\"\r\n [showColumnMenu]=\"true\"\r\n [allowSorting]=\"true\"\r\n [allowFiltering]=\"true\"\r\n [allowExcelExport]=\"true\"\r\n [allowRowDragAndDrop]=\"allowRowDragAndDrop\"\r\n [filterSettings]=\"filterSettings\"\r\n [resizeSettings]=\"resizeSettings\"\r\n [allowSelection]=\"true\"\r\n [editSettings]=\"editSettings\"\r\n [childGrid]=\"childGrid\"\r\n [contextMenuItems]=\"dataSource && dataSource.length ? contextMenuItems : null\"\r\n [selectionSettings]=\"selectionSettings\"\r\n (recordClick)=\"_recordClick($event)\"\r\n (recordDoubleClick)=\"_recordDoubleClick($event)\"\r\n (actionBegin)=\"_actionBegin($event)\"\r\n (actionComplete)=\"_actionHandler($event)\"\r\n (rowSelected)=\"_rowSelected($event)\"\r\n (rowDeselecting)=\"_rowDeselecting($event)\"\r\n (rowDeselected)=\"_rowDeselected($event)\"\r\n style=\"border: none\"\r\n (contextMenuClick)=\"_onContextMenu($event)\"\r\n (contextMenuOpen)=\"contextMenuOpen($event)\"\r\n (queryCellInfo)=\"customiseCell($event)\"\r\n (dataBound)=\"_dataBound($event)\"\r\n (rowDataBound)=\"_rowDataBound($event)\"\r\n (rowSelecting)=\"_rowSelecting($event)\"\r\n (excelQueryCellInfo)=\"_exportQueryCellInfo($event)\"\r\n (rowDrop)=\"onRowDrop($event)\"\r\n (rowDragStart)=\"_rowDragStart($event)\"\r\n (rowDrag)=\"_rowDrag($event)\"\r\n (load)=\"_load()\"\r\n [frozenColumns]=\"frozenColumns\"\r\n [columnChooserSettings]=\"columnChooserSettings\"\r\n>\r\n <e-columns>\r\n <e-column\r\n *ngIf=\"showCheckBox\"\r\n type=\"checkbox\"\r\n [width]=\"checkBoxWidth\"\r\n [minWidth]=\"checkBoxWidth\"\r\n [showColumnMenu]=\"false\"\r\n [allowResizing]=\"false\"\r\n ></e-column>\r\n <e-column\r\n *ngFor=\"let item of fields; trackBy: trackByFn; let last = last\"\r\n [field]=\"item.columnName\"\r\n [filter]=\"item.filter ? item.filter : { type: 'CheckBox' }\"\r\n [customAttributes]=\"\r\n item.colName === 'entityUserList' || item.colName === 'kycProgress'\r\n ? { class: 'hideColumnFilterClass' }\r\n : {}\r\n \"\r\n [headerText]=\"item.columnDisplayName\"\r\n [textAlign]=\"item.textAlign\"\r\n [showColumnMenu]=\"item.showColumnMenu === undefined ? true : false\"\r\n [allowFiltering]=\"item.allowFiltering === undefined ? true : false\"\r\n [allowSorting]=\"item.allowSorting === undefined ? true : false\"\r\n [editType]=\"item.editType\"\r\n [validationRules]=\"item.validationRules\"\r\n [type]=\"item.dataType || 'string'\"\r\n [width]=\"item.width\"\r\n [minWidth]=\"item.minWidth\"\r\n [format]=\"item.format\"\r\n [visible]=\"item.visible\"\r\n [template]=\"item.showTemplate ? columnTemplate : undefined\"\r\n [clipMode]=\"\r\n item.clipMode ? item.clipMode : clipMode || 'EllipsisWithTooltip'\r\n \"\r\n [sortComparer]=\"item.dateComparer || null\"\r\n [allowResizing]=\"!last\"\r\n >\r\n </e-column>\r\n </e-columns>\r\n</ejs-grid>\r\n" }]
|
|
425
447
|
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }]; }, propDecorators: { grid: [{
|
|
426
448
|
type: ViewChild,
|
|
427
449
|
args: ["grid", { static: false }]
|
|
@@ -457,6 +479,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
457
479
|
type: Input
|
|
458
480
|
}], allowPaging: [{
|
|
459
481
|
type: Input
|
|
482
|
+
}], allowRowDragAndDrop: [{
|
|
483
|
+
type: Input
|
|
460
484
|
}], clipMode: [{
|
|
461
485
|
type: Input
|
|
462
486
|
}], checkBoxWidth: [{
|
|
@@ -485,6 +509,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
485
509
|
type: Output
|
|
486
510
|
}], rowDeselected: [{
|
|
487
511
|
type: Output
|
|
512
|
+
}], rowDeselecting: [{
|
|
513
|
+
type: Output
|
|
488
514
|
}], onContextMenu: [{
|
|
489
515
|
type: Output
|
|
490
516
|
}], actionHandler: [{
|
|
@@ -503,6 +529,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
503
529
|
type: Output
|
|
504
530
|
}], rowSelecting: [{
|
|
505
531
|
type: Output
|
|
532
|
+
}], rowDrop: [{
|
|
533
|
+
type: Output
|
|
534
|
+
}], rowDrag: [{
|
|
535
|
+
type: Output
|
|
536
|
+
}], rowDragStart: [{
|
|
537
|
+
type: Output
|
|
506
538
|
}] } });
|
|
507
539
|
|
|
508
540
|
class GridActionComponent {
|
|
@@ -511,53 +543,13 @@ class GridActionComponent {
|
|
|
511
543
|
this.translation = JSON.parse(localStorage.getItem("translation"));
|
|
512
544
|
}
|
|
513
545
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: GridActionComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
514
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: GridActionComponent, selector: "rs-grid-action", ngImport: i0, template: "<button\r\n\tclass=\"grid-action-toggle\"\r\n\tmat-button\r\n\ttype=\"button\"\r\n\t[matMenuTriggerFor]=\"menu\"\r\n\tmatTooltip=\"{{ translation.ACTIONS }}\"\r\n>\r\n\t<mat-icon svgIcon=\"more\"></mat-icon>\r\n</button>\r\n<mat-menu #menu=\"matMenu\" class=\"grid-action-menu-content\">\r\n\t<ng-content></ng-content>\r\n</mat-menu>\r\n", styles: [":host{flex:none;display:block;margin-left:auto}.grid-action-toggle{width:24px;height:24px;min-width:24px;max-width:24px;padding:0;border-radius:4px;display:flex;flex-flow:row nowrap;justify-content:center;align-items:center;background:transparent}.grid-action-toggle:hover{background:#d6e3f533}.grid-action-toggle .mat-button-wrapper{max-height:24px;height:24px}.grid-action-toggle ::ng-deep .mat-icon{width:16px;height:16px;display:flex;flex-flow:row nowrap;justify-content:center;align-items:center}::ng-deep .grid-action-menu-content{
|
|
546
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: GridActionComponent, selector: "rs-grid-action", ngImport: i0, template: "<button\r\n\tclass=\"grid-action-toggle\"\r\n\tmat-button\r\n\ttype=\"button\"\r\n\t[matMenuTriggerFor]=\"menu\"\r\n\tmatTooltip=\"{{ translation.ACTIONS }}\"\r\n>\r\n\t<mat-icon svgIcon=\"more\"></mat-icon>\r\n</button>\r\n<mat-menu #menu=\"matMenu\" class=\"grid-action-menu-content\">\r\n\t<ng-content></ng-content>\r\n</mat-menu>\r\n", styles: [":host{flex:none;display:block;margin-left:auto}.grid-action-toggle{width:24px;height:24px;min-width:24px;max-width:24px;padding:0;border-radius:4px;display:flex;flex-flow:row nowrap;justify-content:center;align-items:center;background:transparent}.grid-action-toggle:hover{background:#d6e3f533}.grid-action-toggle .mat-button-wrapper{max-height:24px;height:24px}.grid-action-toggle ::ng-deep .mat-icon{width:16px;height:16px;display:flex;flex-flow:row nowrap;justify-content:center;align-items:center}::ng-deep .grid-action-menu-content.mat-menu-panel{border-radius:8px;background-color:#fff;box-shadow:0 0 8px #00000040;overflow:visible}::ng-deep .grid-action-menu-content.mat-menu-panel .mat-menu-content{padding:8px}::ng-deep .grid-action-menu-content.mat-menu-panel rs-grid-action-item.disabled{pointer-events:none}::ng-deep .grid-action-menu-content.mat-menu-panel rs-grid-action-item.disabled button.grid-action-item{opacity:.4}::ng-deep .grid-action-menu-content.mat-menu-panel button.grid-action-item{min-width:100px;position:relative;display:flex;flex-flow:row nowrap;align-items:center;justify-content:flex-start!important;gap:6px;height:28px!important;padding:0 8px;border-radius:4px;color:#44566c;font-family:Arial;font-size:11px;font-style:normal;font-weight:400;line-height:14px}::ng-deep .grid-action-menu-content.mat-menu-panel button.grid-action-item:hover{background-color:#0000000a}::ng-deep .grid-action-menu-content.mat-menu-panel button.grid-action-item:hover .mat-menu-ripple{background:none!important}::ng-deep .grid-action-menu-content.mat-menu-panel button.grid-action-item .grid-action-image{height:16px;display:flex;flex-flow:row nowrap;justify-content:center;align-items:center}::ng-deep .grid-action-menu-content.mat-menu-panel button.grid-action-item .grid-action-image:before{display:block;width:16px;height:16px;line-height:16px}::ng-deep .grid-action-menu-content.mat-menu-panel button.grid-action-item .grid-action-image[data-type=Detail]:before{content:url(/assets/img/grid-action-detail.svg)}::ng-deep .grid-action-menu-content.mat-menu-panel button.grid-action-item .grid-action-image[data-type=Delete]:before{content:url(/assets/img/grid-action-delete.svg)}::ng-deep .grid-action-menu-content.mat-menu-panel button.grid-action-item .grid-action-image[data-type=Send]:before{content:url(/assets/img/grid-action-send.svg)}::ng-deep .grid-action-menu-content.mat-menu-panel button.grid-action-item .grid-action-image[data-type=Copy]:before{content:url(/assets/img/grid-action-copy.svg)}::ng-deep .grid-action-menu-content.mat-menu-panel button.grid-action-item .grid-action-image[data-type=Edit]:before{content:url(/assets/img/grid-action-edit.svg)}::ng-deep .grid-action-menu-content.mat-menu-panel button.grid-action-item .grid-action-image[data-type=Note]:before{content:url(/assets/img/grid-action-note.svg)}::ng-deep .grid-action-menu-content.mat-menu-panel button.grid-action-item .grid-action-image[data-type=Download]:before{content:url(/assets/img/grid-action-download.svg)}::ng-deep .grid-action-menu-content.mat-menu-panel button.grid-action-item .grid-action-image[data-type=Preview]:before{content:url(/assets/img/grid-action-preview.svg)}::ng-deep .grid-action-menu-content.mat-menu-panel button.grid-action-item .grid-action-image[data-type=Export]:before{content:url(/assets/img/grid-action-export.svg)}::ng-deep .grid-action-menu-content.mat-menu-panel button.grid-action-item .grid-action-image[data-type=Move]:before{content:url(/assets/img/grid-action-move.svg)}::ng-deep .grid-action-menu-content.mat-menu-panel button.grid-action-item .grid-action-image[data-type=Duplicate]:before{content:url(/assets/img/grid-action-duplicate.svg)}::ng-deep .grid-action-menu-content.mat-menu-panel button.grid-action-item .grid-action-image[data-type=Refresh]:before{content:url(/assets/img/grid-action-refresh.svg)}::ng-deep .grid-action-menu-content.mat-menu-panel button.grid-action-item .grid-action-image[data-type=Add]:before{content:url(/assets/img/toolbar-action-add.svg)}::ng-deep .grid-action-menu-content.mat-menu-panel button.grid-action-item .grid-action-image[data-type=Import]:before{content:url(/assets/img/toolbar-action-import.svg)}::ng-deep .grid-action-menu-content.mat-menu-panel button.grid-action-item .grid-action-image[data-type=Upload]:before{content:url(/assets/img/toolbar-action-upload.svg)}::ng-deep .grid-action-menu-content.mat-menu-panel button.grid-action-item .grid-action-image[data-type=AddFolder]:before{content:url(/assets/img/toolbar-action-addFolder.svg)}::ng-deep .grid-action-menu-content.mat-menu-panel button.grid-action-item .grid-action-image[data-type=Collapse]:before{content:url(/assets/img/toolbar-action-collapse.svg)}::ng-deep .grid-action-menu-content.mat-menu-panel button.grid-action-item .grid-action-image[data-type=Combine]:before{content:url(/assets/img/toolbar-action-combine.svg)}::ng-deep .grid-action-menu-content.mat-menu-panel button.grid-action-item .grid-action-image[data-type=Lock]:before{content:url(/assets/img/toolbar-action-lock.svg)}::ng-deep .grid-action-menu-content.mat-menu-panel button.grid-action-item .grid-action-image[data-type=Expand]:before{content:url(/assets/img/toolbar-action-expand.svg)}::ng-deep .grid-action-menu-content.mat-menu-panel button.grid-action-item .grid-action-image[data-type=MoveTo]:before{content:url(/assets/img/toolbar-action-folderMove.svg)}::ng-deep .grid-action-menu-content.mat-menu-panel button.grid-action-item .grid-action-image[data-type=Publish]:before{content:url(/assets/img/toolbar-action-publish.svg)}::ng-deep .grid-action-menu-content.mat-menu-panel button.grid-action-item .grid-action-image[data-type=ReCalculate]:before{content:url(/assets/img/toolbar-action-calculator.svg)}::ng-deep .grid-action-menu-content.mat-menu-panel button.grid-action-item .grid-action-image[data-type=Sync]:before{content:url(/assets/img/toolbar-action-sync.svg)}::ng-deep .grid-action-menu-content.mat-menu-panel button.grid-action-item .grid-action-image[data-type=Share]:before{content:url(/assets/img/toolbar-action-share.svg)}::ng-deep .grid-action-menu-content.mat-menu-panel button.grid-action-item .grid-action-image[data-type=Rename]:before{content:url(/assets/img/toolbar-action-rename.svg)}::ng-deep .grid-action-menu-content.mat-menu-panel button.grid-action-item .grid-action-image[data-type=SaveSequence]:before{content:url(/assets/img/toolbar-action-saveSequence.svg)}::ng-deep .grid-action-menu-content.mat-menu-panel button.grid-action-item .grid-action-image[data-type=SubmitForApproval]:before{content:url(/assets/img/toolbar-action-submitForApproval.svg)}::ng-deep .grid-action-menu-content.mat-menu-panel button.grid-action-item .grid-action-image[data-type=SendToControlPanel]:before{content:url(/assets/img/toolbar-action-send-file.svg)}::ng-deep .grid-action-menu-content.mat-menu-panel button.grid-action-item .grid-action-image[data-type=SetReminders]:before{content:url(/assets/img/toolbar-action-reminders.svg)}::ng-deep .grid-action-menu-content.mat-menu-panel button.grid-action-item .grid-action-image[data-type=Settle]:before{content:url(/assets/img/toolbar-action-settle.svg)}::ng-deep .grid-action-menu-content.mat-menu-panel button.grid-action-item .grid-action-image[data-type=Template]:before{content:url(/assets/img/toolbar-action-template.svg)}::ng-deep .grid-action-menu-content.mat-menu-panel button.grid-action-item .grid-action-image[data-type=Workflow]:before{content:url(/assets/img/toolbar-action-workflow.svg)}::ng-deep .grid-action-menu-content.mat-menu-panel button.grid-action-item .grid-action-image[data-type=Update]:before{content:url(/assets/img/toolbar-action-update.svg)}::ng-deep .grid-action-menu-content.mat-menu-panel button.grid-action-item .grid-action-image[data-type=FetchData]:before{content:url(/assets/img/toolbar-action-fetchData.svg)}::ng-deep .grid-action-menu-content.mat-menu-panel button.grid-action-item .grid-action-image[data-type=ViewStatus]:before{content:url(/assets/img/grid-action-viewStatus.svg)}::ng-deep .grid-action-menu-content.mat-menu-panel button.grid-action-item .grid-action-image[data-type=Verify]:before{content:url(/assets/img/grid-action-verify.svg)}::ng-deep .grid-action-menu-content.mat-menu-panel button.grid-action-item .grid-action-image img{height:16px;display:block}::ng-deep .grid-action-menu-content.mat-menu-panel button.grid-action-item .grid-action-arrow{vertical-align:middle;position:absolute;right:4px;top:6px}::ng-deep .grid-action-menu-content.mat-menu-panel button.grid-action-item .grid-action-arrow img{vertical-align:middle}\n"], dependencies: [{ kind: "component", type: i2$1.MatMenu, selector: "mat-menu", exportAs: ["matMenu"] }, { kind: "directive", type: i2$1.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", exportAs: ["matMenuTrigger"] }, { kind: "directive", type: i2$2.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }] });
|
|
515
547
|
}
|
|
516
548
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: GridActionComponent, decorators: [{
|
|
517
549
|
type: Component,
|
|
518
|
-
args: [{ selector: "rs-grid-action", template: "<button\r\n\tclass=\"grid-action-toggle\"\r\n\tmat-button\r\n\ttype=\"button\"\r\n\t[matMenuTriggerFor]=\"menu\"\r\n\tmatTooltip=\"{{ translation.ACTIONS }}\"\r\n>\r\n\t<mat-icon svgIcon=\"more\"></mat-icon>\r\n</button>\r\n<mat-menu #menu=\"matMenu\" class=\"grid-action-menu-content\">\r\n\t<ng-content></ng-content>\r\n</mat-menu>\r\n", styles: [":host{flex:none;display:block;margin-left:auto}.grid-action-toggle{width:24px;height:24px;min-width:24px;max-width:24px;padding:0;border-radius:4px;display:flex;flex-flow:row nowrap;justify-content:center;align-items:center;background:transparent}.grid-action-toggle:hover{background:#d6e3f533}.grid-action-toggle .mat-button-wrapper{max-height:24px;height:24px}.grid-action-toggle ::ng-deep .mat-icon{width:16px;height:16px;display:flex;flex-flow:row nowrap;justify-content:center;align-items:center}::ng-deep .grid-action-menu-content{
|
|
550
|
+
args: [{ selector: "rs-grid-action", template: "<button\r\n\tclass=\"grid-action-toggle\"\r\n\tmat-button\r\n\ttype=\"button\"\r\n\t[matMenuTriggerFor]=\"menu\"\r\n\tmatTooltip=\"{{ translation.ACTIONS }}\"\r\n>\r\n\t<mat-icon svgIcon=\"more\"></mat-icon>\r\n</button>\r\n<mat-menu #menu=\"matMenu\" class=\"grid-action-menu-content\">\r\n\t<ng-content></ng-content>\r\n</mat-menu>\r\n", styles: [":host{flex:none;display:block;margin-left:auto}.grid-action-toggle{width:24px;height:24px;min-width:24px;max-width:24px;padding:0;border-radius:4px;display:flex;flex-flow:row nowrap;justify-content:center;align-items:center;background:transparent}.grid-action-toggle:hover{background:#d6e3f533}.grid-action-toggle .mat-button-wrapper{max-height:24px;height:24px}.grid-action-toggle ::ng-deep .mat-icon{width:16px;height:16px;display:flex;flex-flow:row nowrap;justify-content:center;align-items:center}::ng-deep .grid-action-menu-content.mat-menu-panel{border-radius:8px;background-color:#fff;box-shadow:0 0 8px #00000040;overflow:visible}::ng-deep .grid-action-menu-content.mat-menu-panel .mat-menu-content{padding:8px}::ng-deep .grid-action-menu-content.mat-menu-panel rs-grid-action-item.disabled{pointer-events:none}::ng-deep .grid-action-menu-content.mat-menu-panel rs-grid-action-item.disabled button.grid-action-item{opacity:.4}::ng-deep .grid-action-menu-content.mat-menu-panel button.grid-action-item{min-width:100px;position:relative;display:flex;flex-flow:row nowrap;align-items:center;justify-content:flex-start!important;gap:6px;height:28px!important;padding:0 8px;border-radius:4px;color:#44566c;font-family:Arial;font-size:11px;font-style:normal;font-weight:400;line-height:14px}::ng-deep .grid-action-menu-content.mat-menu-panel button.grid-action-item:hover{background-color:#0000000a}::ng-deep .grid-action-menu-content.mat-menu-panel button.grid-action-item:hover .mat-menu-ripple{background:none!important}::ng-deep .grid-action-menu-content.mat-menu-panel button.grid-action-item .grid-action-image{height:16px;display:flex;flex-flow:row nowrap;justify-content:center;align-items:center}::ng-deep .grid-action-menu-content.mat-menu-panel button.grid-action-item .grid-action-image:before{display:block;width:16px;height:16px;line-height:16px}::ng-deep .grid-action-menu-content.mat-menu-panel button.grid-action-item .grid-action-image[data-type=Detail]:before{content:url(/assets/img/grid-action-detail.svg)}::ng-deep .grid-action-menu-content.mat-menu-panel button.grid-action-item .grid-action-image[data-type=Delete]:before{content:url(/assets/img/grid-action-delete.svg)}::ng-deep .grid-action-menu-content.mat-menu-panel button.grid-action-item .grid-action-image[data-type=Send]:before{content:url(/assets/img/grid-action-send.svg)}::ng-deep .grid-action-menu-content.mat-menu-panel button.grid-action-item .grid-action-image[data-type=Copy]:before{content:url(/assets/img/grid-action-copy.svg)}::ng-deep .grid-action-menu-content.mat-menu-panel button.grid-action-item .grid-action-image[data-type=Edit]:before{content:url(/assets/img/grid-action-edit.svg)}::ng-deep .grid-action-menu-content.mat-menu-panel button.grid-action-item .grid-action-image[data-type=Note]:before{content:url(/assets/img/grid-action-note.svg)}::ng-deep .grid-action-menu-content.mat-menu-panel button.grid-action-item .grid-action-image[data-type=Download]:before{content:url(/assets/img/grid-action-download.svg)}::ng-deep .grid-action-menu-content.mat-menu-panel button.grid-action-item .grid-action-image[data-type=Preview]:before{content:url(/assets/img/grid-action-preview.svg)}::ng-deep .grid-action-menu-content.mat-menu-panel button.grid-action-item .grid-action-image[data-type=Export]:before{content:url(/assets/img/grid-action-export.svg)}::ng-deep .grid-action-menu-content.mat-menu-panel button.grid-action-item .grid-action-image[data-type=Move]:before{content:url(/assets/img/grid-action-move.svg)}::ng-deep .grid-action-menu-content.mat-menu-panel button.grid-action-item .grid-action-image[data-type=Duplicate]:before{content:url(/assets/img/grid-action-duplicate.svg)}::ng-deep .grid-action-menu-content.mat-menu-panel button.grid-action-item .grid-action-image[data-type=Refresh]:before{content:url(/assets/img/grid-action-refresh.svg)}::ng-deep .grid-action-menu-content.mat-menu-panel button.grid-action-item .grid-action-image[data-type=Add]:before{content:url(/assets/img/toolbar-action-add.svg)}::ng-deep .grid-action-menu-content.mat-menu-panel button.grid-action-item .grid-action-image[data-type=Import]:before{content:url(/assets/img/toolbar-action-import.svg)}::ng-deep .grid-action-menu-content.mat-menu-panel button.grid-action-item .grid-action-image[data-type=Upload]:before{content:url(/assets/img/toolbar-action-upload.svg)}::ng-deep .grid-action-menu-content.mat-menu-panel button.grid-action-item .grid-action-image[data-type=AddFolder]:before{content:url(/assets/img/toolbar-action-addFolder.svg)}::ng-deep .grid-action-menu-content.mat-menu-panel button.grid-action-item .grid-action-image[data-type=Collapse]:before{content:url(/assets/img/toolbar-action-collapse.svg)}::ng-deep .grid-action-menu-content.mat-menu-panel button.grid-action-item .grid-action-image[data-type=Combine]:before{content:url(/assets/img/toolbar-action-combine.svg)}::ng-deep .grid-action-menu-content.mat-menu-panel button.grid-action-item .grid-action-image[data-type=Lock]:before{content:url(/assets/img/toolbar-action-lock.svg)}::ng-deep .grid-action-menu-content.mat-menu-panel button.grid-action-item .grid-action-image[data-type=Expand]:before{content:url(/assets/img/toolbar-action-expand.svg)}::ng-deep .grid-action-menu-content.mat-menu-panel button.grid-action-item .grid-action-image[data-type=MoveTo]:before{content:url(/assets/img/toolbar-action-folderMove.svg)}::ng-deep .grid-action-menu-content.mat-menu-panel button.grid-action-item .grid-action-image[data-type=Publish]:before{content:url(/assets/img/toolbar-action-publish.svg)}::ng-deep .grid-action-menu-content.mat-menu-panel button.grid-action-item .grid-action-image[data-type=ReCalculate]:before{content:url(/assets/img/toolbar-action-calculator.svg)}::ng-deep .grid-action-menu-content.mat-menu-panel button.grid-action-item .grid-action-image[data-type=Sync]:before{content:url(/assets/img/toolbar-action-sync.svg)}::ng-deep .grid-action-menu-content.mat-menu-panel button.grid-action-item .grid-action-image[data-type=Share]:before{content:url(/assets/img/toolbar-action-share.svg)}::ng-deep .grid-action-menu-content.mat-menu-panel button.grid-action-item .grid-action-image[data-type=Rename]:before{content:url(/assets/img/toolbar-action-rename.svg)}::ng-deep .grid-action-menu-content.mat-menu-panel button.grid-action-item .grid-action-image[data-type=SaveSequence]:before{content:url(/assets/img/toolbar-action-saveSequence.svg)}::ng-deep .grid-action-menu-content.mat-menu-panel button.grid-action-item .grid-action-image[data-type=SubmitForApproval]:before{content:url(/assets/img/toolbar-action-submitForApproval.svg)}::ng-deep .grid-action-menu-content.mat-menu-panel button.grid-action-item .grid-action-image[data-type=SendToControlPanel]:before{content:url(/assets/img/toolbar-action-send-file.svg)}::ng-deep .grid-action-menu-content.mat-menu-panel button.grid-action-item .grid-action-image[data-type=SetReminders]:before{content:url(/assets/img/toolbar-action-reminders.svg)}::ng-deep .grid-action-menu-content.mat-menu-panel button.grid-action-item .grid-action-image[data-type=Settle]:before{content:url(/assets/img/toolbar-action-settle.svg)}::ng-deep .grid-action-menu-content.mat-menu-panel button.grid-action-item .grid-action-image[data-type=Template]:before{content:url(/assets/img/toolbar-action-template.svg)}::ng-deep .grid-action-menu-content.mat-menu-panel button.grid-action-item .grid-action-image[data-type=Workflow]:before{content:url(/assets/img/toolbar-action-workflow.svg)}::ng-deep .grid-action-menu-content.mat-menu-panel button.grid-action-item .grid-action-image[data-type=Update]:before{content:url(/assets/img/toolbar-action-update.svg)}::ng-deep .grid-action-menu-content.mat-menu-panel button.grid-action-item .grid-action-image[data-type=FetchData]:before{content:url(/assets/img/toolbar-action-fetchData.svg)}::ng-deep .grid-action-menu-content.mat-menu-panel button.grid-action-item .grid-action-image[data-type=ViewStatus]:before{content:url(/assets/img/grid-action-viewStatus.svg)}::ng-deep .grid-action-menu-content.mat-menu-panel button.grid-action-item .grid-action-image[data-type=Verify]:before{content:url(/assets/img/grid-action-verify.svg)}::ng-deep .grid-action-menu-content.mat-menu-panel button.grid-action-item .grid-action-image img{height:16px;display:block}::ng-deep .grid-action-menu-content.mat-menu-panel button.grid-action-item .grid-action-arrow{vertical-align:middle;position:absolute;right:4px;top:6px}::ng-deep .grid-action-menu-content.mat-menu-panel button.grid-action-item .grid-action-arrow img{vertical-align:middle}\n"] }]
|
|
519
551
|
}], ctorParameters: function () { return []; } });
|
|
520
552
|
|
|
521
|
-
class GridActionItemComponent {
|
|
522
|
-
image;
|
|
523
|
-
text;
|
|
524
|
-
disabled;
|
|
525
|
-
get hostDisabled() {
|
|
526
|
-
return !!this.disabled;
|
|
527
|
-
}
|
|
528
|
-
ImageType = [
|
|
529
|
-
"Detail",
|
|
530
|
-
"Edit",
|
|
531
|
-
"Download",
|
|
532
|
-
"Delete",
|
|
533
|
-
"Note",
|
|
534
|
-
"Send",
|
|
535
|
-
"Copy",
|
|
536
|
-
"Settle",
|
|
537
|
-
"Preview",
|
|
538
|
-
"Export",
|
|
539
|
-
"Move",
|
|
540
|
-
];
|
|
541
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: GridActionItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
542
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: GridActionItemComponent, selector: "rs-grid-action-item", inputs: { image: "image", text: "text", disabled: "disabled" }, host: { properties: { "class.disabled": "this.hostDisabled" } }, ngImport: i0, template: "<button\r\n\tclass=\"grid-action-item\"\r\n\tmat-menu-item\r\n\ttype=\"button\"\r\n\t[disabled]=\"!!disabled\"\r\n>\r\n\t<span class=\"grid-action-image\" [attr.data-type]=\"image\">\r\n\t\t<img *ngIf=\"!ImageType.includes(image)\" [src]=\"image\" />\r\n\t</span>\r\n\t<span>{{ text }}</span>\r\n</button>\r\n", dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2$1.MatMenuItem, selector: "[mat-menu-item]", inputs: ["disabled", "disableRipple", "role"], exportAs: ["matMenuItem"] }] });
|
|
543
|
-
}
|
|
544
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: GridActionItemComponent, decorators: [{
|
|
545
|
-
type: Component,
|
|
546
|
-
args: [{ selector: "rs-grid-action-item", template: "<button\r\n\tclass=\"grid-action-item\"\r\n\tmat-menu-item\r\n\ttype=\"button\"\r\n\t[disabled]=\"!!disabled\"\r\n>\r\n\t<span class=\"grid-action-image\" [attr.data-type]=\"image\">\r\n\t\t<img *ngIf=\"!ImageType.includes(image)\" [src]=\"image\" />\r\n\t</span>\r\n\t<span>{{ text }}</span>\r\n</button>\r\n" }]
|
|
547
|
-
}], propDecorators: { image: [{
|
|
548
|
-
type: Input,
|
|
549
|
-
args: ["image"]
|
|
550
|
-
}], text: [{
|
|
551
|
-
type: Input,
|
|
552
|
-
args: ["text"]
|
|
553
|
-
}], disabled: [{
|
|
554
|
-
type: Input,
|
|
555
|
-
args: ["disabled"]
|
|
556
|
-
}], hostDisabled: [{
|
|
557
|
-
type: HostBinding,
|
|
558
|
-
args: ["class.disabled"]
|
|
559
|
-
}] } });
|
|
560
|
-
|
|
561
553
|
class FloatBoxComponent {
|
|
562
554
|
ref;
|
|
563
555
|
_placement;
|
|
@@ -738,6 +730,8 @@ class FloatBoxComponent {
|
|
|
738
730
|
close() {
|
|
739
731
|
setTimeout(() => {
|
|
740
732
|
this.opened = "no";
|
|
733
|
+
this.ref.markForCheck();
|
|
734
|
+
this.ref.detectChanges();
|
|
741
735
|
this.openChange.emit(false);
|
|
742
736
|
}, 0);
|
|
743
737
|
}
|
|
@@ -773,6 +767,84 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
773
767
|
args: ["content", { static: false }]
|
|
774
768
|
}] } });
|
|
775
769
|
|
|
770
|
+
class GridActionItemComponent {
|
|
771
|
+
image;
|
|
772
|
+
text;
|
|
773
|
+
disabled;
|
|
774
|
+
children = [];
|
|
775
|
+
hideArrow = false;
|
|
776
|
+
disabledOptions = {};
|
|
777
|
+
get hostDisabled() {
|
|
778
|
+
return !!this.disabled;
|
|
779
|
+
}
|
|
780
|
+
ImageType = [
|
|
781
|
+
"Detail",
|
|
782
|
+
"Edit",
|
|
783
|
+
"Duplicate",
|
|
784
|
+
"Refresh",
|
|
785
|
+
"Download",
|
|
786
|
+
"Delete",
|
|
787
|
+
"Note",
|
|
788
|
+
"Send",
|
|
789
|
+
"Copy",
|
|
790
|
+
"Settle",
|
|
791
|
+
"Preview",
|
|
792
|
+
"Export",
|
|
793
|
+
"Move",
|
|
794
|
+
"Add",
|
|
795
|
+
"Update",
|
|
796
|
+
"Import",
|
|
797
|
+
"Upload",
|
|
798
|
+
"AddFolder",
|
|
799
|
+
"Collapse",
|
|
800
|
+
"Combine",
|
|
801
|
+
"Lock",
|
|
802
|
+
"Expand",
|
|
803
|
+
"MoveTo",
|
|
804
|
+
"Publish",
|
|
805
|
+
"ReCalculate",
|
|
806
|
+
"Sync",
|
|
807
|
+
"Share",
|
|
808
|
+
"Rename",
|
|
809
|
+
"SaveSequence",
|
|
810
|
+
"SubmitForApproval",
|
|
811
|
+
"SendToControlPanel",
|
|
812
|
+
"SetReminders",
|
|
813
|
+
"Settle",
|
|
814
|
+
"Template",
|
|
815
|
+
"Workflow",
|
|
816
|
+
"FetchData",
|
|
817
|
+
"ViewStatus",
|
|
818
|
+
"Verify",
|
|
819
|
+
];
|
|
820
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: GridActionItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
821
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: GridActionItemComponent, selector: "rs-grid-action-item", inputs: { image: "image", text: "text", disabled: "disabled", children: "children", hideArrow: "hideArrow", disabledOptions: "disabledOptions" }, host: { properties: { "class.disabled": "this.hostDisabled" } }, ngImport: i0, template: "<button\r\n *ngIf=\"!children.length\"\r\n class=\"grid-action-item e-btn text\"\r\n mat-menu-item\r\n type=\"button\"\r\n [disabled]=\"!!disabled\"\r\n>\r\n <span class=\"grid-action-image\" *ngIf=\"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<rs-float-box placement=\"right\" position=\"start\">\r\n <button\r\n *ngIf=\"children.length\"\r\n class=\"grid-action-item e-btn text\"\r\n mat-menu-item\r\n [disabled]=\"!!disabled\"\r\n >\r\n <span class=\"grid-action-image\" *ngIf=\"image\" [attr.data-type]=\"image\">\r\n <img *ngIf=\"!ImageType.includes(image)\" [src]=\"image\" />\r\n </span>\r\n <span>{{ text }}</span>\r\n <span class=\"grid-action-arrow\" *ngIf=\"!hideArrow\">\r\n <img src=\"assets/img/grid-menu-arrow-right.svg\" />\r\n </span>\r\n </button>\r\n <div float-content>\r\n <ng-container *ngFor=\"let button of children\">\r\n <button\r\n class=\"grid-action-item e-btn text\"\r\n [disabled]=\"(button.key && disabledOptions[button.key]) || false\"\r\n (click)=\"button.action()\"\r\n >\r\n <span\r\n class=\"grid-action-image\"\r\n *ngIf=\"button.image\"\r\n [attr.data-type]=\"button.image\"\r\n >\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 </div>\r\n</rs-float-box>\r\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$1.MatMenuItem, selector: "[mat-menu-item]", inputs: ["disabled", "disableRipple", "role"], exportAs: ["matMenuItem"] }, { kind: "component", type: FloatBoxComponent, selector: "rs-float-box", inputs: ["placement", "position", "trigger", "animation", "fixed"], outputs: ["openChange"] }] });
|
|
822
|
+
}
|
|
823
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: GridActionItemComponent, decorators: [{
|
|
824
|
+
type: Component,
|
|
825
|
+
args: [{ selector: "rs-grid-action-item", template: "<button\r\n *ngIf=\"!children.length\"\r\n class=\"grid-action-item e-btn text\"\r\n mat-menu-item\r\n type=\"button\"\r\n [disabled]=\"!!disabled\"\r\n>\r\n <span class=\"grid-action-image\" *ngIf=\"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<rs-float-box placement=\"right\" position=\"start\">\r\n <button\r\n *ngIf=\"children.length\"\r\n class=\"grid-action-item e-btn text\"\r\n mat-menu-item\r\n [disabled]=\"!!disabled\"\r\n >\r\n <span class=\"grid-action-image\" *ngIf=\"image\" [attr.data-type]=\"image\">\r\n <img *ngIf=\"!ImageType.includes(image)\" [src]=\"image\" />\r\n </span>\r\n <span>{{ text }}</span>\r\n <span class=\"grid-action-arrow\" *ngIf=\"!hideArrow\">\r\n <img src=\"assets/img/grid-menu-arrow-right.svg\" />\r\n </span>\r\n </button>\r\n <div float-content>\r\n <ng-container *ngFor=\"let button of children\">\r\n <button\r\n class=\"grid-action-item e-btn text\"\r\n [disabled]=\"(button.key && disabledOptions[button.key]) || false\"\r\n (click)=\"button.action()\"\r\n >\r\n <span\r\n class=\"grid-action-image\"\r\n *ngIf=\"button.image\"\r\n [attr.data-type]=\"button.image\"\r\n >\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 </div>\r\n</rs-float-box>\r\n" }]
|
|
826
|
+
}], propDecorators: { image: [{
|
|
827
|
+
type: Input,
|
|
828
|
+
args: ["image"]
|
|
829
|
+
}], text: [{
|
|
830
|
+
type: Input,
|
|
831
|
+
args: ["text"]
|
|
832
|
+
}], disabled: [{
|
|
833
|
+
type: Input,
|
|
834
|
+
args: ["disabled"]
|
|
835
|
+
}], children: [{
|
|
836
|
+
type: Input,
|
|
837
|
+
args: ["children"]
|
|
838
|
+
}], hideArrow: [{
|
|
839
|
+
type: Input,
|
|
840
|
+
args: ["hideArrow"]
|
|
841
|
+
}], disabledOptions: [{
|
|
842
|
+
type: Input
|
|
843
|
+
}], hostDisabled: [{
|
|
844
|
+
type: HostBinding,
|
|
845
|
+
args: ["class.disabled"]
|
|
846
|
+
}] } });
|
|
847
|
+
|
|
776
848
|
function Debounce(delay = 300) {
|
|
777
849
|
return function (target, propertyKey, descriptor) {
|
|
778
850
|
const originalMethod = descriptor.value;
|
|
@@ -980,15 +1052,22 @@ class CommonDialogComponent {
|
|
|
980
1052
|
hideCloseIcon = false;
|
|
981
1053
|
hideCloseBtn = false;
|
|
982
1054
|
hideSaveBtn = false;
|
|
1055
|
+
hideDiscardBtn = false;
|
|
983
1056
|
saveBtnLabel = "";
|
|
984
1057
|
cancelBtnLabel = "";
|
|
1058
|
+
discardBtnLabel = "";
|
|
985
1059
|
showErrorIcon = false;
|
|
1060
|
+
showZoomBtn = false;
|
|
1061
|
+
// 关闭前的回调函数
|
|
1062
|
+
onCloseRequest;
|
|
986
1063
|
// 显示相关属性
|
|
1064
|
+
dialogStyle = {};
|
|
987
1065
|
size = "";
|
|
988
1066
|
title = "Dialog";
|
|
989
1067
|
loading = false;
|
|
990
1068
|
saveEmit = new EventEmitter();
|
|
991
1069
|
closeEmit = new EventEmitter();
|
|
1070
|
+
defaultSize = "";
|
|
992
1071
|
constructor(dialogRef) {
|
|
993
1072
|
this.dialogRef = dialogRef;
|
|
994
1073
|
}
|
|
@@ -1001,29 +1080,45 @@ class CommonDialogComponent {
|
|
|
1001
1080
|
ngOnInit() {
|
|
1002
1081
|
this.getInfo();
|
|
1003
1082
|
}
|
|
1004
|
-
onClose(
|
|
1005
|
-
this.
|
|
1006
|
-
|
|
1083
|
+
onClose() {
|
|
1084
|
+
if (this.onCloseRequest) {
|
|
1085
|
+
this.onCloseRequest().then((confirmed) => {
|
|
1086
|
+
if (confirmed) {
|
|
1087
|
+
this.dialogRef.close("close");
|
|
1088
|
+
}
|
|
1089
|
+
});
|
|
1090
|
+
}
|
|
1091
|
+
else {
|
|
1092
|
+
this.dialogRef.close("close");
|
|
1093
|
+
}
|
|
1094
|
+
}
|
|
1095
|
+
onZoom() {
|
|
1096
|
+
if (this.size === "largest") {
|
|
1097
|
+
this.size = this.defaultSize; // 恢复到原始大小
|
|
1098
|
+
}
|
|
1099
|
+
else {
|
|
1100
|
+
this.size = "largest"; // 设置为最大化
|
|
1101
|
+
}
|
|
1007
1102
|
}
|
|
1008
1103
|
onSave() {
|
|
1009
|
-
|
|
1010
|
-
|
|
1011
|
-
|
|
1012
|
-
|
|
1104
|
+
this.dialogRef.close("save");
|
|
1105
|
+
}
|
|
1106
|
+
onDiscard() {
|
|
1107
|
+
this.dialogRef.close("discard");
|
|
1013
1108
|
}
|
|
1014
1109
|
getInfo() {
|
|
1015
1110
|
this.translation = JSON.parse(localStorage.getItem("translation")) || {};
|
|
1016
|
-
this.saveBtnLabel =
|
|
1017
|
-
this.saveBtnLabel || this.translation.SAVE || ".SAVE";
|
|
1111
|
+
this.saveBtnLabel = this.saveBtnLabel || this.translation.SAVE || ".SAVE";
|
|
1018
1112
|
this.cancelBtnLabel =
|
|
1019
1113
|
this.cancelBtnLabel || this.translation.CANCEL || ".CANCEL";
|
|
1114
|
+
this.defaultSize = this.size;
|
|
1020
1115
|
}
|
|
1021
1116
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CommonDialogComponent, deps: [{ token: i1$1.MatDialogRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
1022
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: CommonDialogComponent, selector: "
|
|
1117
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: CommonDialogComponent, selector: "rs-common-dialog", inputs: { hideHeader: "hideHeader", hideCloseIcon: "hideCloseIcon", hideCloseBtn: "hideCloseBtn", hideSaveBtn: "hideSaveBtn", hideDiscardBtn: "hideDiscardBtn", saveBtnLabel: "saveBtnLabel", cancelBtnLabel: "cancelBtnLabel", discardBtnLabel: "discardBtnLabel", showErrorIcon: "showErrorIcon", showZoomBtn: "showZoomBtn", onCloseRequest: "onCloseRequest", dialogStyle: "dialogStyle", size: "size", title: "title", loading: "loading" }, outputs: { saveEmit: "saveEmit", closeEmit: "closeEmit" }, queries: [{ propertyName: "footerContent", first: true, predicate: ["footerSlot"], descendants: true }], ngImport: i0, template: "<div class=\"dialog\" [ngClass]=\"size\" [ngStyle]=\"dialogStyle\">\r\n <!-- \u5934\u90E8 -->\r\n <div *ngIf=\"!hideHeader\" mat-dialog-title class=\"dialog__header\">\r\n <div class=\"header__title\">\r\n <img\r\n src=\"../../../assets/img/notification-status-warning.svg\"\r\n alt=\"\"\r\n *ngIf=\"showErrorIcon\"\r\n />\r\n {{ title }}\r\n </div>\r\n <div class=\"header__actions\">\r\n <div *ngIf=\"showZoomBtn\" class=\"header-btn\" (click)=\"onZoom()\">\r\n <img\r\n class=\"header-icon\"\r\n *ngIf=\"size === 'largest'\"\r\n src=\"../../../assets/img/dialog-shrink.svg\"\r\n />\r\n <img\r\n class=\"header-icon\"\r\n *ngIf=\"size !== 'largest'\"\r\n src=\"../../../assets/img/dialog-grow.svg\"\r\n />\r\n </div>\r\n <div *ngIf=\"!hideCloseIcon\" class=\"header-btn\" (click)=\"onClose()\">\r\n <img class=\"header-icon\" src=\"../../../assets/img/dialog-close.svg\" />\r\n </div>\r\n </div>\r\n </div>\r\n <!-- \u5185\u5BB9 -->\r\n <div class=\"dialog__content\" mat-dialog-content>\r\n <ng-content></ng-content>\r\n </div>\r\n <!-- \u5E95\u90E8\u6309\u94AE -->\r\n <div mat-dialog-actions class=\"dialog__footer\">\r\n <ng-content select=\"[footerSlot]\"></ng-content>\r\n <!-- \u9ED8\u8BA4\u5C55\u793A\u4FDD\u5B58/\u5173\u95ED\u6309\u94AE -->\r\n <ng-container *ngIf=\"!customFooter\">\r\n <ng-template [ngTemplateOutlet]=\"defaultTemplate\"></ng-template>\r\n </ng-container>\r\n <ng-template #defaultTemplate>\r\n <button\r\n *ngIf=\"!hideCloseBtn\"\r\n class=\"e-btn\"\r\n (click)=\"onClose()\"\r\n >\r\n {{ cancelBtnLabel }}\r\n </button>\r\n <button\r\n *ngIf=\"!hideDiscardBtn\"\r\n class=\"e-btn\"\r\n (click)=\"onDiscard()\"\r\n >\r\n {{ discardBtnLabel }}\r\n </button>\r\n <button\r\n *ngIf=\"!hideSaveBtn\"\r\n class=\"e-btn e-primary\"\r\n (click)=\"onSave()\"\r\n >\r\n {{ saveBtnLabel }}\r\n </button>\r\n </ng-template>\r\n </div>\r\n <!-- loading -->\r\n <div class=\"dialog__loading\" [hidden]=\"!loading\">\r\n <img src=\"../../../assets/img/raise_loading.gif\" alt=\"\" />\r\n </div>\r\n</div>\r\n", styles: [":host::ng-deep .dialog{position:relative;max-height:90vh;font-weight:400;padding:20px;overflow:hidden;display:flex;flex-direction:column}:host::ng-deep .dialog.largest{width:96vw!important;height:88vh!important;max-width:2100px;padding:20px}:host::ng-deep .dialog.medium{width:500px;padding:20px}:host::ng-deep .dialog.small{width:350px;padding:20px 16px}:host::ng-deep .dialog.small .dialog__header{color:#002c4f;margin-bottom:16px}:host::ng-deep .dialog.small .dialog__header .header__title{font-size:13px;line-height:16px}:host::ng-deep .dialog.small .dialog__content{font-size:12px;line-height:16px}:host::ng-deep .dialog.small .dialog__footer{min-height:42px;padding:16px 0 0;font-size:12px;line-height:14px}:host::ng-deep .dialog.small .dialog__footer button{padding:6px 12px;min-width:60px}:host::ng-deep .dialog.large{width:800px;padding:20px}:host::ng-deep .dialog .dialog__header{width:100%;display:flex;justify-content:space-between;align-items:center;padding:0}:host::ng-deep .dialog .dialog__header:before{display:none}:host::ng-deep .dialog .dialog__header .header__title{color:#002c4f;font-family:Arial;font-size:15px;font-weight:700;line-height:18px;flex:1;overflow:hidden;display:flex;align-items:center;gap:8px}:host::ng-deep .dialog .dialog__header .header__actions{display:flex;align-items:center;gap:20px}:host::ng-deep .dialog .dialog__header .header-icon{display:block}:host::ng-deep .dialog .dialog__header .header-btn{cursor:pointer;padding:2px;display:flex;justify-content:center;align-items:center}:host::ng-deep .dialog .dialog__content{width:100%;min-height:38px;position:relative;overflow-y:auto;overflow-x:hidden;margin:0;padding:0;font-size:13px;line-height:19px;flex:1;height:0}:host::ng-deep .dialog .dialog__footer{position:relative;display:flex;align-items:center;justify-content:flex-end;gap:12px;padding:20px 0 0;font-size:13px;line-height:16px;margin-bottom:0}:host::ng-deep .dialog .dialog__loading{height:100%;background:transparent;position:fixed;inset:0;z-index:9999}:host::ng-deep .dialog .dialog__loading img{position:absolute;left:50%;top:50%;width:40px;height:40px;transform:translate(-50%,-50%)}\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: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: i1$1.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { kind: "directive", type: i1$1.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "directive", type: i1$1.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]", inputs: ["align"] }] });
|
|
1023
1118
|
}
|
|
1024
1119
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CommonDialogComponent, decorators: [{
|
|
1025
1120
|
type: Component,
|
|
1026
|
-
args: [{ selector: "
|
|
1121
|
+
args: [{ selector: "rs-common-dialog", template: "<div class=\"dialog\" [ngClass]=\"size\" [ngStyle]=\"dialogStyle\">\r\n <!-- \u5934\u90E8 -->\r\n <div *ngIf=\"!hideHeader\" mat-dialog-title class=\"dialog__header\">\r\n <div class=\"header__title\">\r\n <img\r\n src=\"../../../assets/img/notification-status-warning.svg\"\r\n alt=\"\"\r\n *ngIf=\"showErrorIcon\"\r\n />\r\n {{ title }}\r\n </div>\r\n <div class=\"header__actions\">\r\n <div *ngIf=\"showZoomBtn\" class=\"header-btn\" (click)=\"onZoom()\">\r\n <img\r\n class=\"header-icon\"\r\n *ngIf=\"size === 'largest'\"\r\n src=\"../../../assets/img/dialog-shrink.svg\"\r\n />\r\n <img\r\n class=\"header-icon\"\r\n *ngIf=\"size !== 'largest'\"\r\n src=\"../../../assets/img/dialog-grow.svg\"\r\n />\r\n </div>\r\n <div *ngIf=\"!hideCloseIcon\" class=\"header-btn\" (click)=\"onClose()\">\r\n <img class=\"header-icon\" src=\"../../../assets/img/dialog-close.svg\" />\r\n </div>\r\n </div>\r\n </div>\r\n <!-- \u5185\u5BB9 -->\r\n <div class=\"dialog__content\" mat-dialog-content>\r\n <ng-content></ng-content>\r\n </div>\r\n <!-- \u5E95\u90E8\u6309\u94AE -->\r\n <div mat-dialog-actions class=\"dialog__footer\">\r\n <ng-content select=\"[footerSlot]\"></ng-content>\r\n <!-- \u9ED8\u8BA4\u5C55\u793A\u4FDD\u5B58/\u5173\u95ED\u6309\u94AE -->\r\n <ng-container *ngIf=\"!customFooter\">\r\n <ng-template [ngTemplateOutlet]=\"defaultTemplate\"></ng-template>\r\n </ng-container>\r\n <ng-template #defaultTemplate>\r\n <button\r\n *ngIf=\"!hideCloseBtn\"\r\n class=\"e-btn\"\r\n (click)=\"onClose()\"\r\n >\r\n {{ cancelBtnLabel }}\r\n </button>\r\n <button\r\n *ngIf=\"!hideDiscardBtn\"\r\n class=\"e-btn\"\r\n (click)=\"onDiscard()\"\r\n >\r\n {{ discardBtnLabel }}\r\n </button>\r\n <button\r\n *ngIf=\"!hideSaveBtn\"\r\n class=\"e-btn e-primary\"\r\n (click)=\"onSave()\"\r\n >\r\n {{ saveBtnLabel }}\r\n </button>\r\n </ng-template>\r\n </div>\r\n <!-- loading -->\r\n <div class=\"dialog__loading\" [hidden]=\"!loading\">\r\n <img src=\"../../../assets/img/raise_loading.gif\" alt=\"\" />\r\n </div>\r\n</div>\r\n", styles: [":host::ng-deep .dialog{position:relative;max-height:90vh;font-weight:400;padding:20px;overflow:hidden;display:flex;flex-direction:column}:host::ng-deep .dialog.largest{width:96vw!important;height:88vh!important;max-width:2100px;padding:20px}:host::ng-deep .dialog.medium{width:500px;padding:20px}:host::ng-deep .dialog.small{width:350px;padding:20px 16px}:host::ng-deep .dialog.small .dialog__header{color:#002c4f;margin-bottom:16px}:host::ng-deep .dialog.small .dialog__header .header__title{font-size:13px;line-height:16px}:host::ng-deep .dialog.small .dialog__content{font-size:12px;line-height:16px}:host::ng-deep .dialog.small .dialog__footer{min-height:42px;padding:16px 0 0;font-size:12px;line-height:14px}:host::ng-deep .dialog.small .dialog__footer button{padding:6px 12px;min-width:60px}:host::ng-deep .dialog.large{width:800px;padding:20px}:host::ng-deep .dialog .dialog__header{width:100%;display:flex;justify-content:space-between;align-items:center;padding:0}:host::ng-deep .dialog .dialog__header:before{display:none}:host::ng-deep .dialog .dialog__header .header__title{color:#002c4f;font-family:Arial;font-size:15px;font-weight:700;line-height:18px;flex:1;overflow:hidden;display:flex;align-items:center;gap:8px}:host::ng-deep .dialog .dialog__header .header__actions{display:flex;align-items:center;gap:20px}:host::ng-deep .dialog .dialog__header .header-icon{display:block}:host::ng-deep .dialog .dialog__header .header-btn{cursor:pointer;padding:2px;display:flex;justify-content:center;align-items:center}:host::ng-deep .dialog .dialog__content{width:100%;min-height:38px;position:relative;overflow-y:auto;overflow-x:hidden;margin:0;padding:0;font-size:13px;line-height:19px;flex:1;height:0}:host::ng-deep .dialog .dialog__footer{position:relative;display:flex;align-items:center;justify-content:flex-end;gap:12px;padding:20px 0 0;font-size:13px;line-height:16px;margin-bottom:0}:host::ng-deep .dialog .dialog__loading{height:100%;background:transparent;position:fixed;inset:0;z-index:9999}:host::ng-deep .dialog .dialog__loading img{position:absolute;left:50%;top:50%;width:40px;height:40px;transform:translate(-50%,-50%)}\n"] }]
|
|
1027
1122
|
}], ctorParameters: function () { return [{ type: i1$1.MatDialogRef }]; }, propDecorators: { hideHeader: [{
|
|
1028
1123
|
type: Input
|
|
1029
1124
|
}], hideCloseIcon: [{
|
|
@@ -1032,12 +1127,22 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
1032
1127
|
type: Input
|
|
1033
1128
|
}], hideSaveBtn: [{
|
|
1034
1129
|
type: Input
|
|
1130
|
+
}], hideDiscardBtn: [{
|
|
1131
|
+
type: Input
|
|
1035
1132
|
}], saveBtnLabel: [{
|
|
1036
1133
|
type: Input
|
|
1037
1134
|
}], cancelBtnLabel: [{
|
|
1038
1135
|
type: Input
|
|
1136
|
+
}], discardBtnLabel: [{
|
|
1137
|
+
type: Input
|
|
1039
1138
|
}], showErrorIcon: [{
|
|
1040
1139
|
type: Input
|
|
1140
|
+
}], showZoomBtn: [{
|
|
1141
|
+
type: Input
|
|
1142
|
+
}], onCloseRequest: [{
|
|
1143
|
+
type: Input
|
|
1144
|
+
}], dialogStyle: [{
|
|
1145
|
+
type: Input
|
|
1041
1146
|
}], size: [{
|
|
1042
1147
|
type: Input
|
|
1043
1148
|
}], title: [{
|
|
@@ -1060,8 +1165,11 @@ class CommonDeleteComponent {
|
|
|
1060
1165
|
title = "";
|
|
1061
1166
|
saveBtnLabel = "";
|
|
1062
1167
|
cancelBtnLabel = "";
|
|
1168
|
+
discardBtnLabel = "";
|
|
1063
1169
|
description = "";
|
|
1064
1170
|
size = "small";
|
|
1171
|
+
showZoomBtn = false;
|
|
1172
|
+
isMultiLine = false;
|
|
1065
1173
|
constructor(data, dialogRef) {
|
|
1066
1174
|
this.data = data;
|
|
1067
1175
|
this.dialogRef = dialogRef;
|
|
@@ -1074,21 +1182,21 @@ class CommonDeleteComponent {
|
|
|
1074
1182
|
this.data.saveBtnLabel || this.translation.DELETE || ".DELETE";
|
|
1075
1183
|
this.cancelBtnLabel =
|
|
1076
1184
|
this.data.cancelBtnLabel || this.translation.CANCEL || ".CANCEL";
|
|
1185
|
+
this.discardBtnLabel = this.data.discardBtnLabel;
|
|
1077
1186
|
this.description =
|
|
1078
1187
|
this.data.description ||
|
|
1079
1188
|
this.translation.IF_YOU_DELETE_THIS_RECORD_WARNING ||
|
|
1080
1189
|
".If you delete this record, you won't be able to recover it. Do you want to delete it?";
|
|
1081
1190
|
this.size = this.data.size || "small";
|
|
1082
|
-
|
|
1083
|
-
|
|
1084
|
-
this.dialogRef.close(e);
|
|
1191
|
+
this.showZoomBtn = this.data.showZoomBtn || false;
|
|
1192
|
+
this.isMultiLine = Array.isArray(this.description);
|
|
1085
1193
|
}
|
|
1086
1194
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CommonDeleteComponent, deps: [{ token: MAT_DIALOG_DATA }, { token: i1$1.MatDialogRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
1087
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: CommonDeleteComponent, selector: "kt-common-delete-dialog", ngImport: i0, template: "<
|
|
1195
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: CommonDeleteComponent, selector: "kt-common-delete-dialog", ngImport: i0, template: "<rs-common-dialog\r\n [size]=\"size\"\r\n [title]=\"title\"\r\n [hideHeader]=\"false\"\r\n [hideCloseBtn]=\"data.hideCloseBtn === undefined ? false : data.hideCloseBtn\"\r\n [hideSaveBtn]=\"data.hideSaveBtn === undefined ? false : data.hideSaveBtn\"\r\n [hideDiscardBtn]=\"\r\n data.hideDiscardBtn === undefined ? true : data.hideDiscardBtn\r\n \"\r\n [saveBtnLabel]=\"saveBtnLabel\"\r\n [cancelBtnLabel]=\"cancelBtnLabel\"\r\n [discardBtnLabel]=\"discardBtnLabel\"\r\n [showErrorIcon]=\"\r\n data.showErrorIcon === undefined ? false : data.showErrorIcon\r\n \"\r\n [hideCloseIcon]=\"\r\n data.hideCloseIcon === undefined ? false : data.hideCloseIcon\r\n \"\r\n\t[showZoomBtn]=\"data.showZoomBtn\"\r\n>\r\n <div class=\"mapping-dialog\">\r\n <div *ngIf=\"isMultiLine\">\r\n <div *ngFor=\"let item of description\" class=\"description-item\">\r\n {{ item }}\r\n </div>\r\n </div>\r\n <div *ngIf=\"!isMultiLine\">\r\n {{description}}\r\n </div>\r\n </div>\r\n</rs-common-dialog>\r\n", styles: [".mapping-dialog{color:#44566c;font-family:Arial;font-size:12px;line-height:16px;white-space:pre-line}.mapping-dialog .description-item{line-height:26px}\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: CommonDialogComponent, selector: "rs-common-dialog", inputs: ["hideHeader", "hideCloseIcon", "hideCloseBtn", "hideSaveBtn", "hideDiscardBtn", "saveBtnLabel", "cancelBtnLabel", "discardBtnLabel", "showErrorIcon", "showZoomBtn", "onCloseRequest", "dialogStyle", "size", "title", "loading"], outputs: ["saveEmit", "closeEmit"] }] });
|
|
1088
1196
|
}
|
|
1089
1197
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CommonDeleteComponent, decorators: [{
|
|
1090
1198
|
type: Component,
|
|
1091
|
-
args: [{ selector: "kt-common-delete-dialog", template: "<
|
|
1199
|
+
args: [{ selector: "kt-common-delete-dialog", template: "<rs-common-dialog\r\n [size]=\"size\"\r\n [title]=\"title\"\r\n [hideHeader]=\"false\"\r\n [hideCloseBtn]=\"data.hideCloseBtn === undefined ? false : data.hideCloseBtn\"\r\n [hideSaveBtn]=\"data.hideSaveBtn === undefined ? false : data.hideSaveBtn\"\r\n [hideDiscardBtn]=\"\r\n data.hideDiscardBtn === undefined ? true : data.hideDiscardBtn\r\n \"\r\n [saveBtnLabel]=\"saveBtnLabel\"\r\n [cancelBtnLabel]=\"cancelBtnLabel\"\r\n [discardBtnLabel]=\"discardBtnLabel\"\r\n [showErrorIcon]=\"\r\n data.showErrorIcon === undefined ? false : data.showErrorIcon\r\n \"\r\n [hideCloseIcon]=\"\r\n data.hideCloseIcon === undefined ? false : data.hideCloseIcon\r\n \"\r\n\t[showZoomBtn]=\"data.showZoomBtn\"\r\n>\r\n <div class=\"mapping-dialog\">\r\n <div *ngIf=\"isMultiLine\">\r\n <div *ngFor=\"let item of description\" class=\"description-item\">\r\n {{ item }}\r\n </div>\r\n </div>\r\n <div *ngIf=\"!isMultiLine\">\r\n {{description}}\r\n </div>\r\n </div>\r\n</rs-common-dialog>\r\n", styles: [".mapping-dialog{color:#44566c;font-family:Arial;font-size:12px;line-height:16px;white-space:pre-line}.mapping-dialog .description-item{line-height:26px}\n"] }]
|
|
1092
1200
|
}], ctorParameters: function () { return [{ type: undefined, decorators: [{
|
|
1093
1201
|
type: Inject,
|
|
1094
1202
|
args: [MAT_DIALOG_DATA]
|
|
@@ -1163,11 +1271,14 @@ class DialogService {
|
|
|
1163
1271
|
showUnsavedChanges(data) {
|
|
1164
1272
|
let defaultData = {
|
|
1165
1273
|
title: this.translation.UNSAVED_CHANGES || ".UNSAVED_CHANGES",
|
|
1166
|
-
description: this.translation
|
|
1167
|
-
.
|
|
1168
|
-
|
|
1169
|
-
|
|
1170
|
-
cancelBtnLabel: this.translation.
|
|
1274
|
+
description: this.translation.YOU_HAVE_UNSAVED_CHANGES_DO_YOU_WANT_TO_CONTINUE ||
|
|
1275
|
+
".YOU_HAVE_UNSAVED_CHANGES_DO_YOU_WANT_TO_CONTINUE",
|
|
1276
|
+
saveBtnLabel: this.translation.SAVE_AND_LEAVE || ".SAVE_AND_LEAVE",
|
|
1277
|
+
discardBtnLabel: this.translation.DISCARD_AND_LEAVE || ".DISCARD_AND_LEAVE",
|
|
1278
|
+
cancelBtnLabel: this.translation.CANCEL || ".CANCEL",
|
|
1279
|
+
hideDiscardBtn: false,
|
|
1280
|
+
size: "medium",
|
|
1281
|
+
hideCloseIcon: true,
|
|
1171
1282
|
};
|
|
1172
1283
|
if (data) {
|
|
1173
1284
|
data = Object.assign(defaultData, data);
|
|
@@ -1220,6 +1331,44 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
1220
1331
|
}]
|
|
1221
1332
|
}], ctorParameters: function () { return [{ type: i1$2.MatSnackBar }, { type: i1$1.MatDialog }]; } });
|
|
1222
1333
|
|
|
1334
|
+
class TruncatedTextToggleComponent {
|
|
1335
|
+
data;
|
|
1336
|
+
maximum;
|
|
1337
|
+
showData = "";
|
|
1338
|
+
showExpandMoreBtn = false;
|
|
1339
|
+
showCollapseBtn = false;
|
|
1340
|
+
constructor() { }
|
|
1341
|
+
ngOnInit() {
|
|
1342
|
+
if (this.data.length > this.maximum) {
|
|
1343
|
+
this.showExpandMoreBtn = true;
|
|
1344
|
+
this.showData = this.data.substring(0, this.maximum) + "...";
|
|
1345
|
+
}
|
|
1346
|
+
else {
|
|
1347
|
+
this.showData = this.data;
|
|
1348
|
+
}
|
|
1349
|
+
}
|
|
1350
|
+
showAll() {
|
|
1351
|
+
this.showExpandMoreBtn = false;
|
|
1352
|
+
this.showCollapseBtn = true;
|
|
1353
|
+
this.showData = this.data;
|
|
1354
|
+
}
|
|
1355
|
+
collapse() {
|
|
1356
|
+
this.showExpandMoreBtn = true;
|
|
1357
|
+
this.showCollapseBtn = false;
|
|
1358
|
+
this.showData = this.data.substring(0, this.maximum) + "...";
|
|
1359
|
+
}
|
|
1360
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TruncatedTextToggleComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
1361
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: TruncatedTextToggleComponent, selector: "truncated-text-toggle", inputs: { data: "data", maximum: "maximum" }, ngImport: i0, template: "<div class=\"click-show-more-content\">\r\n <span>{{ showData }}</span>\r\n <span *ngIf=\"showExpandMoreBtn\" class=\"show-more\" (click)=\"showAll()\">\r\n Read More\r\n <img src=\"./assets/img/click_show_more_icon.svg\" alt=\"\" />\r\n </span>\r\n <div\r\n class=\"show-more collapse-btn\"\r\n (click)=\"collapse()\"\r\n *ngIf=\"showCollapseBtn\"\r\n >\r\n Collapse\r\n <img src=\"./assets/img/click_show_more_icon.svg\" alt=\"\" />\r\n </div>\r\n</div>\r\n", styles: [".click-show-more-content{word-wrap:break-word}.click-show-more-content .show-more{cursor:pointer;color:#1364b3;font-size:11px;margin-left:4px;vertical-align:middle}.click-show-more-content .show-more img{margin-left:2px;vertical-align:middle}.click-show-more-content .collapse-btn{display:flex;align-items:center;justify-content:flex-end}.click-show-more-content .collapse-btn img{transform:rotate(-180deg)}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
|
|
1362
|
+
}
|
|
1363
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TruncatedTextToggleComponent, decorators: [{
|
|
1364
|
+
type: Component,
|
|
1365
|
+
args: [{ selector: "truncated-text-toggle", template: "<div class=\"click-show-more-content\">\r\n <span>{{ showData }}</span>\r\n <span *ngIf=\"showExpandMoreBtn\" class=\"show-more\" (click)=\"showAll()\">\r\n Read More\r\n <img src=\"./assets/img/click_show_more_icon.svg\" alt=\"\" />\r\n </span>\r\n <div\r\n class=\"show-more collapse-btn\"\r\n (click)=\"collapse()\"\r\n *ngIf=\"showCollapseBtn\"\r\n >\r\n Collapse\r\n <img src=\"./assets/img/click_show_more_icon.svg\" alt=\"\" />\r\n </div>\r\n</div>\r\n", styles: [".click-show-more-content{word-wrap:break-word}.click-show-more-content .show-more{cursor:pointer;color:#1364b3;font-size:11px;margin-left:4px;vertical-align:middle}.click-show-more-content .show-more img{margin-left:2px;vertical-align:middle}.click-show-more-content .collapse-btn{display:flex;align-items:center;justify-content:flex-end}.click-show-more-content .collapse-btn img{transform:rotate(-180deg)}\n"] }]
|
|
1366
|
+
}], ctorParameters: function () { return []; }, propDecorators: { data: [{
|
|
1367
|
+
type: Input
|
|
1368
|
+
}], maximum: [{
|
|
1369
|
+
type: Input
|
|
1370
|
+
}] } });
|
|
1371
|
+
|
|
1223
1372
|
class RsCommentaryComponent {
|
|
1224
1373
|
cf;
|
|
1225
1374
|
dialog;
|
|
@@ -1241,11 +1390,11 @@ class RsCommentaryComponent {
|
|
|
1241
1390
|
lastModifiedOn: "lastModifiedOn",
|
|
1242
1391
|
messageBody: "messageBody",
|
|
1243
1392
|
};
|
|
1393
|
+
dateTimePipeFormat = "dd-MMM-yyyy hh:mm:a";
|
|
1244
1394
|
actionComplete = new EventEmitter();
|
|
1245
1395
|
commentVal = "";
|
|
1246
1396
|
replyVal = "";
|
|
1247
1397
|
editCommentVal = "";
|
|
1248
|
-
dateTimePipeFormat = "dd-MMM-yyyy hh:mm:a";
|
|
1249
1398
|
translation;
|
|
1250
1399
|
ngOnInit() {
|
|
1251
1400
|
this.getInfo();
|
|
@@ -1286,12 +1435,12 @@ class RsCommentaryComponent {
|
|
|
1286
1435
|
}
|
|
1287
1436
|
deleteComment(item) {
|
|
1288
1437
|
const dialogRef = this.dialog.showCommonDilaog({
|
|
1289
|
-
title: "
|
|
1290
|
-
description:
|
|
1438
|
+
title: this.translation["DELETE_COMMENT"],
|
|
1439
|
+
description: this.translation["DELETE_COMMENT_CONFIRM"],
|
|
1291
1440
|
saveBtnLabel: this.translation.DELETE,
|
|
1292
1441
|
});
|
|
1293
1442
|
dialogRef.afterClosed().subscribe((res) => {
|
|
1294
|
-
if (
|
|
1443
|
+
if (res === "close") {
|
|
1295
1444
|
return;
|
|
1296
1445
|
}
|
|
1297
1446
|
const idx = this.commentData.findIndex((ele) => ele[this.filedsKey.messageId] === item[this.filedsKey.messageId]);
|
|
@@ -1327,11 +1476,17 @@ class RsCommentaryComponent {
|
|
|
1327
1476
|
}
|
|
1328
1477
|
adjustTextareaHeight(e) {
|
|
1329
1478
|
const textarea = e.target;
|
|
1330
|
-
|
|
1331
|
-
|
|
1479
|
+
if (e.type === "focus" && textarea.value) {
|
|
1480
|
+
textarea.style.height = "auto";
|
|
1481
|
+
textarea.style.height = textarea.scrollHeight + "px";
|
|
1482
|
+
}
|
|
1483
|
+
else if (e.type === "input") {
|
|
1484
|
+
textarea.style.height = "auto";
|
|
1485
|
+
textarea.style.height = textarea.scrollHeight + "px";
|
|
1486
|
+
}
|
|
1332
1487
|
}
|
|
1333
1488
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: RsCommentaryComponent, deps: [{ token: CommonFunctionService }, { token: DialogService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
1334
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: RsCommentaryComponent, selector: "rs-commentary", inputs: { displayName: "displayName", commentData: "commentData", editPermission: "editPermission", deletePermission: "deletePermission", isReadOnly: "isReadOnly", filedsKey: "filedsKey" }, outputs: { actionComplete: "actionComplete" }, ngImport: i0, template: "<div class=\"rs-commentary-wrap\">\r\n <ng-container\r\n [ngTemplateOutlet]=\"commentBoxTemplate\"\r\n [ngTemplateOutletContext]=\"{ type: 'comment' }\"\r\n ></ng-container>\r\n <div class=\"reply-box\">\r\n <div *ngFor=\"let item of commentData\">\r\n <ng-container\r\n [ngTemplateOutlet]=\"replyItemTemplate\"\r\n [ngTemplateOutletContext]=\"{ type: 'comment', item: item }\"\r\n ></ng-container>\r\n <div class=\"sub-reply-list\">\r\n <ng-container\r\n *ngFor=\"\r\n let sub of item.isExpanded\r\n ? item[filedsKey.commentaries]\r\n : item[filedsKey.commentaries].slice(0, 3)\r\n \"\r\n [ngTemplateOutlet]=\"replyItemTemplate\"\r\n [ngTemplateOutletContext]=\"{ type: 'sub', item: sub }\"\r\n ></ng-container>\r\n </div>\r\n <button\r\n class=\"e-btn text\"\r\n *ngIf=\"item[filedsKey.commentaries].length > 3\"\r\n (click)=\"item.isExpanded = !item.isExpanded\"\r\n style=\"margin-bottom: 8px\"\r\n >\r\n {{\r\n item.isExpanded\r\n ? \"Collapse\"\r\n : \"View All \" + item[filedsKey.commentaries].length + \" Replies\"\r\n }}\r\n <img\r\n class=\"arrow\"\r\n [ngClass]=\"{ collapse: item.isExpanded }\"\r\n src=\"../../assets/img/dropdown-arrow.svg\"\r\n alt=\"\"\r\n />\r\n </button>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<ng-template #commentBoxTemplate let-type=\"type\" let-item=\"item\">\r\n <div class=\"comment-box\">\r\n <div class=\"comment-input-wrap\">\r\n <div class=\"avatar\" *ngIf=\"type !== 'editComment'\">\r\n {{ cf.rtn(displayName) }}\r\n </div>\r\n <textarea\r\n *ngIf=\"type === 'comment'\"\r\n class=\"e-input\"\r\n rows=\"2\"\r\n [(ngModel)]=\"commentVal\"\r\n (input)=\"adjustTextareaHeight($event)\"\r\n [disabled]=\"isReadOnly || !editPermission\"\r\n placeholder=\"Write your comment...\"\r\n ></textarea>\r\n <textarea\r\n *ngIf=\"type === 'reply'\"\r\n class=\"e-input\"\r\n rows=\"2\"\r\n [(ngModel)]=\"replyVal\"\r\n (input)=\"adjustTextareaHeight($event)\"\r\n placeholder=\"Write your comment...\"\r\n ></textarea>\r\n <textarea\r\n *ngIf=\"type === 'editComment'\"\r\n class=\"e-input\"\r\n rows=\"2\"\r\n [(ngModel)]=\"editCommentVal\"\r\n (input)=\"adjustTextareaHeight($event)\"\r\n placeholder=\"Write your comment...\"\r\n ></textarea>\r\n </div>\r\n <div class=\"btn-wrap\">\r\n <button\r\n *ngIf=\"type === 'comment'\"\r\n class=\"e-btn e-primary small\"\r\n [disabled]=\"commentVal === '' || isReadOnly || !editPermission\"\r\n (click)=\"addComment()\"\r\n >\r\n {{ translation.COMMENT || \".COMMENT\" }}\r\n </button>\r\n <ng-container *ngIf=\"type === 'reply'\">\r\n <button\r\n class=\"e-btn small\"\r\n (click)=\"item.showReplyInput = false; replyVal = ''\"\r\n >\r\n {{ translation.CANCEL || \".CANCEL\" }}\r\n </button>\r\n <button\r\n class=\"e-btn e-primary small\"\r\n [disabled]=\"replyVal === ''\"\r\n (click)=\"addReply(item)\"\r\n >\r\n {{ translation.REPLY || \".REPLY\" }}\r\n </button>\r\n </ng-container>\r\n <ng-container *ngIf=\"type === 'editComment'\">\r\n <button class=\"e-btn text\" (click)=\"item.showCommentEdit = false\">\r\n <img src=\"../../assets/img/comment-cancel.svg\" alt=\"\" />\r\n </button>\r\n <button\r\n class=\"e-btn text\"\r\n [disabled]=\"editCommentVal === ''\"\r\n (click)=\"updateComment(item)\"\r\n >\r\n <img src=\"../../assets/img/comment-check.svg\" alt=\"\" />\r\n </button>\r\n </ng-container>\r\n </div>\r\n </div>\r\n</ng-template>\r\n<ng-template #replyItemTemplate let-type=\"type\" let-item=\"item\">\r\n <div class=\"reply-item\" [ngClass]=\"{ comment: type === 'comment' }\">\r\n <div class=\"avatar\">\r\n {{ cf.rtn(item[filedsKey.ownerName]) }}\r\n </div>\r\n <div class=\"owner-wrap\">\r\n <div class=\"owner-info\">\r\n <div class=\"name\">\r\n {{ item[filedsKey.ownerName] }}\r\n </div>\r\n <div class=\"time\">\r\n {{ item[filedsKey.lastModifiedOn] | date : dateTimePipeFormat }}\r\n </div>\r\n </div>\r\n <div class=\"message-wrap\">\r\n <div class=\"message\" *ngIf=\"!item.showCommentEdit\">\r\n {{ item[filedsKey.messageBody] }}\r\n </div>\r\n <ng-container\r\n *ngIf=\"item.showCommentEdit\"\r\n [ngTemplateOutlet]=\"commentBoxTemplate\"\r\n [ngTemplateOutletContext]=\"{ type: 'editComment', item: item }\"\r\n ></ng-container>\r\n </div>\r\n\r\n <button\r\n *ngIf=\"\r\n type === 'comment' && !item.showReplyInput && !item.showCommentEdit\r\n \"\r\n class=\"e-btn text\"\r\n (click)=\"item.showReplyInput = true\"\r\n [disabled]=\"isReadOnly || !editPermission\"\r\n >\r\n {{ translation.REPLY || \".REPLY\" }}\r\n </button>\r\n <ng-container\r\n *ngIf=\"item.showReplyInput\"\r\n [ngTemplateOutlet]=\"commentBoxTemplate\"\r\n [ngTemplateOutletContext]=\"{ type: 'reply', item: item }\"\r\n ></ng-container>\r\n\r\n <rs-grid-action *ngIf=\"type === 'comment'\">\r\n <rs-grid-action-item\r\n image=\"Edit\"\r\n [text]=\"translation.EDIT\"\r\n [disabled]=\"isReadOnly || !editPermission\"\r\n (click)=\"editComment(item)\"\r\n ></rs-grid-action-item>\r\n <rs-grid-action-item\r\n image=\"Delete\"\r\n [text]=\"translation.DELETE\"\r\n [disabled]=\"isReadOnly || !deletePermission\"\r\n (click)=\"deleteComment(item)\"\r\n ></rs-grid-action-item>\r\n </rs-grid-action>\r\n </div>\r\n </div>\r\n</ng-template>\r\n", styles: [".rs-commentary-wrap{width:100%;height:100%;padding:32px;display:flex;flex-direction:column}.rs-commentary-wrap .comment-box{width:100%}.rs-commentary-wrap .comment-box .comment-input-wrap{margin-bottom:12px;display:flex;gap:12px}.rs-commentary-wrap .comment-box .comment-input-wrap .e-input{flex:1;width:0}.rs-commentary-wrap .comment-box .btn-wrap{display:flex;justify-content:flex-end;gap:12px}.rs-commentary-wrap .comment-box .btn-wrap .e-btn.text{padding:4px}.rs-commentary-wrap .reply-box{height:0;flex:1;overflow:auto;margin-top:16px;margin-right:-32px;padding-right:32px}.rs-commentary-wrap .reply-box .sub-reply-list{padding-left:40px}.rs-commentary-wrap .reply-box .e-btn.text{padding:0!important;min-width:auto;height:auto;color:#6c7c90!important}.rs-commentary-wrap .reply-box .e-btn.text:hover{background:transparent!important;color:#1364b3!important}.rs-commentary-wrap .reply-box .e-btn.text:focus{background:transparent!important;color:#6c7c90!important}.rs-commentary-wrap .reply-box .arrow.collapse{transform:rotate(180deg)}.rs-commentary-wrap .reply-box .reply-item{display:flex;gap:12px;padding:12px 0}.rs-commentary-wrap .reply-box .reply-item.comment{border-top:1px solid #eaedf0}.rs-commentary-wrap .reply-box .reply-item.comment:hover{background-color:#f6faff}.rs-commentary-wrap .reply-box .reply-item.comment:hover rs-grid-action{display:block}.rs-commentary-wrap .reply-box .reply-item rs-grid-action{display:none;position:absolute;cursor:pointer;top:-4px;right:8px}.rs-commentary-wrap .reply-box .owner-wrap{flex:1;width:0;position:relative}.rs-commentary-wrap .reply-box .owner-wrap .owner-info{display:flex;align-items:center;gap:12px}.rs-commentary-wrap .reply-box .owner-wrap .owner-info .name{color:#44566c;font-family:Arial;font-size:12px;font-style:normal;font-weight:700;line-height:14px}.rs-commentary-wrap .reply-box .owner-wrap .owner-info .time{color:#6c7c90;font-family:Arial;font-size:10px;font-style:normal;font-weight:400;line-height:12px}.rs-commentary-wrap .reply-box .owner-wrap .message-wrap{padding:8px 0}.rs-commentary-wrap .reply-box .owner-wrap .message-wrap .message{color:#44566c;font-family:Arial;font-size:12px;font-style:normal;font-weight:400;line-height:16px}.rs-commentary-wrap .avatar{width:32px;height:32px;border-radius:100%;border:1px solid rgba(108,124,144,.4);color:#44566c;display:flex;align-items:center;justify-content:center;font-family:Arial;font-size:12px;font-style:normal;font-weight:400;line-height:14px}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2$3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2$3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2$3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: GridActionComponent, selector: "rs-grid-action" }, { kind: "component", type: GridActionItemComponent, selector: "rs-grid-action-item", inputs: ["image", "text", "disabled"] }, { kind: "pipe", type: i1.DatePipe, name: "date" }] });
|
|
1489
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: RsCommentaryComponent, selector: "rs-commentary", inputs: { displayName: "displayName", commentData: "commentData", editPermission: "editPermission", deletePermission: "deletePermission", isReadOnly: "isReadOnly", filedsKey: "filedsKey", dateTimePipeFormat: "dateTimePipeFormat" }, outputs: { actionComplete: "actionComplete" }, ngImport: i0, template: "<div class=\"rs-commentary-wrap\">\r\n <ng-container\r\n [ngTemplateOutlet]=\"commentBoxTemplate\"\r\n [ngTemplateOutletContext]=\"{ type: 'comment' }\"\r\n ></ng-container>\r\n <div class=\"reply-box\">\r\n <div *ngFor=\"let item of commentData\">\r\n <ng-container\r\n [ngTemplateOutlet]=\"replyItemTemplate\"\r\n [ngTemplateOutletContext]=\"{ type: 'comment', item: item }\"\r\n ></ng-container>\r\n <div class=\"sub-reply-list\">\r\n <ng-container\r\n *ngFor=\"\r\n let sub of item.isExpanded\r\n ? item[filedsKey.commentaries]\r\n : item[filedsKey.commentaries].slice(0, 3)\r\n \"\r\n [ngTemplateOutlet]=\"replyItemTemplate\"\r\n [ngTemplateOutletContext]=\"{ type: 'sub', item: sub }\"\r\n ></ng-container>\r\n </div>\r\n <button\r\n class=\"e-btn text\"\r\n *ngIf=\"item[filedsKey.commentaries].length > 3\"\r\n (click)=\"item.isExpanded = !item.isExpanded\"\r\n style=\"margin-bottom: 8px\"\r\n >\r\n {{\r\n item.isExpanded\r\n ? \"Collapse\"\r\n : \"View All \" + item[filedsKey.commentaries].length + \" Replies\"\r\n }}\r\n <img\r\n class=\"arrow\"\r\n [ngClass]=\"{ collapse: item.isExpanded }\"\r\n src=\"../../assets/img/dropdown-arrow.svg\"\r\n alt=\"\"\r\n />\r\n </button>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<ng-template #commentBoxTemplate let-type=\"type\" let-item=\"item\">\r\n <div class=\"comment-box\">\r\n <div class=\"comment-input-wrap\">\r\n <div class=\"avatar\" *ngIf=\"type !== 'editComment'\">\r\n {{ cf.rtn(displayName) }}\r\n </div>\r\n <textarea\r\n *ngIf=\"type === 'comment'\"\r\n class=\"e-input\"\r\n rows=\"3\"\r\n [(ngModel)]=\"commentVal\"\r\n (input)=\"adjustTextareaHeight($event)\"\r\n (focus)=\"adjustTextareaHeight($event)\"\r\n [disabled]=\"isReadOnly || !editPermission\"\r\n [placeholder]=\"translation.WRITE_YOUR_COMMENT || '.WRITE_YOUR_COMMENT'\"\r\n ></textarea>\r\n <textarea\r\n *ngIf=\"type === 'reply'\"\r\n class=\"e-input\"\r\n rows=\"3\"\r\n [(ngModel)]=\"replyVal\"\r\n (input)=\"adjustTextareaHeight($event)\"\r\n (focus)=\"adjustTextareaHeight($event)\"\r\n [placeholder]=\"translation.WRITE_YOUR_COMMENT || '.WRITE_YOUR_COMMENT'\"\r\n ></textarea>\r\n <textarea\r\n *ngIf=\"type === 'editComment'\"\r\n class=\"e-input\"\r\n rows=\"3\"\r\n [(ngModel)]=\"editCommentVal\"\r\n (input)=\"adjustTextareaHeight($event)\"\r\n (focus)=\"adjustTextareaHeight($event)\"\r\n [placeholder]=\"translation.WRITE_YOUR_COMMENT || '.WRITE_YOUR_COMMENT'\"\r\n ></textarea>\r\n </div>\r\n <div class=\"btn-wrap\">\r\n <button\r\n *ngIf=\"type === 'comment'\"\r\n class=\"e-btn e-primary small\"\r\n [disabled]=\"commentVal === '' || isReadOnly || !editPermission\"\r\n (click)=\"addComment()\"\r\n >\r\n {{ translation.COMMENT || \".COMMENT\" }}\r\n </button>\r\n <ng-container *ngIf=\"type === 'reply'\">\r\n <button\r\n class=\"e-btn small\"\r\n (click)=\"item.showReplyInput = false; replyVal = ''\"\r\n >\r\n {{ translation.CANCEL || \".CANCEL\" }}\r\n </button>\r\n <button\r\n class=\"e-btn e-primary small\"\r\n [disabled]=\"replyVal === ''\"\r\n (click)=\"addReply(item)\"\r\n >\r\n {{ translation.REPLY || \".REPLY\" }}\r\n </button>\r\n </ng-container>\r\n <ng-container *ngIf=\"type === 'editComment'\">\r\n <button class=\"e-btn text\" (click)=\"item.showCommentEdit = false\">\r\n <img src=\"../../assets/img/comment-cancel.svg\" alt=\"\" />\r\n </button>\r\n <button\r\n class=\"e-btn text\"\r\n [disabled]=\"editCommentVal === ''\"\r\n (click)=\"updateComment(item)\"\r\n >\r\n <img src=\"../../assets/img/comment-check.svg\" alt=\"\" />\r\n </button>\r\n </ng-container>\r\n </div>\r\n </div>\r\n</ng-template>\r\n<ng-template #replyItemTemplate let-type=\"type\" let-item=\"item\">\r\n <div class=\"reply-item\" [ngClass]=\"{ comment: type === 'comment' }\">\r\n <div class=\"avatar\">\r\n {{ cf.rtn(item[filedsKey.ownerName]) }}\r\n </div>\r\n <div class=\"owner-wrap\">\r\n <div class=\"owner-info\">\r\n <div class=\"name\">\r\n {{ item[filedsKey.ownerName] }}\r\n </div>\r\n <div class=\"time\">\r\n {{ item[filedsKey.lastModifiedOn] | date : dateTimePipeFormat }}\r\n </div>\r\n </div>\r\n <div class=\"message-wrap\">\r\n <div class=\"message\" *ngIf=\"!item.showCommentEdit\">\r\n <!-- {{ item[filedsKey.messageBody] }} -->\r\n <truncated-text-toggle\r\n [maximum]=\"1050\"\r\n [data]=\"item[filedsKey.messageBody]\"\r\n >\r\n </truncated-text-toggle>\r\n </div>\r\n <ng-container\r\n *ngIf=\"item.showCommentEdit\"\r\n [ngTemplateOutlet]=\"commentBoxTemplate\"\r\n [ngTemplateOutletContext]=\"{ type: 'editComment', item: item }\"\r\n ></ng-container>\r\n </div>\r\n\r\n <button\r\n *ngIf=\"\r\n type === 'comment' && !item.showReplyInput && !item.showCommentEdit\r\n \"\r\n class=\"e-btn text\"\r\n (click)=\"item.showReplyInput = true\"\r\n [disabled]=\"isReadOnly || !editPermission\"\r\n >\r\n {{ translation.REPLY || \".REPLY\" }}\r\n </button>\r\n <ng-container\r\n *ngIf=\"item.showReplyInput\"\r\n [ngTemplateOutlet]=\"commentBoxTemplate\"\r\n [ngTemplateOutletContext]=\"{ type: 'reply', item: item }\"\r\n ></ng-container>\r\n\r\n <rs-grid-action *ngIf=\"type === 'comment'\">\r\n <rs-grid-action-item\r\n image=\"Edit\"\r\n [text]=\"translation.EDIT\"\r\n [disabled]=\"isReadOnly || !editPermission\"\r\n (click)=\"editComment(item)\"\r\n ></rs-grid-action-item>\r\n <rs-grid-action-item\r\n image=\"Delete\"\r\n [text]=\"translation.DELETE\"\r\n [disabled]=\"isReadOnly || !deletePermission\"\r\n (click)=\"deleteComment(item)\"\r\n ></rs-grid-action-item>\r\n </rs-grid-action>\r\n </div>\r\n </div>\r\n</ng-template>\r\n", styles: [".rs-commentary-wrap{width:100%;height:100%;padding:32px;display:flex;flex-direction:column}.rs-commentary-wrap .comment-box{width:100%}.rs-commentary-wrap .comment-box .comment-input-wrap{margin-bottom:12px;display:flex;gap:12px}.rs-commentary-wrap .comment-box .comment-input-wrap .e-input{flex:1;width:0;height:62px}.rs-commentary-wrap .comment-box .btn-wrap{display:flex;justify-content:flex-end;gap:12px}.rs-commentary-wrap .comment-box .btn-wrap .e-btn.text{padding:4px}.rs-commentary-wrap .reply-box{height:0;flex:1;overflow:auto;margin-top:16px;margin-right:-32px;padding-right:32px}.rs-commentary-wrap .reply-box .sub-reply-list{padding-left:40px}.rs-commentary-wrap .reply-box .e-btn.text{padding:0!important;min-width:auto;height:auto;color:#6c7c90!important}.rs-commentary-wrap .reply-box .e-btn.text:hover{background:transparent!important;color:#1364b3!important}.rs-commentary-wrap .reply-box .e-btn.text:focus{background:transparent!important;color:#6c7c90!important}.rs-commentary-wrap .reply-box .arrow.collapse{transform:rotate(180deg)}.rs-commentary-wrap .reply-box .reply-item{display:flex;gap:12px;padding:12px 0}.rs-commentary-wrap .reply-box .reply-item.comment{border-top:1px solid #eaedf0}.rs-commentary-wrap .reply-box .reply-item.comment:hover{background-color:#f6faff}.rs-commentary-wrap .reply-box .reply-item.comment:hover rs-grid-action{display:block}.rs-commentary-wrap .reply-box .reply-item rs-grid-action{display:none;position:absolute;cursor:pointer;top:-4px;right:8px}.rs-commentary-wrap .reply-box .owner-wrap{flex:1;width:0;position:relative}.rs-commentary-wrap .reply-box .owner-wrap .owner-info{display:flex;align-items:center;gap:8px;height:28px}.rs-commentary-wrap .reply-box .owner-wrap .owner-info .name{color:#44566c;font-family:Arial;font-size:12px;font-style:normal;font-weight:700;line-height:14px}.rs-commentary-wrap .reply-box .owner-wrap .owner-info .time{color:#6c7c90;font-family:Arial;font-size:10px;font-style:normal;font-weight:400;line-height:12px}.rs-commentary-wrap .reply-box .owner-wrap .message-wrap{padding:12px 0}.rs-commentary-wrap .reply-box .owner-wrap .message-wrap .message{color:#44566c;font-family:Arial;font-size:12px;font-style:normal;font-weight:400;line-height:16px;padding-right:8px;white-space:pre-wrap}.rs-commentary-wrap .avatar{width:32px;height:32px;border-radius:100%;border:1px solid rgba(108,124,144,.4);color:#44566c;display:flex;align-items:center;justify-content:center;font-family:Arial;font-size:12px;font-style:normal;font-weight:400;line-height:14px}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2$3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2$3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2$3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: GridActionComponent, selector: "rs-grid-action" }, { kind: "component", type: GridActionItemComponent, selector: "rs-grid-action-item", inputs: ["image", "text", "disabled", "children", "hideArrow", "disabledOptions"] }, { kind: "component", type: TruncatedTextToggleComponent, selector: "truncated-text-toggle", inputs: ["data", "maximum"] }, { kind: "pipe", type: i1.DatePipe, name: "date" }] });
|
|
1335
1490
|
}
|
|
1336
1491
|
__decorate([
|
|
1337
1492
|
Debounce(300)
|
|
@@ -1343,11 +1498,11 @@ __decorate([
|
|
|
1343
1498
|
Debounce(300)
|
|
1344
1499
|
], RsCommentaryComponent.prototype, "addReply", null);
|
|
1345
1500
|
__decorate([
|
|
1346
|
-
Debounce(
|
|
1501
|
+
Debounce(100)
|
|
1347
1502
|
], RsCommentaryComponent.prototype, "adjustTextareaHeight", null);
|
|
1348
1503
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: RsCommentaryComponent, decorators: [{
|
|
1349
1504
|
type: Component,
|
|
1350
|
-
args: [{ selector: "rs-commentary", template: "<div class=\"rs-commentary-wrap\">\r\n <ng-container\r\n [ngTemplateOutlet]=\"commentBoxTemplate\"\r\n [ngTemplateOutletContext]=\"{ type: 'comment' }\"\r\n ></ng-container>\r\n <div class=\"reply-box\">\r\n <div *ngFor=\"let item of commentData\">\r\n <ng-container\r\n [ngTemplateOutlet]=\"replyItemTemplate\"\r\n [ngTemplateOutletContext]=\"{ type: 'comment', item: item }\"\r\n ></ng-container>\r\n <div class=\"sub-reply-list\">\r\n <ng-container\r\n *ngFor=\"\r\n let sub of item.isExpanded\r\n ? item[filedsKey.commentaries]\r\n : item[filedsKey.commentaries].slice(0, 3)\r\n \"\r\n [ngTemplateOutlet]=\"replyItemTemplate\"\r\n [ngTemplateOutletContext]=\"{ type: 'sub', item: sub }\"\r\n ></ng-container>\r\n </div>\r\n <button\r\n class=\"e-btn text\"\r\n *ngIf=\"item[filedsKey.commentaries].length > 3\"\r\n (click)=\"item.isExpanded = !item.isExpanded\"\r\n style=\"margin-bottom: 8px\"\r\n >\r\n {{\r\n item.isExpanded\r\n ? \"Collapse\"\r\n : \"View All \" + item[filedsKey.commentaries].length + \" Replies\"\r\n }}\r\n <img\r\n class=\"arrow\"\r\n [ngClass]=\"{ collapse: item.isExpanded }\"\r\n src=\"../../assets/img/dropdown-arrow.svg\"\r\n alt=\"\"\r\n />\r\n </button>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<ng-template #commentBoxTemplate let-type=\"type\" let-item=\"item\">\r\n <div class=\"comment-box\">\r\n <div class=\"comment-input-wrap\">\r\n <div class=\"avatar\" *ngIf=\"type !== 'editComment'\">\r\n {{ cf.rtn(displayName) }}\r\n </div>\r\n <textarea\r\n *ngIf=\"type === 'comment'\"\r\n class=\"e-input\"\r\n rows=\"
|
|
1505
|
+
args: [{ selector: "rs-commentary", template: "<div class=\"rs-commentary-wrap\">\r\n <ng-container\r\n [ngTemplateOutlet]=\"commentBoxTemplate\"\r\n [ngTemplateOutletContext]=\"{ type: 'comment' }\"\r\n ></ng-container>\r\n <div class=\"reply-box\">\r\n <div *ngFor=\"let item of commentData\">\r\n <ng-container\r\n [ngTemplateOutlet]=\"replyItemTemplate\"\r\n [ngTemplateOutletContext]=\"{ type: 'comment', item: item }\"\r\n ></ng-container>\r\n <div class=\"sub-reply-list\">\r\n <ng-container\r\n *ngFor=\"\r\n let sub of item.isExpanded\r\n ? item[filedsKey.commentaries]\r\n : item[filedsKey.commentaries].slice(0, 3)\r\n \"\r\n [ngTemplateOutlet]=\"replyItemTemplate\"\r\n [ngTemplateOutletContext]=\"{ type: 'sub', item: sub }\"\r\n ></ng-container>\r\n </div>\r\n <button\r\n class=\"e-btn text\"\r\n *ngIf=\"item[filedsKey.commentaries].length > 3\"\r\n (click)=\"item.isExpanded = !item.isExpanded\"\r\n style=\"margin-bottom: 8px\"\r\n >\r\n {{\r\n item.isExpanded\r\n ? \"Collapse\"\r\n : \"View All \" + item[filedsKey.commentaries].length + \" Replies\"\r\n }}\r\n <img\r\n class=\"arrow\"\r\n [ngClass]=\"{ collapse: item.isExpanded }\"\r\n src=\"../../assets/img/dropdown-arrow.svg\"\r\n alt=\"\"\r\n />\r\n </button>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<ng-template #commentBoxTemplate let-type=\"type\" let-item=\"item\">\r\n <div class=\"comment-box\">\r\n <div class=\"comment-input-wrap\">\r\n <div class=\"avatar\" *ngIf=\"type !== 'editComment'\">\r\n {{ cf.rtn(displayName) }}\r\n </div>\r\n <textarea\r\n *ngIf=\"type === 'comment'\"\r\n class=\"e-input\"\r\n rows=\"3\"\r\n [(ngModel)]=\"commentVal\"\r\n (input)=\"adjustTextareaHeight($event)\"\r\n (focus)=\"adjustTextareaHeight($event)\"\r\n [disabled]=\"isReadOnly || !editPermission\"\r\n [placeholder]=\"translation.WRITE_YOUR_COMMENT || '.WRITE_YOUR_COMMENT'\"\r\n ></textarea>\r\n <textarea\r\n *ngIf=\"type === 'reply'\"\r\n class=\"e-input\"\r\n rows=\"3\"\r\n [(ngModel)]=\"replyVal\"\r\n (input)=\"adjustTextareaHeight($event)\"\r\n (focus)=\"adjustTextareaHeight($event)\"\r\n [placeholder]=\"translation.WRITE_YOUR_COMMENT || '.WRITE_YOUR_COMMENT'\"\r\n ></textarea>\r\n <textarea\r\n *ngIf=\"type === 'editComment'\"\r\n class=\"e-input\"\r\n rows=\"3\"\r\n [(ngModel)]=\"editCommentVal\"\r\n (input)=\"adjustTextareaHeight($event)\"\r\n (focus)=\"adjustTextareaHeight($event)\"\r\n [placeholder]=\"translation.WRITE_YOUR_COMMENT || '.WRITE_YOUR_COMMENT'\"\r\n ></textarea>\r\n </div>\r\n <div class=\"btn-wrap\">\r\n <button\r\n *ngIf=\"type === 'comment'\"\r\n class=\"e-btn e-primary small\"\r\n [disabled]=\"commentVal === '' || isReadOnly || !editPermission\"\r\n (click)=\"addComment()\"\r\n >\r\n {{ translation.COMMENT || \".COMMENT\" }}\r\n </button>\r\n <ng-container *ngIf=\"type === 'reply'\">\r\n <button\r\n class=\"e-btn small\"\r\n (click)=\"item.showReplyInput = false; replyVal = ''\"\r\n >\r\n {{ translation.CANCEL || \".CANCEL\" }}\r\n </button>\r\n <button\r\n class=\"e-btn e-primary small\"\r\n [disabled]=\"replyVal === ''\"\r\n (click)=\"addReply(item)\"\r\n >\r\n {{ translation.REPLY || \".REPLY\" }}\r\n </button>\r\n </ng-container>\r\n <ng-container *ngIf=\"type === 'editComment'\">\r\n <button class=\"e-btn text\" (click)=\"item.showCommentEdit = false\">\r\n <img src=\"../../assets/img/comment-cancel.svg\" alt=\"\" />\r\n </button>\r\n <button\r\n class=\"e-btn text\"\r\n [disabled]=\"editCommentVal === ''\"\r\n (click)=\"updateComment(item)\"\r\n >\r\n <img src=\"../../assets/img/comment-check.svg\" alt=\"\" />\r\n </button>\r\n </ng-container>\r\n </div>\r\n </div>\r\n</ng-template>\r\n<ng-template #replyItemTemplate let-type=\"type\" let-item=\"item\">\r\n <div class=\"reply-item\" [ngClass]=\"{ comment: type === 'comment' }\">\r\n <div class=\"avatar\">\r\n {{ cf.rtn(item[filedsKey.ownerName]) }}\r\n </div>\r\n <div class=\"owner-wrap\">\r\n <div class=\"owner-info\">\r\n <div class=\"name\">\r\n {{ item[filedsKey.ownerName] }}\r\n </div>\r\n <div class=\"time\">\r\n {{ item[filedsKey.lastModifiedOn] | date : dateTimePipeFormat }}\r\n </div>\r\n </div>\r\n <div class=\"message-wrap\">\r\n <div class=\"message\" *ngIf=\"!item.showCommentEdit\">\r\n <!-- {{ item[filedsKey.messageBody] }} -->\r\n <truncated-text-toggle\r\n [maximum]=\"1050\"\r\n [data]=\"item[filedsKey.messageBody]\"\r\n >\r\n </truncated-text-toggle>\r\n </div>\r\n <ng-container\r\n *ngIf=\"item.showCommentEdit\"\r\n [ngTemplateOutlet]=\"commentBoxTemplate\"\r\n [ngTemplateOutletContext]=\"{ type: 'editComment', item: item }\"\r\n ></ng-container>\r\n </div>\r\n\r\n <button\r\n *ngIf=\"\r\n type === 'comment' && !item.showReplyInput && !item.showCommentEdit\r\n \"\r\n class=\"e-btn text\"\r\n (click)=\"item.showReplyInput = true\"\r\n [disabled]=\"isReadOnly || !editPermission\"\r\n >\r\n {{ translation.REPLY || \".REPLY\" }}\r\n </button>\r\n <ng-container\r\n *ngIf=\"item.showReplyInput\"\r\n [ngTemplateOutlet]=\"commentBoxTemplate\"\r\n [ngTemplateOutletContext]=\"{ type: 'reply', item: item }\"\r\n ></ng-container>\r\n\r\n <rs-grid-action *ngIf=\"type === 'comment'\">\r\n <rs-grid-action-item\r\n image=\"Edit\"\r\n [text]=\"translation.EDIT\"\r\n [disabled]=\"isReadOnly || !editPermission\"\r\n (click)=\"editComment(item)\"\r\n ></rs-grid-action-item>\r\n <rs-grid-action-item\r\n image=\"Delete\"\r\n [text]=\"translation.DELETE\"\r\n [disabled]=\"isReadOnly || !deletePermission\"\r\n (click)=\"deleteComment(item)\"\r\n ></rs-grid-action-item>\r\n </rs-grid-action>\r\n </div>\r\n </div>\r\n</ng-template>\r\n", styles: [".rs-commentary-wrap{width:100%;height:100%;padding:32px;display:flex;flex-direction:column}.rs-commentary-wrap .comment-box{width:100%}.rs-commentary-wrap .comment-box .comment-input-wrap{margin-bottom:12px;display:flex;gap:12px}.rs-commentary-wrap .comment-box .comment-input-wrap .e-input{flex:1;width:0;height:62px}.rs-commentary-wrap .comment-box .btn-wrap{display:flex;justify-content:flex-end;gap:12px}.rs-commentary-wrap .comment-box .btn-wrap .e-btn.text{padding:4px}.rs-commentary-wrap .reply-box{height:0;flex:1;overflow:auto;margin-top:16px;margin-right:-32px;padding-right:32px}.rs-commentary-wrap .reply-box .sub-reply-list{padding-left:40px}.rs-commentary-wrap .reply-box .e-btn.text{padding:0!important;min-width:auto;height:auto;color:#6c7c90!important}.rs-commentary-wrap .reply-box .e-btn.text:hover{background:transparent!important;color:#1364b3!important}.rs-commentary-wrap .reply-box .e-btn.text:focus{background:transparent!important;color:#6c7c90!important}.rs-commentary-wrap .reply-box .arrow.collapse{transform:rotate(180deg)}.rs-commentary-wrap .reply-box .reply-item{display:flex;gap:12px;padding:12px 0}.rs-commentary-wrap .reply-box .reply-item.comment{border-top:1px solid #eaedf0}.rs-commentary-wrap .reply-box .reply-item.comment:hover{background-color:#f6faff}.rs-commentary-wrap .reply-box .reply-item.comment:hover rs-grid-action{display:block}.rs-commentary-wrap .reply-box .reply-item rs-grid-action{display:none;position:absolute;cursor:pointer;top:-4px;right:8px}.rs-commentary-wrap .reply-box .owner-wrap{flex:1;width:0;position:relative}.rs-commentary-wrap .reply-box .owner-wrap .owner-info{display:flex;align-items:center;gap:8px;height:28px}.rs-commentary-wrap .reply-box .owner-wrap .owner-info .name{color:#44566c;font-family:Arial;font-size:12px;font-style:normal;font-weight:700;line-height:14px}.rs-commentary-wrap .reply-box .owner-wrap .owner-info .time{color:#6c7c90;font-family:Arial;font-size:10px;font-style:normal;font-weight:400;line-height:12px}.rs-commentary-wrap .reply-box .owner-wrap .message-wrap{padding:12px 0}.rs-commentary-wrap .reply-box .owner-wrap .message-wrap .message{color:#44566c;font-family:Arial;font-size:12px;font-style:normal;font-weight:400;line-height:16px;padding-right:8px;white-space:pre-wrap}.rs-commentary-wrap .avatar{width:32px;height:32px;border-radius:100%;border:1px solid rgba(108,124,144,.4);color:#44566c;display:flex;align-items:center;justify-content:center;font-family:Arial;font-size:12px;font-style:normal;font-weight:400;line-height:14px}\n"] }]
|
|
1351
1506
|
}], ctorParameters: function () { return [{ type: CommonFunctionService }, { type: DialogService }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { displayName: [{
|
|
1352
1507
|
type: Input
|
|
1353
1508
|
}], commentData: [{
|
|
@@ -1360,52 +1515,100 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
1360
1515
|
type: Input
|
|
1361
1516
|
}], filedsKey: [{
|
|
1362
1517
|
type: Input
|
|
1518
|
+
}], dateTimePipeFormat: [{
|
|
1519
|
+
type: Input
|
|
1363
1520
|
}], actionComplete: [{
|
|
1364
1521
|
type: Output
|
|
1365
1522
|
}], addComment: [], deleteComment: [], addReply: [], adjustTextareaHeight: [] } });
|
|
1366
1523
|
|
|
1524
|
+
// 组件类
|
|
1525
|
+
class SearchInputComponent {
|
|
1526
|
+
constructor() { }
|
|
1527
|
+
placeholder = "";
|
|
1528
|
+
hanleSearch = new EventEmitter();
|
|
1529
|
+
handleInput = new EventEmitter();
|
|
1530
|
+
debouncedInput;
|
|
1531
|
+
searchValue = "";
|
|
1532
|
+
translation;
|
|
1533
|
+
ngOnInit() {
|
|
1534
|
+
this.getInfo();
|
|
1535
|
+
this.debouncedInput = debounce(() => {
|
|
1536
|
+
this.onSeach();
|
|
1537
|
+
}, 300);
|
|
1538
|
+
}
|
|
1539
|
+
getInfo() {
|
|
1540
|
+
this.translation = JSON.parse(localStorage.getItem("translation"));
|
|
1541
|
+
this.placeholder = this.placeholder || this.translation.SEARCH;
|
|
1542
|
+
}
|
|
1543
|
+
onInput(e) {
|
|
1544
|
+
this.handleInput.emit(e.value);
|
|
1545
|
+
this.debouncedInput();
|
|
1546
|
+
}
|
|
1547
|
+
onSeach() {
|
|
1548
|
+
this.hanleSearch.emit(this.searchValue);
|
|
1549
|
+
}
|
|
1550
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SearchInputComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
1551
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: SearchInputComponent, selector: "rs-search-input", inputs: { placeholder: "placeholder" }, outputs: { hanleSearch: "hanleSearch", handleInput: "handleInput" }, ngImport: i0, template: "<div class=\"rs-search-input\">\r\n <ejs-textbox\r\n type=\"text\"\r\n class=\"e-input\"\r\n [(ngModel)]=\"searchValue\"\r\n (input)=\"onInput($event)\"\r\n [placeholder]=\"placeholder\"\r\n [showClearButton]=\"true\"\r\n autocomplete=\"off\"\r\n ></ejs-textbox>\r\n</div>\r\n", styles: [".rs-search-input{width:240px}.rs-search-input .e-textbox{display:block;box-shadow:none!important}.rs-search-input ::ng-deep .e-input-group{border-radius:14px!important}.rs-search-input ::ng-deep .e-input-group.e-input-focus,.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-search-input ::ng-deep .e-input-group.e-input-focus input.e-input,.rs-search-input ::ng-deep .e-input-group:hover input.e-input{box-shadow:none!important}.rs-search-input ::ng-deep .e-input-group input.e-input{width:calc(100% - 50px);height:24px!important;line-height:22px!important}.rs-search-input ::ng-deep .e-input-group input.e-input:hover{box-shadow:none!important}.rs-search-input ::ng-deep .e-input-group:before{content:\"\"!important;margin:5px 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: i2$3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2$3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i2$4.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"] }] });
|
|
1552
|
+
}
|
|
1553
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SearchInputComponent, decorators: [{
|
|
1554
|
+
type: Component,
|
|
1555
|
+
args: [{ selector: "rs-search-input", template: "<div class=\"rs-search-input\">\r\n <ejs-textbox\r\n type=\"text\"\r\n class=\"e-input\"\r\n [(ngModel)]=\"searchValue\"\r\n (input)=\"onInput($event)\"\r\n [placeholder]=\"placeholder\"\r\n [showClearButton]=\"true\"\r\n autocomplete=\"off\"\r\n ></ejs-textbox>\r\n</div>\r\n", styles: [".rs-search-input{width:240px}.rs-search-input .e-textbox{display:block;box-shadow:none!important}.rs-search-input ::ng-deep .e-input-group{border-radius:14px!important}.rs-search-input ::ng-deep .e-input-group.e-input-focus,.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-search-input ::ng-deep .e-input-group.e-input-focus input.e-input,.rs-search-input ::ng-deep .e-input-group:hover input.e-input{box-shadow:none!important}.rs-search-input ::ng-deep .e-input-group input.e-input{width:calc(100% - 50px);height:24px!important;line-height:22px!important}.rs-search-input ::ng-deep .e-input-group input.e-input:hover{box-shadow:none!important}.rs-search-input ::ng-deep .e-input-group:before{content:\"\"!important;margin:5px 0 0 8px;display:block;width:16px;height:16px;background-image:url(/assets/img/search.svg);background-size:cover;background-position:center}\n"] }]
|
|
1556
|
+
}], ctorParameters: function () { return []; }, propDecorators: { placeholder: [{
|
|
1557
|
+
type: Input
|
|
1558
|
+
}], hanleSearch: [{
|
|
1559
|
+
type: Output
|
|
1560
|
+
}], handleInput: [{
|
|
1561
|
+
type: Output
|
|
1562
|
+
}] } });
|
|
1563
|
+
|
|
1367
1564
|
// 组件类
|
|
1368
1565
|
class RsPageListComponent {
|
|
1369
1566
|
gridContent;
|
|
1370
1567
|
orignGrid;
|
|
1371
1568
|
treeGrid;
|
|
1372
1569
|
wholeToolbarSlot;
|
|
1570
|
+
searchInput;
|
|
1373
1571
|
pageTitle;
|
|
1374
1572
|
customPageTitle = false;
|
|
1375
1573
|
hideSearch = false;
|
|
1376
1574
|
isInner = false;
|
|
1377
|
-
|
|
1575
|
+
onGridSearch = new EventEmitter();
|
|
1378
1576
|
hasWholeToolbarSlot = false;
|
|
1577
|
+
translation;
|
|
1379
1578
|
ngOnInit() {
|
|
1380
|
-
this.
|
|
1381
|
-
|
|
1382
|
-
|
|
1579
|
+
this.getInfo();
|
|
1580
|
+
}
|
|
1581
|
+
getInfo() {
|
|
1582
|
+
this.translation = JSON.parse(localStorage.getItem("translation"));
|
|
1383
1583
|
}
|
|
1384
1584
|
ngAfterContentInit() {
|
|
1385
1585
|
// 检测是否传入了 wholeToolbarSlot
|
|
1386
1586
|
this.hasWholeToolbarSlot = !!this.wholeToolbarSlot;
|
|
1387
1587
|
}
|
|
1388
|
-
|
|
1389
|
-
|
|
1588
|
+
setSearchValue(value) {
|
|
1589
|
+
this.searchInput.searchValue = value;
|
|
1590
|
+
this.onSeach(value);
|
|
1591
|
+
}
|
|
1592
|
+
onSeach(value) {
|
|
1390
1593
|
if (this.gridContent) {
|
|
1391
|
-
this.gridContent.grid.search(
|
|
1594
|
+
this.gridContent.grid.search(value);
|
|
1392
1595
|
}
|
|
1393
1596
|
else if (this.orignGrid) {
|
|
1394
|
-
this.orignGrid.search(
|
|
1597
|
+
this.orignGrid.search(value);
|
|
1395
1598
|
}
|
|
1396
1599
|
else if (this.treeGrid) {
|
|
1397
|
-
this.treeGrid.search(
|
|
1600
|
+
this.treeGrid.search(value);
|
|
1601
|
+
}
|
|
1602
|
+
else {
|
|
1603
|
+
this.onGridSearch.emit(value);
|
|
1398
1604
|
}
|
|
1399
|
-
}
|
|
1400
|
-
onInput() {
|
|
1401
|
-
this.debouncedInput();
|
|
1402
1605
|
}
|
|
1403
1606
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: RsPageListComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
1404
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: RsPageListComponent, selector: "rs-page-list", inputs: { pageTitle: "pageTitle", customPageTitle: "customPageTitle", 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-page-list-wrap\" [ngClass]=\"{ 'is-not-inner': !isInner }\">\r\n <ng-container *ngIf=\"customPageTitle; else defaultTitle\">\r\n <ng-content select=\"[titleSlot]\"></ng-content>\r\n </ng-container>\r\n <ng-template #defaultTitle>\r\n <h1 class=\"rs-page-title\" *ngIf=\"pageTitle\">{{ pageTitle }}</h1>\r\n </ng-template>\r\n <div class=\"rs-sub-section\">\r\n <ng-content select=\"[subSectionSlot]\"></ng-content>\r\n </div>\r\n <div class=\"rs-content-wrap\">\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 <
|
|
1607
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: RsPageListComponent, selector: "rs-page-list", inputs: { pageTitle: "pageTitle", customPageTitle: "customPageTitle", hideSearch: "hideSearch", isInner: "isInner" }, outputs: { onGridSearch: "onGridSearch" }, 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 }], viewQueries: [{ propertyName: "searchInput", first: true, predicate: ["searchInput"], descendants: true }], ngImport: i0, template: "<div class=\"rs-page-list-wrap\" [ngClass]=\"{ 'is-not-inner': !isInner }\">\r\n <ng-container *ngIf=\"customPageTitle; else defaultTitle\">\r\n <ng-content select=\"[titleSlot]\"></ng-content>\r\n </ng-container>\r\n <ng-template #defaultTitle>\r\n <h1 class=\"rs-page-title\" *ngIf=\"pageTitle\">{{ pageTitle }}</h1>\r\n </ng-template>\r\n <div class=\"rs-sub-section\">\r\n <ng-content select=\"[subSectionSlot]\"></ng-content>\r\n </div>\r\n <div class=\"rs-content-wrap\">\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 <rs-search-input\r\n #searchInput\r\n *ngIf=\"!hideSearch\"\r\n [placeholder]=\"translation.SEARCH_ALL_FIELD\"\r\n (hanleSearch)=\"onSeach($event)\"\r\n ></rs-search-input>\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</div>\r\n", styles: [".rs-page-list-wrap{height:100%;display:flex;flex-direction:column;position:relative;margin:0 auto;max-width:1885px}.rs-page-list-wrap .rs-page-title{font-family:var(--rs-font-family);font-size:var(--rs-page-title-font-size);font-weight:700;text-align:left;color:var(--rs-page-title-color);display:flex;align-items:center;padding:16px 8px 12px 20px}.rs-page-list-wrap .rs-sub-section{width:100%}.rs-page-list-wrap .rs-content-wrap{display:flex;flex-direction:column;flex:1;height:0}.rs-page-list-wrap .rs-content-wrap .rs-toolbar-wrap{display:flex;justify-content:space-between;align-items:center;padding-bottom:4px;border-bottom:1px solid #eaedf0}.rs-page-list-wrap .rs-content-wrap .rs-toolbar-wrap .rs-whole-bar{width:100%}.rs-page-list-wrap .rs-content-wrap .rs-toolbar-wrap .rs-left-col,.rs-page-list-wrap .rs-content-wrap .rs-toolbar-wrap .rs-right-col{display:flex;align-items:center}.rs-page-list-wrap .rs-content-wrap .rs-toolbar-wrap .rs-left-col ::ng-deep .e-btn,.rs-page-list-wrap .rs-content-wrap .rs-toolbar-wrap .rs-right-col ::ng-deep .e-btn{height:24px!important;min-width:auto!important}.rs-page-list-wrap .rs-content-wrap .rs-toolbar-wrap .rs-right-col{gap:12px}.rs-page-list-wrap .rs-content-wrap .rs-left-col{flex:1;width:0;gap:4px}.rs-page-list-wrap .rs-content-wrap .rs-grid-wrap{flex:1;height:0}.rs-page-list-wrap.is-not-inner .rs-content-wrap{border-radius:15px;padding:12px 20px;background:#fff;border:1px solid var(--rs-border-color);box-shadow:0 0 4px #0000001a}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: SearchInputComponent, selector: "rs-search-input", inputs: ["placeholder"], outputs: ["hanleSearch", "handleInput"] }] });
|
|
1405
1608
|
}
|
|
1406
1609
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: RsPageListComponent, decorators: [{
|
|
1407
1610
|
type: Component,
|
|
1408
|
-
args: [{ selector: "rs-page-list", template: "<div class=\"rs-page-list-wrap\" [ngClass]=\"{ 'is-not-inner': !isInner }\">\r\n <ng-container *ngIf=\"customPageTitle; else defaultTitle\">\r\n <ng-content select=\"[titleSlot]\"></ng-content>\r\n </ng-container>\r\n <ng-template #defaultTitle>\r\n <h1 class=\"rs-page-title\" *ngIf=\"pageTitle\">{{ pageTitle }}</h1>\r\n </ng-template>\r\n <div class=\"rs-sub-section\">\r\n <ng-content select=\"[subSectionSlot]\"></ng-content>\r\n </div>\r\n <div class=\"rs-content-wrap\">\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 <
|
|
1611
|
+
args: [{ selector: "rs-page-list", template: "<div class=\"rs-page-list-wrap\" [ngClass]=\"{ 'is-not-inner': !isInner }\">\r\n <ng-container *ngIf=\"customPageTitle; else defaultTitle\">\r\n <ng-content select=\"[titleSlot]\"></ng-content>\r\n </ng-container>\r\n <ng-template #defaultTitle>\r\n <h1 class=\"rs-page-title\" *ngIf=\"pageTitle\">{{ pageTitle }}</h1>\r\n </ng-template>\r\n <div class=\"rs-sub-section\">\r\n <ng-content select=\"[subSectionSlot]\"></ng-content>\r\n </div>\r\n <div class=\"rs-content-wrap\">\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 <rs-search-input\r\n #searchInput\r\n *ngIf=\"!hideSearch\"\r\n [placeholder]=\"translation.SEARCH_ALL_FIELD\"\r\n (hanleSearch)=\"onSeach($event)\"\r\n ></rs-search-input>\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</div>\r\n", styles: [".rs-page-list-wrap{height:100%;display:flex;flex-direction:column;position:relative;margin:0 auto;max-width:1885px}.rs-page-list-wrap .rs-page-title{font-family:var(--rs-font-family);font-size:var(--rs-page-title-font-size);font-weight:700;text-align:left;color:var(--rs-page-title-color);display:flex;align-items:center;padding:16px 8px 12px 20px}.rs-page-list-wrap .rs-sub-section{width:100%}.rs-page-list-wrap .rs-content-wrap{display:flex;flex-direction:column;flex:1;height:0}.rs-page-list-wrap .rs-content-wrap .rs-toolbar-wrap{display:flex;justify-content:space-between;align-items:center;padding-bottom:4px;border-bottom:1px solid #eaedf0}.rs-page-list-wrap .rs-content-wrap .rs-toolbar-wrap .rs-whole-bar{width:100%}.rs-page-list-wrap .rs-content-wrap .rs-toolbar-wrap .rs-left-col,.rs-page-list-wrap .rs-content-wrap .rs-toolbar-wrap .rs-right-col{display:flex;align-items:center}.rs-page-list-wrap .rs-content-wrap .rs-toolbar-wrap .rs-left-col ::ng-deep .e-btn,.rs-page-list-wrap .rs-content-wrap .rs-toolbar-wrap .rs-right-col ::ng-deep .e-btn{height:24px!important;min-width:auto!important}.rs-page-list-wrap .rs-content-wrap .rs-toolbar-wrap .rs-right-col{gap:12px}.rs-page-list-wrap .rs-content-wrap .rs-left-col{flex:1;width:0;gap:4px}.rs-page-list-wrap .rs-content-wrap .rs-grid-wrap{flex:1;height:0}.rs-page-list-wrap.is-not-inner .rs-content-wrap{border-radius:15px;padding:12px 20px;background:#fff;border:1px solid var(--rs-border-color);box-shadow:0 0 4px #0000001a}\n"] }]
|
|
1409
1612
|
}], propDecorators: { gridContent: [{
|
|
1410
1613
|
type: ContentChild,
|
|
1411
1614
|
args: [CommonGridComponent, { static: false }]
|
|
@@ -1418,6 +1621,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
1418
1621
|
}], wholeToolbarSlot: [{
|
|
1419
1622
|
type: ContentChild,
|
|
1420
1623
|
args: ["wholeToolbarSlot", { static: false }]
|
|
1624
|
+
}], searchInput: [{
|
|
1625
|
+
type: ViewChild,
|
|
1626
|
+
args: ["searchInput", { static: false }]
|
|
1421
1627
|
}], pageTitle: [{
|
|
1422
1628
|
type: Input
|
|
1423
1629
|
}], customPageTitle: [{
|
|
@@ -1426,6 +1632,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
1426
1632
|
type: Input
|
|
1427
1633
|
}], isInner: [{
|
|
1428
1634
|
type: Input
|
|
1635
|
+
}], onGridSearch: [{
|
|
1636
|
+
type: Output
|
|
1429
1637
|
}] } });
|
|
1430
1638
|
|
|
1431
1639
|
// 组件类
|
|
@@ -1460,7 +1668,7 @@ class RsPageTabComponent {
|
|
|
1460
1668
|
this.tabObj.select(idx);
|
|
1461
1669
|
}
|
|
1462
1670
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: RsPageTabComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
1463
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: RsPageTabComponent, selector: "rs-page-tab", inputs: { pageTitle: "pageTitle", customPageTitle: "customPageTitle", tabList: "tabList", currentTab: "currentTab" }, outputs: { tabChange: "tabChange" }, viewQueries: [{ propertyName: "tabObj", first: true, predicate: ["tabObj"], descendants: true }], ngImport: i0, template: "<div class=\"rs-page-list-wrap\">\r\n <ng-container *ngIf=\"customPageTitle; else defaultTitle\">\r\n <ng-content select=\"[titleSlot]\"></ng-content>\r\n </ng-container>\r\n <ng-template #defaultTitle>\r\n <div class=\"rs-page-title\" *ngIf=\"pageTitle\">{{ pageTitle }}</div>\r\n </ng-template>\r\n <ejs-tab\r\n class=\"rs-tab\"\r\n #tabObj\r\n (selected)=\"onTabClick($event)\"\r\n [animation]=\"animation\"\r\n\t overflowMode=\"Popup\"\r\n heightAdjustMode=\"None\"\r\n >\r\n <e-tabitems>\r\n <e-tabitem *ngFor=\"let item of tabList\">\r\n <ng-template #headerText>\r\n <div>{{ item.title }}</div>\r\n </ng-template>\r\n </e-tabitem>\r\n </e-tabitems>\r\n </ejs-tab>\r\n <div class=\"rs-grid-wrap\">\r\n <ng-content select=\"[tabContentSlot]\"></ng-content>\r\n </div>\r\n</div>\r\n", styles: [".rs-page-list-wrap{height:100%;display:flex;flex-direction:column;position:relative;margin:0 auto;max-width:1885px}.rs-page-list-wrap .rs-page-title{font-family:var(--rs-font-family);font-size:var(--rs-page-title-font-size);font-weight:700;text-align:left;color:var(--rs-page-title-color);display:flex;align-items:center;padding:16px 8px 12px 20px}.rs-page-list-wrap .rs-tab{padding:0 20px}.rs-page-list-wrap .rs-tab .e-tab-header:before{display:none}.rs-page-list-wrap .rs-tab .e-toolbar-items{gap:32px;min-height:36px}.rs-page-list-wrap .rs-tab .e-toolbar-items .e-toolbar-item{border:0}.rs-page-list-wrap .rs-tab .e-toolbar-items .e-toolbar-item .e-tab-wrap{padding:0;border:0;position:relative;height:36px}.rs-page-list-wrap .rs-tab .e-toolbar-items .e-toolbar-item .e-tab-wrap:before{content:\" \";position:absolute;left:0;bottom:0;width:100%;height:2px;background-color:transparent}.rs-page-list-wrap .rs-tab .e-toolbar-items .e-toolbar-item .e-tab-text{color:#5f6f81;font-family:Arial;font-size:13px;font-style:normal;font-weight:400;line-height:16px}.rs-page-list-wrap .rs-tab .e-toolbar-items .e-toolbar-item.e-active .e-tab-wrap:before{background-color:#1f7bff}.rs-page-list-wrap .rs-tab .e-toolbar-items .e-toolbar-item.e-active .e-tab-text{color:#44566c}.rs-page-list-wrap .rs-tab .e-hor-nav{width:24px;height:24px;min-height:24px;top:3px;border-radius:4px;background-color:transparent!important;border:1px solid #eaedf0!important}.rs-page-list-wrap .rs-tab .e-hor-nav .e-icons{box-shadow:none;background-color:transparent!important;border-color:transparent!important;background-image:url(\"data:image/svg+xml,%3Csvg width%3D%2214%22 height%3D%223%22 viewBox%3D%220 0 14 3%22 fill%3D%22none%22 xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0D%3Cg id%3D%22Drag bar%22%3E%0D%3Ccircle id%3D%22Ellipse 30%22 cx%3D%221.5%22 cy%3D%221.5%22 r%3D%221.5%22 transform%3D%22rotate(-90 1.5 1.5)%22 fill%3D%22%236B6B6B%22%2F%3E%0D%3Ccircle id%3D%22Ellipse 31%22 cx%3D%227%22 cy%3D%221.5%22 r%3D%221.5%22 transform%3D%22rotate(-90 7 1.5)%22 fill%3D%22%236B6B6B%22%2F%3E%0D%3Ccircle id%3D%22Ellipse 32%22 cx%3D%2212.5%22 cy%3D%221.5%22 r%3D%221.5%22 transform%3D%22rotate(-90 12.5 1.5)%22 fill%3D%22%236B6B6B%22%2F%3E%0D%3C%2Fg%3E%0D%3C%2Fsvg%3E%0D\");background-size:14px 3px;background-repeat:no-repeat;background-position:4px 14px}.rs-page-list-wrap .rs-tab .e-hor-nav .e-icons:before{display:none}.rs-page-list-wrap .rs-tab .e-hor-nav .e-icons:hover{background-color:#eff5fb!important;border-color:#b1d0fc!important;background-image:url(\"data:image/svg+xml,%3Csvg width%3D%2214%22 height%3D%223%22 viewBox%3D%220 0 14 3%22 fill%3D%22none%22 xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0D%3Cg id%3D%22Drag bar%22%3E%0D%3Ccircle id%3D%22Ellipse 30%22 cx%3D%221.5%22 cy%3D%221.5%22 r%3D%221.5%22 transform%3D%22rotate(-90 1.5 1.5)%22 fill%3D%22%231F7BFF%22%2F%3E%0D%3Ccircle id%3D%22Ellipse 31%22 cx%3D%227%22 cy%3D%221.5%22 r%3D%221.5%22 transform%3D%22rotate(-90 7 1.5)%22 fill%3D%22%231F7BFF%22%2F%3E%0D%3Ccircle id%3D%22Ellipse 32%22 cx%3D%2212.5%22 cy%3D%221.5%22 r%3D%221.5%22 transform%3D%22rotate(-90 12.5 1.5)%22 fill%3D%22%231F7BFF%22%2F%3E%0D%3C%2Fg%3E%0D%3C%2Fsvg%3E%0D\")}.rs-page-list-wrap .rs-tab .e-toolbar-pop{min-width:160px;border-radius:10px;background:#fff;box-shadow:0 0 8px #00000040;padding:8px}.rs-page-list-wrap .rs-tab .e-toolbar-pop .e-toolbar-item .e-tab-wrap{padding:0 8px}.rs-page-list-wrap .rs-tab .e-toolbar-pop .e-toolbar-item .e-tab-wrap .e-tab-text{color:#44566c;font-family:Arial;font-size:13px;font-weight:400;line-height:16px}.rs-page-list-wrap .rs-tab .e-toolbar-pop .e-toolbar-item .e-tab-wrap:hover{border-radius:6px;background:#1f7bff0d}.rs-page-list-wrap .rs-grid-wrap{flex:1;height:0}\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$
|
|
1671
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: RsPageTabComponent, selector: "rs-page-tab", inputs: { pageTitle: "pageTitle", customPageTitle: "customPageTitle", tabList: "tabList", currentTab: "currentTab" }, outputs: { tabChange: "tabChange" }, viewQueries: [{ propertyName: "tabObj", first: true, predicate: ["tabObj"], descendants: true }], ngImport: i0, template: "<div class=\"rs-page-list-wrap\">\r\n <ng-container *ngIf=\"customPageTitle; else defaultTitle\">\r\n <ng-content select=\"[titleSlot]\"></ng-content>\r\n </ng-container>\r\n <ng-template #defaultTitle>\r\n <div class=\"rs-page-title\" *ngIf=\"pageTitle\">{{ pageTitle }}</div>\r\n </ng-template>\r\n <ejs-tab\r\n class=\"rs-tab\"\r\n #tabObj\r\n (selected)=\"onTabClick($event)\"\r\n [animation]=\"animation\"\r\n\t overflowMode=\"Popup\"\r\n heightAdjustMode=\"None\"\r\n >\r\n <e-tabitems>\r\n <e-tabitem *ngFor=\"let item of tabList\">\r\n <ng-template #headerText>\r\n <div>{{ item.title }}</div>\r\n </ng-template>\r\n </e-tabitem>\r\n </e-tabitems>\r\n </ejs-tab>\r\n <div class=\"rs-grid-wrap\">\r\n <ng-content select=\"[tabContentSlot]\"></ng-content>\r\n </div>\r\n</div>\r\n", styles: [".rs-page-list-wrap{height:100%;display:flex;flex-direction:column;position:relative;margin:0 auto;max-width:1885px}.rs-page-list-wrap .rs-page-title{font-family:var(--rs-font-family);font-size:var(--rs-page-title-font-size);font-weight:700;text-align:left;color:var(--rs-page-title-color);display:flex;align-items:center;padding:16px 8px 12px 20px}.rs-page-list-wrap .rs-tab{padding:0 20px}.rs-page-list-wrap .rs-tab .e-tab-header:before{display:none}.rs-page-list-wrap .rs-tab .e-toolbar-items{gap:32px;min-height:36px}.rs-page-list-wrap .rs-tab .e-toolbar-items .e-toolbar-item{border:0}.rs-page-list-wrap .rs-tab .e-toolbar-items .e-toolbar-item .e-tab-wrap{padding:0;border:0;position:relative;height:36px}.rs-page-list-wrap .rs-tab .e-toolbar-items .e-toolbar-item .e-tab-wrap:before{content:\" \";position:absolute;left:0;bottom:0;width:100%;height:2px;background-color:transparent}.rs-page-list-wrap .rs-tab .e-toolbar-items .e-toolbar-item .e-tab-text{color:#5f6f81;font-family:Arial;font-size:13px;font-style:normal;font-weight:400;line-height:16px}.rs-page-list-wrap .rs-tab .e-toolbar-items .e-toolbar-item.e-active .e-tab-wrap:before{background-color:#1f7bff}.rs-page-list-wrap .rs-tab .e-toolbar-items .e-toolbar-item.e-active .e-tab-text{color:#44566c}.rs-page-list-wrap .rs-tab .e-hor-nav{width:24px;height:24px;min-height:24px;top:3px;border-radius:4px;background-color:transparent!important;border:1px solid #eaedf0!important}.rs-page-list-wrap .rs-tab .e-hor-nav .e-icons{box-shadow:none;background-color:transparent!important;border-color:transparent!important;background-image:url(\"data:image/svg+xml,%3Csvg width%3D%2214%22 height%3D%223%22 viewBox%3D%220 0 14 3%22 fill%3D%22none%22 xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0D%3Cg id%3D%22Drag bar%22%3E%0D%3Ccircle id%3D%22Ellipse 30%22 cx%3D%221.5%22 cy%3D%221.5%22 r%3D%221.5%22 transform%3D%22rotate(-90 1.5 1.5)%22 fill%3D%22%236B6B6B%22%2F%3E%0D%3Ccircle id%3D%22Ellipse 31%22 cx%3D%227%22 cy%3D%221.5%22 r%3D%221.5%22 transform%3D%22rotate(-90 7 1.5)%22 fill%3D%22%236B6B6B%22%2F%3E%0D%3Ccircle id%3D%22Ellipse 32%22 cx%3D%2212.5%22 cy%3D%221.5%22 r%3D%221.5%22 transform%3D%22rotate(-90 12.5 1.5)%22 fill%3D%22%236B6B6B%22%2F%3E%0D%3C%2Fg%3E%0D%3C%2Fsvg%3E%0D\");background-size:14px 3px;background-repeat:no-repeat;background-position:4px 14px}.rs-page-list-wrap .rs-tab .e-hor-nav .e-icons:before{display:none}.rs-page-list-wrap .rs-tab .e-hor-nav .e-icons:hover{background-color:#eff5fb!important;border-color:#b1d0fc!important;background-image:url(\"data:image/svg+xml,%3Csvg width%3D%2214%22 height%3D%223%22 viewBox%3D%220 0 14 3%22 fill%3D%22none%22 xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0D%3Cg id%3D%22Drag bar%22%3E%0D%3Ccircle id%3D%22Ellipse 30%22 cx%3D%221.5%22 cy%3D%221.5%22 r%3D%221.5%22 transform%3D%22rotate(-90 1.5 1.5)%22 fill%3D%22%231F7BFF%22%2F%3E%0D%3Ccircle id%3D%22Ellipse 31%22 cx%3D%227%22 cy%3D%221.5%22 r%3D%221.5%22 transform%3D%22rotate(-90 7 1.5)%22 fill%3D%22%231F7BFF%22%2F%3E%0D%3Ccircle id%3D%22Ellipse 32%22 cx%3D%2212.5%22 cy%3D%221.5%22 r%3D%221.5%22 transform%3D%22rotate(-90 12.5 1.5)%22 fill%3D%22%231F7BFF%22%2F%3E%0D%3C%2Fg%3E%0D%3C%2Fsvg%3E%0D\")}.rs-page-list-wrap .rs-tab .e-toolbar-pop{min-width:160px;border-radius:10px;background:#fff;box-shadow:0 0 8px #00000040;padding:8px}.rs-page-list-wrap .rs-tab .e-toolbar-pop .e-toolbar-item .e-tab-wrap{padding:0 8px}.rs-page-list-wrap .rs-tab .e-toolbar-pop .e-toolbar-item .e-tab-wrap .e-tab-text{color:#44566c;font-family:Arial;font-size:13px;font-weight:400;line-height:16px}.rs-page-list-wrap .rs-tab .e-toolbar-pop .e-toolbar-item .e-tab-wrap:hover{border-radius:6px;background:#1f7bff0d}.rs-page-list-wrap .rs-grid-wrap{flex:1;height:0}\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$5.TabComponent, selector: "ejs-tab", inputs: ["allowDragAndDrop", "animation", "clearTemplates", "cssClass", "dragArea", "enableHtmlSanitizer", "enablePersistence", "enableRtl", "headerPlacement", "height", "heightAdjustMode", "items", "loadOn", "locale", "overflowMode", "reorderActiveTab", "scrollStep", "selectedItem", "showCloseButton", "width"], outputs: ["added", "adding", "created", "destroyed", "dragged", "dragging", "onDragStart", "removed", "removing", "selected", "selecting"] }, { kind: "directive", type: i2$5.TabItemDirective, selector: "e-tabitems>e-tabitem", inputs: ["content", "cssClass", "disabled", "header", "headerTemplate", "id", "tabIndex", "visible"] }, { kind: "directive", type: i2$5.TabItemsDirective, selector: "ejs-tab>e-tabitems" }] });
|
|
1464
1672
|
}
|
|
1465
1673
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: RsPageTabComponent, decorators: [{
|
|
1466
1674
|
type: Component,
|
|
@@ -1486,40 +1694,46 @@ class GridBoxComponent {
|
|
|
1486
1694
|
orignGrid;
|
|
1487
1695
|
treeGrid;
|
|
1488
1696
|
wholeToolbarSlot;
|
|
1697
|
+
searchInput;
|
|
1489
1698
|
hideSearch = false;
|
|
1490
1699
|
isInner = false;
|
|
1491
|
-
|
|
1700
|
+
onGridSearch = new EventEmitter();
|
|
1492
1701
|
hasWholeToolbarSlot = false;
|
|
1702
|
+
translation;
|
|
1493
1703
|
ngOnInit() {
|
|
1494
|
-
this.
|
|
1495
|
-
|
|
1496
|
-
|
|
1704
|
+
this.getInfo();
|
|
1705
|
+
}
|
|
1706
|
+
getInfo() {
|
|
1707
|
+
this.translation = JSON.parse(localStorage.getItem("translation"));
|
|
1497
1708
|
}
|
|
1498
1709
|
ngAfterContentInit() {
|
|
1499
1710
|
// 检测是否传入了 wholeToolbarSlot
|
|
1500
1711
|
this.hasWholeToolbarSlot = !!this.wholeToolbarSlot;
|
|
1501
1712
|
}
|
|
1502
|
-
|
|
1503
|
-
|
|
1713
|
+
setSearchValue(value) {
|
|
1714
|
+
this.searchInput.searchValue = value;
|
|
1715
|
+
this.onSeach(value);
|
|
1716
|
+
}
|
|
1717
|
+
onSeach(value) {
|
|
1504
1718
|
if (this.gridContent) {
|
|
1505
|
-
this.gridContent.grid.search(
|
|
1719
|
+
this.gridContent.grid.search(value);
|
|
1506
1720
|
}
|
|
1507
1721
|
else if (this.orignGrid) {
|
|
1508
|
-
this.orignGrid.search(
|
|
1722
|
+
this.orignGrid.search(value);
|
|
1509
1723
|
}
|
|
1510
1724
|
else if (this.treeGrid) {
|
|
1511
|
-
this.treeGrid.search(
|
|
1725
|
+
this.treeGrid.search(value);
|
|
1726
|
+
}
|
|
1727
|
+
else {
|
|
1728
|
+
this.onGridSearch.emit(value);
|
|
1512
1729
|
}
|
|
1513
|
-
}
|
|
1514
|
-
onInput() {
|
|
1515
|
-
this.debouncedInput();
|
|
1516
1730
|
}
|
|
1517
1731
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: GridBoxComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
1518
|
-
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 <
|
|
1732
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: GridBoxComponent, selector: "rs-grid-box", inputs: { hideSearch: "hideSearch", isInner: "isInner" }, outputs: { onGridSearch: "onGridSearch" }, 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 }], viewQueries: [{ propertyName: "searchInput", first: true, predicate: ["searchInput"], 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 <rs-search-input\r\n #searchInput\r\n *ngIf=\"!hideSearch\"\r\n [placeholder]=\"translation.SEARCH_ALL_FIELD\"\r\n (hanleSearch)=\"onSeach($event)\"\r\n ></rs-search-input>\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}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: SearchInputComponent, selector: "rs-search-input", inputs: ["placeholder"], outputs: ["hanleSearch", "handleInput"] }] });
|
|
1519
1733
|
}
|
|
1520
1734
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: GridBoxComponent, decorators: [{
|
|
1521
1735
|
type: Component,
|
|
1522
|
-
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 <
|
|
1736
|
+
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 <rs-search-input\r\n #searchInput\r\n *ngIf=\"!hideSearch\"\r\n [placeholder]=\"translation.SEARCH_ALL_FIELD\"\r\n (hanleSearch)=\"onSeach($event)\"\r\n ></rs-search-input>\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}\n"] }]
|
|
1523
1737
|
}], propDecorators: { gridContent: [{
|
|
1524
1738
|
type: ContentChild,
|
|
1525
1739
|
args: [CommonGridComponent, { static: false }]
|
|
@@ -1532,10 +1746,15 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
1532
1746
|
}], wholeToolbarSlot: [{
|
|
1533
1747
|
type: ContentChild,
|
|
1534
1748
|
args: ["wholeToolbarSlot", { static: false }]
|
|
1749
|
+
}], searchInput: [{
|
|
1750
|
+
type: ViewChild,
|
|
1751
|
+
args: ["searchInput", { static: false }]
|
|
1535
1752
|
}], hideSearch: [{
|
|
1536
1753
|
type: Input
|
|
1537
1754
|
}], isInner: [{
|
|
1538
1755
|
type: Input
|
|
1756
|
+
}], onGridSearch: [{
|
|
1757
|
+
type: Output
|
|
1539
1758
|
}] } });
|
|
1540
1759
|
|
|
1541
1760
|
const DefaultDrawerConfig = {
|
|
@@ -1546,7 +1765,6 @@ class DrawerService {
|
|
|
1546
1765
|
router;
|
|
1547
1766
|
uniqueDrawerComponent;
|
|
1548
1767
|
resultPromiseResolveMap = new Map();
|
|
1549
|
-
openedSubscription;
|
|
1550
1768
|
routerSubscription;
|
|
1551
1769
|
ListenChangeCbs = new Set();
|
|
1552
1770
|
constructor(router) {
|
|
@@ -1571,13 +1789,10 @@ class DrawerService {
|
|
|
1571
1789
|
this.removeDrawer();
|
|
1572
1790
|
}
|
|
1573
1791
|
this.uniqueDrawerComponent = component;
|
|
1574
|
-
this.openedSubscription = component.$isOpened.subscribe((value) => !value && this.hide());
|
|
1575
1792
|
this.listenRouterChange();
|
|
1576
1793
|
}
|
|
1577
1794
|
removeDrawer() {
|
|
1578
|
-
this.openedSubscription && this.openedSubscription.unsubscribe();
|
|
1579
1795
|
this.routerSubscription && this.routerSubscription.unsubscribe();
|
|
1580
|
-
this.openedSubscription = null;
|
|
1581
1796
|
this.routerSubscription = null;
|
|
1582
1797
|
this.uniqueDrawerComponent = null;
|
|
1583
1798
|
}
|
|
@@ -1585,7 +1800,7 @@ class DrawerService {
|
|
|
1585
1800
|
const drawer = this.uniqueDrawerComponent;
|
|
1586
1801
|
if (!this.checkChange("show", { component, config, data }) ||
|
|
1587
1802
|
!drawer ||
|
|
1588
|
-
drawer
|
|
1803
|
+
drawer.isOpened) {
|
|
1589
1804
|
return {
|
|
1590
1805
|
instance: null,
|
|
1591
1806
|
result: null,
|
|
@@ -1618,9 +1833,15 @@ class DrawerService {
|
|
|
1618
1833
|
drawer && drawer.back();
|
|
1619
1834
|
}
|
|
1620
1835
|
}
|
|
1836
|
+
setConfig(config) {
|
|
1837
|
+
if (this.uniqueDrawerComponent) {
|
|
1838
|
+
this.uniqueDrawerComponent.setConfig(config);
|
|
1839
|
+
}
|
|
1840
|
+
}
|
|
1621
1841
|
deleteCache(cacheKey) {
|
|
1622
1842
|
const drawer = this.uniqueDrawerComponent;
|
|
1623
1843
|
drawer && drawer.deleteCache(cacheKey);
|
|
1844
|
+
this.resultPromiseResolveMap.delete(cacheKey);
|
|
1624
1845
|
}
|
|
1625
1846
|
onChange(callback) {
|
|
1626
1847
|
this.ListenChangeCbs.add(callback);
|
|
@@ -1664,7 +1885,10 @@ class MultiTabComponent {
|
|
|
1664
1885
|
keepAlive;
|
|
1665
1886
|
singleReuseUrls = []; //只能单个缓存的url
|
|
1666
1887
|
noGenerateTabUrls = []; //不生成tab的url
|
|
1888
|
+
flattenMenu = [];
|
|
1889
|
+
defaultTabUrl = "";
|
|
1667
1890
|
onRefreshTab = new EventEmitter();
|
|
1891
|
+
onCloseTab = new EventEmitter();
|
|
1668
1892
|
subscriptions = [];
|
|
1669
1893
|
TAB_WIDTH = 164;
|
|
1670
1894
|
GAP_NORMAL = 54;
|
|
@@ -1676,20 +1900,38 @@ class MultiTabComponent {
|
|
|
1676
1900
|
selectedTab = 0;
|
|
1677
1901
|
maxTabs = 10;
|
|
1678
1902
|
screenWidth = window.innerWidth; // 初始化屏幕宽度
|
|
1903
|
+
translation;
|
|
1679
1904
|
onResize(event) {
|
|
1680
1905
|
this.screenWidth = window.innerWidth; // 更新屏幕宽度
|
|
1681
1906
|
// this.setEllipsisTitle(); 在最外面容器调用
|
|
1682
1907
|
}
|
|
1683
1908
|
ngOnInit() {
|
|
1909
|
+
this.translation = JSON.parse(localStorage.getItem("translation"));
|
|
1684
1910
|
this.initTab();
|
|
1685
1911
|
// 解决刷新页面后,选中的 tab 丢失问题
|
|
1686
1912
|
const isExistIdx = this.tabList.findIndex((ele) => this.urlWithoutQuery(ele.url) === this.urlWithoutQuery(this.router.url));
|
|
1687
1913
|
if (isExistIdx !== -1) {
|
|
1688
1914
|
this.selectedTab = isExistIdx;
|
|
1689
1915
|
}
|
|
1916
|
+
this.subscriptions.push(this.router.events
|
|
1917
|
+
.pipe(filter((event) => event instanceof NavigationStart))
|
|
1918
|
+
.subscribe((event) => {
|
|
1919
|
+
const navigation = this.router.getCurrentNavigation(); // 获取当前导航
|
|
1920
|
+
if (navigation) {
|
|
1921
|
+
const state = navigation.extras.state; // 获取传递的 state
|
|
1922
|
+
let noReused = (state && state["noReused"]) || false; // 当前tab不复用,新开一个tab,当有已经存在的tab时候也是新开
|
|
1923
|
+
const isExistIdx = this.tabList.findIndex((ele) => this.urlWithoutQuery(ele.url) ===
|
|
1924
|
+
this.urlWithoutQuery(event.url));
|
|
1925
|
+
if (isExistIdx !== -1 &&
|
|
1926
|
+
(noReused || this.tabList[isExistIdx].url !== event.url)) {
|
|
1927
|
+
// 如果当前tab已经存在,并且是新开的tab
|
|
1928
|
+
this.closeTab(isExistIdx, true); // 关闭当前tab
|
|
1929
|
+
}
|
|
1930
|
+
}
|
|
1931
|
+
}));
|
|
1690
1932
|
this.subscriptions.push(this.router.events
|
|
1691
1933
|
.pipe(filter((event) => event instanceof NavigationEnd))
|
|
1692
|
-
.subscribe(() => {
|
|
1934
|
+
.subscribe((event) => {
|
|
1693
1935
|
const navigation = this.router.getCurrentNavigation(); // 获取当前导航
|
|
1694
1936
|
if (navigation) {
|
|
1695
1937
|
const tooltipElements = document.querySelectorAll(".e-popup-open");
|
|
@@ -1706,12 +1948,11 @@ class MultiTabComponent {
|
|
|
1706
1948
|
navigationInfo.title ||
|
|
1707
1949
|
navigationInfo.subTitle ||
|
|
1708
1950
|
navigationInfo.name;
|
|
1709
|
-
let noReused = (state && state["noReused"]) || false; // 当前tab不复用,新开一个tab,当有已经存在的tab时候也是新开
|
|
1710
1951
|
if (currentRoute && !skipLocationChange) {
|
|
1711
1952
|
if (this.noGenerateTabUrls.includes(this.urlWithoutQuery(this.router.url))) {
|
|
1712
1953
|
return; // 排除不生成tab的url
|
|
1713
1954
|
}
|
|
1714
|
-
this.setTab(this.router.url, currentRoute.snapshot.routeConfig.path, title
|
|
1955
|
+
this.setTab(this.router.url, currentRoute.snapshot.routeConfig.path, title);
|
|
1715
1956
|
}
|
|
1716
1957
|
}
|
|
1717
1958
|
}));
|
|
@@ -1726,25 +1967,18 @@ class MultiTabComponent {
|
|
|
1726
1967
|
this.selectedTab = 0; // 重置选中的 tab 索引
|
|
1727
1968
|
this.subscriptions.forEach((sub) => sub.unsubscribe());
|
|
1728
1969
|
}
|
|
1729
|
-
setEllipsisTitle(
|
|
1970
|
+
setEllipsisTitle() {
|
|
1730
1971
|
this.textGap = this.GAP_NORMAL;
|
|
1731
1972
|
if (this.screenWidth <= 1100) {
|
|
1732
1973
|
this.textGap = this.GAP_SMALL;
|
|
1733
1974
|
}
|
|
1734
1975
|
let { allWidth, leftWidth, rightWidth } = this.calcTabWidth();
|
|
1735
1976
|
let width = Math.floor((allWidth - rightWidth) / (this.tabList && this.tabList.length));
|
|
1736
|
-
|
|
1737
|
-
|
|
1977
|
+
this.tabList.forEach((ele, idx) => {
|
|
1978
|
+
ele.displayTitle = this.cf.setMiddleEllipsis(this.translation[ele.title] || ele.title, width > this.TAB_WIDTH
|
|
1738
1979
|
? this.TAB_WIDTH - this.textGap
|
|
1739
1980
|
: width - this.textGap, 12);
|
|
1740
|
-
}
|
|
1741
|
-
else {
|
|
1742
|
-
this.tabList.forEach((ele, idx) => {
|
|
1743
|
-
ele.displayTitle = this.cf.setMiddleEllipsis(ele.title, width > this.TAB_WIDTH
|
|
1744
|
-
? this.TAB_WIDTH - this.textGap
|
|
1745
|
-
: width - this.textGap, 12);
|
|
1746
|
-
});
|
|
1747
|
-
}
|
|
1981
|
+
});
|
|
1748
1982
|
this.ref.markForCheck();
|
|
1749
1983
|
this.ref.detectChanges();
|
|
1750
1984
|
}
|
|
@@ -1771,21 +2005,29 @@ class MultiTabComponent {
|
|
|
1771
2005
|
};
|
|
1772
2006
|
}
|
|
1773
2007
|
initTab() {
|
|
2008
|
+
// console.log("this.flattenMenu", this.flattenMenu);
|
|
1774
2009
|
let TabCache = JSON.parse(sessionStorage.getItem("TabCache"));
|
|
1775
2010
|
this.tabList = TabCache || [];
|
|
1776
2011
|
if (this.tabList.length === 0) {
|
|
1777
|
-
const
|
|
1778
|
-
|
|
1779
|
-
|
|
1780
|
-
|
|
1781
|
-
|
|
2012
|
+
const pureUrl = this.urlWithoutQuery(this.router.url);
|
|
2013
|
+
const target = this.flattenMenu.find((ele) => ele.url === pureUrl);
|
|
2014
|
+
if (target) {
|
|
2015
|
+
if (target.url !== this.defaultTabUrl) {
|
|
2016
|
+
const defaultTab = this.flattenMenu.find((ele) => ele.url === this.defaultTabUrl);
|
|
2017
|
+
this.tabList.push({
|
|
2018
|
+
url: defaultTab.url,
|
|
2019
|
+
title: defaultTab.menuCode || defaultTab.label,
|
|
2020
|
+
displayTitle: defaultTab.menuCode || defaultTab.label,
|
|
2021
|
+
});
|
|
2022
|
+
}
|
|
2023
|
+
this.addTab(target.url, target.menuCode || target.label);
|
|
1782
2024
|
}
|
|
1783
2025
|
}
|
|
1784
2026
|
}
|
|
1785
2027
|
closeTab(idx, noChange) {
|
|
1786
2028
|
const tab = this.tabList[idx];
|
|
1787
2029
|
this.tabList = this.tabList.filter((ele) => ele.url !== tab.url);
|
|
1788
|
-
this.clearCache(
|
|
2030
|
+
this.clearCache(tab.url);
|
|
1789
2031
|
if (!noChange && this.selectedTab === idx) {
|
|
1790
2032
|
const targetIdx = Math.max(0, idx - 1);
|
|
1791
2033
|
this.changeTab(this.tabList[targetIdx], targetIdx);
|
|
@@ -1795,6 +2037,7 @@ class MultiTabComponent {
|
|
|
1795
2037
|
}
|
|
1796
2038
|
this.setEllipsisTitle();
|
|
1797
2039
|
sessionStorage.setItem("TabCache", JSON.stringify(this.tabList));
|
|
2040
|
+
this.onCloseTab.emit(tab);
|
|
1798
2041
|
this.ref.markForCheck();
|
|
1799
2042
|
}
|
|
1800
2043
|
changeTab(tab, idx) {
|
|
@@ -1815,7 +2058,7 @@ class MultiTabComponent {
|
|
|
1815
2058
|
if (this.tabList.length >= this.maxTabs) {
|
|
1816
2059
|
const secondTab = this.tabList[1];
|
|
1817
2060
|
this.tabList = this.tabList.filter((ele) => ele.url !== secondTab.url);
|
|
1818
|
-
this.clearCache(
|
|
2061
|
+
this.clearCache(secondTab.url);
|
|
1819
2062
|
}
|
|
1820
2063
|
const localPermissions = sessionStorage.getItem("permissions") ||
|
|
1821
2064
|
localStorage.getItem("permissions");
|
|
@@ -1835,32 +2078,42 @@ class MultiTabComponent {
|
|
|
1835
2078
|
sessionStorage.setItem("TabCache", JSON.stringify(this.tabList));
|
|
1836
2079
|
this.ref.markForCheck();
|
|
1837
2080
|
}
|
|
1838
|
-
setTab(url, pureUrl, title
|
|
2081
|
+
setTab(url, pureUrl, title) {
|
|
1839
2082
|
const isExistIdx = this.tabList.findIndex((ele) => this.urlWithoutQuery(ele.url) === this.urlWithoutQuery(url));
|
|
1840
2083
|
if (isExistIdx === -1) {
|
|
1841
2084
|
const singleIdx = this.singleReuseUrls.findIndex((ele) => ele === pureUrl);
|
|
1842
2085
|
if (singleIdx !== -1) {
|
|
1843
2086
|
this.tabList = this.tabList.filter((ele) => !ele.url.includes(this.singleReuseUrls[singleIdx]));
|
|
1844
|
-
this.keepAlive.clearCache(url);
|
|
2087
|
+
this.keepAlive.clearCache(this.urlWithoutQuery(url));
|
|
1845
2088
|
this.drawer.deleteCache(url);
|
|
1846
2089
|
}
|
|
1847
2090
|
this.addTab(url, title);
|
|
1848
2091
|
}
|
|
1849
2092
|
else {
|
|
1850
|
-
|
|
1851
|
-
if (targetTabUrl !== url || noReused) {
|
|
1852
|
-
// 当缓存一致时候,但是url不一致,重新按照新的url生成tab
|
|
1853
|
-
this.closeTab(isExistIdx, true);
|
|
1854
|
-
setTimeout(() => {
|
|
1855
|
-
this.addTab(url, title);
|
|
1856
|
-
}, 30);
|
|
1857
|
-
}
|
|
1858
|
-
else {
|
|
1859
|
-
this.changeTab(this.tabList[isExistIdx], isExistIdx);
|
|
1860
|
-
}
|
|
2093
|
+
this.changeTab(this.tabList[isExistIdx], isExistIdx);
|
|
1861
2094
|
this.ref.markForCheck();
|
|
1862
2095
|
}
|
|
1863
2096
|
}
|
|
2097
|
+
onTabDrop(event) {
|
|
2098
|
+
const { previousIndex, currentIndex } = event;
|
|
2099
|
+
// 禁止拖动第一个标签页
|
|
2100
|
+
if (previousIndex === 0 || currentIndex === 0)
|
|
2101
|
+
return;
|
|
2102
|
+
const wasSelected = this.selectedTab === previousIndex;
|
|
2103
|
+
moveItemInArray(this.tabList, previousIndex, currentIndex);
|
|
2104
|
+
sessionStorage.setItem("TabCache", JSON.stringify(this.tabList));
|
|
2105
|
+
if (wasSelected) {
|
|
2106
|
+
this.selectedTab = currentIndex;
|
|
2107
|
+
}
|
|
2108
|
+
else if (previousIndex < this.selectedTab &&
|
|
2109
|
+
currentIndex >= this.selectedTab) {
|
|
2110
|
+
this.selectedTab--;
|
|
2111
|
+
}
|
|
2112
|
+
else if (previousIndex > this.selectedTab &&
|
|
2113
|
+
currentIndex <= this.selectedTab) {
|
|
2114
|
+
this.selectedTab++;
|
|
2115
|
+
}
|
|
2116
|
+
}
|
|
1864
2117
|
timer = null;
|
|
1865
2118
|
refreshTab() {
|
|
1866
2119
|
const loadingIcon = document.getElementById("loadingIcon");
|
|
@@ -1882,31 +2135,36 @@ class MultiTabComponent {
|
|
|
1882
2135
|
// });
|
|
1883
2136
|
}
|
|
1884
2137
|
clearCache(url) {
|
|
1885
|
-
this.keepAlive.clearCache(url); // 调用自定义策略的清除缓存方法
|
|
2138
|
+
this.keepAlive.clearCache(this.urlWithoutQuery(url)); // 调用自定义策略的清除缓存方法
|
|
1886
2139
|
this.drawer.deleteCache(url);
|
|
1887
2140
|
}
|
|
1888
2141
|
cleanAllCache() {
|
|
1889
2142
|
sessionStorage.removeItem("TabCache"); // 清除缓存
|
|
1890
2143
|
this.tabList = []; // 清空 tab 列表
|
|
1891
2144
|
this.selectedTab = 0; // 重置选中的 tab 索引
|
|
1892
|
-
this.subscriptions.forEach((sub) => sub.unsubscribe());
|
|
1893
2145
|
this.keepAlive.clearAllCache(); // 调用自定义策略的清除缓存方法
|
|
1894
2146
|
}
|
|
1895
2147
|
urlWithoutQuery(url) {
|
|
1896
2148
|
return url.split("?")[0];
|
|
1897
2149
|
}
|
|
1898
2150
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MultiTabComponent, deps: [{ token: i1$3.Router }, { token: CommonFunctionService }, { token: i1$3.ActivatedRoute }, { token: i0.ChangeDetectorRef }, { token: DrawerService }, { token: i1$3.RouteReuseStrategy }], target: i0.ɵɵFactoryTarget.Component });
|
|
1899
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: MultiTabComponent, selector: "rs-multi-tab", inputs: { singleReuseUrls: "singleReuseUrls", noGenerateTabUrls: "noGenerateTabUrls" }, outputs: { onRefreshTab: "onRefreshTab" }, host: { listeners: { "window:resize": "onResize($event)" } }, ngImport: i0, template: "<div class=\"rs-multi-tab\" [ngClass]=\"{ 'b-line': tabList.length > 0 }\">\r\n
|
|
2151
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: MultiTabComponent, selector: "rs-multi-tab", inputs: { singleReuseUrls: "singleReuseUrls", noGenerateTabUrls: "noGenerateTabUrls", flattenMenu: "flattenMenu", defaultTabUrl: "defaultTabUrl" }, outputs: { onRefreshTab: "onRefreshTab", onCloseTab: "onCloseTab" }, host: { listeners: { "window:resize": "onResize($event)" } }, ngImport: i0, template: "<div class=\"rs-multi-tab\" [ngClass]=\"{ 'b-line': tabList.length > 0 }\">\r\n <ul\r\n cdkDropList\r\n cdkDropListOrientation=\"horizontal\"\r\n (cdkDropListDropped)=\"onTabDrop($event)\"\r\n >\r\n <li\r\n class=\"tab-item\"\r\n *ngFor=\"let tab of tabList; let i = index\"\r\n [ngClass]=\"selectedTab === i ? 'isSelect' : 'notSelect'\"\r\n [cdkDragDisabled]=\"i === 0\"\r\n cdkDrag\r\n (click)=\"changeTab(tab, i)\"\r\n >\r\n <ng-template cdkDragPlaceholder let-item>\r\n <div class=\"placeholder\"></div>\r\n </ng-template>\r\n <ejs-tooltip\r\n id=\"notSelectTooltip\"\r\n [showTipPointer]=\"false\"\r\n [openDelay]=\"500\"\r\n *ngIf=\"tab.displayTitle !== (translation[tab.title] || tab.title) ; else originText\"\r\n style=\"height: 27px\"\r\n >\r\n <ng-template #content>\r\n <div class=\"tooltip-content\">\r\n {{ translation[tab.title] || tab.title }}\r\n </div>\r\n </ng-template>\r\n <span class=\"tabTitle\">{{ translation[tab.displayTitle] || tab.displayTitle }}</span>\r\n </ejs-tooltip>\r\n <ng-template #originText>\r\n <span class=\"tabTitle\">\r\n {{ tab.displayTitle }}\r\n </span>\r\n </ng-template>\r\n <span class=\"img-block\" *ngIf=\"selectedTab !== i && i !== 0\"></span>\r\n <img\r\n *ngIf=\"i !== 0\"\r\n src=\"../../../assets/img/close-url.svg\"\r\n (click)=\"closeTab(i)\"\r\n />\r\n </li>\r\n </ul>\r\n <div class=\"refresh-tab\" (click)=\"refreshTab()\" *ngIf=\"tabList.length > 0\">\r\n <ejs-tooltip\r\n id=\"notSelectTooltip\"\r\n cssClass=\"notSelectTooltip\"\r\n [showTipPointer]=\"false\"\r\n [openDelay]=\"500\"\r\n style=\"height: 27px\"\r\n >\r\n <ng-template #content>\r\n <div class=\"tooltip-content\">\r\n {{ translation.REFRESH_CURRENT_TAB || \".REFRESH_CURRENT_TAB\" }}\r\n </div>\r\n </ng-template>\r\n <img\r\n id=\"loadingIcon\"\r\n alt\r\n class=\"refresh-btn\"\r\n src=\"../../../assets/img/desktop-refresh-btn.svg\"\r\n />\r\n </ejs-tooltip>\r\n </div>\r\n</div>\r\n", styles: ["@charset \"UTF-8\";.rs-multi-tab{width:100%;display:flex;justify-content:space-between;margin:0 auto;max-width:1886px}.rs-multi-tab.b-line{border-bottom:1px solid #e5eaef}.rs-multi-tab ul{display:flex;margin:0 8px;padding:0;overflow:hidden;height:100%}.rs-multi-tab ul .tab-item{max-width:164px;padding:0 12px;display:flex;align-items:center;flex:auto;border:1px solid #e5eaef;border-bottom:none;color:#5f6f81;font-family:Arial;font-size:11px;font-style:normal;font-weight:400;line-height:28px;height:28px;background:#f8fafb;vertical-align:top;position:relative;cursor:default}.rs-multi-tab ul .tab-item .tabTitle{display:inline-block;white-space:nowrap;font-size:11px;font-family:Arial;font-style:normal;font-weight:400;line-height:16px;transition:width .3s ease}.rs-multi-tab ul .tab-item img{border-radius:4px;padding:4px;margin-left:6px;margin-top:1px;vertical-align:top;cursor:pointer}.rs-multi-tab ul .tab-item img:hover{background:#dce8f6}.rs-multi-tab ul .tab-item:not(:last-child){border-right:none}.rs-multi-tab ul .tab-item:first-of-type{border-top-left-radius:8px}.rs-multi-tab ul .tab-item:last-child{border-top-right-radius:8px}.rs-multi-tab ul.cdk-drop-list-dragging .tab-item.cdk-drag-disabled:hover{background:#f8fafb!important;cursor:no-drop}.rs-multi-tab ul .isSelect{color:#1f3f5c;background:#fff}.rs-multi-tab ul .notSelect img{display:none}.rs-multi-tab ul .notSelect .img-block{display:inline-block;width:22px}.rs-multi-tab ul .notSelect:hover{color:#1f3f5c;background-color:#1f7bff0a}.rs-multi-tab ul .notSelect:hover .img-block{display:none}.rs-multi-tab ul .notSelect:hover img{display:inline-block}.rs-multi-tab .refresh-tab{cursor:pointer;text-align:right;color:#6c7c90;font-family:Arial;font-size:11px;font-style:normal;font-weight:400;line-height:28px;padding-right:12px}.rs-multi-tab .refresh-tab img{vertical-align:middle;margin-right:4px}.refresh-tab-loading{animation:spin 1s linear infinite}.notSelectTooltip{transform:translate(-12px)}.tab-item.cdk-drag{max-width:164px;padding:0 12px;display:flex;align-items:center;flex:auto;border:1px solid #e5eaef;border-bottom:none;color:#5f6f81;font-family:Arial;font-size:11px;font-style:normal;font-weight:400;line-height:28px;height:28px;background:#f8fafb;vertical-align:top;position:relative;cursor:default}.tab-item.cdk-drag .tabTitle{display:inline-block;white-space:nowrap;font-size:11px;font-family:Arial;font-style:normal;font-weight:400;line-height:16px;transition:width .3s ease}.tab-item.cdk-drag img{border-radius:4px;padding:4px;margin-left:6px;margin-top:1px;vertical-align:top;cursor:pointer}.tab-item.cdk-drag img:hover{background:#dce8f6}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.tooltip-content{padding:4px;color:#f8fafb;font-family:Arial;font-size:11px;font-style:normal;font-weight:400;line-height:14px;width:-moz-fit-content;width:fit-content;white-space:nowrap}@media (max-width: 1400px){.refresh-tab{padding-right:0!important}.refresh-tab span{display:none!important}}@media (max-width: 1100px){.rs-multi-tab ul .tab-item img{position:absolute;right:3px;background-color:#fff}.notSelect:hover img{position:absolute;right:3px;background-color:#eff5fb}.img-block{display:none!important}.isSelect:not(:first-child){padding-right:20px!important}}@media (max-width: 600px){.rs-multi-tab ul .tab-item{padding:0 8px}.rs-multi-tab ul .notSelect .img-block{width:0px!important}}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i5.CdkDropList, selector: "[cdkDropList], cdk-drop-list", inputs: ["cdkDropListConnectedTo", "cdkDropListData", "cdkDropListOrientation", "id", "cdkDropListLockAxis", "cdkDropListDisabled", "cdkDropListSortingDisabled", "cdkDropListEnterPredicate", "cdkDropListSortPredicate", "cdkDropListAutoScrollDisabled", "cdkDropListAutoScrollStep"], outputs: ["cdkDropListDropped", "cdkDropListEntered", "cdkDropListExited", "cdkDropListSorted"], exportAs: ["cdkDropList"] }, { kind: "directive", type: i5.CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { kind: "directive", type: i5.CdkDragPlaceholder, selector: "ng-template[cdkDragPlaceholder]", inputs: ["data"] }, { kind: "component", type: i5$1.TooltipComponent, selector: "ejs-tooltip", inputs: ["animation", "closeDelay", "container", "content", "cssClass", "enableHtmlParse", "enableHtmlSanitizer", "enablePersistence", "enableRtl", "height", "htmlAttributes", "isSticky", "locale", "mouseTrail", "offsetX", "offsetY", "openDelay", "opensOn", "position", "showTipPointer", "target", "tipPointerPosition", "width", "windowCollision"], outputs: ["afterClose", "afterOpen", "beforeClose", "beforeCollision", "beforeOpen", "beforeRender", "created", "destroyed"] }] });
|
|
1900
2152
|
}
|
|
1901
2153
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MultiTabComponent, decorators: [{
|
|
1902
2154
|
type: Component,
|
|
1903
|
-
args: [{ selector: "rs-multi-tab", template: "<div class=\"rs-multi-tab\" [ngClass]=\"{ 'b-line': tabList.length > 0 }\">\r\n
|
|
2155
|
+
args: [{ selector: "rs-multi-tab", template: "<div class=\"rs-multi-tab\" [ngClass]=\"{ 'b-line': tabList.length > 0 }\">\r\n <ul\r\n cdkDropList\r\n cdkDropListOrientation=\"horizontal\"\r\n (cdkDropListDropped)=\"onTabDrop($event)\"\r\n >\r\n <li\r\n class=\"tab-item\"\r\n *ngFor=\"let tab of tabList; let i = index\"\r\n [ngClass]=\"selectedTab === i ? 'isSelect' : 'notSelect'\"\r\n [cdkDragDisabled]=\"i === 0\"\r\n cdkDrag\r\n (click)=\"changeTab(tab, i)\"\r\n >\r\n <ng-template cdkDragPlaceholder let-item>\r\n <div class=\"placeholder\"></div>\r\n </ng-template>\r\n <ejs-tooltip\r\n id=\"notSelectTooltip\"\r\n [showTipPointer]=\"false\"\r\n [openDelay]=\"500\"\r\n *ngIf=\"tab.displayTitle !== (translation[tab.title] || tab.title) ; else originText\"\r\n style=\"height: 27px\"\r\n >\r\n <ng-template #content>\r\n <div class=\"tooltip-content\">\r\n {{ translation[tab.title] || tab.title }}\r\n </div>\r\n </ng-template>\r\n <span class=\"tabTitle\">{{ translation[tab.displayTitle] || tab.displayTitle }}</span>\r\n </ejs-tooltip>\r\n <ng-template #originText>\r\n <span class=\"tabTitle\">\r\n {{ tab.displayTitle }}\r\n </span>\r\n </ng-template>\r\n <span class=\"img-block\" *ngIf=\"selectedTab !== i && i !== 0\"></span>\r\n <img\r\n *ngIf=\"i !== 0\"\r\n src=\"../../../assets/img/close-url.svg\"\r\n (click)=\"closeTab(i)\"\r\n />\r\n </li>\r\n </ul>\r\n <div class=\"refresh-tab\" (click)=\"refreshTab()\" *ngIf=\"tabList.length > 0\">\r\n <ejs-tooltip\r\n id=\"notSelectTooltip\"\r\n cssClass=\"notSelectTooltip\"\r\n [showTipPointer]=\"false\"\r\n [openDelay]=\"500\"\r\n style=\"height: 27px\"\r\n >\r\n <ng-template #content>\r\n <div class=\"tooltip-content\">\r\n {{ translation.REFRESH_CURRENT_TAB || \".REFRESH_CURRENT_TAB\" }}\r\n </div>\r\n </ng-template>\r\n <img\r\n id=\"loadingIcon\"\r\n alt\r\n class=\"refresh-btn\"\r\n src=\"../../../assets/img/desktop-refresh-btn.svg\"\r\n />\r\n </ejs-tooltip>\r\n </div>\r\n</div>\r\n", styles: ["@charset \"UTF-8\";.rs-multi-tab{width:100%;display:flex;justify-content:space-between;margin:0 auto;max-width:1886px}.rs-multi-tab.b-line{border-bottom:1px solid #e5eaef}.rs-multi-tab ul{display:flex;margin:0 8px;padding:0;overflow:hidden;height:100%}.rs-multi-tab ul .tab-item{max-width:164px;padding:0 12px;display:flex;align-items:center;flex:auto;border:1px solid #e5eaef;border-bottom:none;color:#5f6f81;font-family:Arial;font-size:11px;font-style:normal;font-weight:400;line-height:28px;height:28px;background:#f8fafb;vertical-align:top;position:relative;cursor:default}.rs-multi-tab ul .tab-item .tabTitle{display:inline-block;white-space:nowrap;font-size:11px;font-family:Arial;font-style:normal;font-weight:400;line-height:16px;transition:width .3s ease}.rs-multi-tab ul .tab-item img{border-radius:4px;padding:4px;margin-left:6px;margin-top:1px;vertical-align:top;cursor:pointer}.rs-multi-tab ul .tab-item img:hover{background:#dce8f6}.rs-multi-tab ul .tab-item:not(:last-child){border-right:none}.rs-multi-tab ul .tab-item:first-of-type{border-top-left-radius:8px}.rs-multi-tab ul .tab-item:last-child{border-top-right-radius:8px}.rs-multi-tab ul.cdk-drop-list-dragging .tab-item.cdk-drag-disabled:hover{background:#f8fafb!important;cursor:no-drop}.rs-multi-tab ul .isSelect{color:#1f3f5c;background:#fff}.rs-multi-tab ul .notSelect img{display:none}.rs-multi-tab ul .notSelect .img-block{display:inline-block;width:22px}.rs-multi-tab ul .notSelect:hover{color:#1f3f5c;background-color:#1f7bff0a}.rs-multi-tab ul .notSelect:hover .img-block{display:none}.rs-multi-tab ul .notSelect:hover img{display:inline-block}.rs-multi-tab .refresh-tab{cursor:pointer;text-align:right;color:#6c7c90;font-family:Arial;font-size:11px;font-style:normal;font-weight:400;line-height:28px;padding-right:12px}.rs-multi-tab .refresh-tab img{vertical-align:middle;margin-right:4px}.refresh-tab-loading{animation:spin 1s linear infinite}.notSelectTooltip{transform:translate(-12px)}.tab-item.cdk-drag{max-width:164px;padding:0 12px;display:flex;align-items:center;flex:auto;border:1px solid #e5eaef;border-bottom:none;color:#5f6f81;font-family:Arial;font-size:11px;font-style:normal;font-weight:400;line-height:28px;height:28px;background:#f8fafb;vertical-align:top;position:relative;cursor:default}.tab-item.cdk-drag .tabTitle{display:inline-block;white-space:nowrap;font-size:11px;font-family:Arial;font-style:normal;font-weight:400;line-height:16px;transition:width .3s ease}.tab-item.cdk-drag img{border-radius:4px;padding:4px;margin-left:6px;margin-top:1px;vertical-align:top;cursor:pointer}.tab-item.cdk-drag img:hover{background:#dce8f6}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.tooltip-content{padding:4px;color:#f8fafb;font-family:Arial;font-size:11px;font-style:normal;font-weight:400;line-height:14px;width:-moz-fit-content;width:fit-content;white-space:nowrap}@media (max-width: 1400px){.refresh-tab{padding-right:0!important}.refresh-tab span{display:none!important}}@media (max-width: 1100px){.rs-multi-tab ul .tab-item img{position:absolute;right:3px;background-color:#fff}.notSelect:hover img{position:absolute;right:3px;background-color:#eff5fb}.img-block{display:none!important}.isSelect:not(:first-child){padding-right:20px!important}}@media (max-width: 600px){.rs-multi-tab ul .tab-item{padding:0 8px}.rs-multi-tab ul .notSelect .img-block{width:0px!important}}\n"] }]
|
|
1904
2156
|
}], ctorParameters: function () { return [{ type: i1$3.Router }, { type: CommonFunctionService }, { type: i1$3.ActivatedRoute }, { type: i0.ChangeDetectorRef }, { type: DrawerService }, { type: i1$3.RouteReuseStrategy }]; }, propDecorators: { singleReuseUrls: [{
|
|
1905
2157
|
type: Input
|
|
1906
2158
|
}], noGenerateTabUrls: [{
|
|
1907
2159
|
type: Input
|
|
2160
|
+
}], flattenMenu: [{
|
|
2161
|
+
type: Input
|
|
2162
|
+
}], defaultTabUrl: [{
|
|
2163
|
+
type: Input
|
|
1908
2164
|
}], onRefreshTab: [{
|
|
1909
2165
|
type: Output
|
|
2166
|
+
}], onCloseTab: [{
|
|
2167
|
+
type: Output
|
|
1910
2168
|
}], onResize: [{
|
|
1911
2169
|
type: HostListener,
|
|
1912
2170
|
args: ["window:resize", ["$event"]]
|
|
@@ -1915,6 +2173,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
1915
2173
|
class DrawerComponent {
|
|
1916
2174
|
resolver;
|
|
1917
2175
|
service;
|
|
2176
|
+
ref;
|
|
1918
2177
|
element;
|
|
1919
2178
|
drawer;
|
|
1920
2179
|
header;
|
|
@@ -1924,13 +2183,14 @@ class DrawerComponent {
|
|
|
1924
2183
|
topSlot;
|
|
1925
2184
|
container;
|
|
1926
2185
|
config = DefaultDrawerConfig;
|
|
1927
|
-
|
|
1928
|
-
|
|
2186
|
+
useAnimation = "yes";
|
|
2187
|
+
isOpened = false;
|
|
1929
2188
|
hiddenDrawer = true;
|
|
1930
2189
|
componentRefMap = new Map();
|
|
1931
|
-
constructor(resolver, service) {
|
|
2190
|
+
constructor(resolver, service, ref) {
|
|
1932
2191
|
this.resolver = resolver;
|
|
1933
2192
|
this.service = service;
|
|
2193
|
+
this.ref = ref;
|
|
1934
2194
|
}
|
|
1935
2195
|
createDynamicComponent(component) {
|
|
1936
2196
|
// 确保在调用之前目标组件已经在entryComponents中声明
|
|
@@ -1975,6 +2235,15 @@ class DrawerComponent {
|
|
|
1975
2235
|
this.drawer.nativeElement.insertBefore(this.header.nativeElement, this.drawer.nativeElement.firstChild);
|
|
1976
2236
|
this.header.nativeElement.append(this.toolbarSlot.nativeElement);
|
|
1977
2237
|
}
|
|
2238
|
+
this.config = cache.config;
|
|
2239
|
+
this.ref.markForCheck();
|
|
2240
|
+
}
|
|
2241
|
+
setConfig(config) {
|
|
2242
|
+
const cache = this.componentRefMap.get(this.service.cacheKey);
|
|
2243
|
+
if (cache) {
|
|
2244
|
+
cache.config = { ...cache.config, ...config };
|
|
2245
|
+
this.setCache(cache);
|
|
2246
|
+
}
|
|
1978
2247
|
}
|
|
1979
2248
|
show(component, config, data) {
|
|
1980
2249
|
const showConfig = { ...DefaultDrawerConfig, ...config };
|
|
@@ -1992,7 +2261,6 @@ class DrawerComponent {
|
|
|
1992
2261
|
this.setComponentData(componentRef, data);
|
|
1993
2262
|
this.componentRefMap.set(this.service.cacheKey, cache);
|
|
1994
2263
|
this.setCache(cache);
|
|
1995
|
-
this.config = showConfig;
|
|
1996
2264
|
this.toggleOpenStatus(true, true);
|
|
1997
2265
|
return componentRef.instance;
|
|
1998
2266
|
}
|
|
@@ -2017,32 +2285,33 @@ class DrawerComponent {
|
|
|
2017
2285
|
const cache = this.componentRefMap.get(this.service.cacheKey);
|
|
2018
2286
|
if (cache) {
|
|
2019
2287
|
cache.ref.location.nativeElement.style.display = "";
|
|
2020
|
-
this.config = cache.config;
|
|
2021
2288
|
this.setCache(cache);
|
|
2022
2289
|
this.toggleOpenStatus(true);
|
|
2023
2290
|
}
|
|
2024
2291
|
else {
|
|
2025
2292
|
this.toggleOpenStatus(false);
|
|
2026
2293
|
}
|
|
2027
|
-
this.
|
|
2294
|
+
this.useAnimation = "no";
|
|
2028
2295
|
}
|
|
2029
|
-
toggleOpenStatus(isOpen,
|
|
2030
|
-
this
|
|
2031
|
-
this.
|
|
2032
|
-
this.hiddenDrawer = !isOpen && !
|
|
2296
|
+
toggleOpenStatus(isOpen, useAnimation = false) {
|
|
2297
|
+
this.isOpened = isOpen;
|
|
2298
|
+
this.useAnimation = useAnimation ? "yes" : "no";
|
|
2299
|
+
this.hiddenDrawer = !isOpen && !useAnimation;
|
|
2300
|
+
this.ref.markForCheck();
|
|
2033
2301
|
}
|
|
2034
|
-
|
|
2035
|
-
if (!this
|
|
2302
|
+
onAnimationEnd() {
|
|
2303
|
+
if (!this.isOpened) {
|
|
2036
2304
|
this.hiddenDrawer = true;
|
|
2305
|
+
this.ref.markForCheck();
|
|
2037
2306
|
}
|
|
2038
2307
|
}
|
|
2039
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DrawerComponent, deps: [{ token: i0.ComponentFactoryResolver }, { token: DrawerService }], target: i0.ɵɵFactoryTarget.Component });
|
|
2040
|
-
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]=\"
|
|
2308
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DrawerComponent, deps: [{ token: i0.ComponentFactoryResolver }, { token: DrawerService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
2309
|
+
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 ? 'yes' : 'no'\"\r\n [attr.data-animation]=\"useAnimation\"\r\n [hidden]=\"hiddenDrawer\"\r\n (animationend)=\"onAnimationEnd()\"\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-animation=yes][data-opened=yes]{animation:drawer-open ease-in-out .5s}@keyframes drawer-open{0%{left:100%;opacity:0}to{left:0;opacity:1}}.rs-drawer-container .rs-drawer[data-animation=yes][data-opened=no]{animation:drawer-close ease-in-out .5s}@keyframes drawer-close{0%{left:0;opacity:1}to{left:100%;opacity:0}}.rs-drawer-container .rs-drawer[hidden]{display:none}.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: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
|
|
2041
2310
|
}
|
|
2042
2311
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DrawerComponent, decorators: [{
|
|
2043
2312
|
type: Component,
|
|
2044
|
-
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]=\"
|
|
2045
|
-
}], ctorParameters: function () { return [{ type: i0.ComponentFactoryResolver }, { type: DrawerService }]; }, propDecorators: { element: [{
|
|
2313
|
+
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 ? 'yes' : 'no'\"\r\n [attr.data-animation]=\"useAnimation\"\r\n [hidden]=\"hiddenDrawer\"\r\n (animationend)=\"onAnimationEnd()\"\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-animation=yes][data-opened=yes]{animation:drawer-open ease-in-out .5s}@keyframes drawer-open{0%{left:100%;opacity:0}to{left:0;opacity:1}}.rs-drawer-container .rs-drawer[data-animation=yes][data-opened=no]{animation:drawer-close ease-in-out .5s}@keyframes drawer-close{0%{left:0;opacity:1}to{left:100%;opacity:0}}.rs-drawer-container .rs-drawer[hidden]{display:none}.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"] }]
|
|
2314
|
+
}], ctorParameters: function () { return [{ type: i0.ComponentFactoryResolver }, { type: DrawerService }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { element: [{
|
|
2046
2315
|
type: ViewChild,
|
|
2047
2316
|
args: ["element", { static: false }]
|
|
2048
2317
|
}], drawer: [{
|
|
@@ -2109,6 +2378,7 @@ class ToolbarItemComponent {
|
|
|
2109
2378
|
text;
|
|
2110
2379
|
disabled;
|
|
2111
2380
|
children = [];
|
|
2381
|
+
hideArrow = false;
|
|
2112
2382
|
disabledOptions = {};
|
|
2113
2383
|
buttonElement;
|
|
2114
2384
|
get hostDisabled() {
|
|
@@ -2121,19 +2391,41 @@ class ToolbarItemComponent {
|
|
|
2121
2391
|
ImageType = [
|
|
2122
2392
|
"Add",
|
|
2123
2393
|
"Delete",
|
|
2394
|
+
"Update",
|
|
2124
2395
|
"Import",
|
|
2125
2396
|
"Export",
|
|
2126
2397
|
"Upload",
|
|
2127
2398
|
"Download",
|
|
2128
2399
|
"Duplicate",
|
|
2129
2400
|
"Refresh",
|
|
2401
|
+
"AddFolder",
|
|
2402
|
+
"Collapse",
|
|
2403
|
+
"Combine",
|
|
2404
|
+
"Edit",
|
|
2405
|
+
"Lock",
|
|
2406
|
+
"Expand",
|
|
2407
|
+
"MoveTo",
|
|
2408
|
+
"Publish",
|
|
2409
|
+
"Preview",
|
|
2410
|
+
"ReCalculate",
|
|
2411
|
+
"Sync",
|
|
2412
|
+
"Share",
|
|
2413
|
+
"Rename",
|
|
2414
|
+
"SaveSequence",
|
|
2415
|
+
"SubmitForApproval",
|
|
2416
|
+
"SendToControlPanel",
|
|
2417
|
+
"SetReminders",
|
|
2418
|
+
"Settle",
|
|
2419
|
+
"Template",
|
|
2420
|
+
"Workflow",
|
|
2421
|
+
"FetchData",
|
|
2130
2422
|
];
|
|
2131
2423
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ToolbarItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
2132
|
-
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
|
|
2424
|
+
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", hideArrow: "hideArrow", 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\" *ngIf=\"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\" *ngIf=\"image\" [attr.data-type]=\"image\">\r\n <img *ngIf=\"!ImageType.includes(image)\" [src]=\"image\" />\r\n </span>\r\n <span>{{ text }}</span>\r\n <span class=\"toolbar-action-arrow\" *ngIf=\"!hideArrow\">\r\n <img src=\"assets/img/down-arrow.svg\" />\r\n </span>\r\n</button>\r\n<mat-menu #menu=\"matMenu\" class=\"toolbar-action-menu-content\">\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\r\n class=\"toolbar-action-image\"\r\n *ngIf=\"button.image\"\r\n [attr.data-type]=\"button.image\"\r\n >\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{padding:4px 8px;font-size:11px!important;min-width:100px;font-size:11px}.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}.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[data-type=AddFolder]:before{content:url(/assets/img/toolbar-action-addFolder.svg)}.toolbar-action-item .toolbar-action-image[data-type=Collapse]:before{content:url(/assets/img/toolbar-action-collapse.svg)}.toolbar-action-item .toolbar-action-image[data-type=Combine]:before{content:url(/assets/img/toolbar-action-combine.svg)}.toolbar-action-item .toolbar-action-image[data-type=Edit]:before{content:url(/assets/img/toolbar-action-edit.svg)}.toolbar-action-item .toolbar-action-image[data-type=Lock]:before{content:url(/assets/img/toolbar-action-lock.svg)}.toolbar-action-item .toolbar-action-image[data-type=Expand]:before{content:url(/assets/img/toolbar-action-expand.svg)}.toolbar-action-item .toolbar-action-image[data-type=MoveTo]:before{content:url(/assets/img/toolbar-action-folderMove.svg)}.toolbar-action-item .toolbar-action-image[data-type=Publish]:before{content:url(/assets/img/toolbar-action-publish.svg)}.toolbar-action-item .toolbar-action-image[data-type=Preview]:before{content:url(/assets/img/toolbar-action-preview.svg)}.toolbar-action-item .toolbar-action-image[data-type=ReCalculate]:before{content:url(/assets/img/toolbar-action-calculator.svg)}.toolbar-action-item .toolbar-action-image[data-type=Sync]:before{content:url(/assets/img/toolbar-action-sync.svg)}.toolbar-action-item .toolbar-action-image[data-type=Share]:before{content:url(/assets/img/toolbar-action-share.svg)}.toolbar-action-item .toolbar-action-image[data-type=Rename]:before{content:url(/assets/img/toolbar-action-rename.svg)}.toolbar-action-item .toolbar-action-image[data-type=SaveSequence]:before{content:url(/assets/img/toolbar-action-saveSequence.svg)}.toolbar-action-item .toolbar-action-image[data-type=SubmitForApproval]:before{content:url(/assets/img/toolbar-action-submitForApproval.svg)}.toolbar-action-item .toolbar-action-image[data-type=SendToControlPanel]:before{content:url(/assets/img/toolbar-action-send-file.svg)}.toolbar-action-item .toolbar-action-image[data-type=SetReminders]:before{content:url(/assets/img/toolbar-action-reminders.svg)}.toolbar-action-item .toolbar-action-image[data-type=Settle]:before{content:url(/assets/img/toolbar-action-settle.svg)}.toolbar-action-item .toolbar-action-image[data-type=Template]:before{content:url(/assets/img/toolbar-action-template.svg)}.toolbar-action-item .toolbar-action-image[data-type=Workflow]:before{content:url(/assets/img/toolbar-action-workflow.svg)}.toolbar-action-item .toolbar-action-image[data-type=Update]:before{content:url(/assets/img/toolbar-action-update.svg)}.toolbar-action-item .toolbar-action-image[data-type=FetchData]:before{content:url(/assets/img/toolbar-action-fetchData.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.mat-menu-item:after{display:none}.toolbar-action-item ::ng-deep .mat-mdc-menu-item-text{font-family:var(--rs-font-family);display:flex;justify-content:center;align-items:center;gap:6px;font-style:normal;background:transparent!important;color:var(--rs-cancel-btn-color)!important;height:24px!important;min-width:auto!important;font-size:12px;border-radius:4px;box-shadow:none!important;line-height:normal}\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$1.MatMenu, selector: "mat-menu", exportAs: ["matMenu"] }, { kind: "component", type: i2$1.MatMenuItem, selector: "[mat-menu-item]", inputs: ["disabled", "disableRipple", "role"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i2$1.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", exportAs: ["matMenuTrigger"] }] });
|
|
2133
2425
|
}
|
|
2134
2426
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ToolbarItemComponent, decorators: [{
|
|
2135
2427
|
type: Component,
|
|
2136
|
-
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
|
|
2428
|
+
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\" *ngIf=\"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\" *ngIf=\"image\" [attr.data-type]=\"image\">\r\n <img *ngIf=\"!ImageType.includes(image)\" [src]=\"image\" />\r\n </span>\r\n <span>{{ text }}</span>\r\n <span class=\"toolbar-action-arrow\" *ngIf=\"!hideArrow\">\r\n <img src=\"assets/img/down-arrow.svg\" />\r\n </span>\r\n</button>\r\n<mat-menu #menu=\"matMenu\" class=\"toolbar-action-menu-content\">\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\r\n class=\"toolbar-action-image\"\r\n *ngIf=\"button.image\"\r\n [attr.data-type]=\"button.image\"\r\n >\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{padding:4px 8px;font-size:11px!important;min-width:100px;font-size:11px}.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}.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[data-type=AddFolder]:before{content:url(/assets/img/toolbar-action-addFolder.svg)}.toolbar-action-item .toolbar-action-image[data-type=Collapse]:before{content:url(/assets/img/toolbar-action-collapse.svg)}.toolbar-action-item .toolbar-action-image[data-type=Combine]:before{content:url(/assets/img/toolbar-action-combine.svg)}.toolbar-action-item .toolbar-action-image[data-type=Edit]:before{content:url(/assets/img/toolbar-action-edit.svg)}.toolbar-action-item .toolbar-action-image[data-type=Lock]:before{content:url(/assets/img/toolbar-action-lock.svg)}.toolbar-action-item .toolbar-action-image[data-type=Expand]:before{content:url(/assets/img/toolbar-action-expand.svg)}.toolbar-action-item .toolbar-action-image[data-type=MoveTo]:before{content:url(/assets/img/toolbar-action-folderMove.svg)}.toolbar-action-item .toolbar-action-image[data-type=Publish]:before{content:url(/assets/img/toolbar-action-publish.svg)}.toolbar-action-item .toolbar-action-image[data-type=Preview]:before{content:url(/assets/img/toolbar-action-preview.svg)}.toolbar-action-item .toolbar-action-image[data-type=ReCalculate]:before{content:url(/assets/img/toolbar-action-calculator.svg)}.toolbar-action-item .toolbar-action-image[data-type=Sync]:before{content:url(/assets/img/toolbar-action-sync.svg)}.toolbar-action-item .toolbar-action-image[data-type=Share]:before{content:url(/assets/img/toolbar-action-share.svg)}.toolbar-action-item .toolbar-action-image[data-type=Rename]:before{content:url(/assets/img/toolbar-action-rename.svg)}.toolbar-action-item .toolbar-action-image[data-type=SaveSequence]:before{content:url(/assets/img/toolbar-action-saveSequence.svg)}.toolbar-action-item .toolbar-action-image[data-type=SubmitForApproval]:before{content:url(/assets/img/toolbar-action-submitForApproval.svg)}.toolbar-action-item .toolbar-action-image[data-type=SendToControlPanel]:before{content:url(/assets/img/toolbar-action-send-file.svg)}.toolbar-action-item .toolbar-action-image[data-type=SetReminders]:before{content:url(/assets/img/toolbar-action-reminders.svg)}.toolbar-action-item .toolbar-action-image[data-type=Settle]:before{content:url(/assets/img/toolbar-action-settle.svg)}.toolbar-action-item .toolbar-action-image[data-type=Template]:before{content:url(/assets/img/toolbar-action-template.svg)}.toolbar-action-item .toolbar-action-image[data-type=Workflow]:before{content:url(/assets/img/toolbar-action-workflow.svg)}.toolbar-action-item .toolbar-action-image[data-type=Update]:before{content:url(/assets/img/toolbar-action-update.svg)}.toolbar-action-item .toolbar-action-image[data-type=FetchData]:before{content:url(/assets/img/toolbar-action-fetchData.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.mat-menu-item:after{display:none}.toolbar-action-item ::ng-deep .mat-mdc-menu-item-text{font-family:var(--rs-font-family);display:flex;justify-content:center;align-items:center;gap:6px;font-style:normal;background:transparent!important;color:var(--rs-cancel-btn-color)!important;height:24px!important;min-width:auto!important;font-size:12px;border-radius:4px;box-shadow:none!important;line-height:normal}\n"] }]
|
|
2137
2429
|
}], propDecorators: { image: [{
|
|
2138
2430
|
type: Input,
|
|
2139
2431
|
args: ["image"]
|
|
@@ -2146,6 +2438,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
2146
2438
|
}], children: [{
|
|
2147
2439
|
type: Input,
|
|
2148
2440
|
args: ["children"]
|
|
2441
|
+
}], hideArrow: [{
|
|
2442
|
+
type: Input,
|
|
2443
|
+
args: ["hideArrow"]
|
|
2149
2444
|
}], disabledOptions: [{
|
|
2150
2445
|
type: Input
|
|
2151
2446
|
}], buttonElement: [{
|
|
@@ -2208,7 +2503,7 @@ class RSToolbarComponent {
|
|
|
2208
2503
|
this.updateButtonVisibility();
|
|
2209
2504
|
}
|
|
2210
2505
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: RSToolbarComponent, deps: [{ token: i1$3.Router }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
2211
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: RSToolbarComponent, selector: "rs-toolbar", inputs: { buttons: "buttons", disabledOptions: "disabledOptions" }, host: { listeners: { "window:resize": "onWindowResize()" } }, viewQueries: [{ propertyName: "toolbarContainer", first: true, predicate: ["toolbarContainer"], descendants: true }, { propertyName: "buttonElements", predicate: ["toolbarItem"], descendants: true }], ngImport: i0, template: "<div #toolbarContainer class=\"rs-toolbar-container\">\r\n <!-- \u53EF\u89C1\u6309\u94AE -->\r\n <ng-container *ngFor=\"let button of buttons\">\r\n <div class=\"temp-hidden\" #toolbarItem>\r\n <rs-toolbar-item\r\n [image]=\"button.image\"\r\n [text]=\"button.text\"\r\n [disabled]=\"(button.key && disabledOptions[button.key]) || false\"\r\n (click)=\"button.action && button.action()\"\r\n [children]=\"button.children || []\"\r\n [disabledOptions]=\"disabledOptions\"\r\n >\r\n </rs-toolbar-item>\r\n </div>\r\n </ng-container>\r\n\r\n <!-- \u4E0B\u62C9\u83DC\u5355\uFF08\u5982\u679C\u6709\u9690\u85CF\u6309\u94AE\uFF09 -->\r\n <button\r\n *ngIf=\"hiddenButtons.length > 0\"\r\n mat-button\r\n [matMenuTriggerFor]=\"menu\"\r\n #menuTrigger=\"matMenuTrigger\"\r\n class=\"action-toggle\"\r\n >\r\n <mat-icon svgIcon=\"more\"></mat-icon>\r\n </button>\r\n\r\n <mat-menu #menu=\"matMenu\">\r\n <ng-container *ngFor=\"let button of hiddenButtons\">\r\n <rs-toolbar-item\r\n [image]=\"button.image\"\r\n [text]=\"button.text\"\r\n (click)=\"button.action && button.action()\"\r\n [disabled]=\"disabledOptions[button.key] || false\"\r\n [children]=\"button.children || []\"\r\n [disabledOptions]=\"disabledOptions\"\r\n >\r\n </rs-toolbar-item>\r\n </ng-container>\r\n </mat-menu>\r\n</div>\r\n", styles: [":host{display:block;width:100%}.rs-toolbar-container{width:100%;display:flex;align-items:center}.rs-toolbar-container .temp-hidden{visibility:hidden;position:absolute}.rs-toolbar-container .action-toggle{width:24px;height:24px;min-width:24px;max-width:24px;padding:0;border-radius:4px;display:flex;flex-flow:row nowrap;justify-content:center;align-items:center;background:transparent}.rs-toolbar-container .action-toggle:hover{background:#d6e3f533}.rs-toolbar-container .action-toggle .mat-button-wrapper{max-height:24px;height:24px}.rs-toolbar-container .action-toggle ::ng-deep .mat-icon{width:16px;height:16px;display:flex;flex-flow:row nowrap;justify-content:center;align-items:center}\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$1.MatMenu, selector: "mat-menu", exportAs: ["matMenu"] }, { kind: "directive", type: i2$1.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", exportAs: ["matMenuTrigger"] }, { kind: "component", type:
|
|
2506
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: RSToolbarComponent, selector: "rs-toolbar", inputs: { buttons: "buttons", disabledOptions: "disabledOptions" }, host: { listeners: { "window:resize": "onWindowResize()" } }, viewQueries: [{ propertyName: "toolbarContainer", first: true, predicate: ["toolbarContainer"], descendants: true }, { propertyName: "buttonElements", predicate: ["toolbarItem"], descendants: true }], ngImport: i0, template: "<div #toolbarContainer class=\"rs-toolbar-container\">\r\n <!-- \u53EF\u89C1\u6309\u94AE -->\r\n <ng-container *ngFor=\"let button of buttons\">\r\n <div class=\"temp-hidden\" #toolbarItem>\r\n <rs-toolbar-item\r\n [image]=\"button.image\"\r\n [text]=\"button.text\"\r\n [disabled]=\"(button.key && disabledOptions[button.key]) || false\"\r\n (click)=\"button.action && button.action()\"\r\n [children]=\"button.children || []\"\r\n [disabledOptions]=\"disabledOptions\"\r\n >\r\n </rs-toolbar-item>\r\n </div>\r\n </ng-container>\r\n\r\n <!-- \u4E0B\u62C9\u83DC\u5355\uFF08\u5982\u679C\u6709\u9690\u85CF\u6309\u94AE\uFF09 -->\r\n <button\r\n *ngIf=\"hiddenButtons.length > 0\"\r\n mat-button\r\n [matMenuTriggerFor]=\"menu\"\r\n #menuTrigger=\"matMenuTrigger\"\r\n class=\"action-toggle\"\r\n >\r\n <mat-icon svgIcon=\"more\"></mat-icon>\r\n </button>\r\n\r\n <mat-menu #menu=\"matMenu\">\r\n <ng-container *ngFor=\"let button of hiddenButtons\">\r\n <rs-toolbar-item\r\n [image]=\"button.image\"\r\n [text]=\"button.text\"\r\n (click)=\"button.action && button.action()\"\r\n [disabled]=\"disabledOptions[button.key] || false\"\r\n [children]=\"button.children || []\"\r\n [disabledOptions]=\"disabledOptions\"\r\n >\r\n </rs-toolbar-item>\r\n </ng-container>\r\n </mat-menu>\r\n</div>\r\n", styles: [":host{display:block;width:100%}.rs-toolbar-container{width:100%;display:flex;align-items:center}.rs-toolbar-container .temp-hidden{visibility:hidden;position:absolute}.rs-toolbar-container .action-toggle{width:24px;height:24px;min-width:24px;max-width:24px;padding:0;border-radius:4px;display:flex;flex-flow:row nowrap;justify-content:center;align-items:center;background:transparent}.rs-toolbar-container .action-toggle:hover{background:#d6e3f533}.rs-toolbar-container .action-toggle .mat-button-wrapper{max-height:24px;height:24px}.rs-toolbar-container .action-toggle ::ng-deep .mat-icon{width:16px;height:16px;display:flex;flex-flow:row nowrap;justify-content:center;align-items:center}\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$1.MatMenu, selector: "mat-menu", exportAs: ["matMenu"] }, { kind: "directive", type: i2$1.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", exportAs: ["matMenuTrigger"] }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: ToolbarItemComponent, selector: "rs-toolbar-item", inputs: ["image", "text", "disabled", "children", "hideArrow", "disabledOptions"] }] });
|
|
2212
2507
|
}
|
|
2213
2508
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: RSToolbarComponent, decorators: [{
|
|
2214
2509
|
type: Component,
|
|
@@ -18827,6 +19122,7 @@ class RSHeaderComponent {
|
|
|
18827
19122
|
}
|
|
18828
19123
|
isCollapsed = false; // 接收输入属性
|
|
18829
19124
|
lastLoginTime = new Date();
|
|
19125
|
+
appName = "";
|
|
18830
19126
|
set langOptions(options) {
|
|
18831
19127
|
this._langOptions = options;
|
|
18832
19128
|
if (options && options.length > 0) {
|
|
@@ -18854,15 +19150,17 @@ class RSHeaderComponent {
|
|
|
18854
19150
|
this.changeLanguage.emit(this.currentLang.languageCode);
|
|
18855
19151
|
}
|
|
18856
19152
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: RSHeaderComponent, deps: [{ token: TranslationService }], target: i0.ɵɵFactoryTarget.Component });
|
|
18857
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: RSHeaderComponent, selector: "rs-header", inputs: { isCollapsed: "isCollapsed", lastLoginTime: "lastLoginTime", langOptions: "langOptions" }, outputs: { toggleMenu: "toggleMenu", changeLanguage: "changeLanguage" }, ngImport: i0, template: "<div class=\"rs-header\">\r\n <div class=\"logo-wrap\">\r\n <div class=\"toggle-menu-wrap\">\r\n <img\r\n class=\"toggle-menu\"\r\n src=\"../../../assets/img/toggle-menu-icon.svg\"\r\n (click)=\"onToggleMenu()\"\r\n />\r\n </div>\r\n <img\r\n class=\"logo\"\r\n src=\"../../../assets/img/raise_logo_main.svg\"\r\n alt=\"logo\"\r\n />\r\n </div>\r\n <div class=\"content-header-wrap\">\r\n <div class=\"bread-crumbs-wrap\">\r\n <ng-content select=\"[breadCrumbs]\"></ng-content>\r\n </div>\r\n <div class=\"rs-header-toolbar-wrap\">\r\n <div class=\"quick-icon-group\">\r\n <ng-content select=\"[toolbar]\"></ng-content>\r\n </div>\r\n <
|
|
19153
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: RSHeaderComponent, selector: "rs-header", inputs: { isCollapsed: "isCollapsed", lastLoginTime: "lastLoginTime", appName: "appName", langOptions: "langOptions" }, outputs: { toggleMenu: "toggleMenu", changeLanguage: "changeLanguage" }, ngImport: i0, template: "<div class=\"rs-header\">\r\n <div class=\"logo-wrap\">\r\n <div class=\"toggle-menu-wrap\">\r\n <img\r\n class=\"toggle-menu\"\r\n src=\"../../../assets/img/toggle-menu-icon.svg\"\r\n (click)=\"onToggleMenu()\"\r\n />\r\n </div>\r\n <img\r\n class=\"logo\"\r\n src=\"../../../assets/img/raise_logo_main.svg\"\r\n alt=\"logo\"\r\n />\r\n <div *ngIf=\"appName\" class=\"header-app-name\">{{ appName }}</div>\r\n </div>\r\n <div class=\"content-header-wrap\">\r\n <div class=\"bread-crumbs-wrap\">\r\n <ng-content select=\"[breadCrumbs]\"></ng-content>\r\n </div>\r\n <div class=\"rs-header-toolbar-wrap\">\r\n <div class=\"quick-icon-group\">\r\n <ng-content select=\"[toolbar]\"></ng-content>\r\n </div>\r\n <div class=\"line\"></div>\r\n <div class=\"langulage-wrap\">\r\n <button\r\n class=\"e-btn text\"\r\n ejs-dropdownbutton\r\n [items]=\"langOptions\"\r\n (select)=\"selectLanguage($event)\"\r\n >\r\n {{ currentLang && currentLang.text }}\r\n </button>\r\n </div>\r\n <!-- <div class=\"line\"></div>\r\n <div class=\"last-login-wrap\">\r\n {{ translation?.LAST_LOGIN || \"Last Login\" }}:\r\n {{ lastLoginTime | date : \"dd MMM yy h:mm a\" }}\r\n </div> -->\r\n <div class=\"line\"></div>\r\n <div class=\"user-info-wrap\">\r\n <ng-content select=\"[userInfo]\"></ng-content>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: [".rs-header{height:50px;background-color:var(--rs-container-bg);display:flex;justify-content:space-between}.rs-header .logo-wrap{width:240px;display:flex;padding:12px 0 0 20px}.rs-header .logo-wrap .toggle-menu-wrap{cursor:pointer;margin-right:8px;margin-top:2px;width:24px;height:24px}.rs-header .logo-wrap .toggle-menu-wrap:hover{background:#1364b30d;border-radius:6px}.rs-header .logo-wrap .logo{width:77px;height:32px}.rs-header .logo-wrap .header-app-name{font-size:24px;color:#15477f;margin-left:6px;margin-top:-8px}@media (max-width: 1200px){.rs-header .logo-wrap{width:auto}}.rs-header .content-header-wrap{display:flex;justify-content:space-between;align-items:center;flex:1;max-width:1886px;margin:0 auto}.rs-header .bread-crumbs-wrap{padding-left:16px}.rs-header .rs-header-toolbar-wrap,.rs-header .rs-header-toolbar-wrap .quick-icon-group{display:flex;align-items:center}.rs-header .rs-header-toolbar-wrap .quick-icon-group ::ng-deep .header-icon{width:32px;height:32px;display:flex;justify-content:center;align-items:center;margin-right:8px;cursor:pointer}.rs-header .rs-header-toolbar-wrap .quick-icon-group ::ng-deep .header-icon:last-child{margin-right:16px}.rs-header .rs-header-toolbar-wrap .quick-icon-group ::ng-deep .header-icon svg{width:24px;height:24px;color:#6c7c90;stroke:#6c7c90}.rs-header .rs-header-toolbar-wrap .quick-icon-group ::ng-deep .header-icon:hover{border-radius:4px;background:#1f7bff0a}.rs-header .rs-header-toolbar-wrap .quick-icon-group ::ng-deep .header-icon:hover svg{color:#1f7bff;stroke:#1f7bff}.rs-header .rs-header-toolbar-wrap .line{width:1px;height:24px;background-color:var(--rs-border-color)}.rs-header .rs-header-toolbar-wrap .langulage-wrap{padding:0 16px}.rs-header .rs-header-toolbar-wrap .last-login-wrap{padding:0 16px;color:var(--rs-labels-color);font-size:11px;font-weight:400;line-height:1}.rs-header .rs-header-toolbar-wrap .user-info-wrap{padding:0 20px 0 16px}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3$1.DropDownButtonComponent, selector: "[ejs-dropdownbutton]", inputs: ["closeActionEvents", "content", "createPopupOnClick", "cssClass", "disabled", "enableHtmlSanitizer", "enablePersistence", "enableRtl", "iconCss", "iconPosition", "items", "locale", "target"], outputs: ["beforeClose", "beforeItemRender", "beforeOpen", "close", "created", "open", "select"] }] });
|
|
18858
19154
|
}
|
|
18859
19155
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: RSHeaderComponent, decorators: [{
|
|
18860
19156
|
type: Component,
|
|
18861
|
-
args: [{ selector: "rs-header", template: "<div class=\"rs-header\">\r\n <div class=\"logo-wrap\">\r\n <div class=\"toggle-menu-wrap\">\r\n <img\r\n class=\"toggle-menu\"\r\n src=\"../../../assets/img/toggle-menu-icon.svg\"\r\n (click)=\"onToggleMenu()\"\r\n />\r\n </div>\r\n <img\r\n class=\"logo\"\r\n src=\"../../../assets/img/raise_logo_main.svg\"\r\n alt=\"logo\"\r\n />\r\n </div>\r\n <div class=\"content-header-wrap\">\r\n <div class=\"bread-crumbs-wrap\">\r\n <ng-content select=\"[breadCrumbs]\"></ng-content>\r\n </div>\r\n <div class=\"rs-header-toolbar-wrap\">\r\n <div class=\"quick-icon-group\">\r\n <ng-content select=\"[toolbar]\"></ng-content>\r\n </div>\r\n <
|
|
19157
|
+
args: [{ selector: "rs-header", template: "<div class=\"rs-header\">\r\n <div class=\"logo-wrap\">\r\n <div class=\"toggle-menu-wrap\">\r\n <img\r\n class=\"toggle-menu\"\r\n src=\"../../../assets/img/toggle-menu-icon.svg\"\r\n (click)=\"onToggleMenu()\"\r\n />\r\n </div>\r\n <img\r\n class=\"logo\"\r\n src=\"../../../assets/img/raise_logo_main.svg\"\r\n alt=\"logo\"\r\n />\r\n <div *ngIf=\"appName\" class=\"header-app-name\">{{ appName }}</div>\r\n </div>\r\n <div class=\"content-header-wrap\">\r\n <div class=\"bread-crumbs-wrap\">\r\n <ng-content select=\"[breadCrumbs]\"></ng-content>\r\n </div>\r\n <div class=\"rs-header-toolbar-wrap\">\r\n <div class=\"quick-icon-group\">\r\n <ng-content select=\"[toolbar]\"></ng-content>\r\n </div>\r\n <div class=\"line\"></div>\r\n <div class=\"langulage-wrap\">\r\n <button\r\n class=\"e-btn text\"\r\n ejs-dropdownbutton\r\n [items]=\"langOptions\"\r\n (select)=\"selectLanguage($event)\"\r\n >\r\n {{ currentLang && currentLang.text }}\r\n </button>\r\n </div>\r\n <!-- <div class=\"line\"></div>\r\n <div class=\"last-login-wrap\">\r\n {{ translation?.LAST_LOGIN || \"Last Login\" }}:\r\n {{ lastLoginTime | date : \"dd MMM yy h:mm a\" }}\r\n </div> -->\r\n <div class=\"line\"></div>\r\n <div class=\"user-info-wrap\">\r\n <ng-content select=\"[userInfo]\"></ng-content>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: [".rs-header{height:50px;background-color:var(--rs-container-bg);display:flex;justify-content:space-between}.rs-header .logo-wrap{width:240px;display:flex;padding:12px 0 0 20px}.rs-header .logo-wrap .toggle-menu-wrap{cursor:pointer;margin-right:8px;margin-top:2px;width:24px;height:24px}.rs-header .logo-wrap .toggle-menu-wrap:hover{background:#1364b30d;border-radius:6px}.rs-header .logo-wrap .logo{width:77px;height:32px}.rs-header .logo-wrap .header-app-name{font-size:24px;color:#15477f;margin-left:6px;margin-top:-8px}@media (max-width: 1200px){.rs-header .logo-wrap{width:auto}}.rs-header .content-header-wrap{display:flex;justify-content:space-between;align-items:center;flex:1;max-width:1886px;margin:0 auto}.rs-header .bread-crumbs-wrap{padding-left:16px}.rs-header .rs-header-toolbar-wrap,.rs-header .rs-header-toolbar-wrap .quick-icon-group{display:flex;align-items:center}.rs-header .rs-header-toolbar-wrap .quick-icon-group ::ng-deep .header-icon{width:32px;height:32px;display:flex;justify-content:center;align-items:center;margin-right:8px;cursor:pointer}.rs-header .rs-header-toolbar-wrap .quick-icon-group ::ng-deep .header-icon:last-child{margin-right:16px}.rs-header .rs-header-toolbar-wrap .quick-icon-group ::ng-deep .header-icon svg{width:24px;height:24px;color:#6c7c90;stroke:#6c7c90}.rs-header .rs-header-toolbar-wrap .quick-icon-group ::ng-deep .header-icon:hover{border-radius:4px;background:#1f7bff0a}.rs-header .rs-header-toolbar-wrap .quick-icon-group ::ng-deep .header-icon:hover svg{color:#1f7bff;stroke:#1f7bff}.rs-header .rs-header-toolbar-wrap .line{width:1px;height:24px;background-color:var(--rs-border-color)}.rs-header .rs-header-toolbar-wrap .langulage-wrap{padding:0 16px}.rs-header .rs-header-toolbar-wrap .last-login-wrap{padding:0 16px;color:var(--rs-labels-color);font-size:11px;font-weight:400;line-height:1}.rs-header .rs-header-toolbar-wrap .user-info-wrap{padding:0 20px 0 16px}\n"] }]
|
|
18862
19158
|
}], ctorParameters: function () { return [{ type: TranslationService }]; }, propDecorators: { isCollapsed: [{
|
|
18863
19159
|
type: Input
|
|
18864
19160
|
}], lastLoginTime: [{
|
|
18865
19161
|
type: Input
|
|
19162
|
+
}], appName: [{
|
|
19163
|
+
type: Input
|
|
18866
19164
|
}], langOptions: [{
|
|
18867
19165
|
type: Input
|
|
18868
19166
|
}], toggleMenu: [{
|
|
@@ -18877,11 +19175,11 @@ class RSFooterComponent {
|
|
|
18877
19175
|
ngOnInit() {
|
|
18878
19176
|
}
|
|
18879
19177
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: RSFooterComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
18880
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: RSFooterComponent, selector: "rs-footer", ngImport: i0, template: "<div class=\"rs-footer\">\r\n <span>\r\n RAISE<sup>®</sup>\u00A0\u00A9\u00A0\r\n {{ today | date : \"yyyy\" }}\r\n Linnovate Partners</span\r\n >\r\n</div>\r\n", styles: [".rs-footer{height:40px;padding:0 24px;display:flex;align-items:center;background-color:var(--rs-container-bg);color:var(--rs-labels-color);font-family:var(--rs-font-family);font-size:11px;max-width:1886px;margin:0 auto}\n"], dependencies: [{ kind: "pipe", type: i1.DatePipe, name: "date" }] });
|
|
19178
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: RSFooterComponent, selector: "rs-footer", ngImport: i0, template: "<div class=\"rs-footer\">\r\n <span>\r\n RAISE<sup>®</sup>\u00A0\u00A9\u00A0\r\n {{ today | date : \"yyyy\" }}\r\n Linnovate Partners</span\r\n >\r\n</div>\r\n", styles: [".rs-footer{height:40px;padding:0 24px;display:flex;align-items:center;background-color:var(--rs-container-bg);color:var(--rs-labels-color);font-family:var(--rs-font-family);font-size:11px;max-width:1886px;margin:0 auto}@media (max-width: 768px){.rs-footer{width:100%;position:fixed;bottom:0;left:0}}\n"], dependencies: [{ kind: "pipe", type: i1.DatePipe, name: "date" }] });
|
|
18881
19179
|
}
|
|
18882
19180
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: RSFooterComponent, decorators: [{
|
|
18883
19181
|
type: Component,
|
|
18884
|
-
args: [{ selector: 'rs-footer', template: "<div class=\"rs-footer\">\r\n <span>\r\n RAISE<sup>®</sup>\u00A0\u00A9\u00A0\r\n {{ today | date : \"yyyy\" }}\r\n Linnovate Partners</span\r\n >\r\n</div>\r\n", styles: [".rs-footer{height:40px;padding:0 24px;display:flex;align-items:center;background-color:var(--rs-container-bg);color:var(--rs-labels-color);font-family:var(--rs-font-family);font-size:11px;max-width:1886px;margin:0 auto}\n"] }]
|
|
19182
|
+
args: [{ selector: 'rs-footer', template: "<div class=\"rs-footer\">\r\n <span>\r\n RAISE<sup>®</sup>\u00A0\u00A9\u00A0\r\n {{ today | date : \"yyyy\" }}\r\n Linnovate Partners</span\r\n >\r\n</div>\r\n", styles: [".rs-footer{height:40px;padding:0 24px;display:flex;align-items:center;background-color:var(--rs-container-bg);color:var(--rs-labels-color);font-family:var(--rs-font-family);font-size:11px;max-width:1886px;margin:0 auto}@media (max-width: 768px){.rs-footer{width:100%;position:fixed;bottom:0;left:0}}\n"] }]
|
|
18885
19183
|
}] });
|
|
18886
19184
|
|
|
18887
19185
|
// 组件类
|
|
@@ -18944,11 +19242,11 @@ class MainContainerComponent {
|
|
|
18944
19242
|
}
|
|
18945
19243
|
}
|
|
18946
19244
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MainContainerComponent, deps: [{ token: DrawerService }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
18947
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: MainContainerComponent, selector: "rs-main-container", inputs: { isCollapsed: "isCollapsed", singleReuseUrls: "singleReuseUrls" }, outputs: { onWidthChange: "onWidthChange" }, host: { listeners: { "window:resize": "onResize($event)" } }, queries: [{ propertyName: "headerRef", first: true, predicate: RSHeaderComponent, descendants: true, static: true }, { propertyName: "multiTabRef", first: true, predicate: MultiTabComponent, descendants: true, static: true }], viewQueries: [{ propertyName: "drawer", first: true, predicate: ["drawer"], descendants: true }], ngImport: i0, template: "<div class=\"app-main-container\">\r\n <ng-content select=\"[headerSlot]\"></ng-content>\r\n
|
|
19245
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: MainContainerComponent, selector: "rs-main-container", inputs: { isCollapsed: "isCollapsed", singleReuseUrls: "singleReuseUrls" }, outputs: { onWidthChange: "onWidthChange" }, host: { listeners: { "window:resize": "onResize($event)" } }, queries: [{ propertyName: "headerRef", first: true, predicate: RSHeaderComponent, descendants: true, static: true }, { propertyName: "multiTabRef", first: true, predicate: MultiTabComponent, descendants: true, static: true }], viewQueries: [{ propertyName: "drawer", first: true, predicate: ["drawer"], descendants: true }], ngImport: i0, template: "<div class=\"app-main-container-wrap\">\r\n <div class=\"app-main-container\">\r\n <ng-content select=\"[headerSlot]\"></ng-content>\r\n <div class=\"main-page\">\r\n <div class=\"left-aside\">\r\n <ng-content select=\"[leftAsideSlot]\"></ng-content>\r\n </div>\r\n <div\r\n class=\"right-aside\"\r\n [ngClass]=\"{ isCollapsed: isCollapsed }\"\r\n (click)=\"onRightAsideClick()\"\r\n >\r\n <ng-content select=\"[multiTabSlot]\"></ng-content>\r\n <!-- <rs-multi-tab [singleReuseUrls]=\"singleReuseUrls\"></rs-multi-tab> -->\r\n <div class=\"router-content\">\r\n <rs-drawer #drawer>\r\n <ng-content select=\"[routerSlot]\"></ng-content>\r\n </rs-drawer>\r\n </div>\r\n <rs-footer></rs-footer>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: [".app-main-container-wrap{width:100%;overflow:auto;height:100vh}@media (max-width: 768px){.app-main-container-wrap{height:calc(100vh - 40px)}}.app-main-container{display:flex;flex-direction:column;height:100%;min-width:768px}.app-main-container .main-page{flex:1;height:0;display:flex;background-color:var(--rs-container-bg)}.app-main-container .left-aside{height:100%}.app-main-container .right-aside{width:0;flex:1;display:flex;flex-direction:column;padding-right:12px}.app-main-container .right-aside .router-content{flex:1;overflow:auto;max-width:1886px;width:100%;margin:0 auto}@media (max-width: 992px){.app-main-container .right-aside{padding-left:12px}.app-main-container .right-aside.isCollapsed{position:relative}.app-main-container .right-aside.isCollapsed:after{content:\" \";position:absolute;z-index:5;inset:0;background-color:#0003}}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: RSFooterComponent, selector: "rs-footer" }, { kind: "component", type: DrawerComponent, selector: "rs-drawer" }] });
|
|
18948
19246
|
}
|
|
18949
19247
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MainContainerComponent, decorators: [{
|
|
18950
19248
|
type: Component,
|
|
18951
|
-
args: [{ selector: "rs-main-container", template: "<div class=\"app-main-container\">\r\n <ng-content select=\"[headerSlot]\"></ng-content>\r\n
|
|
19249
|
+
args: [{ selector: "rs-main-container", template: "<div class=\"app-main-container-wrap\">\r\n <div class=\"app-main-container\">\r\n <ng-content select=\"[headerSlot]\"></ng-content>\r\n <div class=\"main-page\">\r\n <div class=\"left-aside\">\r\n <ng-content select=\"[leftAsideSlot]\"></ng-content>\r\n </div>\r\n <div\r\n class=\"right-aside\"\r\n [ngClass]=\"{ isCollapsed: isCollapsed }\"\r\n (click)=\"onRightAsideClick()\"\r\n >\r\n <ng-content select=\"[multiTabSlot]\"></ng-content>\r\n <!-- <rs-multi-tab [singleReuseUrls]=\"singleReuseUrls\"></rs-multi-tab> -->\r\n <div class=\"router-content\">\r\n <rs-drawer #drawer>\r\n <ng-content select=\"[routerSlot]\"></ng-content>\r\n </rs-drawer>\r\n </div>\r\n <rs-footer></rs-footer>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: [".app-main-container-wrap{width:100%;overflow:auto;height:100vh}@media (max-width: 768px){.app-main-container-wrap{height:calc(100vh - 40px)}}.app-main-container{display:flex;flex-direction:column;height:100%;min-width:768px}.app-main-container .main-page{flex:1;height:0;display:flex;background-color:var(--rs-container-bg)}.app-main-container .left-aside{height:100%}.app-main-container .right-aside{width:0;flex:1;display:flex;flex-direction:column;padding-right:12px}.app-main-container .right-aside .router-content{flex:1;overflow:auto;max-width:1886px;width:100%;margin:0 auto}@media (max-width: 992px){.app-main-container .right-aside{padding-left:12px}.app-main-container .right-aside.isCollapsed{position:relative}.app-main-container .right-aside.isCollapsed:after{content:\" \";position:absolute;z-index:5;inset:0;background-color:#0003}}\n"] }]
|
|
18952
19250
|
}], ctorParameters: function () { return [{ type: DrawerService }, { type: i0.ElementRef }]; }, propDecorators: { headerRef: [{
|
|
18953
19251
|
type: ContentChild,
|
|
18954
19252
|
args: [RSHeaderComponent, { static: true }]
|
|
@@ -18972,8 +19270,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
18972
19270
|
// 组件类
|
|
18973
19271
|
class RSAsideComponent {
|
|
18974
19272
|
router;
|
|
18975
|
-
|
|
19273
|
+
cf;
|
|
19274
|
+
constructor(router, cf) {
|
|
18976
19275
|
this.router = router;
|
|
19276
|
+
this.cf = cf;
|
|
18977
19277
|
}
|
|
18978
19278
|
toggleMenu = new EventEmitter();
|
|
18979
19279
|
navClick = new EventEmitter();
|
|
@@ -19018,13 +19318,13 @@ class RSAsideComponent {
|
|
|
19018
19318
|
}
|
|
19019
19319
|
this.navClick.emit(item);
|
|
19020
19320
|
}
|
|
19021
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: RSAsideComponent, deps: [{ token: i1$3.Router }], target: i0.ɵɵFactoryTarget.Component });
|
|
19022
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: RSAsideComponent, selector: "rs-aside", inputs: { isCollapsed: "isCollapsed", customNavClick: "customNavClick", navList: "navList", relationStart: "relationStart" }, outputs: { toggleMenu: "toggleMenu", navClick: "navClick" }, ngImport: i0, template: "<div class=\"rs-aside\" [ngClass]=\"{ isCollapsed: isCollapsed }\">\r\n <div class=\"nav-list\">\r\n <div\r\n class=\"nav-group\"\r\n [ngClass]=\"group.class\"\r\n *ngFor=\"let group of navList\"\r\n >\r\n <div\r\n class=\"nav-item\"\r\n [ngClass]=\"{ isCurrent: currentNav === nav.url }\"\r\n *ngFor=\"let nav of group.navItems\"\r\n (click)=\"onNavClick(nav)\"\r\n >\r\n <div class=\"nav-item-inner\" *ngIf=\"nav.menuType === 'MENU'\">\r\n <ejs-tooltip\r\n [showTipPointer]=\"false\"\r\n *ngIf=\"isCollapsed; else originIcon\"\r\n >\r\n <ng-template #content>\r\n <div class=\"tooltip-content\">\r\n {{ nav.label }}\r\n </div>\r\n </ng-template>\r\n <mat-icon class=\"menu-icon\" [svgIcon]=\"nav.iconCode\"></mat-icon>\r\n </ejs-tooltip>\r\n <ng-template #originIcon>\r\n <mat-icon class=\"menu-icon\" [svgIcon]=\"nav.iconCode\"></mat-icon>\r\n </ng-template>\r\n <span class=\"nav-text\" [ngClass]=\"{ isCollapsed: isCollapsed }\">{{\r\n nav.label\r\n
|
|
19321
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: RSAsideComponent, deps: [{ token: i1$3.Router }, { token: CommonFunctionService }], target: i0.ɵɵFactoryTarget.Component });
|
|
19322
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: RSAsideComponent, selector: "rs-aside", inputs: { isCollapsed: "isCollapsed", customNavClick: "customNavClick", navList: "navList", relationStart: "relationStart" }, outputs: { toggleMenu: "toggleMenu", navClick: "navClick" }, ngImport: i0, template: "<div class=\"rs-aside\" [ngClass]=\"{ isCollapsed: isCollapsed }\">\r\n <div class=\"nav-list\">\r\n <div\r\n class=\"nav-group\"\r\n [ngClass]=\"group.class\"\r\n *ngFor=\"let group of navList\"\r\n >\r\n <div\r\n class=\"nav-item\"\r\n [ngClass]=\"{ isCurrent: currentNav === nav.url }\"\r\n *ngFor=\"let nav of group.navItems\"\r\n (click)=\"onNavClick(nav)\"\r\n >\r\n <div class=\"nav-item-inner\" *ngIf=\"nav.menuType === 'MENU'\">\r\n <ejs-tooltip\r\n [showTipPointer]=\"false\"\r\n *ngIf=\"isCollapsed; else originIcon\"\r\n position='RightCenter'\r\n >\r\n <ng-template #content>\r\n <div class=\"tooltip-content\">\r\n {{ nav.label }}\r\n </div>\r\n </ng-template>\r\n <mat-icon class=\"menu-icon\" [svgIcon]=\"nav.iconCode\"></mat-icon>\r\n </ejs-tooltip>\r\n <ng-template #originIcon>\r\n <mat-icon class=\"menu-icon\" [svgIcon]=\"nav.iconCode\"></mat-icon>\r\n </ng-template>\r\n <!-- <mat-icon class=\"menu-icon\" [svgIcon]=\"nav.iconCode\"></mat-icon> -->\r\n <ejs-tooltip\r\n [showTipPointer]=\"false\"\r\n *ngIf=\"nav.displayLabel !== nav.label; else originText\"\r\n position='RightCenter'\r\n class=\"nav-tooltip-text\"\r\n >\r\n <ng-template #content>\r\n <div class=\"tooltip-content\">\r\n {{ nav.label }}\r\n </div>\r\n </ng-template>\r\n <span class=\"nav-text\" [ngClass]=\"{ isCollapsed: isCollapsed }\">{{\r\n nav.displayLabel\r\n }}</span>\r\n </ejs-tooltip>\r\n <ng-template #originText>\r\n <span class=\"nav-text\" [ngClass]=\"{ isCollapsed: isCollapsed }\">{{\r\n nav.label\r\n }}</span>\r\n </ng-template>\r\n </div>\r\n <div class=\"dividing-line\" *ngIf=\"nav.menuType === 'LABEL'\"></div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"bottom-iconbox\" [ngClass]=\"{ isCollapsed: isCollapsed }\">\r\n <ng-content select=\"[bottomIconBox]\"></ng-content>\r\n </div>\r\n</div>\r\n", styles: [".rs-aside{display:flex;flex-direction:column;height:100%;width:240px;will-change:width;transition:width .3s;padding-right:20px}.rs-aside.isCollapsed{width:64px;padding-right:0}.rs-aside.isCollapsed .nav-list .nav-item .nav-item-inner{margin-right:12px}.rs-aside.isCollapsed .nav-list .nav-item .dividing-line{margin:8px 20px 8px 10px}.rs-aside .nav-list{padding-top:12px;flex:1;overflow:auto;height:0}.rs-aside .nav-list .nav-item{cursor:pointer;padding-left:11px}.rs-aside .nav-list .nav-item .nav-item-inner{height:32px;display:flex;align-items:center;padding:8px 8px 8px 12px}.rs-aside .nav-list .nav-item .nav-item-inner ::ng-deep .menu-icon{width:33px;height:16px;display:flex;align-items:center}.rs-aside .nav-list .nav-item .nav-item-inner ::ng-deep .menu-icon svg{width:16px;height:16px}.rs-aside .nav-list .nav-item .dividing-line{margin:8px 0 8px 10px;height:1px;background-color:#dbe1e780}.rs-aside .nav-list .nav-item:hover .nav-item-inner{border-radius:6px;background:#1f7bff0a}.rs-aside .nav-list .nav-item .nav-text{display:inline-block;color:#5f6f81;font-family:Arial;font-size:12px;font-weight:400;line-height:16px;transition:all .3s;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;position:relative;top:1px;flex:1}@media (min-width: 993px){.rs-aside .nav-list .nav-item .nav-text.isCollapsed{opacity:0;width:0}}.rs-aside .nav-list .nav-item .nav-tooltip-text{flex:1;width:0}.rs-aside .nav-list .nav-item.isCurrent{position:relative}.rs-aside .nav-list .nav-item.isCurrent .nav-text{color:#44566c;font-weight:700}.rs-aside .nav-list .nav-item.isCurrent:before{content:\"\";position:absolute;left:4px;top:8px;width:3px;height:16px;background-color:#1364b3;border-radius:2px}.rs-aside .bottom-iconbox{padding:12px 20px;height:48px;display:flex;gap:12px}.rs-aside .bottom-iconbox ::ng-deep .menu-bottom-icon{width:24px;height:24px;display:flex;justify-content:center;align-items:center;border:1px solid #eaedf0;border-radius:24px;cursor:pointer}.rs-aside .bottom-iconbox ::ng-deep .menu-bottom-icon svg{width:16px;height:16px;color:#6c7c90;stroke:#6c7c90}.rs-aside .bottom-iconbox ::ng-deep .menu-bottom-icon.disabled{cursor:default;opacity:.5}.rs-aside .bottom-iconbox ::ng-deep .menu-bottom-icon:not(.disabled):hover{background-color:#fff}.rs-aside .bottom-iconbox ::ng-deep .menu-bottom-icon:not(.disabled):hover svg{color:#1f7bff;stroke:#1f7bff}@media (min-width: 993px){.rs-aside .bottom-iconbox.isCollapsed{flex-direction:column;height:auto}}@media (max-width: 992px){.rs-aside{width:0;position:absolute;height:calc(100% - 50px);z-index:10;background-color:var(--rs-container-bg);padding-right:0}.rs-aside .bottom-iconbox{display:none}.rs-aside.isCollapsed{width:240px;padding-right:16px}.rs-aside.isCollapsed .bottom-iconbox{display:flex}}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { 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: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i5$1.TooltipComponent, selector: "ejs-tooltip", inputs: ["animation", "closeDelay", "container", "content", "cssClass", "enableHtmlParse", "enableHtmlSanitizer", "enablePersistence", "enableRtl", "height", "htmlAttributes", "isSticky", "locale", "mouseTrail", "offsetX", "offsetY", "openDelay", "opensOn", "position", "showTipPointer", "target", "tipPointerPosition", "width", "windowCollision"], outputs: ["afterClose", "afterOpen", "beforeClose", "beforeCollision", "beforeOpen", "beforeRender", "created", "destroyed"] }] });
|
|
19023
19323
|
}
|
|
19024
19324
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: RSAsideComponent, decorators: [{
|
|
19025
19325
|
type: Component,
|
|
19026
|
-
args: [{ selector: "rs-aside", template: "<div class=\"rs-aside\" [ngClass]=\"{ isCollapsed: isCollapsed }\">\r\n <div class=\"nav-list\">\r\n <div\r\n class=\"nav-group\"\r\n [ngClass]=\"group.class\"\r\n *ngFor=\"let group of navList\"\r\n >\r\n <div\r\n class=\"nav-item\"\r\n [ngClass]=\"{ isCurrent: currentNav === nav.url }\"\r\n *ngFor=\"let nav of group.navItems\"\r\n (click)=\"onNavClick(nav)\"\r\n >\r\n <div class=\"nav-item-inner\" *ngIf=\"nav.menuType === 'MENU'\">\r\n <ejs-tooltip\r\n [showTipPointer]=\"false\"\r\n *ngIf=\"isCollapsed; else originIcon\"\r\n >\r\n <ng-template #content>\r\n <div class=\"tooltip-content\">\r\n {{ nav.label }}\r\n </div>\r\n </ng-template>\r\n <mat-icon class=\"menu-icon\" [svgIcon]=\"nav.iconCode\"></mat-icon>\r\n </ejs-tooltip>\r\n <ng-template #originIcon>\r\n <mat-icon class=\"menu-icon\" [svgIcon]=\"nav.iconCode\"></mat-icon>\r\n </ng-template>\r\n <span class=\"nav-text\" [ngClass]=\"{ isCollapsed: isCollapsed }\">{{\r\n nav.label\r\n
|
|
19027
|
-
}], ctorParameters: function () { return [{ type: i1$3.Router }]; }, propDecorators: { toggleMenu: [{
|
|
19326
|
+
args: [{ selector: "rs-aside", template: "<div class=\"rs-aside\" [ngClass]=\"{ isCollapsed: isCollapsed }\">\r\n <div class=\"nav-list\">\r\n <div\r\n class=\"nav-group\"\r\n [ngClass]=\"group.class\"\r\n *ngFor=\"let group of navList\"\r\n >\r\n <div\r\n class=\"nav-item\"\r\n [ngClass]=\"{ isCurrent: currentNav === nav.url }\"\r\n *ngFor=\"let nav of group.navItems\"\r\n (click)=\"onNavClick(nav)\"\r\n >\r\n <div class=\"nav-item-inner\" *ngIf=\"nav.menuType === 'MENU'\">\r\n <ejs-tooltip\r\n [showTipPointer]=\"false\"\r\n *ngIf=\"isCollapsed; else originIcon\"\r\n position='RightCenter'\r\n >\r\n <ng-template #content>\r\n <div class=\"tooltip-content\">\r\n {{ nav.label }}\r\n </div>\r\n </ng-template>\r\n <mat-icon class=\"menu-icon\" [svgIcon]=\"nav.iconCode\"></mat-icon>\r\n </ejs-tooltip>\r\n <ng-template #originIcon>\r\n <mat-icon class=\"menu-icon\" [svgIcon]=\"nav.iconCode\"></mat-icon>\r\n </ng-template>\r\n <!-- <mat-icon class=\"menu-icon\" [svgIcon]=\"nav.iconCode\"></mat-icon> -->\r\n <ejs-tooltip\r\n [showTipPointer]=\"false\"\r\n *ngIf=\"nav.displayLabel !== nav.label; else originText\"\r\n position='RightCenter'\r\n class=\"nav-tooltip-text\"\r\n >\r\n <ng-template #content>\r\n <div class=\"tooltip-content\">\r\n {{ nav.label }}\r\n </div>\r\n </ng-template>\r\n <span class=\"nav-text\" [ngClass]=\"{ isCollapsed: isCollapsed }\">{{\r\n nav.displayLabel\r\n }}</span>\r\n </ejs-tooltip>\r\n <ng-template #originText>\r\n <span class=\"nav-text\" [ngClass]=\"{ isCollapsed: isCollapsed }\">{{\r\n nav.label\r\n }}</span>\r\n </ng-template>\r\n </div>\r\n <div class=\"dividing-line\" *ngIf=\"nav.menuType === 'LABEL'\"></div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"bottom-iconbox\" [ngClass]=\"{ isCollapsed: isCollapsed }\">\r\n <ng-content select=\"[bottomIconBox]\"></ng-content>\r\n </div>\r\n</div>\r\n", styles: [".rs-aside{display:flex;flex-direction:column;height:100%;width:240px;will-change:width;transition:width .3s;padding-right:20px}.rs-aside.isCollapsed{width:64px;padding-right:0}.rs-aside.isCollapsed .nav-list .nav-item .nav-item-inner{margin-right:12px}.rs-aside.isCollapsed .nav-list .nav-item .dividing-line{margin:8px 20px 8px 10px}.rs-aside .nav-list{padding-top:12px;flex:1;overflow:auto;height:0}.rs-aside .nav-list .nav-item{cursor:pointer;padding-left:11px}.rs-aside .nav-list .nav-item .nav-item-inner{height:32px;display:flex;align-items:center;padding:8px 8px 8px 12px}.rs-aside .nav-list .nav-item .nav-item-inner ::ng-deep .menu-icon{width:33px;height:16px;display:flex;align-items:center}.rs-aside .nav-list .nav-item .nav-item-inner ::ng-deep .menu-icon svg{width:16px;height:16px}.rs-aside .nav-list .nav-item .dividing-line{margin:8px 0 8px 10px;height:1px;background-color:#dbe1e780}.rs-aside .nav-list .nav-item:hover .nav-item-inner{border-radius:6px;background:#1f7bff0a}.rs-aside .nav-list .nav-item .nav-text{display:inline-block;color:#5f6f81;font-family:Arial;font-size:12px;font-weight:400;line-height:16px;transition:all .3s;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;position:relative;top:1px;flex:1}@media (min-width: 993px){.rs-aside .nav-list .nav-item .nav-text.isCollapsed{opacity:0;width:0}}.rs-aside .nav-list .nav-item .nav-tooltip-text{flex:1;width:0}.rs-aside .nav-list .nav-item.isCurrent{position:relative}.rs-aside .nav-list .nav-item.isCurrent .nav-text{color:#44566c;font-weight:700}.rs-aside .nav-list .nav-item.isCurrent:before{content:\"\";position:absolute;left:4px;top:8px;width:3px;height:16px;background-color:#1364b3;border-radius:2px}.rs-aside .bottom-iconbox{padding:12px 20px;height:48px;display:flex;gap:12px}.rs-aside .bottom-iconbox ::ng-deep .menu-bottom-icon{width:24px;height:24px;display:flex;justify-content:center;align-items:center;border:1px solid #eaedf0;border-radius:24px;cursor:pointer}.rs-aside .bottom-iconbox ::ng-deep .menu-bottom-icon svg{width:16px;height:16px;color:#6c7c90;stroke:#6c7c90}.rs-aside .bottom-iconbox ::ng-deep .menu-bottom-icon.disabled{cursor:default;opacity:.5}.rs-aside .bottom-iconbox ::ng-deep .menu-bottom-icon:not(.disabled):hover{background-color:#fff}.rs-aside .bottom-iconbox ::ng-deep .menu-bottom-icon:not(.disabled):hover svg{color:#1f7bff;stroke:#1f7bff}@media (min-width: 993px){.rs-aside .bottom-iconbox.isCollapsed{flex-direction:column;height:auto}}@media (max-width: 992px){.rs-aside{width:0;position:absolute;height:calc(100% - 50px);z-index:10;background-color:var(--rs-container-bg);padding-right:0}.rs-aside .bottom-iconbox{display:none}.rs-aside.isCollapsed{width:240px;padding-right:16px}.rs-aside.isCollapsed .bottom-iconbox{display:flex}}\n"] }]
|
|
19327
|
+
}], ctorParameters: function () { return [{ type: i1$3.Router }, { type: CommonFunctionService }]; }, propDecorators: { toggleMenu: [{
|
|
19028
19328
|
type: Output
|
|
19029
19329
|
}], navClick: [{
|
|
19030
19330
|
type: Output
|
|
@@ -19133,7 +19433,7 @@ class RadioGroupComponent {
|
|
|
19133
19433
|
this.valueChange.emit(value);
|
|
19134
19434
|
}
|
|
19135
19435
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: RadioGroupComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
19136
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: RadioGroupComponent, selector: "rs-radio-group", inputs: { value: "value", dataSource: "dataSource", orientation: "orientation", fields: "fields", disabled: "disabled", error: "error" }, outputs: { valueChange: "valueChange" }, ngImport: i0, template: "<div class=\"radio-group\" [ngClass]=\"[orientation, error ? 'error' : '']\">\r\n <div class=\"radio-item\" *ngFor=\"let option of dataSource\">\r\n <ejs-radiobutton\r\n [label]=\"option[fields.text]\"\r\n [(ngModel)]=\"value\"\r\n [value]=\"option[fields.value]\"\r\n [disabled]=\"option[fields.disabled] || disabled\"\r\n (change)=\"onChange($event)\"\r\n ></ejs-radiobutton>\r\n </div>\r\n</div>\r\n", styles: [".radio-group{display:flex;padding-left:4px}.radio-group.horizontal{flex-direction:row;gap:35px}.radio-group.vertical{flex-direction:column;gap:14px}.radio-group.error .e-radio+label:before{border-color:var(--rs-input-error-border-color)}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2$3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2$3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i3$
|
|
19436
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: RadioGroupComponent, selector: "rs-radio-group", inputs: { value: "value", dataSource: "dataSource", orientation: "orientation", fields: "fields", disabled: "disabled", error: "error" }, outputs: { valueChange: "valueChange" }, ngImport: i0, template: "<div class=\"radio-group\" [ngClass]=\"[orientation, error ? 'error' : '']\">\r\n <div class=\"radio-item\" *ngFor=\"let option of dataSource\">\r\n <ejs-radiobutton\r\n [label]=\"option[fields.text]\"\r\n [(ngModel)]=\"value\"\r\n [value]=\"option[fields.value]\"\r\n [disabled]=\"option[fields.disabled] || disabled\"\r\n (change)=\"onChange($event)\"\r\n ></ejs-radiobutton>\r\n </div>\r\n</div>\r\n", styles: [".radio-group{display:flex;padding-left:4px}.radio-group.horizontal{flex-direction:row;gap:35px}.radio-group.vertical{flex-direction:column;gap:14px}.radio-group.error .e-radio+label:before{border-color:var(--rs-input-error-border-color)}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2$3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2$3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i3$2.RadioButtonComponent, selector: "ejs-radiobutton", inputs: ["checked", "cssClass", "disabled", "enableHtmlSanitizer", "enablePersistence", "enableRtl", "htmlAttributes", "label", "labelPosition", "locale", "name", "value"], outputs: ["focus", "blur", "change", "created", "valueChange"] }] });
|
|
19137
19437
|
}
|
|
19138
19438
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: RadioGroupComponent, decorators: [{
|
|
19139
19439
|
type: Component,
|
|
@@ -19184,7 +19484,7 @@ class CheckboxGroupComponent {
|
|
|
19184
19484
|
this.ref.markForCheck();
|
|
19185
19485
|
}
|
|
19186
19486
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CheckboxGroupComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
19187
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: CheckboxGroupComponent, selector: "rs-checkbox-group", inputs: { name: "name", value: "value", dataSource: "dataSource", orientation: "orientation", fields: "fields", disabled: "disabled", error: "error" }, outputs: { valueChange: "valueChange" }, ngImport: i0, template: "<div class=\"checkbox-group\" [ngClass]=\"[orientation, error ? 'error' : '']\">\r\n <div class=\"checkbox-item\" *ngFor=\"let option of dataSource\">\r\n <ejs-checkbox\r\n [name]=\"name\"\r\n [label]=\"option[fields.text]\"\r\n [value]=\"option[fields.value]\"\r\n [disabled]=\"option[fields.disabled] || disabled\"\r\n [checked]=\"value.includes(option[fields.value])\"\r\n (change)=\"onChange($event, option)\"\r\n ></ejs-checkbox>\r\n </div>\r\n</div>\r\n", styles: [".checkbox-group{display:flex;padding-left:4px}.checkbox-group.horizontal{flex-direction:row;gap:35px}.checkbox-group.vertical{flex-direction:column;gap:14px}.checkbox-group.error .e-checkbox-wrapper .e-frame{border-color:var(--rs-input-error-border-color)}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: i3$
|
|
19487
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: CheckboxGroupComponent, selector: "rs-checkbox-group", inputs: { name: "name", value: "value", dataSource: "dataSource", orientation: "orientation", fields: "fields", disabled: "disabled", error: "error" }, outputs: { valueChange: "valueChange" }, ngImport: i0, template: "<div class=\"checkbox-group\" [ngClass]=\"[orientation, error ? 'error' : '']\">\r\n <div class=\"checkbox-item\" *ngFor=\"let option of dataSource\">\r\n <ejs-checkbox\r\n [name]=\"name\"\r\n [label]=\"option[fields.text]\"\r\n [value]=\"option[fields.value]\"\r\n [disabled]=\"option[fields.disabled] || disabled\"\r\n [checked]=\"value.includes(option[fields.value])\"\r\n (change)=\"onChange($event, option)\"\r\n ></ejs-checkbox>\r\n </div>\r\n</div>\r\n", styles: [".checkbox-group{display:flex;padding-left:4px}.checkbox-group.horizontal{flex-direction:row;gap:35px}.checkbox-group.vertical{flex-direction:column;gap:14px}.checkbox-group.error .e-checkbox-wrapper .e-frame{border-color:var(--rs-input-error-border-color)}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: i3$2.CheckBoxComponent, selector: "ejs-checkbox", inputs: ["checked", "cssClass", "disabled", "enableHtmlSanitizer", "enablePersistence", "enableRtl", "htmlAttributes", "indeterminate", "label", "labelPosition", "locale", "name", "value"], outputs: ["focus", "blur", "change", "created", "checkedChange", "indeterminateChange"] }] });
|
|
19188
19488
|
}
|
|
19189
19489
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CheckboxGroupComponent, decorators: [{
|
|
19190
19490
|
type: Component,
|
|
@@ -19225,7 +19525,7 @@ class SwitchInputComponent {
|
|
|
19225
19525
|
this.valueChange.emit(value);
|
|
19226
19526
|
}
|
|
19227
19527
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SwitchInputComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
19228
|
-
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$3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2$3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i3$
|
|
19528
|
+
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$3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2$3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i3$2.SwitchComponent, selector: "ejs-switch", inputs: ["checked", "cssClass", "disabled", "enablePersistence", "enableRtl", "htmlAttributes", "locale", "name", "offLabel", "onLabel", "value"], outputs: ["focus", "blur", "change", "created", "checkedChange"] }] });
|
|
19229
19529
|
}
|
|
19230
19530
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SwitchInputComponent, decorators: [{
|
|
19231
19531
|
type: Component,
|
|
@@ -19286,9 +19586,8 @@ function filterShowSection(sections) {
|
|
|
19286
19586
|
const EmailPattern = /^(?=.{1,254}$)(?=.{1,64}@)[a-zA-Z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-zA-Z0-9!#$%&'*+/=?^_`{|}~-]+)*@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/;
|
|
19287
19587
|
|
|
19288
19588
|
class DrawerFormComponent {
|
|
19289
|
-
datePipe;
|
|
19290
19589
|
ref;
|
|
19291
|
-
|
|
19590
|
+
_sections = [];
|
|
19292
19591
|
optionsMap = {};
|
|
19293
19592
|
customTemplate;
|
|
19294
19593
|
customSectionTemplate;
|
|
@@ -19307,16 +19606,18 @@ class DrawerFormComponent {
|
|
|
19307
19606
|
rootEl;
|
|
19308
19607
|
containers;
|
|
19309
19608
|
sectionContainers;
|
|
19609
|
+
sections = [];
|
|
19310
19610
|
filterOptionsMap = {};
|
|
19311
19611
|
fieldValidMap = {};
|
|
19312
|
-
|
|
19313
|
-
|
|
19612
|
+
dateValidMap = {};
|
|
19613
|
+
constructor(ref) {
|
|
19314
19614
|
this.ref = ref;
|
|
19315
19615
|
}
|
|
19316
19616
|
ngOnInit() { }
|
|
19317
19617
|
ngOnChanges(changes) {
|
|
19318
|
-
if (changes.
|
|
19319
|
-
this.
|
|
19618
|
+
if (changes._sections) {
|
|
19619
|
+
this.sections = filterShowSection(changes._sections.currentValue);
|
|
19620
|
+
this.formatForm(this.sections);
|
|
19320
19621
|
}
|
|
19321
19622
|
if (changes.form && !changes.form.firstChange) {
|
|
19322
19623
|
this.checkFormChange(changes.form.previousValue, changes.form.currentValue);
|
|
@@ -19371,7 +19672,9 @@ class DrawerFormComponent {
|
|
|
19371
19672
|
Object.entries(current).forEach(([key, currentValue]) => {
|
|
19372
19673
|
if (previous[key] !== currentValue) {
|
|
19373
19674
|
const field = this.getField(key);
|
|
19374
|
-
|
|
19675
|
+
if (field) {
|
|
19676
|
+
this.formItemValidator(field);
|
|
19677
|
+
}
|
|
19375
19678
|
}
|
|
19376
19679
|
});
|
|
19377
19680
|
}
|
|
@@ -19469,13 +19772,30 @@ class DrawerFormComponent {
|
|
|
19469
19772
|
onInput(value, field) {
|
|
19470
19773
|
this.callFunction(field.onInput, value, field);
|
|
19471
19774
|
}
|
|
19472
|
-
|
|
19775
|
+
onComponentChange(event, field) {
|
|
19776
|
+
if (!event.isInteracted) {
|
|
19777
|
+
return;
|
|
19778
|
+
}
|
|
19779
|
+
let value = event.value;
|
|
19473
19780
|
if (field.fieldFormType === "Datepicker") {
|
|
19474
|
-
value =
|
|
19781
|
+
value = moment(value).format("YYYY-MM-DD");
|
|
19475
19782
|
}
|
|
19783
|
+
this.onChange(value, field);
|
|
19784
|
+
}
|
|
19785
|
+
onChange(value, field) {
|
|
19476
19786
|
this.updateForm(value, field);
|
|
19477
19787
|
this.callFunction(field.onChange, value, field);
|
|
19478
19788
|
}
|
|
19789
|
+
onDatePickerBlur(event, field) {
|
|
19790
|
+
this.onBlur(field);
|
|
19791
|
+
const $input = event.model.element.querySelector("input");
|
|
19792
|
+
if (!$input) {
|
|
19793
|
+
return;
|
|
19794
|
+
}
|
|
19795
|
+
const date = moment($input.value);
|
|
19796
|
+
this.onChange(date.isValid() ? date.format("YYYY-MM-DD") : null, field);
|
|
19797
|
+
this.dateValidMap[field.formKey] = date.isValid();
|
|
19798
|
+
}
|
|
19479
19799
|
onFocus(field) {
|
|
19480
19800
|
this.callFunction(field.onFocus, field);
|
|
19481
19801
|
}
|
|
@@ -19489,6 +19809,13 @@ class DrawerFormComponent {
|
|
|
19489
19809
|
}
|
|
19490
19810
|
event.updateData(this.optionsMap[field.optionKey] || [], query);
|
|
19491
19811
|
}
|
|
19812
|
+
getValue(field) {
|
|
19813
|
+
if (field.fieldFormType === "Datepicker" && this.form[field.formKey]) {
|
|
19814
|
+
const date = moment(this.form[field.formKey]);
|
|
19815
|
+
return date.isValid() ? date.toDate() : null;
|
|
19816
|
+
}
|
|
19817
|
+
return this.form[field.formKey];
|
|
19818
|
+
}
|
|
19492
19819
|
getDisabled(field) {
|
|
19493
19820
|
if (this.formDisabled) {
|
|
19494
19821
|
return true;
|
|
@@ -19554,13 +19881,13 @@ class DrawerFormComponent {
|
|
|
19554
19881
|
onScroll();
|
|
19555
19882
|
scrollViewEl.addEventListener("scroll", onScroll);
|
|
19556
19883
|
}
|
|
19557
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DrawerFormComponent, deps: [{ token:
|
|
19558
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: DrawerFormComponent, selector: "rs-drawer-form", inputs: { sections: "sections", optionsMap: "optionsMap", customTemplate: "customTemplate", customSectionTemplate: "customSectionTemplate", formDisabled: ["disabled", "formDisabled"], showAnchor: "showAnchor", optionFields: "optionFields", showFilterNumber: "showFilterNumber", form: "form" }, outputs: { formChange: "formChange", fieldChange: "fieldChange" }, providers: [DatePipe], viewQueries: [{ propertyName: "rootEl", first: true, predicate: ["drawerFormEl"], descendants: true }, { propertyName: "containers", predicate: ["customTemplateContainer"], descendants: true, read: ViewContainerRef }, { propertyName: "sectionContainers", predicate: ["customSectionContainer"], descendants: true, read: ViewContainerRef }, { propertyName: "sectionEls", predicate: ["sectionEl"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div #drawerFormEl class=\"rs-drawer-form-container\">\r\n <div class=\"section-container\">\r\n <div #sectionEl class=\"section-item\" *ngFor=\"let section of sections\">\r\n <input\r\n type=\"checkbox\"\r\n class=\"section-expand-checkbox\"\r\n *ngIf=\"section.title\"\r\n />\r\n <div class=\"section-title\" *ngIf=\"section.title\">\r\n <span>{{ section.title }}</span>\r\n </div>\r\n <div class=\"section-form\" *ngIf=\"!section.customKey\">\r\n <div\r\n class=\"form-item\"\r\n *ngFor=\"let field of section.fields\"\r\n [attr.data-required]=\"field.required ? 'yes' : 'no'\"\r\n [attr.data-disabled]=\"field.disabled || formDisabled ? 'yes' : 'no'\"\r\n [attr.data-error]=\"\r\n fieldValidMap[field.formKey] === false ? 'yes' : 'no'\r\n \"\r\n >\r\n <div class=\"form-label\">\r\n <span>{{ field.label }}</span>\r\n <ejs-tooltip\r\n class=\"form-tooltip\"\r\n cssClass=\"rs-drawer-tooltip\"\r\n *ngIf=\"field.tooltip\"\r\n position=\"RightCenter\"\r\n [content]=\"field.tooltip\"\r\n >\r\n <span class=\"tooltip-icon\"></span>\r\n </ejs-tooltip>\r\n </div>\r\n <div class=\"form-content\">\r\n <!-- Radio -->\r\n <rs-radio-group\r\n *ngIf=\"field.fieldFormType === 'Radio'\"\r\n [value]=\"form[field.formKey]\"\r\n [dataSource]=\"optionsMap[field.optionKey]\"\r\n [fields]=\"getOptionFields(field)\"\r\n [disabled]=\"getDisabled(field)\"\r\n [error]=\"fieldValidMap[field.formKey] === false\"\r\n (valueChange)=\"onChange($event, field)\"\r\n ></rs-radio-group>\r\n <!-- Checkbox -->\r\n <rs-checkbox-group\r\n *ngIf=\"field.fieldFormType === 'Checkbox'\"\r\n [value]=\"form[field.formKey]\"\r\n [dataSource]=\"optionsMap[field.optionKey]\"\r\n [fields]=\"getOptionFields(field)\"\r\n [disabled]=\"getDisabled(field)\"\r\n [error]=\"fieldValidMap[field.formKey] === false\"\r\n (valueChange)=\"onChange($event, field)\"\r\n ></rs-checkbox-group>\r\n <!-- Switch -->\r\n <rs-switch-input\r\n *ngIf=\"field.fieldFormType === 'Switch'\"\r\n [value]=\"form[field.formKey]\"\r\n [disabled]=\"getDisabled(field)\"\r\n (valueChange)=\"onChange($event, field)\"\r\n ></rs-switch-input>\r\n <!-- Input -->\r\n <input\r\n class=\"e-input\"\r\n *ngIf=\"\r\n field.fieldFormType === 'Text' ||\r\n field.fieldFormType === 'Email'\r\n \"\r\n [value]=\"form[field.formKey]\"\r\n [disabled]=\"getDisabled(field)\"\r\n [required]=\"field.required\"\r\n [attr.maxlength]=\"field.maxlength\"\r\n [attr.minlength]=\"field.minlength\"\r\n [class.error]=\"fieldValidMap[field.formKey] === false\"\r\n (input)=\"onInput($event.target.value, field)\"\r\n (change)=\"onChange($event.target.value, field)\"\r\n (focus)=\"onFocus(field)\"\r\n (blur)=\"onBlur(field)\"\r\n autocomplete=\"off\"\r\n />\r\n <!-- Textarea -->\r\n <textarea\r\n class=\"e-input\"\r\n *ngIf=\"field.fieldFormType === 'Textarea'\"\r\n [value]=\"form[field.formKey]\"\r\n [disabled]=\"getDisabled(field)\"\r\n [required]=\"field.required\"\r\n [attr.maxlength]=\"field.maxlength\"\r\n [attr.minlength]=\"field.minlength\"\r\n [class.error]=\"fieldValidMap[field.formKey] === false\"\r\n (input)=\"onInput($event.target.value, field)\"\r\n (change)=\"onChange($event.target.value, field)\"\r\n (focus)=\"onFocus(field)\"\r\n (blur)=\"onBlur(field)\"\r\n autocomplete=\"off\"\r\n rows=\"3\"\r\n ></textarea>\r\n <!-- Number Input -->\r\n <ejs-numerictextbox\r\n *ngIf=\"field.fieldFormType === 'Number'\"\r\n [value]=\"form[field.formKey]\"\r\n [max]=\"field.max\"\r\n [min]=\"field.min\"\r\n [format]=\"field.format\"\r\n [enabled]=\"!getDisabled(field)\"\r\n [class.error]=\"fieldValidMap[field.formKey] === false\"\r\n (change)=\"$event.isInteracted && onChange($event.value, field)\"\r\n (focus)=\"onFocus(field)\"\r\n (blur)=\"onBlur(field)\"\r\n ></ejs-numerictextbox>\r\n <!-- Tags Input -->\r\n <rs-tag-input\r\n *ngIf=\"field.fieldFormType === 'Tags'\"\r\n [value]=\"form[field.formKey]\"\r\n [fields]=\"getOptionFields(field)\"\r\n [inputMaxlength]=\"field.maxlength\"\r\n [inputMinlength]=\"field.minlength\"\r\n [disabled]=\"getDisabled(field)\"\r\n [error]=\"fieldValidMap[field.formKey] === false\"\r\n (valueChange)=\"onChange($event, field)\"\r\n (focus)=\"onFocus(field)\"\r\n (blur)=\"onBlur(field)\"\r\n ></rs-tag-input>\r\n <!-- AutoComplete -->\r\n <ejs-autocomplete\r\n *ngIf=\"field.fieldFormType === 'AutoComplete'\"\r\n [value]=\"form[field.formKey]\"\r\n [dataSource]=\"optionsMap[field.optionKey]\"\r\n [fields]=\"getOptionFields(field)\"\r\n [enabled]=\"!getDisabled(field)\"\r\n [class.error]=\"fieldValidMap[field.formKey] === false\"\r\n (filtering)=\"onFiltering($event, field)\"\r\n (change)=\"$event.isInteracted && onChange($event.value, field)\"\r\n (focus)=\"onFocus(field)\"\r\n (blur)=\"onBlur(field)\"\r\n ></ejs-autocomplete>\r\n <!-- Dropdown -->\r\n <ejs-dropdownlist\r\n *ngIf=\"field.fieldFormType === 'Dropdown'\"\r\n [value]=\"form[field.formKey]\"\r\n [dataSource]=\"optionsMap[field.optionKey]\"\r\n [fields]=\"getOptionFields(field)\"\r\n [allowFiltering]=\"true\"\r\n [showClearButton]=\"true\"\r\n [enabled]=\"!getDisabled(field)\"\r\n [class.error]=\"fieldValidMap[field.formKey] === false\"\r\n (filtering)=\"onFiltering($event, field)\"\r\n (change)=\"$event.isInteracted && onChange($event.value, field)\"\r\n (focus)=\"onFocus(field)\"\r\n (blur)=\"onBlur(field)\"\r\n ></ejs-dropdownlist>\r\n <!-- MultiSelect -->\r\n <ejs-multiselect\r\n *ngIf=\"field.fieldFormType === 'MultiSelect'\"\r\n mode=\"CheckBox\"\r\n [value]=\"form[field.formKey]\"\r\n [dataSource]=\"optionsMap[field.optionKey]\"\r\n [fields]=\"getOptionFields(field)\"\r\n [allowFiltering]=\"true\"\r\n [showDropDownIcon]=\"true\"\r\n [enabled]=\"!getDisabled(field)\"\r\n [class.error]=\"fieldValidMap[field.formKey] === false\"\r\n (filtering)=\"onFiltering($event, field)\"\r\n (change)=\"$event.isInteracted && onChange($event.value, field)\"\r\n (focus)=\"onFocus(field)\"\r\n (blur)=\"onBlur(field)\"\r\n >\r\n </ejs-multiselect>\r\n <!-- Datepicker -->\r\n <ejs-datepicker\r\n *ngIf=\"field.fieldFormType === 'Datepicker'\"\r\n [value]=\"form[field.formKey]\"\r\n [format]=\"field.format || 'dd-MMM-yyyy'\"\r\n [enabled]=\"!getDisabled(field)\"\r\n [class.error]=\"fieldValidMap[field.formKey] === false\"\r\n (change)=\"$event.isInteracted && onChange($event.value, field)\"\r\n (focus)=\"onFocus(field)\"\r\n (blur)=\"onBlur(field)\"\r\n ></ejs-datepicker>\r\n <ng-template\r\n #customTemplateContainer\r\n *ngIf=\"field.fieldFormType === 'Custom'\"\r\n ></ng-template>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"section-form\" *ngIf=\"section.customKey\">\r\n <ng-template #customSectionContainer></ng-template>\r\n </div>\r\n </div>\r\n </div>\r\n <div *ngIf=\"sections.length > 1 && showAnchor\" class=\"anchor-container\">\r\n <div\r\n class=\"anchor-item\"\r\n *ngFor=\"let section of sections; let index = index\"\r\n [style.display]=\"section.title ? 'block' : 'none'\"\r\n [attr.data-active]=\"scrollIndex === index ? 'yes' : 'no'\"\r\n [attr.data-content]=\"section.title\"\r\n (click)=\"onClickAnchor(index)\"\r\n ></div>\r\n </div>\r\n</div>\r\n", styles: [":host{display:block;margin-top:16px}.rs-drawer-form-container{display:flex;flex-flow:row nowrap;align-items:flex-start;gap:32px}.rs-drawer-form-container .section-container{flex:auto;display:flex;flex-flow:column nowrap;max-width:1576px}.rs-drawer-form-container .section-item{position:relative}.rs-drawer-form-container .section-item:not(:first-child){border-top:1px solid #eaedf0}.rs-drawer-form-container .section-expand-checkbox{display:block;width:100%;height:28px;appearance:none;cursor:pointer;position:absolute;top:0;left:0}.rs-drawer-form-container .section-expand-checkbox:checked+.section-title:before{transform:rotate(-90deg)}.rs-drawer-form-container .section-expand-checkbox:checked+.section-title+.section-form{max-height:0;overflow:hidden}.rs-drawer-form-container .section-title{padding:6px 0;margin-bottom:12px;color:#44566c;font-family:Arial;font-size:13px;font-style:normal;font-weight:700;line-height:16px;display:flex;flex-flow:row nowrap;align-items:center;pointer-events:none}.rs-drawer-form-container .section-title:before{content:url(\"data:image/svg+xml,%3Csvg width%3D%2216%22 height%3D%2216%22 viewBox%3D%220 0 16 16%22 fill%3D%22none%22 xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0D%3Cpath d%3D%22M12.2426 6.24264L8 9.5L3.75736 6.24264%22 stroke%3D%22%236B6B6B%22%2F%3E%0D%3C%2Fsvg%3E%0D\");display:block;height:16px;width:16px;margin-right:8px}.rs-drawer-form-container .section-form{display:flex;flex-flow:row wrap;justify-content:space-between;gap:12px 56px;max-width:1576px;padding:0 24px;margin-bottom:20px}.rs-drawer-form-container .section-form .form-item{min-height:28px;min-width:400px;max-width:700px;width:calc((100% - 56px)/2);display:flex;flex-flow:row nowrap;justify-content:flex-start;align-items:flex-start}.rs-drawer-form-container .section-form .form-item[data-required=yes] .form-label>span:first-child:after{content:\"*\";color:var(--rs-input-require-label-color)}.rs-drawer-form-container .section-form .form-item .form-label{flex:none;width:144px;height:28px;margin-right:16px;color:#43566c;font-family:Arial;font-size:12px;font-style:normal;font-weight:400;line-height:14px;display:flex;flex-flow:row nowrap;align-items:center}.rs-drawer-form-container .section-form .form-item .form-label .form-tooltip{margin-left:4px}.rs-drawer-form-container .section-form .form-item .form-label .form-tooltip .tooltip-icon:before{content:\" \";display:block;width:14px;height:14px;background-image:url(\"data:image/svg+xml,%3Csvg width%3D%2218%22 height%3D%2218%22 viewBox%3D%220 0 18 18%22 fill%3D%22none%22 xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0D %3Cpath d%3D%22M9 1a8 8 0 1 0 8 8 8.009 8.009 0 0 0-8-8zm0 14.667A6.666 6.666 0 1 1 15.667 9 6.674 6.674 0 0 1 9 15.667z%22 fill%3D%22%2344566C%22%2F%3E%0D %3Cpath d%3D%22M9 7.667h-.667a.667.667 0 1 0 0 1.333h.666v4a.667.667 0 0 0 1.334 0V9a1.333 1.333 0 0 0-1.334-1.333zM9 6.333a1 1 0 1 0 0-2 1 1 0 0 0 0 2z%22 fill%3D%22%2344566C%22%2F%3E%0D%3C%2Fsvg%3E%0D\");background-size:contain;cursor:pointer}.rs-drawer-form-container .section-form .form-item .form-content{flex:auto}@media (max-width: 1420px){.rs-drawer-form-container .section-form .form-item{width:100%}}.rs-drawer-form-container .anchor-container{flex:none;display:flex;flex-flow:column nowrap;gap:4px;min-width:120px;height:auto;position:sticky;top:56px}.rs-drawer-form-container .anchor-item{min-width:120px;padding:4px 12px;border-left:1px solid #eaedf0;cursor:pointer;color:#44566c;font-family:Arial;font-size:11px;font-style:normal;font-weight:400;line-height:16px;position:relative}.rs-drawer-form-container .anchor-item:before{content:attr(data-content);color:#44566c;font-weight:400;position:absolute;left:12px}.rs-drawer-form-container .anchor-item:after{content:attr(data-content);visibility:hidden;color:#1364b3;font-weight:700}.rs-drawer-form-container .anchor-item[data-active=yes]{border-color:#1f7bff}.rs-drawer-form-container .anchor-item[data-active=yes]:before{visibility:hidden}.rs-drawer-form-container .anchor-item[data-active=yes]:after{visibility:visible}.rs-drawer-tooltip.e-tooltip-wrap{border:none;background-color:#44566c}.rs-drawer-tooltip.e-tooltip-wrap .e-arrow-tip{height:4px;visibility:hidden}\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: i5.TooltipComponent, selector: "ejs-tooltip", inputs: ["animation", "closeDelay", "container", "content", "cssClass", "enableHtmlParse", "enableHtmlSanitizer", "enablePersistence", "enableRtl", "height", "htmlAttributes", "isSticky", "locale", "mouseTrail", "offsetX", "offsetY", "openDelay", "opensOn", "position", "showTipPointer", "target", "tipPointerPosition", "width", "windowCollision"], outputs: ["afterClose", "afterOpen", "beforeClose", "beforeCollision", "beforeOpen", "beforeRender", "created", "destroyed"] }, { kind: "component", type: i3$5.DatePickerComponent, selector: "ejs-datepicker", inputs: ["allowEdit", "calendarMode", "cssClass", "dayHeaderFormat", "depth", "enableMask", "enablePersistence", "enableRtl", "enabled", "firstDayOfWeek", "floatLabelType", "format", "fullScreenMode", "htmlAttributes", "isMultiSelection", "keyConfigs", "locale", "maskPlaceholder", "max", "min", "openOnFocus", "placeholder", "readonly", "serverTimezoneOffset", "showClearButton", "showTodayButton", "start", "strictMode", "value", "values", "weekNumber", "weekRule", "width", "zIndex"], outputs: ["blur", "change", "cleared", "close", "created", "destroyed", "focus", "navigated", "open", "renderDayCell", "valueChange"] }, { kind: "component", type: i3$2.NumericTextBoxComponent, selector: "ejs-numerictextbox", inputs: ["cssClass", "currency", "currencyCode", "decimals", "enablePersistence", "enableRtl", "enabled", "floatLabelType", "format", "htmlAttributes", "locale", "max", "min", "placeholder", "readonly", "showClearButton", "showSpinButton", "step", "strictMode", "validateDecimalOnType", "value", "width"], outputs: ["blur", "change", "created", "destroyed", "focus", "valueChange"] }, { kind: "component", type: i5$1.DropDownListComponent, selector: "ejs-dropdownlist", inputs: ["actionFailureTemplate", "allowFiltering", "allowObjectBinding", "cssClass", "dataSource", "enablePersistence", "enableRtl", "enableVirtualization", "enabled", "fields", "filterBarPlaceholder", "filterType", "floatLabelType", "footerTemplate", "groupTemplate", "headerTemplate", "htmlAttributes", "ignoreAccent", "ignoreCase", "index", "isDeviceFullScreen", "itemTemplate", "locale", "noRecordsTemplate", "placeholder", "popupHeight", "popupWidth", "query", "readonly", "showClearButton", "sortOrder", "text", "value", "valueTemplate", "width", "zIndex"], outputs: ["actionBegin", "actionComplete", "actionFailure", "beforeOpen", "blur", "change", "close", "created", "dataBound", "destroyed", "filtering", "focus", "open", "select", "valueChange"] }, { kind: "component", type: i5$1.MultiSelectComponent, selector: "ejs-multiselect", inputs: ["actionFailureTemplate", "addTagOnBlur", "allowCustomValue", "allowFiltering", "allowObjectBinding", "changeOnBlur", "closePopupOnSelect", "cssClass", "dataSource", "delimiterChar", "enableGroupCheckBox", "enableHtmlSanitizer", "enablePersistence", "enableRtl", "enableSelectionOrder", "enableVirtualization", "enabled", "fields", "filterBarPlaceholder", "filterType", "floatLabelType", "footerTemplate", "groupTemplate", "headerTemplate", "hideSelectedItem", "htmlAttributes", "ignoreAccent", "ignoreCase", "isDeviceFullScreen", "itemTemplate", "locale", "maximumSelectionLength", "mode", "noRecordsTemplate", "openOnClick", "placeholder", "popupHeight", "popupWidth", "query", "readonly", "selectAllText", "showClearButton", "showDropDownIcon", "showSelectAll", "sortOrder", "text", "unSelectAllText", "value", "valueTemplate", "width", "zIndex"], outputs: ["actionBegin", "actionComplete", "actionFailure", "beforeOpen", "beforeSelectAll", "blur", "change", "chipSelection", "close", "created", "customValueSelection", "dataBound", "destroyed", "filtering", "focus", "open", "removed", "removing", "select", "selectedAll", "tagging", "valueChange"] }, { kind: "component", type: i5$1.AutoCompleteComponent, selector: "ejs-autocomplete", inputs: ["actionFailureTemplate", "allowCustom", "allowFiltering", "allowObjectBinding", "autofill", "cssClass", "dataSource", "enablePersistence", "enableRtl", "enableVirtualization", "enabled", "fields", "filterBarPlaceholder", "filterType", "floatLabelType", "footerTemplate", "groupTemplate", "headerTemplate", "highlight", "htmlAttributes", "ignoreAccent", "ignoreCase", "index", "isDeviceFullScreen", "itemTemplate", "locale", "minLength", "noRecordsTemplate", "placeholder", "popupHeight", "popupWidth", "query", "readonly", "showClearButton", "showPopupButton", "sortOrder", "suggestionCount", "text", "value", "valueTemplate", "width", "zIndex"], outputs: ["actionBegin", "actionComplete", "actionFailure", "beforeOpen", "blur", "change", "close", "created", "customValueSpecifier", "dataBound", "destroyed", "filtering", "focus", "open", "select", "valueChange"] }, { kind: "component", type: TagInputComponent, selector: "rs-tag-input", inputs: ["value", "fields", "disabled", "error", "inputMinlength", "inputMaxlength"], outputs: ["valueChange", "focus", "blur"] }, { kind: "component", type: RadioGroupComponent, selector: "rs-radio-group", inputs: ["value", "dataSource", "orientation", "fields", "disabled", "error"], outputs: ["valueChange"] }, { kind: "component", type: CheckboxGroupComponent, selector: "rs-checkbox-group", inputs: ["name", "value", "dataSource", "orientation", "fields", "disabled", "error"], outputs: ["valueChange"] }, { kind: "component", type: SwitchInputComponent, selector: "rs-switch-input", inputs: ["value", "text", "orientation", "disabled", "error"], outputs: ["valueChange"] }] });
|
|
19884
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DrawerFormComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
19885
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: DrawerFormComponent, selector: "rs-drawer-form", inputs: { _sections: ["sections", "_sections"], optionsMap: "optionsMap", customTemplate: "customTemplate", customSectionTemplate: "customSectionTemplate", formDisabled: ["disabled", "formDisabled"], showAnchor: "showAnchor", optionFields: "optionFields", showFilterNumber: "showFilterNumber", form: "form" }, outputs: { formChange: "formChange", fieldChange: "fieldChange" }, viewQueries: [{ propertyName: "rootEl", first: true, predicate: ["drawerFormEl"], descendants: true }, { propertyName: "containers", predicate: ["customTemplateContainer"], descendants: true, read: ViewContainerRef }, { propertyName: "sectionContainers", predicate: ["customSectionContainer"], descendants: true, read: ViewContainerRef }, { propertyName: "sectionEls", predicate: ["sectionEl"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div #drawerFormEl class=\"rs-drawer-form-container\">\r\n <div class=\"section-container\">\r\n <div #sectionEl class=\"section-item\" *ngFor=\"let section of sections\">\r\n <input\r\n type=\"checkbox\"\r\n class=\"section-expand-checkbox\"\r\n *ngIf=\"section.title\"\r\n />\r\n <div class=\"section-title\" *ngIf=\"section.title\">\r\n <span>{{ section.title }}</span>\r\n </div>\r\n <div class=\"section-form\" *ngIf=\"!section.customKey\">\r\n <div\r\n class=\"form-item\"\r\n *ngFor=\"let field of section.fields\"\r\n [attr.data-required]=\"field.required ? 'yes' : 'no'\"\r\n [attr.data-disabled]=\"field.disabled || formDisabled ? 'yes' : 'no'\"\r\n [attr.data-error]=\"\r\n fieldValidMap[field.formKey] === false ? 'yes' : 'no'\r\n \"\r\n >\r\n <div class=\"form-label\">\r\n <span>{{ field.label }}</span>\r\n <ejs-tooltip\r\n class=\"form-tooltip\"\r\n cssClass=\"rs-drawer-tooltip\"\r\n *ngIf=\"field.tooltip\"\r\n position=\"RightCenter\"\r\n [content]=\"field.tooltip\"\r\n >\r\n <span class=\"tooltip-icon\"></span>\r\n </ejs-tooltip>\r\n </div>\r\n <div class=\"form-content\">\r\n <!-- Radio -->\r\n <rs-radio-group\r\n *ngIf=\"field.fieldFormType === 'Radio'\"\r\n [value]=\"form[field.formKey]\"\r\n [dataSource]=\"optionsMap[field.optionKey]\"\r\n [fields]=\"getOptionFields(field)\"\r\n [disabled]=\"getDisabled(field)\"\r\n [error]=\"fieldValidMap[field.formKey] === false\"\r\n (valueChange)=\"onChange($event, field)\"\r\n ></rs-radio-group>\r\n <!-- Checkbox -->\r\n <rs-checkbox-group\r\n *ngIf=\"field.fieldFormType === 'Checkbox'\"\r\n [value]=\"form[field.formKey]\"\r\n [dataSource]=\"optionsMap[field.optionKey]\"\r\n [fields]=\"getOptionFields(field)\"\r\n [disabled]=\"getDisabled(field)\"\r\n [error]=\"fieldValidMap[field.formKey] === false\"\r\n (valueChange)=\"onChange($event, field)\"\r\n ></rs-checkbox-group>\r\n <!-- Switch -->\r\n <rs-switch-input\r\n *ngIf=\"field.fieldFormType === 'Switch'\"\r\n [value]=\"form[field.formKey]\"\r\n [disabled]=\"getDisabled(field)\"\r\n (valueChange)=\"onChange($event, field)\"\r\n ></rs-switch-input>\r\n <!-- Input -->\r\n <input\r\n class=\"e-input\"\r\n *ngIf=\"\r\n field.fieldFormType === 'Text' ||\r\n field.fieldFormType === 'Email'\r\n \"\r\n [value]=\"form[field.formKey]\"\r\n [disabled]=\"getDisabled(field)\"\r\n [required]=\"field.required\"\r\n [attr.maxlength]=\"field.maxlength\"\r\n [attr.minlength]=\"field.minlength\"\r\n [class.error]=\"fieldValidMap[field.formKey] === false\"\r\n (input)=\"onInput($event.target.value, field)\"\r\n (change)=\"onChange($event.target.value, field)\"\r\n (focus)=\"onFocus(field)\"\r\n (blur)=\"onBlur(field)\"\r\n autocomplete=\"off\"\r\n />\r\n <!-- Textarea -->\r\n <textarea\r\n class=\"e-input\"\r\n *ngIf=\"field.fieldFormType === 'Textarea'\"\r\n [value]=\"form[field.formKey]\"\r\n [disabled]=\"getDisabled(field)\"\r\n [required]=\"field.required\"\r\n [attr.maxlength]=\"field.maxlength\"\r\n [attr.minlength]=\"field.minlength\"\r\n [class.error]=\"fieldValidMap[field.formKey] === false\"\r\n (input)=\"onInput($event.target.value, field)\"\r\n (change)=\"onChange($event.target.value, field)\"\r\n (focus)=\"onFocus(field)\"\r\n (blur)=\"onBlur(field)\"\r\n autocomplete=\"off\"\r\n rows=\"3\"\r\n ></textarea>\r\n <!-- Number Input -->\r\n <ejs-numerictextbox\r\n *ngIf=\"field.fieldFormType === 'Number'\"\r\n [value]=\"form[field.formKey]\"\r\n [max]=\"field.max\"\r\n [min]=\"field.min\"\r\n [step]=\"field.step\"\r\n [decimals]=\"field.decimals\"\r\n [format]=\"field.format\"\r\n [enabled]=\"!getDisabled(field)\"\r\n [class.error]=\"fieldValidMap[field.formKey] === false\"\r\n (change)=\"onComponentChange($event, field)\"\r\n (focus)=\"onFocus(field)\"\r\n (blur)=\"onBlur(field)\"\r\n ></ejs-numerictextbox>\r\n <!-- Tags Input -->\r\n <rs-tag-input\r\n *ngIf=\"field.fieldFormType === 'Tags'\"\r\n [value]=\"form[field.formKey]\"\r\n [fields]=\"getOptionFields(field)\"\r\n [inputMaxlength]=\"field.maxlength\"\r\n [inputMinlength]=\"field.minlength\"\r\n [disabled]=\"getDisabled(field)\"\r\n [error]=\"fieldValidMap[field.formKey] === false\"\r\n (valueChange)=\"onChange($event, field)\"\r\n (focus)=\"onFocus(field)\"\r\n (blur)=\"onBlur(field)\"\r\n ></rs-tag-input>\r\n <!-- AutoComplete -->\r\n <ejs-autocomplete\r\n *ngIf=\"field.fieldFormType === 'AutoComplete'\"\r\n [value]=\"form[field.formKey]\"\r\n [dataSource]=\"optionsMap[field.optionKey]\"\r\n [fields]=\"getOptionFields(field)\"\r\n [enabled]=\"!getDisabled(field)\"\r\n [class.error]=\"fieldValidMap[field.formKey] === false\"\r\n (filtering)=\"onFiltering($event, field)\"\r\n (change)=\"onComponentChange($event, field)\"\r\n (focus)=\"onFocus(field)\"\r\n (blur)=\"onBlur(field)\"\r\n ></ejs-autocomplete>\r\n <!-- Dropdown -->\r\n <ejs-dropdownlist\r\n *ngIf=\"field.fieldFormType === 'Dropdown'\"\r\n [value]=\"form[field.formKey]\"\r\n [dataSource]=\"optionsMap[field.optionKey]\"\r\n [fields]=\"getOptionFields(field)\"\r\n [allowFiltering]=\"true\"\r\n [showClearButton]=\"true\"\r\n [enabled]=\"!getDisabled(field)\"\r\n [class.error]=\"fieldValidMap[field.formKey] === false\"\r\n (filtering)=\"onFiltering($event, field)\"\r\n (change)=\"onComponentChange($event, field)\"\r\n (focus)=\"onFocus(field)\"\r\n (blur)=\"onBlur(field)\"\r\n ></ejs-dropdownlist>\r\n <!-- MultiSelect -->\r\n <ejs-multiselect\r\n *ngIf=\"field.fieldFormType === 'MultiSelect'\"\r\n mode=\"CheckBox\"\r\n [ngModel]=\"form[field.formKey]\"\r\n [dataSource]=\"optionsMap[field.optionKey]\"\r\n [fields]=\"getOptionFields(field)\"\r\n [allowFiltering]=\"true\"\r\n [showDropDownIcon]=\"true\"\r\n [enabled]=\"!getDisabled(field)\"\r\n [class.error]=\"fieldValidMap[field.formKey] === false\"\r\n (filtering)=\"onFiltering($event, field)\"\r\n (change)=\"onComponentChange($event, field)\"\r\n (focus)=\"onFocus(field)\"\r\n (blur)=\"onBlur(field)\"\r\n >\r\n </ejs-multiselect>\r\n <!-- Datepicker -->\r\n <ejs-datepicker\r\n *ngIf=\"field.fieldFormType === 'Datepicker'\"\r\n [value]=\"getValue(field)\"\r\n [format]=\"field.format || 'dd-MMM-yyyy'\"\r\n [enabled]=\"!getDisabled(field)\"\r\n [class.error]=\"\r\n fieldValidMap[field.formKey] === false ||\r\n dateValidMap[field.formKey] === false\r\n \"\r\n (change)=\"onComponentChange($event, field)\"\r\n (focus)=\"onFocus(field)\"\r\n (blur)=\"onDatePickerBlur($event, field)\"\r\n ></ejs-datepicker>\r\n <ng-template\r\n #customTemplateContainer\r\n *ngIf=\"field.fieldFormType === 'Custom'\"\r\n ></ng-template>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"section-form\" *ngIf=\"section.customKey\">\r\n <ng-template #customSectionContainer></ng-template>\r\n </div>\r\n </div>\r\n </div>\r\n <div *ngIf=\"sections.length > 1 && showAnchor\" class=\"anchor-container\">\r\n <div\r\n class=\"anchor-item\"\r\n *ngFor=\"let section of sections; let index = index\"\r\n [style.display]=\"section.title ? 'block' : 'none'\"\r\n [attr.data-active]=\"scrollIndex === index ? 'yes' : 'no'\"\r\n [attr.data-content]=\"section.title\"\r\n (click)=\"onClickAnchor(index)\"\r\n ></div>\r\n </div>\r\n</div>\r\n", styles: [":host{display:block;margin-top:16px}.rs-drawer-form-container{display:flex;flex-flow:row nowrap;align-items:flex-start;gap:32px}.rs-drawer-form-container .section-container{flex:auto;display:flex;flex-flow:column nowrap;max-width:1576px}.rs-drawer-form-container .section-item{position:relative}.rs-drawer-form-container .section-item:not(:first-child){border-top:1px solid #eaedf0}.rs-drawer-form-container .section-expand-checkbox{display:block;width:100%;height:28px;appearance:none;cursor:pointer;position:absolute;top:0;left:0}.rs-drawer-form-container .section-expand-checkbox:checked+.section-title:before{transform:rotate(-90deg)}.rs-drawer-form-container .section-expand-checkbox:checked+.section-title+.section-form{max-height:0;overflow:hidden}.rs-drawer-form-container .section-title{padding:6px 0;margin-bottom:12px;color:#44566c;font-family:Arial;font-size:13px;font-style:normal;font-weight:700;line-height:16px;display:flex;flex-flow:row nowrap;align-items:center;pointer-events:none}.rs-drawer-form-container .section-title:before{content:url(\"data:image/svg+xml,%3Csvg width%3D%2216%22 height%3D%2216%22 viewBox%3D%220 0 16 16%22 fill%3D%22none%22 xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0D%3Cpath d%3D%22M12.2426 6.24264L8 9.5L3.75736 6.24264%22 stroke%3D%22%236B6B6B%22%2F%3E%0D%3C%2Fsvg%3E%0D\");display:block;height:16px;width:16px;margin-right:8px}.rs-drawer-form-container .section-form{display:flex;flex-flow:row wrap;justify-content:space-between;gap:12px 56px;max-width:1576px;padding:0 24px;margin-bottom:20px}.rs-drawer-form-container .section-form .form-item{min-height:28px;min-width:400px;max-width:700px;width:calc((100% - 56px)/2);display:flex;flex-flow:row nowrap;justify-content:flex-start;align-items:flex-start}.rs-drawer-form-container .section-form .form-item[data-required=yes] .form-label>span:first-child:after{content:\"*\";color:var(--rs-input-require-label-color)}.rs-drawer-form-container .section-form .form-item .form-label{flex:none;width:144px;height:28px;margin-right:16px;color:#43566c;font-family:Arial;font-size:12px;font-style:normal;font-weight:400;line-height:14px;display:flex;flex-flow:row nowrap;align-items:center}.rs-drawer-form-container .section-form .form-item .form-label .form-tooltip{margin-left:4px}.rs-drawer-form-container .section-form .form-item .form-label .form-tooltip .tooltip-icon:before{content:\" \";display:block;width:14px;height:14px;background-image:url(\"data:image/svg+xml,%3Csvg width%3D%2218%22 height%3D%2218%22 viewBox%3D%220 0 18 18%22 fill%3D%22none%22 xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0D %3Cpath d%3D%22M9 1a8 8 0 1 0 8 8 8.009 8.009 0 0 0-8-8zm0 14.667A6.666 6.666 0 1 1 15.667 9 6.674 6.674 0 0 1 9 15.667z%22 fill%3D%22%2344566C%22%2F%3E%0D %3Cpath d%3D%22M9 7.667h-.667a.667.667 0 1 0 0 1.333h.666v4a.667.667 0 0 0 1.334 0V9a1.333 1.333 0 0 0-1.334-1.333zM9 6.333a1 1 0 1 0 0-2 1 1 0 0 0 0 2z%22 fill%3D%22%2344566C%22%2F%3E%0D%3C%2Fsvg%3E%0D\");background-size:contain;cursor:pointer}.rs-drawer-form-container .section-form .form-item .form-content{flex:auto}@media (max-width: 1420px){.rs-drawer-form-container .section-form .form-item{width:100%}}.rs-drawer-form-container .anchor-container{flex:none;display:flex;flex-flow:column nowrap;gap:4px;min-width:120px;height:auto;position:sticky;top:56px}.rs-drawer-form-container .anchor-item{min-width:120px;padding:4px 12px;border-left:1px solid #eaedf0;cursor:pointer;color:#44566c;font-family:Arial;font-size:11px;font-style:normal;font-weight:400;line-height:16px;position:relative}.rs-drawer-form-container .anchor-item:before{content:attr(data-content);color:#44566c;font-weight:400;position:absolute;left:12px}.rs-drawer-form-container .anchor-item:after{content:attr(data-content);visibility:hidden;color:#1364b3;font-weight:700}.rs-drawer-form-container .anchor-item[data-active=yes]{border-color:#1f7bff}.rs-drawer-form-container .anchor-item[data-active=yes]:before{visibility:hidden}.rs-drawer-form-container .anchor-item[data-active=yes]:after{visibility:visible}.rs-drawer-tooltip.e-tooltip-wrap{border:none;background-color:#44566c}.rs-drawer-tooltip.e-tooltip-wrap .e-arrow-tip{height:4px;visibility:hidden}\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: "directive", type: i2$3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2$3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i5$1.TooltipComponent, selector: "ejs-tooltip", inputs: ["animation", "closeDelay", "container", "content", "cssClass", "enableHtmlParse", "enableHtmlSanitizer", "enablePersistence", "enableRtl", "height", "htmlAttributes", "isSticky", "locale", "mouseTrail", "offsetX", "offsetY", "openDelay", "opensOn", "position", "showTipPointer", "target", "tipPointerPosition", "width", "windowCollision"], outputs: ["afterClose", "afterOpen", "beforeClose", "beforeCollision", "beforeOpen", "beforeRender", "created", "destroyed"] }, { kind: "component", type: i4$1.DatePickerComponent, selector: "ejs-datepicker", inputs: ["allowEdit", "calendarMode", "cssClass", "dayHeaderFormat", "depth", "enableMask", "enablePersistence", "enableRtl", "enabled", "firstDayOfWeek", "floatLabelType", "format", "fullScreenMode", "htmlAttributes", "isMultiSelection", "keyConfigs", "locale", "maskPlaceholder", "max", "min", "openOnFocus", "placeholder", "readonly", "serverTimezoneOffset", "showClearButton", "showTodayButton", "start", "strictMode", "value", "values", "weekNumber", "weekRule", "width", "zIndex"], outputs: ["blur", "change", "cleared", "close", "created", "destroyed", "focus", "navigated", "open", "renderDayCell", "valueChange"] }, { kind: "component", type: i2$4.NumericTextBoxComponent, selector: "ejs-numerictextbox", inputs: ["cssClass", "currency", "currencyCode", "decimals", "enablePersistence", "enableRtl", "enabled", "floatLabelType", "format", "htmlAttributes", "locale", "max", "min", "placeholder", "readonly", "showClearButton", "showSpinButton", "step", "strictMode", "validateDecimalOnType", "value", "width"], outputs: ["blur", "change", "created", "destroyed", "focus", "valueChange"] }, { kind: "component", type: i6.DropDownListComponent, selector: "ejs-dropdownlist", inputs: ["actionFailureTemplate", "allowFiltering", "allowObjectBinding", "cssClass", "dataSource", "enablePersistence", "enableRtl", "enableVirtualization", "enabled", "fields", "filterBarPlaceholder", "filterType", "floatLabelType", "footerTemplate", "groupTemplate", "headerTemplate", "htmlAttributes", "ignoreAccent", "ignoreCase", "index", "isDeviceFullScreen", "itemTemplate", "locale", "noRecordsTemplate", "placeholder", "popupHeight", "popupWidth", "query", "readonly", "showClearButton", "sortOrder", "text", "value", "valueTemplate", "width", "zIndex"], outputs: ["actionBegin", "actionComplete", "actionFailure", "beforeOpen", "blur", "change", "close", "created", "dataBound", "destroyed", "filtering", "focus", "open", "select", "valueChange"] }, { kind: "component", type: i6.MultiSelectComponent, selector: "ejs-multiselect", inputs: ["actionFailureTemplate", "addTagOnBlur", "allowCustomValue", "allowFiltering", "allowObjectBinding", "changeOnBlur", "closePopupOnSelect", "cssClass", "dataSource", "delimiterChar", "enableGroupCheckBox", "enableHtmlSanitizer", "enablePersistence", "enableRtl", "enableSelectionOrder", "enableVirtualization", "enabled", "fields", "filterBarPlaceholder", "filterType", "floatLabelType", "footerTemplate", "groupTemplate", "headerTemplate", "hideSelectedItem", "htmlAttributes", "ignoreAccent", "ignoreCase", "isDeviceFullScreen", "itemTemplate", "locale", "maximumSelectionLength", "mode", "noRecordsTemplate", "openOnClick", "placeholder", "popupHeight", "popupWidth", "query", "readonly", "selectAllText", "showClearButton", "showDropDownIcon", "showSelectAll", "sortOrder", "text", "unSelectAllText", "value", "valueTemplate", "width", "zIndex"], outputs: ["actionBegin", "actionComplete", "actionFailure", "beforeOpen", "beforeSelectAll", "blur", "change", "chipSelection", "close", "created", "customValueSelection", "dataBound", "destroyed", "filtering", "focus", "open", "removed", "removing", "select", "selectedAll", "tagging", "valueChange"] }, { kind: "component", type: i6.AutoCompleteComponent, selector: "ejs-autocomplete", inputs: ["actionFailureTemplate", "allowCustom", "allowFiltering", "allowObjectBinding", "autofill", "cssClass", "dataSource", "enablePersistence", "enableRtl", "enableVirtualization", "enabled", "fields", "filterBarPlaceholder", "filterType", "floatLabelType", "footerTemplate", "groupTemplate", "headerTemplate", "highlight", "htmlAttributes", "ignoreAccent", "ignoreCase", "index", "isDeviceFullScreen", "itemTemplate", "locale", "minLength", "noRecordsTemplate", "placeholder", "popupHeight", "popupWidth", "query", "readonly", "showClearButton", "showPopupButton", "sortOrder", "suggestionCount", "text", "value", "valueTemplate", "width", "zIndex"], outputs: ["actionBegin", "actionComplete", "actionFailure", "beforeOpen", "blur", "change", "close", "created", "customValueSpecifier", "dataBound", "destroyed", "filtering", "focus", "open", "select", "valueChange"] }, { kind: "component", type: TagInputComponent, selector: "rs-tag-input", inputs: ["value", "fields", "disabled", "error", "inputMinlength", "inputMaxlength"], outputs: ["valueChange", "focus", "blur"] }, { kind: "component", type: RadioGroupComponent, selector: "rs-radio-group", inputs: ["value", "dataSource", "orientation", "fields", "disabled", "error"], outputs: ["valueChange"] }, { kind: "component", type: CheckboxGroupComponent, selector: "rs-checkbox-group", inputs: ["name", "value", "dataSource", "orientation", "fields", "disabled", "error"], outputs: ["valueChange"] }, { kind: "component", type: SwitchInputComponent, selector: "rs-switch-input", inputs: ["value", "text", "orientation", "disabled", "error"], outputs: ["valueChange"] }] });
|
|
19559
19886
|
}
|
|
19560
19887
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DrawerFormComponent, decorators: [{
|
|
19561
19888
|
type: Component,
|
|
19562
|
-
args: [{ selector: "rs-drawer-form", providers: [DatePipe], template: "<div #drawerFormEl class=\"rs-drawer-form-container\">\r\n <div class=\"section-container\">\r\n <div #sectionEl class=\"section-item\" *ngFor=\"let section of sections\">\r\n <input\r\n type=\"checkbox\"\r\n class=\"section-expand-checkbox\"\r\n *ngIf=\"section.title\"\r\n />\r\n <div class=\"section-title\" *ngIf=\"section.title\">\r\n <span>{{ section.title }}</span>\r\n </div>\r\n <div class=\"section-form\" *ngIf=\"!section.customKey\">\r\n <div\r\n class=\"form-item\"\r\n *ngFor=\"let field of section.fields\"\r\n [attr.data-required]=\"field.required ? 'yes' : 'no'\"\r\n [attr.data-disabled]=\"field.disabled || formDisabled ? 'yes' : 'no'\"\r\n [attr.data-error]=\"\r\n fieldValidMap[field.formKey] === false ? 'yes' : 'no'\r\n \"\r\n >\r\n <div class=\"form-label\">\r\n <span>{{ field.label }}</span>\r\n <ejs-tooltip\r\n class=\"form-tooltip\"\r\n cssClass=\"rs-drawer-tooltip\"\r\n *ngIf=\"field.tooltip\"\r\n position=\"RightCenter\"\r\n [content]=\"field.tooltip\"\r\n >\r\n <span class=\"tooltip-icon\"></span>\r\n </ejs-tooltip>\r\n </div>\r\n <div class=\"form-content\">\r\n <!-- Radio -->\r\n <rs-radio-group\r\n *ngIf=\"field.fieldFormType === 'Radio'\"\r\n [value]=\"form[field.formKey]\"\r\n [dataSource]=\"optionsMap[field.optionKey]\"\r\n [fields]=\"getOptionFields(field)\"\r\n [disabled]=\"getDisabled(field)\"\r\n [error]=\"fieldValidMap[field.formKey] === false\"\r\n (valueChange)=\"onChange($event, field)\"\r\n ></rs-radio-group>\r\n <!-- Checkbox -->\r\n <rs-checkbox-group\r\n *ngIf=\"field.fieldFormType === 'Checkbox'\"\r\n [value]=\"form[field.formKey]\"\r\n [dataSource]=\"optionsMap[field.optionKey]\"\r\n [fields]=\"getOptionFields(field)\"\r\n [disabled]=\"getDisabled(field)\"\r\n [error]=\"fieldValidMap[field.formKey] === false\"\r\n (valueChange)=\"onChange($event, field)\"\r\n ></rs-checkbox-group>\r\n <!-- Switch -->\r\n <rs-switch-input\r\n *ngIf=\"field.fieldFormType === 'Switch'\"\r\n [value]=\"form[field.formKey]\"\r\n [disabled]=\"getDisabled(field)\"\r\n (valueChange)=\"onChange($event, field)\"\r\n ></rs-switch-input>\r\n <!-- Input -->\r\n <input\r\n class=\"e-input\"\r\n *ngIf=\"\r\n field.fieldFormType === 'Text' ||\r\n field.fieldFormType === 'Email'\r\n \"\r\n [value]=\"form[field.formKey]\"\r\n [disabled]=\"getDisabled(field)\"\r\n [required]=\"field.required\"\r\n [attr.maxlength]=\"field.maxlength\"\r\n [attr.minlength]=\"field.minlength\"\r\n [class.error]=\"fieldValidMap[field.formKey] === false\"\r\n (input)=\"onInput($event.target.value, field)\"\r\n (change)=\"onChange($event.target.value, field)\"\r\n (focus)=\"onFocus(field)\"\r\n (blur)=\"onBlur(field)\"\r\n autocomplete=\"off\"\r\n />\r\n <!-- Textarea -->\r\n <textarea\r\n class=\"e-input\"\r\n *ngIf=\"field.fieldFormType === 'Textarea'\"\r\n [value]=\"form[field.formKey]\"\r\n [disabled]=\"getDisabled(field)\"\r\n [required]=\"field.required\"\r\n [attr.maxlength]=\"field.maxlength\"\r\n [attr.minlength]=\"field.minlength\"\r\n [class.error]=\"fieldValidMap[field.formKey] === false\"\r\n (input)=\"onInput($event.target.value, field)\"\r\n (change)=\"onChange($event.target.value, field)\"\r\n (focus)=\"onFocus(field)\"\r\n (blur)=\"onBlur(field)\"\r\n autocomplete=\"off\"\r\n rows=\"3\"\r\n ></textarea>\r\n <!-- Number Input -->\r\n <ejs-numerictextbox\r\n *ngIf=\"field.fieldFormType === 'Number'\"\r\n [value]=\"form[field.formKey]\"\r\n [max]=\"field.max\"\r\n [min]=\"field.min\"\r\n [format]=\"field.format\"\r\n [enabled]=\"!getDisabled(field)\"\r\n [class.error]=\"fieldValidMap[field.formKey] === false\"\r\n (change)=\"$event.isInteracted && onChange($event.value, field)\"\r\n (focus)=\"onFocus(field)\"\r\n (blur)=\"onBlur(field)\"\r\n ></ejs-numerictextbox>\r\n <!-- Tags Input -->\r\n <rs-tag-input\r\n *ngIf=\"field.fieldFormType === 'Tags'\"\r\n [value]=\"form[field.formKey]\"\r\n [fields]=\"getOptionFields(field)\"\r\n [inputMaxlength]=\"field.maxlength\"\r\n [inputMinlength]=\"field.minlength\"\r\n [disabled]=\"getDisabled(field)\"\r\n [error]=\"fieldValidMap[field.formKey] === false\"\r\n (valueChange)=\"onChange($event, field)\"\r\n (focus)=\"onFocus(field)\"\r\n (blur)=\"onBlur(field)\"\r\n ></rs-tag-input>\r\n <!-- AutoComplete -->\r\n <ejs-autocomplete\r\n *ngIf=\"field.fieldFormType === 'AutoComplete'\"\r\n [value]=\"form[field.formKey]\"\r\n [dataSource]=\"optionsMap[field.optionKey]\"\r\n [fields]=\"getOptionFields(field)\"\r\n [enabled]=\"!getDisabled(field)\"\r\n [class.error]=\"fieldValidMap[field.formKey] === false\"\r\n (filtering)=\"onFiltering($event, field)\"\r\n (change)=\"$event.isInteracted && onChange($event.value, field)\"\r\n (focus)=\"onFocus(field)\"\r\n (blur)=\"onBlur(field)\"\r\n ></ejs-autocomplete>\r\n <!-- Dropdown -->\r\n <ejs-dropdownlist\r\n *ngIf=\"field.fieldFormType === 'Dropdown'\"\r\n [value]=\"form[field.formKey]\"\r\n [dataSource]=\"optionsMap[field.optionKey]\"\r\n [fields]=\"getOptionFields(field)\"\r\n [allowFiltering]=\"true\"\r\n [showClearButton]=\"true\"\r\n [enabled]=\"!getDisabled(field)\"\r\n [class.error]=\"fieldValidMap[field.formKey] === false\"\r\n (filtering)=\"onFiltering($event, field)\"\r\n (change)=\"$event.isInteracted && onChange($event.value, field)\"\r\n (focus)=\"onFocus(field)\"\r\n (blur)=\"onBlur(field)\"\r\n ></ejs-dropdownlist>\r\n <!-- MultiSelect -->\r\n <ejs-multiselect\r\n *ngIf=\"field.fieldFormType === 'MultiSelect'\"\r\n mode=\"CheckBox\"\r\n [value]=\"form[field.formKey]\"\r\n [dataSource]=\"optionsMap[field.optionKey]\"\r\n [fields]=\"getOptionFields(field)\"\r\n [allowFiltering]=\"true\"\r\n [showDropDownIcon]=\"true\"\r\n [enabled]=\"!getDisabled(field)\"\r\n [class.error]=\"fieldValidMap[field.formKey] === false\"\r\n (filtering)=\"onFiltering($event, field)\"\r\n (change)=\"$event.isInteracted && onChange($event.value, field)\"\r\n (focus)=\"onFocus(field)\"\r\n (blur)=\"onBlur(field)\"\r\n >\r\n </ejs-multiselect>\r\n <!-- Datepicker -->\r\n <ejs-datepicker\r\n *ngIf=\"field.fieldFormType === 'Datepicker'\"\r\n [value]=\"form[field.formKey]\"\r\n [format]=\"field.format || 'dd-MMM-yyyy'\"\r\n [enabled]=\"!getDisabled(field)\"\r\n [class.error]=\"fieldValidMap[field.formKey] === false\"\r\n (change)=\"$event.isInteracted && onChange($event.value, field)\"\r\n (focus)=\"onFocus(field)\"\r\n (blur)=\"onBlur(field)\"\r\n ></ejs-datepicker>\r\n <ng-template\r\n #customTemplateContainer\r\n *ngIf=\"field.fieldFormType === 'Custom'\"\r\n ></ng-template>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"section-form\" *ngIf=\"section.customKey\">\r\n <ng-template #customSectionContainer></ng-template>\r\n </div>\r\n </div>\r\n </div>\r\n <div *ngIf=\"sections.length > 1 && showAnchor\" class=\"anchor-container\">\r\n <div\r\n class=\"anchor-item\"\r\n *ngFor=\"let section of sections; let index = index\"\r\n [style.display]=\"section.title ? 'block' : 'none'\"\r\n [attr.data-active]=\"scrollIndex === index ? 'yes' : 'no'\"\r\n [attr.data-content]=\"section.title\"\r\n (click)=\"onClickAnchor(index)\"\r\n ></div>\r\n </div>\r\n</div>\r\n", styles: [":host{display:block;margin-top:16px}.rs-drawer-form-container{display:flex;flex-flow:row nowrap;align-items:flex-start;gap:32px}.rs-drawer-form-container .section-container{flex:auto;display:flex;flex-flow:column nowrap;max-width:1576px}.rs-drawer-form-container .section-item{position:relative}.rs-drawer-form-container .section-item:not(:first-child){border-top:1px solid #eaedf0}.rs-drawer-form-container .section-expand-checkbox{display:block;width:100%;height:28px;appearance:none;cursor:pointer;position:absolute;top:0;left:0}.rs-drawer-form-container .section-expand-checkbox:checked+.section-title:before{transform:rotate(-90deg)}.rs-drawer-form-container .section-expand-checkbox:checked+.section-title+.section-form{max-height:0;overflow:hidden}.rs-drawer-form-container .section-title{padding:6px 0;margin-bottom:12px;color:#44566c;font-family:Arial;font-size:13px;font-style:normal;font-weight:700;line-height:16px;display:flex;flex-flow:row nowrap;align-items:center;pointer-events:none}.rs-drawer-form-container .section-title:before{content:url(\"data:image/svg+xml,%3Csvg width%3D%2216%22 height%3D%2216%22 viewBox%3D%220 0 16 16%22 fill%3D%22none%22 xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0D%3Cpath d%3D%22M12.2426 6.24264L8 9.5L3.75736 6.24264%22 stroke%3D%22%236B6B6B%22%2F%3E%0D%3C%2Fsvg%3E%0D\");display:block;height:16px;width:16px;margin-right:8px}.rs-drawer-form-container .section-form{display:flex;flex-flow:row wrap;justify-content:space-between;gap:12px 56px;max-width:1576px;padding:0 24px;margin-bottom:20px}.rs-drawer-form-container .section-form .form-item{min-height:28px;min-width:400px;max-width:700px;width:calc((100% - 56px)/2);display:flex;flex-flow:row nowrap;justify-content:flex-start;align-items:flex-start}.rs-drawer-form-container .section-form .form-item[data-required=yes] .form-label>span:first-child:after{content:\"*\";color:var(--rs-input-require-label-color)}.rs-drawer-form-container .section-form .form-item .form-label{flex:none;width:144px;height:28px;margin-right:16px;color:#43566c;font-family:Arial;font-size:12px;font-style:normal;font-weight:400;line-height:14px;display:flex;flex-flow:row nowrap;align-items:center}.rs-drawer-form-container .section-form .form-item .form-label .form-tooltip{margin-left:4px}.rs-drawer-form-container .section-form .form-item .form-label .form-tooltip .tooltip-icon:before{content:\" \";display:block;width:14px;height:14px;background-image:url(\"data:image/svg+xml,%3Csvg width%3D%2218%22 height%3D%2218%22 viewBox%3D%220 0 18 18%22 fill%3D%22none%22 xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0D %3Cpath d%3D%22M9 1a8 8 0 1 0 8 8 8.009 8.009 0 0 0-8-8zm0 14.667A6.666 6.666 0 1 1 15.667 9 6.674 6.674 0 0 1 9 15.667z%22 fill%3D%22%2344566C%22%2F%3E%0D %3Cpath d%3D%22M9 7.667h-.667a.667.667 0 1 0 0 1.333h.666v4a.667.667 0 0 0 1.334 0V9a1.333 1.333 0 0 0-1.334-1.333zM9 6.333a1 1 0 1 0 0-2 1 1 0 0 0 0 2z%22 fill%3D%22%2344566C%22%2F%3E%0D%3C%2Fsvg%3E%0D\");background-size:contain;cursor:pointer}.rs-drawer-form-container .section-form .form-item .form-content{flex:auto}@media (max-width: 1420px){.rs-drawer-form-container .section-form .form-item{width:100%}}.rs-drawer-form-container .anchor-container{flex:none;display:flex;flex-flow:column nowrap;gap:4px;min-width:120px;height:auto;position:sticky;top:56px}.rs-drawer-form-container .anchor-item{min-width:120px;padding:4px 12px;border-left:1px solid #eaedf0;cursor:pointer;color:#44566c;font-family:Arial;font-size:11px;font-style:normal;font-weight:400;line-height:16px;position:relative}.rs-drawer-form-container .anchor-item:before{content:attr(data-content);color:#44566c;font-weight:400;position:absolute;left:12px}.rs-drawer-form-container .anchor-item:after{content:attr(data-content);visibility:hidden;color:#1364b3;font-weight:700}.rs-drawer-form-container .anchor-item[data-active=yes]{border-color:#1f7bff}.rs-drawer-form-container .anchor-item[data-active=yes]:before{visibility:hidden}.rs-drawer-form-container .anchor-item[data-active=yes]:after{visibility:visible}.rs-drawer-tooltip.e-tooltip-wrap{border:none;background-color:#44566c}.rs-drawer-tooltip.e-tooltip-wrap .e-arrow-tip{height:4px;visibility:hidden}\n"] }]
|
|
19563
|
-
}], ctorParameters: function () { return [{ type:
|
|
19889
|
+
args: [{ selector: "rs-drawer-form", template: "<div #drawerFormEl class=\"rs-drawer-form-container\">\r\n <div class=\"section-container\">\r\n <div #sectionEl class=\"section-item\" *ngFor=\"let section of sections\">\r\n <input\r\n type=\"checkbox\"\r\n class=\"section-expand-checkbox\"\r\n *ngIf=\"section.title\"\r\n />\r\n <div class=\"section-title\" *ngIf=\"section.title\">\r\n <span>{{ section.title }}</span>\r\n </div>\r\n <div class=\"section-form\" *ngIf=\"!section.customKey\">\r\n <div\r\n class=\"form-item\"\r\n *ngFor=\"let field of section.fields\"\r\n [attr.data-required]=\"field.required ? 'yes' : 'no'\"\r\n [attr.data-disabled]=\"field.disabled || formDisabled ? 'yes' : 'no'\"\r\n [attr.data-error]=\"\r\n fieldValidMap[field.formKey] === false ? 'yes' : 'no'\r\n \"\r\n >\r\n <div class=\"form-label\">\r\n <span>{{ field.label }}</span>\r\n <ejs-tooltip\r\n class=\"form-tooltip\"\r\n cssClass=\"rs-drawer-tooltip\"\r\n *ngIf=\"field.tooltip\"\r\n position=\"RightCenter\"\r\n [content]=\"field.tooltip\"\r\n >\r\n <span class=\"tooltip-icon\"></span>\r\n </ejs-tooltip>\r\n </div>\r\n <div class=\"form-content\">\r\n <!-- Radio -->\r\n <rs-radio-group\r\n *ngIf=\"field.fieldFormType === 'Radio'\"\r\n [value]=\"form[field.formKey]\"\r\n [dataSource]=\"optionsMap[field.optionKey]\"\r\n [fields]=\"getOptionFields(field)\"\r\n [disabled]=\"getDisabled(field)\"\r\n [error]=\"fieldValidMap[field.formKey] === false\"\r\n (valueChange)=\"onChange($event, field)\"\r\n ></rs-radio-group>\r\n <!-- Checkbox -->\r\n <rs-checkbox-group\r\n *ngIf=\"field.fieldFormType === 'Checkbox'\"\r\n [value]=\"form[field.formKey]\"\r\n [dataSource]=\"optionsMap[field.optionKey]\"\r\n [fields]=\"getOptionFields(field)\"\r\n [disabled]=\"getDisabled(field)\"\r\n [error]=\"fieldValidMap[field.formKey] === false\"\r\n (valueChange)=\"onChange($event, field)\"\r\n ></rs-checkbox-group>\r\n <!-- Switch -->\r\n <rs-switch-input\r\n *ngIf=\"field.fieldFormType === 'Switch'\"\r\n [value]=\"form[field.formKey]\"\r\n [disabled]=\"getDisabled(field)\"\r\n (valueChange)=\"onChange($event, field)\"\r\n ></rs-switch-input>\r\n <!-- Input -->\r\n <input\r\n class=\"e-input\"\r\n *ngIf=\"\r\n field.fieldFormType === 'Text' ||\r\n field.fieldFormType === 'Email'\r\n \"\r\n [value]=\"form[field.formKey]\"\r\n [disabled]=\"getDisabled(field)\"\r\n [required]=\"field.required\"\r\n [attr.maxlength]=\"field.maxlength\"\r\n [attr.minlength]=\"field.minlength\"\r\n [class.error]=\"fieldValidMap[field.formKey] === false\"\r\n (input)=\"onInput($event.target.value, field)\"\r\n (change)=\"onChange($event.target.value, field)\"\r\n (focus)=\"onFocus(field)\"\r\n (blur)=\"onBlur(field)\"\r\n autocomplete=\"off\"\r\n />\r\n <!-- Textarea -->\r\n <textarea\r\n class=\"e-input\"\r\n *ngIf=\"field.fieldFormType === 'Textarea'\"\r\n [value]=\"form[field.formKey]\"\r\n [disabled]=\"getDisabled(field)\"\r\n [required]=\"field.required\"\r\n [attr.maxlength]=\"field.maxlength\"\r\n [attr.minlength]=\"field.minlength\"\r\n [class.error]=\"fieldValidMap[field.formKey] === false\"\r\n (input)=\"onInput($event.target.value, field)\"\r\n (change)=\"onChange($event.target.value, field)\"\r\n (focus)=\"onFocus(field)\"\r\n (blur)=\"onBlur(field)\"\r\n autocomplete=\"off\"\r\n rows=\"3\"\r\n ></textarea>\r\n <!-- Number Input -->\r\n <ejs-numerictextbox\r\n *ngIf=\"field.fieldFormType === 'Number'\"\r\n [value]=\"form[field.formKey]\"\r\n [max]=\"field.max\"\r\n [min]=\"field.min\"\r\n [step]=\"field.step\"\r\n [decimals]=\"field.decimals\"\r\n [format]=\"field.format\"\r\n [enabled]=\"!getDisabled(field)\"\r\n [class.error]=\"fieldValidMap[field.formKey] === false\"\r\n (change)=\"onComponentChange($event, field)\"\r\n (focus)=\"onFocus(field)\"\r\n (blur)=\"onBlur(field)\"\r\n ></ejs-numerictextbox>\r\n <!-- Tags Input -->\r\n <rs-tag-input\r\n *ngIf=\"field.fieldFormType === 'Tags'\"\r\n [value]=\"form[field.formKey]\"\r\n [fields]=\"getOptionFields(field)\"\r\n [inputMaxlength]=\"field.maxlength\"\r\n [inputMinlength]=\"field.minlength\"\r\n [disabled]=\"getDisabled(field)\"\r\n [error]=\"fieldValidMap[field.formKey] === false\"\r\n (valueChange)=\"onChange($event, field)\"\r\n (focus)=\"onFocus(field)\"\r\n (blur)=\"onBlur(field)\"\r\n ></rs-tag-input>\r\n <!-- AutoComplete -->\r\n <ejs-autocomplete\r\n *ngIf=\"field.fieldFormType === 'AutoComplete'\"\r\n [value]=\"form[field.formKey]\"\r\n [dataSource]=\"optionsMap[field.optionKey]\"\r\n [fields]=\"getOptionFields(field)\"\r\n [enabled]=\"!getDisabled(field)\"\r\n [class.error]=\"fieldValidMap[field.formKey] === false\"\r\n (filtering)=\"onFiltering($event, field)\"\r\n (change)=\"onComponentChange($event, field)\"\r\n (focus)=\"onFocus(field)\"\r\n (blur)=\"onBlur(field)\"\r\n ></ejs-autocomplete>\r\n <!-- Dropdown -->\r\n <ejs-dropdownlist\r\n *ngIf=\"field.fieldFormType === 'Dropdown'\"\r\n [value]=\"form[field.formKey]\"\r\n [dataSource]=\"optionsMap[field.optionKey]\"\r\n [fields]=\"getOptionFields(field)\"\r\n [allowFiltering]=\"true\"\r\n [showClearButton]=\"true\"\r\n [enabled]=\"!getDisabled(field)\"\r\n [class.error]=\"fieldValidMap[field.formKey] === false\"\r\n (filtering)=\"onFiltering($event, field)\"\r\n (change)=\"onComponentChange($event, field)\"\r\n (focus)=\"onFocus(field)\"\r\n (blur)=\"onBlur(field)\"\r\n ></ejs-dropdownlist>\r\n <!-- MultiSelect -->\r\n <ejs-multiselect\r\n *ngIf=\"field.fieldFormType === 'MultiSelect'\"\r\n mode=\"CheckBox\"\r\n [ngModel]=\"form[field.formKey]\"\r\n [dataSource]=\"optionsMap[field.optionKey]\"\r\n [fields]=\"getOptionFields(field)\"\r\n [allowFiltering]=\"true\"\r\n [showDropDownIcon]=\"true\"\r\n [enabled]=\"!getDisabled(field)\"\r\n [class.error]=\"fieldValidMap[field.formKey] === false\"\r\n (filtering)=\"onFiltering($event, field)\"\r\n (change)=\"onComponentChange($event, field)\"\r\n (focus)=\"onFocus(field)\"\r\n (blur)=\"onBlur(field)\"\r\n >\r\n </ejs-multiselect>\r\n <!-- Datepicker -->\r\n <ejs-datepicker\r\n *ngIf=\"field.fieldFormType === 'Datepicker'\"\r\n [value]=\"getValue(field)\"\r\n [format]=\"field.format || 'dd-MMM-yyyy'\"\r\n [enabled]=\"!getDisabled(field)\"\r\n [class.error]=\"\r\n fieldValidMap[field.formKey] === false ||\r\n dateValidMap[field.formKey] === false\r\n \"\r\n (change)=\"onComponentChange($event, field)\"\r\n (focus)=\"onFocus(field)\"\r\n (blur)=\"onDatePickerBlur($event, field)\"\r\n ></ejs-datepicker>\r\n <ng-template\r\n #customTemplateContainer\r\n *ngIf=\"field.fieldFormType === 'Custom'\"\r\n ></ng-template>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"section-form\" *ngIf=\"section.customKey\">\r\n <ng-template #customSectionContainer></ng-template>\r\n </div>\r\n </div>\r\n </div>\r\n <div *ngIf=\"sections.length > 1 && showAnchor\" class=\"anchor-container\">\r\n <div\r\n class=\"anchor-item\"\r\n *ngFor=\"let section of sections; let index = index\"\r\n [style.display]=\"section.title ? 'block' : 'none'\"\r\n [attr.data-active]=\"scrollIndex === index ? 'yes' : 'no'\"\r\n [attr.data-content]=\"section.title\"\r\n (click)=\"onClickAnchor(index)\"\r\n ></div>\r\n </div>\r\n</div>\r\n", styles: [":host{display:block;margin-top:16px}.rs-drawer-form-container{display:flex;flex-flow:row nowrap;align-items:flex-start;gap:32px}.rs-drawer-form-container .section-container{flex:auto;display:flex;flex-flow:column nowrap;max-width:1576px}.rs-drawer-form-container .section-item{position:relative}.rs-drawer-form-container .section-item:not(:first-child){border-top:1px solid #eaedf0}.rs-drawer-form-container .section-expand-checkbox{display:block;width:100%;height:28px;appearance:none;cursor:pointer;position:absolute;top:0;left:0}.rs-drawer-form-container .section-expand-checkbox:checked+.section-title:before{transform:rotate(-90deg)}.rs-drawer-form-container .section-expand-checkbox:checked+.section-title+.section-form{max-height:0;overflow:hidden}.rs-drawer-form-container .section-title{padding:6px 0;margin-bottom:12px;color:#44566c;font-family:Arial;font-size:13px;font-style:normal;font-weight:700;line-height:16px;display:flex;flex-flow:row nowrap;align-items:center;pointer-events:none}.rs-drawer-form-container .section-title:before{content:url(\"data:image/svg+xml,%3Csvg width%3D%2216%22 height%3D%2216%22 viewBox%3D%220 0 16 16%22 fill%3D%22none%22 xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0D%3Cpath d%3D%22M12.2426 6.24264L8 9.5L3.75736 6.24264%22 stroke%3D%22%236B6B6B%22%2F%3E%0D%3C%2Fsvg%3E%0D\");display:block;height:16px;width:16px;margin-right:8px}.rs-drawer-form-container .section-form{display:flex;flex-flow:row wrap;justify-content:space-between;gap:12px 56px;max-width:1576px;padding:0 24px;margin-bottom:20px}.rs-drawer-form-container .section-form .form-item{min-height:28px;min-width:400px;max-width:700px;width:calc((100% - 56px)/2);display:flex;flex-flow:row nowrap;justify-content:flex-start;align-items:flex-start}.rs-drawer-form-container .section-form .form-item[data-required=yes] .form-label>span:first-child:after{content:\"*\";color:var(--rs-input-require-label-color)}.rs-drawer-form-container .section-form .form-item .form-label{flex:none;width:144px;height:28px;margin-right:16px;color:#43566c;font-family:Arial;font-size:12px;font-style:normal;font-weight:400;line-height:14px;display:flex;flex-flow:row nowrap;align-items:center}.rs-drawer-form-container .section-form .form-item .form-label .form-tooltip{margin-left:4px}.rs-drawer-form-container .section-form .form-item .form-label .form-tooltip .tooltip-icon:before{content:\" \";display:block;width:14px;height:14px;background-image:url(\"data:image/svg+xml,%3Csvg width%3D%2218%22 height%3D%2218%22 viewBox%3D%220 0 18 18%22 fill%3D%22none%22 xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0D %3Cpath d%3D%22M9 1a8 8 0 1 0 8 8 8.009 8.009 0 0 0-8-8zm0 14.667A6.666 6.666 0 1 1 15.667 9 6.674 6.674 0 0 1 9 15.667z%22 fill%3D%22%2344566C%22%2F%3E%0D %3Cpath d%3D%22M9 7.667h-.667a.667.667 0 1 0 0 1.333h.666v4a.667.667 0 0 0 1.334 0V9a1.333 1.333 0 0 0-1.334-1.333zM9 6.333a1 1 0 1 0 0-2 1 1 0 0 0 0 2z%22 fill%3D%22%2344566C%22%2F%3E%0D%3C%2Fsvg%3E%0D\");background-size:contain;cursor:pointer}.rs-drawer-form-container .section-form .form-item .form-content{flex:auto}@media (max-width: 1420px){.rs-drawer-form-container .section-form .form-item{width:100%}}.rs-drawer-form-container .anchor-container{flex:none;display:flex;flex-flow:column nowrap;gap:4px;min-width:120px;height:auto;position:sticky;top:56px}.rs-drawer-form-container .anchor-item{min-width:120px;padding:4px 12px;border-left:1px solid #eaedf0;cursor:pointer;color:#44566c;font-family:Arial;font-size:11px;font-style:normal;font-weight:400;line-height:16px;position:relative}.rs-drawer-form-container .anchor-item:before{content:attr(data-content);color:#44566c;font-weight:400;position:absolute;left:12px}.rs-drawer-form-container .anchor-item:after{content:attr(data-content);visibility:hidden;color:#1364b3;font-weight:700}.rs-drawer-form-container .anchor-item[data-active=yes]{border-color:#1f7bff}.rs-drawer-form-container .anchor-item[data-active=yes]:before{visibility:hidden}.rs-drawer-form-container .anchor-item[data-active=yes]:after{visibility:visible}.rs-drawer-tooltip.e-tooltip-wrap{border:none;background-color:#44566c}.rs-drawer-tooltip.e-tooltip-wrap .e-arrow-tip{height:4px;visibility:hidden}\n"] }]
|
|
19890
|
+
}], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }]; }, propDecorators: { _sections: [{
|
|
19564
19891
|
type: Input,
|
|
19565
19892
|
args: ["sections"]
|
|
19566
19893
|
}], optionsMap: [{
|
|
@@ -19607,6 +19934,869 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
19607
19934
|
args: ["sectionEl"]
|
|
19608
19935
|
}] } });
|
|
19609
19936
|
|
|
19937
|
+
// 从环境配置获取AI配置
|
|
19938
|
+
function getAIConfig() {
|
|
19939
|
+
return {
|
|
19940
|
+
endpoint: "https://aidevused.openai.azure.com/",
|
|
19941
|
+
apiKey: "ccba76e279f64653a50ac4fee90afe5c",
|
|
19942
|
+
deployment: "gpt-4",
|
|
19943
|
+
apiVersion: "2025-01-01-preview",
|
|
19944
|
+
enabled: true,
|
|
19945
|
+
};
|
|
19946
|
+
}
|
|
19947
|
+
// 检查配置是否有效
|
|
19948
|
+
function isAIConfigValid(config) {
|
|
19949
|
+
// 检查是否为aidevused端点且有有效API密钥
|
|
19950
|
+
return !!((config.endpoint &&
|
|
19951
|
+
config.apiKey &&
|
|
19952
|
+
config.deployment &&
|
|
19953
|
+
config.enabled &&
|
|
19954
|
+
config.endpoint === "https://aidevused.openai.azure.com/" &&
|
|
19955
|
+
config.apiKey !== "your-api-key-here") // Azure OpenAI API密钥通常以sk-开头
|
|
19956
|
+
);
|
|
19957
|
+
}
|
|
19958
|
+
// 从后端API获取AI配置(推荐方式)
|
|
19959
|
+
async function getAIConfigFromBackend() {
|
|
19960
|
+
try {
|
|
19961
|
+
// 这里应该调用你的后端API来获取AI配置
|
|
19962
|
+
// 例如:return await this.http.get('/api/ai-config');
|
|
19963
|
+
// 临时返回默认配置
|
|
19964
|
+
return getAIConfig();
|
|
19965
|
+
}
|
|
19966
|
+
catch (error) {
|
|
19967
|
+
console.error("Failed to get AI config from backend:", error);
|
|
19968
|
+
return getAIConfig();
|
|
19969
|
+
}
|
|
19970
|
+
}
|
|
19971
|
+
|
|
19972
|
+
// import { testAIFunction } from './ai-test';
|
|
19973
|
+
// testAIFunction();
|
|
19974
|
+
// 使用fetch API发送请求到Azure OpenAI
|
|
19975
|
+
async function sendAIRequest(messages, config) {
|
|
19976
|
+
try {
|
|
19977
|
+
const url = `${config.endpoint}/openai/deployments/${config.deployment}/chat/completions?api-version=${config.apiVersion}`;
|
|
19978
|
+
const url1 = `${config.endpoint}`;
|
|
19979
|
+
const response = await fetch(url, {
|
|
19980
|
+
method: 'POST',
|
|
19981
|
+
headers: {
|
|
19982
|
+
'Content-Type': 'application/json',
|
|
19983
|
+
'api-key': config.apiKey,
|
|
19984
|
+
// 'subscription-id': 'a9548c86-f489-4deb-8f46-738b7ea44d0b',
|
|
19985
|
+
},
|
|
19986
|
+
body: JSON.stringify({
|
|
19987
|
+
messages: messages,
|
|
19988
|
+
max_tokens: 1000,
|
|
19989
|
+
temperature: 0.7,
|
|
19990
|
+
top_p: 1,
|
|
19991
|
+
frequency_penalty: 0,
|
|
19992
|
+
presence_penalty: 0,
|
|
19993
|
+
}),
|
|
19994
|
+
});
|
|
19995
|
+
if (!response.ok) {
|
|
19996
|
+
const errorText = await response.text();
|
|
19997
|
+
throw new Error(`HTTP error! status: ${response.status}, message: ${errorText}`);
|
|
19998
|
+
}
|
|
19999
|
+
const data = await response.json();
|
|
20000
|
+
if (!data.choices || !data.choices[0] || !data.choices[0].message) {
|
|
20001
|
+
throw new Error('Invalid response format from AI service');
|
|
20002
|
+
}
|
|
20003
|
+
return data.choices[0].message.content;
|
|
20004
|
+
}
|
|
20005
|
+
catch (error) {
|
|
20006
|
+
console.error('AI request failed:', error);
|
|
20007
|
+
throw error;
|
|
20008
|
+
}
|
|
20009
|
+
}
|
|
20010
|
+
// 备用方案:使用模拟数据(用于开发测试)
|
|
20011
|
+
function getMockAIResponse(subQuery, promptQuery) {
|
|
20012
|
+
const mockResponses = {
|
|
20013
|
+
Rephrase: `Rephrased: ${promptQuery}`,
|
|
20014
|
+
Grammar: `Corrected: ${promptQuery}`,
|
|
20015
|
+
Summarize: `Summary: ${promptQuery.substring(0, 100)}...`,
|
|
20016
|
+
Elaborate: `Elaborated: ${promptQuery} with additional details and context.`,
|
|
20017
|
+
Translate: `Translated: ${promptQuery}`,
|
|
20018
|
+
SentimentAnalysis: '😊 Positive',
|
|
20019
|
+
};
|
|
20020
|
+
for (const [key, value] of Object.entries(mockResponses)) {
|
|
20021
|
+
if (subQuery.includes(key)) {
|
|
20022
|
+
return value;
|
|
20023
|
+
}
|
|
20024
|
+
}
|
|
20025
|
+
return `AI processed: ${promptQuery}`;
|
|
20026
|
+
}
|
|
20027
|
+
// 主要的AI请求方法
|
|
20028
|
+
async function OpenAiModelRTE(subQuery, promptQuery) {
|
|
20029
|
+
try {
|
|
20030
|
+
const config = getAIConfig();
|
|
20031
|
+
// 检查配置是否有效
|
|
20032
|
+
if (!isAIConfigValid(config)) {
|
|
20033
|
+
console.warn('AI configuration is incomplete or disabled, using mock response');
|
|
20034
|
+
return getMockAIResponse(subQuery, promptQuery);
|
|
20035
|
+
}
|
|
20036
|
+
const messages = [
|
|
20037
|
+
{
|
|
20038
|
+
role: 'system',
|
|
20039
|
+
content: subQuery.includes('emoji followed by the sentiment in the format')
|
|
20040
|
+
? 'You are a helpful assistant. Please respond in string format.'
|
|
20041
|
+
: "NOTE: Return same html format just do changes content only. don't change html formats.",
|
|
20042
|
+
},
|
|
20043
|
+
{
|
|
20044
|
+
role: 'user',
|
|
20045
|
+
content: `${subQuery} ${promptQuery}`,
|
|
20046
|
+
},
|
|
20047
|
+
];
|
|
20048
|
+
const result = await sendAIRequest(messages, config);
|
|
20049
|
+
return result;
|
|
20050
|
+
}
|
|
20051
|
+
catch (error) {
|
|
20052
|
+
console.error('AI request failed, using mock response:', error);
|
|
20053
|
+
return getMockAIResponse(subQuery, promptQuery);
|
|
20054
|
+
}
|
|
20055
|
+
}
|
|
20056
|
+
// 兼容性方法(保持向后兼容)
|
|
20057
|
+
async function getAzureChatAIRequest(options) {
|
|
20058
|
+
try {
|
|
20059
|
+
const config = getAIConfig();
|
|
20060
|
+
if (!isAIConfigValid(config)) {
|
|
20061
|
+
return null;
|
|
20062
|
+
}
|
|
20063
|
+
const result = await sendAIRequest(options.messages, config);
|
|
20064
|
+
return result;
|
|
20065
|
+
}
|
|
20066
|
+
catch (err) {
|
|
20067
|
+
console.error('Error occurred:', err);
|
|
20068
|
+
return null;
|
|
20069
|
+
}
|
|
20070
|
+
}
|
|
20071
|
+
async function getAzureTextAIRequest(prompt) {
|
|
20072
|
+
try {
|
|
20073
|
+
const config = getAIConfig();
|
|
20074
|
+
if (!isAIConfigValid(config)) {
|
|
20075
|
+
return undefined;
|
|
20076
|
+
}
|
|
20077
|
+
const messages = [
|
|
20078
|
+
{
|
|
20079
|
+
role: 'user',
|
|
20080
|
+
content: prompt,
|
|
20081
|
+
},
|
|
20082
|
+
];
|
|
20083
|
+
const result = await sendAIRequest(messages, config);
|
|
20084
|
+
return result;
|
|
20085
|
+
}
|
|
20086
|
+
catch (err) {
|
|
20087
|
+
console.error('Error occurred:', err);
|
|
20088
|
+
return undefined;
|
|
20089
|
+
}
|
|
20090
|
+
}
|
|
20091
|
+
|
|
20092
|
+
// font family
|
|
20093
|
+
const fontFamily = {
|
|
20094
|
+
default: "Arial",
|
|
20095
|
+
items: [
|
|
20096
|
+
{
|
|
20097
|
+
text: "Arial",
|
|
20098
|
+
value: "Arial, Helvetica, sans-serif",
|
|
20099
|
+
cssClass: "e-arial",
|
|
20100
|
+
command: "Font",
|
|
20101
|
+
subCommand: "FontName",
|
|
20102
|
+
},
|
|
20103
|
+
{
|
|
20104
|
+
text: "Times New Roman",
|
|
20105
|
+
value: "Times New Roman,Times,serif",
|
|
20106
|
+
cssClass: "e-times-new-roman",
|
|
20107
|
+
command: "Font",
|
|
20108
|
+
subCommand: "FontName",
|
|
20109
|
+
},
|
|
20110
|
+
{
|
|
20111
|
+
text: "Helvetica",
|
|
20112
|
+
value: "Helvetica",
|
|
20113
|
+
cssClass: "e-helvetica",
|
|
20114
|
+
command: "Font",
|
|
20115
|
+
subCommand: "FontName",
|
|
20116
|
+
},
|
|
20117
|
+
{
|
|
20118
|
+
text: "Calibri",
|
|
20119
|
+
value: "Calibri, Helvetica, sans-serif",
|
|
20120
|
+
cssClass: "e-calibri",
|
|
20121
|
+
command: "Font",
|
|
20122
|
+
subCommand: "FontName",
|
|
20123
|
+
},
|
|
20124
|
+
{
|
|
20125
|
+
text: "Verdana",
|
|
20126
|
+
value: "Verdana,Geneva,sans-serif",
|
|
20127
|
+
cssClass: "e-verdana",
|
|
20128
|
+
command: "Font",
|
|
20129
|
+
subCommand: "FontName",
|
|
20130
|
+
},
|
|
20131
|
+
{
|
|
20132
|
+
text: "Georgia",
|
|
20133
|
+
value: "Georgia,serif",
|
|
20134
|
+
cssClass: "e-georgia",
|
|
20135
|
+
command: "Font",
|
|
20136
|
+
subCommand: "FontName",
|
|
20137
|
+
},
|
|
20138
|
+
{
|
|
20139
|
+
text: "Open Sans",
|
|
20140
|
+
value: "Open Sans, sans-serif",
|
|
20141
|
+
cssClass: "e-open-sans",
|
|
20142
|
+
command: "Font",
|
|
20143
|
+
subCommand: "FontName",
|
|
20144
|
+
},
|
|
20145
|
+
{
|
|
20146
|
+
text: "Roboto",
|
|
20147
|
+
value: "Roboto",
|
|
20148
|
+
cssClass: "e-roboto",
|
|
20149
|
+
command: "Font",
|
|
20150
|
+
subCommand: "FontName",
|
|
20151
|
+
},
|
|
20152
|
+
{
|
|
20153
|
+
text: "Lato",
|
|
20154
|
+
value: "Lato, sans-serif",
|
|
20155
|
+
cssClass: "e-lato",
|
|
20156
|
+
command: "Font",
|
|
20157
|
+
subCommand: "FontName",
|
|
20158
|
+
},
|
|
20159
|
+
{
|
|
20160
|
+
text: "Montserrat",
|
|
20161
|
+
value: "Montserrat, sans-serif",
|
|
20162
|
+
cssClass: "e-montserrat",
|
|
20163
|
+
command: "Font",
|
|
20164
|
+
subCommand: "FontName",
|
|
20165
|
+
},
|
|
20166
|
+
{
|
|
20167
|
+
text: "Segoe UI",
|
|
20168
|
+
value: "Segoe UI",
|
|
20169
|
+
cssClass: "e-segoe-ui",
|
|
20170
|
+
command: "Font",
|
|
20171
|
+
subCommand: "FontName",
|
|
20172
|
+
},
|
|
20173
|
+
{
|
|
20174
|
+
text: "Impact",
|
|
20175
|
+
value: "Impact,Charcoal,sans-serif",
|
|
20176
|
+
cssClass: "e-impact",
|
|
20177
|
+
command: "Font",
|
|
20178
|
+
subCommand: "FontName",
|
|
20179
|
+
},
|
|
20180
|
+
],
|
|
20181
|
+
};
|
|
20182
|
+
// line height配置
|
|
20183
|
+
const lineHeight_items = [
|
|
20184
|
+
{
|
|
20185
|
+
text: "1.0",
|
|
20186
|
+
},
|
|
20187
|
+
{
|
|
20188
|
+
text: "1.15",
|
|
20189
|
+
},
|
|
20190
|
+
{
|
|
20191
|
+
text: "1.5",
|
|
20192
|
+
},
|
|
20193
|
+
{
|
|
20194
|
+
text: "2.0",
|
|
20195
|
+
},
|
|
20196
|
+
{
|
|
20197
|
+
text: "2.5",
|
|
20198
|
+
},
|
|
20199
|
+
{
|
|
20200
|
+
text: "3.0",
|
|
20201
|
+
},
|
|
20202
|
+
];
|
|
20203
|
+
const BULLET_STYLES = [
|
|
20204
|
+
{
|
|
20205
|
+
id: "disc",
|
|
20206
|
+
text: "● 实心圆点",
|
|
20207
|
+
symbol: "●",
|
|
20208
|
+
iconCss: "e-icons e-bullet-disc",
|
|
20209
|
+
description: "标准实心圆点",
|
|
20210
|
+
},
|
|
20211
|
+
{
|
|
20212
|
+
id: "circle",
|
|
20213
|
+
text: "○ 空心圆点",
|
|
20214
|
+
symbol: "○",
|
|
20215
|
+
iconCss: "e-icons e-bullet-circle",
|
|
20216
|
+
description: "空心圆点",
|
|
20217
|
+
},
|
|
20218
|
+
{
|
|
20219
|
+
id: "square",
|
|
20220
|
+
text: "■ 实心方块",
|
|
20221
|
+
symbol: "■",
|
|
20222
|
+
iconCss: "e-icons e-bullet-square",
|
|
20223
|
+
description: "实心方块",
|
|
20224
|
+
},
|
|
20225
|
+
{
|
|
20226
|
+
id: "diamond",
|
|
20227
|
+
text: "◆ 实心菱形",
|
|
20228
|
+
symbol: "◆",
|
|
20229
|
+
iconCss: "e-icons e-bullet-diamond",
|
|
20230
|
+
description: "实心菱形",
|
|
20231
|
+
},
|
|
20232
|
+
{
|
|
20233
|
+
id: "triangle",
|
|
20234
|
+
text: "► 实心三角",
|
|
20235
|
+
symbol: "►",
|
|
20236
|
+
iconCss: "e-icons e-bullet-triangle",
|
|
20237
|
+
description: "实心三角形",
|
|
20238
|
+
},
|
|
20239
|
+
{
|
|
20240
|
+
id: "arrow",
|
|
20241
|
+
text: "➤ 箭头",
|
|
20242
|
+
symbol: "➤",
|
|
20243
|
+
iconCss: "e-icons e-bullet-arrow",
|
|
20244
|
+
description: "箭头符号",
|
|
20245
|
+
},
|
|
20246
|
+
{
|
|
20247
|
+
id: "star",
|
|
20248
|
+
text: "★ 星形",
|
|
20249
|
+
symbol: "★",
|
|
20250
|
+
iconCss: "e-icons e-bullet-star",
|
|
20251
|
+
description: "星形符号",
|
|
20252
|
+
},
|
|
20253
|
+
{
|
|
20254
|
+
id: "check",
|
|
20255
|
+
text: "✓ 对勾",
|
|
20256
|
+
symbol: "✓",
|
|
20257
|
+
iconCss: "e-icons e-bullet-check",
|
|
20258
|
+
description: "对勾符号",
|
|
20259
|
+
},
|
|
20260
|
+
{
|
|
20261
|
+
id: "heart",
|
|
20262
|
+
text: "♥ 心形",
|
|
20263
|
+
symbol: "♥",
|
|
20264
|
+
iconCss: "e-icons e-bullet-heart",
|
|
20265
|
+
description: "心形符号",
|
|
20266
|
+
},
|
|
20267
|
+
{
|
|
20268
|
+
id: "bullet",
|
|
20269
|
+
text: "• 小圆点",
|
|
20270
|
+
symbol: "•",
|
|
20271
|
+
iconCss: "e-icons e-bullet-bullet",
|
|
20272
|
+
description: "小圆点",
|
|
20273
|
+
},
|
|
20274
|
+
];
|
|
20275
|
+
// 获取符号样式
|
|
20276
|
+
function getBulletStyle(id) {
|
|
20277
|
+
return BULLET_STYLES.find((style) => style.id === id);
|
|
20278
|
+
}
|
|
20279
|
+
// 获取所有符号样式
|
|
20280
|
+
function getAllBulletStyles() {
|
|
20281
|
+
return BULLET_STYLES;
|
|
20282
|
+
}
|
|
20283
|
+
// 应用符号样式到列表
|
|
20284
|
+
function applyBulletStyle(ul, style) {
|
|
20285
|
+
if (style.id === "disc" || style.id === "circle" || style.id === "square") {
|
|
20286
|
+
// 使用CSS list-style-type
|
|
20287
|
+
ul.style.listStyleType = style.id;
|
|
20288
|
+
// 移除自定义符号
|
|
20289
|
+
ul.querySelectorAll(".custom-bullet").forEach((bullet) => bullet.remove());
|
|
20290
|
+
}
|
|
20291
|
+
else {
|
|
20292
|
+
// 使用自定义符号
|
|
20293
|
+
ul.style.listStyleType = "none";
|
|
20294
|
+
ul.setAttribute("data-bullet-style", style.id);
|
|
20295
|
+
const listItems = ul.querySelectorAll("li");
|
|
20296
|
+
listItems.forEach((li) => {
|
|
20297
|
+
// 移除现有的自定义符号
|
|
20298
|
+
const existingBullet = li.querySelector(".custom-bullet");
|
|
20299
|
+
if (existingBullet) {
|
|
20300
|
+
existingBullet.remove();
|
|
20301
|
+
}
|
|
20302
|
+
// 添加新的自定义符号
|
|
20303
|
+
const bullet = document.createElement("span");
|
|
20304
|
+
bullet.className = "custom-bullet";
|
|
20305
|
+
bullet.textContent = style.symbol;
|
|
20306
|
+
bullet.style.marginRight = "8px";
|
|
20307
|
+
bullet.style.color = "#666";
|
|
20308
|
+
// 将符号插入到列表项的开头
|
|
20309
|
+
li.insertBefore(bullet, li.firstChild);
|
|
20310
|
+
});
|
|
20311
|
+
}
|
|
20312
|
+
}
|
|
20313
|
+
|
|
20314
|
+
class RichtexteditorComponent {
|
|
20315
|
+
dialog;
|
|
20316
|
+
ref;
|
|
20317
|
+
rteObj;
|
|
20318
|
+
queryCategory;
|
|
20319
|
+
leftRte;
|
|
20320
|
+
rightRte;
|
|
20321
|
+
AIdialog;
|
|
20322
|
+
sentimentButton;
|
|
20323
|
+
regenerateButton;
|
|
20324
|
+
copyButton;
|
|
20325
|
+
replaceButton;
|
|
20326
|
+
// @ViewChild("chipList", { static: false }) public chipList!: ChipListComponent;
|
|
20327
|
+
placeholder = "";
|
|
20328
|
+
value = "";
|
|
20329
|
+
height = 150;
|
|
20330
|
+
autoSaveOnIdle = true;
|
|
20331
|
+
target = "#container"; // dialog 弹窗父级
|
|
20332
|
+
toolbarClick = new EventEmitter();
|
|
20333
|
+
change = new EventEmitter();
|
|
20334
|
+
// @Output() change = new EventEmitter();
|
|
20335
|
+
family = fontFamily;
|
|
20336
|
+
dialogWidth = "800px";
|
|
20337
|
+
dialogHeight = "642px";
|
|
20338
|
+
showZoomBtn = true;
|
|
20339
|
+
showMsg = false;
|
|
20340
|
+
insertImageSettings = {
|
|
20341
|
+
saveFormat: "Blob",
|
|
20342
|
+
allowedTypes: [".svg", ".png"],
|
|
20343
|
+
display: "none",
|
|
20344
|
+
};
|
|
20345
|
+
editorManager;
|
|
20346
|
+
size = "";
|
|
20347
|
+
selectedQuery;
|
|
20348
|
+
dropValIndex = 0;
|
|
20349
|
+
queryList = [
|
|
20350
|
+
{ id: "Rephrase", text: "Rephrase" },
|
|
20351
|
+
{ id: "Grammar", text: "Correct Grammar" },
|
|
20352
|
+
{ id: "Summarize", text: "Summarize" },
|
|
20353
|
+
{ id: "Elaborate", text: "Elaborate" },
|
|
20354
|
+
{ id: "Translate", text: "Translate" },
|
|
20355
|
+
{ id: "SentimentAnalysis", text: "Sentiment Analysis" },
|
|
20356
|
+
];
|
|
20357
|
+
rephraseTyleList = [
|
|
20358
|
+
{ text: "Standard", id: "Standard" },
|
|
20359
|
+
{ text: "Fluent", id: "Fluent" },
|
|
20360
|
+
{ text: "Professional", id: "Professional" },
|
|
20361
|
+
];
|
|
20362
|
+
languageList = [
|
|
20363
|
+
{ id: "EN", text: "English" },
|
|
20364
|
+
{ id: "ZH", text: "Chinese (Simplified)" },
|
|
20365
|
+
{ id: "ES", text: "Spanish" },
|
|
20366
|
+
{ id: "ZHT", text: "Chinese (Traditional)" },
|
|
20367
|
+
{ id: "HI", text: "Hindi" },
|
|
20368
|
+
{ id: "AR", text: "Arabic" },
|
|
20369
|
+
{ id: "BN", text: "Bengali" },
|
|
20370
|
+
{ id: "PT", text: "Portuguese" },
|
|
20371
|
+
{ id: "RU", text: "Russian" },
|
|
20372
|
+
{ id: "JA", text: "Japanese" },
|
|
20373
|
+
{ id: "DE", text: "German" },
|
|
20374
|
+
{ id: "KO", text: "Korean" },
|
|
20375
|
+
{ id: "FR", text: "French" },
|
|
20376
|
+
{ id: "IT", text: "Italian" },
|
|
20377
|
+
{ id: "TR", text: "Turkish" },
|
|
20378
|
+
];
|
|
20379
|
+
promptQuery = "";
|
|
20380
|
+
isSentimentCheck = false;
|
|
20381
|
+
subQuery = "";
|
|
20382
|
+
translatelanguage;
|
|
20383
|
+
chipValue = "Standard";
|
|
20384
|
+
apiResultData;
|
|
20385
|
+
AIResult;
|
|
20386
|
+
tools = {
|
|
20387
|
+
enableFloating: false,
|
|
20388
|
+
items: [
|
|
20389
|
+
{
|
|
20390
|
+
tooltipText: "AI Assist",
|
|
20391
|
+
template: '<button class="e-tbar-btn e-btn" tabindex="-1" id="ai_assistant_button_tbar" style="width:100%"><div class="e-rte-dropdown-btn-text">AI Assist</div></button>',
|
|
20392
|
+
},
|
|
20393
|
+
"Bold",
|
|
20394
|
+
"Italic",
|
|
20395
|
+
"Underline",
|
|
20396
|
+
"StrikeThrough",
|
|
20397
|
+
"FontName",
|
|
20398
|
+
"FontSize",
|
|
20399
|
+
"FontColor",
|
|
20400
|
+
"BackgroundColor",
|
|
20401
|
+
"LowerCase",
|
|
20402
|
+
"UpperCase",
|
|
20403
|
+
"|",
|
|
20404
|
+
"CreateTable",
|
|
20405
|
+
"Formats",
|
|
20406
|
+
"Alignments",
|
|
20407
|
+
{
|
|
20408
|
+
tooltipText: "Line Height",
|
|
20409
|
+
template: '<button class="e-tbar-btn e-btn" tabindex="-1" id="lineheight_tbar" style="width:100%"></button>',
|
|
20410
|
+
},
|
|
20411
|
+
"OrderedList",
|
|
20412
|
+
"UnorderedList",
|
|
20413
|
+
"Outdent",
|
|
20414
|
+
"Indent",
|
|
20415
|
+
"|",
|
|
20416
|
+
"CreateLink",
|
|
20417
|
+
{
|
|
20418
|
+
tooltipText: "",
|
|
20419
|
+
template: '<button class="e-tbar-btn e-btn" tabindex="-1" id="custom_tbar" style="width:100%">' +
|
|
20420
|
+
'<div class="e-tbar-btn-text" style="font-weight: 500;"><img src="/assets/img/file-icon.svg" style="position: relative;top: -2px;"/><div class="uploadActions"><div id="uploadFromUser">Computer File</div><div id="relationDom">Ticket Attachment</div></div></div></button>',
|
|
20421
|
+
},
|
|
20422
|
+
"|",
|
|
20423
|
+
"FormatPainter",
|
|
20424
|
+
"ClearFormat",
|
|
20425
|
+
"|",
|
|
20426
|
+
"Undo",
|
|
20427
|
+
"Redo",
|
|
20428
|
+
//'SourceCode',
|
|
20429
|
+
],
|
|
20430
|
+
};
|
|
20431
|
+
constructor(dialog, ref) {
|
|
20432
|
+
this.dialog = dialog;
|
|
20433
|
+
this.ref = ref;
|
|
20434
|
+
}
|
|
20435
|
+
ngOnInit() { }
|
|
20436
|
+
onContentChange(args) {
|
|
20437
|
+
const tables = document.querySelectorAll("table.e-rte-table");
|
|
20438
|
+
tables.forEach((table) => {
|
|
20439
|
+
const htmlTable = table;
|
|
20440
|
+
htmlTable.style.marginBottom = "10px";
|
|
20441
|
+
htmlTable.style.borderCollapse = "collapse";
|
|
20442
|
+
htmlTable.style.emptyCells = "show";
|
|
20443
|
+
const tdElements = table.querySelectorAll("td");
|
|
20444
|
+
tdElements.forEach((td) => {
|
|
20445
|
+
td.style.border = "1px solid #adb5bd";
|
|
20446
|
+
td.style.height = "20px";
|
|
20447
|
+
td.style.minWidth = "20px";
|
|
20448
|
+
td.style.padding = "2px 5px";
|
|
20449
|
+
td.style.boxSizing = "border-box";
|
|
20450
|
+
});
|
|
20451
|
+
});
|
|
20452
|
+
this.change.emit(args);
|
|
20453
|
+
}
|
|
20454
|
+
onCreate() {
|
|
20455
|
+
//bind the a click event
|
|
20456
|
+
// let editorContent = this.rteObj.contentModule.getEditPanel() as HTMLElement;
|
|
20457
|
+
// editorContent.addEventListener('click', this.OnClicked.bind(this));
|
|
20458
|
+
//add the line height
|
|
20459
|
+
this.editorManager = this.rteObj.formatter.editorManager;
|
|
20460
|
+
let splitButton = new DropDownButton({
|
|
20461
|
+
items: lineHeight_items,
|
|
20462
|
+
iconCss: "e-icons e-line-spacing",
|
|
20463
|
+
select: this.onSelect.bind(this),
|
|
20464
|
+
});
|
|
20465
|
+
splitButton.appendTo("#lineheight_tbar");
|
|
20466
|
+
// ai assist
|
|
20467
|
+
let aiassistantButton = new DropDownButton({
|
|
20468
|
+
items: this.queryList,
|
|
20469
|
+
// iconCss: "e-btn-icon e-icons e-assistview-icon e-icon-left",
|
|
20470
|
+
select: (args) => this.aiQuerySelectedMenu(args),
|
|
20471
|
+
});
|
|
20472
|
+
aiassistantButton.appendTo("#ai_assistant_button_tbar");
|
|
20473
|
+
}
|
|
20474
|
+
onSelect(args) {
|
|
20475
|
+
if (this.rteObj.formatter.getUndoRedoStack().length === 0) {
|
|
20476
|
+
this.rteObj.formatter.saveData();
|
|
20477
|
+
}
|
|
20478
|
+
let nodes = this.editorManager.domNode.blockNodes();
|
|
20479
|
+
for (let i = 0; nodes.length > i; i++) {
|
|
20480
|
+
nodes[i].style.lineHeight = args.item.text;
|
|
20481
|
+
}
|
|
20482
|
+
this.rteObj.formatter.saveData();
|
|
20483
|
+
this.rteObj.formatter.enableUndo(this.rteObj);
|
|
20484
|
+
}
|
|
20485
|
+
aiQuerySelectedMenu(args) {
|
|
20486
|
+
this.dialogueOpen(args.item.text);
|
|
20487
|
+
}
|
|
20488
|
+
dialogueOpen(selectedQuery) {
|
|
20489
|
+
var selectionText = this.rteObj.getSelectedHtml();
|
|
20490
|
+
this.selectedQuery = selectedQuery;
|
|
20491
|
+
if (selectionText) {
|
|
20492
|
+
let range = this.rteObj.formatter.editorManager.nodeSelection.getRange(this.rteObj.contentModule.getDocument());
|
|
20493
|
+
this.rteObj.formatter.editorManager.nodeSelection.save(range, this.rteObj.contentModule.getDocument());
|
|
20494
|
+
this.dropValIndex = this.queryList.findIndex((q) => q.text.toLowerCase() === selectedQuery.toLowerCase());
|
|
20495
|
+
this.queryCategory.index = this.dropValIndex;
|
|
20496
|
+
this.leftRte.value = this.promptQuery = selectionText;
|
|
20497
|
+
this.leftRte.refreshUI();
|
|
20498
|
+
this.AIdialog.show();
|
|
20499
|
+
this.updateAISugesstionsData(selectedQuery);
|
|
20500
|
+
}
|
|
20501
|
+
else {
|
|
20502
|
+
this.showMsg = true;
|
|
20503
|
+
setTimeout(() => {
|
|
20504
|
+
this.showMsg = false;
|
|
20505
|
+
}, 3000);
|
|
20506
|
+
console.log("Please select the content to perform the AI operation.");
|
|
20507
|
+
}
|
|
20508
|
+
}
|
|
20509
|
+
updateAISugesstionsData(selectedQuery) {
|
|
20510
|
+
this.isSentimentCheck = false;
|
|
20511
|
+
switch (selectedQuery) {
|
|
20512
|
+
case "Summarize":
|
|
20513
|
+
this.subQuery = "Summarize the upcoming sentence shortly.";
|
|
20514
|
+
break;
|
|
20515
|
+
case "Elaborate":
|
|
20516
|
+
this.subQuery = "Elaborate on the upcoming sentence.";
|
|
20517
|
+
break;
|
|
20518
|
+
case "Rephrase":
|
|
20519
|
+
this.subQuery = this.chipValue + " rephrase the upcoming sentence.";
|
|
20520
|
+
break;
|
|
20521
|
+
case "Correct Grammar":
|
|
20522
|
+
this.subQuery = "Correct the grammar of the upcoming sentence.";
|
|
20523
|
+
break;
|
|
20524
|
+
case "Translate":
|
|
20525
|
+
this.subQuery =
|
|
20526
|
+
"Translate the upcoming sentence to " + this.translatelanguage + ".";
|
|
20527
|
+
break;
|
|
20528
|
+
case "Sentiment Analysis":
|
|
20529
|
+
this.isSentimentCheck = true;
|
|
20530
|
+
this.subQuery =
|
|
20531
|
+
'Analyze the sentiment and grammar of the following paragraphs and provide the expression score with an emoji followed by the sentiment in the format: "😊 Neutral". \n\nNOTE: Avoid any additional text or explanation:';
|
|
20532
|
+
break;
|
|
20533
|
+
}
|
|
20534
|
+
this.updateAISugesstions();
|
|
20535
|
+
}
|
|
20536
|
+
updateAISugesstions() {
|
|
20537
|
+
try {
|
|
20538
|
+
if (this.promptQuery) {
|
|
20539
|
+
document.getElementById("skeletonId").style.display =
|
|
20540
|
+
"";
|
|
20541
|
+
document.getElementById("rightRte").style.display =
|
|
20542
|
+
"none";
|
|
20543
|
+
this.sentimentButton.element.style.display = "none";
|
|
20544
|
+
this.regenerateButton.disabled = true;
|
|
20545
|
+
this.copyButton.disabled = true;
|
|
20546
|
+
this.replaceButton.disabled = true;
|
|
20547
|
+
this.apiResultData = this.getResponseFromOpenAI(this.subQuery, this.promptQuery);
|
|
20548
|
+
this.apiResultData.then((result) => {
|
|
20549
|
+
this.AIResult = this.isSentimentCheck ? this.promptQuery : result;
|
|
20550
|
+
this.sentimentButton.content = result
|
|
20551
|
+
.toLowerCase()
|
|
20552
|
+
.includes("positive")
|
|
20553
|
+
? "😊 Positive"
|
|
20554
|
+
: result.toLowerCase().includes("negative")
|
|
20555
|
+
? "😞 Negative"
|
|
20556
|
+
: "😐 Neutral";
|
|
20557
|
+
this.sentimentButton.element.style.display = !this.isSentimentCheck
|
|
20558
|
+
? "none"
|
|
20559
|
+
: "";
|
|
20560
|
+
this.rightRte.value = this.AIResult;
|
|
20561
|
+
var noResultsFound = !(this.AIResult || this.promptQuery);
|
|
20562
|
+
document.getElementById("no-results-found").style.display = noResultsFound ? "" : "none";
|
|
20563
|
+
this.regenerateButton.disabled = noResultsFound;
|
|
20564
|
+
this.copyButton.disabled = noResultsFound;
|
|
20565
|
+
this.replaceButton.disabled = noResultsFound;
|
|
20566
|
+
document.getElementById("skeletonId").style.display =
|
|
20567
|
+
"none";
|
|
20568
|
+
document.getElementById("rightRte").style.display =
|
|
20569
|
+
noResultsFound ? "none" : "";
|
|
20570
|
+
console.log(noResultsFound, document.getElementById("rightRte").style);
|
|
20571
|
+
// this.ref.markForCheck();
|
|
20572
|
+
});
|
|
20573
|
+
}
|
|
20574
|
+
}
|
|
20575
|
+
catch {
|
|
20576
|
+
// this.toastObj.show();
|
|
20577
|
+
}
|
|
20578
|
+
}
|
|
20579
|
+
async getResponseFromOpenAI(subQuery, promptQuery) {
|
|
20580
|
+
const content = await OpenAiModelRTE(subQuery, promptQuery);
|
|
20581
|
+
return content ? content : "";
|
|
20582
|
+
}
|
|
20583
|
+
dialogShow() {
|
|
20584
|
+
this.regenerateButton.element.addEventListener("click", () => {
|
|
20585
|
+
this.updateAISugesstions();
|
|
20586
|
+
});
|
|
20587
|
+
this.copyButton.element.addEventListener("click", () => {
|
|
20588
|
+
this.copyTextToClipboard(this.AIResult);
|
|
20589
|
+
});
|
|
20590
|
+
this.replaceButton.element.addEventListener("click", () => {
|
|
20591
|
+
let range = this.rteObj.formatter.editorManager.nodeSelection.getRange(this.rteObj.contentModule.getDocument());
|
|
20592
|
+
this.rteObj.formatter.editorManager.nodeSelection.restore(range);
|
|
20593
|
+
this.rteObj.executeCommand("insertHTML", this.AIResult, {
|
|
20594
|
+
undo: true,
|
|
20595
|
+
});
|
|
20596
|
+
this.closeDialog();
|
|
20597
|
+
});
|
|
20598
|
+
this.AIdialog.element.style.display = "";
|
|
20599
|
+
}
|
|
20600
|
+
closeDialog() {
|
|
20601
|
+
this.AIdialog.hide();
|
|
20602
|
+
this.rightRte.value = "";
|
|
20603
|
+
this.leftRte.value = "";
|
|
20604
|
+
this.promptQuery = "";
|
|
20605
|
+
this.chipValue = "Standard";
|
|
20606
|
+
this.AIResult = "";
|
|
20607
|
+
this.dropValIndex = 0;
|
|
20608
|
+
this.selectedQuery = "Rephrase";
|
|
20609
|
+
this.sentimentButton.content = "😊 Neutral";
|
|
20610
|
+
}
|
|
20611
|
+
copyTextToClipboard(text) {
|
|
20612
|
+
if (navigator.clipboard) {
|
|
20613
|
+
navigator.clipboard
|
|
20614
|
+
.writeText(text)
|
|
20615
|
+
.then(() => {
|
|
20616
|
+
console.log("Text copied to clipboard successfully!");
|
|
20617
|
+
})
|
|
20618
|
+
.catch((err) => {
|
|
20619
|
+
console.error("Failed to copy text: ", err);
|
|
20620
|
+
});
|
|
20621
|
+
}
|
|
20622
|
+
else {
|
|
20623
|
+
// Fallback for browsers that do not support the Clipboard API
|
|
20624
|
+
const textarea = document.createElement("textarea");
|
|
20625
|
+
textarea.value = text;
|
|
20626
|
+
document.body.appendChild(textarea);
|
|
20627
|
+
textarea.select();
|
|
20628
|
+
try {
|
|
20629
|
+
document.execCommand("copy");
|
|
20630
|
+
console.log("Text copied to clipboard using execCommand");
|
|
20631
|
+
}
|
|
20632
|
+
catch (err) {
|
|
20633
|
+
console.error("Failed to copy text: ", err);
|
|
20634
|
+
}
|
|
20635
|
+
finally {
|
|
20636
|
+
document.body.removeChild(textarea);
|
|
20637
|
+
}
|
|
20638
|
+
}
|
|
20639
|
+
}
|
|
20640
|
+
onOverlayClick() {
|
|
20641
|
+
let activeEle = this.AIdialog.element.querySelector(".char_block.e-active");
|
|
20642
|
+
if (activeEle) {
|
|
20643
|
+
activeEle.classList.remove("e-active");
|
|
20644
|
+
}
|
|
20645
|
+
this.closeDialog();
|
|
20646
|
+
}
|
|
20647
|
+
onQuerySelect(args) {
|
|
20648
|
+
// this.chipList.selectedChips = 0;
|
|
20649
|
+
this.translatelanguage = "EN";
|
|
20650
|
+
this.selectedQuery = args.itemData.text;
|
|
20651
|
+
this.updateAISugesstionsData(args.itemData.text);
|
|
20652
|
+
}
|
|
20653
|
+
onLanguageSelect(args) {
|
|
20654
|
+
this.translatelanguage = args.itemData.id;
|
|
20655
|
+
this.updateAISugesstionsData("Translate");
|
|
20656
|
+
}
|
|
20657
|
+
onChipClick(args) {
|
|
20658
|
+
this.chipValue = args.itemData.text;
|
|
20659
|
+
// 事件会触发两次 必须判断args.text是否有值
|
|
20660
|
+
if (args.itemData.text)
|
|
20661
|
+
this.updateAISugesstionsData("Rephrase");
|
|
20662
|
+
}
|
|
20663
|
+
_toolbarClick(args) {
|
|
20664
|
+
this.toolbarClick.emit(args);
|
|
20665
|
+
}
|
|
20666
|
+
hideToast() {
|
|
20667
|
+
this.showMsg = false;
|
|
20668
|
+
}
|
|
20669
|
+
onZoom() {
|
|
20670
|
+
if (this.size === "largest") {
|
|
20671
|
+
this.size = ""; // 恢复到原始大小
|
|
20672
|
+
}
|
|
20673
|
+
else {
|
|
20674
|
+
this.size = "largest"; // 设置为最大化
|
|
20675
|
+
}
|
|
20676
|
+
}
|
|
20677
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: RichtexteditorComponent, deps: [{ token: i1$5.DialogService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
20678
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: RichtexteditorComponent, selector: "rs-richtext-editor", inputs: { placeholder: "placeholder", value: "value", height: "height", autoSaveOnIdle: "autoSaveOnIdle", target: "target" }, outputs: { toolbarClick: "toolbarClick", change: "change" }, viewQueries: [{ propertyName: "rteObj", first: true, predicate: ["editor"], descendants: true }, { propertyName: "queryCategory", first: true, predicate: ["queryCategory"], descendants: true }, { propertyName: "leftRte", first: true, predicate: ["leftRte"], descendants: true }, { propertyName: "rightRte", first: true, predicate: ["rightRte"], descendants: true }, { propertyName: "AIdialog", first: true, predicate: ["AIdialog"], descendants: true, static: true }, { propertyName: "sentimentButton", first: true, predicate: ["sentimentButton"], descendants: true }, { propertyName: "regenerateButton", first: true, predicate: ["regenerateButton"], descendants: true }, { propertyName: "copyButton", first: true, predicate: ["copyButton"], descendants: true }, { propertyName: "replaceButton", first: true, predicate: ["replaceButton"], descendants: true }], ngImport: i0, template: "<div class=\"editor_box\" id=\"container\">\r\n <ejs-richtexteditor\r\n #editor\r\n id=\"editor\"\r\n [height]=\"height\"\r\n [saveInterval]=\"0\"\r\n [autoSaveOnIdle]=\"autoSaveOnIdle\"\r\n [toolbarSettings]=\"tools\"\r\n [fontFamily]=\"family\"\r\n [insertImageSettings]=\"insertImageSettings\"\r\n [(value)]=\"value\"\r\n (change)=\"onContentChange($event)\"\r\n (created)=\"onCreate()\"\r\n (toolbarClick)=\"_toolbarClick($event)\"\r\n >\r\n </ejs-richtexteditor>\r\n <ejs-dialog\r\n #AIdialog\r\n id=\"AIdialog\"\r\n [ngClass]=\"size\"\r\n [visible]=\"false\"\r\n [target]=\"target\"\r\n [isModal]=\"true\"\r\n [height]=\"dialogHeight\"\r\n [width]=\"dialogWidth\"\r\n maxHeight=\"80%\"\r\n cssClass=\"e-rte-elements custom-dialog-rte\"\r\n zIndex=\"1000\"\r\n (close)=\"closeDialog()\"\r\n (overlayClick)=\"onOverlayClick()\"\r\n (open)=\"dialogShow()\"\r\n >\r\n <ng-template #header>\r\n <div class=\"header-title\">AI Assist</div>\r\n <div class=\"header-buttons\">\r\n <div *ngIf=\"showZoomBtn\" class=\"header-zoom\" (click)=\"onZoom()\">\r\n <img\r\n class=\"header-icon\"\r\n *ngIf=\"size === 'largest'\"\r\n src=\"../../../assets/img/dialog-shrink.svg\"\r\n />\r\n <img\r\n class=\"header-icon\"\r\n *ngIf=\"size !== 'largest'\"\r\n src=\"../../../assets/img/dialog-grow.svg\"\r\n />\r\n </div>\r\n <div class=\"header-btn\" (click)=\"closeDialog()\">\r\n <img class=\"header-icon\" src=\"../../../assets/img/dialog-close.svg\" />\r\n </div>\r\n </div>\r\n </ng-template>\r\n <ng-template #footerTemplate>\r\n <div id=\"dialog-footer-content\">\r\n <div class=\"custom-row-0\">\r\n <div\r\n class=\"cuscol-0\"\r\n style=\"width: 100%; align-items: center; justify-content: left\"\r\n ></div>\r\n <div\r\n class=\"cuscol-1\"\r\n style=\"\r\n display: flex;\r\n flex-direction: column;\r\n justify-content: center;\r\n align-items: center;\r\n width: 100%;\r\n \"\r\n >\r\n <div style=\"text-align: right; width: 100%\">\r\n <button\r\n ejs-button\r\n #sentimentButton\r\n content=\"\uD83D\uDE0A Neutral\"\r\n disabled=\"false\"\r\n cssClass=\"sentiment\"\r\n ></button>\r\n <button\r\n ejs-button\r\n #copyButton\r\n content=\"Copy\"\r\n disabled=\"false\"\r\n class=\"copy-btn\"\r\n ></button>\r\n <button\r\n ejs-button\r\n #replaceButton\r\n content=\"Replace\"\r\n isPrimary=\"true\"\r\n disabled=\"false\"\r\n ></button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </ng-template>\r\n <ng-template #content>\r\n <div class=\"dialog-content\" style=\"height: 100%\">\r\n <div class=\"custom-row-0\">\r\n <div class=\"cuscol-0\" style=\"width: 100%\">\r\n <ejs-dropdownlist\r\n #queryCategory\r\n style=\"width: 200px\"\r\n id=\"queryCategory\"\r\n [dataSource]=\"queryList\"\r\n index=\"0\"\r\n [fields]=\"{ text: 'text', value: 'id' }\"\r\n (select)=\"onQuerySelect($event)\"\r\n >\r\n Rephrase\r\n </ejs-dropdownlist>\r\n <ejs-dropdownlist\r\n *ngIf=\"selectedQuery == 'Rephrase'\"\r\n id=\"chips-container\"\r\n #chipList\r\n style=\"width: 160px\"\r\n [(ngModel)]=\"chipValue\"\r\n [dataSource]=\"rephraseTyleList\"\r\n [fields]=\"{ text: 'text', value: 'id' }\"\r\n (select)=\"onChipClick($event)\"\r\n >\r\n </ejs-dropdownlist>\r\n <ejs-dropdownlist\r\n *ngIf=\"selectedQuery == 'Translate'\"\r\n #languageCategory\r\n index=\"0\"\r\n id=\"language-Category\"\r\n [dataSource]=\"languageList\"\r\n [fields]=\"{ text: 'text', value: 'id' }\"\r\n (select)=\"onLanguageSelect($event)\"\r\n >\r\n </ejs-dropdownlist>\r\n </div>\r\n <div\r\n class=\"cuscol-1\"\r\n style=\"\r\n justify-content: space-between;\r\n align-items: center;\r\n width: 100%;\r\n \"\r\n >\r\n <!-- <ejs-chiplist\r\n id=\"chips-container\"\r\n #chipList\r\n [chips]=\"['Standard', 'Fluent', 'Professional']\"\r\n selection=\"Single\"\r\n cssClass=\"e-outline\"\r\n [selectedChips]=\"[0]\"\r\n (click)=\"onChipClick($event)\"\r\n >\r\n </ejs-chiplist> -->\r\n <button\r\n ejs-button\r\n #regenerateButton\r\n content=\"Regenerate\"\r\n isPrimary=\"true\"\r\n disabled=\"false\"\r\n ></button>\r\n </div>\r\n </div>\r\n <div class=\"custom-row-1\" style=\"height: calc(100% - 40px)\">\r\n <div\r\n class=\"cuscol-0\"\r\n style=\"\r\n width: 100%;\r\n height: 100%;\r\n align-items: center;\r\n justify-content: left;\r\n \"\r\n >\r\n <div style=\"text-align: left; height: 100%\">\r\n <ejs-richtexteditor\r\n #leftRte\r\n id=\"leftRte\"\r\n height=\"100%\"\r\n [toolbarSettings]=\"{ enable: false }\"\r\n placeholder=\"Analysis of AI Support\"\r\n cssClass=\"e-outline\"\r\n >\r\n </ejs-richtexteditor>\r\n </div>\r\n </div>\r\n <div\r\n class=\"cuscol-1\"\r\n style=\"\r\n display: flex;\r\n justify-content: space-between;\r\n width: 100%;\r\n height: 100%;\r\n \"\r\n >\r\n <div style=\"text-align: left; width: 100%; height: 100%\">\r\n <ejs-richtexteditor\r\n #rightRte\r\n id=\"rightRte\"\r\n height=\"100%\"\r\n [toolbarSettings]=\"{ enable: false }\"\r\n placeholder=\"Analysis of AI Support\"\r\n cssClass=\"e-outline\"\r\n >\r\n <!-- style=\"display: none\" -->\r\n </ejs-richtexteditor>\r\n <div\r\n class=\"no-results-found\"\r\n id=\"no-results-found\"\r\n style=\"display: none; height: 244px; align-content: center\"\r\n >\r\n <img\r\n height=\"50\"\r\n width=\"50\"\r\n src=\"https://storage.googleapis.com/cdn-bolddesk/agent-angular-app/images/light/no-records-warning.svg\"\r\n />\r\n <div>No results found</div>\r\n </div>\r\n <div id=\"skeletonId\" style=\"display: none\">\r\n <ejs-skeleton\r\n #skeletonId1\r\n shape=\"Rectangle\"\r\n height=\"20px\"\r\n width=\"100%\"\r\n ></ejs-skeleton\r\n ><br />\r\n <ejs-skeleton\r\n #skeletonId2\r\n shape=\"Rectangle\"\r\n height=\"20px\"\r\n width=\"90%\"\r\n ></ejs-skeleton\r\n ><br />\r\n <ejs-skeleton\r\n #skeletonId3\r\n shape=\"Rectangle\"\r\n height=\"20px\"\r\n width=\"70%\"\r\n ></ejs-skeleton\r\n ><br />\r\n <ejs-skeleton\r\n #skeletonId4\r\n shape=\"Rectangle\"\r\n height=\"20px\"\r\n width=\"50%\"\r\n ></ejs-skeleton\r\n ><br />\r\n <ejs-skeleton\r\n #skeletonId5\r\n shape=\"Rectangle\"\r\n height=\"20px\"\r\n width=\"30%\"\r\n ></ejs-skeleton\r\n ><br />\r\n <ejs-skeleton\r\n #skeletonId6\r\n shape=\"Rectangle\"\r\n height=\"20px\"\r\n width=\"10%\"\r\n ></ejs-skeleton\r\n ><br />\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </ng-template>\r\n </ejs-dialog>\r\n <div class=\"toast\" *ngIf=\"showMsg\">\r\n <span class=\"toast_text\">First, Select some text</span\r\n ><span class=\"close_icon\" (click)=\"hideToast()\"></span>\r\n </div>\r\n</div>\r\n", styles: [".editor_box{position:relative;width:100%;height:100%}.editor_box .toast{position:absolute;left:35%;top:110px;z-index:1;width:400px;border-radius:4px;border:1px solid #e8f2ff;background:#f4f8ff;padding:4px 12px;color:#1f3f5c;font-size:12px;font-style:normal;font-weight:400;height:32px;font-family:Arial;display:flex;align-items:center;justify-content:space-between}.editor_box .toast .toast_text:before{content:url(\"data:image/svg+xml,%3Csvg width%3D%2216%22 height%3D%2217%22 viewBox%3D%220 0 16 17%22 fill%3D%22none%22 xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0D%3Ccircle cx%3D%228%22 cy%3D%228.5%22 r%3D%226.5%22 stroke%3D%22%236B6B6B%22%2F%3E%0D%3Cpath d%3D%22M8 8.5V11.5%22 stroke%3D%22%236B6B6B%22 stroke-width%3D%222%22 stroke-linecap%3D%22round%22%2F%3E%0D%3Ccircle cx%3D%228%22 cy%3D%225.5%22 r%3D%221%22 fill%3D%22%236B6B6B%22%2F%3E%0D%3C%2Fsvg%3E%0D\");display:inline-block;width:16px;height:16px;vertical-align:bottom;margin-right:8px}.editor_box .toast .close_icon{background-image:url(\"data:image/svg+xml,%3Csvg width%3D%2216%22 height%3D%2216%22 viewBox%3D%220 0 16 16%22 fill%3D%22none%22 xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0D%3Cpath d%3D%22M3.50021 12.9999L12.5001 4.00007%22 stroke%3D%22%236C7C90%22 stroke-linecap%3D%22round%22%2F%3E%0D%3Cpath d%3D%22M12.4999 12.9999L3.50007 4.00007%22 stroke%3D%22%236C7C90%22 stroke-linecap%3D%22round%22%2F%3E%0D%3C%2Fsvg%3E%0D\");cursor:pointer;display:inline-block;width:16px;height:16px}.custom-dialog-rte{padding:0 20px;border-radius:10px}.custom-row-0,.custom-row-1,.custom-row-2{display:flex;align-items:center;padding:12px 24px}.e-rte-dropdown-btn-text{padding-left:4px}.no-results-found{text-align:center}.no-results-found img{display:block;margin:0 auto}.e-custom{margin-right:.5rem;border-radius:25px!important}.custom-dialog-rte .skeleton-rectangle{border-radius:4px}@media (max-width: 767px){.cuscol-0,.cuscol-1,.cuscol-2{justify-content:center!important}.custom-row-0,.custom-row-1,.custom-row-2{flex-direction:column!important}.cuscol-1{border-right:none!important}.cuscol-0{width:100%;align-items:center}::ng-deep:host .e-dialog{max-height:80%!important}.custom-dialog-rte .e-dialog .e-dlg-content{overflow-y:auto!important}.custom-dialog-rte .e-dialog .e-dlg-content .e-richtexteditor{height:100px!important}.cuscol-noresult{padding-bottom:20px!important}.e-chip-list{padding:5px!important}.cuscol{padding-right:.2rem!important;width:auto!important}.custom-row-1{height:auto!important}}.cuscol-1{display:flex;flex-direction:row!important}.cuscol-2{display:flex;flex-direction:column!important}.sentiment{color:#000!important}.custom-dialog-rte .e-dialog .e-dlg-content{padding:0!important;overflow-y:hidden}.custom-dialog-rte .e-dialog .e-dlg-header-content{padding:20px 0!important;border:0!important}.custom-dialog-rte .e-dialog .e-dlg-header-content .e-dlg-header{display:flex;align-items:center;line-height:18px;justify-content:space-between}.custom-dialog-rte .e-dialog .e-dlg-header-content .e-dlg-header .header-title{font-family:Arial;font-size:15px;font-weight:700;font-style:normal}.custom-dialog-rte .e-dialog .e-dlg-header-content .header-buttons{display:flex}.custom-dialog-rte .e-dialog .e-dlg-header-content .header-buttons img{width:16px;height:16px;cursor:pointer;padding:2px;margin-left:12px}.custom-dialog-rte .e-dialog .e-footer-content{padding:0!important}.custom-dialog-rte .e-dialog .e-dlg-content .e-richtexteditor.e-rte-tb-expand .e-rte-content,.e-richtexteditor.e-rte-tb-expand .e-source-content{border:0;border-bottom:1px solid #dee2e6;border-top:0px solid #dee2e6!important}.custom-dialog-rte .dialog-content .custom-row-0{border-top:0px solid #ddd!important;padding:0;margin-bottom:12px}.custom-dialog-rte .dialog-content .custom-row-0 .cuscol-0{justify-content:left;border-right:none!important;padding:0;display:flex;gap:12px}.custom-dialog-rte .dialog-content .custom-row-0 .cuscol-1{padding:0;margin-left:12px}.custom-dialog-rte .dialog-content .custom-row-0 .cuscol-1 .e-primary{color:#44566c;border-radius:4px;border:1px solid #dbe1e7;background:#fff;width:87px;margin:0;padding:2px 12px;font-family:Arial;font-size:12px;font-style:normal;font-weight:400;line-height:14px;height:28px}.custom-dialog-rte .dialog-content .custom-row-1{padding:0;height:calc(100% - 40px);gap:12px}.custom-dialog-rte .e-footer-content{border:0}.custom-dialog-rte .e-footer-content .custom-row-0{padding:20px 0}.custom-dialog-rte .e-footer-content .e-control.e-btn{font-family:Arial;font-size:12px;line-height:14px;padding:2px 12px;height:28px;background:#fff;color:#44566c}.custom-dialog-rte .e-footer-content .e-control.e-btn.copy-btn{border-color:#dbe1e7}.custom-dialog-rte .e-footer-content .e-control.e-btn.copy-btn:before{content:url(\"data:image/svg+xml,%3Csvg width%3D%2216%22 height%3D%2216%22 viewBox%3D%220 0 16 16%22 fill%3D%22none%22 xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Crect width%3D%2216%22 height%3D%2216%22 fill%3D%22white%22%2F%3E%3Crect x%3D%224.5%22 y%3D%224.5%22 width%3D%229%22 height%3D%229%22 rx%3D%221.5%22 stroke%3D%22%236C7C90%22%2F%3E%3Cpath d%3D%22M11.5 2.5H4.5C3.39543 2.5 2.5 3.39543 2.5 4.5V11.5%22 stroke%3D%22%236C7C90%22 stroke-linecap%3D%22round%22%2F%3E%3C%2Fsvg%3E\");vertical-align:middle;margin-right:6px}.custom-dialog-rte .e-footer-content .e-control.e-btn.e-primary{color:#fff;background:#1364b3}.editor_box .e-dialog.largest{width:96vw!important;height:88vh!important;max-height:88vh;max-width:2100px}\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$3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2$3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i3$2.ButtonComponent, selector: "[ejs-button]", inputs: ["content", "cssClass", "disabled", "enableHtmlSanitizer", "enablePersistence", "enableRtl", "iconCss", "iconPosition", "isPrimary", "isToggle", "locale"], outputs: ["created"] }, { kind: "component", type: i5$1.DialogComponent, selector: "ejs-dialog", inputs: ["allowDragging", "animationSettings", "buttons", "closeOnEscape", "content", "cssClass", "enableHtmlSanitizer", "enablePersistence", "enableResize", "enableRtl", "footerTemplate", "header", "height", "isModal", "locale", "minHeight", "position", "resizeHandles", "showCloseIcon", "target", "visible", "width", "zIndex"], outputs: ["beforeClose", "beforeOpen", "beforeSanitizeHtml", "close", "created", "destroyed", "drag", "dragStart", "dragStop", "open", "overlayClick", "resizeStart", "resizeStop", "resizing", "visibleChange"] }, { kind: "component", type: i6.DropDownListComponent, selector: "ejs-dropdownlist", inputs: ["actionFailureTemplate", "allowFiltering", "allowObjectBinding", "cssClass", "dataSource", "enablePersistence", "enableRtl", "enableVirtualization", "enabled", "fields", "filterBarPlaceholder", "filterType", "floatLabelType", "footerTemplate", "groupTemplate", "headerTemplate", "htmlAttributes", "ignoreAccent", "ignoreCase", "index", "isDeviceFullScreen", "itemTemplate", "locale", "noRecordsTemplate", "placeholder", "popupHeight", "popupWidth", "query", "readonly", "showClearButton", "sortOrder", "text", "value", "valueTemplate", "width", "zIndex"], outputs: ["actionBegin", "actionComplete", "actionFailure", "beforeOpen", "blur", "change", "close", "created", "dataBound", "destroyed", "filtering", "focus", "open", "select", "valueChange"] }, { kind: "component", type: i7.RichTextEditorComponent, selector: "ejs-richtexteditor", inputs: ["autoSaveOnIdle", "backgroundColor", "bulletFormatList", "cssClass", "editorMode", "emojiPickerSettings", "enableAutoUrl", "enableHtmlEncode", "enableHtmlSanitizer", "enablePersistence", "enableResize", "enableRtl", "enableTabKey", "enableXhtml", "enabled", "enterKey", "exportPdf", "exportWord", "fileManagerSettings", "floatingToolbarOffset", "fontColor", "fontFamily", "fontSize", "format", "formatPainterSettings", "formatter", "height", "htmlAttributes", "iframeSettings", "importWord", "inlineMode", "insertAudioSettings", "insertImageSettings", "insertVideoSettings", "keyConfig", "locale", "maxLength", "numberFormatList", "pasteCleanupSettings", "placeholder", "quickToolbarSettings", "readonly", "saveInterval", "shiftEnterKey", "showCharCount", "showTooltip", "slashMenuSettings", "tableSettings", "toolbarSettings", "undoRedoSteps", "undoRedoTimer", "value", "valueTemplate", "width"], outputs: ["actionBegin", "actionComplete", "afterImageDelete", "afterMediaDelete", "afterPasteCleanup", "beforeDialogClose", "beforeDialogOpen", "beforeFileUpload", "beforeImageDrop", "beforeImageUpload", "beforePasteCleanup", "beforeQuickToolbarOpen", "beforeSanitizeHtml", "blur", "change", "created", "destroyed", "dialogClose", "dialogOpen", "fileRemoving", "fileSelected", "fileUploadFailed", "fileUploadSuccess", "fileUploading", "focus", "imageRemoving", "imageSelected", "imageUploadFailed", "imageUploadSuccess", "imageUploading", "quickToolbarClose", "quickToolbarOpen", "resizeStart", "resizeStop", "resizing", "slashMenuItemSelect", "toolbarClick", "toolbarStatusUpdate", "updatedToolbarStatus", "valueChange"] }] });
|
|
20679
|
+
}
|
|
20680
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: RichtexteditorComponent, decorators: [{
|
|
20681
|
+
type: Component,
|
|
20682
|
+
args: [{ selector: "rs-richtext-editor", template: "<div class=\"editor_box\" id=\"container\">\r\n <ejs-richtexteditor\r\n #editor\r\n id=\"editor\"\r\n [height]=\"height\"\r\n [saveInterval]=\"0\"\r\n [autoSaveOnIdle]=\"autoSaveOnIdle\"\r\n [toolbarSettings]=\"tools\"\r\n [fontFamily]=\"family\"\r\n [insertImageSettings]=\"insertImageSettings\"\r\n [(value)]=\"value\"\r\n (change)=\"onContentChange($event)\"\r\n (created)=\"onCreate()\"\r\n (toolbarClick)=\"_toolbarClick($event)\"\r\n >\r\n </ejs-richtexteditor>\r\n <ejs-dialog\r\n #AIdialog\r\n id=\"AIdialog\"\r\n [ngClass]=\"size\"\r\n [visible]=\"false\"\r\n [target]=\"target\"\r\n [isModal]=\"true\"\r\n [height]=\"dialogHeight\"\r\n [width]=\"dialogWidth\"\r\n maxHeight=\"80%\"\r\n cssClass=\"e-rte-elements custom-dialog-rte\"\r\n zIndex=\"1000\"\r\n (close)=\"closeDialog()\"\r\n (overlayClick)=\"onOverlayClick()\"\r\n (open)=\"dialogShow()\"\r\n >\r\n <ng-template #header>\r\n <div class=\"header-title\">AI Assist</div>\r\n <div class=\"header-buttons\">\r\n <div *ngIf=\"showZoomBtn\" class=\"header-zoom\" (click)=\"onZoom()\">\r\n <img\r\n class=\"header-icon\"\r\n *ngIf=\"size === 'largest'\"\r\n src=\"../../../assets/img/dialog-shrink.svg\"\r\n />\r\n <img\r\n class=\"header-icon\"\r\n *ngIf=\"size !== 'largest'\"\r\n src=\"../../../assets/img/dialog-grow.svg\"\r\n />\r\n </div>\r\n <div class=\"header-btn\" (click)=\"closeDialog()\">\r\n <img class=\"header-icon\" src=\"../../../assets/img/dialog-close.svg\" />\r\n </div>\r\n </div>\r\n </ng-template>\r\n <ng-template #footerTemplate>\r\n <div id=\"dialog-footer-content\">\r\n <div class=\"custom-row-0\">\r\n <div\r\n class=\"cuscol-0\"\r\n style=\"width: 100%; align-items: center; justify-content: left\"\r\n ></div>\r\n <div\r\n class=\"cuscol-1\"\r\n style=\"\r\n display: flex;\r\n flex-direction: column;\r\n justify-content: center;\r\n align-items: center;\r\n width: 100%;\r\n \"\r\n >\r\n <div style=\"text-align: right; width: 100%\">\r\n <button\r\n ejs-button\r\n #sentimentButton\r\n content=\"\uD83D\uDE0A Neutral\"\r\n disabled=\"false\"\r\n cssClass=\"sentiment\"\r\n ></button>\r\n <button\r\n ejs-button\r\n #copyButton\r\n content=\"Copy\"\r\n disabled=\"false\"\r\n class=\"copy-btn\"\r\n ></button>\r\n <button\r\n ejs-button\r\n #replaceButton\r\n content=\"Replace\"\r\n isPrimary=\"true\"\r\n disabled=\"false\"\r\n ></button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </ng-template>\r\n <ng-template #content>\r\n <div class=\"dialog-content\" style=\"height: 100%\">\r\n <div class=\"custom-row-0\">\r\n <div class=\"cuscol-0\" style=\"width: 100%\">\r\n <ejs-dropdownlist\r\n #queryCategory\r\n style=\"width: 200px\"\r\n id=\"queryCategory\"\r\n [dataSource]=\"queryList\"\r\n index=\"0\"\r\n [fields]=\"{ text: 'text', value: 'id' }\"\r\n (select)=\"onQuerySelect($event)\"\r\n >\r\n Rephrase\r\n </ejs-dropdownlist>\r\n <ejs-dropdownlist\r\n *ngIf=\"selectedQuery == 'Rephrase'\"\r\n id=\"chips-container\"\r\n #chipList\r\n style=\"width: 160px\"\r\n [(ngModel)]=\"chipValue\"\r\n [dataSource]=\"rephraseTyleList\"\r\n [fields]=\"{ text: 'text', value: 'id' }\"\r\n (select)=\"onChipClick($event)\"\r\n >\r\n </ejs-dropdownlist>\r\n <ejs-dropdownlist\r\n *ngIf=\"selectedQuery == 'Translate'\"\r\n #languageCategory\r\n index=\"0\"\r\n id=\"language-Category\"\r\n [dataSource]=\"languageList\"\r\n [fields]=\"{ text: 'text', value: 'id' }\"\r\n (select)=\"onLanguageSelect($event)\"\r\n >\r\n </ejs-dropdownlist>\r\n </div>\r\n <div\r\n class=\"cuscol-1\"\r\n style=\"\r\n justify-content: space-between;\r\n align-items: center;\r\n width: 100%;\r\n \"\r\n >\r\n <!-- <ejs-chiplist\r\n id=\"chips-container\"\r\n #chipList\r\n [chips]=\"['Standard', 'Fluent', 'Professional']\"\r\n selection=\"Single\"\r\n cssClass=\"e-outline\"\r\n [selectedChips]=\"[0]\"\r\n (click)=\"onChipClick($event)\"\r\n >\r\n </ejs-chiplist> -->\r\n <button\r\n ejs-button\r\n #regenerateButton\r\n content=\"Regenerate\"\r\n isPrimary=\"true\"\r\n disabled=\"false\"\r\n ></button>\r\n </div>\r\n </div>\r\n <div class=\"custom-row-1\" style=\"height: calc(100% - 40px)\">\r\n <div\r\n class=\"cuscol-0\"\r\n style=\"\r\n width: 100%;\r\n height: 100%;\r\n align-items: center;\r\n justify-content: left;\r\n \"\r\n >\r\n <div style=\"text-align: left; height: 100%\">\r\n <ejs-richtexteditor\r\n #leftRte\r\n id=\"leftRte\"\r\n height=\"100%\"\r\n [toolbarSettings]=\"{ enable: false }\"\r\n placeholder=\"Analysis of AI Support\"\r\n cssClass=\"e-outline\"\r\n >\r\n </ejs-richtexteditor>\r\n </div>\r\n </div>\r\n <div\r\n class=\"cuscol-1\"\r\n style=\"\r\n display: flex;\r\n justify-content: space-between;\r\n width: 100%;\r\n height: 100%;\r\n \"\r\n >\r\n <div style=\"text-align: left; width: 100%; height: 100%\">\r\n <ejs-richtexteditor\r\n #rightRte\r\n id=\"rightRte\"\r\n height=\"100%\"\r\n [toolbarSettings]=\"{ enable: false }\"\r\n placeholder=\"Analysis of AI Support\"\r\n cssClass=\"e-outline\"\r\n >\r\n <!-- style=\"display: none\" -->\r\n </ejs-richtexteditor>\r\n <div\r\n class=\"no-results-found\"\r\n id=\"no-results-found\"\r\n style=\"display: none; height: 244px; align-content: center\"\r\n >\r\n <img\r\n height=\"50\"\r\n width=\"50\"\r\n src=\"https://storage.googleapis.com/cdn-bolddesk/agent-angular-app/images/light/no-records-warning.svg\"\r\n />\r\n <div>No results found</div>\r\n </div>\r\n <div id=\"skeletonId\" style=\"display: none\">\r\n <ejs-skeleton\r\n #skeletonId1\r\n shape=\"Rectangle\"\r\n height=\"20px\"\r\n width=\"100%\"\r\n ></ejs-skeleton\r\n ><br />\r\n <ejs-skeleton\r\n #skeletonId2\r\n shape=\"Rectangle\"\r\n height=\"20px\"\r\n width=\"90%\"\r\n ></ejs-skeleton\r\n ><br />\r\n <ejs-skeleton\r\n #skeletonId3\r\n shape=\"Rectangle\"\r\n height=\"20px\"\r\n width=\"70%\"\r\n ></ejs-skeleton\r\n ><br />\r\n <ejs-skeleton\r\n #skeletonId4\r\n shape=\"Rectangle\"\r\n height=\"20px\"\r\n width=\"50%\"\r\n ></ejs-skeleton\r\n ><br />\r\n <ejs-skeleton\r\n #skeletonId5\r\n shape=\"Rectangle\"\r\n height=\"20px\"\r\n width=\"30%\"\r\n ></ejs-skeleton\r\n ><br />\r\n <ejs-skeleton\r\n #skeletonId6\r\n shape=\"Rectangle\"\r\n height=\"20px\"\r\n width=\"10%\"\r\n ></ejs-skeleton\r\n ><br />\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </ng-template>\r\n </ejs-dialog>\r\n <div class=\"toast\" *ngIf=\"showMsg\">\r\n <span class=\"toast_text\">First, Select some text</span\r\n ><span class=\"close_icon\" (click)=\"hideToast()\"></span>\r\n </div>\r\n</div>\r\n", styles: [".editor_box{position:relative;width:100%;height:100%}.editor_box .toast{position:absolute;left:35%;top:110px;z-index:1;width:400px;border-radius:4px;border:1px solid #e8f2ff;background:#f4f8ff;padding:4px 12px;color:#1f3f5c;font-size:12px;font-style:normal;font-weight:400;height:32px;font-family:Arial;display:flex;align-items:center;justify-content:space-between}.editor_box .toast .toast_text:before{content:url(\"data:image/svg+xml,%3Csvg width%3D%2216%22 height%3D%2217%22 viewBox%3D%220 0 16 17%22 fill%3D%22none%22 xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0D%3Ccircle cx%3D%228%22 cy%3D%228.5%22 r%3D%226.5%22 stroke%3D%22%236B6B6B%22%2F%3E%0D%3Cpath d%3D%22M8 8.5V11.5%22 stroke%3D%22%236B6B6B%22 stroke-width%3D%222%22 stroke-linecap%3D%22round%22%2F%3E%0D%3Ccircle cx%3D%228%22 cy%3D%225.5%22 r%3D%221%22 fill%3D%22%236B6B6B%22%2F%3E%0D%3C%2Fsvg%3E%0D\");display:inline-block;width:16px;height:16px;vertical-align:bottom;margin-right:8px}.editor_box .toast .close_icon{background-image:url(\"data:image/svg+xml,%3Csvg width%3D%2216%22 height%3D%2216%22 viewBox%3D%220 0 16 16%22 fill%3D%22none%22 xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0D%3Cpath d%3D%22M3.50021 12.9999L12.5001 4.00007%22 stroke%3D%22%236C7C90%22 stroke-linecap%3D%22round%22%2F%3E%0D%3Cpath d%3D%22M12.4999 12.9999L3.50007 4.00007%22 stroke%3D%22%236C7C90%22 stroke-linecap%3D%22round%22%2F%3E%0D%3C%2Fsvg%3E%0D\");cursor:pointer;display:inline-block;width:16px;height:16px}.custom-dialog-rte{padding:0 20px;border-radius:10px}.custom-row-0,.custom-row-1,.custom-row-2{display:flex;align-items:center;padding:12px 24px}.e-rte-dropdown-btn-text{padding-left:4px}.no-results-found{text-align:center}.no-results-found img{display:block;margin:0 auto}.e-custom{margin-right:.5rem;border-radius:25px!important}.custom-dialog-rte .skeleton-rectangle{border-radius:4px}@media (max-width: 767px){.cuscol-0,.cuscol-1,.cuscol-2{justify-content:center!important}.custom-row-0,.custom-row-1,.custom-row-2{flex-direction:column!important}.cuscol-1{border-right:none!important}.cuscol-0{width:100%;align-items:center}::ng-deep:host .e-dialog{max-height:80%!important}.custom-dialog-rte .e-dialog .e-dlg-content{overflow-y:auto!important}.custom-dialog-rte .e-dialog .e-dlg-content .e-richtexteditor{height:100px!important}.cuscol-noresult{padding-bottom:20px!important}.e-chip-list{padding:5px!important}.cuscol{padding-right:.2rem!important;width:auto!important}.custom-row-1{height:auto!important}}.cuscol-1{display:flex;flex-direction:row!important}.cuscol-2{display:flex;flex-direction:column!important}.sentiment{color:#000!important}.custom-dialog-rte .e-dialog .e-dlg-content{padding:0!important;overflow-y:hidden}.custom-dialog-rte .e-dialog .e-dlg-header-content{padding:20px 0!important;border:0!important}.custom-dialog-rte .e-dialog .e-dlg-header-content .e-dlg-header{display:flex;align-items:center;line-height:18px;justify-content:space-between}.custom-dialog-rte .e-dialog .e-dlg-header-content .e-dlg-header .header-title{font-family:Arial;font-size:15px;font-weight:700;font-style:normal}.custom-dialog-rte .e-dialog .e-dlg-header-content .header-buttons{display:flex}.custom-dialog-rte .e-dialog .e-dlg-header-content .header-buttons img{width:16px;height:16px;cursor:pointer;padding:2px;margin-left:12px}.custom-dialog-rte .e-dialog .e-footer-content{padding:0!important}.custom-dialog-rte .e-dialog .e-dlg-content .e-richtexteditor.e-rte-tb-expand .e-rte-content,.e-richtexteditor.e-rte-tb-expand .e-source-content{border:0;border-bottom:1px solid #dee2e6;border-top:0px solid #dee2e6!important}.custom-dialog-rte .dialog-content .custom-row-0{border-top:0px solid #ddd!important;padding:0;margin-bottom:12px}.custom-dialog-rte .dialog-content .custom-row-0 .cuscol-0{justify-content:left;border-right:none!important;padding:0;display:flex;gap:12px}.custom-dialog-rte .dialog-content .custom-row-0 .cuscol-1{padding:0;margin-left:12px}.custom-dialog-rte .dialog-content .custom-row-0 .cuscol-1 .e-primary{color:#44566c;border-radius:4px;border:1px solid #dbe1e7;background:#fff;width:87px;margin:0;padding:2px 12px;font-family:Arial;font-size:12px;font-style:normal;font-weight:400;line-height:14px;height:28px}.custom-dialog-rte .dialog-content .custom-row-1{padding:0;height:calc(100% - 40px);gap:12px}.custom-dialog-rte .e-footer-content{border:0}.custom-dialog-rte .e-footer-content .custom-row-0{padding:20px 0}.custom-dialog-rte .e-footer-content .e-control.e-btn{font-family:Arial;font-size:12px;line-height:14px;padding:2px 12px;height:28px;background:#fff;color:#44566c}.custom-dialog-rte .e-footer-content .e-control.e-btn.copy-btn{border-color:#dbe1e7}.custom-dialog-rte .e-footer-content .e-control.e-btn.copy-btn:before{content:url(\"data:image/svg+xml,%3Csvg width%3D%2216%22 height%3D%2216%22 viewBox%3D%220 0 16 16%22 fill%3D%22none%22 xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Crect width%3D%2216%22 height%3D%2216%22 fill%3D%22white%22%2F%3E%3Crect x%3D%224.5%22 y%3D%224.5%22 width%3D%229%22 height%3D%229%22 rx%3D%221.5%22 stroke%3D%22%236C7C90%22%2F%3E%3Cpath d%3D%22M11.5 2.5H4.5C3.39543 2.5 2.5 3.39543 2.5 4.5V11.5%22 stroke%3D%22%236C7C90%22 stroke-linecap%3D%22round%22%2F%3E%3C%2Fsvg%3E\");vertical-align:middle;margin-right:6px}.custom-dialog-rte .e-footer-content .e-control.e-btn.e-primary{color:#fff;background:#1364b3}.editor_box .e-dialog.largest{width:96vw!important;height:88vh!important;max-height:88vh;max-width:2100px}\n"] }]
|
|
20683
|
+
}], ctorParameters: function () { return [{ type: i1$5.DialogService }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { rteObj: [{
|
|
20684
|
+
type: ViewChild,
|
|
20685
|
+
args: ["editor", { static: false }]
|
|
20686
|
+
}], queryCategory: [{
|
|
20687
|
+
type: ViewChild,
|
|
20688
|
+
args: ["queryCategory", { static: false }]
|
|
20689
|
+
}], leftRte: [{
|
|
20690
|
+
type: ViewChild,
|
|
20691
|
+
args: ["leftRte", { static: false }]
|
|
20692
|
+
}], rightRte: [{
|
|
20693
|
+
type: ViewChild,
|
|
20694
|
+
args: ["rightRte", { static: false }]
|
|
20695
|
+
}], AIdialog: [{
|
|
20696
|
+
type: ViewChild,
|
|
20697
|
+
args: ["AIdialog", { static: true }]
|
|
20698
|
+
}], sentimentButton: [{
|
|
20699
|
+
type: ViewChild,
|
|
20700
|
+
args: ["sentimentButton", { static: false }]
|
|
20701
|
+
}], regenerateButton: [{
|
|
20702
|
+
type: ViewChild,
|
|
20703
|
+
args: ["regenerateButton", { static: false }]
|
|
20704
|
+
}], copyButton: [{
|
|
20705
|
+
type: ViewChild,
|
|
20706
|
+
args: ["copyButton", { static: false }]
|
|
20707
|
+
}], replaceButton: [{
|
|
20708
|
+
type: ViewChild,
|
|
20709
|
+
args: ["replaceButton", { static: false }]
|
|
20710
|
+
}], placeholder: [{
|
|
20711
|
+
type: Input
|
|
20712
|
+
}], value: [{
|
|
20713
|
+
type: Input
|
|
20714
|
+
}], height: [{
|
|
20715
|
+
type: Input
|
|
20716
|
+
}], autoSaveOnIdle: [{
|
|
20717
|
+
type: Input
|
|
20718
|
+
}], target: [{
|
|
20719
|
+
type: Input
|
|
20720
|
+
}], toolbarClick: [{
|
|
20721
|
+
type: Output
|
|
20722
|
+
}], change: [{
|
|
20723
|
+
type: Output
|
|
20724
|
+
}] } });
|
|
20725
|
+
|
|
20726
|
+
class ConfirmSelectComponent {
|
|
20727
|
+
comfirmSelect;
|
|
20728
|
+
value;
|
|
20729
|
+
dataSource = [];
|
|
20730
|
+
disabled = false;
|
|
20731
|
+
fields = { text: "Game", value: "Id" };
|
|
20732
|
+
placeholder;
|
|
20733
|
+
showSelectAll = true;
|
|
20734
|
+
valueChange = new EventEmitter();
|
|
20735
|
+
translation;
|
|
20736
|
+
selectedItems = [];
|
|
20737
|
+
isInteracted = false;
|
|
20738
|
+
ngOnInit() {
|
|
20739
|
+
this.getInfo();
|
|
20740
|
+
this.resetSelectedItems();
|
|
20741
|
+
}
|
|
20742
|
+
ngOnChanges(changes) {
|
|
20743
|
+
if (changes.value && !changes.value.firstChange) {
|
|
20744
|
+
this.resetSelectedItems();
|
|
20745
|
+
}
|
|
20746
|
+
}
|
|
20747
|
+
getInfo() {
|
|
20748
|
+
this.translation = JSON.parse(localStorage.getItem("translation"));
|
|
20749
|
+
}
|
|
20750
|
+
resetSelectedItems() {
|
|
20751
|
+
this.selectedItems = JSON.parse(JSON.stringify(this.value || []));
|
|
20752
|
+
if (this.comfirmSelect) {
|
|
20753
|
+
this.comfirmSelect.value = this.selectedItems;
|
|
20754
|
+
}
|
|
20755
|
+
}
|
|
20756
|
+
onCancel() {
|
|
20757
|
+
this.isInteracted = true;
|
|
20758
|
+
this.resetSelectedItems();
|
|
20759
|
+
this.comfirmSelect.hidePopup();
|
|
20760
|
+
}
|
|
20761
|
+
onApply() {
|
|
20762
|
+
this.isInteracted = true;
|
|
20763
|
+
const val = this.comfirmSelect.value;
|
|
20764
|
+
this.valueChange.emit(val);
|
|
20765
|
+
this.comfirmSelect.hidePopup();
|
|
20766
|
+
}
|
|
20767
|
+
onClose(e) {
|
|
20768
|
+
if (this.isInteracted) {
|
|
20769
|
+
this.isInteracted = false;
|
|
20770
|
+
}
|
|
20771
|
+
else {
|
|
20772
|
+
this.resetSelectedItems();
|
|
20773
|
+
}
|
|
20774
|
+
}
|
|
20775
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ConfirmSelectComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
20776
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: ConfirmSelectComponent, selector: "rs-confirm-select", inputs: { value: "value", dataSource: "dataSource", disabled: "disabled", fields: "fields", placeholder: "placeholder", showSelectAll: "showSelectAll" }, outputs: { valueChange: "valueChange" }, viewQueries: [{ propertyName: "comfirmSelect", first: true, predicate: ["comfirmSelect"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div class=\"rs-confirm-select\">\r\n <ejs-multiselect\r\n #comfirmSelect\r\n [dataSource]=\"dataSource\"\r\n [showDropDownIcon]=\"true\"\r\n [placeholder]=\"placeholder\"\r\n [(ngModel)]=\"selectedItems\"\r\n [fields]=\"fields\"\r\n [showSelectAll]=\"showSelectAll\"\r\n mode=\"CheckBox\"\r\n [footerTemplate]=\"footerTemplate\"\r\n [showClearButton]=\"false\"\r\n (close)=\"onClose($event)\"\r\n filterType=\"Contains\"\r\n >\r\n <ng-template #footerTemplate=\"\" let-data=\"data\">\r\n <div class=\"confirm-select-footer\">\r\n <button class=\"e-btn\" (click)=\"onCancel()\">\r\n {{ translation.CANCEL }}\r\n </button>\r\n <button class=\"e-btn e-primary\" (click)=\"onApply()\">\r\n {{ translation.APPLY }}\r\n </button>\r\n </div>\r\n </ng-template>\r\n </ejs-multiselect>\r\n</div>\r\n", styles: [".confirm-select-footer{display:flex;align-items:center;justify-content:flex-end;padding:0 12px;gap:12px;height:40px;border-top:solid 1px var(--rs-border-color)}\n"], dependencies: [{ kind: "directive", type: i2$3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2$3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i6.MultiSelectComponent, selector: "ejs-multiselect", inputs: ["actionFailureTemplate", "addTagOnBlur", "allowCustomValue", "allowFiltering", "allowObjectBinding", "changeOnBlur", "closePopupOnSelect", "cssClass", "dataSource", "delimiterChar", "enableGroupCheckBox", "enableHtmlSanitizer", "enablePersistence", "enableRtl", "enableSelectionOrder", "enableVirtualization", "enabled", "fields", "filterBarPlaceholder", "filterType", "floatLabelType", "footerTemplate", "groupTemplate", "headerTemplate", "hideSelectedItem", "htmlAttributes", "ignoreAccent", "ignoreCase", "isDeviceFullScreen", "itemTemplate", "locale", "maximumSelectionLength", "mode", "noRecordsTemplate", "openOnClick", "placeholder", "popupHeight", "popupWidth", "query", "readonly", "selectAllText", "showClearButton", "showDropDownIcon", "showSelectAll", "sortOrder", "text", "unSelectAllText", "value", "valueTemplate", "width", "zIndex"], outputs: ["actionBegin", "actionComplete", "actionFailure", "beforeOpen", "beforeSelectAll", "blur", "change", "chipSelection", "close", "created", "customValueSelection", "dataBound", "destroyed", "filtering", "focus", "open", "removed", "removing", "select", "selectedAll", "tagging", "valueChange"] }] });
|
|
20777
|
+
}
|
|
20778
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ConfirmSelectComponent, decorators: [{
|
|
20779
|
+
type: Component,
|
|
20780
|
+
args: [{ selector: "rs-confirm-select", template: "<div class=\"rs-confirm-select\">\r\n <ejs-multiselect\r\n #comfirmSelect\r\n [dataSource]=\"dataSource\"\r\n [showDropDownIcon]=\"true\"\r\n [placeholder]=\"placeholder\"\r\n [(ngModel)]=\"selectedItems\"\r\n [fields]=\"fields\"\r\n [showSelectAll]=\"showSelectAll\"\r\n mode=\"CheckBox\"\r\n [footerTemplate]=\"footerTemplate\"\r\n [showClearButton]=\"false\"\r\n (close)=\"onClose($event)\"\r\n filterType=\"Contains\"\r\n >\r\n <ng-template #footerTemplate=\"\" let-data=\"data\">\r\n <div class=\"confirm-select-footer\">\r\n <button class=\"e-btn\" (click)=\"onCancel()\">\r\n {{ translation.CANCEL }}\r\n </button>\r\n <button class=\"e-btn e-primary\" (click)=\"onApply()\">\r\n {{ translation.APPLY }}\r\n </button>\r\n </div>\r\n </ng-template>\r\n </ejs-multiselect>\r\n</div>\r\n", styles: [".confirm-select-footer{display:flex;align-items:center;justify-content:flex-end;padding:0 12px;gap:12px;height:40px;border-top:solid 1px var(--rs-border-color)}\n"] }]
|
|
20781
|
+
}], propDecorators: { comfirmSelect: [{
|
|
20782
|
+
type: ViewChild,
|
|
20783
|
+
args: ["comfirmSelect", { static: false }]
|
|
20784
|
+
}], value: [{
|
|
20785
|
+
type: Input
|
|
20786
|
+
}], dataSource: [{
|
|
20787
|
+
type: Input
|
|
20788
|
+
}], disabled: [{
|
|
20789
|
+
type: Input
|
|
20790
|
+
}], fields: [{
|
|
20791
|
+
type: Input
|
|
20792
|
+
}], placeholder: [{
|
|
20793
|
+
type: Input
|
|
20794
|
+
}], showSelectAll: [{
|
|
20795
|
+
type: Input
|
|
20796
|
+
}], valueChange: [{
|
|
20797
|
+
type: Output
|
|
20798
|
+
}] } });
|
|
20799
|
+
|
|
19610
20800
|
class IconLoaderService {
|
|
19611
20801
|
registry;
|
|
19612
20802
|
domSanitizer;
|
|
@@ -19619,12 +20809,12 @@ class IconLoaderService {
|
|
|
19619
20809
|
this.registry.addSvgIcon(name, this.domSanitizer.bypassSecurityTrustResourceUrl(path));
|
|
19620
20810
|
});
|
|
19621
20811
|
}
|
|
19622
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: IconLoaderService, deps: [{ token:
|
|
20812
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: IconLoaderService, deps: [{ token: i4.MatIconRegistry }, { token: i2$6.DomSanitizer }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
19623
20813
|
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: IconLoaderService });
|
|
19624
20814
|
}
|
|
19625
20815
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: IconLoaderService, decorators: [{
|
|
19626
20816
|
type: Injectable
|
|
19627
|
-
}], ctorParameters: function () { return [{ type:
|
|
20817
|
+
}], ctorParameters: function () { return [{ type: i4.MatIconRegistry }, { type: i2$6.DomSanitizer }]; } });
|
|
19628
20818
|
|
|
19629
20819
|
const storedRoutes = new Map();
|
|
19630
20820
|
let toBeDeleteUrl;
|
|
@@ -19726,6 +20916,8 @@ class RaiseCommonLibModule {
|
|
|
19726
20916
|
CheckboxGroupComponent,
|
|
19727
20917
|
SwitchInputComponent,
|
|
19728
20918
|
EncryptedInputComponent,
|
|
20919
|
+
SearchInputComponent,
|
|
20920
|
+
ConfirmSelectComponent,
|
|
19729
20921
|
NewActionNotificationComponent,
|
|
19730
20922
|
CommonDialogComponent,
|
|
19731
20923
|
CommonDeleteComponent,
|
|
@@ -19734,10 +20926,13 @@ class RaiseCommonLibModule {
|
|
|
19734
20926
|
ToolbarItemComponent,
|
|
19735
20927
|
RsCommentaryComponent,
|
|
19736
20928
|
RSNavCardGroupComponent,
|
|
19737
|
-
RSToolbarComponent
|
|
20929
|
+
RSToolbarComponent,
|
|
20930
|
+
TruncatedTextToggleComponent,
|
|
20931
|
+
RichtexteditorComponent], imports: [CommonModule,
|
|
19738
20932
|
HttpClientModule,
|
|
19739
20933
|
ReactiveFormsModule,
|
|
19740
20934
|
FormsModule,
|
|
20935
|
+
DragDropModule,
|
|
19741
20936
|
MatSnackBarModule,
|
|
19742
20937
|
MatMenuModule,
|
|
19743
20938
|
MatTooltipModule,
|
|
@@ -19775,6 +20970,7 @@ class RaiseCommonLibModule {
|
|
|
19775
20970
|
CarouselAllModule,
|
|
19776
20971
|
ToolbarModule,
|
|
19777
20972
|
TabModule,
|
|
20973
|
+
TreeViewModule,
|
|
19778
20974
|
PdfViewerModule,
|
|
19779
20975
|
DropDownButtonModule,
|
|
19780
20976
|
SplitButtonModule,
|
|
@@ -19782,11 +20978,11 @@ class RaiseCommonLibModule {
|
|
|
19782
20978
|
HttpClientModule,
|
|
19783
20979
|
ReactiveFormsModule,
|
|
19784
20980
|
FormsModule,
|
|
20981
|
+
DragDropModule,
|
|
19785
20982
|
MatSnackBarModule,
|
|
19786
20983
|
MatMenuModule,
|
|
19787
20984
|
MatTooltipModule,
|
|
19788
20985
|
MatDialogModule,
|
|
19789
|
-
MatIconModule,
|
|
19790
20986
|
GridModule,
|
|
19791
20987
|
PagerModule,
|
|
19792
20988
|
GridAllModule,
|
|
@@ -19819,6 +21015,7 @@ class RaiseCommonLibModule {
|
|
|
19819
21015
|
CarouselAllModule,
|
|
19820
21016
|
ToolbarModule,
|
|
19821
21017
|
TabModule,
|
|
21018
|
+
TreeViewModule,
|
|
19822
21019
|
PdfViewerModule,
|
|
19823
21020
|
DropDownButtonModule,
|
|
19824
21021
|
SplitButtonModule,
|
|
@@ -19840,17 +21037,20 @@ class RaiseCommonLibModule {
|
|
|
19840
21037
|
CheckboxGroupComponent,
|
|
19841
21038
|
SwitchInputComponent,
|
|
19842
21039
|
EncryptedInputComponent,
|
|
21040
|
+
SearchInputComponent,
|
|
21041
|
+
ConfirmSelectComponent,
|
|
19843
21042
|
DrawerComponent,
|
|
19844
21043
|
DrawerFormComponent,
|
|
19845
21044
|
ToolbarItemComponent,
|
|
19846
21045
|
RsCommentaryComponent,
|
|
19847
21046
|
RSNavCardGroupComponent,
|
|
19848
21047
|
RSToolbarComponent,
|
|
19849
|
-
|
|
21048
|
+
TruncatedTextToggleComponent,
|
|
19850
21049
|
CommonDialogComponent,
|
|
19851
|
-
|
|
21050
|
+
RichtexteditorComponent] });
|
|
19852
21051
|
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: RaiseCommonLibModule, providers: [
|
|
19853
21052
|
PageService,
|
|
21053
|
+
RowDDService,
|
|
19854
21054
|
SortService,
|
|
19855
21055
|
FilterService,
|
|
19856
21056
|
ExcelExportService,
|
|
@@ -19887,6 +21087,7 @@ class RaiseCommonLibModule {
|
|
|
19887
21087
|
HttpClientModule,
|
|
19888
21088
|
ReactiveFormsModule,
|
|
19889
21089
|
FormsModule,
|
|
21090
|
+
DragDropModule,
|
|
19890
21091
|
MatSnackBarModule,
|
|
19891
21092
|
MatMenuModule,
|
|
19892
21093
|
MatTooltipModule,
|
|
@@ -19924,6 +21125,7 @@ class RaiseCommonLibModule {
|
|
|
19924
21125
|
CarouselAllModule,
|
|
19925
21126
|
ToolbarModule,
|
|
19926
21127
|
TabModule,
|
|
21128
|
+
TreeViewModule,
|
|
19927
21129
|
PdfViewerModule,
|
|
19928
21130
|
DropDownButtonModule,
|
|
19929
21131
|
SplitButtonModule,
|
|
@@ -19931,11 +21133,11 @@ class RaiseCommonLibModule {
|
|
|
19931
21133
|
HttpClientModule,
|
|
19932
21134
|
ReactiveFormsModule,
|
|
19933
21135
|
FormsModule,
|
|
21136
|
+
DragDropModule,
|
|
19934
21137
|
MatSnackBarModule,
|
|
19935
21138
|
MatMenuModule,
|
|
19936
21139
|
MatTooltipModule,
|
|
19937
21140
|
MatDialogModule,
|
|
19938
|
-
MatIconModule,
|
|
19939
21141
|
GridModule,
|
|
19940
21142
|
PagerModule,
|
|
19941
21143
|
GridAllModule,
|
|
@@ -19968,6 +21170,7 @@ class RaiseCommonLibModule {
|
|
|
19968
21170
|
CarouselAllModule,
|
|
19969
21171
|
ToolbarModule,
|
|
19970
21172
|
TabModule,
|
|
21173
|
+
TreeViewModule,
|
|
19971
21174
|
PdfViewerModule,
|
|
19972
21175
|
DropDownButtonModule,
|
|
19973
21176
|
SplitButtonModule,
|
|
@@ -19994,6 +21197,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
19994
21197
|
CheckboxGroupComponent,
|
|
19995
21198
|
SwitchInputComponent,
|
|
19996
21199
|
EncryptedInputComponent,
|
|
21200
|
+
SearchInputComponent,
|
|
21201
|
+
ConfirmSelectComponent,
|
|
19997
21202
|
NewActionNotificationComponent,
|
|
19998
21203
|
CommonDialogComponent,
|
|
19999
21204
|
CommonDeleteComponent,
|
|
@@ -20002,13 +21207,16 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
20002
21207
|
ToolbarItemComponent,
|
|
20003
21208
|
RsCommentaryComponent,
|
|
20004
21209
|
RSNavCardGroupComponent,
|
|
20005
|
-
RSToolbarComponent
|
|
21210
|
+
RSToolbarComponent,
|
|
21211
|
+
TruncatedTextToggleComponent,
|
|
21212
|
+
RichtexteditorComponent,
|
|
20006
21213
|
],
|
|
20007
21214
|
imports: [
|
|
20008
21215
|
CommonModule,
|
|
20009
21216
|
HttpClientModule,
|
|
20010
21217
|
ReactiveFormsModule,
|
|
20011
21218
|
FormsModule,
|
|
21219
|
+
DragDropModule,
|
|
20012
21220
|
MatSnackBarModule,
|
|
20013
21221
|
MatMenuModule,
|
|
20014
21222
|
MatTooltipModule,
|
|
@@ -20046,6 +21254,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
20046
21254
|
CarouselAllModule,
|
|
20047
21255
|
ToolbarModule,
|
|
20048
21256
|
TabModule,
|
|
21257
|
+
TreeViewModule,
|
|
20049
21258
|
PdfViewerModule,
|
|
20050
21259
|
DropDownButtonModule,
|
|
20051
21260
|
SplitButtonModule,
|
|
@@ -20053,6 +21262,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
20053
21262
|
],
|
|
20054
21263
|
providers: [
|
|
20055
21264
|
PageService,
|
|
21265
|
+
RowDDService,
|
|
20056
21266
|
SortService,
|
|
20057
21267
|
FilterService,
|
|
20058
21268
|
ExcelExportService,
|
|
@@ -20091,11 +21301,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
20091
21301
|
HttpClientModule,
|
|
20092
21302
|
ReactiveFormsModule,
|
|
20093
21303
|
FormsModule,
|
|
21304
|
+
DragDropModule,
|
|
20094
21305
|
MatSnackBarModule,
|
|
20095
21306
|
MatMenuModule,
|
|
20096
21307
|
MatTooltipModule,
|
|
20097
21308
|
MatDialogModule,
|
|
20098
|
-
MatIconModule,
|
|
20099
21309
|
GridModule,
|
|
20100
21310
|
PagerModule,
|
|
20101
21311
|
GridAllModule,
|
|
@@ -20128,6 +21338,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
20128
21338
|
CarouselAllModule,
|
|
20129
21339
|
ToolbarModule,
|
|
20130
21340
|
TabModule,
|
|
21341
|
+
TreeViewModule,
|
|
20131
21342
|
PdfViewerModule,
|
|
20132
21343
|
DropDownButtonModule,
|
|
20133
21344
|
SplitButtonModule,
|
|
@@ -20149,15 +21360,17 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
20149
21360
|
CheckboxGroupComponent,
|
|
20150
21361
|
SwitchInputComponent,
|
|
20151
21362
|
EncryptedInputComponent,
|
|
21363
|
+
SearchInputComponent,
|
|
21364
|
+
ConfirmSelectComponent,
|
|
20152
21365
|
DrawerComponent,
|
|
20153
21366
|
DrawerFormComponent,
|
|
20154
21367
|
ToolbarItemComponent,
|
|
20155
21368
|
RsCommentaryComponent,
|
|
20156
21369
|
RSNavCardGroupComponent,
|
|
20157
21370
|
RSToolbarComponent,
|
|
20158
|
-
|
|
21371
|
+
TruncatedTextToggleComponent,
|
|
20159
21372
|
CommonDialogComponent,
|
|
20160
|
-
|
|
21373
|
+
RichtexteditorComponent,
|
|
20161
21374
|
],
|
|
20162
21375
|
schemas: [CUSTOM_ELEMENTS_SCHEMA],
|
|
20163
21376
|
}]
|
|
@@ -20171,5 +21384,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
20171
21384
|
* Generated bundle index. Do not edit.
|
|
20172
21385
|
*/
|
|
20173
21386
|
|
|
20174
|
-
export { CheckboxGroupComponent,
|
|
21387
|
+
export { CheckboxGroupComponent, CommonDialogComponent, CommonFunctionService, CommonGridComponent, ConfirmSelectComponent, DefaultDrawerConfig, DialogService, DrawerComponent, DrawerFormComponent, DrawerService, EmailPattern, EncryptedInputComponent, FloatBoxComponent, GridActionComponent, GridActionItemComponent, GridBoxComponent, IconLoaderService, KeepAliveService, MainContainerComponent, MessageType, MultiTabComponent, NewActionNotificationComponent, RSAsideComponent, RSFooterComponent, RSHeaderComponent, RSNavCardGroupComponent, RSToolbarComponent, RadioGroupComponent, RaiseCommonLibModule, RichtexteditorComponent, RsCommentaryComponent, RsPageListComponent, RsPageTabComponent, SearchInputComponent, SwitchInputComponent, TagInputComponent, ToolbarItemComponent, TranslationService, TruncatedTextToggleComponent, filterShowSection };
|
|
20175
21388
|
//# sourceMappingURL=raise-common-lib-new.mjs.map
|