raise-common-lib-new 0.0.37 → 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.
Files changed (122) hide show
  1. package/README.md +24 -24
  2. package/esm2022/lib/actions/toolbar/constants.mjs +2 -0
  3. package/esm2022/lib/{layout → actions}/toolbar/index.component.mjs +3 -3
  4. package/esm2022/lib/actions/toolbar-item/index.component.mjs +82 -0
  5. package/esm2022/lib/commentary/index.component.mjs +19 -10
  6. package/esm2022/lib/common-grid/grid-action/grid-action-item/grid-action-item.component.mjs +42 -3
  7. package/esm2022/lib/common-grid/grid-action/grid-action.component.mjs +2 -2
  8. package/esm2022/lib/common-grid/index.component.mjs +30 -3
  9. package/esm2022/lib/dialog/common-delete-dialog/index.component.mjs +11 -7
  10. package/esm2022/lib/dialog/common-dialog/index.component.mjs +45 -12
  11. package/esm2022/lib/float-box/index.component.mjs +3 -1
  12. package/esm2022/lib/form/confirm-select/index.component.mjs +78 -0
  13. package/esm2022/lib/form/drawer-form/constants.mjs +1 -1
  14. package/esm2022/lib/form/drawer-form/drawer-form.component.mjs +52 -24
  15. package/esm2022/lib/form/richtexteditor/ai-config.mjs +35 -0
  16. package/esm2022/lib/form/richtexteditor/data-config.mjs +222 -0
  17. package/esm2022/lib/form/richtexteditor/index.component.mjs +425 -0
  18. package/esm2022/lib/form/richtexteditor/openapi.mjs +121 -0
  19. package/esm2022/lib/form/search-input/index.component.mjs +45 -0
  20. package/esm2022/lib/form/tag-input/index.component.mjs +1 -1
  21. package/esm2022/lib/layout/drawer/index.component.mjs +28 -18
  22. package/esm2022/lib/layout/grid-box/index.component.mjs +28 -19
  23. package/esm2022/lib/layout/main-container/index.component.mjs +3 -3
  24. package/esm2022/lib/layout/multi-tab/index.component.mjs +72 -54
  25. package/esm2022/lib/layout/page-list/index.component.mjs +28 -19
  26. package/esm2022/lib/layout/rs-aside/index.component.mjs +12 -9
  27. package/esm2022/lib/layout/rs-footer/index.component.mjs +2 -2
  28. package/esm2022/lib/layout/rs-header/index.component.mjs +6 -3
  29. package/esm2022/lib/raise-common-lib.module.mjs +43 -15
  30. package/esm2022/lib/service/dialog.service.mjs +9 -6
  31. package/esm2022/lib/service/drawer.service.mjs +8 -6
  32. package/esm2022/lib/truncated-text-toggle/index.component.mjs +41 -0
  33. package/esm2022/public-api.mjs +7 -4
  34. package/fesm2022/raise-common-lib-new.mjs +1425 -233
  35. package/fesm2022/raise-common-lib-new.mjs.map +1 -1
  36. package/lib/{form → actions}/toolbar-item/index.component.d.ts +2 -1
  37. package/lib/commentary/index.component.d.ts +2 -2
  38. package/lib/common-grid/grid-action/grid-action-item/grid-action-item.component.d.ts +6 -1
  39. package/lib/common-grid/index.component.d.ts +10 -1
  40. package/lib/dialog/common-delete-dialog/index.component.d.ts +8 -2
  41. package/lib/dialog/common-dialog/index.component.d.ts +10 -2
  42. package/lib/float-box/index.component.d.ts +2 -2
  43. package/lib/form/confirm-select/index.component.d.ts +28 -0
  44. package/lib/form/drawer-form/constants.d.ts +2 -0
  45. package/lib/form/drawer-form/drawer-form.component.d.ts +8 -5
  46. package/lib/form/richtexteditor/ai-config.d.ts +10 -0
  47. package/lib/form/richtexteditor/data-config.d.ts +14 -0
  48. package/lib/form/richtexteditor/index.component.d.ts +83 -0
  49. package/lib/form/richtexteditor/openapi.d.ts +3 -0
  50. package/lib/form/search-input/index.component.d.ts +17 -0
  51. package/lib/layout/drawer/index.component.d.ts +8 -7
  52. package/lib/layout/grid-box/index.component.d.ts +9 -6
  53. package/lib/layout/multi-tab/index.component.d.ts +7 -3
  54. package/lib/layout/page-list/index.component.d.ts +9 -6
  55. package/lib/layout/rs-aside/index.component.d.ts +3 -1
  56. package/lib/layout/rs-header/index.component.d.ts +2 -1
  57. package/lib/raise-common-lib.module.d.ts +37 -32
  58. package/lib/service/dialog.service.d.ts +3 -1
  59. package/lib/service/drawer.service.d.ts +1 -1
  60. package/lib/truncated-text-toggle/index.component.d.ts +15 -0
  61. package/package.json +2 -2
  62. package/public-api.d.ts +6 -3
  63. package/src/assets/img/arrow_right.svg +4 -4
  64. package/src/assets/img/calendar-disabled.svg +6 -6
  65. package/src/assets/img/calendar.svg +6 -6
  66. package/src/assets/img/calendar_arrow_left.svg +3 -3
  67. package/src/assets/img/calendar_arrow_right.svg +3 -3
  68. package/src/assets/img/checked-vector.svg +3 -3
  69. package/src/assets/img/click_show_more_icon.svg +3 -0
  70. package/src/assets/img/dialog-close.svg +4 -0
  71. package/src/assets/img/dialog-grow.svg +6 -0
  72. package/src/assets/img/dialog-shrink.svg +6 -0
  73. package/src/assets/img/editor-copy.svg +5 -0
  74. package/src/assets/img/grid-action-detail.svg +4 -5
  75. package/src/assets/img/grid-action-duplicate.svg +6 -0
  76. package/src/assets/img/grid-action-export.svg +4 -11
  77. package/src/assets/img/grid-action-preview.svg +7 -0
  78. package/src/assets/img/grid-action-refresh.svg +4 -0
  79. package/src/assets/img/grid-action-verify.svg +7 -0
  80. package/src/assets/img/grid-action-viewStatus.svg +3 -0
  81. package/src/assets/img/grid-menu-arrow-up.svg +4 -0
  82. package/src/assets/img/grid-menu-filter.svg +6 -0
  83. package/src/assets/img/info.svg +5 -0
  84. package/src/assets/img/plus.svg +4 -4
  85. package/src/assets/img/search.svg +4 -4
  86. package/src/assets/img/shrink-icon.svg +6 -0
  87. package/src/assets/img/time-disabled.svg +4 -4
  88. package/src/assets/img/time.svg +4 -4
  89. package/src/assets/img/toolbar-action-addFolder.svg +17 -0
  90. package/src/assets/img/toolbar-action-calculator.svg +11 -0
  91. package/src/assets/img/toolbar-action-collapse.svg +7 -0
  92. package/src/assets/img/toolbar-action-combine.svg +4 -0
  93. package/src/assets/img/toolbar-action-edit.svg +4 -0
  94. package/src/assets/img/toolbar-action-expand.svg +7 -0
  95. package/src/assets/img/toolbar-action-fetchData.svg +3 -0
  96. package/src/assets/img/toolbar-action-folderMove.svg +8 -0
  97. package/src/assets/img/toolbar-action-lock.svg +6 -0
  98. package/src/assets/img/toolbar-action-preview.svg +7 -0
  99. package/src/assets/img/toolbar-action-publish.svg +5 -0
  100. package/src/assets/img/toolbar-action-refresh.svg +3 -13
  101. package/src/assets/img/toolbar-action-reminders.svg +10 -0
  102. package/src/assets/img/toolbar-action-rename.svg +7 -0
  103. package/src/assets/img/toolbar-action-saveSequence.svg +5 -0
  104. package/src/assets/img/toolbar-action-send-file.svg +5 -0
  105. package/src/assets/img/toolbar-action-settle.svg +7 -0
  106. package/src/assets/img/toolbar-action-share.svg +5 -0
  107. package/src/assets/img/toolbar-action-submitForApproval.svg +4 -0
  108. package/src/assets/img/toolbar-action-sync.svg +4 -0
  109. package/src/assets/img/toolbar-action-template.svg +6 -0
  110. package/src/assets/img/toolbar-action-update.svg +11 -0
  111. package/src/assets/img/toolbar-action-workflow.svg +9 -0
  112. package/src/assets/style/reset/button.scss +3 -3
  113. package/src/assets/style/reset/checkbox.scss +15 -9
  114. package/src/assets/style/reset/dropdown.scss +56 -14
  115. package/src/assets/style/reset/grid.scss +134 -2
  116. package/src/assets/style/reset/mat-dialog.scss +1 -2
  117. package/src/assets/style/reset/radio.scss +33 -35
  118. package/src/assets/style/style.scss +0 -1
  119. package/esm2022/lib/form/toolbar-item/index.component.mjs +0 -56
  120. package/esm2022/lib/layout/toolbar/constants.mjs +0 -2
  121. /package/lib/{layout → actions}/toolbar/constants.d.ts +0 -0
  122. /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 { DatePipe, CommonModule } from '@angular/common';
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 i3$1 from '@angular/material/icon';
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, BehaviorSubject } from 'rxjs';
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 i3$2 from '@syncfusion/ej2-angular-inputs';
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$4 from '@syncfusion/ej2-angular-navigations';
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 '@syncfusion/ej2-angular-popups';
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$3 from '@syncfusion/ej2-angular-splitbuttons';
38
- import { DropDownButtonModule, SplitButtonModule } from '@syncfusion/ej2-angular-splitbuttons';
39
- import * as i3$4 from '@syncfusion/ej2-angular-buttons';
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 * as i3$5 from '@syncfusion/ej2-angular-calendars';
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 i5$1 from '@syncfusion/ej2-angular-dropdowns';
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 i2$5 from '@angular/platform-browser';
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\t#grid\r\n\t[id]=\"gridId\"\r\n\t[ngClass]=\"{\r\n\t\t'hide-Check-box': !alwaysShowCheckbox,\r\n\t\t'grid-loading': className === 'grid-loading'\r\n\t}\"\r\n\t[dataSource]=\"dataSource\"\r\n\t[allowPaging]=\"allowPaging && pageSettings\"\r\n\t[allowResizing]=\"true\"\r\n\t[pageSettings]=\"pageSettings\"\r\n\t[showColumnMenu]=\"true\"\r\n\t[allowSorting]=\"true\"\r\n\t[allowFiltering]=\"true\"\r\n\t[allowExcelExport]=\"true\"\r\n\t[filterSettings]=\"filterSettings\"\r\n\t[resizeSettings]=\"resizeSettings\"\r\n\t[allowSelection]=\"true\"\r\n\t[editSettings]=\"editSettings\"\r\n\t[childGrid]=\"childGrid\"\r\n\t[contextMenuItems]=\"\r\n\t\tdataSource && dataSource.length ? contextMenuItems : null\r\n\t\"\r\n\t[selectionSettings]=\"selectionSettings\"\r\n\t(recordClick)=\"_recordClick($event)\"\r\n\t(recordDoubleClick)=\"_recordDoubleClick($event)\"\r\n\t(actionBegin)=\"_actionBegin($event)\"\r\n\t(actionComplete)=\"_actionHandler($event)\"\r\n\t(rowSelected)=\"_rowSelected($event)\"\r\n\t(rowDeselected)=\"_rowDeselected($event)\"\r\n\tstyle=\"border: none\"\r\n\t(contextMenuClick)=\"_onContextMenu($event)\"\r\n\t(contextMenuOpen)=\"contextMenuOpen($event)\"\r\n\t(queryCellInfo)=\"customiseCell($event)\"\r\n\t(dataBound)=\"_dataBound($event)\"\r\n\t(rowDataBound)=\"_rowDataBound($event)\"\r\n\t(rowSelecting)=\"_rowSelecting($event)\"\r\n\t(excelQueryCellInfo)=\"_exportQueryCellInfo($event)\"\r\n\t(load)=\"_load()\"\r\n\t[frozenColumns]=\"frozenColumns\"\r\n\t[columnChooserSettings]=\"columnChooserSettings\"\r\n\r\n>\r\n\t<e-columns>\r\n\t\t<e-column\r\n\t\t\t*ngIf=\"showCheckBox\"\r\n\t\t\ttype=\"checkbox\"\r\n\t\t\t[width]=\"checkBoxWidth\"\r\n\t\t\t[showColumnMenu]=\"false\"\r\n\t\t\t[allowResizing]=\"false\"\r\n\t\t></e-column>\r\n\t\t<e-column\r\n\t\t\t*ngFor=\"let item of fields; trackBy: trackByFn; let last = last\"\r\n\t\t\t[field]=\"item.columnName\"\r\n\t\t\t[filter]=\"item.filter ? item.filter : { type: 'CheckBox' }\"\r\n\t\t\t[customAttributes]=\"\r\n\t\t\t\titem.colName === 'entityUserList' ||\r\n\t\t\t\titem.colName === 'kycProgress'\r\n\t\t\t\t\t? { class: 'hideColumnFilterClass' }\r\n\t\t\t\t\t: {}\r\n\t\t\t\"\r\n\t\t\t[headerText]=\"item.columnDisplayName\"\r\n\t\t\t[textAlign]=\"item.textAlign\"\r\n\t\t\t[showColumnMenu]=\"item.showColumnMenu === undefined ? true : false\"\r\n\t\t\t[allowFiltering]=\"item.allowFiltering === undefined ? true : false\"\r\n\t\t\t[allowSorting]=\"item.allowSorting === undefined ? true : false\"\r\n\t\t\t[editType]=\"item.editType\"\r\n\t\t\t[validationRules]=\"item.validationRules\"\r\n\t\t\t[type]=\"item.dataType || 'string'\"\r\n\t\t\t[width]=\"item.width\"\r\n\t\t\t[minWidth]=\"item.minWidth\"\r\n\t\t\t[format]=\"item.format\"\r\n\t\t\t[visible]=\"item.visible\"\r\n\t\t\t[template]=\"item.showTemplate ? columnTemplate : undefined\"\r\n\t\t\t[clipMode]=\"\r\n\t\t\t\titem.clipMode\r\n\t\t\t\t\t? item.clipMode\r\n\t\t\t\t\t: clipMode || 'EllipsisWithTooltip'\r\n\t\t\t\"\r\n\t\t\t[sortComparer]=\"item.dateComparer\"\r\n\t\t\t[allowResizing]=\"!last\"\r\n\t\t>\r\n\t\t</e-column>\r\n\t</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" }] });
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\t#grid\r\n\t[id]=\"gridId\"\r\n\t[ngClass]=\"{\r\n\t\t'hide-Check-box': !alwaysShowCheckbox,\r\n\t\t'grid-loading': className === 'grid-loading'\r\n\t}\"\r\n\t[dataSource]=\"dataSource\"\r\n\t[allowPaging]=\"allowPaging && pageSettings\"\r\n\t[allowResizing]=\"true\"\r\n\t[pageSettings]=\"pageSettings\"\r\n\t[showColumnMenu]=\"true\"\r\n\t[allowSorting]=\"true\"\r\n\t[allowFiltering]=\"true\"\r\n\t[allowExcelExport]=\"true\"\r\n\t[filterSettings]=\"filterSettings\"\r\n\t[resizeSettings]=\"resizeSettings\"\r\n\t[allowSelection]=\"true\"\r\n\t[editSettings]=\"editSettings\"\r\n\t[childGrid]=\"childGrid\"\r\n\t[contextMenuItems]=\"\r\n\t\tdataSource && dataSource.length ? contextMenuItems : null\r\n\t\"\r\n\t[selectionSettings]=\"selectionSettings\"\r\n\t(recordClick)=\"_recordClick($event)\"\r\n\t(recordDoubleClick)=\"_recordDoubleClick($event)\"\r\n\t(actionBegin)=\"_actionBegin($event)\"\r\n\t(actionComplete)=\"_actionHandler($event)\"\r\n\t(rowSelected)=\"_rowSelected($event)\"\r\n\t(rowDeselected)=\"_rowDeselected($event)\"\r\n\tstyle=\"border: none\"\r\n\t(contextMenuClick)=\"_onContextMenu($event)\"\r\n\t(contextMenuOpen)=\"contextMenuOpen($event)\"\r\n\t(queryCellInfo)=\"customiseCell($event)\"\r\n\t(dataBound)=\"_dataBound($event)\"\r\n\t(rowDataBound)=\"_rowDataBound($event)\"\r\n\t(rowSelecting)=\"_rowSelecting($event)\"\r\n\t(excelQueryCellInfo)=\"_exportQueryCellInfo($event)\"\r\n\t(load)=\"_load()\"\r\n\t[frozenColumns]=\"frozenColumns\"\r\n\t[columnChooserSettings]=\"columnChooserSettings\"\r\n\r\n>\r\n\t<e-columns>\r\n\t\t<e-column\r\n\t\t\t*ngIf=\"showCheckBox\"\r\n\t\t\ttype=\"checkbox\"\r\n\t\t\t[width]=\"checkBoxWidth\"\r\n\t\t\t[showColumnMenu]=\"false\"\r\n\t\t\t[allowResizing]=\"false\"\r\n\t\t></e-column>\r\n\t\t<e-column\r\n\t\t\t*ngFor=\"let item of fields; trackBy: trackByFn; let last = last\"\r\n\t\t\t[field]=\"item.columnName\"\r\n\t\t\t[filter]=\"item.filter ? item.filter : { type: 'CheckBox' }\"\r\n\t\t\t[customAttributes]=\"\r\n\t\t\t\titem.colName === 'entityUserList' ||\r\n\t\t\t\titem.colName === 'kycProgress'\r\n\t\t\t\t\t? { class: 'hideColumnFilterClass' }\r\n\t\t\t\t\t: {}\r\n\t\t\t\"\r\n\t\t\t[headerText]=\"item.columnDisplayName\"\r\n\t\t\t[textAlign]=\"item.textAlign\"\r\n\t\t\t[showColumnMenu]=\"item.showColumnMenu === undefined ? true : false\"\r\n\t\t\t[allowFiltering]=\"item.allowFiltering === undefined ? true : false\"\r\n\t\t\t[allowSorting]=\"item.allowSorting === undefined ? true : false\"\r\n\t\t\t[editType]=\"item.editType\"\r\n\t\t\t[validationRules]=\"item.validationRules\"\r\n\t\t\t[type]=\"item.dataType || 'string'\"\r\n\t\t\t[width]=\"item.width\"\r\n\t\t\t[minWidth]=\"item.minWidth\"\r\n\t\t\t[format]=\"item.format\"\r\n\t\t\t[visible]=\"item.visible\"\r\n\t\t\t[template]=\"item.showTemplate ? columnTemplate : undefined\"\r\n\t\t\t[clipMode]=\"\r\n\t\t\t\titem.clipMode\r\n\t\t\t\t\t? item.clipMode\r\n\t\t\t\t\t: clipMode || 'EllipsisWithTooltip'\r\n\t\t\t\"\r\n\t\t\t[sortComparer]=\"item.dateComparer\"\r\n\t\t\t[allowResizing]=\"!last\"\r\n\t\t>\r\n\t\t</e-column>\r\n\t</e-columns>\r\n</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{padding:8px;border-radius:8px;background-color:#fff;box-shadow:0 0 8px #00000040}::ng-deep .grid-action-menu-content rs-grid-action-item.disabled{pointer-events:none}::ng-deep .grid-action-menu-content rs-grid-action-item.disabled button.grid-action-item{opacity:.4}::ng-deep .grid-action-menu-content button.grid-action-item{--mat-menu-item-label-text-font: Arial;--mat-menu-item-label-text-line-height: 14px;--mat-menu-item-label-text-size: 11px;--mat-menu-item-label-text-weight: 400;display:flex;flex-flow:row nowrap;align-items:center;gap:8px;height:28px!important;min-height:auto;padding:0 16px 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 button.grid-action-item .mat-mdc-menu-item-text{display:flex;flex-flow:row nowrap;align-items:center;gap:8px}::ng-deep .grid-action-menu-content button.grid-action-item:hover{background-color:#0000000a}::ng-deep .grid-action-menu-content button.grid-action-item:hover .mat-menu-ripple{background:none!important}::ng-deep .grid-action-menu-content 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 button.grid-action-item .grid-action-image:before{display:block;width:16px;height:16px;line-height:16px}::ng-deep .grid-action-menu-content 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 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 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 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 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 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 button.grid-action-item .grid-action-image[data-type=Settle]:before{content:url(/assets/img/grid-action-settle.svg)}::ng-deep .grid-action-menu-content 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 button.grid-action-item .grid-action-image[data-type=Preview]:before{content:url(/assets/img/grid-action-detail.svg)}::ng-deep .grid-action-menu-content 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 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 button.grid-action-item .grid-action-image img{height:16px;display:block}\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: i3$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }] });
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{padding:8px;border-radius:8px;background-color:#fff;box-shadow:0 0 8px #00000040}::ng-deep .grid-action-menu-content rs-grid-action-item.disabled{pointer-events:none}::ng-deep .grid-action-menu-content rs-grid-action-item.disabled button.grid-action-item{opacity:.4}::ng-deep .grid-action-menu-content button.grid-action-item{--mat-menu-item-label-text-font: Arial;--mat-menu-item-label-text-line-height: 14px;--mat-menu-item-label-text-size: 11px;--mat-menu-item-label-text-weight: 400;display:flex;flex-flow:row nowrap;align-items:center;gap:8px;height:28px!important;min-height:auto;padding:0 16px 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 button.grid-action-item .mat-mdc-menu-item-text{display:flex;flex-flow:row nowrap;align-items:center;gap:8px}::ng-deep .grid-action-menu-content button.grid-action-item:hover{background-color:#0000000a}::ng-deep .grid-action-menu-content button.grid-action-item:hover .mat-menu-ripple{background:none!important}::ng-deep .grid-action-menu-content 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 button.grid-action-item .grid-action-image:before{display:block;width:16px;height:16px;line-height:16px}::ng-deep .grid-action-menu-content 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 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 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 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 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 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 button.grid-action-item .grid-action-image[data-type=Settle]:before{content:url(/assets/img/grid-action-settle.svg)}::ng-deep .grid-action-menu-content 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 button.grid-action-item .grid-action-image[data-type=Preview]:before{content:url(/assets/img/grid-action-detail.svg)}::ng-deep .grid-action-menu-content 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 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 button.grid-action-item .grid-action-image img{height:16px;display:block}\n"] }]
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(res) {
1005
- this.dialogRef.close(res);
1006
- this.closeEmit.emit(res);
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
- // 这里把关闭事件emit上去,但是必须使用箭头函数保存this对象
1010
- this.saveEmit.emit((res) => {
1011
- this.onClose(res);
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: "kt-common-dialog", inputs: { hideHeader: "hideHeader", hideCloseIcon: "hideCloseIcon", hideCloseBtn: "hideCloseBtn", hideSaveBtn: "hideSaveBtn", saveBtnLabel: "saveBtnLabel", cancelBtnLabel: "cancelBtnLabel", showErrorIcon: "showErrorIcon", 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\">\r\n\t<!-- \u5934\u90E8 -->\r\n\t<div *ngIf=\"!hideHeader\" mat-dialog-title class=\"dialog__header\">\r\n\t\t<div class=\"header__title\">\r\n\t\t\t<img\r\n\t\t\t\tsrc=\"../../../assets/img/notification-status-warning.svg\"\r\n\t\t\t\talt=\"\"\r\n\t\t\t\t*ngIf=\"showErrorIcon\"\r\n\t\t\t/>\r\n\t\t\t{{ title }}\r\n\t\t</div>\r\n\t\t<div\r\n\t\t\t*ngIf=\"!hideCloseIcon\"\r\n\t\t\tclass=\"header__close-btn\"\r\n\t\t\t(click)=\"onClose()\"\r\n\t\t>\r\n\t\t\t<img\r\n\t\t\t\tclass=\"header__close-icon\"\r\n\t\t\t\tsrc=\"../../../assets/img/close.svg\"\r\n\t\t\t/>\r\n\t\t</div>\r\n\t</div>\r\n\t<!-- \u5185\u5BB9 -->\r\n\t<div class=\"dialog__content\" mat-dialog-content>\r\n\t\t<ng-content></ng-content>\r\n\t</div>\r\n\t<!-- \u5E95\u90E8\u6309\u94AE -->\r\n\t<div mat-dialog-actions class=\"dialog__footer\">\r\n\t\t<ng-content select=\"[footerSlot]\"></ng-content>\r\n\t\t<!-- \u9ED8\u8BA4\u5C55\u793A\u4FDD\u5B58/\u5173\u95ED\u6309\u94AE -->\r\n\t\t<ng-container *ngIf=\"!customFooter\">\r\n\t\t\t<ng-template [ngTemplateOutlet]=\"defaultTemplate\"></ng-template>\r\n\t\t</ng-container>\r\n\t\t<ng-template #defaultTemplate>\r\n\t\t\t<button *ngIf=\"!hideCloseBtn\" class=\"e-btn\" [ngClass]=\"size\" mat-dialog-close>\r\n\t\t\t\t{{ cancelBtnLabel }}\r\n\t\t\t</button>\r\n\t\t\t<button *ngIf=\"!hideSaveBtn\" class=\"e-btn e-primary\" [ngClass]=\"size\" (click)=\"onSave()\">\r\n\t\t\t\t{{ saveBtnLabel }}\r\n\t\t\t</button>\r\n\t\t</ng-template>\r\n\t</div>\r\n\t<!-- loading -->\r\n\t<div class=\"dialog__loading\" [hidden]=\"!loading\">\r\n\t\t<img src=\"../../../assets/img/raise_loading.gif\" alt=\"\" />\r\n\t</div>\r\n</div>\r\n", styles: [":host::ng-deep .dialog{position:relative;max-height:90vh;font-weight:400;overflow:hidden}: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__close-icon{display:block;width:100%;height:100%}:host::ng-deep .dialog .dialog__header .header__close-btn{cursor:pointer;flex:0 0 20px;padding:4px;width:20px;height:20px;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}:host::ng-deep .dialog .dialog__footer{position:relative;display:flex;align-items:center;justify-content:flex-end;padding:20px 0 0;font-size:13px;line-height:16px;margin-bottom:0}:host::ng-deep .dialog .dialog__footer button{border-radius:4px;padding:6px 16px;border:none;min-width:70px}:host::ng-deep .dialog .dialog__footer button+button{margin-left:12px}:host::ng-deep .dialog .dialog__footer .save-btn{background:#1364b3;border:1px solid #1364b3;font-weight:700;color:#fff}:host::ng-deep .dialog .dialog__footer .cancel-btn{border:1px solid #adb5bd;background:#fff}: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$1.MatDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["aria-label", "type", "mat-dialog-close", "matDialogClose"], exportAs: ["matDialogClose"] }, { 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"] }] });
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: "kt-common-dialog", template: "<div class=\"dialog\" [ngClass]=\"size\">\r\n\t<!-- \u5934\u90E8 -->\r\n\t<div *ngIf=\"!hideHeader\" mat-dialog-title class=\"dialog__header\">\r\n\t\t<div class=\"header__title\">\r\n\t\t\t<img\r\n\t\t\t\tsrc=\"../../../assets/img/notification-status-warning.svg\"\r\n\t\t\t\talt=\"\"\r\n\t\t\t\t*ngIf=\"showErrorIcon\"\r\n\t\t\t/>\r\n\t\t\t{{ title }}\r\n\t\t</div>\r\n\t\t<div\r\n\t\t\t*ngIf=\"!hideCloseIcon\"\r\n\t\t\tclass=\"header__close-btn\"\r\n\t\t\t(click)=\"onClose()\"\r\n\t\t>\r\n\t\t\t<img\r\n\t\t\t\tclass=\"header__close-icon\"\r\n\t\t\t\tsrc=\"../../../assets/img/close.svg\"\r\n\t\t\t/>\r\n\t\t</div>\r\n\t</div>\r\n\t<!-- \u5185\u5BB9 -->\r\n\t<div class=\"dialog__content\" mat-dialog-content>\r\n\t\t<ng-content></ng-content>\r\n\t</div>\r\n\t<!-- \u5E95\u90E8\u6309\u94AE -->\r\n\t<div mat-dialog-actions class=\"dialog__footer\">\r\n\t\t<ng-content select=\"[footerSlot]\"></ng-content>\r\n\t\t<!-- \u9ED8\u8BA4\u5C55\u793A\u4FDD\u5B58/\u5173\u95ED\u6309\u94AE -->\r\n\t\t<ng-container *ngIf=\"!customFooter\">\r\n\t\t\t<ng-template [ngTemplateOutlet]=\"defaultTemplate\"></ng-template>\r\n\t\t</ng-container>\r\n\t\t<ng-template #defaultTemplate>\r\n\t\t\t<button *ngIf=\"!hideCloseBtn\" class=\"e-btn\" [ngClass]=\"size\" mat-dialog-close>\r\n\t\t\t\t{{ cancelBtnLabel }}\r\n\t\t\t</button>\r\n\t\t\t<button *ngIf=\"!hideSaveBtn\" class=\"e-btn e-primary\" [ngClass]=\"size\" (click)=\"onSave()\">\r\n\t\t\t\t{{ saveBtnLabel }}\r\n\t\t\t</button>\r\n\t\t</ng-template>\r\n\t</div>\r\n\t<!-- loading -->\r\n\t<div class=\"dialog__loading\" [hidden]=\"!loading\">\r\n\t\t<img src=\"../../../assets/img/raise_loading.gif\" alt=\"\" />\r\n\t</div>\r\n</div>\r\n", styles: [":host::ng-deep .dialog{position:relative;max-height:90vh;font-weight:400;overflow:hidden}: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__close-icon{display:block;width:100%;height:100%}:host::ng-deep .dialog .dialog__header .header__close-btn{cursor:pointer;flex:0 0 20px;padding:4px;width:20px;height:20px;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}:host::ng-deep .dialog .dialog__footer{position:relative;display:flex;align-items:center;justify-content:flex-end;padding:20px 0 0;font-size:13px;line-height:16px;margin-bottom:0}:host::ng-deep .dialog .dialog__footer button{border-radius:4px;padding:6px 16px;border:none;min-width:70px}:host::ng-deep .dialog .dialog__footer button+button{margin-left:12px}:host::ng-deep .dialog .dialog__footer .save-btn{background:#1364b3;border:1px solid #1364b3;font-weight:700;color:#fff}:host::ng-deep .dialog .dialog__footer .cancel-btn{border:1px solid #adb5bd;background:#fff}: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"] }]
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
- onSave(e) {
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: "<kt-common-dialog\r\n\t[size]=\"size\"\r\n\t[title]=\"title\"\r\n\t[hideHeader]=\"false\"\r\n\t[hideCloseBtn]=\"data.hideCloseBtn === undefined ? false : data.hideCloseBtn\"\r\n\t[hideSaveBtn]=\"data.hideSaveBtn === undefined ? false : data.hideSaveBtn\"\r\n\t[saveBtnLabel]=\"saveBtnLabel\"\r\n\t[cancelBtnLabel]=\"cancelBtnLabel\"\r\n\t[showErrorIcon]=\"\r\n\t\tdata.showErrorIcon === undefined ? false : data.showErrorIcon\r\n\t\"\r\n\t[hideCloseIcon]=\"\r\n\t\tdata.hideCloseIcon === undefined ? false : data.hideCloseIcon\r\n\t\"\r\n\t(saveEmit)=\"onSave($event)\"\r\n>\r\n\t<div class=\"mapping-dialog\">\r\n\t\t{{ description }}\r\n\t</div>\r\n</kt-common-dialog>\r\n", styles: [".mapping-dialog{color:#44566c;font-family:Arial;font-size:12px;line-height:16px;white-space:pre-line}\n"], dependencies: [{ kind: "component", type: CommonDialogComponent, selector: "kt-common-dialog", inputs: ["hideHeader", "hideCloseIcon", "hideCloseBtn", "hideSaveBtn", "saveBtnLabel", "cancelBtnLabel", "showErrorIcon", "size", "title", "loading"], outputs: ["saveEmit", "closeEmit"] }] });
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: "<kt-common-dialog\r\n\t[size]=\"size\"\r\n\t[title]=\"title\"\r\n\t[hideHeader]=\"false\"\r\n\t[hideCloseBtn]=\"data.hideCloseBtn === undefined ? false : data.hideCloseBtn\"\r\n\t[hideSaveBtn]=\"data.hideSaveBtn === undefined ? false : data.hideSaveBtn\"\r\n\t[saveBtnLabel]=\"saveBtnLabel\"\r\n\t[cancelBtnLabel]=\"cancelBtnLabel\"\r\n\t[showErrorIcon]=\"\r\n\t\tdata.showErrorIcon === undefined ? false : data.showErrorIcon\r\n\t\"\r\n\t[hideCloseIcon]=\"\r\n\t\tdata.hideCloseIcon === undefined ? false : data.hideCloseIcon\r\n\t\"\r\n\t(saveEmit)=\"onSave($event)\"\r\n>\r\n\t<div class=\"mapping-dialog\">\r\n\t\t{{ description }}\r\n\t</div>\r\n</kt-common-dialog>\r\n", styles: [".mapping-dialog{color:#44566c;font-family:Arial;font-size:12px;line-height:16px;white-space:pre-line}\n"] }]
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
- .YOU_HAVE_UNSAVED_CHANGED_ARE_YOU_SURE_YOU_WANT_TO_DISCARD_THEM ||
1168
- ".YOU_HAVE_UNSAVED_CHANGED_ARE_YOU_SURE_YOU_WANT_TO_DISCARD_THEM",
1169
- saveBtnLabel: this.translation.DISCARD_CHANGES || ".DISCARD_CHANGES",
1170
- cancelBtnLabel: this.translation.CONTINUE_EDITING || ".CONTINUE_EDITING",
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: "Delete Comment?",
1290
- description: "Are you sure you want to delete this Comment?",
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 (!res) {
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
- textarea.style.minHeight = "auto";
1331
- textarea.style.minHeight = textarea.scrollHeight + "px";
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(300)
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=\"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"] }]
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
- debouncedInput;
1575
+ onGridSearch = new EventEmitter();
1378
1576
  hasWholeToolbarSlot = false;
1577
+ translation;
1379
1578
  ngOnInit() {
1380
- this.debouncedInput = debounce(() => {
1381
- this.onSeach();
1382
- }, 300);
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
- searchValue;
1389
- onSeach() {
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(this.searchValue);
1594
+ this.gridContent.grid.search(value);
1392
1595
  }
1393
1596
  else if (this.orignGrid) {
1394
- this.orignGrid.search(this.searchValue);
1597
+ this.orignGrid.search(value);
1395
1598
  }
1396
1599
  else if (this.treeGrid) {
1397
- this.treeGrid.search(this.searchValue);
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 <div class=\"rs-search-input\" *ngIf=\"!hideSearch\">\r\n <ejs-textbox\r\n type=\"text\"\r\n class=\"e-input\"\r\n [(ngModel)]=\"searchValue\"\r\n (input)=\"onInput()\"\r\n placeholder=\"Search all fields\"\r\n [showClearButton]=\"true\"\r\n autocomplete=\"off\"\r\n ></ejs-textbox>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"rs-grid-wrap\">\r\n <ng-content select=\"[gridSlot]\"></ng-content>\r\n </div>\r\n </div>\r\n</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}.rs-page-list-wrap .rs-search-input{width:240px}.rs-page-list-wrap .rs-search-input ::ng-deep .e-input-group{border-radius:14px!important}.rs-page-list-wrap .rs-search-input ::ng-deep .e-input-group.e-input-focus,.rs-page-list-wrap .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-page-list-wrap .rs-search-input ::ng-deep .e-input-group.e-input-focus input.e-input,.rs-page-list-wrap .rs-search-input ::ng-deep .e-input-group:hover input.e-input{box-shadow:none!important}.rs-page-list-wrap .rs-search-input ::ng-deep .e-input-group input.e-input{width:calc(100% - 50px);height:26px}.rs-page-list-wrap .rs-search-input ::ng-deep .e-input-group input.e-input:hover{box-shadow:none!important}.rs-page-list-wrap .rs-search-input ::ng-deep .e-input-group:before{content:\"\"!important;margin:6px 0 0 8px;display:block;width:16px;height:16px;background-image:url(/assets/img/search.svg);background-size:cover;background-position:center}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2$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.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"] }] });
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 <div class=\"rs-search-input\" *ngIf=\"!hideSearch\">\r\n <ejs-textbox\r\n type=\"text\"\r\n class=\"e-input\"\r\n [(ngModel)]=\"searchValue\"\r\n (input)=\"onInput()\"\r\n placeholder=\"Search all fields\"\r\n [showClearButton]=\"true\"\r\n autocomplete=\"off\"\r\n ></ejs-textbox>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"rs-grid-wrap\">\r\n <ng-content select=\"[gridSlot]\"></ng-content>\r\n </div>\r\n </div>\r\n</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}.rs-page-list-wrap .rs-search-input{width:240px}.rs-page-list-wrap .rs-search-input ::ng-deep .e-input-group{border-radius:14px!important}.rs-page-list-wrap .rs-search-input ::ng-deep .e-input-group.e-input-focus,.rs-page-list-wrap .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-page-list-wrap .rs-search-input ::ng-deep .e-input-group.e-input-focus input.e-input,.rs-page-list-wrap .rs-search-input ::ng-deep .e-input-group:hover input.e-input{box-shadow:none!important}.rs-page-list-wrap .rs-search-input ::ng-deep .e-input-group input.e-input{width:calc(100% - 50px);height:26px}.rs-page-list-wrap .rs-search-input ::ng-deep .e-input-group input.e-input:hover{box-shadow:none!important}.rs-page-list-wrap .rs-search-input ::ng-deep .e-input-group:before{content:\"\"!important;margin:6px 0 0 8px;display:block;width:16px;height:16px;background-image:url(/assets/img/search.svg);background-size:cover;background-position:center}\n"] }]
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$4.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$4.TabItemDirective, selector: "e-tabitems>e-tabitem", inputs: ["content", "cssClass", "disabled", "header", "headerTemplate", "id", "tabIndex", "visible"] }, { kind: "directive", type: i2$4.TabItemsDirective, selector: "ejs-tab>e-tabitems" }] });
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
- debouncedInput;
1700
+ onGridSearch = new EventEmitter();
1492
1701
  hasWholeToolbarSlot = false;
1702
+ translation;
1493
1703
  ngOnInit() {
1494
- this.debouncedInput = debounce(() => {
1495
- this.onSeach();
1496
- }, 300);
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
- searchValue;
1503
- onSeach() {
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(this.searchValue);
1719
+ this.gridContent.grid.search(value);
1506
1720
  }
1507
1721
  else if (this.orignGrid) {
1508
- this.orignGrid.search(this.searchValue);
1722
+ this.orignGrid.search(value);
1509
1723
  }
1510
1724
  else if (this.treeGrid) {
1511
- this.treeGrid.search(this.searchValue);
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 <div class=\"rs-search-input\" *ngIf=\"!hideSearch\">\r\n <ejs-textbox\r\n type=\"text\"\r\n class=\"e-input\"\r\n [(ngModel)]=\"searchValue\"\r\n (input)=\"onInput()\"\r\n placeholder=\"Search all fields\"\r\n [showClearButton]=\"true\"\r\n autocomplete=\"off\"\r\n ></ejs-textbox>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"rs-grid-wrap\">\r\n <ng-content select=\"[gridSlot]\"></ng-content>\r\n </div>\r\n</div>\r\n", styles: [":host{height:100%}.rs-grid-box{display:flex;flex-direction:column;height:100%}.rs-grid-box.is-not-inner{border-radius:15px;padding:12px 20px;background:#fff;border:1px solid var(--rs-border-color);box-shadow:0 0 4px #0000001a}.rs-grid-box .rs-toolbar-wrap{display:flex;justify-content:space-between;align-items:center;padding-bottom:4px;border-bottom:1px solid #eaedf0}.rs-grid-box .rs-toolbar-wrap .rs-whole-bar{width:100%}.rs-grid-box .rs-toolbar-wrap .rs-left-col,.rs-grid-box .rs-toolbar-wrap .rs-right-col{display:flex;align-items:center}.rs-grid-box .rs-toolbar-wrap .rs-left-col ::ng-deep .e-btn,.rs-grid-box .rs-toolbar-wrap .rs-right-col ::ng-deep .e-btn{height:24px!important;min-width:auto!important}.rs-grid-box .rs-toolbar-wrap .rs-left-col{flex:1;width:0;gap:4px}.rs-grid-box .rs-toolbar-wrap .rs-right-col{gap:12px}.rs-grid-box .rs-grid-wrap{flex:1;height:0}.rs-grid-box .rs-search-input{width:240px}.rs-grid-box .rs-search-input ::ng-deep .e-input-group{border-radius:14px!important}.rs-grid-box .rs-search-input ::ng-deep .e-input-group.e-input-focus,.rs-grid-box .rs-search-input ::ng-deep .e-input-group:hover{box-shadow:0 0 3px #1f7bff66!important;border-color:var(--rs-input-hover-border-color)!important}.rs-grid-box .rs-search-input ::ng-deep .e-input-group.e-input-focus input.e-input,.rs-grid-box .rs-search-input ::ng-deep .e-input-group:hover input.e-input{box-shadow:none!important}.rs-grid-box .rs-search-input ::ng-deep .e-input-group input.e-input{width:calc(100% - 50px);height:26px}.rs-grid-box .rs-search-input ::ng-deep .e-input-group input.e-input:hover{box-shadow:none!important}.rs-grid-box .rs-search-input ::ng-deep .e-input-group:before{content:\"\"!important;margin:6px 0 0 8px;display:block;width:16px;height:16px;background-image:url(/assets/img/search.svg);background-size:cover;background-position:center}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2$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.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"] }] });
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 <div class=\"rs-search-input\" *ngIf=\"!hideSearch\">\r\n <ejs-textbox\r\n type=\"text\"\r\n class=\"e-input\"\r\n [(ngModel)]=\"searchValue\"\r\n (input)=\"onInput()\"\r\n placeholder=\"Search all fields\"\r\n [showClearButton]=\"true\"\r\n autocomplete=\"off\"\r\n ></ejs-textbox>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"rs-grid-wrap\">\r\n <ng-content select=\"[gridSlot]\"></ng-content>\r\n </div>\r\n</div>\r\n", styles: [":host{height:100%}.rs-grid-box{display:flex;flex-direction:column;height:100%}.rs-grid-box.is-not-inner{border-radius:15px;padding:12px 20px;background:#fff;border:1px solid var(--rs-border-color);box-shadow:0 0 4px #0000001a}.rs-grid-box .rs-toolbar-wrap{display:flex;justify-content:space-between;align-items:center;padding-bottom:4px;border-bottom:1px solid #eaedf0}.rs-grid-box .rs-toolbar-wrap .rs-whole-bar{width:100%}.rs-grid-box .rs-toolbar-wrap .rs-left-col,.rs-grid-box .rs-toolbar-wrap .rs-right-col{display:flex;align-items:center}.rs-grid-box .rs-toolbar-wrap .rs-left-col ::ng-deep .e-btn,.rs-grid-box .rs-toolbar-wrap .rs-right-col ::ng-deep .e-btn{height:24px!important;min-width:auto!important}.rs-grid-box .rs-toolbar-wrap .rs-left-col{flex:1;width:0;gap:4px}.rs-grid-box .rs-toolbar-wrap .rs-right-col{gap:12px}.rs-grid-box .rs-grid-wrap{flex:1;height:0}.rs-grid-box .rs-search-input{width:240px}.rs-grid-box .rs-search-input ::ng-deep .e-input-group{border-radius:14px!important}.rs-grid-box .rs-search-input ::ng-deep .e-input-group.e-input-focus,.rs-grid-box .rs-search-input ::ng-deep .e-input-group:hover{box-shadow:0 0 3px #1f7bff66!important;border-color:var(--rs-input-hover-border-color)!important}.rs-grid-box .rs-search-input ::ng-deep .e-input-group.e-input-focus input.e-input,.rs-grid-box .rs-search-input ::ng-deep .e-input-group:hover input.e-input{box-shadow:none!important}.rs-grid-box .rs-search-input ::ng-deep .e-input-group input.e-input{width:calc(100% - 50px);height:26px}.rs-grid-box .rs-search-input ::ng-deep .e-input-group input.e-input:hover{box-shadow:none!important}.rs-grid-box .rs-search-input ::ng-deep .e-input-group:before{content:\"\"!important;margin:6px 0 0 8px;display:block;width:16px;height:16px;background-image:url(/assets/img/search.svg);background-size:cover;background-position:center}\n"] }]
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.$isOpened.getValue()) {
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);
@@ -1667,6 +1888,7 @@ class MultiTabComponent {
1667
1888
  flattenMenu = [];
1668
1889
  defaultTabUrl = "";
1669
1890
  onRefreshTab = new EventEmitter();
1891
+ onCloseTab = new EventEmitter();
1670
1892
  subscriptions = [];
1671
1893
  TAB_WIDTH = 164;
1672
1894
  GAP_NORMAL = 54;
@@ -1678,20 +1900,38 @@ class MultiTabComponent {
1678
1900
  selectedTab = 0;
1679
1901
  maxTabs = 10;
1680
1902
  screenWidth = window.innerWidth; // 初始化屏幕宽度
1903
+ translation;
1681
1904
  onResize(event) {
1682
1905
  this.screenWidth = window.innerWidth; // 更新屏幕宽度
1683
1906
  // this.setEllipsisTitle(); 在最外面容器调用
1684
1907
  }
1685
1908
  ngOnInit() {
1909
+ this.translation = JSON.parse(localStorage.getItem("translation"));
1686
1910
  this.initTab();
1687
1911
  // 解决刷新页面后,选中的 tab 丢失问题
1688
1912
  const isExistIdx = this.tabList.findIndex((ele) => this.urlWithoutQuery(ele.url) === this.urlWithoutQuery(this.router.url));
1689
1913
  if (isExistIdx !== -1) {
1690
1914
  this.selectedTab = isExistIdx;
1691
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
+ }));
1692
1932
  this.subscriptions.push(this.router.events
1693
1933
  .pipe(filter((event) => event instanceof NavigationEnd))
1694
- .subscribe(() => {
1934
+ .subscribe((event) => {
1695
1935
  const navigation = this.router.getCurrentNavigation(); // 获取当前导航
1696
1936
  if (navigation) {
1697
1937
  const tooltipElements = document.querySelectorAll(".e-popup-open");
@@ -1708,12 +1948,11 @@ class MultiTabComponent {
1708
1948
  navigationInfo.title ||
1709
1949
  navigationInfo.subTitle ||
1710
1950
  navigationInfo.name;
1711
- let noReused = (state && state["noReused"]) || false; // 当前tab不复用,新开一个tab,当有已经存在的tab时候也是新开
1712
1951
  if (currentRoute && !skipLocationChange) {
1713
1952
  if (this.noGenerateTabUrls.includes(this.urlWithoutQuery(this.router.url))) {
1714
1953
  return; // 排除不生成tab的url
1715
1954
  }
1716
- this.setTab(this.router.url, currentRoute.snapshot.routeConfig.path, title, noReused);
1955
+ this.setTab(this.router.url, currentRoute.snapshot.routeConfig.path, title);
1717
1956
  }
1718
1957
  }
1719
1958
  }));
@@ -1728,25 +1967,18 @@ class MultiTabComponent {
1728
1967
  this.selectedTab = 0; // 重置选中的 tab 索引
1729
1968
  this.subscriptions.forEach((sub) => sub.unsubscribe());
1730
1969
  }
1731
- setEllipsisTitle(title) {
1970
+ setEllipsisTitle() {
1732
1971
  this.textGap = this.GAP_NORMAL;
1733
1972
  if (this.screenWidth <= 1100) {
1734
1973
  this.textGap = this.GAP_SMALL;
1735
1974
  }
1736
1975
  let { allWidth, leftWidth, rightWidth } = this.calcTabWidth();
1737
1976
  let width = Math.floor((allWidth - rightWidth) / (this.tabList && this.tabList.length));
1738
- if (title) {
1739
- return this.cf.setMiddleEllipsis(title, width > this.TAB_WIDTH
1977
+ this.tabList.forEach((ele, idx) => {
1978
+ ele.displayTitle = this.cf.setMiddleEllipsis(this.translation[ele.title] || ele.title, width > this.TAB_WIDTH
1740
1979
  ? this.TAB_WIDTH - this.textGap
1741
1980
  : width - this.textGap, 12);
1742
- }
1743
- else {
1744
- this.tabList.forEach((ele, idx) => {
1745
- ele.displayTitle = this.cf.setMiddleEllipsis(ele.title, width > this.TAB_WIDTH
1746
- ? this.TAB_WIDTH - this.textGap
1747
- : width - this.textGap, 12);
1748
- });
1749
- }
1981
+ });
1750
1982
  this.ref.markForCheck();
1751
1983
  this.ref.detectChanges();
1752
1984
  }
@@ -1777,32 +2009,25 @@ class MultiTabComponent {
1777
2009
  let TabCache = JSON.parse(sessionStorage.getItem("TabCache"));
1778
2010
  this.tabList = TabCache || [];
1779
2011
  if (this.tabList.length === 0) {
1780
- const title = sessionStorage.getItem("firstTabTitle");
1781
- if (title) {
1782
- sessionStorage.removeItem("firstTabTitle");
1783
- const url = this.router.url;
1784
- this.addTab(url, title);
1785
- }
1786
- else {
1787
- const target = this.flattenMenu.find((ele) => ele.url === this.router.url);
1788
- if (target) {
1789
- if (target.url !== this.defaultTabUrl) {
1790
- const defaultTab = this.flattenMenu.find((ele) => ele.url === this.defaultTabUrl);
1791
- this.tabList.push({
1792
- url: defaultTab.url,
1793
- title: defaultTab.label,
1794
- displayTitle: defaultTab.label,
1795
- });
1796
- }
1797
- this.addTab(target.url, target.label);
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
+ });
1798
2022
  }
2023
+ this.addTab(target.url, target.menuCode || target.label);
1799
2024
  }
1800
2025
  }
1801
2026
  }
1802
2027
  closeTab(idx, noChange) {
1803
2028
  const tab = this.tabList[idx];
1804
2029
  this.tabList = this.tabList.filter((ele) => ele.url !== tab.url);
1805
- this.clearCache(this.urlWithoutQuery(tab.url));
2030
+ this.clearCache(tab.url);
1806
2031
  if (!noChange && this.selectedTab === idx) {
1807
2032
  const targetIdx = Math.max(0, idx - 1);
1808
2033
  this.changeTab(this.tabList[targetIdx], targetIdx);
@@ -1812,6 +2037,7 @@ class MultiTabComponent {
1812
2037
  }
1813
2038
  this.setEllipsisTitle();
1814
2039
  sessionStorage.setItem("TabCache", JSON.stringify(this.tabList));
2040
+ this.onCloseTab.emit(tab);
1815
2041
  this.ref.markForCheck();
1816
2042
  }
1817
2043
  changeTab(tab, idx) {
@@ -1832,7 +2058,7 @@ class MultiTabComponent {
1832
2058
  if (this.tabList.length >= this.maxTabs) {
1833
2059
  const secondTab = this.tabList[1];
1834
2060
  this.tabList = this.tabList.filter((ele) => ele.url !== secondTab.url);
1835
- this.clearCache(this.urlWithoutQuery(secondTab.url));
2061
+ this.clearCache(secondTab.url);
1836
2062
  }
1837
2063
  const localPermissions = sessionStorage.getItem("permissions") ||
1838
2064
  localStorage.getItem("permissions");
@@ -1852,32 +2078,42 @@ class MultiTabComponent {
1852
2078
  sessionStorage.setItem("TabCache", JSON.stringify(this.tabList));
1853
2079
  this.ref.markForCheck();
1854
2080
  }
1855
- setTab(url, pureUrl, title, noReused) {
2081
+ setTab(url, pureUrl, title) {
1856
2082
  const isExistIdx = this.tabList.findIndex((ele) => this.urlWithoutQuery(ele.url) === this.urlWithoutQuery(url));
1857
2083
  if (isExistIdx === -1) {
1858
2084
  const singleIdx = this.singleReuseUrls.findIndex((ele) => ele === pureUrl);
1859
2085
  if (singleIdx !== -1) {
1860
2086
  this.tabList = this.tabList.filter((ele) => !ele.url.includes(this.singleReuseUrls[singleIdx]));
1861
- this.keepAlive.clearCache(url);
2087
+ this.keepAlive.clearCache(this.urlWithoutQuery(url));
1862
2088
  this.drawer.deleteCache(url);
1863
2089
  }
1864
2090
  this.addTab(url, title);
1865
2091
  }
1866
2092
  else {
1867
- const targetTabUrl = this.tabList[isExistIdx].url;
1868
- if (targetTabUrl !== url || noReused) {
1869
- // 当缓存一致时候,但是url不一致,重新按照新的url生成tab
1870
- this.closeTab(isExistIdx, true);
1871
- setTimeout(() => {
1872
- this.addTab(url, title);
1873
- }, 30);
1874
- }
1875
- else {
1876
- this.changeTab(this.tabList[isExistIdx], isExistIdx);
1877
- }
2093
+ this.changeTab(this.tabList[isExistIdx], isExistIdx);
1878
2094
  this.ref.markForCheck();
1879
2095
  }
1880
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
+ }
1881
2117
  timer = null;
1882
2118
  refreshTab() {
1883
2119
  const loadingIcon = document.getElementById("loadingIcon");
@@ -1899,25 +2135,24 @@ class MultiTabComponent {
1899
2135
  // });
1900
2136
  }
1901
2137
  clearCache(url) {
1902
- this.keepAlive.clearCache(url); // 调用自定义策略的清除缓存方法
2138
+ this.keepAlive.clearCache(this.urlWithoutQuery(url)); // 调用自定义策略的清除缓存方法
1903
2139
  this.drawer.deleteCache(url);
1904
2140
  }
1905
2141
  cleanAllCache() {
1906
2142
  sessionStorage.removeItem("TabCache"); // 清除缓存
1907
2143
  this.tabList = []; // 清空 tab 列表
1908
2144
  this.selectedTab = 0; // 重置选中的 tab 索引
1909
- this.subscriptions.forEach((sub) => sub.unsubscribe());
1910
2145
  this.keepAlive.clearAllCache(); // 调用自定义策略的清除缓存方法
1911
2146
  }
1912
2147
  urlWithoutQuery(url) {
1913
2148
  return url.split("?")[0];
1914
2149
  }
1915
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 });
1916
- 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" }, host: { listeners: { "window:resize": "onResize($event)" } }, ngImport: i0, template: "<div class=\"rs-multi-tab\" [ngClass]=\"{ 'b-line': tabList.length > 0 }\">\r\n\t<ul>\r\n\t\t<ng-container *ngFor=\"let tab of tabList; let i = index\">\r\n\t\t\t<li\r\n\t\t\t\t[ngClass]=\"selectedTab === i ? 'isSelect' : 'notSelect'\"\r\n\t\t\t\t(click)=\"changeTab(tab, i)\"\r\n\t\t\t>\r\n\t\t\t\t<ejs-tooltip\r\n\t\t\t\t\tid=\"notSelectTooltip\"\r\n\t\t\t\t\t[showTipPointer]=\"false\"\r\n\t\t\t\t\t[openDelay]=\"500\"\r\n\t\t\t\t\t*ngIf=\"tab.displayTitle !== tab.title; else originText\"\r\n\t\t\t\t\tstyle=\"height: 27px\"\r\n\t\t\t\t>\r\n\t\t\t\t\t<ng-template #content>\r\n\t\t\t\t\t\t<div class=\"tooltip-content\">\r\n\t\t\t\t\t\t\t{{ tab.title }}\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t</ng-template>\r\n\t\t\t\t\t<span class=\"tabTitle\">{{ tab.displayTitle }}</span>\r\n\t\t\t\t</ejs-tooltip>\r\n\t\t\t\t<ng-template #originText>\r\n\t\t\t\t\t<span class=\"tabTitle\">\r\n\t\t\t\t\t\t{{ tab.displayTitle }}\r\n\t\t\t\t\t</span>\r\n\t\t\t\t</ng-template>\r\n\t\t\t\t<span\r\n\t\t\t\t\tclass=\"img-block\"\r\n\t\t\t\t\t*ngIf=\"selectedTab !== i && i !== 0\"\r\n\t\t\t\t></span>\r\n\t\t\t\t<img\r\n\t\t\t\t\t*ngIf=\"i !== 0\"\r\n\t\t\t\t\tsrc=\"../../../assets/img/close-url.svg\"\r\n\t\t\t\t\t(click)=\"closeTab(i)\"\r\n\t\t\t\t/>\r\n\t\t\t</li>\r\n\t\t</ng-container>\r\n\t</ul>\r\n\t<div class=\"refresh-tab\" (click)=\"refreshTab()\" *ngIf=\"tabList.length > 0\">\r\n\t\t<ejs-tooltip\r\n\t\t\tid=\"notSelectTooltip\"\r\n\t\t\tcssClass=\"notSelectTooltip\"\r\n\t\t\t[showTipPointer]=\"false\"\r\n\t\t\t[openDelay]=\"500\"\r\n\t\t\tstyle=\"height: 27px\"\r\n\t\t>\r\n\t\t\t<ng-template #content>\r\n\t\t\t\t<div class=\"tooltip-content\">Refresh Current Tab</div>\r\n\t\t\t</ng-template>\r\n\t\t\t<img\r\n\t\t\t\tid=\"loadingIcon\"\r\n\t\t\t\talt\r\n\t\t\t\tclass=\"refresh-btn\"\r\n\t\t\t\tsrc=\"../../../assets/img/desktop-refresh-btn.svg\"\r\n\t\t\t/>\r\n\t\t</ejs-tooltip>\r\n\t</div>\r\n</div>\r\n", styles: [".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 li{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 li .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 li img{border-radius:4px;padding:4px;margin-left:6px;margin-top:1px;vertical-align:top;cursor:pointer}.rs-multi-tab ul li img:hover{background:#dce8f6}.rs-multi-tab ul li:not(:last-child){border-right:none}.rs-multi-tab ul li:first-of-type{border-top-left-radius:8px}.rs-multi-tab ul li:last-child{border-top-right-radius:8px}.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)}@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}@media (max-width: 1400px){.refresh-tab{padding-right:0!important}.refresh-tab span{display:none!important}}@media (max-width: 1100px){.rs-multi-tab ul li 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 li{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: "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"] }] });
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"] }] });
1917
2152
  }
1918
2153
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MultiTabComponent, decorators: [{
1919
2154
  type: Component,
1920
- args: [{ selector: "rs-multi-tab", template: "<div class=\"rs-multi-tab\" [ngClass]=\"{ 'b-line': tabList.length > 0 }\">\r\n\t<ul>\r\n\t\t<ng-container *ngFor=\"let tab of tabList; let i = index\">\r\n\t\t\t<li\r\n\t\t\t\t[ngClass]=\"selectedTab === i ? 'isSelect' : 'notSelect'\"\r\n\t\t\t\t(click)=\"changeTab(tab, i)\"\r\n\t\t\t>\r\n\t\t\t\t<ejs-tooltip\r\n\t\t\t\t\tid=\"notSelectTooltip\"\r\n\t\t\t\t\t[showTipPointer]=\"false\"\r\n\t\t\t\t\t[openDelay]=\"500\"\r\n\t\t\t\t\t*ngIf=\"tab.displayTitle !== tab.title; else originText\"\r\n\t\t\t\t\tstyle=\"height: 27px\"\r\n\t\t\t\t>\r\n\t\t\t\t\t<ng-template #content>\r\n\t\t\t\t\t\t<div class=\"tooltip-content\">\r\n\t\t\t\t\t\t\t{{ tab.title }}\r\n\t\t\t\t\t\t</div>\r\n\t\t\t\t\t</ng-template>\r\n\t\t\t\t\t<span class=\"tabTitle\">{{ tab.displayTitle }}</span>\r\n\t\t\t\t</ejs-tooltip>\r\n\t\t\t\t<ng-template #originText>\r\n\t\t\t\t\t<span class=\"tabTitle\">\r\n\t\t\t\t\t\t{{ tab.displayTitle }}\r\n\t\t\t\t\t</span>\r\n\t\t\t\t</ng-template>\r\n\t\t\t\t<span\r\n\t\t\t\t\tclass=\"img-block\"\r\n\t\t\t\t\t*ngIf=\"selectedTab !== i && i !== 0\"\r\n\t\t\t\t></span>\r\n\t\t\t\t<img\r\n\t\t\t\t\t*ngIf=\"i !== 0\"\r\n\t\t\t\t\tsrc=\"../../../assets/img/close-url.svg\"\r\n\t\t\t\t\t(click)=\"closeTab(i)\"\r\n\t\t\t\t/>\r\n\t\t\t</li>\r\n\t\t</ng-container>\r\n\t</ul>\r\n\t<div class=\"refresh-tab\" (click)=\"refreshTab()\" *ngIf=\"tabList.length > 0\">\r\n\t\t<ejs-tooltip\r\n\t\t\tid=\"notSelectTooltip\"\r\n\t\t\tcssClass=\"notSelectTooltip\"\r\n\t\t\t[showTipPointer]=\"false\"\r\n\t\t\t[openDelay]=\"500\"\r\n\t\t\tstyle=\"height: 27px\"\r\n\t\t>\r\n\t\t\t<ng-template #content>\r\n\t\t\t\t<div class=\"tooltip-content\">Refresh Current Tab</div>\r\n\t\t\t</ng-template>\r\n\t\t\t<img\r\n\t\t\t\tid=\"loadingIcon\"\r\n\t\t\t\talt\r\n\t\t\t\tclass=\"refresh-btn\"\r\n\t\t\t\tsrc=\"../../../assets/img/desktop-refresh-btn.svg\"\r\n\t\t\t/>\r\n\t\t</ejs-tooltip>\r\n\t</div>\r\n</div>\r\n", styles: [".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 li{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 li .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 li img{border-radius:4px;padding:4px;margin-left:6px;margin-top:1px;vertical-align:top;cursor:pointer}.rs-multi-tab ul li img:hover{background:#dce8f6}.rs-multi-tab ul li:not(:last-child){border-right:none}.rs-multi-tab ul li:first-of-type{border-top-left-radius:8px}.rs-multi-tab ul li:last-child{border-top-right-radius:8px}.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)}@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}@media (max-width: 1400px){.refresh-tab{padding-right:0!important}.refresh-tab span{display:none!important}}@media (max-width: 1100px){.rs-multi-tab ul li 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 li{padding:0 8px}.rs-multi-tab ul .notSelect .img-block{width:0px!important}}\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"] }]
1921
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: [{
1922
2157
  type: Input
1923
2158
  }], noGenerateTabUrls: [{
@@ -1928,6 +2163,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
1928
2163
  type: Input
1929
2164
  }], onRefreshTab: [{
1930
2165
  type: Output
2166
+ }], onCloseTab: [{
2167
+ type: Output
1931
2168
  }], onResize: [{
1932
2169
  type: HostListener,
1933
2170
  args: ["window:resize", ["$event"]]
@@ -1936,6 +2173,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
1936
2173
  class DrawerComponent {
1937
2174
  resolver;
1938
2175
  service;
2176
+ ref;
1939
2177
  element;
1940
2178
  drawer;
1941
2179
  header;
@@ -1945,13 +2183,14 @@ class DrawerComponent {
1945
2183
  topSlot;
1946
2184
  container;
1947
2185
  config = DefaultDrawerConfig;
1948
- useTransition = "yes";
1949
- $isOpened = new BehaviorSubject(false);
2186
+ useAnimation = "yes";
2187
+ isOpened = false;
1950
2188
  hiddenDrawer = true;
1951
2189
  componentRefMap = new Map();
1952
- constructor(resolver, service) {
2190
+ constructor(resolver, service, ref) {
1953
2191
  this.resolver = resolver;
1954
2192
  this.service = service;
2193
+ this.ref = ref;
1955
2194
  }
1956
2195
  createDynamicComponent(component) {
1957
2196
  // 确保在调用之前目标组件已经在entryComponents中声明
@@ -1996,6 +2235,15 @@ class DrawerComponent {
1996
2235
  this.drawer.nativeElement.insertBefore(this.header.nativeElement, this.drawer.nativeElement.firstChild);
1997
2236
  this.header.nativeElement.append(this.toolbarSlot.nativeElement);
1998
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
+ }
1999
2247
  }
2000
2248
  show(component, config, data) {
2001
2249
  const showConfig = { ...DefaultDrawerConfig, ...config };
@@ -2013,7 +2261,6 @@ class DrawerComponent {
2013
2261
  this.setComponentData(componentRef, data);
2014
2262
  this.componentRefMap.set(this.service.cacheKey, cache);
2015
2263
  this.setCache(cache);
2016
- this.config = showConfig;
2017
2264
  this.toggleOpenStatus(true, true);
2018
2265
  return componentRef.instance;
2019
2266
  }
@@ -2038,32 +2285,33 @@ class DrawerComponent {
2038
2285
  const cache = this.componentRefMap.get(this.service.cacheKey);
2039
2286
  if (cache) {
2040
2287
  cache.ref.location.nativeElement.style.display = "";
2041
- this.config = cache.config;
2042
2288
  this.setCache(cache);
2043
2289
  this.toggleOpenStatus(true);
2044
2290
  }
2045
2291
  else {
2046
2292
  this.toggleOpenStatus(false);
2047
2293
  }
2048
- this.useTransition = "no";
2294
+ this.useAnimation = "no";
2049
2295
  }
2050
- toggleOpenStatus(isOpen, useTransition = false) {
2051
- this.$isOpened.next(isOpen);
2052
- this.useTransition = useTransition ? "yes" : "no";
2053
- this.hiddenDrawer = !isOpen && !useTransition;
2296
+ toggleOpenStatus(isOpen, useAnimation = false) {
2297
+ this.isOpened = isOpen;
2298
+ this.useAnimation = useAnimation ? "yes" : "no";
2299
+ this.hiddenDrawer = !isOpen && !useAnimation;
2300
+ this.ref.markForCheck();
2054
2301
  }
2055
- onTransitionEnd() {
2056
- if (!this.$isOpened.getValue()) {
2302
+ onAnimationEnd() {
2303
+ if (!this.isOpened) {
2057
2304
  this.hiddenDrawer = true;
2305
+ this.ref.markForCheck();
2058
2306
  }
2059
2307
  }
2060
- 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 });
2061
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: DrawerComponent, selector: "rs-drawer", viewQueries: [{ propertyName: "element", first: true, predicate: ["element"], descendants: true }, { propertyName: "drawer", first: true, predicate: ["drawer"], descendants: true }, { propertyName: "header", first: true, predicate: ["header"], descendants: true }, { propertyName: "content", first: true, predicate: ["content"], descendants: true }, { propertyName: "toolbarSlot", first: true, predicate: ["toolbarSlot"], descendants: true }, { propertyName: "headerSlot", first: true, predicate: ["headerSlot"], descendants: true }, { propertyName: "topSlot", first: true, predicate: ["topSlot"], descendants: true }, { propertyName: "container", first: true, predicate: ["dynamicComponentContainer"], descendants: true, read: ViewContainerRef }], ngImport: i0, template: "<div #element id=\"rs-drawer-container\" class=\"rs-drawer-container\">\r\n <div class=\"rs-drawer-content\">\r\n <ng-content></ng-content>\r\n </div>\r\n <div\r\n #drawer\r\n class=\"rs-drawer\"\r\n [attr.data-mode]=\"config.mode\"\r\n [attr.data-opened]=\"($isOpened | async) ? 'yes' : 'no'\"\r\n [attr.data-transition]=\"useTransition\"\r\n [hidden]=\"hiddenDrawer\"\r\n (transitionend)=\"onTransitionEnd()\"\r\n >\r\n <div class=\"drawer-header\" #header>\r\n <button class=\"drawer-return-button\" (click)=\"hide()\">\r\n <span class=\"drawer-sub-title\" *ngIf=\"config.subTitle\">\r\n {{ config.subTitle }}\r\n </span>\r\n </button>\r\n <div class=\"drawer-title\">{{ config.title }}</div>\r\n <div class=\"drawer-header-slot\" #headerSlot></div>\r\n </div>\r\n <div class=\"drawer-top-slot\" #topSlot></div>\r\n <div class=\"drawer-content-box\">\r\n <div class=\"drawer-content\" #content>\r\n <div class=\"drawer-content-container\">\r\n <ng-template #dynamicComponentContainer></ng-template>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"drawer-toolbar-slot\" #toolbarSlot></div>\r\n </div>\r\n</div>\r\n", styles: [":host{display:block;height:100%}#rs-drawer-container{height:100%}.rs-drawer-container{height:100%;background-color:transparent;overflow:hidden;position:relative}.rs-drawer-container .rs-drawer-content{width:100%;height:100%;overflow:auto;margin-right:0!important}.rs-drawer-container .rs-drawer-content::-webkit-scrollbar{width:5px;height:5px;background:#fff;position:static;z-index:999;border-radius:10px}.rs-drawer-container .rs-drawer-content::-webkit-scrollbar-thumb{background:#eaedf0}.rs-drawer-container .rs-drawer{width:100%;height:100%;border-left:none;background-color:transparent;overflow:visible;pointer-events:none;opacity:0;display:flex;flex-flow:column nowrap;position:absolute;z-index:2;top:0;left:100%}.rs-drawer-container .rs-drawer[data-opened=yes]{left:0;opacity:1}.rs-drawer-container .rs-drawer[data-transition=yes]{transition:.5s ease-in-out;transition-property:opacity,left}.rs-drawer-container .rs-drawer .drawer-header{flex:none;display:flex;flex-flow:row nowrap;justify-content:flex-start;align-items:center;box-sizing:content-box;pointer-events:auto}.rs-drawer-container .rs-drawer .drawer-header .drawer-return-button{flex:none;display:flex;flex-flow:row nowrap;align-items:center;padding:0;border:none;background-color:transparent;cursor:pointer}.rs-drawer-container .rs-drawer .drawer-header .drawer-return-button:before{content:url(\"data:image/svg+xml,%3Csvg width%3D%2224%22 height%3D%2224%22 viewBox%3D%220 0 24 24%22 fill%3D%22none%22 xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0D%3Cpath d%3D%22M12 18L7.54986 12L12 6%22 stroke%3D%22%236C7C90%22 stroke-linecap%3D%22round%22%2F%3E%0D%3Cpath d%3D%22M17.427 12.5C17.7031 12.5 17.927 12.2761 17.927 12C17.927 11.7239 17.7031 11.5 17.427 11.5L17.427 12.5ZM7.39893 12.5L17.427 12.5L17.427 11.5L7.39893 11.5L7.39893 12.5Z%22 fill%3D%22%236C7C90%22%2F%3E%0D%3C%2Fsvg%3E%0D\");width:24px;height:24px;margin-right:8px;transition:transform ease-in-out 125ms}.rs-drawer-container .rs-drawer .drawer-header .drawer-return-button:hover:before{transform:translate(-2px)}.rs-drawer-container .rs-drawer .drawer-header .drawer-return-button .drawer-sub-title{margin-right:12px;font-family:Arial;font-style:normal;font-weight:400}.rs-drawer-container .rs-drawer .drawer-header .drawer-title{flex:none;min-height:14px;padding:0 12px;border-left:1px solid #bdc4ca;font-family:Arial;font-style:normal;font-weight:400}.rs-drawer-container .rs-drawer .drawer-header .drawer-title:empty{padding:0}.rs-drawer-container .rs-drawer .drawer-content-box{flex:auto;height:0;background-color:#f7fafb;pointer-events:auto}.rs-drawer-container .rs-drawer .drawer-content{height:100%;padding:0 20px;border:1px solid #ebedf0;border-radius:15px;background-color:#fff;display:flex;flex-flow:column nowrap}.rs-drawer-container .rs-drawer .drawer-content .drawer-content-container{flex:auto;overflow:hidden auto}.rs-drawer-container .rs-drawer .drawer-toolbar-slot{flex:none;height:32px;margin-left:auto;display:flex;flex-flow:row nowrap;justify-content:flex-end;align-items:center;pointer-events:auto}.rs-drawer-container .rs-drawer .drawer-toolbar-slot:empty{display:none}.rs-drawer-container .rs-drawer .drawer-top-slot{flex:none;pointer-events:auto}.rs-drawer-container .rs-drawer .drawer-top-slot:empty{height:var(--drawer-top, 0px);pointer-events:none}.rs-drawer-container .rs-drawer[data-mode=outer] .drawer-header{height:46px;padding:0 12px 0 8px;background-color:#f7fafb}.rs-drawer-container .rs-drawer[data-mode=outer] .drawer-header .drawer-sub-title,.rs-drawer-container .rs-drawer[data-mode=outer] .drawer-header .drawer-title{color:#1f3f5c;font-size:15px;font-weight:700;line-height:18px}.rs-drawer-container .rs-drawer[data-mode=outer] .drawer-content{padding-bottom:20px}.rs-drawer-container .rs-drawer[data-mode=outer] .drawer-content .drawer-content-container{margin-right:-20px;padding-right:20px}.rs-drawer-container .rs-drawer[data-mode=inner] .drawer-top-slot:empty+.drawer-content-box{padding-top:calc((var(--drawer-top, 0) + 1) * 16px)}.rs-drawer-container .rs-drawer[data-mode=inner] .drawer-header{height:24px;padding:6px 0;border-bottom:1px solid #eaedf0}.rs-drawer-container .rs-drawer[data-mode=inner] .drawer-header .drawer-sub-title,.rs-drawer-container .rs-drawer[data-mode=inner] .drawer-header .drawer-title{color:#44566c;font-size:12px;line-height:14px}.rs-drawer-container .rs-drawer[data-mode=inner] .drawer-header .drawer-title{font-weight:700}.rs-drawer-container .rs-drawer[data-mode=inner] .drawer-content .drawer-content-container{margin-right:-20px;padding-right:20px;padding-left:8px}.rs-drawer-container .rs-drawer[data-mode=inner] .drawer-toolbar-slot{width:100%;padding:16px 0;box-sizing:content-box;border-top:1px solid #eaedf0}::ng-deep .rs-drawer-container .rs-drawer .drawer-toolbar-slot [drawer-toolbar]{display:flex;flex-flow:row nowrap;justify-content:flex-end;align-items:center;gap:12px}::ng-deep .rs-drawer-container .rs-drawer .drawer-toolbar-slot [drawer-toolbar] button{display:flex;flex-flow:row nowrap;justify-content:center;align-items:center;gap:6px;min-width:80px;height:32px;padding:0 12px;border:1px solid #adb5bd;border-radius:4px;background-color:#fff;cursor:pointer;color:#44566c;font-size:13px;font-family:Arial;font-style:normal;font-weight:400;line-height:16px}::ng-deep .rs-drawer-container .rs-drawer .drawer-toolbar-slot [drawer-toolbar] button:hover{border-color:#6c7c90}::ng-deep .rs-drawer-container .rs-drawer .drawer-toolbar-slot [drawer-toolbar] button:disabled{opacity:1!important;border-color:#6c7c9066;color:#44566c66;cursor:unset}::ng-deep .rs-drawer-container .rs-drawer .drawer-toolbar-slot [drawer-toolbar] button.primary{border:none;background-color:#1364b3;color:#fff}::ng-deep .rs-drawer-container .rs-drawer .drawer-toolbar-slot [drawer-toolbar] button.primary:hover{background-color:#176bca}::ng-deep .rs-drawer-container .rs-drawer .drawer-toolbar-slot [drawer-toolbar] button.primary:disabled{background-color:#1364b366}::ng-deep .rs-drawer-container .rs-drawer .drawer-toolbar-slot [drawer-toolbar] button img{width:16px;height:16px}::ng-deep .rs-drawer-container .rs-drawer[data-mode=outer] .drawer-toolbar-slot [drawer-toolbar] button{height:26px;font-size:12px;line-height:14px}::ng-deep .rs-drawer-container .rs-drawer[data-mode=inner] .drawer-toolbar-slot [drawer-toolbar] button img{display:none}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }] });
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"] }] });
2062
2310
  }
2063
2311
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DrawerComponent, decorators: [{
2064
2312
  type: Component,
2065
- args: [{ selector: "rs-drawer", template: "<div #element id=\"rs-drawer-container\" class=\"rs-drawer-container\">\r\n <div class=\"rs-drawer-content\">\r\n <ng-content></ng-content>\r\n </div>\r\n <div\r\n #drawer\r\n class=\"rs-drawer\"\r\n [attr.data-mode]=\"config.mode\"\r\n [attr.data-opened]=\"($isOpened | async) ? 'yes' : 'no'\"\r\n [attr.data-transition]=\"useTransition\"\r\n [hidden]=\"hiddenDrawer\"\r\n (transitionend)=\"onTransitionEnd()\"\r\n >\r\n <div class=\"drawer-header\" #header>\r\n <button class=\"drawer-return-button\" (click)=\"hide()\">\r\n <span class=\"drawer-sub-title\" *ngIf=\"config.subTitle\">\r\n {{ config.subTitle }}\r\n </span>\r\n </button>\r\n <div class=\"drawer-title\">{{ config.title }}</div>\r\n <div class=\"drawer-header-slot\" #headerSlot></div>\r\n </div>\r\n <div class=\"drawer-top-slot\" #topSlot></div>\r\n <div class=\"drawer-content-box\">\r\n <div class=\"drawer-content\" #content>\r\n <div class=\"drawer-content-container\">\r\n <ng-template #dynamicComponentContainer></ng-template>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"drawer-toolbar-slot\" #toolbarSlot></div>\r\n </div>\r\n</div>\r\n", styles: [":host{display:block;height:100%}#rs-drawer-container{height:100%}.rs-drawer-container{height:100%;background-color:transparent;overflow:hidden;position:relative}.rs-drawer-container .rs-drawer-content{width:100%;height:100%;overflow:auto;margin-right:0!important}.rs-drawer-container .rs-drawer-content::-webkit-scrollbar{width:5px;height:5px;background:#fff;position:static;z-index:999;border-radius:10px}.rs-drawer-container .rs-drawer-content::-webkit-scrollbar-thumb{background:#eaedf0}.rs-drawer-container .rs-drawer{width:100%;height:100%;border-left:none;background-color:transparent;overflow:visible;pointer-events:none;opacity:0;display:flex;flex-flow:column nowrap;position:absolute;z-index:2;top:0;left:100%}.rs-drawer-container .rs-drawer[data-opened=yes]{left:0;opacity:1}.rs-drawer-container .rs-drawer[data-transition=yes]{transition:.5s ease-in-out;transition-property:opacity,left}.rs-drawer-container .rs-drawer .drawer-header{flex:none;display:flex;flex-flow:row nowrap;justify-content:flex-start;align-items:center;box-sizing:content-box;pointer-events:auto}.rs-drawer-container .rs-drawer .drawer-header .drawer-return-button{flex:none;display:flex;flex-flow:row nowrap;align-items:center;padding:0;border:none;background-color:transparent;cursor:pointer}.rs-drawer-container .rs-drawer .drawer-header .drawer-return-button:before{content:url(\"data:image/svg+xml,%3Csvg width%3D%2224%22 height%3D%2224%22 viewBox%3D%220 0 24 24%22 fill%3D%22none%22 xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%0D%3Cpath d%3D%22M12 18L7.54986 12L12 6%22 stroke%3D%22%236C7C90%22 stroke-linecap%3D%22round%22%2F%3E%0D%3Cpath d%3D%22M17.427 12.5C17.7031 12.5 17.927 12.2761 17.927 12C17.927 11.7239 17.7031 11.5 17.427 11.5L17.427 12.5ZM7.39893 12.5L17.427 12.5L17.427 11.5L7.39893 11.5L7.39893 12.5Z%22 fill%3D%22%236C7C90%22%2F%3E%0D%3C%2Fsvg%3E%0D\");width:24px;height:24px;margin-right:8px;transition:transform ease-in-out 125ms}.rs-drawer-container .rs-drawer .drawer-header .drawer-return-button:hover:before{transform:translate(-2px)}.rs-drawer-container .rs-drawer .drawer-header .drawer-return-button .drawer-sub-title{margin-right:12px;font-family:Arial;font-style:normal;font-weight:400}.rs-drawer-container .rs-drawer .drawer-header .drawer-title{flex:none;min-height:14px;padding:0 12px;border-left:1px solid #bdc4ca;font-family:Arial;font-style:normal;font-weight:400}.rs-drawer-container .rs-drawer .drawer-header .drawer-title:empty{padding:0}.rs-drawer-container .rs-drawer .drawer-content-box{flex:auto;height:0;background-color:#f7fafb;pointer-events:auto}.rs-drawer-container .rs-drawer .drawer-content{height:100%;padding:0 20px;border:1px solid #ebedf0;border-radius:15px;background-color:#fff;display:flex;flex-flow:column nowrap}.rs-drawer-container .rs-drawer .drawer-content .drawer-content-container{flex:auto;overflow:hidden auto}.rs-drawer-container .rs-drawer .drawer-toolbar-slot{flex:none;height:32px;margin-left:auto;display:flex;flex-flow:row nowrap;justify-content:flex-end;align-items:center;pointer-events:auto}.rs-drawer-container .rs-drawer .drawer-toolbar-slot:empty{display:none}.rs-drawer-container .rs-drawer .drawer-top-slot{flex:none;pointer-events:auto}.rs-drawer-container .rs-drawer .drawer-top-slot:empty{height:var(--drawer-top, 0px);pointer-events:none}.rs-drawer-container .rs-drawer[data-mode=outer] .drawer-header{height:46px;padding:0 12px 0 8px;background-color:#f7fafb}.rs-drawer-container .rs-drawer[data-mode=outer] .drawer-header .drawer-sub-title,.rs-drawer-container .rs-drawer[data-mode=outer] .drawer-header .drawer-title{color:#1f3f5c;font-size:15px;font-weight:700;line-height:18px}.rs-drawer-container .rs-drawer[data-mode=outer] .drawer-content{padding-bottom:20px}.rs-drawer-container .rs-drawer[data-mode=outer] .drawer-content .drawer-content-container{margin-right:-20px;padding-right:20px}.rs-drawer-container .rs-drawer[data-mode=inner] .drawer-top-slot:empty+.drawer-content-box{padding-top:calc((var(--drawer-top, 0) + 1) * 16px)}.rs-drawer-container .rs-drawer[data-mode=inner] .drawer-header{height:24px;padding:6px 0;border-bottom:1px solid #eaedf0}.rs-drawer-container .rs-drawer[data-mode=inner] .drawer-header .drawer-sub-title,.rs-drawer-container .rs-drawer[data-mode=inner] .drawer-header .drawer-title{color:#44566c;font-size:12px;line-height:14px}.rs-drawer-container .rs-drawer[data-mode=inner] .drawer-header .drawer-title{font-weight:700}.rs-drawer-container .rs-drawer[data-mode=inner] .drawer-content .drawer-content-container{margin-right:-20px;padding-right:20px;padding-left:8px}.rs-drawer-container .rs-drawer[data-mode=inner] .drawer-toolbar-slot{width:100%;padding:16px 0;box-sizing:content-box;border-top:1px solid #eaedf0}::ng-deep .rs-drawer-container .rs-drawer .drawer-toolbar-slot [drawer-toolbar]{display:flex;flex-flow:row nowrap;justify-content:flex-end;align-items:center;gap:12px}::ng-deep .rs-drawer-container .rs-drawer .drawer-toolbar-slot [drawer-toolbar] button{display:flex;flex-flow:row nowrap;justify-content:center;align-items:center;gap:6px;min-width:80px;height:32px;padding:0 12px;border:1px solid #adb5bd;border-radius:4px;background-color:#fff;cursor:pointer;color:#44566c;font-size:13px;font-family:Arial;font-style:normal;font-weight:400;line-height:16px}::ng-deep .rs-drawer-container .rs-drawer .drawer-toolbar-slot [drawer-toolbar] button:hover{border-color:#6c7c90}::ng-deep .rs-drawer-container .rs-drawer .drawer-toolbar-slot [drawer-toolbar] button:disabled{opacity:1!important;border-color:#6c7c9066;color:#44566c66;cursor:unset}::ng-deep .rs-drawer-container .rs-drawer .drawer-toolbar-slot [drawer-toolbar] button.primary{border:none;background-color:#1364b3;color:#fff}::ng-deep .rs-drawer-container .rs-drawer .drawer-toolbar-slot [drawer-toolbar] button.primary:hover{background-color:#176bca}::ng-deep .rs-drawer-container .rs-drawer .drawer-toolbar-slot [drawer-toolbar] button.primary:disabled{background-color:#1364b366}::ng-deep .rs-drawer-container .rs-drawer .drawer-toolbar-slot [drawer-toolbar] button img{width:16px;height:16px}::ng-deep .rs-drawer-container .rs-drawer[data-mode=outer] .drawer-toolbar-slot [drawer-toolbar] button{height:26px;font-size:12px;line-height:14px}::ng-deep .rs-drawer-container .rs-drawer[data-mode=inner] .drawer-toolbar-slot [drawer-toolbar] button img{display:none}\n"] }]
2066
- }], 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: [{
2067
2315
  type: ViewChild,
2068
2316
  args: ["element", { static: false }]
2069
2317
  }], drawer: [{
@@ -2130,6 +2378,7 @@ class ToolbarItemComponent {
2130
2378
  text;
2131
2379
  disabled;
2132
2380
  children = [];
2381
+ hideArrow = false;
2133
2382
  disabledOptions = {};
2134
2383
  buttonElement;
2135
2384
  get hostDisabled() {
@@ -2142,19 +2391,41 @@ class ToolbarItemComponent {
2142
2391
  ImageType = [
2143
2392
  "Add",
2144
2393
  "Delete",
2394
+ "Update",
2145
2395
  "Import",
2146
2396
  "Export",
2147
2397
  "Upload",
2148
2398
  "Download",
2149
2399
  "Duplicate",
2150
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",
2151
2422
  ];
2152
2423
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ToolbarItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
2153
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: ToolbarItemComponent, selector: "rs-toolbar-item", inputs: { image: "image", text: "text", disabled: "disabled", children: "children", disabledOptions: "disabledOptions" }, host: { properties: { "class.disabled": "this.hostDisabled" } }, viewQueries: [{ propertyName: "buttonElement", first: true, predicate: ["buttonElement"], descendants: true }], ngImport: i0, template: "<button\r\n *ngIf=\"!children.length\"\r\n class=\"toolbar-action-item e-btn text\"\r\n #buttonElement\r\n [disabled]=\"!!disabled\"\r\n>\r\n <span class=\"toolbar-action-image\" [attr.data-type]=\"image\">\r\n <img *ngIf=\"!ImageType.includes(image)\" [src]=\"image\" />\r\n </span>\r\n <span>{{ text }}</span>\r\n</button>\r\n\r\n<button\r\n *ngIf=\"children.length\"\r\n class=\"toolbar-action-item e-btn text\"\r\n #buttonElement\r\n mat-menu-item\r\n [matMenuTriggerFor]=\"menu\"\r\n [disabled]=\"!!disabled\"\r\n>\r\n <span class=\"toolbar-action-image\" [attr.data-type]=\"image\">\r\n <img *ngIf=\"!ImageType.includes(image)\" [src]=\"image\" />\r\n </span>\r\n <span>{{ text }}</span>\r\n</button>\r\n<mat-menu #menu=\"matMenu\">\r\n <ng-container *ngFor=\"let button of children\">\r\n <button\r\n class=\"toolbar-action-item e-btn text\"\r\n [disabled]=\"(button.key && disabledOptions[button.key]) || false\"\r\n (click)=\"button.action()\"\r\n >\r\n <span class=\"toolbar-action-image\" [attr.data-type]=\"button.image\">\r\n <img *ngIf=\"!ImageType.includes(button.image)\" [src]=\"button.image\" />\r\n </span>\r\n <span>{{ button.text }}</span>\r\n </button>\r\n </ng-container>\r\n</mat-menu>\r\n", styles: ["rs-toolbar-item.disabled{pointer-events:none}.toolbar-action-item{min-width:auto;padding:4px 8px}.toolbar-action-item .toolbar-action-image{height:16px;display:flex;flex-flow:row nowrap;justify-content:center;align-items:center}.toolbar-action-item .toolbar-action-image:before{display:block;width:16px;height:16px;line-height:16px}.toolbar-action-item .toolbar-action-image[data-type=Add]:before{content:url(/assets/img/toolbar-action-add.svg)}.toolbar-action-item .toolbar-action-image[data-type=Delete]:before{content:url(/assets/img/toolbar-action-delete.svg)}.toolbar-action-item .toolbar-action-image[data-type=Import]:before{content:url(/assets/img/toolbar-action-import.svg)}.toolbar-action-item .toolbar-action-image[data-type=Upload]:before{content:url(/assets/img/toolbar-action-upload.svg)}.toolbar-action-item .toolbar-action-image[data-type=Download]:before{content:url(/assets/img/toolbar-action-download.svg)}.toolbar-action-item .toolbar-action-image[data-type=Export]:before{content:url(/assets/img/toolbar-action-export.svg)}.toolbar-action-item .toolbar-action-image[data-type=Duplicate]:before{content:url(/assets/img/toolbar-action-duplicate.svg)}.toolbar-action-item .toolbar-action-image[data-type=Refresh]:before{content:url(/assets/img/toolbar-action-refresh.svg)}.toolbar-action-item .toolbar-action-image img{height:16px;display:block}.toolbar-action-item.e-btn{width:100%;justify-content:flex-start}.toolbar-action-item ::ng-deep .mat-mdc-menu-item-text{display:flex;gap:6px;align-items:center}.toolbar-action-item.mat-mdc-menu-item{min-height:24px}.toolbar-action-item.mat-menu-item:after{display:none}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2$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"] }] });
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"] }] });
2154
2425
  }
2155
2426
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ToolbarItemComponent, decorators: [{
2156
2427
  type: Component,
2157
- args: [{ selector: "rs-toolbar-item", template: "<button\r\n *ngIf=\"!children.length\"\r\n class=\"toolbar-action-item e-btn text\"\r\n #buttonElement\r\n [disabled]=\"!!disabled\"\r\n>\r\n <span class=\"toolbar-action-image\" [attr.data-type]=\"image\">\r\n <img *ngIf=\"!ImageType.includes(image)\" [src]=\"image\" />\r\n </span>\r\n <span>{{ text }}</span>\r\n</button>\r\n\r\n<button\r\n *ngIf=\"children.length\"\r\n class=\"toolbar-action-item e-btn text\"\r\n #buttonElement\r\n mat-menu-item\r\n [matMenuTriggerFor]=\"menu\"\r\n [disabled]=\"!!disabled\"\r\n>\r\n <span class=\"toolbar-action-image\" [attr.data-type]=\"image\">\r\n <img *ngIf=\"!ImageType.includes(image)\" [src]=\"image\" />\r\n </span>\r\n <span>{{ text }}</span>\r\n</button>\r\n<mat-menu #menu=\"matMenu\">\r\n <ng-container *ngFor=\"let button of children\">\r\n <button\r\n class=\"toolbar-action-item e-btn text\"\r\n [disabled]=\"(button.key && disabledOptions[button.key]) || false\"\r\n (click)=\"button.action()\"\r\n >\r\n <span class=\"toolbar-action-image\" [attr.data-type]=\"button.image\">\r\n <img *ngIf=\"!ImageType.includes(button.image)\" [src]=\"button.image\" />\r\n </span>\r\n <span>{{ button.text }}</span>\r\n </button>\r\n </ng-container>\r\n</mat-menu>\r\n", styles: ["rs-toolbar-item.disabled{pointer-events:none}.toolbar-action-item{min-width:auto;padding:4px 8px}.toolbar-action-item .toolbar-action-image{height:16px;display:flex;flex-flow:row nowrap;justify-content:center;align-items:center}.toolbar-action-item .toolbar-action-image:before{display:block;width:16px;height:16px;line-height:16px}.toolbar-action-item .toolbar-action-image[data-type=Add]:before{content:url(/assets/img/toolbar-action-add.svg)}.toolbar-action-item .toolbar-action-image[data-type=Delete]:before{content:url(/assets/img/toolbar-action-delete.svg)}.toolbar-action-item .toolbar-action-image[data-type=Import]:before{content:url(/assets/img/toolbar-action-import.svg)}.toolbar-action-item .toolbar-action-image[data-type=Upload]:before{content:url(/assets/img/toolbar-action-upload.svg)}.toolbar-action-item .toolbar-action-image[data-type=Download]:before{content:url(/assets/img/toolbar-action-download.svg)}.toolbar-action-item .toolbar-action-image[data-type=Export]:before{content:url(/assets/img/toolbar-action-export.svg)}.toolbar-action-item .toolbar-action-image[data-type=Duplicate]:before{content:url(/assets/img/toolbar-action-duplicate.svg)}.toolbar-action-item .toolbar-action-image[data-type=Refresh]:before{content:url(/assets/img/toolbar-action-refresh.svg)}.toolbar-action-item .toolbar-action-image img{height:16px;display:block}.toolbar-action-item.e-btn{width:100%;justify-content:flex-start}.toolbar-action-item ::ng-deep .mat-mdc-menu-item-text{display:flex;gap:6px;align-items:center}.toolbar-action-item.mat-mdc-menu-item{min-height:24px}.toolbar-action-item.mat-menu-item:after{display:none}\n"] }]
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"] }]
2158
2429
  }], propDecorators: { image: [{
2159
2430
  type: Input,
2160
2431
  args: ["image"]
@@ -2167,6 +2438,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
2167
2438
  }], children: [{
2168
2439
  type: Input,
2169
2440
  args: ["children"]
2441
+ }], hideArrow: [{
2442
+ type: Input,
2443
+ args: ["hideArrow"]
2170
2444
  }], disabledOptions: [{
2171
2445
  type: Input
2172
2446
  }], buttonElement: [{
@@ -2229,7 +2503,7 @@ class RSToolbarComponent {
2229
2503
  this.updateButtonVisibility();
2230
2504
  }
2231
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 });
2232
- 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: i3$1.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", "disabledOptions"] }] });
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"] }] });
2233
2507
  }
2234
2508
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: RSToolbarComponent, decorators: [{
2235
2509
  type: Component,
@@ -18848,6 +19122,7 @@ class RSHeaderComponent {
18848
19122
  }
18849
19123
  isCollapsed = false; // 接收输入属性
18850
19124
  lastLoginTime = new Date();
19125
+ appName = "";
18851
19126
  set langOptions(options) {
18852
19127
  this._langOptions = options;
18853
19128
  if (options && options.length > 0) {
@@ -18875,15 +19150,17 @@ class RSHeaderComponent {
18875
19150
  this.changeLanguage.emit(this.currentLang.languageCode);
18876
19151
  }
18877
19152
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: RSHeaderComponent, deps: [{ token: TranslationService }], target: i0.ɵɵFactoryTarget.Component });
18878
- 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 <ng-container *ngIf=\"langOptions?.length > 1\">\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.text }}\r\n </button>\r\n </div>\r\n </ng-container>\r\n\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}@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}@media (max-width: 768px){.rs-header .rs-header-toolbar-wrap .last-login-wrap{display:none}}.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$3.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"] }, { kind: "pipe", type: i1.DatePipe, name: "date" }] });
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"] }] });
18879
19154
  }
18880
19155
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: RSHeaderComponent, decorators: [{
18881
19156
  type: Component,
18882
- 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 <ng-container *ngIf=\"langOptions?.length > 1\">\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.text }}\r\n </button>\r\n </div>\r\n </ng-container>\r\n\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}@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}@media (max-width: 768px){.rs-header .rs-header-toolbar-wrap .last-login-wrap{display:none}}.rs-header .rs-header-toolbar-wrap .user-info-wrap{padding:0 20px 0 16px}\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"] }]
18883
19158
  }], ctorParameters: function () { return [{ type: TranslationService }]; }, propDecorators: { isCollapsed: [{
18884
19159
  type: Input
18885
19160
  }], lastLoginTime: [{
18886
19161
  type: Input
19162
+ }], appName: [{
19163
+ type: Input
18887
19164
  }], langOptions: [{
18888
19165
  type: Input
18889
19166
  }], toggleMenu: [{
@@ -18898,11 +19175,11 @@ class RSFooterComponent {
18898
19175
  ngOnInit() {
18899
19176
  }
18900
19177
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: RSFooterComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
18901
- 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>&reg;</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>&reg;</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" }] });
18902
19179
  }
18903
19180
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: RSFooterComponent, decorators: [{
18904
19181
  type: Component,
18905
- args: [{ selector: 'rs-footer', template: "<div class=\"rs-footer\">\r\n <span>\r\n RAISE<sup>&reg;</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>&reg;</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"] }]
18906
19183
  }] });
18907
19184
 
18908
19185
  // 组件类
@@ -18965,11 +19242,11 @@ class MainContainerComponent {
18965
19242
  }
18966
19243
  }
18967
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 });
18968
- 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 <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", styles: [".app-main-container{display:flex;flex-direction:column;height:100vh}.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.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" }] });
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" }] });
18969
19246
  }
18970
19247
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MainContainerComponent, decorators: [{
18971
19248
  type: Component,
18972
- args: [{ selector: "rs-main-container", template: "<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", styles: [".app-main-container{display:flex;flex-direction:column;height:100vh}.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.isCollapsed{position:relative}.app-main-container .right-aside.isCollapsed:after{content:\" \";position:absolute;z-index:5;inset:0;background-color:#0003}}\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"] }]
18973
19250
  }], ctorParameters: function () { return [{ type: DrawerService }, { type: i0.ElementRef }]; }, propDecorators: { headerRef: [{
18974
19251
  type: ContentChild,
18975
19252
  args: [RSHeaderComponent, { static: true }]
@@ -18993,8 +19270,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
18993
19270
  // 组件类
18994
19271
  class RSAsideComponent {
18995
19272
  router;
18996
- constructor(router) {
19273
+ cf;
19274
+ constructor(router, cf) {
18997
19275
  this.router = router;
19276
+ this.cf = cf;
18998
19277
  }
18999
19278
  toggleMenu = new EventEmitter();
19000
19279
  navClick = new EventEmitter();
@@ -19039,13 +19318,13 @@ class RSAsideComponent {
19039
19318
  }
19040
19319
  this.navClick.emit(item);
19041
19320
  }
19042
- 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 });
19043
- 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 }}</span>\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{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}@media (min-width: 993px){.rs-aside .nav-list .nav-item .nav-text.isCollapsed{opacity:0;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: i3$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { 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"] }] });
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"] }] });
19044
19323
  }
19045
19324
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: RSAsideComponent, decorators: [{
19046
19325
  type: Component,
19047
- 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 }}</span>\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{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}@media (min-width: 993px){.rs-aside .nav-list .nav-item .nav-text.isCollapsed{opacity:0;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"] }]
19048
- }], 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: [{
19049
19328
  type: Output
19050
19329
  }], navClick: [{
19051
19330
  type: Output
@@ -19154,7 +19433,7 @@ class RadioGroupComponent {
19154
19433
  this.valueChange.emit(value);
19155
19434
  }
19156
19435
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: RadioGroupComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
19157
- 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$4.RadioButtonComponent, selector: "ejs-radiobutton", inputs: ["checked", "cssClass", "disabled", "enableHtmlSanitizer", "enablePersistence", "enableRtl", "htmlAttributes", "label", "labelPosition", "locale", "name", "value"], outputs: ["focus", "blur", "change", "created", "valueChange"] }] });
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"] }] });
19158
19437
  }
19159
19438
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: RadioGroupComponent, decorators: [{
19160
19439
  type: Component,
@@ -19205,7 +19484,7 @@ class CheckboxGroupComponent {
19205
19484
  this.ref.markForCheck();
19206
19485
  }
19207
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 });
19208
- 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$4.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"] }] });
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"] }] });
19209
19488
  }
19210
19489
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: CheckboxGroupComponent, decorators: [{
19211
19490
  type: Component,
@@ -19246,7 +19525,7 @@ class SwitchInputComponent {
19246
19525
  this.valueChange.emit(value);
19247
19526
  }
19248
19527
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SwitchInputComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
19249
- 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$4.SwitchComponent, selector: "ejs-switch", inputs: ["checked", "cssClass", "disabled", "enablePersistence", "enableRtl", "htmlAttributes", "locale", "name", "offLabel", "onLabel", "value"], outputs: ["focus", "blur", "change", "created", "checkedChange"] }] });
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"] }] });
19250
19529
  }
19251
19530
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: SwitchInputComponent, decorators: [{
19252
19531
  type: Component,
@@ -19307,9 +19586,8 @@ function filterShowSection(sections) {
19307
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])?)*$/;
19308
19587
 
19309
19588
  class DrawerFormComponent {
19310
- datePipe;
19311
19589
  ref;
19312
- sections = [];
19590
+ _sections = [];
19313
19591
  optionsMap = {};
19314
19592
  customTemplate;
19315
19593
  customSectionTemplate;
@@ -19328,16 +19606,18 @@ class DrawerFormComponent {
19328
19606
  rootEl;
19329
19607
  containers;
19330
19608
  sectionContainers;
19609
+ sections = [];
19331
19610
  filterOptionsMap = {};
19332
19611
  fieldValidMap = {};
19333
- constructor(datePipe, ref) {
19334
- this.datePipe = datePipe;
19612
+ dateValidMap = {};
19613
+ constructor(ref) {
19335
19614
  this.ref = ref;
19336
19615
  }
19337
19616
  ngOnInit() { }
19338
19617
  ngOnChanges(changes) {
19339
- if (changes.sections) {
19340
- this.formatForm(changes.sections.currentValue);
19618
+ if (changes._sections) {
19619
+ this.sections = filterShowSection(changes._sections.currentValue);
19620
+ this.formatForm(this.sections);
19341
19621
  }
19342
19622
  if (changes.form && !changes.form.firstChange) {
19343
19623
  this.checkFormChange(changes.form.previousValue, changes.form.currentValue);
@@ -19392,7 +19672,9 @@ class DrawerFormComponent {
19392
19672
  Object.entries(current).forEach(([key, currentValue]) => {
19393
19673
  if (previous[key] !== currentValue) {
19394
19674
  const field = this.getField(key);
19395
- this.formItemValidator(field);
19675
+ if (field) {
19676
+ this.formItemValidator(field);
19677
+ }
19396
19678
  }
19397
19679
  });
19398
19680
  }
@@ -19490,13 +19772,30 @@ class DrawerFormComponent {
19490
19772
  onInput(value, field) {
19491
19773
  this.callFunction(field.onInput, value, field);
19492
19774
  }
19493
- onChange(value, field) {
19775
+ onComponentChange(event, field) {
19776
+ if (!event.isInteracted) {
19777
+ return;
19778
+ }
19779
+ let value = event.value;
19494
19780
  if (field.fieldFormType === "Datepicker") {
19495
- value = this.datePipe.transform(value, "yyyy-MM-dd");
19781
+ value = moment(value).format("YYYY-MM-DD");
19496
19782
  }
19783
+ this.onChange(value, field);
19784
+ }
19785
+ onChange(value, field) {
19497
19786
  this.updateForm(value, field);
19498
19787
  this.callFunction(field.onChange, value, field);
19499
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
+ }
19500
19799
  onFocus(field) {
19501
19800
  this.callFunction(field.onFocus, field);
19502
19801
  }
@@ -19510,6 +19809,13 @@ class DrawerFormComponent {
19510
19809
  }
19511
19810
  event.updateData(this.optionsMap[field.optionKey] || [], query);
19512
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
+ }
19513
19819
  getDisabled(field) {
19514
19820
  if (this.formDisabled) {
19515
19821
  return true;
@@ -19575,13 +19881,13 @@ class DrawerFormComponent {
19575
19881
  onScroll();
19576
19882
  scrollViewEl.addEventListener("scroll", onScroll);
19577
19883
  }
19578
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DrawerFormComponent, deps: [{ token: i1.DatePipe }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
19579
- 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"] }] });
19580
19886
  }
19581
19887
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: DrawerFormComponent, decorators: [{
19582
19888
  type: Component,
19583
- 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"] }]
19584
- }], ctorParameters: function () { return [{ type: i1.DatePipe }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { sections: [{
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: [{
19585
19891
  type: Input,
19586
19892
  args: ["sections"]
19587
19893
  }], optionsMap: [{
@@ -19628,6 +19934,869 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
19628
19934
  args: ["sectionEl"]
19629
19935
  }] } });
19630
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
+
19631
20800
  class IconLoaderService {
19632
20801
  registry;
19633
20802
  domSanitizer;
@@ -19640,12 +20809,12 @@ class IconLoaderService {
19640
20809
  this.registry.addSvgIcon(name, this.domSanitizer.bypassSecurityTrustResourceUrl(path));
19641
20810
  });
19642
20811
  }
19643
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: IconLoaderService, deps: [{ token: i3$1.MatIconRegistry }, { token: i2$5.DomSanitizer }], target: i0.ɵɵFactoryTarget.Injectable });
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 });
19644
20813
  static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: IconLoaderService });
19645
20814
  }
19646
20815
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: IconLoaderService, decorators: [{
19647
20816
  type: Injectable
19648
- }], ctorParameters: function () { return [{ type: i3$1.MatIconRegistry }, { type: i2$5.DomSanitizer }]; } });
20817
+ }], ctorParameters: function () { return [{ type: i4.MatIconRegistry }, { type: i2$6.DomSanitizer }]; } });
19649
20818
 
19650
20819
  const storedRoutes = new Map();
19651
20820
  let toBeDeleteUrl;
@@ -19747,6 +20916,8 @@ class RaiseCommonLibModule {
19747
20916
  CheckboxGroupComponent,
19748
20917
  SwitchInputComponent,
19749
20918
  EncryptedInputComponent,
20919
+ SearchInputComponent,
20920
+ ConfirmSelectComponent,
19750
20921
  NewActionNotificationComponent,
19751
20922
  CommonDialogComponent,
19752
20923
  CommonDeleteComponent,
@@ -19755,10 +20926,13 @@ class RaiseCommonLibModule {
19755
20926
  ToolbarItemComponent,
19756
20927
  RsCommentaryComponent,
19757
20928
  RSNavCardGroupComponent,
19758
- RSToolbarComponent], imports: [CommonModule,
20929
+ RSToolbarComponent,
20930
+ TruncatedTextToggleComponent,
20931
+ RichtexteditorComponent], imports: [CommonModule,
19759
20932
  HttpClientModule,
19760
20933
  ReactiveFormsModule,
19761
20934
  FormsModule,
20935
+ DragDropModule,
19762
20936
  MatSnackBarModule,
19763
20937
  MatMenuModule,
19764
20938
  MatTooltipModule,
@@ -19796,6 +20970,7 @@ class RaiseCommonLibModule {
19796
20970
  CarouselAllModule,
19797
20971
  ToolbarModule,
19798
20972
  TabModule,
20973
+ TreeViewModule,
19799
20974
  PdfViewerModule,
19800
20975
  DropDownButtonModule,
19801
20976
  SplitButtonModule,
@@ -19803,11 +20978,11 @@ class RaiseCommonLibModule {
19803
20978
  HttpClientModule,
19804
20979
  ReactiveFormsModule,
19805
20980
  FormsModule,
20981
+ DragDropModule,
19806
20982
  MatSnackBarModule,
19807
20983
  MatMenuModule,
19808
20984
  MatTooltipModule,
19809
20985
  MatDialogModule,
19810
- MatIconModule,
19811
20986
  GridModule,
19812
20987
  PagerModule,
19813
20988
  GridAllModule,
@@ -19840,6 +21015,7 @@ class RaiseCommonLibModule {
19840
21015
  CarouselAllModule,
19841
21016
  ToolbarModule,
19842
21017
  TabModule,
21018
+ TreeViewModule,
19843
21019
  PdfViewerModule,
19844
21020
  DropDownButtonModule,
19845
21021
  SplitButtonModule,
@@ -19861,17 +21037,20 @@ class RaiseCommonLibModule {
19861
21037
  CheckboxGroupComponent,
19862
21038
  SwitchInputComponent,
19863
21039
  EncryptedInputComponent,
21040
+ SearchInputComponent,
21041
+ ConfirmSelectComponent,
19864
21042
  DrawerComponent,
19865
21043
  DrawerFormComponent,
19866
21044
  ToolbarItemComponent,
19867
21045
  RsCommentaryComponent,
19868
21046
  RSNavCardGroupComponent,
19869
21047
  RSToolbarComponent,
19870
- NewActionNotificationComponent,
21048
+ TruncatedTextToggleComponent,
19871
21049
  CommonDialogComponent,
19872
- CommonDeleteComponent] });
21050
+ RichtexteditorComponent] });
19873
21051
  static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: RaiseCommonLibModule, providers: [
19874
21052
  PageService,
21053
+ RowDDService,
19875
21054
  SortService,
19876
21055
  FilterService,
19877
21056
  ExcelExportService,
@@ -19908,6 +21087,7 @@ class RaiseCommonLibModule {
19908
21087
  HttpClientModule,
19909
21088
  ReactiveFormsModule,
19910
21089
  FormsModule,
21090
+ DragDropModule,
19911
21091
  MatSnackBarModule,
19912
21092
  MatMenuModule,
19913
21093
  MatTooltipModule,
@@ -19945,6 +21125,7 @@ class RaiseCommonLibModule {
19945
21125
  CarouselAllModule,
19946
21126
  ToolbarModule,
19947
21127
  TabModule,
21128
+ TreeViewModule,
19948
21129
  PdfViewerModule,
19949
21130
  DropDownButtonModule,
19950
21131
  SplitButtonModule,
@@ -19952,11 +21133,11 @@ class RaiseCommonLibModule {
19952
21133
  HttpClientModule,
19953
21134
  ReactiveFormsModule,
19954
21135
  FormsModule,
21136
+ DragDropModule,
19955
21137
  MatSnackBarModule,
19956
21138
  MatMenuModule,
19957
21139
  MatTooltipModule,
19958
21140
  MatDialogModule,
19959
- MatIconModule,
19960
21141
  GridModule,
19961
21142
  PagerModule,
19962
21143
  GridAllModule,
@@ -19989,6 +21170,7 @@ class RaiseCommonLibModule {
19989
21170
  CarouselAllModule,
19990
21171
  ToolbarModule,
19991
21172
  TabModule,
21173
+ TreeViewModule,
19992
21174
  PdfViewerModule,
19993
21175
  DropDownButtonModule,
19994
21176
  SplitButtonModule,
@@ -20015,6 +21197,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
20015
21197
  CheckboxGroupComponent,
20016
21198
  SwitchInputComponent,
20017
21199
  EncryptedInputComponent,
21200
+ SearchInputComponent,
21201
+ ConfirmSelectComponent,
20018
21202
  NewActionNotificationComponent,
20019
21203
  CommonDialogComponent,
20020
21204
  CommonDeleteComponent,
@@ -20023,13 +21207,16 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
20023
21207
  ToolbarItemComponent,
20024
21208
  RsCommentaryComponent,
20025
21209
  RSNavCardGroupComponent,
20026
- RSToolbarComponent
21210
+ RSToolbarComponent,
21211
+ TruncatedTextToggleComponent,
21212
+ RichtexteditorComponent,
20027
21213
  ],
20028
21214
  imports: [
20029
21215
  CommonModule,
20030
21216
  HttpClientModule,
20031
21217
  ReactiveFormsModule,
20032
21218
  FormsModule,
21219
+ DragDropModule,
20033
21220
  MatSnackBarModule,
20034
21221
  MatMenuModule,
20035
21222
  MatTooltipModule,
@@ -20067,6 +21254,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
20067
21254
  CarouselAllModule,
20068
21255
  ToolbarModule,
20069
21256
  TabModule,
21257
+ TreeViewModule,
20070
21258
  PdfViewerModule,
20071
21259
  DropDownButtonModule,
20072
21260
  SplitButtonModule,
@@ -20074,6 +21262,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
20074
21262
  ],
20075
21263
  providers: [
20076
21264
  PageService,
21265
+ RowDDService,
20077
21266
  SortService,
20078
21267
  FilterService,
20079
21268
  ExcelExportService,
@@ -20112,11 +21301,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
20112
21301
  HttpClientModule,
20113
21302
  ReactiveFormsModule,
20114
21303
  FormsModule,
21304
+ DragDropModule,
20115
21305
  MatSnackBarModule,
20116
21306
  MatMenuModule,
20117
21307
  MatTooltipModule,
20118
21308
  MatDialogModule,
20119
- MatIconModule,
20120
21309
  GridModule,
20121
21310
  PagerModule,
20122
21311
  GridAllModule,
@@ -20149,6 +21338,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
20149
21338
  CarouselAllModule,
20150
21339
  ToolbarModule,
20151
21340
  TabModule,
21341
+ TreeViewModule,
20152
21342
  PdfViewerModule,
20153
21343
  DropDownButtonModule,
20154
21344
  SplitButtonModule,
@@ -20170,15 +21360,17 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
20170
21360
  CheckboxGroupComponent,
20171
21361
  SwitchInputComponent,
20172
21362
  EncryptedInputComponent,
21363
+ SearchInputComponent,
21364
+ ConfirmSelectComponent,
20173
21365
  DrawerComponent,
20174
21366
  DrawerFormComponent,
20175
21367
  ToolbarItemComponent,
20176
21368
  RsCommentaryComponent,
20177
21369
  RSNavCardGroupComponent,
20178
21370
  RSToolbarComponent,
20179
- NewActionNotificationComponent,
21371
+ TruncatedTextToggleComponent,
20180
21372
  CommonDialogComponent,
20181
- CommonDeleteComponent,
21373
+ RichtexteditorComponent,
20182
21374
  ],
20183
21375
  schemas: [CUSTOM_ELEMENTS_SCHEMA],
20184
21376
  }]
@@ -20192,5 +21384,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
20192
21384
  * Generated bundle index. Do not edit.
20193
21385
  */
20194
21386
 
20195
- export { CheckboxGroupComponent, CommonDeleteComponent, CommonDialogComponent, CommonFunctionService, CommonGridComponent, DefaultDrawerConfig, DialogService, DrawerComponent, DrawerFormComponent, DrawerService, EmailPattern, EncryptedInputComponent, FloatBoxComponent, GridActionComponent, GridActionItemComponent, GridBoxComponent, IconLoaderService, KeepAliveService, MainContainerComponent, MessageType, MultiTabComponent, NewActionNotificationComponent, RSAsideComponent, RSFooterComponent, RSHeaderComponent, RSNavCardGroupComponent, RSToolbarComponent, RadioGroupComponent, RaiseCommonLibModule, RsCommentaryComponent, RsPageListComponent, RsPageTabComponent, SwitchInputComponent, TagInputComponent, ToolbarItemComponent, TranslationService, filterShowSection };
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 };
20196
21388
  //# sourceMappingURL=raise-common-lib-new.mjs.map