raise-common-lib 0.0.24 → 0.0.26

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.
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../node_modules/tslib/tslib.es6.js","ng://raise-common-lib/lib/common-grid/index.component.ts","ng://raise-common-lib/lib/float-box/index.component.ts","ng://raise-common-lib/lib/layout/page-list/index.component.ts","ng://raise-common-lib/lib/layout/page-tab/index.component.ts","ng://raise-common-lib/lib/layout/grid-box/index.component.ts","ng://raise-common-lib/lib/service/common-function.service.ts","ng://raise-common-lib/lib/service/keep-alive.service.ts","ng://raise-common-lib/lib/layout/multi-tab/index.component.ts","ng://raise-common-lib/lib/layout/rs-header/index.component.ts","ng://raise-common-lib/lib/layout/main-container/index.component.ts","ng://raise-common-lib/lib/layout/rs-footer/index.component.ts","ng://raise-common-lib/lib/layout/rs-aside/index.component.ts","ng://raise-common-lib/lib/form/tag-input/index.component.ts","ng://raise-common-lib/lib/form/radio-group/index.component.ts","ng://raise-common-lib/lib/form/checkbox-group/index.component.ts","ng://raise-common-lib/lib/form/switch-input/index.component.ts","ng://raise-common-lib/lib/service/icon-loader.service.ts","ng://raise-common-lib/lib/dialog/new-action-notification/new-action-notification.component.ts","ng://raise-common-lib/lib/dialog/common-delete-dialog/index.component.ts","ng://raise-common-lib/lib/service/dialog.service.ts","ng://raise-common-lib/lib/dialog/common-dialog/index.component.ts","ng://raise-common-lib/lib/raise-common-lib.module.ts"],"names":["__assign","Object","assign","t","s","i","n","arguments","length","p","prototype","hasOwnProperty","call","apply","this","__read","o","m","Symbol","iterator","r","e","ar","next","done","push","value","error","__spread","concat","CommonGridComponent","ref","showCheckBox","loaded","hiddenLoaded","authorized","selectedDiffKey","gridHeight","gridId","resizeSettings","mode","filterSettings","type","fields","dataSource","allowPaging","clipMode","checkBoxWidth","contextMenuItems","selectionSettings","checkboxOnly","alwaysShowCheckbox","disableSystemRow","recordDoubleClick","EventEmitter","actionComplete","rowSelected","rowDeselected","onContextMenu","actionHandler","queryCellInfo","recordClick","actionBegin","rowDataBound","dataBound","exportQueryCellInfo","rowSelecting","selectId","startPaging","indexList","className","translation","JSON","parse","localStorage","getItem","ngOnInit","markForCheck","trackByFn","index","item","ngOnChanges","changes","currentValue","pageSettings","pageSizes","pageSize","_load","grid","localeStrings","EmptyRecord","YOU_DO_NOT_HAVE_THE_DATASET_PERMISSION","_dataBound","args","_this","pagerContainer","document","querySelector","querySelectorAll","forEach","element","removeAttribute","setTimeout","chooseRecords","emit","_exportQueryCellInfo","_recordDoubleClick","$event","_rowSelected","isHeaderCheckboxClicked","Array","isArray","data","isSelected","_data","_rowDeselected","filter","_onContextMenu","_actionBegin","requestType","search","keywords","selectRows","selectRow","getCurrentViewRecords","customiseCell","contextMenuOpen","rowInfo","rowData","enableItems","hideItems","contextMenuModule","contextMenu","refresh","disabled","disableItem","includes","iconCss","text","isHide","hideItem","cancel","_actionHandler","detectChanges","row","_recordClick","_rowSelecting","refreshColumns","refreshHeader","export","excelExportProperties","excelExport","getSelectedRecords","_rowDataBound","IsSystem","classList","add","clearSelection","addItem","addRecord","defaultRecord","isNew","startEdit","saveItem","endEdit","editItem","Number","deleteItem","selectedRecord","deleteRecord","cancelItem","closeEdit","showLoading","hideLoading","Component","selector","template","ChangeDetectorRef","ViewChild","static","Input","Output","FloatBoxComponent","_trigger","_animation","_fixed","openChange","FIXED_CONTAINER_ID","opened","onClickOutside","event","rootElement","nativeElement","contains","fixedContainerEl","window","removeEventListener","onMoveOutside","contentElement","defineProperty","_placement","_position","ngAfterViewInit","getFixedContainer","fixed","append","ngOnDestroy","remove","containerElement","getElementById","createElement","setAttribute","body","setFixedContentPosition","_a","getBoundingClientRect","y","top","x","left","width","height","translateX","translateY","placement","position","style","transform","onClickContainer","trigger","addEventListener","onMouseEnter","close","RsPageListComponent","customPageTitle","isInner","debouncedInput","debounce","onSeach","gridContent","searchValue","onInput","ContentChild","RsPageTabComponent","tabList","tabChange","animation","previous","effect","duration","easing","onTabClick","selectedIndex","GridBoxComponent","TemplateRef","toBeDeleteUrl","CommonFunctionService","testMethod","setMiddleEllipsis","maxWidth","fontSize","context","getContext","font","measureText","Math","floor","firstPart","secondPart","half","getPureUrl","url","decodeURIComponent","split","Injectable","providedIn","storedRoutes","excludeRoutes","KeepAliveService","setExcludeRoutes","routes","shouldDetach","route","getRoutePath","routeConfig","path","store","handle","shouldAttach","retrieve","loadChildren","shouldReuseRoute","future","curr","children","stringify","params","queryParams","URLSearchParams","toString","_urlSegment","segments","map","v","join","clearCache","MultiTabComponent","router","cf","activatedRoute","keepAlive","singleReuseUrls","TAB_WIDTH","GAP_NORMAL","GAP_SMALL","selectedTab","maxTabs","screenWidth","innerWidth","onResize","setEllipsisTitle","initTab","events","pipe","NavigationEnd","subscribe","navigation","getCurrentNavigation","state","extras","currentRoute","routerState","root","firstChild","setTab","snapshot","title","textGap","calcTabWidth","allWidth","rightWidth","leftWidth","ele","idx","displayTitle","wrap","ulElement","refreshTabDiv","wrapRect","ulRect","refreshTabRect","TabCache","sessionStorage","closeTab","tab","targetIdx","max","changeTab","setItem","navigateByUrl","addTab","pureUrl","isExistIdx","findIndex","singleIdx_1","refreshTab","currentUrl","skipLocationChange","then","Router","ActivatedRoute","HostListener","RSHeaderComponent","isCollapsed","lastLoginTime","Date","toggleMenu","changeLanguage","_langOptions","options","currentLang","find","defaultLang","onToggleMenu","selectLanguage","langOptions","languageCode","MainContainerComponent","onRightAsideClick","headerRef","RSFooterComponent","today","RSAsideComponent","navList","currentNav","onNavClick","navigate","label","TagInputComponent","inputMinlength","inputMaxlength","valueChange","inputError","onRemoveTag","tag","tagsList","onAddTag","inputValue","target","verifyInputValue","inputValueLength","RadioGroupComponent","orientation","onChange","CheckboxGroupComponent","console","log","option","result","originalValue","checked","val","SwitchInputComponent","onClick","IconLoaderService","registry","domSanitizer","registerIcons","list","name","addSvgIcon","bypassSecurityTrustResourceUrl","MatIconRegistry","DomSanitizer","NewActionNotificationComponent","collapsed","config","loadingCallback","progress","snackBar","dismiss","closeNotification","expandNotification","status","Inject","MAT_SNACK_BAR_DATA","CommonDeleteComponent","dialogRef","saveBtnLabel","cancelBtnLabel","description","size","DELETE","CANCEL","IF_YOU_DELETE_THIS_RECORD_WARNING","onSave","MAT_DIALOG_DATA","MatDialogRef","MessageType","Create","Read","Update","Delete","DialogService","dialog","showLoadingNotification","openFromComponent","message","DOWNLOAD_IS_IN_PROGRESS","verticalPosition","horizontalPosition","panelClass","showNotification","deleteElement","open","showCommonDilaog","showUnsavedChanges","defaultData","UNSAVED_CHANGES","YOU_HAVE_UNSAVED_CHANGED_ARE_YOU_SURE_YOU_WANT_TO_DISCARD_THEM","DISCARD_CHANGES","CONTINUE_EDITING","showSucMsg","res","showMessage","showUpdateMsg","showDelMsg","_saveMessage","SAVESUCCESS","UPDATESUCCESS","DELETESUCCESS","messages","MatSnackBar","MatDialog","CommonDialogComponent","hideHeader","hideCloseIcon","hideCloseBtn","hideSaveBtn","showErrorIcon","loading","saveEmit","closeEmit","customFooter","ngAfterContentInit","footerContent","getInfo","onClose","SAVE","RaiseCommonLibModule","NgModule","declarations","imports","CommonModule","HttpClientModule","ReactiveFormsModule","FormsModule","MatSnackBarModule","MatDialogModule","MatIconModule","GridModule","PagerModule","GridAllModule","SwitchModule","CheckBoxModule","RadioButtonModule","ButtonModule","DiagramModule","TooltipModule","DialogModule","DatePickerModule","DateRangePickerModule","DateTimePickerModule","TextBoxModule","ColorPickerModule","UploaderModule","NumericTextBoxModule","DropDownListModule","DropDownTreeModule","MultiSelectAllModule","AutoCompleteModule","ListBoxModule","PivotViewAllModule","PivotFieldListAllModule","ChartAllModule","AccumulationChartAllModule","RangeNavigatorAllModule","AccumulationChartModule","DashboardLayoutModule","CarouselAllModule","ToolbarModule","TabModule","PdfViewerModule","DropDownButtonModule","SplitButtonModule","RichTextEditorAllModule","providers","PageService","SortService","FilterService","ExcelExportService","EditService","ResizeService","ToolbarService","ColumnChooserService","AggregateService","ColumnMenuService","DetailRowService","SelectionService","GroupService","PieSeriesService","AccumulationLegendService","AccumulationTooltipService","AccumulationAnnotationService","AccumulationDataLabelService","LinkAnnotationService","BookmarkViewService","MagnificationService","ThumbnailViewService","PbfToolbarService","NavigationService","TextSearchService","TextSelectionService","PrintService","HtmlEditorService","RichEditorToolbarService","exports","entryComponents"],"mappings":"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","sourcesContent":["/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __createBinding(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (p !== \"default\" && !exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n","import {\r\n Component,\r\n EventEmitter,\r\n Input,\r\n OnInit,\r\n Output,\r\n TemplateRef,\r\n OnChanges,\r\n ViewChild,\r\n SimpleChanges,\r\n ChangeDetectorRef,\r\n} from '@angular/core';\r\nimport { GridComponent } from '@syncfusion/ej2-angular-grids';\r\n\r\nimport { BeforeOpenCloseEventArgs } from '@syncfusion/ej2-angular-inputs';\r\nimport { IActionMenuItem, IColumnField } from '../constant';\r\n\r\n@Component({\r\n selector: 'rs-common-grid',\r\n templateUrl: './index.component.html',\r\n styleUrls: ['./index.component.scss'],\r\n})\r\nexport class CommonGridComponent implements OnInit, OnChanges {\r\n @ViewChild('grid', { static: false })\r\n public grid: GridComponent;\r\n @Input() showCheckBox = true;\r\n @Input() loaded = true;\r\n @Input() hiddenLoaded = false;\r\n @Input() authorized = true; // Dataset是否授权,未授权则显示权限错误提示\r\n // only use for local data pagination\r\n @Input() selectedDiffKey = '';\r\n @Input() gridHeight = '';\r\n // 这玩意必填,不然filter columnChooser都会报错\r\n @Input() gridId = 'grid';\r\n @Input() resizeSettings = { mode: 'Auto' };\r\n @Input() filterSettings = { type: 'Menu' };\r\n @Input() template: any;\r\n @Input() fields: IColumnField[] = [];\r\n @Input() dataSource = [];\r\n @Input() editSettings;\r\n @Input() columnTemplate: TemplateRef<any>;\r\n @Input() pageSettings;\r\n @Input() allowPaging = true;\r\n @Input() clipMode = 'EllipsisWithTooltip';\r\n @Input() checkBoxWidth = 32; // col 数量过少的时候,check宽度会拉伸,这时候设置null\r\n @Input() childGrid;\r\n\r\n /**\r\n\t * Sample: [\r\n\t\t\t{\r\n\t\t\t\ttext: \"Preview\",\r\n\t\t\t\ttarget: \".e-content\",\r\n\t\t\t\tid: \"preview-icon\",\r\n\t\t\t\ticonCss: \"preview\",\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\ttext: \"Download\",\r\n\t\t\t\ttarget: \".e-content\",\r\n\t\t\t\tid: \"download-icon\",\r\n\t\t\t\ticonCss: \"download\",\r\n\t\t\t}\r\n\t\t]\r\n\t\t用于定义row中 点击事件\r\n\t */\r\n @Input() contextMenuItems: IActionMenuItem[] = [];\r\n // @Input() selectionSettings = { checkboxOnly: true, type: \"Multiple\" };\r\n @Input() selectionSettings = {\r\n type: 'Multiple',\r\n // persistSelection: true,\r\n checkboxOnly: true,\r\n };\r\n @Input() alwaysShowCheckbox: boolean = false;\r\n @Input() defaultRecord: any;\r\n @Input() disableSystemRow: boolean = false; // 禁用IsSytem = true的整行\r\n\r\n @Output() recordDoubleClick = new EventEmitter();\r\n @Output() actionComplete = new EventEmitter();\r\n @Output() rowSelected = new EventEmitter();\r\n @Output() rowDeselected = new EventEmitter();\r\n @Output() onContextMenu = new EventEmitter();\r\n @Output() actionHandler = new EventEmitter();\r\n @Output() queryCellInfo = new EventEmitter();\r\n @Output() recordClick = new EventEmitter();\r\n @Output() actionBegin = new EventEmitter();\r\n @Output() rowDataBound = new EventEmitter();\r\n @Output() dataBound = new EventEmitter();\r\n @Output() exportQueryCellInfo = new EventEmitter();\r\n @Output() rowSelecting = new EventEmitter();\r\n\r\n selectId = [];\r\n startPaging = false;\r\n indexList = [];\r\n className = 'grid-loading';\r\n\r\n public translation;\r\n\r\n constructor(private ref: ChangeDetectorRef) {\r\n this.translation = JSON.parse(localStorage.getItem('translation'));\r\n }\r\n\r\n ngOnInit(): void {\r\n if (this.hiddenLoaded) this.className = '';\r\n this.ref && this.ref.markForCheck();\r\n }\r\n\r\n trackByFn(index, item) {\r\n return index; // or a unique identifier in your object\r\n }\r\n ngOnChanges(changes: SimpleChanges) {\r\n if (changes.dataSource && changes.dataSource.currentValue) {\r\n if (\r\n this.allowPaging &&\r\n changes.dataSource.currentValue.length &&\r\n !this.pageSettings\r\n ) {\r\n this.pageSettings =\r\n changes.dataSource.currentValue.length > 9\r\n ? {\r\n pageSizes: ['All', '25', '50', '100'],\r\n pageSize: 50,\r\n }\r\n : null;\r\n }\r\n }\r\n }\r\n\r\n _load() {\r\n if (!this.authorized) {\r\n (this.grid.localeObj as any).localeStrings.EmptyRecord =\r\n this.translation.YOU_DO_NOT_HAVE_THE_DATASET_PERMISSION ||\r\n \"You don't have the dataset permission to view the record.\";\r\n }\r\n }\r\n\r\n _dataBound(args: any) {\r\n // 整个组件加载完成时的回调函数\r\n var pagerContainer = document.querySelector('.e-pagercontainer');\r\n if (pagerContainer) {\r\n var linkElements = pagerContainer.querySelectorAll('.e-link');\r\n linkElements.forEach(function (element) {\r\n element.removeAttribute('href'); // SMP2-10310 删除分页器的href属性\r\n });\r\n }\r\n if (this.selectedDiffKey) {\r\n setTimeout(() => {\r\n this.chooseRecords();\r\n });\r\n }\r\n this.dataBound.emit(args);\r\n }\r\n\r\n _exportQueryCellInfo(args) {\r\n this.exportQueryCellInfo.emit(args);\r\n }\r\n\r\n _recordDoubleClick($event) {\r\n this.recordDoubleClick.emit($event);\r\n }\r\n /**\r\n\t * [selectionSettings]=\"{ checkboxOnly: true }\"\r\n\t [showCheckBox]=\"true\"\r\n\t 控件使用时,必须配置上面两个属性,否则,全选会失效\r\n\t */\r\n _rowSelected($event) {\r\n if (this.selectedDiffKey) {\r\n if ($event.isHeaderCheckboxClicked && Array.isArray($event.data)) {\r\n if ($event.data && $event.data.length) {\r\n $event.data.forEach((item) => {\r\n item.isSelected = true;\r\n this.selectId.push(item);\r\n });\r\n this.dataSource.forEach((data) => {\r\n $event.data.forEach((_data) => {\r\n if (_data[this.selectedDiffKey] === data[this.selectedDiffKey]) {\r\n data.isSelected = true;\r\n }\r\n });\r\n });\r\n }\r\n } else {\r\n $event.data.isSelected = true;\r\n this.selectId.push($event.data);\r\n this.dataSource.forEach((data) => {\r\n if (\r\n data[this.selectedDiffKey] === $event.data[this.selectedDiffKey]\r\n ) {\r\n data.isSelected = true;\r\n }\r\n });\r\n }\r\n this.ref && this.ref.markForCheck();\r\n }\r\n this.rowSelected.emit($event);\r\n }\r\n\r\n _rowDeselected($event) {\r\n if (this.selectedDiffKey) {\r\n if (this.startPaging) {\r\n return;\r\n }\r\n if ($event.isHeaderCheckboxClicked && Array.isArray($event.data)) {\r\n $event.data.forEach((item) => {\r\n item.isSelected = false;\r\n });\r\n this.selectId = [];\r\n this.dataSource.forEach((data) => {\r\n $event.data.forEach((_data) => {\r\n if (_data[this.selectedDiffKey] === data[this.selectedDiffKey]) {\r\n data.isSelected = false;\r\n }\r\n });\r\n });\r\n } else {\r\n $event.data.isSelected = false;\r\n this.selectId = this.selectId.filter(\r\n (item) =>\r\n item[this.selectedDiffKey] !== $event.data[this.selectedDiffKey]\r\n );\r\n this.dataSource.forEach((data) => {\r\n if (\r\n data[this.selectedDiffKey] === $event.data[this.selectedDiffKey]\r\n ) {\r\n data.isSelected = false;\r\n }\r\n });\r\n }\r\n this.ref && this.ref.markForCheck();\r\n }\r\n this.rowDeselected.emit($event);\r\n }\r\n\r\n _onContextMenu(args) {\r\n this.onContextMenu.emit(args);\r\n }\r\n\r\n _actionBegin(args) {\r\n if (\r\n this.selectedDiffKey &&\r\n (args.requestType === 'paging' ||\r\n args.requestType === 'searching' ||\r\n args.requestType === 'filtering' ||\r\n args.requestType === 'sorting')\r\n ) {\r\n this.startPaging = true;\r\n }\r\n this.actionBegin.emit(args);\r\n }\r\n\r\n search(keywords) {\r\n this.grid.search(keywords);\r\n }\r\n selectRows(indexList: number[]) {\r\n this.grid.selectRows(indexList);\r\n }\r\n selectRow(index) {\r\n this.grid.selectRow(index);\r\n }\r\n getCurrentViewRecords() {\r\n return this.grid.getCurrentViewRecords();\r\n }\r\n\r\n customiseCell($event) {\r\n this.queryCellInfo.emit($event);\r\n }\r\n\r\n contextMenuOpen(args?: BeforeOpenCloseEventArgs): void {\r\n const data = (args as BeforeOpenCloseEventArgs | any).rowInfo.rowData;\r\n if (!data) {\r\n args.cancel = true;\r\n return;\r\n }\r\n let enableItems = [];\r\n let hideItems = [];\r\n this.grid.contextMenuModule.contextMenu.refresh(); // 每次点击按钮弹窗前需再次初始化状态 否则不更新;\r\n this.contextMenuItems.forEach((item: IActionMenuItem) => {\r\n // 用于处理部分按钮disabled的情况\r\n if (\r\n item.disabled ||\r\n (data.disableItem && data.disableItem.includes(item.iconCss))\r\n ) {\r\n enableItems.push(item.text);\r\n // this.grid.contextMenuModule.contextMenu.enableItems(\r\n // \t[item.text],\r\n // \tfalse\r\n // );\r\n }\r\n // 用于处理部分按钮需要hide的情况\r\n if (\r\n item.isHide ||\r\n (data.hideItem && data.hideItem.includes(item.iconCss))\r\n ) {\r\n hideItems.push(item.text);\r\n // this.grid.contextMenuModule.contextMenu.hideItems(\r\n // \t[item.text],\r\n // \tfalse\r\n // );\r\n }\r\n });\r\n this.grid.contextMenuModule.contextMenu.enableItems(enableItems, false);\r\n this.grid.contextMenuModule.contextMenu.hideItems(hideItems, false);\r\n }\r\n\r\n _actionHandler($event) {\r\n if (\r\n this.selectedDiffKey &&\r\n ($event.requestType === 'paging' ||\r\n $event.requestType === 'searching' ||\r\n $event.requestType === 'filtering' ||\r\n $event.requestType === 'sorting')\r\n ) {\r\n this.indexList = [];\r\n setTimeout(() => {\r\n this.chooseRecords();\r\n this.startPaging = false;\r\n this.ref && this.ref.detectChanges();\r\n this.ref && this.ref.markForCheck();\r\n });\r\n }\r\n this.actionHandler.emit($event);\r\n this.actionComplete.emit($event);\r\n }\r\n\r\n private chooseRecords() {\r\n this.indexList = [];\r\n this.dataSource.forEach((data) => {\r\n this.grid.getCurrentViewRecords().forEach((row: any, i) => {\r\n if (\r\n row &&\r\n data[this.selectedDiffKey] === row[this.selectedDiffKey] &&\r\n data.isSelected\r\n ) {\r\n this.indexList.push(i);\r\n }\r\n });\r\n });\r\n\r\n this.grid.selectRows(this.indexList);\r\n }\r\n\r\n _recordClick($event) {\r\n this.recordClick.emit($event);\r\n }\r\n refresh() {\r\n this.grid.refresh();\r\n }\r\n _rowSelecting(e) {\r\n this.rowSelecting.emit(e);\r\n }\r\n refreshColumns() {\r\n this.grid.refreshColumns();\r\n }\r\n refreshHeader() {\r\n this.grid.refreshHeader();\r\n }\r\n\r\n export(excelExportProperties?) {\r\n this.grid.excelExport(excelExportProperties);\r\n }\r\n\r\n getSelectedRecords() {\r\n return this.grid.getSelectedRecords();\r\n }\r\n\r\n _rowDataBound($event) {\r\n if (this.disableSystemRow && $event.data && $event.data.IsSystem) {\r\n $event.row.classList.add('e-disabled');\r\n }\r\n this.rowDataBound.emit($event);\r\n }\r\n\r\n clearSelection() {\r\n this.grid.clearSelection();\r\n }\r\n\r\n excelExport() {\r\n this.grid.excelExport();\r\n }\r\n\r\n addItem() {\r\n this.grid.addRecord({ ...this.defaultRecord, isNew: true }, 0);\r\n setTimeout(() => {\r\n this.grid.selectRow(0);\r\n this.grid.startEdit();\r\n }, 30);\r\n }\r\n\r\n saveItem() {\r\n this.grid.endEdit();\r\n }\r\n\r\n editItem(index) {\r\n setTimeout(() => {\r\n this.grid.selectRow(Number(index));\r\n this.grid.startEdit();\r\n }, 30);\r\n }\r\n\r\n deleteItem(index) {\r\n this.grid.selectRow(Number(index));\r\n var selectedRecord = this.grid.getSelectedRecords()[0] as any;\r\n this.grid.deleteRecord(selectedRecord as string);\r\n }\r\n\r\n cancelItem(index) {\r\n this.grid.closeEdit();\r\n this.deleteItem(index);\r\n }\r\n\r\n public showLoading() {\r\n this.className = 'grid-loading';\r\n this.ref && this.ref.markForCheck();\r\n this.ref && this.ref.detectChanges();\r\n }\r\n\r\n public hideLoading() {\r\n this.className = '';\r\n this.ref && this.ref.markForCheck();\r\n this.ref && this.ref.detectChanges();\r\n }\r\n}\r\n","import {\r\n\tAfterViewInit,\r\n\tChangeDetectorRef,\r\n\tComponent,\r\n\tElementRef,\r\n\tEventEmitter,\r\n\tInput,\r\n\tOnDestroy,\r\n\tOutput,\r\n\tViewChild,\r\n} from \"@angular/core\";\r\n\r\n@Component({\r\n\tselector: \"rs-float-box\",\r\n\ttemplateUrl: \"./index.component.html\",\r\n\tstyleUrls: [\"./index.component.scss\"],\r\n})\r\nexport class FloatBoxComponent implements AfterViewInit, OnDestroy {\r\n\t@Input(\"placement\") _placement: \"top\" | \"left\" | \"right\" | \"bottom\";\r\n\t@Input(\"position\") _position: \"start\" | \"center\" | \"end\";\r\n\t@Input(\"trigger\") _trigger: \"hover\" | \"click\" = \"hover\";\r\n\t@Input(\"animation\") _animation: \"yes\" | \"no\" = \"no\";\r\n\t@Input(\"fixed\") _fixed: \"yes\" | \"no\" = \"no\";\r\n\r\n\tget placement() {\r\n\t\tif ([\"top\", \"left\", \"right\", \"bottom\"].includes(this._placement)) {\r\n\t\t\treturn this._placement;\r\n\t\t}\r\n\t\treturn \"bottom\";\r\n\t}\r\n\r\n\tget position() {\r\n\t\tif ([\"start\", \"center\", \"end\"].includes(this._position)) {\r\n\t\t\treturn this._position;\r\n\t\t}\r\n\t\treturn \"center\";\r\n\t}\r\n\r\n\tget trigger() {\r\n\t\tif (this._trigger === \"click\") {\r\n\t\t\treturn \"click\";\r\n\t\t}\r\n\t\treturn \"hover\";\r\n\t}\r\n\r\n\tget animation() {\r\n\t\tif (this._animation === \"yes\") {\r\n\t\t\treturn \"yes\";\r\n\t\t}\r\n\t\treturn \"no\";\r\n\t}\r\n\r\n\tget fixed() {\r\n\t\tif (this._fixed === \"yes\") {\r\n\t\t\treturn \"yes\";\r\n\t\t}\r\n\t\treturn \"no\";\r\n\t}\r\n\r\n\t@Output(\"openChange\") openChange = new EventEmitter<boolean>();\r\n\r\n\t@ViewChild(\"element\", { static: false })\r\n\trootElement: ElementRef<HTMLDivElement>;\r\n\t@ViewChild(\"content\", { static: false })\r\n\tcontentElement: ElementRef<HTMLDivElement>;\r\n\r\n\tconstructor(private ref: ChangeDetectorRef) {}\r\n\r\n\tngAfterViewInit() {\r\n\t\tthis.fixedContainerEl = this.getFixedContainer();\r\n\t\tif (this.fixed === \"yes\") {\r\n\t\t\tthis.fixedContainerEl.append(this.contentElement.nativeElement);\r\n\t\t}\r\n\t}\r\n\r\n\tngOnDestroy() {\r\n\t\tthis.contentElement.nativeElement.remove();\r\n\t}\r\n\r\n\tFIXED_CONTAINER_ID = \"kt-float-box-fixed-container\";\r\n\tfixedContainerEl: HTMLElement;\r\n\tgetFixedContainer() {\r\n\t\tlet containerElement = document.getElementById(this.FIXED_CONTAINER_ID);\r\n\t\tif (!containerElement) {\r\n\t\t\tcontainerElement = document.createElement(\"div\");\r\n\t\t\tcontainerElement.setAttribute(\"id\", this.FIXED_CONTAINER_ID);\r\n\t\t\tdocument.body.append(containerElement);\r\n\t\t}\r\n\t\treturn containerElement;\r\n\t}\r\n\r\n\tsetFixedContentPosition() {\r\n\t\tif (this.fixed === \"no\") {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tconst {\r\n\t\t\ttop: y,\r\n\t\t\tleft: x,\r\n\t\t\twidth,\r\n\t\t\theight,\r\n\t\t} = this.rootElement.nativeElement.getBoundingClientRect();\r\n\r\n\t\tlet top = \"0\";\r\n\t\tlet left = \"0\";\r\n\t\tlet translateX = \"0\";\r\n\t\tlet translateY = \"0\";\r\n\t\tswitch (this.placement + \"_\" + this.position) {\r\n\t\t\tcase \"top_start\":\r\n\t\t\t\ttop = y + \"px\";\r\n\t\t\t\tleft = x - 8 + \"px\";\r\n\t\t\t\ttranslateY = \"-100%\";\r\n\t\t\t\tbreak;\r\n\t\t\tcase \"top_center\":\r\n\t\t\t\ttop = y + \"px\";\r\n\t\t\t\tleft = x + width / 2 + \"px\";\r\n\t\t\t\ttranslateX = \"-50%\";\r\n\t\t\t\ttranslateY = \"-100%\";\r\n\t\t\t\tbreak;\r\n\t\t\tcase \"top_end\":\r\n\t\t\t\ttop = y + \"px\";\r\n\t\t\t\tleft = x + width + 8 + \"px\";\r\n\t\t\t\ttranslateX = \"-100%\";\r\n\t\t\t\ttranslateY = \"-100%\";\r\n\t\t\t\tbreak;\r\n\t\t\tcase \"left_start\":\r\n\t\t\t\ttop = y - 8 + \"px\";\r\n\t\t\t\tleft = x + \"px\";\r\n\t\t\t\ttranslateX = \"-100%\";\r\n\t\t\t\tbreak;\r\n\t\t\tcase \"left_center\":\r\n\t\t\t\ttop = y + height / 2 + \"px\";\r\n\t\t\t\tleft = x + \"px\";\r\n\t\t\t\ttranslateX = \"-100%\";\r\n\t\t\t\ttranslateY = \"-50%\";\r\n\t\t\t\tbreak;\r\n\t\t\tcase \"left_end\":\r\n\t\t\t\ttop = y + height + 8 + \"px\";\r\n\t\t\t\tleft = x + \"px\";\r\n\t\t\t\ttranslateX = \"-100%\";\r\n\t\t\t\ttranslateY = \"-100%\";\r\n\t\t\t\tbreak;\r\n\t\t\tcase \"right_start\":\r\n\t\t\t\ttop = y - 8 + \"px\";\r\n\t\t\t\tleft = x + width + \"px\";\r\n\t\t\t\tbreak;\r\n\t\t\tcase \"right_center\":\r\n\t\t\t\ttop = y + height / 2 + \"px\";\r\n\t\t\t\tleft = x + width + \"px\";\r\n\t\t\t\ttranslateY = \"-50%\";\r\n\t\t\t\tbreak;\r\n\t\t\tcase \"right_end\":\r\n\t\t\t\ttop = y + height + 8 + \"px\";\r\n\t\t\t\tleft = x + width + \"px\";\r\n\t\t\t\ttranslateY = \"-100%\";\r\n\t\t\t\tbreak;\r\n\t\t\tcase \"bottom_start\":\r\n\t\t\t\ttop = y + height + \"px\";\r\n\t\t\t\tleft = x - 8 + \"px\";\r\n\t\t\t\tbreak;\r\n\t\t\tcase \"bottom_center\":\r\n\t\t\t\ttop = y + height + \"px\";\r\n\t\t\t\tleft = x + width / 2 + \"px\";\r\n\t\t\t\ttranslateX = \"-50%\";\r\n\t\t\t\tbreak;\r\n\t\t\tcase \"bottom_end\":\r\n\t\t\t\ttop = y + height + \"px\";\r\n\t\t\t\tleft = x + width + 8 + \"px\";\r\n\t\t\t\ttranslateX = \"-100%\";\r\n\t\t\t\tbreak;\r\n\t\t}\r\n\r\n\t\tthis.contentElement.nativeElement.style.top = top;\r\n\t\tthis.contentElement.nativeElement.style.left = left;\r\n\t\tthis.contentElement.nativeElement.style.transform = `translate(${translateX}, ${translateY})`;\r\n\t}\r\n\r\n\topened: \"yes\" | \"no\" = \"no\";\r\n\tonClickContainer() {\r\n\t\tif (this.trigger !== \"click\") {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tthis.opened = \"yes\";\r\n\t\tthis.openChange.emit(true);\r\n\t\tthis.setFixedContentPosition();\r\n\t\twindow.addEventListener(\"click\", this.onClickOutside);\r\n\t}\r\n\r\n\tonClickOutside = (event: MouseEvent) => {\r\n\t\tif (\r\n\t\t\t!this.rootElement.nativeElement.contains(event.target as Element) &&\r\n\t\t\t!this.fixedContainerEl.contains(event.target as Element)\r\n\t\t) {\r\n\t\t\tthis.opened = \"no\";\r\n\t\t\tthis.openChange.emit(false);\r\n\t\t\twindow.removeEventListener(\"click\", this.onClickOutside);\r\n\t\t\tthis.ref.markForCheck();\r\n\t\t}\r\n\t};\r\n\r\n\tonMouseEnter() {\r\n\t\tif (this.fixed === \"no\" || this.trigger !== \"hover\") {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tthis.opened = \"yes\";\r\n\t\tthis.openChange.emit(true);\r\n\t\tthis.setFixedContentPosition();\r\n\t\twindow.addEventListener(\"mousemove\", this.onMoveOutside);\r\n\t}\r\n\r\n\tonMoveOutside = (event: MouseEvent) => {\r\n\t\tif (\r\n\t\t\t!this.rootElement.nativeElement.contains(event.target as Element) &&\r\n\t\t\t!this.contentElement.nativeElement.contains(event.target as Element)\r\n\t\t) {\r\n\t\t\tthis.opened = \"no\";\r\n\t\t\tthis.openChange.emit(false);\r\n\t\t\twindow.removeEventListener(\"click\", this.onMoveOutside);\r\n\t\t\tthis.ref.markForCheck();\r\n\t\t}\r\n\t};\r\n\r\n\tclose() {\r\n\t\tsetTimeout(() => {\r\n\t\t\tthis.opened = \"no\";\r\n\t\t\tthis.openChange.emit(false);\r\n\t\t}, 0);\r\n\t}\r\n}\r\n","// 组件类\r\nimport {\r\n Component,\r\n ContentChild,\r\n Input,\r\n OnInit,\r\n} from '@angular/core';\r\nimport { CommonGridComponent } from '../../common-grid/index.component';\r\nimport { debounce } from 'lodash';\r\n\r\n@Component({\r\n selector: 'rs-page-list',\r\n templateUrl: './index.component.html',\r\n styleUrls: ['./index.component.scss'],\r\n})\r\nexport class RsPageListComponent implements OnInit {\r\n @ContentChild(CommonGridComponent, { static: true }) gridContent;\r\n @Input() pageTitle;\r\n @Input() customPageTitle = false;\r\n @Input() isInner = false;\r\n\r\n private debouncedInput: Function;\r\n\r\n ngOnInit() {\r\n this.debouncedInput = debounce(() => {\r\n this.onSeach()\r\n }, 300);\r\n }\r\n\r\n\r\n\r\n searchValue;\r\n onSeach() {\r\n this.gridContent.grid.search(this.searchValue);\r\n }\r\n\r\n onInput(){\r\n this.debouncedInput()\r\n }\r\n}\r\n","// 组件类\r\nimport {\r\n Component,\r\n ContentChild,\r\n EventEmitter,\r\n Input,\r\n OnInit,\r\n Output,\r\n} from \"@angular/core\";\r\n\r\n@Component({\r\n selector: \"rs-page-tab\",\r\n templateUrl: \"./index.component.html\",\r\n styleUrls: [\"./index.component.scss\"],\r\n})\r\nexport class RsPageTabComponent implements OnInit {\r\n @Input() pageTitle;\r\n @Input() customPageTitle = false;\r\n @Input() tabList = [];\r\n @Input() currentTab;\r\n\r\n @Output()\r\n tabChange = new EventEmitter();\r\n\r\n public animation: object = {\r\n\t\tprevious: { effect: \"\", duration: 0, easing: \"\" },\r\n\t\tnext: { effect: \"\", duration: 0, easing: \"\" },\r\n\t};\r\n ngOnInit() {}\r\n\r\n onTabClick(e) {\r\n this.tabChange.emit(this.tabList[e.selectedIndex]);\r\n }\r\n}\r\n","// 组件类\r\nimport {\r\n Component,\r\n ContentChild,\r\n Input,\r\n OnInit,\r\n TemplateRef,\r\n} from '@angular/core';\r\nimport { CommonGridComponent } from '../../common-grid/index.component';\r\nimport { debounce } from 'lodash';\r\n\r\n@Component({\r\n selector: 'rs-grid-box',\r\n templateUrl: './index.component.html',\r\n styleUrls: ['./index.component.scss'],\r\n})\r\nexport class GridBoxComponent implements OnInit {\r\n @ContentChild(TemplateRef, { static: true }) gridContent;\r\n @Input() pageTitle;\r\n @Input() customPageTitle = false;\r\n @Input() isInner = false;\r\n\r\n private debouncedInput: Function;\r\n\r\n ngOnInit() {\r\n this.debouncedInput = debounce(() => {\r\n this.onSeach()\r\n }, 300);\r\n }\r\n\r\n\r\n\r\n searchValue;\r\n onSeach() {\r\n this.gridContent.grid.search(this.searchValue);\r\n }\r\n\r\n onInput(){\r\n this.debouncedInput()\r\n }\r\n}\r\n","import { Injectable } from \"@angular/core\";\r\n\r\n@Injectable({\r\n providedIn: \"root\",\r\n})\r\nexport class CommonFunctionService {\r\n constructor() {}\r\n\r\n testMethod() {\r\n return \"test1111\";\r\n }\r\n\r\n setMiddleEllipsis(text, maxWidth = 150, fontSize = 13) {\r\n\t\tconst canvas = document.createElement(\"canvas\");\r\n\t\tconst context = canvas.getContext(\"2d\");\r\n\t\tcontext.font = `${fontSize}px Arial`;\r\n\r\n\t\tlet width = context.measureText(text).width;\r\n\r\n\t\tif (width <= maxWidth) {\r\n\t\t\treturn text;\r\n\t\t}\r\n\t\tmaxWidth = Math.floor(maxWidth - context.measureText(\"...\").width);\r\n\t\tlet firstPart = \"\";\r\n\t\tlet secondPart = \"\";\r\n\t\tlet half = Math.floor(maxWidth / 2);\r\n\t\tfor (let i = 0; i < text.length; i++) {\r\n\t\t\tfirstPart += text[i];\r\n\t\t\twidth = context.measureText(firstPart).width;\r\n\t\t\tif (width > half) {\r\n\t\t\t\tbreak;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tfor (let i = text.length - 1; i >= 0; i--) {\r\n\t\t\tsecondPart = text[i] + secondPart;\r\n\t\t\twidth = context.measureText(secondPart).width;\r\n\t\t\tif (width > half) {\r\n\t\t\t\tbreak;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn firstPart + \"...\" + secondPart;\r\n\t}\r\n\r\n getPureUrl(url: string) {\r\n\t\tif (url) {\r\n\t\t\t// 如果params的value 携带查询参数, 则截取前面部分\r\n\t\t\turl = decodeURIComponent(url);\r\n\t\t\tif (url.includes(\"?\")) {\r\n\t\t\t\turl = url.split(\"?\")[0];\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn url;\r\n\t}\r\n}\r\n","import { Injectable } from \"@angular/core\";\r\nimport {\r\n RouteReuseStrategy,\r\n ActivatedRouteSnapshot,\r\n DetachedRouteHandle,\r\n} from \"@angular/router\";\r\n\r\nconst storedRoutes: { [key: string]: DetachedRouteHandle } = {};\r\nlet toBeDeleteUrl: string;\r\nlet excludeRoutes: string[] = []; // 不需要缓存的url\r\n@Injectable({\r\n providedIn: \"root\",\r\n})\r\nexport class KeepAliveService implements RouteReuseStrategy {\r\n setExcludeRoutes(routes: string[]) {\r\n excludeRoutes = routes; // 设置不缓存的路由\r\n }\r\n shouldDetach(route: ActivatedRouteSnapshot): boolean {\r\n if (toBeDeleteUrl === this.getRoutePath(route)) {\r\n // 对于新开的又即将关闭的tab,不缓存\r\n toBeDeleteUrl = \"\";\r\n return false;\r\n }\r\n return !excludeRoutes.includes(route.routeConfig.path);\r\n }\r\n\r\n store(route: ActivatedRouteSnapshot, handle: DetachedRouteHandle): void {\r\n // console.log(\"store\", this.getRoutePath(route));\r\n // console.log(\"store\", storedRoutes);\r\n storedRoutes[this.getRoutePath(route)] = handle;\r\n }\r\n\r\n shouldAttach(route: ActivatedRouteSnapshot): boolean {\r\n return !!storedRoutes[this.getRoutePath(route)];\r\n }\r\n\r\n retrieve(route: ActivatedRouteSnapshot): DetachedRouteHandle {\r\n if (!route.routeConfig) return null;\r\n if (route.routeConfig.loadChildren) return null;\r\n return storedRoutes[this.getRoutePath(route)];\r\n }\r\n\r\n shouldReuseRoute(\r\n future: ActivatedRouteSnapshot,\r\n curr: ActivatedRouteSnapshot\r\n ): boolean {\r\n if (future.routeConfig === curr.routeConfig) {\r\n if (future.children.length === 0 && curr.children.length === 0) {\r\n // 无子路由时, 通过params和queryParams判断是否复用路由\r\n return (\r\n JSON.stringify(future.params) === JSON.stringify(curr.params) &&\r\n JSON.stringify(future.queryParams) ===\r\n JSON.stringify(curr.queryParams)\r\n );\r\n }\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n getRoutePath(route): string {\r\n if (route.routeConfig) {\r\n const queryParams = new URLSearchParams(route.queryParams).toString();\r\n const url = route._urlSegment.segments.map((v) => v.path).join(\"/\");\r\n return \"/\" + url + (queryParams ? \"?\" + queryParams : \"\");\r\n }\r\n return \"\";\r\n }\r\n\r\n clearCache(path: string) {\r\n // console.log(\"clearCache\", storedRoutes, path);\r\n toBeDeleteUrl = path;\r\n delete storedRoutes[path]; // 清除指定路径的缓存\r\n }\r\n}\r\n","// 组件类\r\nimport {\r\n ChangeDetectorRef,\r\n Component,\r\n HostListener,\r\n Input,\r\n OnInit,\r\n} from \"@angular/core\";\r\nimport {\r\n ActivatedRoute,\r\n NavigationEnd,\r\n Router,\r\n RouterOutlet,\r\n} from \"@angular/router\";\r\nimport { CommonFunctionService } from \"../../service/common-function.service\";\r\nimport { KeepAliveService } from \"../../service/keep-alive.service\";\r\nimport { filter } from \"rxjs/operators\";\r\n\r\n@Component({\r\n selector: \"rs-multi-tab\",\r\n templateUrl: \"./index.component.html\",\r\n styleUrls: [\"./index.component.scss\"],\r\n})\r\nexport class MultiTabComponent implements OnInit {\r\n constructor(\r\n public router: Router,\r\n public cf: CommonFunctionService,\r\n public activatedRoute: ActivatedRoute,\r\n public keepAlive: KeepAliveService,\r\n private ref: ChangeDetectorRef\r\n ) {}\r\n @Input() singleReuseUrls: string[] = []; //只能单个缓存的url\r\n\r\n TAB_WIDTH = 164;\r\n GAP_NORMAL = 54;\r\n GAP_SMALL = 30;\r\n textGap; // 文本与边框的总间距\r\n foo: RouterOutlet;\r\n comRef: any;\r\n tabList = [];\r\n selectedTab: number = 0;\r\n maxTabs: number = 10;\r\n screenWidth: number = window.innerWidth; // 初始化屏幕宽度\r\n @HostListener(\"window:resize\", [\"$event\"])\r\n onResize(event) {\r\n this.screenWidth = window.innerWidth; // 更新屏幕宽度\r\n this.setEllipsisTitle();\r\n }\r\n\r\n ngOnInit() {\r\n this.initTab();\r\n this.router.events\r\n .pipe(filter((event) => event instanceof NavigationEnd))\r\n .subscribe(() => {\r\n const navigation = this.router.getCurrentNavigation(); // 获取当前导航\r\n if (navigation) {\r\n const state = navigation.extras.state; // 获取传递的 state\r\n const currentRoute = this.router.routerState.root.firstChild;\r\n if (currentRoute) {\r\n this.setTab(\r\n this.router.url,\r\n currentRoute.snapshot.routeConfig.path,\r\n state && state.title\r\n );\r\n }\r\n }\r\n });\r\n this.setEllipsisTitle();\r\n }\r\n\r\n setEllipsisTitle(title?) {\r\n this.textGap = this.GAP_NORMAL;\r\n if (this.screenWidth <= 1100) {\r\n this.textGap = this.GAP_SMALL;\r\n }\r\n let { allWidth, leftWidth, rightWidth } = this.calcTabWidth();\r\n let width = Math.floor(\r\n (allWidth - rightWidth) / (this.tabList && this.tabList.length)\r\n );\r\n\r\n if (title) {\r\n return this.cf.setMiddleEllipsis(\r\n title,\r\n width > this.TAB_WIDTH\r\n ? this.TAB_WIDTH - this.textGap\r\n : width - this.textGap,\r\n 12\r\n );\r\n } else {\r\n this.tabList.forEach((ele, idx) => {\r\n ele.displayTitle = this.cf.setMiddleEllipsis(\r\n ele.title,\r\n width > this.TAB_WIDTH\r\n ? this.TAB_WIDTH - this.textGap\r\n : width - this.textGap,\r\n 12\r\n );\r\n });\r\n }\r\n }\r\n\r\n calcTabWidth() {\r\n const wrap = document.querySelector(\".rs-multi-tab\");\r\n const ulElement = document.querySelector(\".rs-multi-tab > ul\");\r\n const refreshTabDiv = document.querySelector(\".rs-multi-tab .refresh-tab\");\r\n let allWidth;\r\n let leftWidth;\r\n let rightWidth;\r\n if (wrap && ulElement && refreshTabDiv) {\r\n // 获取元素的位置信息\r\n const wrapRect = wrap.getBoundingClientRect();\r\n const ulRect = ulElement.getBoundingClientRect();\r\n const refreshTabRect = refreshTabDiv.getBoundingClientRect();\r\n allWidth = wrapRect.width;\r\n leftWidth = ulRect.width;\r\n rightWidth = refreshTabRect.width;\r\n }\r\n return {\r\n allWidth,\r\n leftWidth,\r\n rightWidth,\r\n };\r\n }\r\n initTab() {\r\n let TabCache = JSON.parse(sessionStorage.getItem(\"TabCache\"));\r\n this.tabList = TabCache || [];\r\n }\r\n\r\n closeTab(tab, idx) {\r\n this.tabList = this.tabList.filter((ele) => ele.url !== tab.url);\r\n this.clearCache(tab.url);\r\n if (this.selectedTab === idx) {\r\n const targetIdx = Math.max(0, idx - 1);\r\n this.changeTab(this.tabList[targetIdx], targetIdx);\r\n }\r\n this.setEllipsisTitle();\r\n sessionStorage.setItem(\"TabCache\", JSON.stringify(this.tabList));\r\n this.ref.markForCheck();\r\n }\r\n\r\n changeTab(tab, idx) {\r\n this.router.navigateByUrl(tab.url);\r\n this.selectedTab = idx;\r\n this.ref.markForCheck();\r\n }\r\n\r\n addTab(url, title) {\r\n if (this.tabList.length >= this.maxTabs) {\r\n this.closeTab(this.tabList[0], 0); // 删除第一个\r\n }\r\n this.tabList.push({\r\n url: url,\r\n title: title || \"default\",\r\n displayTitle: this.setEllipsisTitle(title || \"default\"),\r\n });\r\n this.selectedTab = this.tabList.length - 1;\r\n this.setEllipsisTitle();\r\n sessionStorage.setItem(\"TabCache\", JSON.stringify(this.tabList));\r\n this.ref.markForCheck();\r\n }\r\n\r\n public setTab(url, pureUrl, title) {\r\n const isExistIdx = this.tabList.findIndex((ele) => ele.url === url);\r\n if (isExistIdx === -1) {\r\n const singleIdx = this.singleReuseUrls.findIndex(\r\n (ele) => ele === pureUrl\r\n );\r\n if (singleIdx !== -1) {\r\n this.tabList = this.tabList.filter(\r\n (ele) => !ele.url.includes(this.singleReuseUrls[singleIdx])\r\n );\r\n this.keepAlive.clearCache(url);\r\n }\r\n this.addTab(url, title);\r\n } else {\r\n this.selectedTab = isExistIdx;\r\n this.ref.markForCheck();\r\n }\r\n }\r\n\r\n refreshTab() {\r\n this.keepAlive.clearCache(this.tabList[this.selectedTab].url);\r\n const currentUrl = this.router.url; // 获取当前 URL\r\n this.router.navigateByUrl(\"/\", { skipLocationChange: true }).then(() => {\r\n this.router.navigateByUrl(currentUrl); // 重新导航到当前 URL\r\n });\r\n }\r\n\r\n clearCache(url) {\r\n this.keepAlive.clearCache(url); // 调用自定义策略的清除缓存方法\r\n }\r\n}\r\n","// 组件类\r\nimport {\r\n Component,\r\n ContentChild,\r\n EventEmitter,\r\n Input,\r\n OnInit,\r\n Output,\r\n} from \"@angular/core\";\r\n\r\n@Component({\r\n selector: \"rs-header\",\r\n templateUrl: \"./index.component.html\",\r\n styleUrls: [\"./index.component.scss\"],\r\n})\r\nexport class RSHeaderComponent implements OnInit {\r\n @Input() isCollapsed: boolean = false; // 接收输入属性\r\n\r\n @Input() lastLoginTime = new Date();\r\n\r\n @Input()\r\n set langOptions(options: any[]) {\r\n this._langOptions = options;\r\n if (options && options.length > 0) {\r\n this.currentLang = options.find((e) => e.defaultLang);\r\n }\r\n }\r\n\r\n get langOptions(): any[] {\r\n return this._langOptions;\r\n }\r\n\r\n @Output()\r\n toggleMenu = new EventEmitter();\r\n\r\n @Output()\r\n changeLanguage = new EventEmitter();\r\n\r\n private _langOptions = [];\r\n\r\n currentLang: any;\r\n public translation;\r\n\r\n ngOnInit() {\r\n this.translation = JSON.parse(localStorage.getItem(\"translation\")) || {};\r\n }\r\n\r\n onToggleMenu() {\r\n this.toggleMenu.emit(!this.isCollapsed);\r\n }\r\n\r\n selectLanguage(event) {\r\n this.currentLang = this.langOptions.find(\r\n (item) => item.text === event.item.text\r\n );\r\n this.changeLanguage.emit(this.currentLang.languageCode);\r\n }\r\n}\r\n","// 组件类\r\nimport { Component, ContentChild, Input, OnInit } from \"@angular/core\";\r\nimport { RSHeaderComponent } from \"../rs-header/index.component\";\r\n\r\n@Component({\r\n selector: \"rs-main-container\",\r\n templateUrl: \"./index.component.html\",\r\n styleUrls: [\"./index.component.scss\"],\r\n})\r\nexport class MainContainerComponent implements OnInit {\r\n @ContentChild(RSHeaderComponent, { static: true }) headerRef;\r\n\r\n @Input() isCollapsed: boolean = false; // 接收输入属性\r\n @Input() singleReuseUrls: string[] = []; //只能单个缓存的url\r\n ngOnInit() {}\r\n\r\n onRightAsideClick() {\r\n const screenWidth = window.innerWidth;\r\n if (screenWidth <= 992 && this.isCollapsed) {\r\n this.headerRef.onToggleMenu();\r\n }\r\n }\r\n}\r\n","// 组件类\r\nimport {\r\n Component,\r\n OnInit,\r\n} from '@angular/core';\r\n\r\n@Component({\r\n selector: 'rs-footer',\r\n templateUrl: './index.component.html',\r\n styleUrls: ['./index.component.scss'],\r\n})\r\nexport class RSFooterComponent implements OnInit {\r\n today = new Date();\r\n ngOnInit() {\r\n }\r\n}\r\n","// 组件类\r\nimport { Component, EventEmitter, Input, OnInit, Output } from \"@angular/core\";\r\nimport { Router, NavigationEnd } from \"@angular/router\";\r\nimport { filter } from \"rxjs/operators\";\r\n\r\n@Component({\r\n selector: \"rs-aside\",\r\n templateUrl: \"./index.component.html\",\r\n styleUrls: [\"./index.component.scss\"],\r\n})\r\nexport class RSAsideComponent implements OnInit {\r\n constructor(public router: Router) {}\r\n @Output()\r\n toggleMenu = new EventEmitter();\r\n @Input() isCollapsed: boolean = false; // 接收输入属性\r\n @Input() navList = [];\r\n\r\n currentNav = \"\";\r\n ngOnInit() {\r\n this.currentNav = this.router.url;\r\n // 监听路由变化\r\n this.router.events\r\n .pipe(filter((event) => event instanceof NavigationEnd))\r\n .subscribe(() => {\r\n this.currentNav = this.router.url;\r\n });\r\n }\r\n onNavClick(item) {\r\n this.currentNav = item.url;\r\n this.router.navigate([item.url], { state: { title: item.label } });\r\n const screenWidth = window.innerWidth;\r\n if (screenWidth <= 992 && this.isCollapsed) {\r\n this.toggleMenu.emit(false);\r\n }\r\n }\r\n}\r\n","// 组件类\r\nimport { Component, EventEmitter, Input, OnInit, Output } from \"@angular/core\";\r\n\r\n@Component({\r\n selector: \"rs-tag-input\",\r\n templateUrl: \"./index.component.html\",\r\n styleUrls: [\"./index.component.scss\"],\r\n})\r\nexport class TagInputComponent implements OnInit {\r\n @Input() value = [];\r\n @Input() fields;\r\n @Input() disabled = false;\r\n @Input() error = false;\r\n @Input() inputMinlength = 3;\r\n @Input() inputMaxlength = 30;\r\n\r\n @Output()\r\n valueChange = new EventEmitter();\r\n\r\n ngOnInit() {\r\n \r\n }\r\n onRemoveTag(tag) {\r\n const tagsList = this.value.filter((i) => i !== tag);\r\n this.valueChange.emit(tagsList);\r\n }\r\n\r\n onAddTag(event) {\r\n const inputValue = event.target.value;\r\n if (inputValue && this.verifyInputValue(inputValue)) {\r\n this.valueChange.emit([...this.value, inputValue]);\r\n event.target.value = \"\";\r\n }\r\n }\r\n inputError = false\r\n verifyInputValue(inputValue) {\r\n this.inputError = false\r\n const inputValueLength = inputValue.length;\r\n if (\r\n this.value.includes(inputValue) ||\r\n inputValueLength > this.inputMaxlength ||\r\n inputValueLength < this.inputMinlength\r\n ) {\r\n this.inputError = true\r\n return false;\r\n }\r\n return true;\r\n }\r\n onInput(){\r\n this.inputError = false\r\n }\r\n}\r\n","// 组件类\r\nimport { Component, EventEmitter, Input, OnInit, Output } from \"@angular/core\";\r\n\r\n@Component({\r\n selector: \"rs-radio-group\",\r\n templateUrl: \"./index.component.html\",\r\n styleUrls: [\"./index.component.scss\"],\r\n})\r\nexport class RadioGroupComponent implements OnInit {\r\n @Input() value;\r\n @Input() dataSource = [];\r\n @Input() orientation: 'horizontal' | 'vertical' = 'horizontal';\r\n @Input() fields = { text: 'text', value: 'value', disabled: 'disabled' }\r\n @Input() disabled = false;\r\n @Input() error = false;\r\n\r\n @Output()\r\n valueChange = new EventEmitter();\r\n\r\n ngOnInit() {\r\n }\r\n onChange(event){\r\n const value = event.value\r\n this.valueChange.emit(value);\r\n }\r\n}\r\n","// 组件类\r\nimport { ChangeDetectorRef, Component, EventEmitter, Input, OnInit, Output } from \"@angular/core\";\r\n\r\n@Component({\r\n selector: \"rs-checkbox-group\",\r\n templateUrl: \"./index.component.html\",\r\n styleUrls: [\"./index.component.scss\"],\r\n})\r\nexport class CheckboxGroupComponent implements OnInit {\r\n constructor(\r\n private ref: ChangeDetectorRef,\r\n ) {}\r\n @Input() name; // 分组凭证\r\n @Input() value = [];\r\n @Input() dataSource = [];\r\n @Input() orientation: \"horizontal\" | \"vertical\" = \"horizontal\";\r\n @Input() fields = { text: \"text\", value: \"value\", disabled: \"disabled\" };\r\n @Input() disabled = false;\r\n @Input() error = false;\r\n\r\n @Output()\r\n valueChange = new EventEmitter();\r\n\r\n ngOnInit() {\r\n console.log('first',this.value)\r\n }\r\n onChange(event, option) {\r\n const originalValue = this.value;\r\n let result;\r\n if (event.checked) {\r\n result = [...originalValue, option[this.fields.value]];\r\n } else {\r\n result = originalValue.filter((val) => val !== option[this.fields.value]);\r\n }\r\n this.valueChange.emit(result);\r\n this.ref.markForCheck();\r\n }\r\n}\r\n","// 组件类\r\nimport { Component, EventEmitter, Input, OnInit, Output } from \"@angular/core\";\r\n\r\n@Component({\r\n selector: \"rs-switch-input\",\r\n templateUrl: \"./index.component.html\",\r\n styleUrls: [\"./index.component.scss\"],\r\n})\r\nexport class SwitchInputComponent implements OnInit {\r\n @Input() value;\r\n @Input() text;\r\n @Input() orientation: 'front' | 'behind' = 'front';\r\n @Input() disabled = false;\r\n @Input() error = false;\r\n\r\n @Output()\r\n valueChange = new EventEmitter();\r\n\r\n ngOnInit() {}\r\n onChange(event) {\r\n const value = event.checked;\r\n this.valueChange.emit(value);\r\n }\r\n onClick(){\r\n const value = !this.value;\r\n this.valueChange.emit(value);\r\n }\r\n}\r\n","import { Injectable } from \"@angular/core\";\r\nimport { MatIconRegistry } from \"@angular/material/icon\";\r\nimport { DomSanitizer } from \"@angular/platform-browser\";\r\n\r\n@Injectable()\r\nexport class IconLoaderService {\r\n constructor(\r\n private registry: MatIconRegistry,\r\n private domSanitizer: DomSanitizer\r\n ) {}\r\n\r\n registerIcons(list) {\r\n list.forEach(({ name, path }) => {\r\n this.registry.addSvgIcon(\r\n name,\r\n this.domSanitizer.bypassSecurityTrustResourceUrl(path)\r\n );\r\n });\r\n }\r\n}\r\n","import { AfterViewInit, Component, Inject } from \"@angular/core\";\r\nimport { MAT_SNACK_BAR_DATA, MatSnackBar } from \"@angular/material/snack-bar\";\r\n\r\nexport type LoadingProgress = {\r\n\tdone: boolean;\r\n\tpercent?: number;\r\n};\r\n\r\nexport interface NotificationConfig {\r\n\tmessage: string;\r\n\tsnackBar: MatSnackBar;\r\n\tloadingCallback: (callback: (progress: LoadingProgress) => void) => void;\r\n\tstatus?: \"Success\" | \"Warning\" | \"Error\";\r\n\ttype?: \"Text\" | \"Detail\" | \"Loading\" | \"Progress\";\r\n\ttitle?: string;\r\n};\r\n\r\n@Component({\r\n\tselector: \"kt-new-action-notification\",\r\n\ttemplateUrl: \"./new-action-notification.component.html\",\r\n\tstyleUrls: [\"./new-action-notification.component.scss\"],\r\n})\r\nexport class NewActionNotificationComponent implements AfterViewInit {\r\n\tcollapsed = false;\r\n\r\n\tconstructor(\r\n\t\t@Inject(MAT_SNACK_BAR_DATA)\r\n\t\tpublic data: NotificationConfig\r\n\t) {}\r\n\r\n\tngAfterViewInit() {\r\n\t\tif (this.config.type === \"Loading\") {\r\n\t\t\tthis.config.loadingCallback((progress) => {\r\n\t\t\t\tif (progress.done) {\r\n\t\t\t\t\treturn this.config.snackBar.dismiss();\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n\r\n\tcloseNotification() {\r\n\t\tif (this.config.type === \"Loading\") {\r\n\t\t\tthis.collapsed = true;\r\n\t\t} else {\r\n\t\t\tthis.config.snackBar.dismiss();\r\n\t\t}\r\n\t}\r\n\r\n\texpandNotification() {\r\n\t\tif (this.config.type === \"Loading\" && this.collapsed) {\r\n\t\t\tthis.collapsed = false;\r\n\t\t}\r\n\t}\r\n\r\n\tget config() {\r\n\t\treturn {\r\n\t\t\tstatus: \"Success\",\r\n\t\t\ttype: \"Text\",\r\n\t\t\t...this.data,\r\n\t\t};\r\n\t}\r\n}\r\n","import { Component, Inject, OnInit } from \"@angular/core\";\r\nimport { MAT_DIALOG_DATA, MatDialogRef } from \"@angular/material/dialog\";\r\n\r\nexport interface DialogConfig {\r\n title?: string;\r\n description?: string;\r\n saveBtnLabel?: string;\r\n cancelBtnLabel?: string;\r\n showErrorIcon?: boolean;\r\n hideCloseIcon?: boolean;\r\n size?: string;\r\n hideSaveBtn?: boolean;\r\n hideCloseBtn?: boolean;\r\n}\r\n@Component({\r\n selector: \"kt-common-delete-dialog\",\r\n templateUrl: \"./index.component.html\",\r\n styleUrls: [\"./index.component.scss\"],\r\n})\r\nexport class CommonDeleteComponent implements OnInit {\r\n translation;\r\n title = \"\";\r\n saveBtnLabel = \"\";\r\n cancelBtnLabel = \"\";\r\n description = \"\";\r\n size = \"small\";\r\n\r\n constructor(\r\n @Inject(MAT_DIALOG_DATA)\r\n public data: DialogConfig,\r\n public dialogRef: MatDialogRef<CommonDeleteComponent>\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n this.translation = JSON.parse(localStorage.getItem(\"translation\")) || {};\r\n this.title =\r\n this.data.title || this.translation[\"DELETE_RECORD\"] || \".DELETE_RECORD\";\r\n this.saveBtnLabel =\r\n this.data.saveBtnLabel || this.translation.DELETE || \".DELETE\";\r\n this.cancelBtnLabel =\r\n this.data.cancelBtnLabel || this.translation.CANCEL || \".CANCEL\";\r\n this.description =\r\n this.data.description ||\r\n this.translation.IF_YOU_DELETE_THIS_RECORD_WARNING ||\r\n \".If you delete this record, you won't be able to recover it. Do you want to delete it?\";\r\n this.size = this.data.size || \"small\";\r\n }\r\n\r\n onSave(e) {\r\n this.dialogRef.close(e);\r\n }\r\n}\r\n","// Angular\r\nimport { Injectable } from \"@angular/core\";\r\nimport { MatSnackBar } from \"@angular/material/snack-bar\";\r\nimport { MatDialog } from \"@angular/material/dialog\";\r\n\r\nimport {\r\n NewActionNotificationComponent,\r\n NotificationConfig,\r\n} from \"../dialog/new-action-notification/new-action-notification.component\";\r\n\r\nimport { CommonDeleteComponent } from \"../dialog/common-delete-dialog/index.component\";\r\n\r\nexport enum MessageType {\r\n Create,\r\n Read,\r\n Update,\r\n Delete,\r\n}\r\n\r\n@Injectable({\r\n providedIn: \"root\",\r\n})\r\nexport class DialogService {\r\n /**\r\n * Service constructor\r\n *\r\n * @param snackBar: MatSnackBar\r\n * @param dialog: MatDialog\r\n */\r\n translation = null;\r\n constructor(private snackBar: MatSnackBar, private dialog: MatDialog) {\r\n this.translation = JSON.parse(localStorage.getItem(\"translation\")) || {}\r\n }\r\n\r\n showLoadingNotification(\r\n config: Omit<\r\n NotificationConfig,\r\n \"message\" | \"snackBar\" | \"status\" | \"type\"\r\n > & { message?: string }\r\n ) {\r\n return this.snackBar.openFromComponent(NewActionNotificationComponent, {\r\n data: {\r\n ...config,\r\n message:\r\n config.message ||\r\n this.translation.DOWNLOAD_IS_IN_PROGRESS ||\r\n \".Download is in progress\",\r\n snackBar: this.snackBar,\r\n type: \"Loading\",\r\n },\r\n verticalPosition: \"top\",\r\n horizontalPosition: \"right\",\r\n panelClass: \"new-action-notification\",\r\n });\r\n }\r\n\r\n showNotification(\r\n message: string,\r\n config?: Omit<\r\n NotificationConfig,\r\n \"message\" | \"snackBar\" | \"loadingCallback\" | \"type\"\r\n > & {\r\n duration?: number;\r\n type?: Exclude<NotificationConfig[\"type\"], \"Loading\">;\r\n }\r\n ) {\r\n return this.snackBar.openFromComponent(NewActionNotificationComponent, {\r\n data: {\r\n message,\r\n snackBar: this.snackBar,\r\n ...(config || {}),\r\n },\r\n duration: (config && config.duration) || 3000,\r\n verticalPosition: \"top\",\r\n horizontalPosition: \"right\",\r\n panelClass: \"new-action-notification\",\r\n });\r\n }\r\n // 删除确认弹窗\r\n deleteElement() {\r\n return this.dialog.open(CommonDeleteComponent, {\r\n data: {},\r\n panelClass: \"rs-dialog-wrap\",\r\n });\r\n }\r\n\r\n // 自定义文案通用弹窗的提示框\r\n showCommonDilaog(data?: {\r\n title?: string;\r\n description?: string;\r\n saveBtnLabel?: string;\r\n cancelBtnLabel?: string;\r\n showErrorIcon?: boolean;\r\n size?: string;\r\n hideSaveBtn?: boolean;\r\n }) {\r\n return this.dialog.open(CommonDeleteComponent, {\r\n data,\r\n panelClass: \"rs-dialog-wrap\",\r\n });\r\n }\r\n\r\n // 有改动未保存 的提示框\r\n showUnsavedChanges(data?: {\r\n title?: string;\r\n description?: string;\r\n saveBtnLabel?: string;\r\n cancelBtnLabel?: string;\r\n showErrorIcon?: boolean;\r\n size?: string;\r\n hideSaveBtn?: boolean;\r\n }) {\r\n let defaultData = {\r\n title: this.translation.UNSAVED_CHANGES || \".UNSAVED_CHANGES\",\r\n description:\r\n this.translation\r\n .YOU_HAVE_UNSAVED_CHANGED_ARE_YOU_SURE_YOU_WANT_TO_DISCARD_THEM ||\r\n \".YOU_HAVE_UNSAVED_CHANGED_ARE_YOU_SURE_YOU_WANT_TO_DISCARD_THEM\",\r\n saveBtnLabel: this.translation.DISCARD_CHANGES || \".DISCARD_CHANGES\",\r\n cancelBtnLabel: this.translation.CONTINUE_EDITING || \".CONTINUE_EDITING\",\r\n };\r\n if (data) {\r\n data = Object.assign(defaultData, data);\r\n } else {\r\n data = defaultData;\r\n }\r\n // data.size = \"medium\";\r\n return this.dialog.open(CommonDeleteComponent, {\r\n data,\r\n panelClass: \"rs-dialog-wrap\",\r\n });\r\n }\r\n\r\n // 保存成功提示\r\n public showSucMsg(res) {\r\n this.showMessage(res, MessageType.Create);\r\n }\r\n\r\n // 更新成功提示\r\n public showUpdateMsg(res) {\r\n this.showMessage(res, MessageType.Update);\r\n }\r\n\r\n // 删除成功提示\r\n public showDelMsg(res) {\r\n this.showMessage(res, MessageType.Delete);\r\n }\r\n\r\n // 通用提示\r\n private showMessage(res, type = MessageType.Create) {\r\n let _saveMessage = this.translation.SAVESUCCESS || \".SAVESUCCESS\";\r\n switch (type) {\r\n case MessageType.Update:\r\n _saveMessage = this.translation.UPDATESUCCESS || \".UPDATESUCCESS\";\r\n break;\r\n case MessageType.Delete:\r\n _saveMessage = this.translation.DELETESUCCESS || \".DELETESUCCESS\";\r\n break;\r\n }\r\n if (res.status === \"ERROR\") _saveMessage = res.messages[0].message;\r\n this.showNotification(_saveMessage, {\r\n status: res.status === \"ERROR\" ? \"Error\" : \"Success\",\r\n });\r\n }\r\n}\r\n","import {\r\n\tComponent,\r\n\tOnInit,\r\n\tInput,\r\n\tContentChild,\r\n\tOutput,\r\n\tEventEmitter,\r\n} from \"@angular/core\";\r\n\r\nimport { MatDialogRef } from \"@angular/material/dialog\";\r\n\r\n@Component({\r\n\tselector: \"kt-common-dialog\",\r\n\tstyleUrls: [\"./index.component.scss\"],\r\n\ttemplateUrl: \"./index.component.html\",\r\n})\r\nexport class CommonDialogComponent implements OnInit {\r\n\tpublic translation;\r\n\r\n\t// 隐藏元素相关属性\r\n\t@Input() hideHeader = false;\r\n\t@Input() hideCloseIcon = false;\r\n\t@Input() hideCloseBtn = false;\r\n\t@Input() hideSaveBtn = false;\r\n\t@Input() saveBtnLabel = \"\";\r\n\t@Input() cancelBtnLabel = \"\";\r\n\t@Input() showErrorIcon = false;\r\n\r\n\t// 显示相关属性\r\n\t@Input() size = \"\";\r\n\t@Input() title = \"Dialog\";\r\n\t@Input() loading = false;\r\n\t@Output() saveEmit: EventEmitter<Function> = new EventEmitter<Function>();\r\n\t@Output() closeEmit: EventEmitter<Function> = new EventEmitter<Function>();\r\n\tconstructor(public dialogRef: MatDialogRef<CommonDialogComponent>) {}\r\n\r\n\t// 控制底部插槽有内容时隐藏默认按钮\r\n\t@ContentChild(\"footerSlot\", { static: true }) footerContent: any;\r\n\tcustomFooter: boolean = false;\r\n\tngAfterContentInit() {\r\n\t\tthis.customFooter = !!this.footerContent;\r\n\t}\r\n\r\n\tngOnInit() {\r\n\t\tthis.getInfo();\r\n\t}\r\n\r\n\tonClose(res?) {\r\n\t\tthis.dialogRef.close(res);\r\n\t\tthis.closeEmit.emit(res);\r\n\t}\r\n\r\n\tonSave() {\r\n\t\t// 这里把关闭事件emit上去,但是必须使用箭头函数保存this对象\r\n\t\tthis.saveEmit.emit((res) => {\r\n\t\t\tthis.onClose(res);\r\n\t\t});\r\n\t}\r\n\r\n\tprivate getInfo() {\r\n\t\tthis.translation = JSON.parse(localStorage.getItem(\"translation\")) || {};\r\n\t\tthis.saveBtnLabel =\r\n\t\t\tthis.saveBtnLabel || this.translation.SAVE || \".SAVE\";\r\n\t\tthis.cancelBtnLabel =\r\n\t\t\tthis.cancelBtnLabel || this.translation.CANCEL || \".CANCEL\";\r\n\t}\r\n}\r\n","import { NgModule } from \"@angular/core\";\r\nimport { ReactiveFormsModule, FormsModule } from \"@angular/forms\";\r\nimport { HttpClientModule } from \"@angular/common/http\";\r\nimport { CommonModule } from \"@angular/common\";\r\n\r\nimport {\r\n GridModule,\r\n PageService,\r\n SortService,\r\n FilterService,\r\n ExcelExportService,\r\n EditService,\r\n ResizeService,\r\n ToolbarService,\r\n ColumnChooserService,\r\n AggregateService,\r\n ColumnMenuService,\r\n DetailRowService,\r\n SelectionService,\r\n PagerModule,\r\n GroupService,\r\n GridAllModule,\r\n} from \"@syncfusion/ej2-angular-grids\";\r\nimport {\r\n SwitchModule,\r\n CheckBoxModule,\r\n RadioButtonModule,\r\n ButtonModule,\r\n} from \"@syncfusion/ej2-angular-buttons\";\r\nimport { DiagramModule } from \"@syncfusion/ej2-angular-diagrams\";\r\nimport { TooltipModule, DialogModule } from \"@syncfusion/ej2-angular-popups\";\r\nimport {\r\n DatePickerModule,\r\n DateRangePickerModule,\r\n DateTimePickerModule,\r\n} from \"@syncfusion/ej2-angular-calendars\";\r\n\r\nimport {\r\n TextBoxModule,\r\n ColorPickerModule,\r\n UploaderModule,\r\n NumericTextBoxModule,\r\n} from \"@syncfusion/ej2-angular-inputs\";\r\nimport {\r\n DropDownListModule,\r\n MultiSelectAllModule,\r\n AutoCompleteModule,\r\n DropDownTreeModule,\r\n ListBoxModule,\r\n} from \"@syncfusion/ej2-angular-dropdowns\";\r\nimport {\r\n PivotViewAllModule,\r\n PivotFieldListAllModule,\r\n} from \"@syncfusion/ej2-angular-pivotview\";\r\nimport {\r\n ChartAllModule,\r\n AccumulationChartAllModule,\r\n RangeNavigatorAllModule,\r\n AccumulationChartModule,\r\n PieSeriesService,\r\n AccumulationLegendService,\r\n AccumulationTooltipService,\r\n AccumulationAnnotationService,\r\n AccumulationDataLabelService,\r\n} from \"@syncfusion/ej2-angular-charts\";\r\nimport { DashboardLayoutModule } from \"@syncfusion/ej2-angular-layouts\";\r\nimport {\r\n CarouselAllModule,\r\n ToolbarModule,\r\n TabModule,\r\n} from \"@syncfusion/ej2-angular-navigations\";\r\nimport {\r\n PdfViewerModule,\r\n LinkAnnotationService,\r\n BookmarkViewService,\r\n MagnificationService,\r\n ThumbnailViewService,\r\n ToolbarService as PbfToolbarService,\r\n NavigationService,\r\n TextSearchService,\r\n TextSelectionService,\r\n PrintService,\r\n} from \"@syncfusion/ej2-angular-pdfviewer\";\r\nimport {\r\n DropDownButtonModule,\r\n SplitButtonModule,\r\n} from \"@syncfusion/ej2-angular-splitbuttons\";\r\nimport {\r\n RichTextEditorAllModule,\r\n HtmlEditorService,\r\n ToolbarService as RichEditorToolbarService,\r\n} from \"@syncfusion/ej2-angular-richtexteditor\";\r\n\r\nimport { MatSnackBarModule } from \"@angular/material/snack-bar\";\r\nimport { MatDialogModule } from \"@angular/material/dialog\";\r\nimport { MatIconModule } from \"@angular/material/icon\";\r\n\r\n// services\r\nimport { CommonFunctionService } from \"./service/common-function.service\";\r\nimport { IconLoaderService } from \"./service/icon-loader.service\";\r\nimport { DialogService } from \"./service/dialog.service\";\r\nimport { KeepAliveService } from \"./service/keep-alive.service\";\r\n\r\nimport { CommonGridComponent } from \"./common-grid/index.component\";\r\nimport { FloatBoxComponent } from \"./float-box/index.component\";\r\n\r\nimport { RsPageListComponent } from \"./layout/page-list/index.component\";\r\nimport { RsPageTabComponent } from \"./layout/page-tab/index.component\";\r\nimport { GridBoxComponent } from \"./layout/grid-box/index.component\";\r\n\r\nimport { MainContainerComponent } from \"./layout/main-container/index.component\";\r\nimport { RSHeaderComponent } from \"./layout/rs-header/index.component\";\r\nimport { RSFooterComponent } from \"./layout/rs-footer/index.component\";\r\nimport { RSAsideComponent } from \"./layout/rs-aside/index.component\";\r\nimport { MultiTabComponent } from \"./layout/multi-tab/index.component\";\r\n\r\nimport { TagInputComponent } from \"./form/tag-input/index.component\";\r\nimport { RadioGroupComponent } from \"./form/radio-group/index.component\";\r\nimport { CheckboxGroupComponent } from \"./form/checkbox-group/index.component\";\r\nimport { SwitchInputComponent } from \"./form/switch-input/index.component\";\r\n\r\nimport { NewActionNotificationComponent } from \"./dialog/new-action-notification/new-action-notification.component\";\r\nimport { CommonDialogComponent } from \"./dialog/common-dialog/index.component\";\r\nimport { CommonDeleteComponent } from \"./dialog/common-delete-dialog/index.component\";\r\n\r\n@NgModule({\r\n declarations: [\r\n CommonGridComponent,\r\n FloatBoxComponent,\r\n RsPageListComponent,\r\n RsPageTabComponent,\r\n GridBoxComponent,\r\n RSHeaderComponent,\r\n RSFooterComponent,\r\n RSAsideComponent,\r\n MultiTabComponent,\r\n MainContainerComponent,\r\n TagInputComponent,\r\n RadioGroupComponent,\r\n CheckboxGroupComponent,\r\n SwitchInputComponent,\r\n NewActionNotificationComponent,\r\n CommonDialogComponent,\r\n CommonDeleteComponent,\r\n ],\r\n imports: [\r\n CommonModule,\r\n HttpClientModule,\r\n ReactiveFormsModule,\r\n FormsModule,\r\n MatSnackBarModule,\r\n MatDialogModule,\r\n MatIconModule,\r\n GridModule,\r\n PagerModule,\r\n GridAllModule,\r\n SwitchModule,\r\n CheckBoxModule,\r\n RadioButtonModule,\r\n ButtonModule,\r\n DiagramModule,\r\n TooltipModule,\r\n DialogModule,\r\n DatePickerModule,\r\n DateRangePickerModule,\r\n DateTimePickerModule,\r\n TextBoxModule,\r\n ColorPickerModule,\r\n UploaderModule,\r\n NumericTextBoxModule,\r\n DropDownListModule,\r\n DropDownTreeModule,\r\n MultiSelectAllModule,\r\n AutoCompleteModule,\r\n ListBoxModule,\r\n PivotViewAllModule,\r\n PivotFieldListAllModule,\r\n ChartAllModule,\r\n AccumulationChartAllModule,\r\n RangeNavigatorAllModule,\r\n AccumulationChartModule,\r\n DashboardLayoutModule,\r\n CarouselAllModule,\r\n ToolbarModule,\r\n TabModule,\r\n PdfViewerModule,\r\n DropDownButtonModule,\r\n SplitButtonModule,\r\n RichTextEditorAllModule,\r\n ],\r\n providers: [\r\n PageService,\r\n SortService,\r\n FilterService,\r\n ExcelExportService,\r\n EditService,\r\n ResizeService,\r\n ToolbarService,\r\n ColumnChooserService,\r\n AggregateService,\r\n ColumnMenuService,\r\n DetailRowService,\r\n SelectionService,\r\n GroupService,\r\n PieSeriesService,\r\n AccumulationLegendService,\r\n AccumulationTooltipService,\r\n AccumulationAnnotationService,\r\n AccumulationDataLabelService,\r\n LinkAnnotationService,\r\n BookmarkViewService,\r\n MagnificationService,\r\n ThumbnailViewService,\r\n PbfToolbarService,\r\n NavigationService,\r\n TextSearchService,\r\n TextSelectionService,\r\n PrintService,\r\n HtmlEditorService,\r\n RichEditorToolbarService,\r\n\r\n CommonFunctionService,\r\n IconLoaderService,\r\n DialogService,\r\n KeepAliveService,\r\n ],\r\n exports: [\r\n CommonModule,\r\n HttpClientModule,\r\n ReactiveFormsModule,\r\n FormsModule,\r\n MatSnackBarModule,\r\n MatDialogModule,\r\n GridModule,\r\n PagerModule,\r\n GridAllModule,\r\n SwitchModule,\r\n CheckBoxModule,\r\n RadioButtonModule,\r\n ButtonModule,\r\n DiagramModule,\r\n TooltipModule,\r\n DialogModule,\r\n DatePickerModule,\r\n DateRangePickerModule,\r\n DateTimePickerModule,\r\n TextBoxModule,\r\n ColorPickerModule,\r\n UploaderModule,\r\n NumericTextBoxModule,\r\n DropDownListModule,\r\n DropDownTreeModule,\r\n MultiSelectAllModule,\r\n AutoCompleteModule,\r\n ListBoxModule,\r\n PivotViewAllModule,\r\n PivotFieldListAllModule,\r\n ChartAllModule,\r\n AccumulationChartAllModule,\r\n RangeNavigatorAllModule,\r\n AccumulationChartModule,\r\n DashboardLayoutModule,\r\n CarouselAllModule,\r\n ToolbarModule,\r\n TabModule,\r\n PdfViewerModule,\r\n DropDownButtonModule,\r\n SplitButtonModule,\r\n RichTextEditorAllModule,\r\n CommonGridComponent,\r\n FloatBoxComponent,\r\n RsPageListComponent,\r\n RsPageTabComponent,\r\n GridBoxComponent,\r\n RSHeaderComponent,\r\n RSFooterComponent,\r\n RSAsideComponent,\r\n MultiTabComponent,\r\n MainContainerComponent,\r\n TagInputComponent,\r\n RadioGroupComponent,\r\n CheckboxGroupComponent,\r\n SwitchInputComponent,\r\n ],\r\n entryComponents: [\r\n NewActionNotificationComponent,\r\n CommonDialogComponent,\r\n CommonDeleteComponent,\r\n ],\r\n})\r\nexport class RaiseCommonLibModule {}\r\n"]}
1
+ {"version":3,"sources":["../../../node_modules/tslib/tslib.es6.js","ng://raise-common-lib/lib/common-grid/index.component.ts","ng://raise-common-lib/lib/float-box/index.component.ts","ng://raise-common-lib/lib/layout/page-list/index.component.ts","ng://raise-common-lib/lib/layout/page-tab/index.component.ts","ng://raise-common-lib/lib/layout/grid-box/index.component.ts","ng://raise-common-lib/lib/service/common-function.service.ts","ng://raise-common-lib/lib/service/keep-alive.service.ts","ng://raise-common-lib/lib/layout/multi-tab/index.component.ts","ng://raise-common-lib/lib/layout/rs-header/index.component.ts","ng://raise-common-lib/lib/layout/main-container/index.component.ts","ng://raise-common-lib/lib/layout/rs-footer/index.component.ts","ng://raise-common-lib/lib/layout/rs-aside/index.component.ts","ng://raise-common-lib/lib/form/tag-input/index.component.ts","ng://raise-common-lib/lib/form/radio-group/index.component.ts","ng://raise-common-lib/lib/form/checkbox-group/index.component.ts","ng://raise-common-lib/lib/form/switch-input/index.component.ts","ng://raise-common-lib/lib/service/icon-loader.service.ts","ng://raise-common-lib/lib/dialog/new-action-notification/new-action-notification.component.ts","ng://raise-common-lib/lib/dialog/common-delete-dialog/index.component.ts","ng://raise-common-lib/lib/service/dialog.service.ts","ng://raise-common-lib/lib/dialog/common-dialog/index.component.ts","ng://raise-common-lib/lib/raise-common-lib.module.ts"],"names":["__assign","Object","assign","t","s","i","n","arguments","length","p","prototype","hasOwnProperty","call","apply","this","__read","o","m","Symbol","iterator","r","e","ar","next","done","push","value","error","__spread","concat","CommonGridComponent","ref","showCheckBox","loaded","hiddenLoaded","authorized","selectedDiffKey","gridHeight","gridId","resizeSettings","mode","filterSettings","type","fields","dataSource","allowPaging","clipMode","checkBoxWidth","contextMenuItems","selectionSettings","checkboxOnly","alwaysShowCheckbox","disableSystemRow","recordDoubleClick","EventEmitter","actionComplete","rowSelected","rowDeselected","onContextMenu","actionHandler","queryCellInfo","recordClick","actionBegin","rowDataBound","dataBound","exportQueryCellInfo","rowSelecting","selectId","startPaging","indexList","className","translation","JSON","parse","localStorage","getItem","ngOnInit","markForCheck","trackByFn","index","item","ngOnChanges","changes","currentValue","pageSettings","pageSizes","pageSize","_load","grid","localeStrings","EmptyRecord","YOU_DO_NOT_HAVE_THE_DATASET_PERMISSION","_dataBound","args","_this","pagerContainer","document","querySelector","querySelectorAll","forEach","element","removeAttribute","setTimeout","chooseRecords","emit","_exportQueryCellInfo","_recordDoubleClick","$event","_rowSelected","isHeaderCheckboxClicked","Array","isArray","data","isSelected","_data","_rowDeselected","filter","_onContextMenu","_actionBegin","requestType","search","keywords","selectRows","selectRow","getCurrentViewRecords","customiseCell","contextMenuOpen","rowInfo","rowData","enableItems","hideItems","contextMenuModule","contextMenu","refresh","disabled","disableItem","includes","iconCss","text","isHide","hideItem","cancel","_actionHandler","detectChanges","row","_recordClick","_rowSelecting","refreshColumns","refreshHeader","export","excelExportProperties","excelExport","getSelectedRecords","_rowDataBound","IsSystem","classList","add","clearSelection","addItem","addRecord","defaultRecord","isNew","startEdit","saveItem","endEdit","editItem","Number","deleteItem","selectedRecord","deleteRecord","cancelItem","closeEdit","showLoading","hideLoading","Component","selector","template","ChangeDetectorRef","ViewChild","static","Input","Output","FloatBoxComponent","_trigger","_animation","_fixed","openChange","FIXED_CONTAINER_ID","opened","onClickOutside","event","rootElement","nativeElement","contains","fixedContainerEl","window","removeEventListener","onMoveOutside","contentElement","defineProperty","_placement","_position","ngAfterViewInit","getFixedContainer","fixed","append","ngOnDestroy","remove","containerElement","getElementById","createElement","setAttribute","body","setFixedContentPosition","_a","getBoundingClientRect","y","top","x","left","width","height","translateX","translateY","placement","position","style","transform","onClickContainer","trigger","addEventListener","onMouseEnter","close","RsPageListComponent","customPageTitle","isInner","debouncedInput","debounce","onSeach","gridContent","searchValue","onInput","ContentChild","RsPageTabComponent","tabList","tabChange","animation","previous","effect","duration","easing","onTabClick","selectedIndex","GridBoxComponent","TemplateRef","toBeDeleteUrl","CommonFunctionService","testMethod","setMiddleEllipsis","maxWidth","fontSize","context","getContext","font","measureText","Math","floor","firstPart","secondPart","half","getPureUrl","url","decodeURIComponent","split","Injectable","providedIn","storedRoutes","Map","excludeRoutes","KeepAliveService","setExcludeRoutes","routes","shouldDetach","route","config","routeConfig","getRoutePath","children","loadChildren","store","handle","key","set","shouldAttach","has","retrieve","get","shouldReuseRoute","future","curr","stringify","params","queryParams","URLSearchParams","toString","_urlSegment","segments","map","v","path","join","clearCache","delete","clearAllCache","clear","MultiTabComponent","router","cf","activatedRoute","keepAlive","singleReuseUrls","TAB_WIDTH","GAP_NORMAL","GAP_SMALL","selectedTab","maxTabs","screenWidth","innerWidth","onResize","setEllipsisTitle","initTab","isExistIdx","findIndex","ele","events","pipe","NavigationEnd","subscribe","navigation","getCurrentNavigation","state","extras","skipLocationChange","currentRoute","routerState","root","firstChild","setTab","snapshot","title","textGap","calcTabWidth","allWidth","rightWidth","leftWidth","idx","displayTitle","wrap","ulElement","refreshTabDiv","wrapRect","ulRect","refreshTabRect","TabCache","sessionStorage","closeTab","tab","targetIdx","max","changeTab","setItem","navigateByUrl","addTab","pureUrl","singleIdx_1","refreshTab","currentUrl","then","Router","ActivatedRoute","HostListener","RSHeaderComponent","isCollapsed","lastLoginTime","Date","toggleMenu","changeLanguage","_langOptions","options","languageCode_1","currentLang","find","languageCode","onToggleMenu","selectLanguage","langOptions","MainContainerComponent","onRightAsideClick","headerRef","RSFooterComponent","today","RSAsideComponent","navList","currentNav","onNavClick","navigate","label","TagInputComponent","inputMinlength","inputMaxlength","valueChange","inputError","onRemoveTag","tag","tagsList","onAddTag","inputValue","target","verifyInputValue","inputValueLength","RadioGroupComponent","orientation","onChange","CheckboxGroupComponent","console","log","option","result","originalValue","checked","val","SwitchInputComponent","onClick","IconLoaderService","registry","domSanitizer","registerIcons","list","name","addSvgIcon","bypassSecurityTrustResourceUrl","MatIconRegistry","DomSanitizer","NewActionNotificationComponent","collapsed","loadingCallback","progress","snackBar","dismiss","closeNotification","expandNotification","status","Inject","MAT_SNACK_BAR_DATA","CommonDeleteComponent","dialogRef","saveBtnLabel","cancelBtnLabel","description","size","DELETE","CANCEL","IF_YOU_DELETE_THIS_RECORD_WARNING","onSave","MAT_DIALOG_DATA","MatDialogRef","MessageType","Create","Read","Update","Delete","DialogService","dialog","showLoadingNotification","openFromComponent","message","DOWNLOAD_IS_IN_PROGRESS","verticalPosition","horizontalPosition","panelClass","showNotification","deleteElement","open","showCommonDilaog","showUnsavedChanges","defaultData","UNSAVED_CHANGES","YOU_HAVE_UNSAVED_CHANGED_ARE_YOU_SURE_YOU_WANT_TO_DISCARD_THEM","DISCARD_CHANGES","CONTINUE_EDITING","showSucMsg","res","showMessage","showUpdateMsg","showDelMsg","_saveMessage","SAVESUCCESS","UPDATESUCCESS","DELETESUCCESS","messages","MatSnackBar","MatDialog","CommonDialogComponent","hideHeader","hideCloseIcon","hideCloseBtn","hideSaveBtn","showErrorIcon","loading","saveEmit","closeEmit","customFooter","ngAfterContentInit","footerContent","getInfo","onClose","SAVE","RaiseCommonLibModule","NgModule","declarations","imports","CommonModule","HttpClientModule","ReactiveFormsModule","FormsModule","MatSnackBarModule","MatDialogModule","MatIconModule","GridModule","PagerModule","GridAllModule","SwitchModule","CheckBoxModule","RadioButtonModule","ButtonModule","DiagramModule","TooltipModule","DialogModule","DatePickerModule","DateRangePickerModule","DateTimePickerModule","TextBoxModule","ColorPickerModule","UploaderModule","NumericTextBoxModule","DropDownListModule","DropDownTreeModule","MultiSelectAllModule","AutoCompleteModule","ListBoxModule","PivotViewAllModule","PivotFieldListAllModule","ChartAllModule","AccumulationChartAllModule","RangeNavigatorAllModule","AccumulationChartModule","DashboardLayoutModule","CarouselAllModule","ToolbarModule","TabModule","PdfViewerModule","DropDownButtonModule","SplitButtonModule","RichTextEditorAllModule","providers","PageService","SortService","FilterService","ExcelExportService","EditService","ResizeService","ToolbarService","ColumnChooserService","AggregateService","ColumnMenuService","DetailRowService","SelectionService","GroupService","PieSeriesService","AccumulationLegendService","AccumulationTooltipService","AccumulationAnnotationService","AccumulationDataLabelService","LinkAnnotationService","BookmarkViewService","MagnificationService","ThumbnailViewService","PbfToolbarService","NavigationService","TextSearchService","TextSelectionService","PrintService","HtmlEditorService","RichEditorToolbarService","exports","entryComponents"],"mappings":"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","sourcesContent":["/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __createBinding(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (p !== \"default\" && !exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n","import {\r\n Component,\r\n EventEmitter,\r\n Input,\r\n OnInit,\r\n Output,\r\n TemplateRef,\r\n OnChanges,\r\n ViewChild,\r\n SimpleChanges,\r\n ChangeDetectorRef,\r\n} from '@angular/core';\r\nimport { GridComponent } from '@syncfusion/ej2-angular-grids';\r\n\r\nimport { BeforeOpenCloseEventArgs } from '@syncfusion/ej2-angular-inputs';\r\nimport { IActionMenuItem, IColumnField } from '../constant';\r\n\r\n@Component({\r\n selector: 'rs-common-grid',\r\n templateUrl: './index.component.html',\r\n styleUrls: ['./index.component.scss'],\r\n})\r\nexport class CommonGridComponent implements OnInit, OnChanges {\r\n @ViewChild('grid', { static: false })\r\n public grid: GridComponent;\r\n @Input() showCheckBox = true;\r\n @Input() loaded = true;\r\n @Input() hiddenLoaded = false;\r\n @Input() authorized = true; // Dataset是否授权,未授权则显示权限错误提示\r\n // only use for local data pagination\r\n @Input() selectedDiffKey = '';\r\n @Input() gridHeight = '';\r\n // 这玩意必填,不然filter columnChooser都会报错\r\n @Input() gridId = 'grid';\r\n @Input() resizeSettings = { mode: 'Auto' };\r\n @Input() filterSettings = { type: 'Menu' };\r\n @Input() template: any;\r\n @Input() fields: IColumnField[] = [];\r\n @Input() dataSource = [];\r\n @Input() editSettings;\r\n @Input() columnTemplate: TemplateRef<any>;\r\n @Input() pageSettings;\r\n @Input() allowPaging = true;\r\n @Input() clipMode = 'EllipsisWithTooltip';\r\n @Input() checkBoxWidth = 32; // col 数量过少的时候,check宽度会拉伸,这时候设置null\r\n @Input() childGrid;\r\n\r\n /**\r\n\t * Sample: [\r\n\t\t\t{\r\n\t\t\t\ttext: \"Preview\",\r\n\t\t\t\ttarget: \".e-content\",\r\n\t\t\t\tid: \"preview-icon\",\r\n\t\t\t\ticonCss: \"preview\",\r\n\t\t\t},\r\n\t\t\t{\r\n\t\t\t\ttext: \"Download\",\r\n\t\t\t\ttarget: \".e-content\",\r\n\t\t\t\tid: \"download-icon\",\r\n\t\t\t\ticonCss: \"download\",\r\n\t\t\t}\r\n\t\t]\r\n\t\t用于定义row中 点击事件\r\n\t */\r\n @Input() contextMenuItems: IActionMenuItem[] = [];\r\n // @Input() selectionSettings = { checkboxOnly: true, type: \"Multiple\" };\r\n @Input() selectionSettings = {\r\n type: 'Multiple',\r\n // persistSelection: true,\r\n checkboxOnly: true,\r\n };\r\n @Input() alwaysShowCheckbox: boolean = false;\r\n @Input() defaultRecord: any;\r\n @Input() disableSystemRow: boolean = false; // 禁用IsSytem = true的整行\r\n\r\n @Output() recordDoubleClick = new EventEmitter();\r\n @Output() actionComplete = new EventEmitter();\r\n @Output() rowSelected = new EventEmitter();\r\n @Output() rowDeselected = new EventEmitter();\r\n @Output() onContextMenu = new EventEmitter();\r\n @Output() actionHandler = new EventEmitter();\r\n @Output() queryCellInfo = new EventEmitter();\r\n @Output() recordClick = new EventEmitter();\r\n @Output() actionBegin = new EventEmitter();\r\n @Output() rowDataBound = new EventEmitter();\r\n @Output() dataBound = new EventEmitter();\r\n @Output() exportQueryCellInfo = new EventEmitter();\r\n @Output() rowSelecting = new EventEmitter();\r\n\r\n selectId = [];\r\n startPaging = false;\r\n indexList = [];\r\n className = 'grid-loading';\r\n\r\n public translation;\r\n\r\n constructor(private ref: ChangeDetectorRef) {\r\n this.translation = JSON.parse(localStorage.getItem('translation'));\r\n }\r\n\r\n ngOnInit(): void {\r\n if (this.hiddenLoaded) this.className = '';\r\n this.ref && this.ref.markForCheck();\r\n }\r\n\r\n trackByFn(index, item) {\r\n return index; // or a unique identifier in your object\r\n }\r\n ngOnChanges(changes: SimpleChanges) {\r\n if (changes.dataSource && changes.dataSource.currentValue) {\r\n if (\r\n this.allowPaging &&\r\n changes.dataSource.currentValue.length &&\r\n !this.pageSettings\r\n ) {\r\n this.pageSettings =\r\n changes.dataSource.currentValue.length > 9\r\n ? {\r\n pageSizes: ['All', '25', '50', '100'],\r\n pageSize: 50,\r\n }\r\n : null;\r\n }\r\n }\r\n }\r\n\r\n _load() {\r\n if (!this.authorized) {\r\n (this.grid.localeObj as any).localeStrings.EmptyRecord =\r\n this.translation.YOU_DO_NOT_HAVE_THE_DATASET_PERMISSION ||\r\n \"You don't have the dataset permission to view the record.\";\r\n }\r\n }\r\n\r\n _dataBound(args: any) {\r\n // 整个组件加载完成时的回调函数\r\n var pagerContainer = document.querySelector('.e-pagercontainer');\r\n if (pagerContainer) {\r\n var linkElements = pagerContainer.querySelectorAll('.e-link');\r\n linkElements.forEach(function (element) {\r\n element.removeAttribute('href'); // SMP2-10310 删除分页器的href属性\r\n });\r\n }\r\n if (this.selectedDiffKey) {\r\n setTimeout(() => {\r\n this.chooseRecords();\r\n });\r\n }\r\n this.dataBound.emit(args);\r\n }\r\n\r\n _exportQueryCellInfo(args) {\r\n this.exportQueryCellInfo.emit(args);\r\n }\r\n\r\n _recordDoubleClick($event) {\r\n this.recordDoubleClick.emit($event);\r\n }\r\n /**\r\n\t * [selectionSettings]=\"{ checkboxOnly: true }\"\r\n\t [showCheckBox]=\"true\"\r\n\t 控件使用时,必须配置上面两个属性,否则,全选会失效\r\n\t */\r\n _rowSelected($event) {\r\n if (this.selectedDiffKey) {\r\n if ($event.isHeaderCheckboxClicked && Array.isArray($event.data)) {\r\n if ($event.data && $event.data.length) {\r\n $event.data.forEach((item) => {\r\n item.isSelected = true;\r\n this.selectId.push(item);\r\n });\r\n this.dataSource.forEach((data) => {\r\n $event.data.forEach((_data) => {\r\n if (_data[this.selectedDiffKey] === data[this.selectedDiffKey]) {\r\n data.isSelected = true;\r\n }\r\n });\r\n });\r\n }\r\n } else {\r\n $event.data.isSelected = true;\r\n this.selectId.push($event.data);\r\n this.dataSource.forEach((data) => {\r\n if (\r\n data[this.selectedDiffKey] === $event.data[this.selectedDiffKey]\r\n ) {\r\n data.isSelected = true;\r\n }\r\n });\r\n }\r\n this.ref && this.ref.markForCheck();\r\n }\r\n this.rowSelected.emit($event);\r\n }\r\n\r\n _rowDeselected($event) {\r\n if (this.selectedDiffKey) {\r\n if (this.startPaging) {\r\n return;\r\n }\r\n if ($event.isHeaderCheckboxClicked && Array.isArray($event.data)) {\r\n $event.data.forEach((item) => {\r\n item.isSelected = false;\r\n });\r\n this.selectId = [];\r\n this.dataSource.forEach((data) => {\r\n $event.data.forEach((_data) => {\r\n if (_data[this.selectedDiffKey] === data[this.selectedDiffKey]) {\r\n data.isSelected = false;\r\n }\r\n });\r\n });\r\n } else {\r\n $event.data.isSelected = false;\r\n this.selectId = this.selectId.filter(\r\n (item) =>\r\n item[this.selectedDiffKey] !== $event.data[this.selectedDiffKey]\r\n );\r\n this.dataSource.forEach((data) => {\r\n if (\r\n data[this.selectedDiffKey] === $event.data[this.selectedDiffKey]\r\n ) {\r\n data.isSelected = false;\r\n }\r\n });\r\n }\r\n this.ref && this.ref.markForCheck();\r\n }\r\n this.rowDeselected.emit($event);\r\n }\r\n\r\n _onContextMenu(args) {\r\n this.onContextMenu.emit(args);\r\n }\r\n\r\n _actionBegin(args) {\r\n if (\r\n this.selectedDiffKey &&\r\n (args.requestType === 'paging' ||\r\n args.requestType === 'searching' ||\r\n args.requestType === 'filtering' ||\r\n args.requestType === 'sorting')\r\n ) {\r\n this.startPaging = true;\r\n }\r\n this.actionBegin.emit(args);\r\n }\r\n\r\n search(keywords) {\r\n this.grid.search(keywords);\r\n }\r\n selectRows(indexList: number[]) {\r\n this.grid.selectRows(indexList);\r\n }\r\n selectRow(index) {\r\n this.grid.selectRow(index);\r\n }\r\n getCurrentViewRecords() {\r\n return this.grid.getCurrentViewRecords();\r\n }\r\n\r\n customiseCell($event) {\r\n this.queryCellInfo.emit($event);\r\n }\r\n\r\n contextMenuOpen(args?: BeforeOpenCloseEventArgs): void {\r\n const data = (args as BeforeOpenCloseEventArgs | any).rowInfo.rowData;\r\n if (!data) {\r\n args.cancel = true;\r\n return;\r\n }\r\n let enableItems = [];\r\n let hideItems = [];\r\n this.grid.contextMenuModule.contextMenu.refresh(); // 每次点击按钮弹窗前需再次初始化状态 否则不更新;\r\n this.contextMenuItems.forEach((item: IActionMenuItem) => {\r\n // 用于处理部分按钮disabled的情况\r\n if (\r\n item.disabled ||\r\n (data.disableItem && data.disableItem.includes(item.iconCss))\r\n ) {\r\n enableItems.push(item.text);\r\n // this.grid.contextMenuModule.contextMenu.enableItems(\r\n // \t[item.text],\r\n // \tfalse\r\n // );\r\n }\r\n // 用于处理部分按钮需要hide的情况\r\n if (\r\n item.isHide ||\r\n (data.hideItem && data.hideItem.includes(item.iconCss))\r\n ) {\r\n hideItems.push(item.text);\r\n // this.grid.contextMenuModule.contextMenu.hideItems(\r\n // \t[item.text],\r\n // \tfalse\r\n // );\r\n }\r\n });\r\n this.grid.contextMenuModule.contextMenu.enableItems(enableItems, false);\r\n this.grid.contextMenuModule.contextMenu.hideItems(hideItems, false);\r\n }\r\n\r\n _actionHandler($event) {\r\n if (\r\n this.selectedDiffKey &&\r\n ($event.requestType === 'paging' ||\r\n $event.requestType === 'searching' ||\r\n $event.requestType === 'filtering' ||\r\n $event.requestType === 'sorting')\r\n ) {\r\n this.indexList = [];\r\n setTimeout(() => {\r\n this.chooseRecords();\r\n this.startPaging = false;\r\n this.ref && this.ref.detectChanges();\r\n this.ref && this.ref.markForCheck();\r\n });\r\n }\r\n this.actionHandler.emit($event);\r\n this.actionComplete.emit($event);\r\n }\r\n\r\n private chooseRecords() {\r\n this.indexList = [];\r\n this.dataSource.forEach((data) => {\r\n this.grid.getCurrentViewRecords().forEach((row: any, i) => {\r\n if (\r\n row &&\r\n data[this.selectedDiffKey] === row[this.selectedDiffKey] &&\r\n data.isSelected\r\n ) {\r\n this.indexList.push(i);\r\n }\r\n });\r\n });\r\n\r\n this.grid.selectRows(this.indexList);\r\n }\r\n\r\n _recordClick($event) {\r\n this.recordClick.emit($event);\r\n }\r\n refresh() {\r\n this.grid.refresh();\r\n }\r\n _rowSelecting(e) {\r\n this.rowSelecting.emit(e);\r\n }\r\n refreshColumns() {\r\n this.grid.refreshColumns();\r\n }\r\n refreshHeader() {\r\n this.grid.refreshHeader();\r\n }\r\n\r\n export(excelExportProperties?) {\r\n this.grid.excelExport(excelExportProperties);\r\n }\r\n\r\n getSelectedRecords() {\r\n return this.grid.getSelectedRecords();\r\n }\r\n\r\n _rowDataBound($event) {\r\n if (this.disableSystemRow && $event.data && $event.data.IsSystem) {\r\n $event.row.classList.add('e-disabled');\r\n }\r\n this.rowDataBound.emit($event);\r\n }\r\n\r\n clearSelection() {\r\n this.grid.clearSelection();\r\n }\r\n\r\n excelExport() {\r\n this.grid.excelExport();\r\n }\r\n\r\n addItem() {\r\n this.grid.addRecord({ ...this.defaultRecord, isNew: true }, 0);\r\n setTimeout(() => {\r\n this.grid.selectRow(0);\r\n this.grid.startEdit();\r\n }, 30);\r\n }\r\n\r\n saveItem() {\r\n this.grid.endEdit();\r\n }\r\n\r\n editItem(index) {\r\n setTimeout(() => {\r\n this.grid.selectRow(Number(index));\r\n this.grid.startEdit();\r\n }, 30);\r\n }\r\n\r\n deleteItem(index) {\r\n this.grid.selectRow(Number(index));\r\n var selectedRecord = this.grid.getSelectedRecords()[0] as any;\r\n this.grid.deleteRecord(selectedRecord as string);\r\n }\r\n\r\n cancelItem(index) {\r\n this.grid.closeEdit();\r\n this.deleteItem(index);\r\n }\r\n\r\n public showLoading() {\r\n this.className = 'grid-loading';\r\n this.ref && this.ref.markForCheck();\r\n this.ref && this.ref.detectChanges();\r\n }\r\n\r\n public hideLoading() {\r\n this.className = '';\r\n this.ref && this.ref.markForCheck();\r\n this.ref && this.ref.detectChanges();\r\n }\r\n}\r\n","import {\r\n\tAfterViewInit,\r\n\tChangeDetectorRef,\r\n\tComponent,\r\n\tElementRef,\r\n\tEventEmitter,\r\n\tInput,\r\n\tOnDestroy,\r\n\tOutput,\r\n\tViewChild,\r\n} from \"@angular/core\";\r\n\r\n@Component({\r\n\tselector: \"rs-float-box\",\r\n\ttemplateUrl: \"./index.component.html\",\r\n\tstyleUrls: [\"./index.component.scss\"],\r\n})\r\nexport class FloatBoxComponent implements AfterViewInit, OnDestroy {\r\n\t@Input(\"placement\") _placement: \"top\" | \"left\" | \"right\" | \"bottom\";\r\n\t@Input(\"position\") _position: \"start\" | \"center\" | \"end\";\r\n\t@Input(\"trigger\") _trigger: \"hover\" | \"click\" = \"hover\";\r\n\t@Input(\"animation\") _animation: \"yes\" | \"no\" = \"no\";\r\n\t@Input(\"fixed\") _fixed: \"yes\" | \"no\" = \"no\";\r\n\r\n\tget placement() {\r\n\t\tif ([\"top\", \"left\", \"right\", \"bottom\"].includes(this._placement)) {\r\n\t\t\treturn this._placement;\r\n\t\t}\r\n\t\treturn \"bottom\";\r\n\t}\r\n\r\n\tget position() {\r\n\t\tif ([\"start\", \"center\", \"end\"].includes(this._position)) {\r\n\t\t\treturn this._position;\r\n\t\t}\r\n\t\treturn \"center\";\r\n\t}\r\n\r\n\tget trigger() {\r\n\t\tif (this._trigger === \"click\") {\r\n\t\t\treturn \"click\";\r\n\t\t}\r\n\t\treturn \"hover\";\r\n\t}\r\n\r\n\tget animation() {\r\n\t\tif (this._animation === \"yes\") {\r\n\t\t\treturn \"yes\";\r\n\t\t}\r\n\t\treturn \"no\";\r\n\t}\r\n\r\n\tget fixed() {\r\n\t\tif (this._fixed === \"yes\") {\r\n\t\t\treturn \"yes\";\r\n\t\t}\r\n\t\treturn \"no\";\r\n\t}\r\n\r\n\t@Output(\"openChange\") openChange = new EventEmitter<boolean>();\r\n\r\n\t@ViewChild(\"element\", { static: false })\r\n\trootElement: ElementRef<HTMLDivElement>;\r\n\t@ViewChild(\"content\", { static: false })\r\n\tcontentElement: ElementRef<HTMLDivElement>;\r\n\r\n\tconstructor(private ref: ChangeDetectorRef) {}\r\n\r\n\tngAfterViewInit() {\r\n\t\tthis.fixedContainerEl = this.getFixedContainer();\r\n\t\tif (this.fixed === \"yes\") {\r\n\t\t\tthis.fixedContainerEl.append(this.contentElement.nativeElement);\r\n\t\t}\r\n\t}\r\n\r\n\tngOnDestroy() {\r\n\t\tthis.contentElement.nativeElement.remove();\r\n\t}\r\n\r\n\tFIXED_CONTAINER_ID = \"kt-float-box-fixed-container\";\r\n\tfixedContainerEl: HTMLElement;\r\n\tgetFixedContainer() {\r\n\t\tlet containerElement = document.getElementById(this.FIXED_CONTAINER_ID);\r\n\t\tif (!containerElement) {\r\n\t\t\tcontainerElement = document.createElement(\"div\");\r\n\t\t\tcontainerElement.setAttribute(\"id\", this.FIXED_CONTAINER_ID);\r\n\t\t\tdocument.body.append(containerElement);\r\n\t\t}\r\n\t\treturn containerElement;\r\n\t}\r\n\r\n\tsetFixedContentPosition() {\r\n\t\tif (this.fixed === \"no\") {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tconst {\r\n\t\t\ttop: y,\r\n\t\t\tleft: x,\r\n\t\t\twidth,\r\n\t\t\theight,\r\n\t\t} = this.rootElement.nativeElement.getBoundingClientRect();\r\n\r\n\t\tlet top = \"0\";\r\n\t\tlet left = \"0\";\r\n\t\tlet translateX = \"0\";\r\n\t\tlet translateY = \"0\";\r\n\t\tswitch (this.placement + \"_\" + this.position) {\r\n\t\t\tcase \"top_start\":\r\n\t\t\t\ttop = y + \"px\";\r\n\t\t\t\tleft = x - 8 + \"px\";\r\n\t\t\t\ttranslateY = \"-100%\";\r\n\t\t\t\tbreak;\r\n\t\t\tcase \"top_center\":\r\n\t\t\t\ttop = y + \"px\";\r\n\t\t\t\tleft = x + width / 2 + \"px\";\r\n\t\t\t\ttranslateX = \"-50%\";\r\n\t\t\t\ttranslateY = \"-100%\";\r\n\t\t\t\tbreak;\r\n\t\t\tcase \"top_end\":\r\n\t\t\t\ttop = y + \"px\";\r\n\t\t\t\tleft = x + width + 8 + \"px\";\r\n\t\t\t\ttranslateX = \"-100%\";\r\n\t\t\t\ttranslateY = \"-100%\";\r\n\t\t\t\tbreak;\r\n\t\t\tcase \"left_start\":\r\n\t\t\t\ttop = y - 8 + \"px\";\r\n\t\t\t\tleft = x + \"px\";\r\n\t\t\t\ttranslateX = \"-100%\";\r\n\t\t\t\tbreak;\r\n\t\t\tcase \"left_center\":\r\n\t\t\t\ttop = y + height / 2 + \"px\";\r\n\t\t\t\tleft = x + \"px\";\r\n\t\t\t\ttranslateX = \"-100%\";\r\n\t\t\t\ttranslateY = \"-50%\";\r\n\t\t\t\tbreak;\r\n\t\t\tcase \"left_end\":\r\n\t\t\t\ttop = y + height + 8 + \"px\";\r\n\t\t\t\tleft = x + \"px\";\r\n\t\t\t\ttranslateX = \"-100%\";\r\n\t\t\t\ttranslateY = \"-100%\";\r\n\t\t\t\tbreak;\r\n\t\t\tcase \"right_start\":\r\n\t\t\t\ttop = y - 8 + \"px\";\r\n\t\t\t\tleft = x + width + \"px\";\r\n\t\t\t\tbreak;\r\n\t\t\tcase \"right_center\":\r\n\t\t\t\ttop = y + height / 2 + \"px\";\r\n\t\t\t\tleft = x + width + \"px\";\r\n\t\t\t\ttranslateY = \"-50%\";\r\n\t\t\t\tbreak;\r\n\t\t\tcase \"right_end\":\r\n\t\t\t\ttop = y + height + 8 + \"px\";\r\n\t\t\t\tleft = x + width + \"px\";\r\n\t\t\t\ttranslateY = \"-100%\";\r\n\t\t\t\tbreak;\r\n\t\t\tcase \"bottom_start\":\r\n\t\t\t\ttop = y + height + \"px\";\r\n\t\t\t\tleft = x - 8 + \"px\";\r\n\t\t\t\tbreak;\r\n\t\t\tcase \"bottom_center\":\r\n\t\t\t\ttop = y + height + \"px\";\r\n\t\t\t\tleft = x + width / 2 + \"px\";\r\n\t\t\t\ttranslateX = \"-50%\";\r\n\t\t\t\tbreak;\r\n\t\t\tcase \"bottom_end\":\r\n\t\t\t\ttop = y + height + \"px\";\r\n\t\t\t\tleft = x + width + 8 + \"px\";\r\n\t\t\t\ttranslateX = \"-100%\";\r\n\t\t\t\tbreak;\r\n\t\t}\r\n\r\n\t\tthis.contentElement.nativeElement.style.top = top;\r\n\t\tthis.contentElement.nativeElement.style.left = left;\r\n\t\tthis.contentElement.nativeElement.style.transform = `translate(${translateX}, ${translateY})`;\r\n\t}\r\n\r\n\topened: \"yes\" | \"no\" = \"no\";\r\n\tonClickContainer() {\r\n\t\tif (this.trigger !== \"click\") {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tthis.opened = \"yes\";\r\n\t\tthis.openChange.emit(true);\r\n\t\tthis.setFixedContentPosition();\r\n\t\twindow.addEventListener(\"click\", this.onClickOutside);\r\n\t}\r\n\r\n\tonClickOutside = (event: MouseEvent) => {\r\n\t\tif (\r\n\t\t\t!this.rootElement.nativeElement.contains(event.target as Element) &&\r\n\t\t\t!this.fixedContainerEl.contains(event.target as Element)\r\n\t\t) {\r\n\t\t\tthis.opened = \"no\";\r\n\t\t\tthis.openChange.emit(false);\r\n\t\t\twindow.removeEventListener(\"click\", this.onClickOutside);\r\n\t\t\tthis.ref.markForCheck();\r\n\t\t}\r\n\t};\r\n\r\n\tonMouseEnter() {\r\n\t\tif (this.fixed === \"no\" || this.trigger !== \"hover\") {\r\n\t\t\treturn;\r\n\t\t}\r\n\r\n\t\tthis.opened = \"yes\";\r\n\t\tthis.openChange.emit(true);\r\n\t\tthis.setFixedContentPosition();\r\n\t\twindow.addEventListener(\"mousemove\", this.onMoveOutside);\r\n\t}\r\n\r\n\tonMoveOutside = (event: MouseEvent) => {\r\n\t\tif (\r\n\t\t\t!this.rootElement.nativeElement.contains(event.target as Element) &&\r\n\t\t\t!this.contentElement.nativeElement.contains(event.target as Element)\r\n\t\t) {\r\n\t\t\tthis.opened = \"no\";\r\n\t\t\tthis.openChange.emit(false);\r\n\t\t\twindow.removeEventListener(\"click\", this.onMoveOutside);\r\n\t\t\tthis.ref.markForCheck();\r\n\t\t}\r\n\t};\r\n\r\n\tclose() {\r\n\t\tsetTimeout(() => {\r\n\t\t\tthis.opened = \"no\";\r\n\t\t\tthis.openChange.emit(false);\r\n\t\t}, 0);\r\n\t}\r\n}\r\n","// 组件类\r\nimport {\r\n Component,\r\n ContentChild,\r\n Input,\r\n OnInit,\r\n} from '@angular/core';\r\nimport { CommonGridComponent } from '../../common-grid/index.component';\r\nimport { debounce } from 'lodash';\r\n\r\n@Component({\r\n selector: 'rs-page-list',\r\n templateUrl: './index.component.html',\r\n styleUrls: ['./index.component.scss'],\r\n})\r\nexport class RsPageListComponent implements OnInit {\r\n @ContentChild(CommonGridComponent, { static: true }) gridContent;\r\n @Input() pageTitle;\r\n @Input() customPageTitle = false;\r\n @Input() isInner = false;\r\n\r\n private debouncedInput: Function;\r\n\r\n ngOnInit() {\r\n this.debouncedInput = debounce(() => {\r\n this.onSeach()\r\n }, 300);\r\n }\r\n\r\n\r\n\r\n searchValue;\r\n onSeach() {\r\n this.gridContent.grid.search(this.searchValue);\r\n }\r\n\r\n onInput(){\r\n this.debouncedInput()\r\n }\r\n}\r\n","// 组件类\r\nimport {\r\n Component,\r\n ContentChild,\r\n EventEmitter,\r\n Input,\r\n OnInit,\r\n Output,\r\n} from \"@angular/core\";\r\n\r\n@Component({\r\n selector: \"rs-page-tab\",\r\n templateUrl: \"./index.component.html\",\r\n styleUrls: [\"./index.component.scss\"],\r\n})\r\nexport class RsPageTabComponent implements OnInit {\r\n @Input() pageTitle;\r\n @Input() customPageTitle = false;\r\n @Input() tabList = [];\r\n @Input() currentTab;\r\n\r\n @Output()\r\n tabChange = new EventEmitter();\r\n\r\n public animation: object = {\r\n\t\tprevious: { effect: \"\", duration: 0, easing: \"\" },\r\n\t\tnext: { effect: \"\", duration: 0, easing: \"\" },\r\n\t};\r\n ngOnInit() {}\r\n\r\n onTabClick(e) {\r\n this.tabChange.emit(this.tabList[e.selectedIndex]);\r\n }\r\n}\r\n","// 组件类\r\nimport {\r\n Component,\r\n ContentChild,\r\n Input,\r\n OnInit,\r\n TemplateRef,\r\n} from '@angular/core';\r\nimport { CommonGridComponent } from '../../common-grid/index.component';\r\nimport { debounce } from 'lodash';\r\n\r\n@Component({\r\n selector: 'rs-grid-box',\r\n templateUrl: './index.component.html',\r\n styleUrls: ['./index.component.scss'],\r\n})\r\nexport class GridBoxComponent implements OnInit {\r\n @ContentChild(TemplateRef, { static: true }) gridContent;\r\n @Input() pageTitle;\r\n @Input() customPageTitle = false;\r\n @Input() isInner = false;\r\n\r\n private debouncedInput: Function;\r\n\r\n ngOnInit() {\r\n this.debouncedInput = debounce(() => {\r\n this.onSeach()\r\n }, 300);\r\n }\r\n\r\n\r\n\r\n searchValue;\r\n onSeach() {\r\n this.gridContent.grid.search(this.searchValue);\r\n }\r\n\r\n onInput(){\r\n this.debouncedInput()\r\n }\r\n}\r\n","import { Injectable } from \"@angular/core\";\r\n\r\n@Injectable({\r\n providedIn: \"root\",\r\n})\r\nexport class CommonFunctionService {\r\n constructor() {}\r\n\r\n testMethod() {\r\n return \"test1111\";\r\n }\r\n\r\n setMiddleEllipsis(text, maxWidth = 150, fontSize = 13) {\r\n\t\tconst canvas = document.createElement(\"canvas\");\r\n\t\tconst context = canvas.getContext(\"2d\");\r\n\t\tcontext.font = `${fontSize}px Arial`;\r\n\r\n\t\tlet width = context.measureText(text).width;\r\n\r\n\t\tif (width <= maxWidth) {\r\n\t\t\treturn text;\r\n\t\t}\r\n\t\tmaxWidth = Math.floor(maxWidth - context.measureText(\"...\").width);\r\n\t\tlet firstPart = \"\";\r\n\t\tlet secondPart = \"\";\r\n\t\tlet half = Math.floor(maxWidth / 2);\r\n\t\tfor (let i = 0; i < text.length; i++) {\r\n\t\t\tfirstPart += text[i];\r\n\t\t\twidth = context.measureText(firstPart).width;\r\n\t\t\tif (width > half) {\r\n\t\t\t\tbreak;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\tfor (let i = text.length - 1; i >= 0; i--) {\r\n\t\t\tsecondPart = text[i] + secondPart;\r\n\t\t\twidth = context.measureText(secondPart).width;\r\n\t\t\tif (width > half) {\r\n\t\t\t\tbreak;\r\n\t\t\t}\r\n\t\t}\r\n\r\n\t\treturn firstPart + \"...\" + secondPart;\r\n\t}\r\n\r\n getPureUrl(url: string) {\r\n\t\tif (url) {\r\n\t\t\t// 如果params的value 携带查询参数, 则截取前面部分\r\n\t\t\turl = decodeURIComponent(url);\r\n\t\t\tif (url.includes(\"?\")) {\r\n\t\t\t\turl = url.split(\"?\")[0];\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn url;\r\n\t}\r\n}\r\n","import { Injectable } from \"@angular/core\";\r\nimport {\r\n RouteReuseStrategy,\r\n ActivatedRouteSnapshot,\r\n DetachedRouteHandle,\r\n} from \"@angular/router\";\r\n\r\nconst storedRoutes = new Map<string, DetachedRouteHandle>();\r\nlet toBeDeleteUrl: string;\r\nlet excludeRoutes: string[] = []; // 不需要缓存的url\r\n@Injectable({\r\n providedIn: \"root\",\r\n})\r\nexport class KeepAliveService implements RouteReuseStrategy {\r\n setExcludeRoutes(routes: string[]) {\r\n excludeRoutes = routes; // 设置不缓存的路由\r\n }\r\n shouldDetach(route: ActivatedRouteSnapshot): boolean {\r\n let config = route.routeConfig;\r\n // console.log(\"shouldDetach\", toBeDeleteUrl, this.getRoutePath(route));\r\n if (toBeDeleteUrl === this.getRoutePath(route)) {\r\n // 对于新开的又即将关闭的tab,不缓存\r\n if (route.children.length === 0) {\r\n toBeDeleteUrl = \"\";\r\n }\r\n return false;\r\n }\r\n if (config && excludeRoutes.includes(this.getRoutePath(route))) {\r\n return false;\r\n }\r\n //Don't store lazy loaded routes\r\n return config && !config.loadChildren;\r\n }\r\n\r\n store(route: ActivatedRouteSnapshot, handle: DetachedRouteHandle): void {\r\n // console.log(\"store\", this.getRoutePath(route));\r\n // console.log(\"store\", storedRoutes);\r\n const key = this.getRoutePath(route);\r\n storedRoutes.set(key, handle);\r\n }\r\n\r\n shouldAttach(route: ActivatedRouteSnapshot): boolean {\r\n const key = this.getRoutePath(route);\r\n return !!route.routeConfig && storedRoutes.has(key);\r\n }\r\n\r\n retrieve(route: ActivatedRouteSnapshot): DetachedRouteHandle {\r\n let config = route.routeConfig;\r\n const key = this.getRoutePath(route);\r\n //We don't store lazy loaded routes, so don't even bother trying to retrieve them\r\n if (!config || config.loadChildren) {\r\n return false;\r\n }\r\n return storedRoutes.get(key) || null;\r\n }\r\n\r\n shouldReuseRoute(\r\n future: ActivatedRouteSnapshot,\r\n curr: ActivatedRouteSnapshot\r\n ): boolean {\r\n // console.log(\"shouldReuseRoute\", future, curr);\r\n // return future.routeConfig === curr.routeConfig;\r\n if (future.routeConfig === curr.routeConfig) {\r\n if (future.children.length === 0 && curr.children.length === 0) {\r\n // 无子路由时, 通过params和queryParams判断是否复用路由\r\n return (\r\n JSON.stringify(future.params) === JSON.stringify(curr.params) &&\r\n JSON.stringify(future.queryParams) ===\r\n JSON.stringify(curr.queryParams)\r\n );\r\n }\r\n return true;\r\n }\r\n return false;\r\n }\r\n\r\n getRoutePath(route): string {\r\n if (route.routeConfig) {\r\n // const pathParams = JSON.stringify(route.params);\r\n const queryParams = new URLSearchParams(route.queryParams).toString();\r\n const url = route._urlSegment.segments.map((v) => v.path).join(\"/\");\r\n return \"/\" + url + (queryParams ? \"?\" + queryParams : \"\");\r\n }\r\n return \"\";\r\n }\r\n\r\n clearCache(path: string) {\r\n // console.log(\"clearCache\", storedRoutes, path);\r\n toBeDeleteUrl = path;\r\n storedRoutes.delete(path);\r\n }\r\n\r\n clearAllCache() {\r\n storedRoutes.clear();\r\n }\r\n}\r\n","// 组件类\r\nimport {\r\n ChangeDetectorRef,\r\n Component,\r\n HostListener,\r\n Input,\r\n OnInit,\r\n} from \"@angular/core\";\r\nimport {\r\n ActivatedRoute,\r\n NavigationEnd,\r\n Router,\r\n RouterOutlet,\r\n} from \"@angular/router\";\r\nimport { CommonFunctionService } from \"../../service/common-function.service\";\r\nimport { KeepAliveService } from \"../../service/keep-alive.service\";\r\nimport { filter } from \"rxjs/operators\";\r\n\r\n@Component({\r\n selector: \"rs-multi-tab\",\r\n templateUrl: \"./index.component.html\",\r\n styleUrls: [\"./index.component.scss\"],\r\n})\r\nexport class MultiTabComponent implements OnInit {\r\n constructor(\r\n public router: Router,\r\n public cf: CommonFunctionService,\r\n public activatedRoute: ActivatedRoute,\r\n public keepAlive: KeepAliveService,\r\n private ref: ChangeDetectorRef\r\n ) {}\r\n @Input() singleReuseUrls: string[] = []; //只能单个缓存的url\r\n\r\n TAB_WIDTH = 164;\r\n GAP_NORMAL = 54;\r\n GAP_SMALL = 30;\r\n textGap; // 文本与边框的总间距\r\n foo: RouterOutlet;\r\n comRef: any;\r\n tabList = [];\r\n selectedTab: number = 0;\r\n maxTabs: number = 10;\r\n screenWidth: number = window.innerWidth; // 初始化屏幕宽度\r\n @HostListener(\"window:resize\", [\"$event\"])\r\n onResize(event) {\r\n this.screenWidth = window.innerWidth; // 更新屏幕宽度\r\n this.setEllipsisTitle();\r\n }\r\n\r\n ngOnInit() {\r\n this.initTab();\r\n // 解决刷新页面后,选中的 tab 丢失问题\r\n const isExistIdx = this.tabList.findIndex((ele) => ele.url === this.router.url);\r\n if (isExistIdx !== -1) {\r\n this.selectedTab = isExistIdx;\r\n }\r\n \r\n this.router.events\r\n .pipe(filter((event) => event instanceof NavigationEnd))\r\n .subscribe(() => {\r\n const navigation = this.router.getCurrentNavigation(); // 获取当前导航\r\n if (navigation) {\r\n const state = navigation.extras.state; // 获取传递的 state\r\n const skipLocationChange = navigation.extras.skipLocationChange; // 获取是否跳过 location change\r\n const currentRoute = this.router.routerState.root.firstChild;\r\n if (currentRoute && !skipLocationChange) {\r\n this.setTab(\r\n this.router.url,\r\n currentRoute.snapshot.routeConfig.path,\r\n state && state.title\r\n );\r\n }\r\n }\r\n });\r\n this.setEllipsisTitle();\r\n }\r\n\r\n setEllipsisTitle(title?) {\r\n this.textGap = this.GAP_NORMAL;\r\n if (this.screenWidth <= 1100) {\r\n this.textGap = this.GAP_SMALL;\r\n }\r\n let { allWidth, leftWidth, rightWidth } = this.calcTabWidth();\r\n let width = Math.floor(\r\n (allWidth - rightWidth) / (this.tabList && this.tabList.length)\r\n );\r\n\r\n if (title) {\r\n return this.cf.setMiddleEllipsis(\r\n title,\r\n width > this.TAB_WIDTH\r\n ? this.TAB_WIDTH - this.textGap\r\n : width - this.textGap,\r\n 12\r\n );\r\n } else {\r\n this.tabList.forEach((ele, idx) => {\r\n ele.displayTitle = this.cf.setMiddleEllipsis(\r\n ele.title,\r\n width > this.TAB_WIDTH\r\n ? this.TAB_WIDTH - this.textGap\r\n : width - this.textGap,\r\n 12\r\n );\r\n });\r\n }\r\n }\r\n\r\n calcTabWidth() {\r\n const wrap = document.querySelector(\".rs-multi-tab\");\r\n const ulElement = document.querySelector(\".rs-multi-tab > ul\");\r\n const refreshTabDiv = document.querySelector(\".rs-multi-tab .refresh-tab\");\r\n let allWidth;\r\n let leftWidth;\r\n let rightWidth;\r\n if (wrap && ulElement && refreshTabDiv) {\r\n // 获取元素的位置信息\r\n const wrapRect = wrap.getBoundingClientRect();\r\n const ulRect = ulElement.getBoundingClientRect();\r\n const refreshTabRect = refreshTabDiv.getBoundingClientRect();\r\n allWidth = wrapRect.width;\r\n leftWidth = ulRect.width;\r\n rightWidth = refreshTabRect.width;\r\n }\r\n return {\r\n allWidth,\r\n leftWidth,\r\n rightWidth,\r\n };\r\n }\r\n initTab() {\r\n let TabCache = JSON.parse(sessionStorage.getItem(\"TabCache\"));\r\n this.tabList = TabCache || [];\r\n }\r\n\r\n closeTab(tab, idx) {\r\n this.tabList = this.tabList.filter((ele) => ele.url !== tab.url);\r\n this.clearCache(tab.url);\r\n if (this.selectedTab === idx) {\r\n const targetIdx = Math.max(0, idx - 1);\r\n this.changeTab(this.tabList[targetIdx], targetIdx);\r\n }\r\n this.setEllipsisTitle();\r\n sessionStorage.setItem(\"TabCache\", JSON.stringify(this.tabList));\r\n this.ref.markForCheck();\r\n }\r\n\r\n changeTab(tab, idx) {\r\n this.router.navigateByUrl(tab.url);\r\n this.selectedTab = idx;\r\n this.ref.markForCheck();\r\n }\r\n\r\n addTab(url, title) {\r\n if (this.tabList.length >= this.maxTabs) {\r\n this.closeTab(this.tabList[0], 0); // 删除第一个\r\n }\r\n this.tabList.push({\r\n url: url,\r\n title: title || \"default\",\r\n displayTitle: this.setEllipsisTitle(title || \"default\"),\r\n });\r\n this.selectedTab = this.tabList.length - 1;\r\n this.setEllipsisTitle();\r\n sessionStorage.setItem(\"TabCache\", JSON.stringify(this.tabList));\r\n this.ref.markForCheck();\r\n }\r\n\r\n public setTab(url, pureUrl?, title?) {\r\n const isExistIdx = this.tabList.findIndex((ele) => ele.url === url);\r\n if (isExistIdx === -1) {\r\n const singleIdx = this.singleReuseUrls.findIndex(\r\n (ele) => ele === pureUrl\r\n );\r\n if (singleIdx !== -1) {\r\n this.tabList = this.tabList.filter(\r\n (ele) => !ele.url.includes(this.singleReuseUrls[singleIdx])\r\n );\r\n this.keepAlive.clearCache(url);\r\n }\r\n this.addTab(url, title);\r\n } else {\r\n this.selectedTab = isExistIdx;\r\n this.ref.markForCheck();\r\n }\r\n }\r\n\r\n refreshTab() {\r\n this.keepAlive.clearCache(this.tabList[this.selectedTab].url);\r\n const currentUrl = this.router.url; // 获取当前 URL\r\n this.router.navigateByUrl(\"/\", { skipLocationChange: true }).then(() => {\r\n this.router.navigateByUrl(currentUrl); // 重新导航到当前 URL\r\n });\r\n }\r\n\r\n clearCache(url) {\r\n this.keepAlive.clearCache(url); // 调用自定义策略的清除缓存方法\r\n }\r\n}\r\n","// 组件类\r\nimport {\r\n Component,\r\n ContentChild,\r\n EventEmitter,\r\n Input,\r\n OnInit,\r\n Output,\r\n} from \"@angular/core\";\r\n\r\n@Component({\r\n selector: \"rs-header\",\r\n templateUrl: \"./index.component.html\",\r\n styleUrls: [\"./index.component.scss\"],\r\n})\r\nexport class RSHeaderComponent implements OnInit {\r\n @Input() isCollapsed: boolean = false; // 接收输入属性\r\n\r\n @Input() lastLoginTime = new Date();\r\n\r\n @Input()\r\n set langOptions(options: any[]) {\r\n this._langOptions = options;\r\n if (options && options.length > 0) {\r\n const languageCode = localStorage.getItem(\"language\");\r\n this.currentLang = options.find((e) => e.languageCode === languageCode);\r\n }\r\n }\r\n\r\n get langOptions(): any[] {\r\n return this._langOptions;\r\n }\r\n\r\n @Output()\r\n toggleMenu = new EventEmitter();\r\n\r\n @Output()\r\n changeLanguage = new EventEmitter();\r\n\r\n private _langOptions = [];\r\n\r\n currentLang: any;\r\n public translation;\r\n\r\n ngOnInit() {\r\n this.translation = JSON.parse(localStorage.getItem(\"translation\")) || {};\r\n }\r\n\r\n onToggleMenu() {\r\n this.toggleMenu.emit(!this.isCollapsed);\r\n }\r\n\r\n selectLanguage(event) {\r\n this.currentLang = this.langOptions.find(\r\n (item) => item.text === event.item.text\r\n );\r\n this.changeLanguage.emit(this.currentLang.languageCode);\r\n }\r\n}\r\n","// 组件类\r\nimport { Component, ContentChild, Input, OnInit } from \"@angular/core\";\r\nimport { RSHeaderComponent } from \"../rs-header/index.component\";\r\n\r\n@Component({\r\n selector: \"rs-main-container\",\r\n templateUrl: \"./index.component.html\",\r\n styleUrls: [\"./index.component.scss\"],\r\n})\r\nexport class MainContainerComponent implements OnInit {\r\n @ContentChild(RSHeaderComponent, { static: true }) headerRef;\r\n\r\n @Input() isCollapsed: boolean = false; // 接收输入属性\r\n @Input() singleReuseUrls: string[] = []; //只能单个缓存的url\r\n ngOnInit() {}\r\n\r\n onRightAsideClick() {\r\n const screenWidth = window.innerWidth;\r\n if (screenWidth <= 992 && this.isCollapsed) {\r\n this.headerRef.onToggleMenu();\r\n }\r\n }\r\n}\r\n","// 组件类\r\nimport {\r\n Component,\r\n OnInit,\r\n} from '@angular/core';\r\n\r\n@Component({\r\n selector: 'rs-footer',\r\n templateUrl: './index.component.html',\r\n styleUrls: ['./index.component.scss'],\r\n})\r\nexport class RSFooterComponent implements OnInit {\r\n today = new Date();\r\n ngOnInit() {\r\n }\r\n}\r\n","// 组件类\r\nimport { Component, EventEmitter, Input, OnInit, Output } from \"@angular/core\";\r\nimport { Router, NavigationEnd } from \"@angular/router\";\r\nimport { filter } from \"rxjs/operators\";\r\n\r\n@Component({\r\n selector: \"rs-aside\",\r\n templateUrl: \"./index.component.html\",\r\n styleUrls: [\"./index.component.scss\"],\r\n})\r\nexport class RSAsideComponent implements OnInit {\r\n constructor(public router: Router) {}\r\n @Output()\r\n toggleMenu = new EventEmitter();\r\n @Input() isCollapsed: boolean = false; // 接收输入属性\r\n @Input() navList = [];\r\n\r\n currentNav = \"\";\r\n ngOnInit() {\r\n this.currentNav = this.router.url;\r\n // 监听路由变化\r\n this.router.events\r\n .pipe(filter((event) => event instanceof NavigationEnd))\r\n .subscribe(() => {\r\n this.currentNav = this.router.url;\r\n });\r\n }\r\n onNavClick(item) {\r\n this.currentNav = item.url;\r\n this.router.navigate([item.url], { state: { title: item.label } });\r\n const screenWidth = window.innerWidth;\r\n if (screenWidth <= 992 && this.isCollapsed) {\r\n this.toggleMenu.emit(false);\r\n }\r\n }\r\n}\r\n","// 组件类\r\nimport { Component, EventEmitter, Input, OnInit, Output } from \"@angular/core\";\r\n\r\n@Component({\r\n selector: \"rs-tag-input\",\r\n templateUrl: \"./index.component.html\",\r\n styleUrls: [\"./index.component.scss\"],\r\n})\r\nexport class TagInputComponent implements OnInit {\r\n @Input() value = [];\r\n @Input() fields;\r\n @Input() disabled = false;\r\n @Input() error = false;\r\n @Input() inputMinlength = 3;\r\n @Input() inputMaxlength = 30;\r\n\r\n @Output()\r\n valueChange = new EventEmitter();\r\n\r\n ngOnInit() {\r\n \r\n }\r\n onRemoveTag(tag) {\r\n const tagsList = this.value.filter((i) => i !== tag);\r\n this.valueChange.emit(tagsList);\r\n }\r\n\r\n onAddTag(event) {\r\n const inputValue = event.target.value;\r\n if (inputValue && this.verifyInputValue(inputValue)) {\r\n this.valueChange.emit([...this.value, inputValue]);\r\n event.target.value = \"\";\r\n }\r\n }\r\n inputError = false\r\n verifyInputValue(inputValue) {\r\n this.inputError = false\r\n const inputValueLength = inputValue.length;\r\n if (\r\n this.value.includes(inputValue) ||\r\n inputValueLength > this.inputMaxlength ||\r\n inputValueLength < this.inputMinlength\r\n ) {\r\n this.inputError = true\r\n return false;\r\n }\r\n return true;\r\n }\r\n onInput(){\r\n this.inputError = false\r\n }\r\n}\r\n","// 组件类\r\nimport { Component, EventEmitter, Input, OnInit, Output } from \"@angular/core\";\r\n\r\n@Component({\r\n selector: \"rs-radio-group\",\r\n templateUrl: \"./index.component.html\",\r\n styleUrls: [\"./index.component.scss\"],\r\n})\r\nexport class RadioGroupComponent implements OnInit {\r\n @Input() value;\r\n @Input() dataSource = [];\r\n @Input() orientation: 'horizontal' | 'vertical' = 'horizontal';\r\n @Input() fields = { text: 'text', value: 'value', disabled: 'disabled' }\r\n @Input() disabled = false;\r\n @Input() error = false;\r\n\r\n @Output()\r\n valueChange = new EventEmitter();\r\n\r\n ngOnInit() {\r\n }\r\n onChange(event){\r\n const value = event.value\r\n this.valueChange.emit(value);\r\n }\r\n}\r\n","// 组件类\r\nimport { ChangeDetectorRef, Component, EventEmitter, Input, OnInit, Output } from \"@angular/core\";\r\n\r\n@Component({\r\n selector: \"rs-checkbox-group\",\r\n templateUrl: \"./index.component.html\",\r\n styleUrls: [\"./index.component.scss\"],\r\n})\r\nexport class CheckboxGroupComponent implements OnInit {\r\n constructor(\r\n private ref: ChangeDetectorRef,\r\n ) {}\r\n @Input() name; // 分组凭证\r\n @Input() value = [];\r\n @Input() dataSource = [];\r\n @Input() orientation: \"horizontal\" | \"vertical\" = \"horizontal\";\r\n @Input() fields = { text: \"text\", value: \"value\", disabled: \"disabled\" };\r\n @Input() disabled = false;\r\n @Input() error = false;\r\n\r\n @Output()\r\n valueChange = new EventEmitter();\r\n\r\n ngOnInit() {\r\n console.log('first',this.value)\r\n }\r\n onChange(event, option) {\r\n const originalValue = this.value;\r\n let result;\r\n if (event.checked) {\r\n result = [...originalValue, option[this.fields.value]];\r\n } else {\r\n result = originalValue.filter((val) => val !== option[this.fields.value]);\r\n }\r\n this.valueChange.emit(result);\r\n this.ref.markForCheck();\r\n }\r\n}\r\n","// 组件类\r\nimport { Component, EventEmitter, Input, OnInit, Output } from \"@angular/core\";\r\n\r\n@Component({\r\n selector: \"rs-switch-input\",\r\n templateUrl: \"./index.component.html\",\r\n styleUrls: [\"./index.component.scss\"],\r\n})\r\nexport class SwitchInputComponent implements OnInit {\r\n @Input() value;\r\n @Input() text;\r\n @Input() orientation: 'front' | 'behind' = 'front';\r\n @Input() disabled = false;\r\n @Input() error = false;\r\n\r\n @Output()\r\n valueChange = new EventEmitter();\r\n\r\n ngOnInit() {}\r\n onChange(event) {\r\n const value = event.checked;\r\n this.valueChange.emit(value);\r\n }\r\n onClick(){\r\n const value = !this.value;\r\n this.valueChange.emit(value);\r\n }\r\n}\r\n","import { Injectable } from \"@angular/core\";\r\nimport { MatIconRegistry } from \"@angular/material/icon\";\r\nimport { DomSanitizer } from \"@angular/platform-browser\";\r\n\r\n@Injectable()\r\nexport class IconLoaderService {\r\n constructor(\r\n private registry: MatIconRegistry,\r\n private domSanitizer: DomSanitizer\r\n ) {}\r\n\r\n registerIcons(list) {\r\n list.forEach(({ name, path }) => {\r\n this.registry.addSvgIcon(\r\n name,\r\n this.domSanitizer.bypassSecurityTrustResourceUrl(path)\r\n );\r\n });\r\n }\r\n}\r\n","import { AfterViewInit, Component, Inject } from \"@angular/core\";\r\nimport { MAT_SNACK_BAR_DATA, MatSnackBar } from \"@angular/material/snack-bar\";\r\n\r\nexport type LoadingProgress = {\r\n\tdone: boolean;\r\n\tpercent?: number;\r\n};\r\n\r\nexport interface NotificationConfig {\r\n\tmessage: string;\r\n\tsnackBar: MatSnackBar;\r\n\tloadingCallback: (callback: (progress: LoadingProgress) => void) => void;\r\n\tstatus?: \"Success\" | \"Warning\" | \"Error\";\r\n\ttype?: \"Text\" | \"Detail\" | \"Loading\" | \"Progress\";\r\n\ttitle?: string;\r\n};\r\n\r\n@Component({\r\n\tselector: \"kt-new-action-notification\",\r\n\ttemplateUrl: \"./new-action-notification.component.html\",\r\n\tstyleUrls: [\"./new-action-notification.component.scss\"],\r\n})\r\nexport class NewActionNotificationComponent implements AfterViewInit {\r\n\tcollapsed = false;\r\n\r\n\tconstructor(\r\n\t\t@Inject(MAT_SNACK_BAR_DATA)\r\n\t\tpublic data: NotificationConfig\r\n\t) {}\r\n\r\n\tngAfterViewInit() {\r\n\t\tif (this.config.type === \"Loading\") {\r\n\t\t\tthis.config.loadingCallback((progress) => {\r\n\t\t\t\tif (progress.done) {\r\n\t\t\t\t\treturn this.config.snackBar.dismiss();\r\n\t\t\t\t}\r\n\t\t\t});\r\n\t\t}\r\n\t}\r\n\r\n\tcloseNotification() {\r\n\t\tif (this.config.type === \"Loading\") {\r\n\t\t\tthis.collapsed = true;\r\n\t\t} else {\r\n\t\t\tthis.config.snackBar.dismiss();\r\n\t\t}\r\n\t}\r\n\r\n\texpandNotification() {\r\n\t\tif (this.config.type === \"Loading\" && this.collapsed) {\r\n\t\t\tthis.collapsed = false;\r\n\t\t}\r\n\t}\r\n\r\n\tget config() {\r\n\t\treturn {\r\n\t\t\tstatus: \"Success\",\r\n\t\t\ttype: \"Text\",\r\n\t\t\t...this.data,\r\n\t\t};\r\n\t}\r\n}\r\n","import { Component, Inject, OnInit } from \"@angular/core\";\r\nimport { MAT_DIALOG_DATA, MatDialogRef } from \"@angular/material/dialog\";\r\n\r\nexport interface DialogConfig {\r\n title?: string;\r\n description?: string;\r\n saveBtnLabel?: string;\r\n cancelBtnLabel?: string;\r\n showErrorIcon?: boolean;\r\n hideCloseIcon?: boolean;\r\n size?: string;\r\n hideSaveBtn?: boolean;\r\n hideCloseBtn?: boolean;\r\n}\r\n@Component({\r\n selector: \"kt-common-delete-dialog\",\r\n templateUrl: \"./index.component.html\",\r\n styleUrls: [\"./index.component.scss\"],\r\n})\r\nexport class CommonDeleteComponent implements OnInit {\r\n translation;\r\n title = \"\";\r\n saveBtnLabel = \"\";\r\n cancelBtnLabel = \"\";\r\n description = \"\";\r\n size = \"small\";\r\n\r\n constructor(\r\n @Inject(MAT_DIALOG_DATA)\r\n public data: DialogConfig,\r\n public dialogRef: MatDialogRef<CommonDeleteComponent>\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n this.translation = JSON.parse(localStorage.getItem(\"translation\")) || {};\r\n this.title =\r\n this.data.title || this.translation[\"DELETE_RECORD\"] || \".DELETE_RECORD\";\r\n this.saveBtnLabel =\r\n this.data.saveBtnLabel || this.translation.DELETE || \".DELETE\";\r\n this.cancelBtnLabel =\r\n this.data.cancelBtnLabel || this.translation.CANCEL || \".CANCEL\";\r\n this.description =\r\n this.data.description ||\r\n this.translation.IF_YOU_DELETE_THIS_RECORD_WARNING ||\r\n \".If you delete this record, you won't be able to recover it. Do you want to delete it?\";\r\n this.size = this.data.size || \"small\";\r\n }\r\n\r\n onSave(e) {\r\n this.dialogRef.close(e);\r\n }\r\n}\r\n","// Angular\r\nimport { Injectable } from \"@angular/core\";\r\nimport { MatSnackBar } from \"@angular/material/snack-bar\";\r\nimport { MatDialog } from \"@angular/material/dialog\";\r\n\r\nimport {\r\n NewActionNotificationComponent,\r\n NotificationConfig,\r\n} from \"../dialog/new-action-notification/new-action-notification.component\";\r\n\r\nimport { CommonDeleteComponent } from \"../dialog/common-delete-dialog/index.component\";\r\n\r\nexport enum MessageType {\r\n Create,\r\n Read,\r\n Update,\r\n Delete,\r\n}\r\n\r\n@Injectable({\r\n providedIn: \"root\",\r\n})\r\nexport class DialogService {\r\n /**\r\n * Service constructor\r\n *\r\n * @param snackBar: MatSnackBar\r\n * @param dialog: MatDialog\r\n */\r\n translation = null;\r\n constructor(private snackBar: MatSnackBar, private dialog: MatDialog) {\r\n this.translation = JSON.parse(localStorage.getItem(\"translation\")) || {}\r\n }\r\n\r\n showLoadingNotification(\r\n config: Omit<\r\n NotificationConfig,\r\n \"message\" | \"snackBar\" | \"status\" | \"type\"\r\n > & { message?: string }\r\n ) {\r\n return this.snackBar.openFromComponent(NewActionNotificationComponent, {\r\n data: {\r\n ...config,\r\n message:\r\n config.message ||\r\n this.translation.DOWNLOAD_IS_IN_PROGRESS ||\r\n \".Download is in progress\",\r\n snackBar: this.snackBar,\r\n type: \"Loading\",\r\n },\r\n verticalPosition: \"top\",\r\n horizontalPosition: \"right\",\r\n panelClass: \"new-action-notification\",\r\n });\r\n }\r\n\r\n showNotification(\r\n message: string,\r\n config?: Omit<\r\n NotificationConfig,\r\n \"message\" | \"snackBar\" | \"loadingCallback\" | \"type\"\r\n > & {\r\n duration?: number;\r\n type?: Exclude<NotificationConfig[\"type\"], \"Loading\">;\r\n }\r\n ) {\r\n return this.snackBar.openFromComponent(NewActionNotificationComponent, {\r\n data: {\r\n message,\r\n snackBar: this.snackBar,\r\n ...(config || {}),\r\n },\r\n duration: (config && config.duration) || 3000,\r\n verticalPosition: \"top\",\r\n horizontalPosition: \"right\",\r\n panelClass: \"new-action-notification\",\r\n });\r\n }\r\n // 删除确认弹窗\r\n deleteElement() {\r\n return this.dialog.open(CommonDeleteComponent, {\r\n data: {},\r\n panelClass: \"rs-dialog-wrap\",\r\n });\r\n }\r\n\r\n // 自定义文案通用弹窗的提示框\r\n showCommonDilaog(data?: {\r\n title?: string;\r\n description?: string;\r\n saveBtnLabel?: string;\r\n cancelBtnLabel?: string;\r\n showErrorIcon?: boolean;\r\n size?: string;\r\n hideSaveBtn?: boolean;\r\n }) {\r\n return this.dialog.open(CommonDeleteComponent, {\r\n data,\r\n panelClass: \"rs-dialog-wrap\",\r\n });\r\n }\r\n\r\n // 有改动未保存 的提示框\r\n showUnsavedChanges(data?: {\r\n title?: string;\r\n description?: string;\r\n saveBtnLabel?: string;\r\n cancelBtnLabel?: string;\r\n showErrorIcon?: boolean;\r\n size?: string;\r\n hideSaveBtn?: boolean;\r\n }) {\r\n let defaultData = {\r\n title: this.translation.UNSAVED_CHANGES || \".UNSAVED_CHANGES\",\r\n description:\r\n this.translation\r\n .YOU_HAVE_UNSAVED_CHANGED_ARE_YOU_SURE_YOU_WANT_TO_DISCARD_THEM ||\r\n \".YOU_HAVE_UNSAVED_CHANGED_ARE_YOU_SURE_YOU_WANT_TO_DISCARD_THEM\",\r\n saveBtnLabel: this.translation.DISCARD_CHANGES || \".DISCARD_CHANGES\",\r\n cancelBtnLabel: this.translation.CONTINUE_EDITING || \".CONTINUE_EDITING\",\r\n };\r\n if (data) {\r\n data = Object.assign(defaultData, data);\r\n } else {\r\n data = defaultData;\r\n }\r\n // data.size = \"medium\";\r\n return this.dialog.open(CommonDeleteComponent, {\r\n data,\r\n panelClass: \"rs-dialog-wrap\",\r\n });\r\n }\r\n\r\n // 保存成功提示\r\n public showSucMsg(res) {\r\n this.showMessage(res, MessageType.Create);\r\n }\r\n\r\n // 更新成功提示\r\n public showUpdateMsg(res) {\r\n this.showMessage(res, MessageType.Update);\r\n }\r\n\r\n // 删除成功提示\r\n public showDelMsg(res) {\r\n this.showMessage(res, MessageType.Delete);\r\n }\r\n\r\n // 通用提示\r\n private showMessage(res, type = MessageType.Create) {\r\n let _saveMessage = this.translation.SAVESUCCESS || \".SAVESUCCESS\";\r\n switch (type) {\r\n case MessageType.Update:\r\n _saveMessage = this.translation.UPDATESUCCESS || \".UPDATESUCCESS\";\r\n break;\r\n case MessageType.Delete:\r\n _saveMessage = this.translation.DELETESUCCESS || \".DELETESUCCESS\";\r\n break;\r\n }\r\n if (res.status === \"ERROR\") _saveMessage = res.messages[0].message;\r\n this.showNotification(_saveMessage, {\r\n status: res.status === \"ERROR\" ? \"Error\" : \"Success\",\r\n });\r\n }\r\n}\r\n","import {\r\n\tComponent,\r\n\tOnInit,\r\n\tInput,\r\n\tContentChild,\r\n\tOutput,\r\n\tEventEmitter,\r\n} from \"@angular/core\";\r\n\r\nimport { MatDialogRef } from \"@angular/material/dialog\";\r\n\r\n@Component({\r\n\tselector: \"kt-common-dialog\",\r\n\tstyleUrls: [\"./index.component.scss\"],\r\n\ttemplateUrl: \"./index.component.html\",\r\n})\r\nexport class CommonDialogComponent implements OnInit {\r\n\tpublic translation;\r\n\r\n\t// 隐藏元素相关属性\r\n\t@Input() hideHeader = false;\r\n\t@Input() hideCloseIcon = false;\r\n\t@Input() hideCloseBtn = false;\r\n\t@Input() hideSaveBtn = false;\r\n\t@Input() saveBtnLabel = \"\";\r\n\t@Input() cancelBtnLabel = \"\";\r\n\t@Input() showErrorIcon = false;\r\n\r\n\t// 显示相关属性\r\n\t@Input() size = \"\";\r\n\t@Input() title = \"Dialog\";\r\n\t@Input() loading = false;\r\n\t@Output() saveEmit: EventEmitter<Function> = new EventEmitter<Function>();\r\n\t@Output() closeEmit: EventEmitter<Function> = new EventEmitter<Function>();\r\n\tconstructor(public dialogRef: MatDialogRef<CommonDialogComponent>) {}\r\n\r\n\t// 控制底部插槽有内容时隐藏默认按钮\r\n\t@ContentChild(\"footerSlot\", { static: true }) footerContent: any;\r\n\tcustomFooter: boolean = false;\r\n\tngAfterContentInit() {\r\n\t\tthis.customFooter = !!this.footerContent;\r\n\t}\r\n\r\n\tngOnInit() {\r\n\t\tthis.getInfo();\r\n\t}\r\n\r\n\tonClose(res?) {\r\n\t\tthis.dialogRef.close(res);\r\n\t\tthis.closeEmit.emit(res);\r\n\t}\r\n\r\n\tonSave() {\r\n\t\t// 这里把关闭事件emit上去,但是必须使用箭头函数保存this对象\r\n\t\tthis.saveEmit.emit((res) => {\r\n\t\t\tthis.onClose(res);\r\n\t\t});\r\n\t}\r\n\r\n\tprivate getInfo() {\r\n\t\tthis.translation = JSON.parse(localStorage.getItem(\"translation\")) || {};\r\n\t\tthis.saveBtnLabel =\r\n\t\t\tthis.saveBtnLabel || this.translation.SAVE || \".SAVE\";\r\n\t\tthis.cancelBtnLabel =\r\n\t\t\tthis.cancelBtnLabel || this.translation.CANCEL || \".CANCEL\";\r\n\t}\r\n}\r\n","import { NgModule } from \"@angular/core\";\r\nimport { ReactiveFormsModule, FormsModule } from \"@angular/forms\";\r\nimport { HttpClientModule } from \"@angular/common/http\";\r\nimport { CommonModule } from \"@angular/common\";\r\n\r\nimport {\r\n GridModule,\r\n PageService,\r\n SortService,\r\n FilterService,\r\n ExcelExportService,\r\n EditService,\r\n ResizeService,\r\n ToolbarService,\r\n ColumnChooserService,\r\n AggregateService,\r\n ColumnMenuService,\r\n DetailRowService,\r\n SelectionService,\r\n PagerModule,\r\n GroupService,\r\n GridAllModule,\r\n} from \"@syncfusion/ej2-angular-grids\";\r\nimport {\r\n SwitchModule,\r\n CheckBoxModule,\r\n RadioButtonModule,\r\n ButtonModule,\r\n} from \"@syncfusion/ej2-angular-buttons\";\r\nimport { DiagramModule } from \"@syncfusion/ej2-angular-diagrams\";\r\nimport { TooltipModule, DialogModule } from \"@syncfusion/ej2-angular-popups\";\r\nimport {\r\n DatePickerModule,\r\n DateRangePickerModule,\r\n DateTimePickerModule,\r\n} from \"@syncfusion/ej2-angular-calendars\";\r\n\r\nimport {\r\n TextBoxModule,\r\n ColorPickerModule,\r\n UploaderModule,\r\n NumericTextBoxModule,\r\n} from \"@syncfusion/ej2-angular-inputs\";\r\nimport {\r\n DropDownListModule,\r\n MultiSelectAllModule,\r\n AutoCompleteModule,\r\n DropDownTreeModule,\r\n ListBoxModule,\r\n} from \"@syncfusion/ej2-angular-dropdowns\";\r\nimport {\r\n PivotViewAllModule,\r\n PivotFieldListAllModule,\r\n} from \"@syncfusion/ej2-angular-pivotview\";\r\nimport {\r\n ChartAllModule,\r\n AccumulationChartAllModule,\r\n RangeNavigatorAllModule,\r\n AccumulationChartModule,\r\n PieSeriesService,\r\n AccumulationLegendService,\r\n AccumulationTooltipService,\r\n AccumulationAnnotationService,\r\n AccumulationDataLabelService,\r\n} from \"@syncfusion/ej2-angular-charts\";\r\nimport { DashboardLayoutModule } from \"@syncfusion/ej2-angular-layouts\";\r\nimport {\r\n CarouselAllModule,\r\n ToolbarModule,\r\n TabModule,\r\n} from \"@syncfusion/ej2-angular-navigations\";\r\nimport {\r\n PdfViewerModule,\r\n LinkAnnotationService,\r\n BookmarkViewService,\r\n MagnificationService,\r\n ThumbnailViewService,\r\n ToolbarService as PbfToolbarService,\r\n NavigationService,\r\n TextSearchService,\r\n TextSelectionService,\r\n PrintService,\r\n} from \"@syncfusion/ej2-angular-pdfviewer\";\r\nimport {\r\n DropDownButtonModule,\r\n SplitButtonModule,\r\n} from \"@syncfusion/ej2-angular-splitbuttons\";\r\nimport {\r\n RichTextEditorAllModule,\r\n HtmlEditorService,\r\n ToolbarService as RichEditorToolbarService,\r\n} from \"@syncfusion/ej2-angular-richtexteditor\";\r\n\r\nimport { MatSnackBarModule } from \"@angular/material/snack-bar\";\r\nimport { MatDialogModule } from \"@angular/material/dialog\";\r\nimport { MatIconModule } from \"@angular/material/icon\";\r\n\r\n// services\r\nimport { CommonFunctionService } from \"./service/common-function.service\";\r\nimport { IconLoaderService } from \"./service/icon-loader.service\";\r\nimport { DialogService } from \"./service/dialog.service\";\r\nimport { KeepAliveService } from \"./service/keep-alive.service\";\r\n\r\nimport { CommonGridComponent } from \"./common-grid/index.component\";\r\nimport { FloatBoxComponent } from \"./float-box/index.component\";\r\n\r\nimport { RsPageListComponent } from \"./layout/page-list/index.component\";\r\nimport { RsPageTabComponent } from \"./layout/page-tab/index.component\";\r\nimport { GridBoxComponent } from \"./layout/grid-box/index.component\";\r\n\r\nimport { MainContainerComponent } from \"./layout/main-container/index.component\";\r\nimport { RSHeaderComponent } from \"./layout/rs-header/index.component\";\r\nimport { RSFooterComponent } from \"./layout/rs-footer/index.component\";\r\nimport { RSAsideComponent } from \"./layout/rs-aside/index.component\";\r\nimport { MultiTabComponent } from \"./layout/multi-tab/index.component\";\r\n\r\nimport { TagInputComponent } from \"./form/tag-input/index.component\";\r\nimport { RadioGroupComponent } from \"./form/radio-group/index.component\";\r\nimport { CheckboxGroupComponent } from \"./form/checkbox-group/index.component\";\r\nimport { SwitchInputComponent } from \"./form/switch-input/index.component\";\r\n\r\nimport { NewActionNotificationComponent } from \"./dialog/new-action-notification/new-action-notification.component\";\r\nimport { CommonDialogComponent } from \"./dialog/common-dialog/index.component\";\r\nimport { CommonDeleteComponent } from \"./dialog/common-delete-dialog/index.component\";\r\n\r\n@NgModule({\r\n declarations: [\r\n CommonGridComponent,\r\n FloatBoxComponent,\r\n RsPageListComponent,\r\n RsPageTabComponent,\r\n GridBoxComponent,\r\n RSHeaderComponent,\r\n RSFooterComponent,\r\n RSAsideComponent,\r\n MultiTabComponent,\r\n MainContainerComponent,\r\n TagInputComponent,\r\n RadioGroupComponent,\r\n CheckboxGroupComponent,\r\n SwitchInputComponent,\r\n NewActionNotificationComponent,\r\n CommonDialogComponent,\r\n CommonDeleteComponent,\r\n ],\r\n imports: [\r\n CommonModule,\r\n HttpClientModule,\r\n ReactiveFormsModule,\r\n FormsModule,\r\n MatSnackBarModule,\r\n MatDialogModule,\r\n MatIconModule,\r\n GridModule,\r\n PagerModule,\r\n GridAllModule,\r\n SwitchModule,\r\n CheckBoxModule,\r\n RadioButtonModule,\r\n ButtonModule,\r\n DiagramModule,\r\n TooltipModule,\r\n DialogModule,\r\n DatePickerModule,\r\n DateRangePickerModule,\r\n DateTimePickerModule,\r\n TextBoxModule,\r\n ColorPickerModule,\r\n UploaderModule,\r\n NumericTextBoxModule,\r\n DropDownListModule,\r\n DropDownTreeModule,\r\n MultiSelectAllModule,\r\n AutoCompleteModule,\r\n ListBoxModule,\r\n PivotViewAllModule,\r\n PivotFieldListAllModule,\r\n ChartAllModule,\r\n AccumulationChartAllModule,\r\n RangeNavigatorAllModule,\r\n AccumulationChartModule,\r\n DashboardLayoutModule,\r\n CarouselAllModule,\r\n ToolbarModule,\r\n TabModule,\r\n PdfViewerModule,\r\n DropDownButtonModule,\r\n SplitButtonModule,\r\n RichTextEditorAllModule,\r\n ],\r\n providers: [\r\n PageService,\r\n SortService,\r\n FilterService,\r\n ExcelExportService,\r\n EditService,\r\n ResizeService,\r\n ToolbarService,\r\n ColumnChooserService,\r\n AggregateService,\r\n ColumnMenuService,\r\n DetailRowService,\r\n SelectionService,\r\n GroupService,\r\n PieSeriesService,\r\n AccumulationLegendService,\r\n AccumulationTooltipService,\r\n AccumulationAnnotationService,\r\n AccumulationDataLabelService,\r\n LinkAnnotationService,\r\n BookmarkViewService,\r\n MagnificationService,\r\n ThumbnailViewService,\r\n PbfToolbarService,\r\n NavigationService,\r\n TextSearchService,\r\n TextSelectionService,\r\n PrintService,\r\n HtmlEditorService,\r\n RichEditorToolbarService,\r\n\r\n CommonFunctionService,\r\n IconLoaderService,\r\n DialogService,\r\n KeepAliveService,\r\n ],\r\n exports: [\r\n CommonModule,\r\n HttpClientModule,\r\n ReactiveFormsModule,\r\n FormsModule,\r\n MatSnackBarModule,\r\n MatDialogModule,\r\n GridModule,\r\n PagerModule,\r\n GridAllModule,\r\n SwitchModule,\r\n CheckBoxModule,\r\n RadioButtonModule,\r\n ButtonModule,\r\n DiagramModule,\r\n TooltipModule,\r\n DialogModule,\r\n DatePickerModule,\r\n DateRangePickerModule,\r\n DateTimePickerModule,\r\n TextBoxModule,\r\n ColorPickerModule,\r\n UploaderModule,\r\n NumericTextBoxModule,\r\n DropDownListModule,\r\n DropDownTreeModule,\r\n MultiSelectAllModule,\r\n AutoCompleteModule,\r\n ListBoxModule,\r\n PivotViewAllModule,\r\n PivotFieldListAllModule,\r\n ChartAllModule,\r\n AccumulationChartAllModule,\r\n RangeNavigatorAllModule,\r\n AccumulationChartModule,\r\n DashboardLayoutModule,\r\n CarouselAllModule,\r\n ToolbarModule,\r\n TabModule,\r\n PdfViewerModule,\r\n DropDownButtonModule,\r\n SplitButtonModule,\r\n RichTextEditorAllModule,\r\n CommonGridComponent,\r\n FloatBoxComponent,\r\n RsPageListComponent,\r\n RsPageTabComponent,\r\n GridBoxComponent,\r\n RSHeaderComponent,\r\n RSFooterComponent,\r\n RSAsideComponent,\r\n MultiTabComponent,\r\n MainContainerComponent,\r\n TagInputComponent,\r\n RadioGroupComponent,\r\n CheckboxGroupComponent,\r\n SwitchInputComponent,\r\n ],\r\n entryComponents: [\r\n NewActionNotificationComponent,\r\n CommonDialogComponent,\r\n CommonDeleteComponent,\r\n ],\r\n})\r\nexport class RaiseCommonLibModule {}\r\n"]}