UNPKG

@gsp-cmp/ccmp-ui

Version:

CCMP UI Component Library for Angular

775 lines (758 loc) 27.5 kB
import { GspComponent, GspComponentConvertor, DefaultGspComponentSerializeContext } from '@gsp-cmp/common-component'; import { WebServiceComponentSerializerContext } from '@gsp-cmp/wscmp-models'; import { CommonModule } from '@angular/common'; import { FarrisDialogModule } from '@farris/ui-dialog'; import { MessagerService, MessagerModule } from '@farris/ui-messager'; import { NotifyService, NotifyModule } from '@farris/ui-notify'; import { DatagridModule } from '@farris/ui-datagrid'; import { BsModalService, ModalModule } from '@farris/ui-modal'; import { HttpHeaders, HttpClient, HttpClientModule } from '@angular/common/http'; import { map } from 'rxjs/operators'; import { BasePathService } from '@farris/rtf'; import { Injectable, Pipe, NgModule, Injector, EventEmitter, ComponentFactoryResolver, Component, Input, Output, ViewChild, defineInjectable, inject, INJECTOR } from '@angular/core'; /** * @fileoverview added by tsickle * Generated from: lib/i18n/assets/en.ts * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ /** @type {?} */ const EnI18nSource = { 'operation_code': 'Operation Code', 'operation_name': 'Operation Name', 'operation_list': 'Operation List', 'operation_choose': 'Please select a widget action', 'confirm': 'OK', 'cancel': 'Cancel' }; /** * @fileoverview added by tsickle * Generated from: lib/i18n/assets/zh-CHS.ts * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ /** @type {?} */ const ZHCHSI18nSource = { 'operation_code': '操作编号', 'operation_name': '操作名称', 'operation_list': '操作列表', 'operation_choose': '请选择构件操作', 'confirm': '确定', 'cancel': '取消' }; /** * @fileoverview added by tsickle * Generated from: lib/i18n/assets/zh-CHT.ts * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ /** @type {?} */ const ZHCHTI18nSource = { 'operation_code': '操作編號', 'operation_name': '操作名稱', 'operation_list': '操作列表', 'operation_choose': '請選擇構件操作', 'confirm': '確定', 'cancel': '取消' }; /** * @fileoverview added by tsickle * Generated from: lib/i18n/i18n-translate-service.ts * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ class LangCode { } LangCode.en = 'en'; LangCode.zhCHS = 'zh-CHS'; LangCode.zhCHT = 'zh-CHT'; class I18nTranslateService { /** * @param {?} notify */ constructor(notify) { this.notify = notify; this.i18nSource = new Map(); /** @type {?} */ const localLang = notify.localeService.localeId; this.langCode = localLang ? localLang : LangCode.zhCHS; this.i18nSource.set(LangCode.en, EnI18nSource); this.i18nSource.set(LangCode.zhCHS, ZHCHSI18nSource); this.i18nSource.set(LangCode.zhCHT, ZHCHTI18nSource); } /** * @param {?} value * @return {?} */ instant(value) { if (!value) { return ''; } /** @type {?} */ const i18nValue = this.getI18nValue(value); // 未获取到则返回传入的值 if (!i18nValue) { return value; } return i18nValue; } /** * 读取配置文件中的国际化资源,未获取到则返回'' * @private * @param {?} value * @return {?} */ getI18nValue(value) { /** @type {?} */ const i18nSource = this.i18nSource.get(this.langCode); return i18nSource ? i18nSource[value] : ''; } } /** * @fileoverview added by tsickle * Generated from: lib/view-utils/view-utils.ts * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ class ViewUtils { /** * @param {?} messagerService * @param {?} notify */ constructor(messagerService, notify) { this.messagerService = messagerService; this.notify = notify; this.translateService = new I18nTranslateService(notify); } /** * 获取模态框配置信息 * @param {?} btnRef 按钮模板引用 * @param {?=} options 配置项,暂未使用 * @return {?} */ getModalConfig(btnRef, options) { return { title: (options && options.title) ? options.title : this.translateService.instant('operation_list'), width: (options && options.width) ? options.width : 450, height: (options && options.height) ? options.width : 500, resizable: (options && options.resizable) ? options.resizable : true, showButtons: true, showMaxButton: false, enableScroll: false, buttons: btnRef }; } /** * @param {?} data * @return {?} */ showObseleteDialog(data) { this.messagerService.show('warning', `通用构件${data.code}已过时! 升级步骤: 1. 重新定义通用构件元数据; 2. 开发新版本构件代码。 请参考GSPCloud开发文档->高级开发->构件开发->通用构件开发`, { safeHtml: false }); } /** * @param {?} message * @param {?} infoType * @param {?} title * @param {?} timeout * @return {?} */ showInfo(message, infoType, title, timeout) { this.notify.config.position = 'top-center'; if (infoType == 'success') { this.notify.success((/** @type {?} */ ({ title: title, msg: message, timeout: timeout }))); } else if (infoType == 'info') { this.notify.info((/** @type {?} */ ({ title: title, msg: message, timeout: timeout }))); } else if (infoType == 'warning') { this.notify.warning((/** @type {?} */ ({ title: title, msg: message, timeout: timeout }))); } else if (infoType == 'error') { this.notify.error((/** @type {?} */ ({ title: title, msg: message, timeout: timeout }))); } } } ViewUtils.decorators = [ { type: Injectable, args: [{ providedIn: 'root' },] } ]; /** @nocollapse */ ViewUtils.ctorParameters = () => [ { type: MessagerService }, { type: NotifyService } ]; /** @nocollapse */ ViewUtils.ngInjectableDef = defineInjectable({ factory: function ViewUtils_Factory() { return new ViewUtils(inject(MessagerService), inject(NotifyService)); }, token: ViewUtils, providedIn: "root" }); /** * @fileoverview added by tsickle * Generated from: lib/convertor/convertor.ts * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ class ComponentConvertor { /** * @param {?} entity * @param {?} ctx * @return {?} */ convertorToObject(entity, ctx) { /** @type {?} */ let covertor = new GspComponentConvertor(); /** @type {?} */ let obj = new Object(); covertor.convertToObject(obj, entity, ctx); return obj; } /** * @param {?} obj * @param {?} ctx * @return {?} */ initFromObject(obj, ctx) { /** @type {?} */ let covertor = new GspComponentConvertor(); /** @type {?} */ let entity = new GspComponent(); covertor.initFromObject(entity, obj, ctx); return entity; } } /** * @fileoverview added by tsickle * Generated from: lib/params/component-info.ts * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ class ComponentInfo { /** * @param {?} obj * @return {?} */ init(obj) { this.id = obj['id']; this.obselete = obj['obselete']; this.code = obj['code']; this.name = obj['name']; this.nameSpace = obj['nameSpace']; this.fileName = obj['fileName']; this.type = obj['type']; this.bizobjectID = obj['bizobjectID']; this.language = obj['language']; if (obj['metadata']) { /** @type {?} */ let convertor = new ComponentConvertor(); switch (this.type) { case 'CommonComponent': /** @type {?} */ let ctx = new DefaultGspComponentSerializeContext(); this.metadata = convertor.initFromObject(obj['metadata'], ctx); break; case 'WebServiceComponent': /** @type {?} */ let ctx1 = new WebServiceComponentSerializerContext(); this.metadata = convertor.initFromObject(obj['metadata'], ctx1); break; default: throw new Error('不支持的构件类型' + this.type); } } } } /** * @fileoverview added by tsickle * Generated from: lib/ccmp-selector/common-component-selector.component.ts * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ class CommonComponentSelectorComponent { /** * @param {?} utils */ constructor(utils) { this.utils = utils; this.selectedIds = []; this.columns = []; this.multiSelection = false; this.confirmEmitter = new EventEmitter(); this.closeEmitter = new EventEmitter(); } /** * @param {?} _componentInfo * @return {?} */ set componentInfo(_componentInfo) { this._componentInfo = _componentInfo; switch (this._componentInfo.type) { case 'CommonComponent': this.CommonComponentInit(this._componentInfo); break; case 'WebServiceComponent': this.WebServiceComponentInit(this._componentInfo); break; default: throw new Error('不支持的构件类型' + this._componentInfo.type); } } /** * @param {?} options * @return {?} */ set _options(options) { this.multiSelection = options && options.multiSelection || false; } /** * @return {?} */ ngOnInit() { this._componentInfo = this._componentInfo || new ComponentInfo(); this.columnsInit(); } /** * @return {?} */ columnsInit() { this.columns = [ { field: 'code', width: 100, title: this.utils.translateService.instant('operation_code') }, { field: 'name', width: 100, title: this.utils.translateService.instant('operation_name') }, ]; } /** * @param {?} _componentInfo * @return {?} */ CommonComponentInit(_componentInfo) { /** @type {?} */ let convertor = new ComponentConvertor(); /** @type {?} */ let ctx = new DefaultGspComponentSerializeContext(); this.metadata = convertor.initFromObject(convertor.convertorToObject(_componentInfo.metadata, ctx), ctx); this.metadata.operations = new Array(); } /** * @param {?} _componentInfo * @return {?} */ WebServiceComponentInit(_componentInfo) { /** @type {?} */ let convertor = new ComponentConvertor(); /** @type {?} */ let ctx = new WebServiceComponentSerializerContext(); this.metadata = convertor.initFromObject(convertor.convertorToObject(_componentInfo.metadata, ctx), ctx); this.metadata.operations = new Array(); } /** * @return {?} */ confirm() { if (this.selectedIds.length <= 0) { this.utils.showInfo(this.utils.translateService.instant('operation_choose'), 'info', '', 1500); return; } this.metadata.operations = []; this.selectedIds.map((/** * @param {?} x * @return {?} */ x => { /** @type {?} */ let operation = this._componentInfo.metadata.operations.find((/** * @param {?} op * @return {?} */ op => op.code === x)); if (operation) { this.metadata.operations.push(operation); } })); if (this.dialog) { this.dialog.close(); } this.confirmEmitter.emit(this.metadata); this.selectedIds = []; } /** * @return {?} */ close() { if (this.dialog) { this.dialog.close(); } this.closeEmitter.emit(); } /** * @param {?} row * @return {?} */ checkedHandler(row) { /** @type {?} */ let index = this.selectedIds.findIndex((/** * @param {?} x * @return {?} */ x => x === row.id)); if (index == (-1)) { this.selectedIds.push(row.id); } } /** * @param {?} row * @return {?} */ unCheckedHandler(row) { /** @type {?} */ let index = this.selectedIds.findIndex((/** * @param {?} x * @return {?} */ x => x === row.id)); if (index !== (-1)) { this.selectedIds.splice(index, 1); } } /** * @param {?} rows * @return {?} */ checkAllHandler(rows) { if (rows && rows.length > 0) { rows.forEach((/** * @param {?} row * @return {?} */ row => { /** @type {?} */ let index = this.selectedIds.findIndex((/** * @param {?} x * @return {?} */ x => x === row.id)); if (index == (-1)) { this.selectedIds.push(row.id); } })); } } /** * @param {?} rows * @return {?} */ unCheckAllHandler(rows) { if (rows && rows.length > 0) { rows.forEach((/** * @param {?} row * @return {?} */ row => { /** @type {?} */ let index = this.selectedIds.findIndex((/** * @param {?} x * @return {?} */ x => x === row.id)); if (index !== (-1)) { this.selectedIds.splice(index, 1); } })); } } } CommonComponentSelectorComponent.decorators = [ { type: Component, args: [{ selector: 'common-component-selector', template: "<div class=\"d-flex\" style=\"position: absolute;top: 0;bottom: 0;left: 0;right: 0;\">\r\n <div class=\"f-utils-fill selector-modal\">\r\n <farris-datagrid #dg=\"datagrid\" [showLineNumber]=\"true\" [fit]=\"true\" [pagination]=\"true\" [virtualized]=\"false\"\r\n [fitColumns]=\"true\" [showAllCheckbox]=\"true\" [selectOnCheck]=\"true\" [showCheckbox]=\"true\" [idField]=\"'code'\"\r\n [multiSelect]=\"multiSelection\" [showPageList]=\"true\" [onlySelectSelf]=\"true\" [columns]=\"columns\" [data]=\"_componentInfo.metadata.operations\"\r\n (checkAll)=\"checkAllHandler($event)\" (unCheckAll)=\"unCheckAllHandler($event)\" (checked)=\"checkedHandler($event)\" (unChecked)=\"unCheckedHandler($event)\">\r\n </farris-datagrid>\r\n </div>\r\n</div>\r\n\r\n\r\n<ng-template #btnRef>\r\n <div style=\"width: 100%;line-height: 50px; text-align: center;min-width: 140px;\"> \r\n <button class=\"btn btn-primary\" (click)=confirm() style=\"float:right;margin-right: 5px\">{{'confirm'|i18n}}</button>\r\n <button class=\"btn btn-secondary\" (click)=\"close()\" style=\"float:right;margin-right: 5px\">{{'cancel'|i18n}}</button>\r\n </div>\r\n</ng-template>", styles: [".selector-modal{padding:0 8px;width:100%;display:flex}"] }] } ]; /** @nocollapse */ CommonComponentSelectorComponent.ctorParameters = () => [ { type: ViewUtils } ]; CommonComponentSelectorComponent.propDecorators = { componentInfo: [{ type: Input }], dg: [{ type: ViewChild, args: ['dg',] }], btnRef: [{ type: ViewChild, args: ['btnRef',] }], confirmEmitter: [{ type: Output }], closeEmitter: [{ type: Output }] }; /** * @fileoverview added by tsickle * Generated from: lib/ccmp-ui.rt-service.ts * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ class CommonComponentUiRTService { /** * @param {?} resolver * @param {?} injector * @param {?} util * @param {?} modalService * @param {?} http */ constructor(resolver, injector, util, modalService, http) { this.resolver = resolver; this.injector = injector; this.util = util; this.modalService = modalService; this.http = http; } /** * 通用构件操作选择器 * @param {?} metadataId 通用构件元数据 * @param {?} sessionId 功能sessionId * @param {?=} options UI可选配置参数 * @return {?} */ openSelector(metadataId, sessionId, options) { return this.getComponentInfo(metadataId, sessionId).pipe(map((/** * @param {?} data * @return {?} */ (data) => { if (data.obselete) { this.util.showObseleteDialog(data); return { confirmEvent: new EventEmitter(), closeEvent: new EventEmitter() }; } else { return this.create(data, options); } }))); } /** * 获取构件信息 * @param {?} metadataId 构件元数据ID * @param {?} sessionId 功能sessionid * @return {?} */ getComponentInfo(metadataId, sessionId) { /** @type {?} */ let headers = new HttpHeaders(); headers.set("sessionId", sessionId); /** @type {?} */ let url = `/api/runtime/sys/v1.0/common-component/component-info/${metadataId}`; return this.http.get(BasePathService.convertPath(url), { headers: headers }).pipe(map((/** * @param {?} data * @return {?} */ data => { if (data) { /** @type {?} */ let cmpInfo = new ComponentInfo(); cmpInfo.init(data); return cmpInfo; } }))); } /** * @private * @param {?} componentInfo * @param {?} options * @return {?} */ create(componentInfo, options) { /** @type {?} */ let fac = this.resolver.resolveComponentFactory(CommonComponentSelectorComponent); /** @type {?} */ let cmpRef = fac.create(this.injector); cmpRef.instance.componentInfo = componentInfo; cmpRef.instance._options = options; /** @type {?} */ let modalConfig = this.util.getModalConfig(cmpRef.instance.btnRef, options); /** @type {?} */ let dialog = this.modalService.show(cmpRef, modalConfig); cmpRef.instance.dialog = dialog; return { confirmEvent: cmpRef.instance.confirmEmitter, closeEvent: cmpRef.instance.closeEmitter }; } } CommonComponentUiRTService.decorators = [ { type: Injectable, args: [{ providedIn: 'root' },] } ]; /** @nocollapse */ CommonComponentUiRTService.ctorParameters = () => [ { type: ComponentFactoryResolver }, { type: Injector }, { type: ViewUtils }, { type: BsModalService }, { type: HttpClient } ]; /** @nocollapse */ CommonComponentUiRTService.ngInjectableDef = defineInjectable({ factory: function CommonComponentUiRTService_Factory() { return new CommonComponentUiRTService(inject(ComponentFactoryResolver), inject(INJECTOR), inject(ViewUtils), inject(BsModalService), inject(HttpClient)); }, token: CommonComponentUiRTService, providedIn: "root" }); /** * @fileoverview added by tsickle * Generated from: lib/ccmp-ui.dt-service.ts * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ class CommonComponentUiDTService { /** * @param {?} resolver * @param {?} injector * @param {?} util * @param {?} modalService * @param {?} http */ constructor(resolver, injector, util, modalService, http) { this.resolver = resolver; this.injector = injector; this.util = util; this.modalService = modalService; this.http = http; } /** * 通用构件操作选择器 * @param {?} metadataId 通用构件元数据 * @param {?} sessionId 功能sessionId * @param {?=} options UI可选配置参数 * @return {?} */ openSelector(metadataId, sessionId, options) { return this.getComponentInfo(metadataId, sessionId).pipe(map((/** * @param {?} data * @return {?} */ (data) => { if (data.obselete) { this.util.showObseleteDialog(data); return { confirmEvent: new EventEmitter(), closeEvent: new EventEmitter() }; } else { return this.create(data, options); } }))); } /** * 获取构件信息 * @param {?} metadataId 构件元数据ID * @param {?} sessionId 功能sessionid * @return {?} */ getComponentInfo(metadataId, sessionId) { /** @type {?} */ let headers = new HttpHeaders(); headers.set("sessionId", sessionId); /** @type {?} */ let url = `/api/dev/main/v1.0/common-component/component-info/${metadataId}`; return this.http.get(BasePathService.convertPath(url), { headers: headers }).pipe(map((/** * @param {?} data * @return {?} */ data => { if (data) { /** @type {?} */ let cmpInfo = new ComponentInfo(); cmpInfo.init(data); return cmpInfo; } }))); } /** * @private * @param {?} componentInfo * @param {?} options * @return {?} */ create(componentInfo, options) { /** @type {?} */ let fac = this.resolver.resolveComponentFactory(CommonComponentSelectorComponent); /** @type {?} */ let cmpRef = fac.create(this.injector); cmpRef.instance._options = options; cmpRef.instance.componentInfo = componentInfo; /** @type {?} */ let modalConfig = this.util.getModalConfig(cmpRef.instance.btnRef, options); /** @type {?} */ let dialog = this.modalService.show(cmpRef, modalConfig); cmpRef.instance.dialog = dialog; return { confirmEvent: cmpRef.instance.confirmEmitter, closeEvent: cmpRef.instance.closeEmitter }; } } CommonComponentUiDTService.decorators = [ { type: Injectable, args: [{ providedIn: 'root' },] } ]; /** @nocollapse */ CommonComponentUiDTService.ctorParameters = () => [ { type: ComponentFactoryResolver }, { type: Injector }, { type: ViewUtils }, { type: BsModalService }, { type: HttpClient } ]; /** @nocollapse */ CommonComponentUiDTService.ngInjectableDef = defineInjectable({ factory: function CommonComponentUiDTService_Factory() { return new CommonComponentUiDTService(inject(ComponentFactoryResolver), inject(INJECTOR), inject(ViewUtils), inject(BsModalService), inject(HttpClient)); }, token: CommonComponentUiDTService, providedIn: "root" }); /** * @fileoverview added by tsickle * Generated from: lib/i18n/i18n-tranalate.pipe.ts * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ class I18nTranslatePipe { /** * @param {?} utils */ constructor(utils) { this.utils = utils; } /** * @param {?} value * @return {?} */ transform(value) { /** @type {?} */ const i18nValue = this.utils.translateService.instant(value); return i18nValue; } } I18nTranslatePipe.decorators = [ { type: Pipe, args: [{ name: 'i18n' },] } ]; /** @nocollapse */ I18nTranslatePipe.ctorParameters = () => [ { type: ViewUtils } ]; /** * @fileoverview added by tsickle * Generated from: lib/ccmp-ui.module.ts * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ class CommonComponentUiModule { } CommonComponentUiModule.decorators = [ { type: NgModule, args: [{ declarations: [ CommonComponentSelectorComponent, I18nTranslatePipe ], imports: [ NotifyModule, CommonModule, HttpClientModule, ModalModule.forRoot(), FarrisDialogModule, DatagridModule, MessagerModule.forRoot(), ], entryComponents: [CommonComponentSelectorComponent], providers: [ CommonComponentUiRTService, CommonComponentUiDTService, ViewUtils ], exports: [CommonComponentSelectorComponent] },] } ]; /** * @fileoverview added by tsickle * Generated from: lib/params/selector-result.ts * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ /** * 选择器返回结果 */ class SelectorResult { } /** * @fileoverview added by tsickle * Generated from: public-api.ts * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ /** * @fileoverview added by tsickle * Generated from: gsp-cmp-ccmp-ui.ts * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ export { CommonComponentUiModule, CommonComponentSelectorComponent, CommonComponentUiRTService, CommonComponentUiDTService, SelectorResult, I18nTranslatePipe as ɵb, ViewUtils as ɵa }; //# sourceMappingURL=gsp-cmp-ccmp-ui.js.map