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.
- package/bundles/raise-common-lib.umd.js +1357 -49
- package/bundles/raise-common-lib.umd.js.map +1 -1
- package/bundles/raise-common-lib.umd.min.js +1 -1
- package/bundles/raise-common-lib.umd.min.js.map +1 -1
- package/esm2015/lib/common-grid/index.component.js +2 -2
- package/esm2015/lib/form/drawer-form/drawer-form.component.js +112 -44
- package/esm2015/lib/form/richtexteditor/ai-config.js +70 -0
- package/esm2015/lib/form/richtexteditor/data-config.js +273 -0
- package/esm2015/lib/form/richtexteditor/index.component.js +601 -0
- package/esm2015/lib/form/richtexteditor/openapi.js +175 -0
- package/esm2015/lib/layout/page-tab/index.component.js +6 -2
- package/esm2015/lib/raise-common-lib.module.js +7 -2
- package/esm2015/raise-common-lib.js +5 -4
- package/esm5/lib/common-grid/index.component.js +2 -2
- package/esm5/lib/form/drawer-form/drawer-form.component.js +123 -45
- package/esm5/lib/form/richtexteditor/ai-config.js +73 -0
- package/esm5/lib/form/richtexteditor/data-config.js +273 -0
- package/esm5/lib/form/richtexteditor/index.component.js +681 -0
- package/esm5/lib/form/richtexteditor/openapi.js +208 -0
- package/esm5/lib/layout/page-tab/index.component.js +6 -2
- package/esm5/lib/raise-common-lib.module.js +7 -2
- package/esm5/raise-common-lib.js +5 -4
- package/fesm2015/raise-common-lib.js +1230 -48
- package/fesm2015/raise-common-lib.js.map +1 -1
- package/fesm5/raise-common-lib.js +1356 -49
- package/fesm5/raise-common-lib.js.map +1 -1
- package/lib/form/drawer-form/drawer-form.component.d.ts +10 -5
- package/lib/form/richtexteditor/ai-config.d.ts +10 -0
- package/lib/form/richtexteditor/data-config.d.ts +14 -0
- package/lib/form/richtexteditor/index.component.d.ts +78 -0
- package/lib/form/richtexteditor/openapi.d.ts +3 -0
- package/lib/layout/page-tab/index.component.d.ts +1 -0
- package/package.json +1 -1
- package/raise-common-lib.d.ts +4 -3
- package/raise-common-lib.metadata.json +1 -1
- package/src/assets/img/editor-copy.svg +5 -0
- package/src/assets/img/info.svg +5 -0
- 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.
|
|
22257
|
+
this.dateFormat = "yyyy-MM-dd";
|
|
22251
22258
|
this.formChange = new EventEmitter();
|
|
22252
22259
|
this.fieldChange = new EventEmitter();
|
|
22253
22260
|
this.sections = [];
|
|
22254
|
-
this.
|
|
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
|
-
|
|
22472
|
-
|
|
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
|
-
|
|
22644
|
-
|
|
22645
|
-
|
|
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
|
-
/**
|
|
22679
|
-
|
|
22680
|
-
|
|
22681
|
-
|
|
22682
|
-
|
|
22683
|
-
|
|
22684
|
-
|
|
22685
|
-
|
|
22686
|
-
|
|
22687
|
-
|
|
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.
|
|
22800
|
+
event.updateData(this.getOptions(field), query);
|
|
22728
22801
|
};
|
|
22729
22802
|
/**
|
|
22730
22803
|
* @param {?} field
|
|
22731
22804
|
* @return {?}
|
|
22732
22805
|
*/
|
|
22733
|
-
DrawerFormComponent.prototype.
|
|
22806
|
+
DrawerFormComponent.prototype.getOptions = /**
|
|
22734
22807
|
* @param {?} field
|
|
22735
22808
|
* @return {?}
|
|
22736
22809
|
*/
|
|
22737
22810
|
function (field) {
|
|
22738
|
-
if (
|
|
22739
|
-
|
|
22740
|
-
|
|
22741
|
-
|
|
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
|
|
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]=\"
|
|
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
|
-
|
|
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.
|
|
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.
|
|
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,
|
|
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
|