raise-common-lib 0.0.192 → 0.0.194

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 (38) hide show
  1. package/bundles/raise-common-lib.umd.js +1357 -49
  2. package/bundles/raise-common-lib.umd.js.map +1 -1
  3. package/bundles/raise-common-lib.umd.min.js +1 -1
  4. package/bundles/raise-common-lib.umd.min.js.map +1 -1
  5. package/esm2015/lib/common-grid/index.component.js +2 -2
  6. package/esm2015/lib/form/drawer-form/drawer-form.component.js +112 -44
  7. package/esm2015/lib/form/richtexteditor/ai-config.js +70 -0
  8. package/esm2015/lib/form/richtexteditor/data-config.js +273 -0
  9. package/esm2015/lib/form/richtexteditor/index.component.js +601 -0
  10. package/esm2015/lib/form/richtexteditor/openapi.js +175 -0
  11. package/esm2015/lib/layout/page-tab/index.component.js +6 -2
  12. package/esm2015/lib/raise-common-lib.module.js +7 -2
  13. package/esm2015/raise-common-lib.js +5 -4
  14. package/esm5/lib/common-grid/index.component.js +2 -2
  15. package/esm5/lib/form/drawer-form/drawer-form.component.js +123 -45
  16. package/esm5/lib/form/richtexteditor/ai-config.js +73 -0
  17. package/esm5/lib/form/richtexteditor/data-config.js +273 -0
  18. package/esm5/lib/form/richtexteditor/index.component.js +681 -0
  19. package/esm5/lib/form/richtexteditor/openapi.js +208 -0
  20. package/esm5/lib/layout/page-tab/index.component.js +6 -2
  21. package/esm5/lib/raise-common-lib.module.js +7 -2
  22. package/esm5/raise-common-lib.js +5 -4
  23. package/fesm2015/raise-common-lib.js +1230 -48
  24. package/fesm2015/raise-common-lib.js.map +1 -1
  25. package/fesm5/raise-common-lib.js +1356 -49
  26. package/fesm5/raise-common-lib.js.map +1 -1
  27. package/lib/form/drawer-form/drawer-form.component.d.ts +10 -5
  28. package/lib/form/richtexteditor/ai-config.d.ts +10 -0
  29. package/lib/form/richtexteditor/data-config.d.ts +14 -0
  30. package/lib/form/richtexteditor/index.component.d.ts +78 -0
  31. package/lib/form/richtexteditor/openapi.d.ts +3 -0
  32. package/lib/layout/page-tab/index.component.d.ts +1 -0
  33. package/package.json +1 -1
  34. package/raise-common-lib.d.ts +4 -3
  35. package/raise-common-lib.metadata.json +1 -1
  36. package/src/assets/img/editor-copy.svg +5 -0
  37. package/src/assets/img/info.svg +5 -0
  38. package/src/assets/style/reset/grid.scss +2 -1
@@ -19,7 +19,7 @@ import { MatIconRegistry, MatIconModule } from '@angular/material/icon';
19
19
  import { DomSanitizer } from '@angular/platform-browser';
20
20
  import { ReactiveFormsModule, FormsModule } from '@angular/forms';
21
21
  import { CommonModule } from '@angular/common';
22
- import { SwitchModule, CheckBoxModule, RadioButtonModule, ButtonModule } from '@syncfusion/ej2-angular-buttons';
22
+ import { SwitchModule, CheckBoxModule, RadioButtonModule, ButtonModule, ChipListModule } from '@syncfusion/ej2-angular-buttons';
23
23
  import { DiagramModule } from '@syncfusion/ej2-angular-diagrams';
24
24
  import { TooltipModule, DialogModule } from '@syncfusion/ej2-angular-popups';
25
25
  import { DatePickerModule, DateRangePickerModule, DateTimePickerModule } from '@syncfusion/ej2-angular-calendars';
@@ -29,7 +29,7 @@ import { PivotViewAllModule, PivotFieldListAllModule } from '@syncfusion/ej2-ang
29
29
  import { ChartAllModule, AccumulationChartAllModule, RangeNavigatorAllModule, AccumulationChartModule, PieSeriesService, AccumulationLegendService, AccumulationTooltipService, AccumulationAnnotationService, AccumulationDataLabelService } from '@syncfusion/ej2-angular-charts';
30
30
  import { DashboardLayoutModule } from '@syncfusion/ej2-angular-layouts';
31
31
  import { PdfViewerModule, LinkAnnotationService, BookmarkViewService, MagnificationService, ThumbnailViewService, ToolbarService as ToolbarService$1, NavigationService, TextSearchService, TextSelectionService, PrintService } from '@syncfusion/ej2-angular-pdfviewer';
32
- import { DropDownButtonModule, SplitButtonModule } from '@syncfusion/ej2-angular-splitbuttons';
32
+ import { DropDownButton, DropDownButtonModule, SplitButtonModule } from '@syncfusion/ej2-angular-splitbuttons';
33
33
  import { RichTextEditorAllModule, HtmlEditorService, ToolbarService as ToolbarService$2 } from '@syncfusion/ej2-angular-richtexteditor';
34
34
  import { MatMenuModule } from '@angular/material/menu';
35
35
  import { MatTooltipModule } from '@angular/material/tooltip';
@@ -811,7 +811,7 @@ var CommonGridComponent = /** @class */ (function () {
811
811
  CommonGridComponent.decorators = [
812
812
  { type: Component, args: [{
813
813
  selector: "rs-common-grid",
814
- 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",
814
+ 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 [showInColumnChooser]=\"\r\n item.showInColumnChooser === undefined ? true : item.showInColumnChooser\r\n \"\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",
815
815
  styles: [""]
816
816
  }] }
817
817
  ];
@@ -2808,6 +2808,7 @@ var RsPageTabComponent = /** @class */ (function () {
2808
2808
  this.customPageTitle = false;
2809
2809
  this.tabList = [];
2810
2810
  this.tabChange = new EventEmitter();
2811
+ this.selectedItemIndex = 0;
2811
2812
  this.animation = {
2812
2813
  previous: { effect: "", duration: 0, easing: "" },
2813
2814
  next: { effect: "", duration: 0, easing: "" },
@@ -2856,6 +2857,7 @@ var RsPageTabComponent = /** @class */ (function () {
2856
2857
  var index = e.selectedItem.dataset.id.split('_')[1] // sy的bug只能这么取了
2857
2858
  ;
2858
2859
  if (e.isInteracted) {
2860
+ this.selectedItemIndex = index;
2859
2861
  this.tabChange.emit(this.tabList[index]);
2860
2862
  }
2861
2863
  };
@@ -2877,7 +2879,7 @@ var RsPageTabComponent = /** @class */ (function () {
2877
2879
  RsPageTabComponent.decorators = [
2878
2880
  { type: Component, args: [{
2879
2881
  selector: "rs-page-tab",
2880
- 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",
2882
+ 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 [selectedItem]=\"selectedItemIndex\"\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",
2881
2883
  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(../../../assets/img/icon-more.svg);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(../../../assets/img/icon-more-active.svg)}.rs-page-list-wrap .rs-tab .e-toolbar-pop{min-width:160px;border-radius:10px;background:#fff;box-shadow:0 0 8px 0 rgba(0,0,0,.25);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:rgba(31,123,255,.05)}.rs-page-list-wrap .rs-grid-wrap{flex:1;height:0}"]
2882
2884
  }] }
2883
2885
  ];
@@ -2905,6 +2907,8 @@ if (false) {
2905
2907
  /** @type {?} */
2906
2908
  RsPageTabComponent.prototype.tabChange;
2907
2909
  /** @type {?} */
2910
+ RsPageTabComponent.prototype.selectedItemIndex;
2911
+ /** @type {?} */
2908
2912
  RsPageTabComponent.prototype.animation;
2909
2913
  }
2910
2914
 
@@ -22233,9 +22237,12 @@ var EmailPattern = /^(?=.{1,254}$)(?=.{1,64}@)[a-zA-Z0-9!#$%&'*+/=?^_`{|}~-]+(?:
22233
22237
  * Generated from: lib/form/drawer-form/drawer-form.component.ts
22234
22238
  * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
22235
22239
  */
22240
+ /** @type {?} */
22241
+ var FORM_PROXY_TAG = Symbol.for("form-proxy");
22236
22242
  var DrawerFormComponent = /** @class */ (function () {
22237
22243
  function DrawerFormComponent(ref) {
22238
22244
  this.ref = ref;
22245
+ this._form = {};
22239
22246
  this._sections = [];
22240
22247
  this.optionsMap = {};
22241
22248
  this.formDisabled = false;
@@ -22247,12 +22254,14 @@ var DrawerFormComponent = /** @class */ (function () {
22247
22254
  groupBy: null,
22248
22255
  };
22249
22256
  this.showFilterNumber = 10;
22250
- this.form = {};
22257
+ this.dateFormat = "yyyy-MM-dd";
22251
22258
  this.formChange = new EventEmitter();
22252
22259
  this.fieldChange = new EventEmitter();
22253
22260
  this.sections = [];
22254
- this.filterOptionsMap = {};
22261
+ this.form = {};
22255
22262
  this.fieldValidMap = {};
22263
+ // 存储 datepicker 的值
22264
+ this.dateForm = {};
22256
22265
  this.dateValidMap = {};
22257
22266
  this.scrollIndex = 0;
22258
22267
  this.isClickAnchor = false;
@@ -22273,13 +22282,19 @@ var DrawerFormComponent = /** @class */ (function () {
22273
22282
  * @return {?}
22274
22283
  */
22275
22284
  function (changes) {
22285
+ if (changes._form) {
22286
+ if (!changes._form.currentValue[FORM_PROXY_TAG]) {
22287
+ this.form = this.getFormProxy(changes._form.currentValue);
22288
+ this.formChange.emit(this.form);
22289
+ }
22290
+ if (!changes._form.firstChange) {
22291
+ this.checkFormChange(changes._form.previousValue, changes._form.currentValue);
22292
+ }
22293
+ }
22276
22294
  if (changes._sections) {
22277
22295
  this.sections = filterShowSection(changes._sections.currentValue);
22278
22296
  this.formatForm(this.sections);
22279
22297
  }
22280
- if (changes.form && !changes.form.firstChange) {
22281
- this.checkFormChange(changes.form.previousValue, changes.form.currentValue);
22282
- }
22283
22298
  };
22284
22299
  /**
22285
22300
  * @return {?}
@@ -22411,6 +22426,23 @@ var DrawerFormComponent = /** @class */ (function () {
22411
22426
  }
22412
22427
  }));
22413
22428
  };
22429
+ /**
22430
+ * @param {?} field
22431
+ * @param {?} value
22432
+ * @return {?}
22433
+ */
22434
+ DrawerFormComponent.prototype.syncFormToDateForm = /**
22435
+ * @param {?} field
22436
+ * @param {?} value
22437
+ * @return {?}
22438
+ */
22439
+ function (field, value) {
22440
+ if (value) {
22441
+ /** @type {?} */
22442
+ var date = moment(value);
22443
+ this.dateForm[field.formKey] = date.isValid() ? date.toDate() : null;
22444
+ }
22445
+ };
22414
22446
  /**
22415
22447
  * @param {?} sections
22416
22448
  * @return {?}
@@ -22446,6 +22478,9 @@ var DrawerFormComponent = /** @class */ (function () {
22446
22478
  case "Switch":
22447
22479
  _this.form[field.formKey] = false;
22448
22480
  break;
22481
+ case "Datepicker":
22482
+ _this.syncFormToDateForm(field, _this.form[field.formKey]);
22483
+ break;
22449
22484
  default:
22450
22485
  _this.form[field.formKey] = null;
22451
22486
  }
@@ -22453,6 +22488,43 @@ var DrawerFormComponent = /** @class */ (function () {
22453
22488
  }));
22454
22489
  }));
22455
22490
  };
22491
+ /**
22492
+ * @param {?} form
22493
+ * @return {?}
22494
+ */
22495
+ DrawerFormComponent.prototype.getFormProxy = /**
22496
+ * @param {?} form
22497
+ * @return {?}
22498
+ */
22499
+ function (form) {
22500
+ var _this = this;
22501
+ // 现在除了 tag 之外不支持嵌套 form 属性,只对浅层进行处理
22502
+ /** @type {?} */
22503
+ var proxyForm = new Proxy(form, {
22504
+ set: (/**
22505
+ * @param {?} target
22506
+ * @param {?} prop
22507
+ * @param {?} value
22508
+ * @return {?}
22509
+ */
22510
+ function (target, prop, value) {
22511
+ target[prop] = value;
22512
+ /** @type {?} */
22513
+ var field = _this.getField(prop);
22514
+ if (field && field.fieldFormType === "Datepicker") {
22515
+ _this.syncFormToDateForm(field, value);
22516
+ }
22517
+ return true;
22518
+ }),
22519
+ });
22520
+ Object.defineProperty(proxyForm, FORM_PROXY_TAG, {
22521
+ value: true,
22522
+ writable: false,
22523
+ enumerable: false,
22524
+ configurable: false,
22525
+ });
22526
+ return proxyForm;
22527
+ };
22456
22528
  // 表单提交前会触发这个函数
22457
22529
  // 表单提交前会触发这个函数
22458
22530
  /**
@@ -22468,12 +22540,8 @@ var DrawerFormComponent = /** @class */ (function () {
22468
22540
  * @return {?}
22469
22541
  */
22470
22542
  function (value, field) {
22471
- var _a;
22472
- /** @type {?} */
22473
- var newForm = __assign({}, this.form, (_a = {}, _a[field.formKey] = value, _a));
22474
- // 修复错误提示显示 bug,不设置一下有概率拿不到最新的值
22475
- this.form = newForm;
22476
- this.formChange.emit(newForm);
22543
+ this.form[field.formKey] = value;
22544
+ this.formChange.emit(this.form);
22477
22545
  this.fieldChange.emit({ field: field, value: value });
22478
22546
  };
22479
22547
  /**
@@ -22640,13 +22708,14 @@ var DrawerFormComponent = /** @class */ (function () {
22640
22708
  if (!event.isInteracted) {
22641
22709
  return;
22642
22710
  }
22643
- /** @type {?} */
22644
- var value = event.value;
22645
- if (field.fieldFormType === "Datepicker") {
22646
- /** @type {?} */
22647
- var date = moment(value);
22648
- value = date.isValid() ? date.format("YYYY-MM-DD") : null;
22711
+ if (field.fieldFormType !== "Datepicker") {
22712
+ this.onChange(event.value, field);
22713
+ return;
22649
22714
  }
22715
+ console.log("change", event);
22716
+ /** @type {?} */
22717
+ var value = event.value ? moment(event.value).format("YYYY-MM-DD") : null;
22718
+ this.dateForm[field.formKey] = event.value;
22650
22719
  this.onChange(value, field);
22651
22720
  };
22652
22721
  /**
@@ -22674,17 +22743,21 @@ var DrawerFormComponent = /** @class */ (function () {
22674
22743
  * @return {?}
22675
22744
  */
22676
22745
  function (event, field) {
22746
+ var _this = this;
22677
22747
  this.onBlur(field);
22678
- /** @type {?} */
22679
- var $input = event.model.element.querySelector("input");
22680
- if (!$input || !$input.value) {
22681
- delete this.dateValidMap[field.formKey];
22682
- return;
22683
- }
22684
- /** @type {?} */
22685
- var date = moment($input.value);
22686
- this.onChange(date.isValid() ? date.format("YYYY-MM-DD") : null, field);
22687
- this.dateValidMap[field.formKey] = date.isValid();
22748
+ setTimeout((/**
22749
+ * @return {?}
22750
+ */
22751
+ function () {
22752
+ /** @type {?} */
22753
+ var $input = event.model.element.querySelector("input");
22754
+ if ($input && $input.value && !_this.dateForm[field.formKey]) {
22755
+ _this.dateValidMap[field.formKey] = false;
22756
+ }
22757
+ else {
22758
+ delete _this.dateValidMap[field.formKey];
22759
+ }
22760
+ }), 50);
22688
22761
  };
22689
22762
  /**
22690
22763
  * @param {?} field
@@ -22724,23 +22797,24 @@ var DrawerFormComponent = /** @class */ (function () {
22724
22797
  if (event.text) {
22725
22798
  query.where(this.optionFields.text, "contains", event.text, true);
22726
22799
  }
22727
- event.updateData(this.optionsMap[field.optionKey] || [], query);
22800
+ event.updateData(this.getOptions(field), query);
22728
22801
  };
22729
22802
  /**
22730
22803
  * @param {?} field
22731
22804
  * @return {?}
22732
22805
  */
22733
- DrawerFormComponent.prototype.getValue = /**
22806
+ DrawerFormComponent.prototype.getOptions = /**
22734
22807
  * @param {?} field
22735
22808
  * @return {?}
22736
22809
  */
22737
22810
  function (field) {
22738
- if (field.fieldFormType === "Datepicker" && this.form[field.formKey]) {
22739
- /** @type {?} */
22740
- var date = moment(this.form[field.formKey]);
22741
- return date.isValid() ? date.toDate() : null;
22811
+ if (Array.isArray(this.optionsMap[field.optionKey])) {
22812
+ return this.optionsMap[field.optionKey];
22813
+ }
22814
+ if (Array.isArray(this.optionsMap[field.formKey])) {
22815
+ return this.optionsMap[field.formKey];
22742
22816
  }
22743
- return this.form[field.formKey];
22817
+ return [];
22744
22818
  };
22745
22819
  /**
22746
22820
  * @param {?} field
@@ -22861,7 +22935,7 @@ var DrawerFormComponent = /** @class */ (function () {
22861
22935
  DrawerFormComponent.decorators = [
22862
22936
  { type: Component, args: [{
22863
22937
  selector: "rs-drawer-form",
22864
- 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",
22938
+ 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]=\"getOptions(field)\"\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]=\"getOptions(field)\"\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 || numberFormat\"\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]=\"getOptions(field)\"\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]=\"getOptions(field)\"\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]=\"getOptions(field)\"\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)]=\"dateForm[field.formKey]\"\r\n [format]=\"field.format || dateFormat\"\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",
22865
22939
  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;-webkit-appearance:none;-moz-appearance:none;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(../../../assets/img/down-arrow.svg);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(../../../assets/img/tooltip-icon.svg);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:-webkit-sticky;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}"]
22866
22940
  }] }
22867
22941
  ];
@@ -22870,15 +22944,17 @@ var DrawerFormComponent = /** @class */ (function () {
22870
22944
  { type: ChangeDetectorRef }
22871
22945
  ]; };
22872
22946
  DrawerFormComponent.propDecorators = {
22947
+ _form: [{ type: Input, args: ["form",] }],
22873
22948
  _sections: [{ type: Input, args: ["sections",] }],
22874
22949
  optionsMap: [{ type: Input, args: ["optionsMap",] }],
22875
- customTemplate: [{ type: Input, args: ["customTemplate",] }],
22876
- customSectionTemplate: [{ type: Input, args: ["customSectionTemplate",] }],
22877
22950
  formDisabled: [{ type: Input, args: ["disabled",] }],
22878
22951
  showAnchor: [{ type: Input, args: ["showAnchor",] }],
22952
+ customTemplate: [{ type: Input, args: ["customTemplate",] }],
22953
+ customSectionTemplate: [{ type: Input, args: ["customSectionTemplate",] }],
22879
22954
  optionFields: [{ type: Input, args: ["optionFields",] }],
22880
22955
  showFilterNumber: [{ type: Input, args: ["showFilterNumber",] }],
22881
- form: [{ type: Input, args: ["form",] }],
22956
+ numberFormat: [{ type: Input, args: ["numberFormat",] }],
22957
+ dateFormat: [{ type: Input, args: ["dateFormat",] }],
22882
22958
  formChange: [{ type: Output, args: ["formChange",] }],
22883
22959
  fieldChange: [{ type: Output, args: ["fieldChange",] }],
22884
22960
  rootEl: [{ type: ViewChild, args: ["drawerFormEl", { static: false },] }],
@@ -22889,24 +22965,28 @@ var DrawerFormComponent = /** @class */ (function () {
22889
22965
  return DrawerFormComponent;
22890
22966
  }());
22891
22967
  if (false) {
22968
+ /** @type {?} */
22969
+ DrawerFormComponent.prototype._form;
22892
22970
  /** @type {?} */
22893
22971
  DrawerFormComponent.prototype._sections;
22894
22972
  /** @type {?} */
22895
22973
  DrawerFormComponent.prototype.optionsMap;
22896
22974
  /** @type {?} */
22897
- DrawerFormComponent.prototype.customTemplate;
22898
- /** @type {?} */
22899
- DrawerFormComponent.prototype.customSectionTemplate;
22900
- /** @type {?} */
22901
22975
  DrawerFormComponent.prototype.formDisabled;
22902
22976
  /** @type {?} */
22903
22977
  DrawerFormComponent.prototype.showAnchor;
22904
22978
  /** @type {?} */
22979
+ DrawerFormComponent.prototype.customTemplate;
22980
+ /** @type {?} */
22981
+ DrawerFormComponent.prototype.customSectionTemplate;
22982
+ /** @type {?} */
22905
22983
  DrawerFormComponent.prototype.optionFields;
22906
22984
  /** @type {?} */
22907
22985
  DrawerFormComponent.prototype.showFilterNumber;
22908
22986
  /** @type {?} */
22909
- DrawerFormComponent.prototype.form;
22987
+ DrawerFormComponent.prototype.numberFormat;
22988
+ /** @type {?} */
22989
+ DrawerFormComponent.prototype.dateFormat;
22910
22990
  /** @type {?} */
22911
22991
  DrawerFormComponent.prototype.formChange;
22912
22992
  /** @type {?} */
@@ -22926,10 +23006,12 @@ if (false) {
22926
23006
  /** @type {?} */
22927
23007
  DrawerFormComponent.prototype.sections;
22928
23008
  /** @type {?} */
22929
- DrawerFormComponent.prototype.filterOptionsMap;
23009
+ DrawerFormComponent.prototype.form;
22930
23010
  /** @type {?} */
22931
23011
  DrawerFormComponent.prototype.fieldValidMap;
22932
23012
  /** @type {?} */
23013
+ DrawerFormComponent.prototype.dateForm;
23014
+ /** @type {?} */
22933
23015
  DrawerFormComponent.prototype.dateValidMap;
22934
23016
  /** @type {?} */
22935
23017
  DrawerFormComponent.prototype.sectionEls;
@@ -23511,6 +23593,1227 @@ if (false) {
23511
23593
  ConfirmSelectComponent.prototype.isInteracted;
23512
23594
  }
23513
23595
 
23596
+ /**
23597
+ * @fileoverview added by tsickle
23598
+ * Generated from: lib/form/richtexteditor/ai-config.ts
23599
+ * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
23600
+ */
23601
+ /**
23602
+ * @record
23603
+ */
23604
+ function AIConfig() { }
23605
+ if (false) {
23606
+ /** @type {?} */
23607
+ AIConfig.prototype.endpoint;
23608
+ /** @type {?} */
23609
+ AIConfig.prototype.apiKey;
23610
+ /** @type {?} */
23611
+ AIConfig.prototype.deployment;
23612
+ /** @type {?} */
23613
+ AIConfig.prototype.apiVersion;
23614
+ /** @type {?} */
23615
+ AIConfig.prototype.enabled;
23616
+ }
23617
+ // 从环境配置获取AI配置
23618
+ /**
23619
+ * @return {?}
23620
+ */
23621
+ function getAIConfig() {
23622
+ return {
23623
+ endpoint: "https://aidevused.openai.azure.com/",
23624
+ apiKey: "ccba76e279f64653a50ac4fee90afe5c",
23625
+ deployment: "gpt-4",
23626
+ apiVersion: "2025-01-01-preview",
23627
+ enabled: true,
23628
+ };
23629
+ }
23630
+ // 检查配置是否有效
23631
+ /**
23632
+ * @param {?} config
23633
+ * @return {?}
23634
+ */
23635
+ function isAIConfigValid(config) {
23636
+ // 检查是否为aidevused端点且有有效API密钥
23637
+ return !!((config.endpoint &&
23638
+ config.apiKey &&
23639
+ config.deployment &&
23640
+ config.enabled &&
23641
+ config.endpoint === "https://aidevused.openai.azure.com/" &&
23642
+ config.apiKey !== "your-api-key-here") // Azure OpenAI API密钥通常以sk-开头
23643
+ );
23644
+ }
23645
+ // 从后端API获取AI配置(推荐方式)
23646
+ /**
23647
+ * @return {?}
23648
+ * @this {*}
23649
+ */
23650
+ function getAIConfigFromBackend() {
23651
+ return __awaiter(this, void 0, void 0, function () {
23652
+ return __generator(this, function (_a) {
23653
+ try {
23654
+ // 这里应该调用你的后端API来获取AI配置
23655
+ // 例如:return await this.http.get('/api/ai-config');
23656
+ // 临时返回默认配置
23657
+ return [2 /*return*/, getAIConfig()];
23658
+ }
23659
+ catch (error) {
23660
+ console.error("Failed to get AI config from backend:", error);
23661
+ return [2 /*return*/, getAIConfig()];
23662
+ }
23663
+ return [2 /*return*/];
23664
+ });
23665
+ });
23666
+ }
23667
+
23668
+ /**
23669
+ * @fileoverview added by tsickle
23670
+ * Generated from: lib/form/richtexteditor/openapi.ts
23671
+ * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
23672
+ */
23673
+ // import { testAIFunction } from './ai-test';
23674
+ // testAIFunction();
23675
+ // 使用fetch API发送请求到Azure OpenAI
23676
+ /**
23677
+ * @param {?} messages
23678
+ * @param {?} config
23679
+ * @return {?}
23680
+ * @this {*}
23681
+ */
23682
+ function sendAIRequest(messages, config) {
23683
+ return __awaiter(this, void 0, void 0, function () {
23684
+ var url, url1, response, errorText, data, error_1;
23685
+ return __generator(this, function (_a) {
23686
+ switch (_a.label) {
23687
+ case 0:
23688
+ _a.trys.push([0, 5, , 6]);
23689
+ url = config.endpoint + "/openai/deployments/" + config.deployment + "/chat/completions?api-version=" + config.apiVersion;
23690
+ url1 = "" + config.endpoint;
23691
+ return [4 /*yield*/, fetch(url, {
23692
+ method: 'POST',
23693
+ headers: {
23694
+ 'Content-Type': 'application/json',
23695
+ 'api-key': config.apiKey,
23696
+ },
23697
+ body: JSON.stringify({
23698
+ messages: messages,
23699
+ max_tokens: 1000,
23700
+ temperature: 0.7,
23701
+ top_p: 1,
23702
+ frequency_penalty: 0,
23703
+ presence_penalty: 0,
23704
+ }),
23705
+ })];
23706
+ case 1:
23707
+ response = _a.sent();
23708
+ if (!!response.ok) return [3 /*break*/, 3];
23709
+ return [4 /*yield*/, response.text()];
23710
+ case 2:
23711
+ errorText = _a.sent();
23712
+ throw new Error("HTTP error! status: " + response.status + ", message: " + errorText);
23713
+ case 3: return [4 /*yield*/, response.json()];
23714
+ case 4:
23715
+ data = _a.sent();
23716
+ if (!data.choices || !data.choices[0] || !data.choices[0].message) {
23717
+ throw new Error('Invalid response format from AI service');
23718
+ }
23719
+ return [2 /*return*/, data.choices[0].message.content];
23720
+ case 5:
23721
+ error_1 = _a.sent();
23722
+ console.error('AI request failed:', error_1);
23723
+ throw error_1;
23724
+ case 6: return [2 /*return*/];
23725
+ }
23726
+ });
23727
+ });
23728
+ }
23729
+ // 备用方案:使用模拟数据(用于开发测试)
23730
+ /**
23731
+ * @param {?} subQuery
23732
+ * @param {?} promptQuery
23733
+ * @return {?}
23734
+ */
23735
+ function getMockAIResponse(subQuery, promptQuery) {
23736
+ var e_1, _a;
23737
+ /** @type {?} */
23738
+ var mockResponses = {
23739
+ Rephrase: "Rephrased: " + promptQuery,
23740
+ Grammar: "Corrected: " + promptQuery,
23741
+ Summarize: "Summary: " + promptQuery.substring(0, 100) + "...",
23742
+ Elaborate: "Elaborated: " + promptQuery + " with additional details and context.",
23743
+ Translate: "Translated: " + promptQuery,
23744
+ SentimentAnalysis: '😊 Positive',
23745
+ };
23746
+ try {
23747
+ for (var _b = __values(Object.entries(mockResponses)), _c = _b.next(); !_c.done; _c = _b.next()) {
23748
+ var _d = __read(_c.value, 2), key = _d[0], value = _d[1];
23749
+ if (subQuery.includes(key)) {
23750
+ return value;
23751
+ }
23752
+ }
23753
+ }
23754
+ catch (e_1_1) { e_1 = { error: e_1_1 }; }
23755
+ finally {
23756
+ try {
23757
+ if (_c && !_c.done && (_a = _b.return)) _a.call(_b);
23758
+ }
23759
+ finally { if (e_1) throw e_1.error; }
23760
+ }
23761
+ return "AI processed: " + promptQuery;
23762
+ }
23763
+ // 主要的AI请求方法
23764
+ /**
23765
+ * @param {?} subQuery
23766
+ * @param {?} promptQuery
23767
+ * @return {?}
23768
+ * @this {*}
23769
+ */
23770
+ function OpenAiModelRTE(subQuery, promptQuery) {
23771
+ return __awaiter(this, void 0, void 0, function () {
23772
+ var config, messages, result, error_2;
23773
+ return __generator(this, function (_a) {
23774
+ switch (_a.label) {
23775
+ case 0:
23776
+ _a.trys.push([0, 2, , 3]);
23777
+ config = getAIConfig();
23778
+ // 检查配置是否有效
23779
+ if (!isAIConfigValid(config)) {
23780
+ console.warn('AI configuration is incomplete or disabled, using mock response');
23781
+ return [2 /*return*/, getMockAIResponse(subQuery, promptQuery)];
23782
+ }
23783
+ messages = [
23784
+ {
23785
+ role: 'system',
23786
+ content: subQuery.includes('emoji followed by the sentiment in the format')
23787
+ ? 'You are a helpful assistant. Please respond in string format.'
23788
+ : "NOTE: Return same html format just do changes content only. don't change html formats.",
23789
+ },
23790
+ {
23791
+ role: 'user',
23792
+ content: subQuery + " " + promptQuery,
23793
+ },
23794
+ ];
23795
+ return [4 /*yield*/, sendAIRequest(messages, config)];
23796
+ case 1:
23797
+ result = _a.sent();
23798
+ return [2 /*return*/, result];
23799
+ case 2:
23800
+ error_2 = _a.sent();
23801
+ console.error('AI request failed, using mock response:', error_2);
23802
+ return [2 /*return*/, getMockAIResponse(subQuery, promptQuery)];
23803
+ case 3: return [2 /*return*/];
23804
+ }
23805
+ });
23806
+ });
23807
+ }
23808
+ // 兼容性方法(保持向后兼容)
23809
+ /**
23810
+ * @param {?} options
23811
+ * @return {?}
23812
+ * @this {*}
23813
+ */
23814
+ function getAzureChatAIRequest(options) {
23815
+ return __awaiter(this, void 0, void 0, function () {
23816
+ var config, result, err_1;
23817
+ return __generator(this, function (_a) {
23818
+ switch (_a.label) {
23819
+ case 0:
23820
+ _a.trys.push([0, 2, , 3]);
23821
+ config = getAIConfig();
23822
+ if (!isAIConfigValid(config)) {
23823
+ return [2 /*return*/, null];
23824
+ }
23825
+ return [4 /*yield*/, sendAIRequest(options.messages, config)];
23826
+ case 1:
23827
+ result = _a.sent();
23828
+ return [2 /*return*/, result];
23829
+ case 2:
23830
+ err_1 = _a.sent();
23831
+ console.error('Error occurred:', err_1);
23832
+ return [2 /*return*/, null];
23833
+ case 3: return [2 /*return*/];
23834
+ }
23835
+ });
23836
+ });
23837
+ }
23838
+ /**
23839
+ * @param {?} prompt
23840
+ * @return {?}
23841
+ * @this {*}
23842
+ */
23843
+ function getAzureTextAIRequest(prompt) {
23844
+ return __awaiter(this, void 0, void 0, function () {
23845
+ var config, messages, result, err_2;
23846
+ return __generator(this, function (_a) {
23847
+ switch (_a.label) {
23848
+ case 0:
23849
+ _a.trys.push([0, 2, , 3]);
23850
+ config = getAIConfig();
23851
+ if (!isAIConfigValid(config)) {
23852
+ return [2 /*return*/, undefined];
23853
+ }
23854
+ messages = [
23855
+ {
23856
+ role: 'user',
23857
+ content: prompt,
23858
+ },
23859
+ ];
23860
+ return [4 /*yield*/, sendAIRequest(messages, config)];
23861
+ case 1:
23862
+ result = _a.sent();
23863
+ return [2 /*return*/, result];
23864
+ case 2:
23865
+ err_2 = _a.sent();
23866
+ console.error('Error occurred:', err_2);
23867
+ return [2 /*return*/, undefined];
23868
+ case 3: return [2 /*return*/];
23869
+ }
23870
+ });
23871
+ });
23872
+ }
23873
+
23874
+ /**
23875
+ * @fileoverview added by tsickle
23876
+ * Generated from: lib/form/richtexteditor/data-config.ts
23877
+ * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
23878
+ */
23879
+ // font family
23880
+ /** @type {?} */
23881
+ var fontFamily = {
23882
+ default: "Arial",
23883
+ items: [
23884
+ {
23885
+ text: "Arial",
23886
+ value: "Arial, Helvetica, sans-serif",
23887
+ cssClass: "e-arial",
23888
+ command: "Font",
23889
+ subCommand: "FontName",
23890
+ },
23891
+ {
23892
+ text: "Times New Roman",
23893
+ value: "Times New Roman,Times,serif",
23894
+ cssClass: "e-times-new-roman",
23895
+ command: "Font",
23896
+ subCommand: "FontName",
23897
+ },
23898
+ {
23899
+ text: "Helvetica",
23900
+ value: "Helvetica",
23901
+ cssClass: "e-helvetica",
23902
+ command: "Font",
23903
+ subCommand: "FontName",
23904
+ },
23905
+ {
23906
+ text: "Calibri",
23907
+ value: "Calibri, Helvetica, sans-serif",
23908
+ cssClass: "e-calibri",
23909
+ command: "Font",
23910
+ subCommand: "FontName",
23911
+ },
23912
+ {
23913
+ text: "Verdana",
23914
+ value: "Verdana,Geneva,sans-serif",
23915
+ cssClass: "e-verdana",
23916
+ command: "Font",
23917
+ subCommand: "FontName",
23918
+ },
23919
+ {
23920
+ text: "Georgia",
23921
+ value: "Georgia,serif",
23922
+ cssClass: "e-georgia",
23923
+ command: "Font",
23924
+ subCommand: "FontName",
23925
+ },
23926
+ {
23927
+ text: "Open Sans",
23928
+ value: "Open Sans, sans-serif",
23929
+ cssClass: "e-open-sans",
23930
+ command: "Font",
23931
+ subCommand: "FontName",
23932
+ },
23933
+ {
23934
+ text: "Roboto",
23935
+ value: "Roboto",
23936
+ cssClass: "e-roboto",
23937
+ command: "Font",
23938
+ subCommand: "FontName",
23939
+ },
23940
+ {
23941
+ text: "Lato",
23942
+ value: "Lato, sans-serif",
23943
+ cssClass: "e-lato",
23944
+ command: "Font",
23945
+ subCommand: "FontName",
23946
+ },
23947
+ {
23948
+ text: "Montserrat",
23949
+ value: "Montserrat, sans-serif",
23950
+ cssClass: "e-montserrat",
23951
+ command: "Font",
23952
+ subCommand: "FontName",
23953
+ },
23954
+ {
23955
+ text: "Segoe UI",
23956
+ value: "Segoe UI",
23957
+ cssClass: "e-segoe-ui",
23958
+ command: "Font",
23959
+ subCommand: "FontName",
23960
+ },
23961
+ {
23962
+ text: "Impact",
23963
+ value: "Impact,Charcoal,sans-serif",
23964
+ cssClass: "e-impact",
23965
+ command: "Font",
23966
+ subCommand: "FontName",
23967
+ },
23968
+ ],
23969
+ };
23970
+ // line height配置
23971
+ /** @type {?} */
23972
+ var lineHeight_items = [
23973
+ {
23974
+ text: "1.0",
23975
+ },
23976
+ {
23977
+ text: "1.15",
23978
+ },
23979
+ {
23980
+ text: "1.5",
23981
+ },
23982
+ {
23983
+ text: "2.0",
23984
+ },
23985
+ {
23986
+ text: "2.5",
23987
+ },
23988
+ {
23989
+ text: "3.0",
23990
+ },
23991
+ ];
23992
+ /**
23993
+ * @record
23994
+ */
23995
+ function BulletStyle() { }
23996
+ if (false) {
23997
+ /** @type {?} */
23998
+ BulletStyle.prototype.id;
23999
+ /** @type {?} */
24000
+ BulletStyle.prototype.text;
24001
+ /** @type {?} */
24002
+ BulletStyle.prototype.symbol;
24003
+ /** @type {?} */
24004
+ BulletStyle.prototype.iconCss;
24005
+ /** @type {?} */
24006
+ BulletStyle.prototype.description;
24007
+ }
24008
+ /** @type {?} */
24009
+ var BULLET_STYLES = [
24010
+ {
24011
+ id: "disc",
24012
+ text: "● 实心圆点",
24013
+ symbol: "●",
24014
+ iconCss: "e-icons e-bullet-disc",
24015
+ description: "标准实心圆点",
24016
+ },
24017
+ {
24018
+ id: "circle",
24019
+ text: "○ 空心圆点",
24020
+ symbol: "○",
24021
+ iconCss: "e-icons e-bullet-circle",
24022
+ description: "空心圆点",
24023
+ },
24024
+ {
24025
+ id: "square",
24026
+ text: "■ 实心方块",
24027
+ symbol: "■",
24028
+ iconCss: "e-icons e-bullet-square",
24029
+ description: "实心方块",
24030
+ },
24031
+ {
24032
+ id: "diamond",
24033
+ text: "◆ 实心菱形",
24034
+ symbol: "◆",
24035
+ iconCss: "e-icons e-bullet-diamond",
24036
+ description: "实心菱形",
24037
+ },
24038
+ {
24039
+ id: "triangle",
24040
+ text: "► 实心三角",
24041
+ symbol: "►",
24042
+ iconCss: "e-icons e-bullet-triangle",
24043
+ description: "实心三角形",
24044
+ },
24045
+ {
24046
+ id: "arrow",
24047
+ text: "➤ 箭头",
24048
+ symbol: "➤",
24049
+ iconCss: "e-icons e-bullet-arrow",
24050
+ description: "箭头符号",
24051
+ },
24052
+ {
24053
+ id: "star",
24054
+ text: "★ 星形",
24055
+ symbol: "★",
24056
+ iconCss: "e-icons e-bullet-star",
24057
+ description: "星形符号",
24058
+ },
24059
+ {
24060
+ id: "check",
24061
+ text: "✓ 对勾",
24062
+ symbol: "✓",
24063
+ iconCss: "e-icons e-bullet-check",
24064
+ description: "对勾符号",
24065
+ },
24066
+ {
24067
+ id: "heart",
24068
+ text: "♥ 心形",
24069
+ symbol: "♥",
24070
+ iconCss: "e-icons e-bullet-heart",
24071
+ description: "心形符号",
24072
+ },
24073
+ {
24074
+ id: "bullet",
24075
+ text: "• 小圆点",
24076
+ symbol: "•",
24077
+ iconCss: "e-icons e-bullet-bullet",
24078
+ description: "小圆点",
24079
+ },
24080
+ ];
24081
+ // 获取符号样式
24082
+ /**
24083
+ * @param {?} id
24084
+ * @return {?}
24085
+ */
24086
+ function getBulletStyle(id) {
24087
+ return BULLET_STYLES.find((/**
24088
+ * @param {?} style
24089
+ * @return {?}
24090
+ */
24091
+ function (style) { return style.id === id; }));
24092
+ }
24093
+ // 获取所有符号样式
24094
+ /**
24095
+ * @return {?}
24096
+ */
24097
+ function getAllBulletStyles() {
24098
+ return BULLET_STYLES;
24099
+ }
24100
+ // 应用符号样式到列表
24101
+ /**
24102
+ * @param {?} ul
24103
+ * @param {?} style
24104
+ * @return {?}
24105
+ */
24106
+ function applyBulletStyle(ul, style) {
24107
+ if (style.id === "disc" || style.id === "circle" || style.id === "square") {
24108
+ // 使用CSS list-style-type
24109
+ ul.style.listStyleType = style.id;
24110
+ // 移除自定义符号
24111
+ ul.querySelectorAll(".custom-bullet").forEach((/**
24112
+ * @param {?} bullet
24113
+ * @return {?}
24114
+ */
24115
+ function (bullet) { return bullet.remove(); }));
24116
+ }
24117
+ else {
24118
+ // 使用自定义符号
24119
+ ul.style.listStyleType = "none";
24120
+ ul.setAttribute("data-bullet-style", style.id);
24121
+ /** @type {?} */
24122
+ var listItems = ul.querySelectorAll("li");
24123
+ listItems.forEach((/**
24124
+ * @param {?} li
24125
+ * @return {?}
24126
+ */
24127
+ function (li) {
24128
+ // 移除现有的自定义符号
24129
+ /** @type {?} */
24130
+ var existingBullet = li.querySelector(".custom-bullet");
24131
+ if (existingBullet) {
24132
+ existingBullet.remove();
24133
+ }
24134
+ // 添加新的自定义符号
24135
+ /** @type {?} */
24136
+ var bullet = document.createElement("span");
24137
+ bullet.className = "custom-bullet";
24138
+ bullet.textContent = style.symbol;
24139
+ bullet.style.marginRight = "8px";
24140
+ bullet.style.color = "#666";
24141
+ // 将符号插入到列表项的开头
24142
+ li.insertBefore(bullet, li.firstChild);
24143
+ }));
24144
+ }
24145
+ }
24146
+
24147
+ /**
24148
+ * @fileoverview added by tsickle
24149
+ * Generated from: lib/form/richtexteditor/index.component.ts
24150
+ * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
24151
+ */
24152
+ var RichtexteditorComponent = /** @class */ (function () {
24153
+ function RichtexteditorComponent(ref) {
24154
+ this.ref = ref;
24155
+ // @ViewChild("chipList", { static: false }) public chipList!: ChipListComponent;
24156
+ this.placeholder = "";
24157
+ this.value = "";
24158
+ this.height = 150;
24159
+ this.autoSaveOnIdle = true;
24160
+ this.target = "#container"; // dialog 弹窗父级
24161
+ // dialog 弹窗父级
24162
+ this.toolbarClick = new EventEmitter();
24163
+ this.change = new EventEmitter();
24164
+ // @Output() change = new EventEmitter();
24165
+ this.family = fontFamily;
24166
+ this.dialogWidth = "800px";
24167
+ this.dialogHeight = "642px";
24168
+ this.showZoomBtn = true;
24169
+ this.showMsg = false;
24170
+ this.insertImageSettings = {
24171
+ saveFormat: "Blob",
24172
+ allowedTypes: [".svg", ".png"],
24173
+ display: "none",
24174
+ };
24175
+ this.size = "";
24176
+ this.dropValIndex = 0;
24177
+ this.queryList = [
24178
+ { id: "Rephrase", text: "Rephrase" },
24179
+ { id: "Grammar", text: "Correct Grammar" },
24180
+ { id: "Summarize", text: "Summarize" },
24181
+ { id: "Elaborate", text: "Elaborate" },
24182
+ { id: "Translate", text: "Translate" },
24183
+ { id: "SentimentAnalysis", text: "Sentiment Analysis" },
24184
+ ];
24185
+ this.rephraseTyleList = [
24186
+ { text: "Standard", id: "Standard" },
24187
+ { text: "Fluent", id: "Fluent" },
24188
+ { text: "Professional", id: "Professional" },
24189
+ ];
24190
+ this.languageList = [
24191
+ { id: "EN", text: "English" },
24192
+ { id: "ZH", text: "Chinese (Simplified)" },
24193
+ { id: "ES", text: "Spanish" },
24194
+ { id: "ZHT", text: "Chinese (Traditional)" },
24195
+ { id: "HI", text: "Hindi" },
24196
+ { id: "AR", text: "Arabic" },
24197
+ { id: "BN", text: "Bengali" },
24198
+ { id: "PT", text: "Portuguese" },
24199
+ { id: "RU", text: "Russian" },
24200
+ { id: "JA", text: "Japanese" },
24201
+ { id: "DE", text: "German" },
24202
+ { id: "KO", text: "Korean" },
24203
+ { id: "FR", text: "French" },
24204
+ { id: "IT", text: "Italian" },
24205
+ { id: "TR", text: "Turkish" },
24206
+ ];
24207
+ this.promptQuery = "";
24208
+ this.isSentimentCheck = false;
24209
+ this.subQuery = "";
24210
+ this.chipValue = "Standard";
24211
+ this.tools = {
24212
+ enableFloating: false,
24213
+ items: [
24214
+ {
24215
+ tooltipText: "AI Assist",
24216
+ 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>',
24217
+ },
24218
+ "Bold",
24219
+ "Italic",
24220
+ "Underline",
24221
+ "StrikeThrough",
24222
+ "FontName",
24223
+ "FontSize",
24224
+ "FontColor",
24225
+ "BackgroundColor",
24226
+ "LowerCase",
24227
+ "UpperCase",
24228
+ "|",
24229
+ "CreateTable",
24230
+ "Formats",
24231
+ "Alignments",
24232
+ {
24233
+ tooltipText: "Line Height",
24234
+ template: '<button class="e-tbar-btn e-btn" tabindex="-1" id="lineheight_tbar" style="width:100%"></button>',
24235
+ },
24236
+ "OrderedList",
24237
+ "UnorderedList",
24238
+ "Outdent",
24239
+ "Indent",
24240
+ "|",
24241
+ "CreateLink",
24242
+ {
24243
+ tooltipText: "",
24244
+ template: '<button class="e-tbar-btn e-btn" tabindex="-1" id="custom_tbar" style="width:100%">' +
24245
+ '<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>',
24246
+ },
24247
+ "|",
24248
+ "FormatPainter",
24249
+ "ClearFormat",
24250
+ "|",
24251
+ "Undo",
24252
+ "Redo",
24253
+ ],
24254
+ };
24255
+ }
24256
+ /**
24257
+ * @return {?}
24258
+ */
24259
+ RichtexteditorComponent.prototype.ngOnInit = /**
24260
+ * @return {?}
24261
+ */
24262
+ function () { };
24263
+ /**
24264
+ * @param {?} args
24265
+ * @return {?}
24266
+ */
24267
+ RichtexteditorComponent.prototype.onContentChange = /**
24268
+ * @param {?} args
24269
+ * @return {?}
24270
+ */
24271
+ function (args) {
24272
+ /** @type {?} */
24273
+ var tables = document.querySelectorAll("table.e-rte-table");
24274
+ tables.forEach((/**
24275
+ * @param {?} table
24276
+ * @return {?}
24277
+ */
24278
+ function (table) {
24279
+ /** @type {?} */
24280
+ var htmlTable = (/** @type {?} */ (table));
24281
+ htmlTable.style.marginBottom = "10px";
24282
+ htmlTable.style.borderCollapse = "collapse";
24283
+ htmlTable.style.emptyCells = "show";
24284
+ /** @type {?} */
24285
+ var tdElements = table.querySelectorAll("td");
24286
+ tdElements.forEach((/**
24287
+ * @param {?} td
24288
+ * @return {?}
24289
+ */
24290
+ function (td) {
24291
+ td.style.border = "1px solid #adb5bd";
24292
+ td.style.height = "20px";
24293
+ td.style.minWidth = "20px";
24294
+ td.style.padding = "2px 5px";
24295
+ td.style.boxSizing = "border-box";
24296
+ }));
24297
+ }));
24298
+ this.change.emit(args);
24299
+ };
24300
+ /**
24301
+ * @return {?}
24302
+ */
24303
+ RichtexteditorComponent.prototype.onCreate = /**
24304
+ * @return {?}
24305
+ */
24306
+ function () {
24307
+ var _this = this;
24308
+ //bind the a click event
24309
+ // let editorContent = this.rteObj.contentModule.getEditPanel() as HTMLElement;
24310
+ // editorContent.addEventListener('click', this.OnClicked.bind(this));
24311
+ //add the line height
24312
+ this.editorManager = this.rteObj.formatter.editorManager;
24313
+ /** @type {?} */
24314
+ var splitButton = new DropDownButton({
24315
+ items: lineHeight_items,
24316
+ iconCss: "e-icons e-line-spacing",
24317
+ select: this.onSelect.bind(this),
24318
+ });
24319
+ splitButton.appendTo("#lineheight_tbar");
24320
+ // ai assist
24321
+ /** @type {?} */
24322
+ var aiassistantButton = new DropDownButton({
24323
+ items: this.queryList,
24324
+ // iconCss: "e-btn-icon e-icons e-assistview-icon e-icon-left",
24325
+ select: (/**
24326
+ * @param {?} args
24327
+ * @return {?}
24328
+ */
24329
+ function (args) { return _this.aiQuerySelectedMenu(args); }),
24330
+ });
24331
+ aiassistantButton.appendTo("#ai_assistant_button_tbar");
24332
+ };
24333
+ /**
24334
+ * @private
24335
+ * @param {?} args
24336
+ * @return {?}
24337
+ */
24338
+ RichtexteditorComponent.prototype.onSelect = /**
24339
+ * @private
24340
+ * @param {?} args
24341
+ * @return {?}
24342
+ */
24343
+ function (args) {
24344
+ if (this.rteObj.formatter.getUndoRedoStack().length === 0) {
24345
+ this.rteObj.formatter.saveData();
24346
+ }
24347
+ /** @type {?} */
24348
+ var nodes = this.editorManager.domNode.blockNodes();
24349
+ for (var i = 0; nodes.length > i; i++) {
24350
+ ((/** @type {?} */ (nodes[i]))).style.lineHeight = args.item.text;
24351
+ }
24352
+ this.rteObj.formatter.saveData();
24353
+ this.rteObj.formatter.enableUndo(this.rteObj);
24354
+ };
24355
+ /**
24356
+ * @private
24357
+ * @param {?} args
24358
+ * @return {?}
24359
+ */
24360
+ RichtexteditorComponent.prototype.aiQuerySelectedMenu = /**
24361
+ * @private
24362
+ * @param {?} args
24363
+ * @return {?}
24364
+ */
24365
+ function (args) {
24366
+ this.dialogueOpen(args.item.text);
24367
+ };
24368
+ /**
24369
+ * @param {?} selectedQuery
24370
+ * @return {?}
24371
+ */
24372
+ RichtexteditorComponent.prototype.dialogueOpen = /**
24373
+ * @param {?} selectedQuery
24374
+ * @return {?}
24375
+ */
24376
+ function (selectedQuery) {
24377
+ var _this = this;
24378
+ /** @type {?} */
24379
+ var selectionText = this.rteObj.getSelectedHtml();
24380
+ this.selectedQuery = selectedQuery;
24381
+ if (selectionText) {
24382
+ /** @type {?} */
24383
+ var range = ((/** @type {?} */ (this.rteObj))).formatter.editorManager.nodeSelection.getRange(((/** @type {?} */ (this.rteObj))).contentModule.getDocument());
24384
+ ((/** @type {?} */ (this.rteObj))).formatter.editorManager.nodeSelection.save(range, ((/** @type {?} */ (this.rteObj))).contentModule.getDocument());
24385
+ this.dropValIndex = this.queryList.findIndex((/**
24386
+ * @param {?} q
24387
+ * @return {?}
24388
+ */
24389
+ function (q) { return q.text.toLowerCase() === selectedQuery.toLowerCase(); }));
24390
+ this.queryCategory.index = this.dropValIndex;
24391
+ this.leftRte.value = this.promptQuery = selectionText;
24392
+ this.leftRte.refreshUI();
24393
+ this.AIdialog.show();
24394
+ this.updateAISugesstionsData(selectedQuery);
24395
+ }
24396
+ else {
24397
+ this.showMsg = true;
24398
+ setTimeout((/**
24399
+ * @return {?}
24400
+ */
24401
+ function () {
24402
+ _this.showMsg = false;
24403
+ }), 3000);
24404
+ console.log("Please select the content to perform the AI operation.");
24405
+ }
24406
+ };
24407
+ /**
24408
+ * @param {?} selectedQuery
24409
+ * @return {?}
24410
+ */
24411
+ RichtexteditorComponent.prototype.updateAISugesstionsData = /**
24412
+ * @param {?} selectedQuery
24413
+ * @return {?}
24414
+ */
24415
+ function (selectedQuery) {
24416
+ this.isSentimentCheck = false;
24417
+ switch (selectedQuery) {
24418
+ case "Summarize":
24419
+ this.subQuery = "Summarize the upcoming sentence shortly.";
24420
+ break;
24421
+ case "Elaborate":
24422
+ this.subQuery = "Elaborate on the upcoming sentence.";
24423
+ break;
24424
+ case "Rephrase":
24425
+ this.subQuery = this.chipValue + " rephrase the upcoming sentence.";
24426
+ break;
24427
+ case "Correct Grammar":
24428
+ this.subQuery = "Correct the grammar of the upcoming sentence.";
24429
+ break;
24430
+ case "Translate":
24431
+ this.subQuery =
24432
+ "Translate the upcoming sentence to " + this.translatelanguage + ".";
24433
+ break;
24434
+ case "Sentiment Analysis":
24435
+ this.isSentimentCheck = true;
24436
+ this.subQuery =
24437
+ '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:';
24438
+ break;
24439
+ }
24440
+ this.updateAISugesstions();
24441
+ };
24442
+ /**
24443
+ * @return {?}
24444
+ */
24445
+ RichtexteditorComponent.prototype.updateAISugesstions = /**
24446
+ * @return {?}
24447
+ */
24448
+ function () {
24449
+ var _this = this;
24450
+ try {
24451
+ if (this.promptQuery) {
24452
+ ((/** @type {?} */ (document.getElementById("skeletonId")))).style.display =
24453
+ "";
24454
+ ((/** @type {?} */ (document.getElementById("rightRte")))).style.display =
24455
+ "none";
24456
+ this.sentimentButton.element.style.display = "none";
24457
+ this.regenerateButton.disabled = true;
24458
+ this.copyButton.disabled = true;
24459
+ this.replaceButton.disabled = true;
24460
+ this.apiResultData = this.getResponseFromOpenAI(this.subQuery, this.promptQuery);
24461
+ this.apiResultData.then((/**
24462
+ * @param {?} result
24463
+ * @return {?}
24464
+ */
24465
+ function (result) {
24466
+ _this.AIResult = _this.isSentimentCheck ? _this.promptQuery : result;
24467
+ _this.sentimentButton.content = result
24468
+ .toLowerCase()
24469
+ .includes("positive")
24470
+ ? "😊 Positive"
24471
+ : result.toLowerCase().includes("negative")
24472
+ ? "😞 Negative"
24473
+ : "😐 Neutral";
24474
+ _this.sentimentButton.element.style.display = !_this.isSentimentCheck
24475
+ ? "none"
24476
+ : "";
24477
+ _this.rightRte.value = _this.AIResult;
24478
+ /** @type {?} */
24479
+ var noResultsFound = !(_this.AIResult || _this.promptQuery);
24480
+ ((/** @type {?} */ (document.getElementById("no-results-found")))).style.display = noResultsFound ? "" : "none";
24481
+ _this.regenerateButton.disabled = noResultsFound;
24482
+ _this.copyButton.disabled = noResultsFound;
24483
+ _this.replaceButton.disabled = noResultsFound;
24484
+ ((/** @type {?} */ (document.getElementById("skeletonId")))).style.display =
24485
+ "none";
24486
+ ((/** @type {?} */ (document.getElementById("rightRte")))).style.display =
24487
+ noResultsFound ? "none" : "";
24488
+ console.log(noResultsFound, ((/** @type {?} */ (document.getElementById("rightRte")))).style);
24489
+ // this.ref.markForCheck();
24490
+ }));
24491
+ }
24492
+ }
24493
+ catch (_a) {
24494
+ // this.toastObj.show();
24495
+ }
24496
+ };
24497
+ /**
24498
+ * @param {?} subQuery
24499
+ * @param {?} promptQuery
24500
+ * @return {?}
24501
+ */
24502
+ RichtexteditorComponent.prototype.getResponseFromOpenAI = /**
24503
+ * @param {?} subQuery
24504
+ * @param {?} promptQuery
24505
+ * @return {?}
24506
+ */
24507
+ function (subQuery, promptQuery) {
24508
+ return __awaiter(this, void 0, void 0, function () {
24509
+ var content;
24510
+ return __generator(this, function (_a) {
24511
+ switch (_a.label) {
24512
+ case 0: return [4 /*yield*/, OpenAiModelRTE(subQuery, promptQuery)];
24513
+ case 1:
24514
+ content = _a.sent();
24515
+ return [2 /*return*/, content ? ((/** @type {?} */ (content))) : ""];
24516
+ }
24517
+ });
24518
+ });
24519
+ };
24520
+ /**
24521
+ * @return {?}
24522
+ */
24523
+ RichtexteditorComponent.prototype.dialogShow = /**
24524
+ * @return {?}
24525
+ */
24526
+ function () {
24527
+ var _this = this;
24528
+ (/** @type {?} */ (this.regenerateButton)).element.addEventListener("click", (/**
24529
+ * @return {?}
24530
+ */
24531
+ function () {
24532
+ _this.updateAISugesstions();
24533
+ }));
24534
+ (/** @type {?} */ (this.copyButton)).element.addEventListener("click", (/**
24535
+ * @return {?}
24536
+ */
24537
+ function () {
24538
+ _this.copyTextToClipboard(_this.AIResult);
24539
+ }));
24540
+ (/** @type {?} */ (this.replaceButton)).element.addEventListener("click", (/**
24541
+ * @return {?}
24542
+ */
24543
+ function () {
24544
+ /** @type {?} */
24545
+ var range = ((/** @type {?} */ (_this.rteObj))).formatter.editorManager.nodeSelection.getRange(((/** @type {?} */ (_this.rteObj))).contentModule.getDocument());
24546
+ ((/** @type {?} */ (_this.rteObj))).formatter.editorManager.nodeSelection.restore(range);
24547
+ ((/** @type {?} */ (_this.rteObj))).executeCommand("insertHTML", _this.AIResult, {
24548
+ undo: true,
24549
+ });
24550
+ _this.closeDialog();
24551
+ }));
24552
+ ((/** @type {?} */ (this.AIdialog))).element.style.display = "";
24553
+ };
24554
+ /**
24555
+ * @return {?}
24556
+ */
24557
+ RichtexteditorComponent.prototype.closeDialog = /**
24558
+ * @return {?}
24559
+ */
24560
+ function () {
24561
+ this.AIdialog.hide();
24562
+ this.rightRte.value = "";
24563
+ this.leftRte.value = "";
24564
+ this.promptQuery = "";
24565
+ this.chipValue = "Standard";
24566
+ this.AIResult = "";
24567
+ this.dropValIndex = 0;
24568
+ this.selectedQuery = "Rephrase";
24569
+ this.sentimentButton.content = "😊 Neutral";
24570
+ };
24571
+ /**
24572
+ * @param {?} text
24573
+ * @return {?}
24574
+ */
24575
+ RichtexteditorComponent.prototype.copyTextToClipboard = /**
24576
+ * @param {?} text
24577
+ * @return {?}
24578
+ */
24579
+ function (text) {
24580
+ if (navigator.clipboard) {
24581
+ navigator.clipboard
24582
+ .writeText(text)
24583
+ .then((/**
24584
+ * @return {?}
24585
+ */
24586
+ function () {
24587
+ console.log("Text copied to clipboard successfully!");
24588
+ }))
24589
+ .catch((/**
24590
+ * @param {?} err
24591
+ * @return {?}
24592
+ */
24593
+ function (err) {
24594
+ console.error("Failed to copy text: ", err);
24595
+ }));
24596
+ }
24597
+ else {
24598
+ // Fallback for browsers that do not support the Clipboard API
24599
+ /** @type {?} */
24600
+ var textarea = document.createElement("textarea");
24601
+ textarea.value = text;
24602
+ document.body.appendChild(textarea);
24603
+ textarea.select();
24604
+ try {
24605
+ document.execCommand("copy");
24606
+ console.log("Text copied to clipboard using execCommand");
24607
+ }
24608
+ catch (err) {
24609
+ console.error("Failed to copy text: ", err);
24610
+ }
24611
+ finally {
24612
+ document.body.removeChild(textarea);
24613
+ }
24614
+ }
24615
+ };
24616
+ /**
24617
+ * @return {?}
24618
+ */
24619
+ RichtexteditorComponent.prototype.onOverlayClick = /**
24620
+ * @return {?}
24621
+ */
24622
+ function () {
24623
+ /** @type {?} */
24624
+ var activeEle = this.AIdialog.element.querySelector(".char_block.e-active");
24625
+ if (activeEle) {
24626
+ activeEle.classList.remove("e-active");
24627
+ }
24628
+ this.closeDialog();
24629
+ };
24630
+ /**
24631
+ * @param {?} args
24632
+ * @return {?}
24633
+ */
24634
+ RichtexteditorComponent.prototype.onQuerySelect = /**
24635
+ * @param {?} args
24636
+ * @return {?}
24637
+ */
24638
+ function (args) {
24639
+ // this.chipList.selectedChips = 0;
24640
+ this.translatelanguage = "EN";
24641
+ this.selectedQuery = args.itemData.text;
24642
+ this.updateAISugesstionsData(args.itemData.text);
24643
+ };
24644
+ /**
24645
+ * @param {?} args
24646
+ * @return {?}
24647
+ */
24648
+ RichtexteditorComponent.prototype.onLanguageSelect = /**
24649
+ * @param {?} args
24650
+ * @return {?}
24651
+ */
24652
+ function (args) {
24653
+ this.translatelanguage = args.itemData.id;
24654
+ this.updateAISugesstionsData("Translate");
24655
+ };
24656
+ /**
24657
+ * @param {?} args
24658
+ * @return {?}
24659
+ */
24660
+ RichtexteditorComponent.prototype.onChipClick = /**
24661
+ * @param {?} args
24662
+ * @return {?}
24663
+ */
24664
+ function (args) {
24665
+ this.chipValue = args.itemData.text;
24666
+ // 事件会触发两次 必须判断args.text是否有值
24667
+ if (args.itemData.text)
24668
+ this.updateAISugesstionsData("Rephrase");
24669
+ };
24670
+ /**
24671
+ * @param {?} args
24672
+ * @return {?}
24673
+ */
24674
+ RichtexteditorComponent.prototype._toolbarClick = /**
24675
+ * @param {?} args
24676
+ * @return {?}
24677
+ */
24678
+ function (args) {
24679
+ this.toolbarClick.emit(args);
24680
+ };
24681
+ /**
24682
+ * @return {?}
24683
+ */
24684
+ RichtexteditorComponent.prototype.hideToast = /**
24685
+ * @return {?}
24686
+ */
24687
+ function () {
24688
+ this.showMsg = false;
24689
+ };
24690
+ /**
24691
+ * @return {?}
24692
+ */
24693
+ RichtexteditorComponent.prototype.onZoom = /**
24694
+ * @return {?}
24695
+ */
24696
+ function () {
24697
+ if (this.size === "largest") {
24698
+ this.size = ""; // 恢复到原始大小
24699
+ }
24700
+ else {
24701
+ this.size = "largest"; // 设置为最大化
24702
+ }
24703
+ };
24704
+ RichtexteditorComponent.decorators = [
24705
+ { type: Component, args: [{
24706
+ selector: "rs-richtext-editor",
24707
+ 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",
24708
+ 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(../../../assets/img/info.svg);display:inline-block;width:16px;height:16px;vertical-align:bottom;margin-right:8px}.editor_box .toast .close_icon{background-image:url(../../../assets/img/notification-close.svg);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:0 solid #dee2e6!important}.custom-dialog-rte .dialog-content .custom-row-0{border-top:0 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(../../../assets/img/editor-copy.svg);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}"]
24709
+ }] }
24710
+ ];
24711
+ /** @nocollapse */
24712
+ RichtexteditorComponent.ctorParameters = function () { return [
24713
+ { type: ChangeDetectorRef }
24714
+ ]; };
24715
+ RichtexteditorComponent.propDecorators = {
24716
+ rteObj: [{ type: ViewChild, args: ["editor", { static: false },] }],
24717
+ queryCategory: [{ type: ViewChild, args: ["queryCategory", { static: false },] }],
24718
+ leftRte: [{ type: ViewChild, args: ["leftRte", { static: false },] }],
24719
+ rightRte: [{ type: ViewChild, args: ["rightRte", { static: false },] }],
24720
+ AIdialog: [{ type: ViewChild, args: ["AIdialog", { static: true },] }],
24721
+ sentimentButton: [{ type: ViewChild, args: ["sentimentButton", { static: false },] }],
24722
+ regenerateButton: [{ type: ViewChild, args: ["regenerateButton", { static: false },] }],
24723
+ copyButton: [{ type: ViewChild, args: ["copyButton", { static: false },] }],
24724
+ replaceButton: [{ type: ViewChild, args: ["replaceButton", { static: false },] }],
24725
+ placeholder: [{ type: Input }],
24726
+ value: [{ type: Input }],
24727
+ height: [{ type: Input }],
24728
+ autoSaveOnIdle: [{ type: Input }],
24729
+ target: [{ type: Input }],
24730
+ toolbarClick: [{ type: Output }],
24731
+ change: [{ type: Output }]
24732
+ };
24733
+ return RichtexteditorComponent;
24734
+ }());
24735
+ if (false) {
24736
+ /** @type {?} */
24737
+ RichtexteditorComponent.prototype.rteObj;
24738
+ /** @type {?} */
24739
+ RichtexteditorComponent.prototype.queryCategory;
24740
+ /** @type {?} */
24741
+ RichtexteditorComponent.prototype.leftRte;
24742
+ /** @type {?} */
24743
+ RichtexteditorComponent.prototype.rightRte;
24744
+ /** @type {?} */
24745
+ RichtexteditorComponent.prototype.AIdialog;
24746
+ /** @type {?} */
24747
+ RichtexteditorComponent.prototype.sentimentButton;
24748
+ /** @type {?} */
24749
+ RichtexteditorComponent.prototype.regenerateButton;
24750
+ /** @type {?} */
24751
+ RichtexteditorComponent.prototype.copyButton;
24752
+ /** @type {?} */
24753
+ RichtexteditorComponent.prototype.replaceButton;
24754
+ /** @type {?} */
24755
+ RichtexteditorComponent.prototype.placeholder;
24756
+ /** @type {?} */
24757
+ RichtexteditorComponent.prototype.value;
24758
+ /** @type {?} */
24759
+ RichtexteditorComponent.prototype.height;
24760
+ /** @type {?} */
24761
+ RichtexteditorComponent.prototype.autoSaveOnIdle;
24762
+ /** @type {?} */
24763
+ RichtexteditorComponent.prototype.target;
24764
+ /** @type {?} */
24765
+ RichtexteditorComponent.prototype.toolbarClick;
24766
+ /** @type {?} */
24767
+ RichtexteditorComponent.prototype.change;
24768
+ /** @type {?} */
24769
+ RichtexteditorComponent.prototype.family;
24770
+ /** @type {?} */
24771
+ RichtexteditorComponent.prototype.dialogWidth;
24772
+ /** @type {?} */
24773
+ RichtexteditorComponent.prototype.dialogHeight;
24774
+ /** @type {?} */
24775
+ RichtexteditorComponent.prototype.showZoomBtn;
24776
+ /** @type {?} */
24777
+ RichtexteditorComponent.prototype.showMsg;
24778
+ /** @type {?} */
24779
+ RichtexteditorComponent.prototype.insertImageSettings;
24780
+ /** @type {?} */
24781
+ RichtexteditorComponent.prototype.editorManager;
24782
+ /** @type {?} */
24783
+ RichtexteditorComponent.prototype.size;
24784
+ /** @type {?} */
24785
+ RichtexteditorComponent.prototype.selectedQuery;
24786
+ /** @type {?} */
24787
+ RichtexteditorComponent.prototype.dropValIndex;
24788
+ /** @type {?} */
24789
+ RichtexteditorComponent.prototype.queryList;
24790
+ /** @type {?} */
24791
+ RichtexteditorComponent.prototype.rephraseTyleList;
24792
+ /** @type {?} */
24793
+ RichtexteditorComponent.prototype.languageList;
24794
+ /** @type {?} */
24795
+ RichtexteditorComponent.prototype.promptQuery;
24796
+ /** @type {?} */
24797
+ RichtexteditorComponent.prototype.isSentimentCheck;
24798
+ /** @type {?} */
24799
+ RichtexteditorComponent.prototype.subQuery;
24800
+ /** @type {?} */
24801
+ RichtexteditorComponent.prototype.translatelanguage;
24802
+ /** @type {?} */
24803
+ RichtexteditorComponent.prototype.chipValue;
24804
+ /** @type {?} */
24805
+ RichtexteditorComponent.prototype.apiResultData;
24806
+ /** @type {?} */
24807
+ RichtexteditorComponent.prototype.AIResult;
24808
+ /** @type {?} */
24809
+ RichtexteditorComponent.prototype.tools;
24810
+ /**
24811
+ * @type {?}
24812
+ * @private
24813
+ */
24814
+ RichtexteditorComponent.prototype.ref;
24815
+ }
24816
+
23514
24817
  /**
23515
24818
  * @fileoverview added by tsickle
23516
24819
  * Generated from: lib/raise-common-lib.module.ts
@@ -23537,6 +24840,7 @@ var RaiseCommonLibModule = /** @class */ (function () {
23537
24840
  TagInputComponent,
23538
24841
  RadioGroupComponent,
23539
24842
  CheckboxGroupComponent,
24843
+ RichtexteditorComponent,
23540
24844
  SwitchInputComponent,
23541
24845
  EncryptedInputComponent,
23542
24846
  SearchInputComponent,
@@ -23570,6 +24874,7 @@ var RaiseCommonLibModule = /** @class */ (function () {
23570
24874
  CheckBoxModule,
23571
24875
  RadioButtonModule,
23572
24876
  ButtonModule,
24877
+ ChipListModule,
23573
24878
  DiagramModule,
23574
24879
  TooltipModule,
23575
24880
  DialogModule,
@@ -23654,6 +24959,7 @@ var RaiseCommonLibModule = /** @class */ (function () {
23654
24959
  CheckBoxModule,
23655
24960
  RadioButtonModule,
23656
24961
  ButtonModule,
24962
+ ChipListModule,
23657
24963
  DiagramModule,
23658
24964
  TooltipModule,
23659
24965
  DialogModule,
@@ -23699,6 +25005,7 @@ var RaiseCommonLibModule = /** @class */ (function () {
23699
25005
  TagInputComponent,
23700
25006
  RadioGroupComponent,
23701
25007
  CheckboxGroupComponent,
25008
+ RichtexteditorComponent,
23702
25009
  SwitchInputComponent,
23703
25010
  EncryptedInputComponent,
23704
25011
  SearchInputComponent,
@@ -23735,5 +25042,5 @@ var RaiseCommonLibModule = /** @class */ (function () {
23735
25042
  * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
23736
25043
  */
23737
25044
 
23738
- export { CheckboxGroupComponent, CommonDialogComponent, CommonFunctionService, CommonGridComponent, DefaultDrawerConfig, DialogService, DrawerComponent, DrawerFormComponent, DrawerService, EmailPattern, EncryptedInputComponent, FloatBoxComponent, GridActionComponent, GridActionItemComponent, GridBoxComponent, IconLoaderService, KeepAliveService, MainContainerComponent, MessageType, MultiTabComponent, RSAsideComponent, RSFooterComponent, RSHeaderComponent, RSNavCardGroupComponent, RSToolbarComponent, RadioGroupComponent, RaiseCommonLibModule, RsCommentaryComponent, RsPageListComponent, RsPageTabComponent, SearchInputComponent, SwitchInputComponent, TagInputComponent, ToolbarItemComponent, TranslationService, TruncatedTextToggleComponent, filterShowSection, Debounce as ɵa, ConfirmSelectComponent as ɵb, NewActionNotificationComponent as ɵc, CommonDeleteComponent as ɵd };
25045
+ export { CheckboxGroupComponent, CommonDialogComponent, CommonFunctionService, CommonGridComponent, DefaultDrawerConfig, DialogService, DrawerComponent, DrawerFormComponent, DrawerService, EmailPattern, EncryptedInputComponent, FloatBoxComponent, GridActionComponent, GridActionItemComponent, GridBoxComponent, IconLoaderService, KeepAliveService, MainContainerComponent, MessageType, MultiTabComponent, RSAsideComponent, RSFooterComponent, RSHeaderComponent, RSNavCardGroupComponent, RSToolbarComponent, RadioGroupComponent, RaiseCommonLibModule, RsCommentaryComponent, RsPageListComponent, RsPageTabComponent, SearchInputComponent, SwitchInputComponent, TagInputComponent, ToolbarItemComponent, TranslationService, TruncatedTextToggleComponent, filterShowSection, Debounce as ɵa, RichtexteditorComponent as ɵb, ConfirmSelectComponent as ɵc, NewActionNotificationComponent as ɵd, CommonDeleteComponent as ɵe };
23739
25046
  //# sourceMappingURL=raise-common-lib.js.map