ngx-rs-ant 1.3.6 → 1.3.8

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.
@@ -2,7 +2,7 @@ import * as i0 from '@angular/core';
2
2
  import { Component, Input, HostBinding, EventEmitter, Output, HostListener, ViewContainerRef, ViewChild, Directive, ViewChildren, NgModule, Injectable, ContentChild } from '@angular/core';
3
3
  import { PluginFactory } from 'coast-plugin-register';
4
4
  import * as i1 from '@angular/common';
5
- import { CommonModule } from '@angular/common';
5
+ import { CommonModule, formatDate } from '@angular/common';
6
6
  import { Subject, ReplaySubject, Subscription, map, shareReplay, lastValueFrom, debounceTime, interval } from 'rxjs';
7
7
  import * as i2 from 'devextreme-angular/ui/number-box';
8
8
  import * as i2$1 from 'devextreme-angular/ui/draggable';
@@ -20,9 +20,9 @@ import CustomStore from 'devextreme/data/custom_store';
20
20
  import * as i3 from 'devextreme-angular/core';
21
21
  import * as i5$1 from 'devextreme-angular/ui/data-grid';
22
22
  import * as i5 from 'devextreme-angular/ui/tooltip';
23
+ import notify from 'devextreme/ui/notify';
23
24
  import * as i2$2 from '@angular/platform-browser';
24
25
  import * as i3$1 from 'devextreme-angular/ui/accordion';
25
- import notify from 'devextreme/ui/notify';
26
26
  import * as i7 from 'devextreme-angular/ui/validation-group';
27
27
  import * as i4$1 from 'devextreme-angular/ui/text-box';
28
28
  import * as i4$2 from 'devextreme-angular/ui/popover';
@@ -2322,6 +2322,7 @@ class DataGridFactory {
2322
2322
  cssClass: 'cell-vertical-middle',
2323
2323
  allowHeaderFiltering: false,
2324
2324
  allowFiltering: false,
2325
+ allowSorting: false,
2325
2326
  visible: field.visible,
2326
2327
  fixed: field.fixed
2327
2328
  };
@@ -2347,7 +2348,7 @@ class DataGridFactory {
2347
2348
  });
2348
2349
  return result;
2349
2350
  }
2350
- makeDataGridDataSource(tenant, className, view, extraFilter) {
2351
+ makeDataGridDataSource(tenant, className, view, extraFilter, dataGridName) {
2351
2352
  return new CustomStore({
2352
2353
  key: 'oid',
2353
2354
  byKey: (key) => {
@@ -2397,7 +2398,11 @@ class DataGridFactory {
2397
2398
  if (filter) {
2398
2399
  params += '&filter=' + encodeURIComponent(JSON.stringify(filter));
2399
2400
  }
2400
- return lastValueFrom(this.service.getMany(tenant, className, params + '&view=' + (view || '')));
2401
+ params += '&view=' + view || '';
2402
+ if (dataGridName) {
2403
+ params += '&dataGridName=' + dataGridName;
2404
+ }
2405
+ return lastValueFrom(this.service.getMany(tenant, className, params));
2401
2406
  }
2402
2407
  });
2403
2408
  }
@@ -2411,6 +2416,153 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImpor
2411
2416
  }]
2412
2417
  }], ctorParameters: function () { return [{ type: i1$1.HttpClient }]; } });
2413
2418
 
2419
+ function notify_error(message) {
2420
+ notify({
2421
+ displayTime: 12000,
2422
+ message,
2423
+ type: 'error',
2424
+ width: '300px'
2425
+ }, {
2426
+ direction: 'up-push',
2427
+ position: 'bottom right'
2428
+ });
2429
+ }
2430
+ function notify_warning(message) {
2431
+ notify({
2432
+ displayTime: 8000,
2433
+ message,
2434
+ type: 'warning',
2435
+ width: '300px'
2436
+ }, {
2437
+ direction: 'up-push',
2438
+ position: 'bottom right'
2439
+ });
2440
+ }
2441
+ function notify_success(message) {
2442
+ notify({
2443
+ displayTime: 4000,
2444
+ message,
2445
+ type: 'success',
2446
+ width: '300px'
2447
+ }, {
2448
+ direction: 'down-push',
2449
+ position: 'top right'
2450
+ });
2451
+ }
2452
+ function format_date(date, locale) {
2453
+ return formatDate(date, 'yyyy/MM/dd', locale, 'GMT+8');
2454
+ }
2455
+ function format_datetime(date, locale) {
2456
+ return formatDate(date, 'yyyy/MM/dd HH:mm:ss', locale, 'GMT+8');
2457
+ }
2458
+ function file_type_icon(name) {
2459
+ const type = name.substring(name.lastIndexOf('.') + 1).toLocaleLowerCase();
2460
+ switch (type) {
2461
+ case 'xls':
2462
+ case 'xlsx':
2463
+ return 'excel';
2464
+ case 'doc':
2465
+ case 'docx':
2466
+ return 'word';
2467
+ case 'ppt':
2468
+ case 'pptx':
2469
+ return 'ppt';
2470
+ case 'pdf':
2471
+ return 'pdf';
2472
+ case 'txt':
2473
+ case 'csv':
2474
+ case 'xml':
2475
+ case 'json':
2476
+ case 'js':
2477
+ return 'text';
2478
+ case 'jpg':
2479
+ case 'jpeg':
2480
+ case 'png':
2481
+ case 'gif':
2482
+ return 'image';
2483
+ case 'zip':
2484
+ case 'rar':
2485
+ case '7z':
2486
+ case 'jar':
2487
+ return 'zip';
2488
+ default:
2489
+ return 'unknown';
2490
+ }
2491
+ }
2492
+ function format_file_size(size) {
2493
+ const labels = ['b', 'Kb', 'Mb', 'Gb'];
2494
+ const count = labels.length - 1;
2495
+ let i = 0;
2496
+ while (i < count && size >= 1024) {
2497
+ size /= 1024;
2498
+ i++;
2499
+ }
2500
+ return Math.round(size * 100) / 100 + " " + labels[i];
2501
+ }
2502
+ async function validate(validator) {
2503
+ return new Promise(resolve => {
2504
+ const validateResult = validator.instance.validate();
2505
+ if (!validateResult.isValid) {
2506
+ resolve(false);
2507
+ }
2508
+ if (validateResult.status === 'pending') {
2509
+ validateResult.complete?.then((result) => {
2510
+ if (result.isValid) {
2511
+ resolve(true);
2512
+ }
2513
+ else {
2514
+ resolve(false);
2515
+ }
2516
+ });
2517
+ }
2518
+ else {
2519
+ resolve(true);
2520
+ }
2521
+ });
2522
+ }
2523
+ async function validate_group(validationGroup) {
2524
+ const top = validationGroup.element.nativeElement;
2525
+ let sourceNode;
2526
+ const targetClassName = 'dx-field';
2527
+ const findTargetNode = (node) => {
2528
+ sourceNode = node;
2529
+ while (true) {
2530
+ if (node.classList.contains(targetClassName)) {
2531
+ return node;
2532
+ }
2533
+ else {
2534
+ node = node.parentElement;
2535
+ if (node === top) {
2536
+ return sourceNode;
2537
+ }
2538
+ }
2539
+ }
2540
+ };
2541
+ return new Promise(resolve => {
2542
+ const validateResult = validationGroup.instance.validate();
2543
+ if (!validateResult.isValid) {
2544
+ const brokenElement = (validateResult.brokenRules?.[0]).validator.element();
2545
+ findTargetNode(brokenElement).scrollIntoView();
2546
+ resolve(false);
2547
+ }
2548
+ if (validateResult.status === 'pending') {
2549
+ validateResult.complete?.then((result) => {
2550
+ if (result.isValid) {
2551
+ resolve(true);
2552
+ }
2553
+ else {
2554
+ const brokenElement = (result.brokenRules?.[0]).validator.element();
2555
+ findTargetNode(brokenElement).scrollIntoView();
2556
+ resolve(false);
2557
+ }
2558
+ });
2559
+ }
2560
+ else {
2561
+ resolve(true);
2562
+ }
2563
+ });
2564
+ }
2565
+
2414
2566
  class FileCellTemplateComponent {
2415
2567
  constructor(service, domSanitizer) {
2416
2568
  this.service = service;
@@ -2425,11 +2577,11 @@ class FileCellTemplateComponent {
2425
2577
  <table>
2426
2578
  <tr>
2427
2579
  <td style="text-align: right;">名称:</td>
2428
- <td style="text-align: left;">${this.file.fileName}</td>
2580
+ <td style="text-align: left;">${this.filename}</td>
2429
2581
  </tr>
2430
2582
  <tr>
2431
2583
  <td style="text-align: right;">大小:</td>
2432
- <td style="text-align: left;">${this.getFileSize(this.file.fileSize)}</td>
2584
+ <td style="text-align: left;">${format_file_size(this.file.fileSize)}</td>
2433
2585
  </tr>
2434
2586
  <tr>
2435
2587
  <td style="text-align: right;">时间:</td>
@@ -2437,46 +2589,7 @@ class FileCellTemplateComponent {
2437
2589
  </tr>
2438
2590
  </table>
2439
2591
  `);
2440
- const type = this.file.fileName.substring(this.file.fileName.lastIndexOf('.') + 1).toLocaleLowerCase();
2441
- switch (type) {
2442
- case 'xls':
2443
- case 'xlsx':
2444
- this.icon = 'excel';
2445
- break;
2446
- case 'doc':
2447
- case 'docx':
2448
- this.icon = 'word';
2449
- break;
2450
- case 'ppt':
2451
- case 'pptx':
2452
- this.icon = 'ppt';
2453
- break;
2454
- case 'pdf':
2455
- this.icon = 'pdf';
2456
- break;
2457
- case 'txt':
2458
- case 'csv':
2459
- case 'xml':
2460
- case 'json':
2461
- case 'js':
2462
- this.icon = 'text';
2463
- break;
2464
- case 'jpg':
2465
- case 'jpeg':
2466
- case 'png':
2467
- case 'gif':
2468
- this.icon = 'image';
2469
- break;
2470
- case 'zip':
2471
- case 'rar':
2472
- case '7z':
2473
- case 'jar':
2474
- this.icon = 'zip';
2475
- break;
2476
- default:
2477
- this.icon = 'unknown';
2478
- break;
2479
- }
2592
+ this.icon = file_type_icon(this.filename);
2480
2593
  // 重绘表格宽高
2481
2594
  setTimeout(() => {
2482
2595
  //this.table.resize();
@@ -2490,22 +2603,12 @@ class FileCellTemplateComponent {
2490
2603
  this.loading = false;
2491
2604
  });
2492
2605
  }
2493
- getFileSize(size) {
2494
- const labels = ['b', 'Kb', 'Mb', 'Gb'];
2495
- const count = labels.length - 1;
2496
- let i = 0;
2497
- while (i < count && size >= 1024) {
2498
- size /= 1024;
2499
- i++;
2500
- }
2501
- return Math.round(size * 100) / 100 + " " + labels[i];
2502
- }
2503
2606
  }
2504
2607
  FileCellTemplateComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: FileCellTemplateComponent, deps: [{ token: DataGridService }, { token: i2$2.DomSanitizer }], target: i0.ɵɵFactoryTarget.Component });
2505
- FileCellTemplateComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.7", type: FileCellTemplateComponent, selector: "rs-file-cell-template", inputs: { table: "table", oid: "oid" }, ngImport: i0, template: "<dx-button #fileBtn type=\"default\" stylingMode=\"text\">\n <i class=\"coast-icon-file-{{icon}}\" style=\"padding-right: 4px;\"></i>\n {{filename}}\n <dx-tooltip [target]=\"fileBtn.instance.element()\"\n [position]=\"'top'\"\n [visible]=\"false\"\n [showEvent]=\"'click'\">\n <div *dxTemplate=\"let data of 'content'\">\n <div [innerHTML]=\"content\"></div>\n <dx-button type=\"default\" stylingMode=\"text\" icon=\"coast-icon coast-icon-download\" text=\"\u4E0B\u8F7D\"\n (onClick)=\"download()\" [disabled]=\"loading\"></dx-button>\n </div>\n </dx-tooltip>\n</dx-button><br/>\n", styles: [":host{height:20px;padding-right:4px}:host button{color:var(--coast-default-color, #337ab7)}\n"], dependencies: [{ kind: "directive", type: i3.DxTemplateDirective, selector: "[dxTemplate]", inputs: ["dxTemplateOf"] }, { kind: "component", type: i4.DxButtonComponent, selector: "dx-button", inputs: ["accessKey", "activeStateEnabled", "disabled", "elementAttr", "focusStateEnabled", "height", "hint", "hoverStateEnabled", "icon", "rtlEnabled", "stylingMode", "tabIndex", "template", "text", "type", "useSubmitBehavior", "validationGroup", "visible", "width"], outputs: ["onClick", "onContentReady", "onDisposing", "onInitialized", "onOptionChanged", "accessKeyChange", "activeStateEnabledChange", "disabledChange", "elementAttrChange", "focusStateEnabledChange", "heightChange", "hintChange", "hoverStateEnabledChange", "iconChange", "rtlEnabledChange", "stylingModeChange", "tabIndexChange", "templateChange", "textChange", "typeChange", "useSubmitBehaviorChange", "validationGroupChange", "visibleChange", "widthChange"] }, { kind: "component", type: i5.DxTooltipComponent, selector: "dx-tooltip", inputs: ["animation", "closeOnOutsideClick", "container", "contentTemplate", "copyRootClassesToWrapper", "deferRendering", "disabled", "elementAttr", "height", "hideEvent", "hideOnOutsideClick", "hideOnParentScroll", "hint", "hoverStateEnabled", "maxHeight", "maxWidth", "minHeight", "minWidth", "position", "rtlEnabled", "shading", "shadingColor", "showEvent", "target", "visible", "width", "wrapperAttr"], outputs: ["onContentReady", "onDisposing", "onHidden", "onHiding", "onInitialized", "onOptionChanged", "onShowing", "onShown", "animationChange", "closeOnOutsideClickChange", "containerChange", "contentTemplateChange", "copyRootClassesToWrapperChange", "deferRenderingChange", "disabledChange", "elementAttrChange", "heightChange", "hideEventChange", "hideOnOutsideClickChange", "hideOnParentScrollChange", "hintChange", "hoverStateEnabledChange", "maxHeightChange", "maxWidthChange", "minHeightChange", "minWidthChange", "positionChange", "rtlEnabledChange", "shadingChange", "shadingColorChange", "showEventChange", "targetChange", "visibleChange", "widthChange", "wrapperAttrChange"] }] });
2608
+ FileCellTemplateComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.7", type: FileCellTemplateComponent, selector: "rs-file-cell-template", inputs: { table: "table", oid: "oid" }, ngImport: i0, template: "<dx-button #fileBtn type=\"default\" stylingMode=\"text\">\n <i class=\"coast-icon-file-{{icon}}\" style=\"padding-right: 4px;\"></i>\n {{filename}}\n <dx-tooltip [target]=\"fileBtn.instance.element()\"\n [position]=\"'top'\"\n [visible]=\"false\"\n [showEvent]=\"'click'\">\n <div *dxTemplate=\"let data of 'content'\">\n <div [innerHTML]=\"content\"></div>\n <dx-button type=\"default\" stylingMode=\"text\" icon=\"coast-icon coast-icon-download\" text=\"\u4E0B\u8F7D\"\n (onClick)=\"download()\" [disabled]=\"loading\"></dx-button>\n </div>\n </dx-tooltip>\n</dx-button><br/>\n", styles: [""], dependencies: [{ kind: "directive", type: i3.DxTemplateDirective, selector: "[dxTemplate]", inputs: ["dxTemplateOf"] }, { kind: "component", type: i4.DxButtonComponent, selector: "dx-button", inputs: ["accessKey", "activeStateEnabled", "disabled", "elementAttr", "focusStateEnabled", "height", "hint", "hoverStateEnabled", "icon", "rtlEnabled", "stylingMode", "tabIndex", "template", "text", "type", "useSubmitBehavior", "validationGroup", "visible", "width"], outputs: ["onClick", "onContentReady", "onDisposing", "onInitialized", "onOptionChanged", "accessKeyChange", "activeStateEnabledChange", "disabledChange", "elementAttrChange", "focusStateEnabledChange", "heightChange", "hintChange", "hoverStateEnabledChange", "iconChange", "rtlEnabledChange", "stylingModeChange", "tabIndexChange", "templateChange", "textChange", "typeChange", "useSubmitBehaviorChange", "validationGroupChange", "visibleChange", "widthChange"] }, { kind: "component", type: i5.DxTooltipComponent, selector: "dx-tooltip", inputs: ["animation", "closeOnOutsideClick", "container", "contentTemplate", "copyRootClassesToWrapper", "deferRendering", "disabled", "elementAttr", "height", "hideEvent", "hideOnOutsideClick", "hideOnParentScroll", "hint", "hoverStateEnabled", "maxHeight", "maxWidth", "minHeight", "minWidth", "position", "rtlEnabled", "shading", "shadingColor", "showEvent", "target", "visible", "width", "wrapperAttr"], outputs: ["onContentReady", "onDisposing", "onHidden", "onHiding", "onInitialized", "onOptionChanged", "onShowing", "onShown", "animationChange", "closeOnOutsideClickChange", "containerChange", "contentTemplateChange", "copyRootClassesToWrapperChange", "deferRenderingChange", "disabledChange", "elementAttrChange", "heightChange", "hideEventChange", "hideOnOutsideClickChange", "hideOnParentScrollChange", "hintChange", "hoverStateEnabledChange", "maxHeightChange", "maxWidthChange", "minHeightChange", "minWidthChange", "positionChange", "rtlEnabledChange", "shadingChange", "shadingColorChange", "showEventChange", "targetChange", "visibleChange", "widthChange", "wrapperAttrChange"] }] });
2506
2609
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: FileCellTemplateComponent, decorators: [{
2507
2610
  type: Component,
2508
- args: [{ selector: 'rs-file-cell-template', template: "<dx-button #fileBtn type=\"default\" stylingMode=\"text\">\n <i class=\"coast-icon-file-{{icon}}\" style=\"padding-right: 4px;\"></i>\n {{filename}}\n <dx-tooltip [target]=\"fileBtn.instance.element()\"\n [position]=\"'top'\"\n [visible]=\"false\"\n [showEvent]=\"'click'\">\n <div *dxTemplate=\"let data of 'content'\">\n <div [innerHTML]=\"content\"></div>\n <dx-button type=\"default\" stylingMode=\"text\" icon=\"coast-icon coast-icon-download\" text=\"\u4E0B\u8F7D\"\n (onClick)=\"download()\" [disabled]=\"loading\"></dx-button>\n </div>\n </dx-tooltip>\n</dx-button><br/>\n", styles: [":host{height:20px;padding-right:4px}:host button{color:var(--coast-default-color, #337ab7)}\n"] }]
2611
+ args: [{ selector: 'rs-file-cell-template', template: "<dx-button #fileBtn type=\"default\" stylingMode=\"text\">\n <i class=\"coast-icon-file-{{icon}}\" style=\"padding-right: 4px;\"></i>\n {{filename}}\n <dx-tooltip [target]=\"fileBtn.instance.element()\"\n [position]=\"'top'\"\n [visible]=\"false\"\n [showEvent]=\"'click'\">\n <div *dxTemplate=\"let data of 'content'\">\n <div [innerHTML]=\"content\"></div>\n <dx-button type=\"default\" stylingMode=\"text\" icon=\"coast-icon coast-icon-download\" text=\"\u4E0B\u8F7D\"\n (onClick)=\"download()\" [disabled]=\"loading\"></dx-button>\n </div>\n </dx-tooltip>\n</dx-button><br/>\n" }]
2509
2612
  }], ctorParameters: function () { return [{ type: DataGridService }, { type: i2$2.DomSanitizer }]; }, propDecorators: { table: [{
2510
2613
  type: Input
2511
2614
  }], oid: [{
@@ -2617,7 +2720,7 @@ class DataGridComponent {
2617
2720
  }
2618
2721
  this.columns = columns;
2619
2722
  });
2620
- this.dataSource = this.factory.makeDataGridDataSource(this.tenant, this.className, this.view, this.filter);
2723
+ this.dataSource = this.factory.makeDataGridDataSource(this.tenant, this.className, this.view, this.filter, this.dataGridName);
2621
2724
  }
2622
2725
  convertMultipleValueCellText(cellInfo) {
2623
2726
  if (!cellInfo.value) {
@@ -2677,7 +2780,7 @@ class DataGridComponent {
2677
2780
  }
2678
2781
  }
2679
2782
  DataGridComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: DataGridComponent, deps: [{ token: DataGridFactory }, { token: DataGridService }], target: i0.ɵɵFactoryTarget.Component });
2680
- DataGridComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.7", type: DataGridComponent, selector: "rs-data-grid", inputs: { tenant: "tenant", className: "className", view: "view", filter: "filter", enableMasterDetail: "enableMasterDetail", selectionMode: "selectionMode", customColumnFn: "customColumnFn" }, outputs: { onDxDataGridCellPrepared: "onDxDataGridCellPrepared", onDxDataGridContentReady: "onDxDataGridContentReady", onDxDataGridSelectionChanged: "onDxDataGridSelectionChanged" }, providers: [DataGridService], queries: [{ propertyName: "masterDetailTemplate", first: true, predicate: MasterDetailTemplateDirective, descendants: true }, { propertyName: "rowButtonsTemplate", first: true, predicate: RowButtonsTemplateDirective, descendants: true }, { propertyName: "instanceLinkTemplate", first: true, predicate: InstanceLinkTemplateDirective, descendants: true }], viewQueries: [{ propertyName: "dxDataGrid", first: true, predicate: DxDataGridComponent, descendants: true, static: true }], ngImport: i0, template: "<dx-data-grid [dataSource]=\"dataSource\"\r\n [columns]=\"columns\"\r\n [syncLookupFilterValues]=\"false\"\r\n [showBorders]=\"true\"\r\n [showRowLines]=\"true\"\r\n [hoverStateEnabled]=\"true\"\r\n [rowAlternationEnabled]=\"true\"\r\n [columnAutoWidth]=\"true\"\r\n [allowColumnResizing]=\"true\"\r\n columnResizingMode=\"widget\"\r\n dateSerializationFormat=\"yyyy/MM/dd HH:mm:ss\"\r\n (onCellPrepared)=\"onCellPrepared($event)\"\r\n (onEditorPreparing)=\"onEditorPreparing($event)\"\r\n (onContentReady)=\"onContentReady($event)\"\r\n (onSelectionChanged)=\"onSelectionChanged($event)\"\r\n (onRowExpanding)=\"$event.component.collapseAll(-1)\">\r\n <dxo-sorting mode=\"multiple\"></dxo-sorting>\r\n <dxo-selection [mode]=\"selectionMode\" selectAllMode=\"page\" showCheckBoxesMode=\"always\"></dxo-selection>\r\n <dxo-header-filter [visible]=\"true\">\r\n <dxo-search [enabled]=\"true\"></dxo-search>\r\n <dxo-texts [ok]=\"'\u786E\u5B9A'\"></dxo-texts>\r\n </dxo-header-filter>\r\n <dxo-filter-row [visible]=\"true\"></dxo-filter-row>\r\n <dxo-remote-operations [filtering]=\"true\"\r\n [sorting]=\"true\"\r\n [paging]=\"true\">\r\n </dxo-remote-operations>\r\n <dxo-master-detail [enabled]=\"enableMasterDetail\" template=\"masterDetailTemplate\"></dxo-master-detail>\r\n <dxo-paging [pageSize]=\"15\"></dxo-paging>\r\n <dxo-pager [visible]=\"true\"\r\n [showInfo]=\"true\"\r\n infoText=\"\u7B2C{0}\u9875\uFF0C\u5171{1}\u9875\uFF08\u5171{2}\u4E2A\u9879\u76EE\uFF09\"\r\n [showPageSizeSelector]=\"true\"\r\n [allowedPageSizes]=\"[15, 30, 50]\"\r\n ></dxo-pager>\r\n <dxo-scrolling showScrollbar=\"always\"></dxo-scrolling>\r\n <div *dxTemplate=\"let cellInfo of 'masterDetailTemplate'\">\r\n <ng-container [ngTemplateOutlet]=\"masterDetailTemplate.templateRef\"\r\n [ngTemplateOutletContext]=\"{$implicit: cellInfo, cellTemplateLoaded$: service.cellTemplateLoaded$}\"></ng-container>\r\n </div>\r\n <div *dxTemplate=\"let cellInfo of 'rowButtonsTemplate'\">\r\n <ng-container [ngTemplateOutlet]=\"rowButtonsTemplate.templateRef\"\r\n [ngTemplateOutletContext]=\"{$implicit: cellInfo, cellTemplateLoaded$: service.cellTemplateLoaded$}\"></ng-container>\r\n </div>\r\n <div *dxTemplate=\"let cellInfo of 'instanceLinkTemplate'\">\r\n <ng-container [ngTemplateOutlet]=\"instanceLinkTemplate.templateRef\"\r\n [ngTemplateOutletContext]=\"{$implicit: cellInfo, cellTemplateLoaded$: service.cellTemplateLoaded$}\"></ng-container>\r\n </div>\r\n <div *dxTemplate=\"let cellInfo of 'rowIndexTemplate'\">\r\n {{cellInfo.rowIndex + 1}}\r\n </div>\r\n <div *dxTemplate=\"let cellInfo of 'multipleValueCellTemplate'\">\r\n <div [innerHTML]=\"convertMultipleValueCellText(cellInfo)\"></div>\r\n </div>\r\n <div *dxTemplate=\"let cellInfo of 'textCellTemplate'\">\r\n <div #textDiv style=\"text-overflow: ellipsis; overflow: hidden; cursor: pointer;\">{{cellInfo.value}}</div>\r\n <dx-tooltip [target]=\"textDiv\"\r\n [position]=\"'top'\"\r\n [showEvent]=\"'click'\">\r\n <div *dxTemplate=\"let data of 'content'\">\r\n <p style=\"max-width: 320px; text-align: left; white-space: normal;\" [innerText]=\"cellInfo.value\"></p>\r\n </div>\r\n </dx-tooltip>\r\n </div>\r\n <div *dxTemplate=\"let cellInfo of 'fileCellTemplate'\">\r\n <ng-container *ngFor=\"let file of cellInfo.value\">\r\n <rs-file-cell-template [table]=\"cellInfo.component\" [oid]=\"file\"></rs-file-cell-template>\r\n </ng-container>\r\n </div>\r\n <div *dxTemplate=\"let cellInfo of 'userCellTemplate'\">\r\n <ng-container *ngFor=\"let user of getOriginalValue(cellInfo, 'userInfo')\">\r\n <rs-user-info-template [table]=\"cellInfo.component\" [uid]=\"user\"></rs-user-info-template>\r\n </ng-container>\r\n </div>\r\n <div *dxTemplate=\"let cellInfo of 'unitCellTemplate'\">\r\n <ng-container *ngFor=\"let unit of getOriginalValue(cellInfo, 'unitInfo')\">\r\n <rs-unit-info-template [table]=\"cellInfo.component\" [uid]=\"unit\"></rs-unit-info-template>\r\n </ng-container>\r\n </div>\r\n</dx-data-grid>\r\n", styles: [":host{display:flex;flex-flow:column nowrap}:host dx-data-grid{flex:auto;height:0}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i3.DxTemplateDirective, selector: "[dxTemplate]", inputs: ["dxTemplateOf"] }, { kind: "component", type: i5$1.DxDataGridComponent, selector: "dx-data-grid", inputs: ["accessKey", "activeStateEnabled", "allowColumnReordering", "allowColumnResizing", "autoNavigateToFocusedRow", "cacheEnabled", "cellHintEnabled", "columnAutoWidth", "columnChooser", "columnFixing", "columnHidingEnabled", "columnMinWidth", "columnResizingMode", "columns", "columnWidth", "customizeColumns", "dataRowTemplate", "dataSource", "dateSerializationFormat", "disabled", "editing", "elementAttr", "errorRowEnabled", "export", "filterBuilder", "filterBuilderPopup", "filterPanel", "filterRow", "filterSyncEnabled", "filterValue", "focusedColumnIndex", "focusedRowEnabled", "focusedRowIndex", "focusedRowKey", "grouping", "groupPanel", "headerFilter", "height", "highlightChanges", "hint", "hoverStateEnabled", "keyboardNavigation", "keyExpr", "loadPanel", "masterDetail", "noDataText", "pager", "paging", "remoteOperations", "renderAsync", "repaintChangesOnly", "rowAlternationEnabled", "rowDragging", "rowTemplate", "rtlEnabled", "scrolling", "searchPanel", "selectedRowKeys", "selection", "selectionFilter", "showBorders", "showColumnHeaders", "showColumnLines", "showRowLines", "sortByGroupSummaryInfo", "sorting", "stateStoring", "summary", "syncLookupFilterValues", "tabIndex", "toolbar", "twoWayBindingEnabled", "visible", "width", "wordWrapEnabled"], outputs: ["onAdaptiveDetailRowPreparing", "onCellClick", "onCellDblClick", "onCellHoverChanged", "onCellPrepared", "onContentReady", "onContextMenuPreparing", "onDataErrorOccurred", "onDisposing", "onEditCanceled", "onEditCanceling", "onEditingStart", "onEditorPrepared", "onEditorPreparing", "onExporting", "onFocusedCellChanged", "onFocusedCellChanging", "onFocusedRowChanged", "onFocusedRowChanging", "onInitialized", "onInitNewRow", "onKeyDown", "onOptionChanged", "onRowClick", "onRowCollapsed", "onRowCollapsing", "onRowDblClick", "onRowExpanded", "onRowExpanding", "onRowInserted", "onRowInserting", "onRowPrepared", "onRowRemoved", "onRowRemoving", "onRowUpdated", "onRowUpdating", "onRowValidating", "onSaved", "onSaving", "onSelectionChanged", "onToolbarPreparing", "accessKeyChange", "activeStateEnabledChange", "allowColumnReorderingChange", "allowColumnResizingChange", "autoNavigateToFocusedRowChange", "cacheEnabledChange", "cellHintEnabledChange", "columnAutoWidthChange", "columnChooserChange", "columnFixingChange", "columnHidingEnabledChange", "columnMinWidthChange", "columnResizingModeChange", "columnsChange", "columnWidthChange", "customizeColumnsChange", "dataRowTemplateChange", "dataSourceChange", "dateSerializationFormatChange", "disabledChange", "editingChange", "elementAttrChange", "errorRowEnabledChange", "exportChange", "filterBuilderChange", "filterBuilderPopupChange", "filterPanelChange", "filterRowChange", "filterSyncEnabledChange", "filterValueChange", "focusedColumnIndexChange", "focusedRowEnabledChange", "focusedRowIndexChange", "focusedRowKeyChange", "groupingChange", "groupPanelChange", "headerFilterChange", "heightChange", "highlightChangesChange", "hintChange", "hoverStateEnabledChange", "keyboardNavigationChange", "keyExprChange", "loadPanelChange", "masterDetailChange", "noDataTextChange", "pagerChange", "pagingChange", "remoteOperationsChange", "renderAsyncChange", "repaintChangesOnlyChange", "rowAlternationEnabledChange", "rowDraggingChange", "rowTemplateChange", "rtlEnabledChange", "scrollingChange", "searchPanelChange", "selectedRowKeysChange", "selectionChange", "selectionFilterChange", "showBordersChange", "showColumnHeadersChange", "showColumnLinesChange", "showRowLinesChange", "sortByGroupSummaryInfoChange", "sortingChange", "stateStoringChange", "summaryChange", "syncLookupFilterValuesChange", "tabIndexChange", "toolbarChange", "twoWayBindingEnabledChange", "visibleChange", "widthChange", "wordWrapEnabledChange"] }, { kind: "component", type: i6$1.DxoSearchComponent, selector: "dxo-search", inputs: ["editorOptions", "enabled", "timeout", "mode", "searchExpr"] }, { kind: "component", type: i6$1.DxoSelectionComponent, selector: "dxo-selection", inputs: ["allowSelectAll", "recursive", "selectByClick", "deferred", "mode", "selectAllMode", "showCheckBoxesMode"] }, { kind: "component", type: i6$1.DxoTextsComponent, selector: "dxo-texts", inputs: ["fix", "leftPosition", "rightPosition", "unfix", "addRow", "cancelAllChanges", "cancelRowChanges", "confirmDeleteMessage", "confirmDeleteTitle", "deleteRow", "editRow", "saveAllChanges", "saveRowChanges", "undeleteRow", "validationCancelChanges", "exportAll", "exportSelectedRows", "exportTo", "clearFilter", "createFilter", "filterEnabledHint", "groupByThisColumn", "groupContinuedMessage", "groupContinuesMessage", "ungroup", "ungroupAll", "cancel", "emptyValue", "ok", "avg", "avgOtherColumn", "count", "max", "maxOtherColumn", "min", "minOtherColumn", "sum", "sumOtherColumn", "allFields", "columnFields", "dataFields", "filterFields", "rowFields", "columnFieldArea", "dataFieldArea", "filterFieldArea", "rowFieldArea", "collapseAll", "dataNotAvailable", "expandAll", "exportToExcel", "grandTotal", "noData", "removeAllSorting", "showFieldChooser", "sortColumnBySummary", "sortRowBySummary", "total", "addRowToNode"] }, { kind: "component", type: i6$1.DxoHeaderFilterComponent, selector: "dxo-header-filter", inputs: ["allowSearch", "allowSelectAll", "dataSource", "groupInterval", "height", "search", "searchMode", "width", "searchTimeout", "texts", "visible", "showRelevantValues"] }, { kind: "component", type: i6$1.DxoFilterRowComponent, selector: "dxo-filter-row", inputs: ["applyFilter", "applyFilterText", "betweenEndText", "betweenStartText", "operationDescriptions", "resetOperationText", "showAllText", "showOperationChooser", "visible"] }, { kind: "component", type: i6$1.DxoMasterDetailComponent, selector: "dxo-master-detail", inputs: ["autoExpandAll", "enabled", "template"] }, { kind: "component", type: i6$1.DxoPagerComponent, selector: "dxo-pager", inputs: ["allowedPageSizes", "displayMode", "infoText", "label", "showInfo", "showNavigationButtons", "showPageSizeSelector", "visible"] }, { kind: "component", type: i6$1.DxoPagingComponent, selector: "dxo-paging", inputs: ["enabled", "pageIndex", "pageSize"], outputs: ["pageIndexChange", "pageSizeChange"] }, { kind: "component", type: i6$1.DxoRemoteOperationsComponent, selector: "dxo-remote-operations", inputs: ["filtering", "grouping", "groupPaging", "paging", "sorting", "summary"] }, { kind: "component", type: i6$1.DxoScrollingComponent, selector: "dxo-scrolling", inputs: ["columnRenderingMode", "mode", "preloadEnabled", "renderAsync", "rowRenderingMode", "scrollByContent", "scrollByThumb", "showScrollbar", "useNative"] }, { kind: "component", type: i6$1.DxoSortingComponent, selector: "dxo-sorting", inputs: ["ascendingText", "clearText", "descendingText", "mode", "showSortIndexes"] }, { kind: "component", type: i5.DxTooltipComponent, selector: "dx-tooltip", inputs: ["animation", "closeOnOutsideClick", "container", "contentTemplate", "copyRootClassesToWrapper", "deferRendering", "disabled", "elementAttr", "height", "hideEvent", "hideOnOutsideClick", "hideOnParentScroll", "hint", "hoverStateEnabled", "maxHeight", "maxWidth", "minHeight", "minWidth", "position", "rtlEnabled", "shading", "shadingColor", "showEvent", "target", "visible", "width", "wrapperAttr"], outputs: ["onContentReady", "onDisposing", "onHidden", "onHiding", "onInitialized", "onOptionChanged", "onShowing", "onShown", "animationChange", "closeOnOutsideClickChange", "containerChange", "contentTemplateChange", "copyRootClassesToWrapperChange", "deferRenderingChange", "disabledChange", "elementAttrChange", "heightChange", "hideEventChange", "hideOnOutsideClickChange", "hideOnParentScrollChange", "hintChange", "hoverStateEnabledChange", "maxHeightChange", "maxWidthChange", "minHeightChange", "minWidthChange", "positionChange", "rtlEnabledChange", "shadingChange", "shadingColorChange", "showEventChange", "targetChange", "visibleChange", "widthChange", "wrapperAttrChange"] }, { kind: "component", type: FileCellTemplateComponent, selector: "rs-file-cell-template", inputs: ["table", "oid"] }, { kind: "component", type: UserInfoTemplateComponent, selector: "rs-user-info-template", inputs: ["table", "uid"] }, { kind: "component", type: UnitInfoTemplateComponent, selector: "rs-unit-info-template", inputs: ["table", "uid"] }] });
2783
+ DataGridComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.7", type: DataGridComponent, selector: "rs-data-grid", inputs: { tenant: "tenant", className: "className", view: "view", filter: "filter", enableMasterDetail: "enableMasterDetail", dataGridName: "dataGridName", selectionMode: "selectionMode", customColumnFn: "customColumnFn" }, outputs: { onDxDataGridCellPrepared: "onDxDataGridCellPrepared", onDxDataGridContentReady: "onDxDataGridContentReady", onDxDataGridSelectionChanged: "onDxDataGridSelectionChanged" }, providers: [DataGridService], queries: [{ propertyName: "masterDetailTemplate", first: true, predicate: MasterDetailTemplateDirective, descendants: true }, { propertyName: "rowButtonsTemplate", first: true, predicate: RowButtonsTemplateDirective, descendants: true }, { propertyName: "instanceLinkTemplate", first: true, predicate: InstanceLinkTemplateDirective, descendants: true }], viewQueries: [{ propertyName: "dxDataGrid", first: true, predicate: DxDataGridComponent, descendants: true, static: true }], ngImport: i0, template: "<dx-data-grid [dataSource]=\"dataSource\"\r\n [columns]=\"columns\"\r\n [syncLookupFilterValues]=\"false\"\r\n [showBorders]=\"true\"\r\n [showRowLines]=\"true\"\r\n [hoverStateEnabled]=\"true\"\r\n [rowAlternationEnabled]=\"true\"\r\n [columnAutoWidth]=\"true\"\r\n [allowColumnResizing]=\"true\"\r\n columnResizingMode=\"widget\"\r\n dateSerializationFormat=\"yyyy/MM/dd HH:mm:ss\"\r\n (onCellPrepared)=\"onCellPrepared($event)\"\r\n (onEditorPreparing)=\"onEditorPreparing($event)\"\r\n (onContentReady)=\"onContentReady($event)\"\r\n (onSelectionChanged)=\"onSelectionChanged($event)\"\r\n (onRowExpanding)=\"$event.component.collapseAll(-1)\">\r\n <dxo-sorting mode=\"multiple\"></dxo-sorting>\r\n <dxo-selection [mode]=\"selectionMode\" selectAllMode=\"page\" showCheckBoxesMode=\"always\"></dxo-selection>\r\n <dxo-header-filter [visible]=\"true\">\r\n <dxo-search [enabled]=\"true\"></dxo-search>\r\n <dxo-texts [ok]=\"'\u786E\u5B9A'\"></dxo-texts>\r\n </dxo-header-filter>\r\n <dxo-filter-row [visible]=\"true\"></dxo-filter-row>\r\n <dxo-remote-operations [filtering]=\"true\"\r\n [sorting]=\"true\"\r\n [paging]=\"true\">\r\n </dxo-remote-operations>\r\n <dxo-master-detail [enabled]=\"enableMasterDetail\" template=\"masterDetailTemplate\"></dxo-master-detail>\r\n <dxo-paging [pageSize]=\"15\"></dxo-paging>\r\n <dxo-pager [visible]=\"true\"\r\n [showInfo]=\"true\"\r\n infoText=\"\u7B2C{0}\u9875\uFF0C\u5171{1}\u9875\uFF08\u5171{2}\u4E2A\u9879\u76EE\uFF09\"\r\n [showPageSizeSelector]=\"true\"\r\n [allowedPageSizes]=\"[15, 30, 50]\"\r\n ></dxo-pager>\r\n <dxo-scrolling showScrollbar=\"always\"></dxo-scrolling>\r\n <div *dxTemplate=\"let cellInfo of 'masterDetailTemplate'\">\r\n <ng-container [ngTemplateOutlet]=\"masterDetailTemplate.templateRef\"\r\n [ngTemplateOutletContext]=\"{$implicit: cellInfo, cellTemplateLoaded$: service.cellTemplateLoaded$}\"></ng-container>\r\n </div>\r\n <div *dxTemplate=\"let cellInfo of 'rowButtonsTemplate'\">\r\n <ng-container [ngTemplateOutlet]=\"rowButtonsTemplate.templateRef\"\r\n [ngTemplateOutletContext]=\"{$implicit: cellInfo, cellTemplateLoaded$: service.cellTemplateLoaded$}\"></ng-container>\r\n </div>\r\n <div *dxTemplate=\"let cellInfo of 'instanceLinkTemplate'\">\r\n <ng-container [ngTemplateOutlet]=\"instanceLinkTemplate.templateRef\"\r\n [ngTemplateOutletContext]=\"{$implicit: cellInfo, cellTemplateLoaded$: service.cellTemplateLoaded$}\"></ng-container>\r\n </div>\r\n <div *dxTemplate=\"let cellInfo of 'rowIndexTemplate'\">\r\n {{cellInfo.rowIndex + 1}}\r\n </div>\r\n <div *dxTemplate=\"let cellInfo of 'multipleValueCellTemplate'\">\r\n <div [innerHTML]=\"convertMultipleValueCellText(cellInfo)\"></div>\r\n </div>\r\n <div *dxTemplate=\"let cellInfo of 'textCellTemplate'\">\r\n <div #textDiv style=\"text-overflow: ellipsis; overflow: hidden; cursor: pointer;\">{{cellInfo.value}}</div>\r\n <dx-tooltip [target]=\"textDiv\"\r\n [position]=\"'top'\"\r\n [showEvent]=\"'click'\">\r\n <div *dxTemplate=\"let data of 'content'\">\r\n <p style=\"max-width: 320px; text-align: left; white-space: normal;\" [innerText]=\"cellInfo.value\"></p>\r\n </div>\r\n </dx-tooltip>\r\n </div>\r\n <div *dxTemplate=\"let cellInfo of 'fileCellTemplate'\">\r\n <ng-container *ngFor=\"let file of cellInfo.value\">\r\n <rs-file-cell-template [table]=\"cellInfo.component\" [oid]=\"file\"></rs-file-cell-template>\r\n </ng-container>\r\n </div>\r\n <div *dxTemplate=\"let cellInfo of 'userCellTemplate'\">\r\n <ng-container *ngFor=\"let user of getOriginalValue(cellInfo, 'userInfo')\">\r\n <rs-user-info-template [table]=\"cellInfo.component\" [uid]=\"user\"></rs-user-info-template>\r\n </ng-container>\r\n </div>\r\n <div *dxTemplate=\"let cellInfo of 'unitCellTemplate'\">\r\n <ng-container *ngFor=\"let unit of getOriginalValue(cellInfo, 'unitInfo')\">\r\n <rs-unit-info-template [table]=\"cellInfo.component\" [uid]=\"unit\"></rs-unit-info-template>\r\n </ng-container>\r\n </div>\r\n</dx-data-grid>\r\n", styles: [":host{display:flex;flex-flow:column nowrap}:host dx-data-grid{flex:auto;height:0}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i3.DxTemplateDirective, selector: "[dxTemplate]", inputs: ["dxTemplateOf"] }, { kind: "component", type: i5$1.DxDataGridComponent, selector: "dx-data-grid", inputs: ["accessKey", "activeStateEnabled", "allowColumnReordering", "allowColumnResizing", "autoNavigateToFocusedRow", "cacheEnabled", "cellHintEnabled", "columnAutoWidth", "columnChooser", "columnFixing", "columnHidingEnabled", "columnMinWidth", "columnResizingMode", "columns", "columnWidth", "customizeColumns", "dataRowTemplate", "dataSource", "dateSerializationFormat", "disabled", "editing", "elementAttr", "errorRowEnabled", "export", "filterBuilder", "filterBuilderPopup", "filterPanel", "filterRow", "filterSyncEnabled", "filterValue", "focusedColumnIndex", "focusedRowEnabled", "focusedRowIndex", "focusedRowKey", "grouping", "groupPanel", "headerFilter", "height", "highlightChanges", "hint", "hoverStateEnabled", "keyboardNavigation", "keyExpr", "loadPanel", "masterDetail", "noDataText", "pager", "paging", "remoteOperations", "renderAsync", "repaintChangesOnly", "rowAlternationEnabled", "rowDragging", "rowTemplate", "rtlEnabled", "scrolling", "searchPanel", "selectedRowKeys", "selection", "selectionFilter", "showBorders", "showColumnHeaders", "showColumnLines", "showRowLines", "sortByGroupSummaryInfo", "sorting", "stateStoring", "summary", "syncLookupFilterValues", "tabIndex", "toolbar", "twoWayBindingEnabled", "visible", "width", "wordWrapEnabled"], outputs: ["onAdaptiveDetailRowPreparing", "onCellClick", "onCellDblClick", "onCellHoverChanged", "onCellPrepared", "onContentReady", "onContextMenuPreparing", "onDataErrorOccurred", "onDisposing", "onEditCanceled", "onEditCanceling", "onEditingStart", "onEditorPrepared", "onEditorPreparing", "onExporting", "onFocusedCellChanged", "onFocusedCellChanging", "onFocusedRowChanged", "onFocusedRowChanging", "onInitialized", "onInitNewRow", "onKeyDown", "onOptionChanged", "onRowClick", "onRowCollapsed", "onRowCollapsing", "onRowDblClick", "onRowExpanded", "onRowExpanding", "onRowInserted", "onRowInserting", "onRowPrepared", "onRowRemoved", "onRowRemoving", "onRowUpdated", "onRowUpdating", "onRowValidating", "onSaved", "onSaving", "onSelectionChanged", "onToolbarPreparing", "accessKeyChange", "activeStateEnabledChange", "allowColumnReorderingChange", "allowColumnResizingChange", "autoNavigateToFocusedRowChange", "cacheEnabledChange", "cellHintEnabledChange", "columnAutoWidthChange", "columnChooserChange", "columnFixingChange", "columnHidingEnabledChange", "columnMinWidthChange", "columnResizingModeChange", "columnsChange", "columnWidthChange", "customizeColumnsChange", "dataRowTemplateChange", "dataSourceChange", "dateSerializationFormatChange", "disabledChange", "editingChange", "elementAttrChange", "errorRowEnabledChange", "exportChange", "filterBuilderChange", "filterBuilderPopupChange", "filterPanelChange", "filterRowChange", "filterSyncEnabledChange", "filterValueChange", "focusedColumnIndexChange", "focusedRowEnabledChange", "focusedRowIndexChange", "focusedRowKeyChange", "groupingChange", "groupPanelChange", "headerFilterChange", "heightChange", "highlightChangesChange", "hintChange", "hoverStateEnabledChange", "keyboardNavigationChange", "keyExprChange", "loadPanelChange", "masterDetailChange", "noDataTextChange", "pagerChange", "pagingChange", "remoteOperationsChange", "renderAsyncChange", "repaintChangesOnlyChange", "rowAlternationEnabledChange", "rowDraggingChange", "rowTemplateChange", "rtlEnabledChange", "scrollingChange", "searchPanelChange", "selectedRowKeysChange", "selectionChange", "selectionFilterChange", "showBordersChange", "showColumnHeadersChange", "showColumnLinesChange", "showRowLinesChange", "sortByGroupSummaryInfoChange", "sortingChange", "stateStoringChange", "summaryChange", "syncLookupFilterValuesChange", "tabIndexChange", "toolbarChange", "twoWayBindingEnabledChange", "visibleChange", "widthChange", "wordWrapEnabledChange"] }, { kind: "component", type: i6$1.DxoSearchComponent, selector: "dxo-search", inputs: ["editorOptions", "enabled", "timeout", "mode", "searchExpr"] }, { kind: "component", type: i6$1.DxoSelectionComponent, selector: "dxo-selection", inputs: ["allowSelectAll", "recursive", "selectByClick", "deferred", "mode", "selectAllMode", "showCheckBoxesMode"] }, { kind: "component", type: i6$1.DxoTextsComponent, selector: "dxo-texts", inputs: ["fix", "leftPosition", "rightPosition", "unfix", "addRow", "cancelAllChanges", "cancelRowChanges", "confirmDeleteMessage", "confirmDeleteTitle", "deleteRow", "editRow", "saveAllChanges", "saveRowChanges", "undeleteRow", "validationCancelChanges", "exportAll", "exportSelectedRows", "exportTo", "clearFilter", "createFilter", "filterEnabledHint", "groupByThisColumn", "groupContinuedMessage", "groupContinuesMessage", "ungroup", "ungroupAll", "cancel", "emptyValue", "ok", "avg", "avgOtherColumn", "count", "max", "maxOtherColumn", "min", "minOtherColumn", "sum", "sumOtherColumn", "allFields", "columnFields", "dataFields", "filterFields", "rowFields", "columnFieldArea", "dataFieldArea", "filterFieldArea", "rowFieldArea", "collapseAll", "dataNotAvailable", "expandAll", "exportToExcel", "grandTotal", "noData", "removeAllSorting", "showFieldChooser", "sortColumnBySummary", "sortRowBySummary", "total", "addRowToNode"] }, { kind: "component", type: i6$1.DxoHeaderFilterComponent, selector: "dxo-header-filter", inputs: ["allowSearch", "allowSelectAll", "dataSource", "groupInterval", "height", "search", "searchMode", "width", "searchTimeout", "texts", "visible", "showRelevantValues"] }, { kind: "component", type: i6$1.DxoFilterRowComponent, selector: "dxo-filter-row", inputs: ["applyFilter", "applyFilterText", "betweenEndText", "betweenStartText", "operationDescriptions", "resetOperationText", "showAllText", "showOperationChooser", "visible"] }, { kind: "component", type: i6$1.DxoMasterDetailComponent, selector: "dxo-master-detail", inputs: ["autoExpandAll", "enabled", "template"] }, { kind: "component", type: i6$1.DxoPagerComponent, selector: "dxo-pager", inputs: ["allowedPageSizes", "displayMode", "infoText", "label", "showInfo", "showNavigationButtons", "showPageSizeSelector", "visible"] }, { kind: "component", type: i6$1.DxoPagingComponent, selector: "dxo-paging", inputs: ["enabled", "pageIndex", "pageSize"], outputs: ["pageIndexChange", "pageSizeChange"] }, { kind: "component", type: i6$1.DxoRemoteOperationsComponent, selector: "dxo-remote-operations", inputs: ["filtering", "grouping", "groupPaging", "paging", "sorting", "summary"] }, { kind: "component", type: i6$1.DxoScrollingComponent, selector: "dxo-scrolling", inputs: ["columnRenderingMode", "mode", "preloadEnabled", "renderAsync", "rowRenderingMode", "scrollByContent", "scrollByThumb", "showScrollbar", "useNative"] }, { kind: "component", type: i6$1.DxoSortingComponent, selector: "dxo-sorting", inputs: ["ascendingText", "clearText", "descendingText", "mode", "showSortIndexes"] }, { kind: "component", type: i5.DxTooltipComponent, selector: "dx-tooltip", inputs: ["animation", "closeOnOutsideClick", "container", "contentTemplate", "copyRootClassesToWrapper", "deferRendering", "disabled", "elementAttr", "height", "hideEvent", "hideOnOutsideClick", "hideOnParentScroll", "hint", "hoverStateEnabled", "maxHeight", "maxWidth", "minHeight", "minWidth", "position", "rtlEnabled", "shading", "shadingColor", "showEvent", "target", "visible", "width", "wrapperAttr"], outputs: ["onContentReady", "onDisposing", "onHidden", "onHiding", "onInitialized", "onOptionChanged", "onShowing", "onShown", "animationChange", "closeOnOutsideClickChange", "containerChange", "contentTemplateChange", "copyRootClassesToWrapperChange", "deferRenderingChange", "disabledChange", "elementAttrChange", "heightChange", "hideEventChange", "hideOnOutsideClickChange", "hideOnParentScrollChange", "hintChange", "hoverStateEnabledChange", "maxHeightChange", "maxWidthChange", "minHeightChange", "minWidthChange", "positionChange", "rtlEnabledChange", "shadingChange", "shadingColorChange", "showEventChange", "targetChange", "visibleChange", "widthChange", "wrapperAttrChange"] }, { kind: "component", type: FileCellTemplateComponent, selector: "rs-file-cell-template", inputs: ["table", "oid"] }, { kind: "component", type: UserInfoTemplateComponent, selector: "rs-user-info-template", inputs: ["table", "uid"] }, { kind: "component", type: UnitInfoTemplateComponent, selector: "rs-unit-info-template", inputs: ["table", "uid"] }] });
2681
2784
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: DataGridComponent, decorators: [{
2682
2785
  type: Component,
2683
2786
  args: [{ selector: 'rs-data-grid', providers: [DataGridService], template: "<dx-data-grid [dataSource]=\"dataSource\"\r\n [columns]=\"columns\"\r\n [syncLookupFilterValues]=\"false\"\r\n [showBorders]=\"true\"\r\n [showRowLines]=\"true\"\r\n [hoverStateEnabled]=\"true\"\r\n [rowAlternationEnabled]=\"true\"\r\n [columnAutoWidth]=\"true\"\r\n [allowColumnResizing]=\"true\"\r\n columnResizingMode=\"widget\"\r\n dateSerializationFormat=\"yyyy/MM/dd HH:mm:ss\"\r\n (onCellPrepared)=\"onCellPrepared($event)\"\r\n (onEditorPreparing)=\"onEditorPreparing($event)\"\r\n (onContentReady)=\"onContentReady($event)\"\r\n (onSelectionChanged)=\"onSelectionChanged($event)\"\r\n (onRowExpanding)=\"$event.component.collapseAll(-1)\">\r\n <dxo-sorting mode=\"multiple\"></dxo-sorting>\r\n <dxo-selection [mode]=\"selectionMode\" selectAllMode=\"page\" showCheckBoxesMode=\"always\"></dxo-selection>\r\n <dxo-header-filter [visible]=\"true\">\r\n <dxo-search [enabled]=\"true\"></dxo-search>\r\n <dxo-texts [ok]=\"'\u786E\u5B9A'\"></dxo-texts>\r\n </dxo-header-filter>\r\n <dxo-filter-row [visible]=\"true\"></dxo-filter-row>\r\n <dxo-remote-operations [filtering]=\"true\"\r\n [sorting]=\"true\"\r\n [paging]=\"true\">\r\n </dxo-remote-operations>\r\n <dxo-master-detail [enabled]=\"enableMasterDetail\" template=\"masterDetailTemplate\"></dxo-master-detail>\r\n <dxo-paging [pageSize]=\"15\"></dxo-paging>\r\n <dxo-pager [visible]=\"true\"\r\n [showInfo]=\"true\"\r\n infoText=\"\u7B2C{0}\u9875\uFF0C\u5171{1}\u9875\uFF08\u5171{2}\u4E2A\u9879\u76EE\uFF09\"\r\n [showPageSizeSelector]=\"true\"\r\n [allowedPageSizes]=\"[15, 30, 50]\"\r\n ></dxo-pager>\r\n <dxo-scrolling showScrollbar=\"always\"></dxo-scrolling>\r\n <div *dxTemplate=\"let cellInfo of 'masterDetailTemplate'\">\r\n <ng-container [ngTemplateOutlet]=\"masterDetailTemplate.templateRef\"\r\n [ngTemplateOutletContext]=\"{$implicit: cellInfo, cellTemplateLoaded$: service.cellTemplateLoaded$}\"></ng-container>\r\n </div>\r\n <div *dxTemplate=\"let cellInfo of 'rowButtonsTemplate'\">\r\n <ng-container [ngTemplateOutlet]=\"rowButtonsTemplate.templateRef\"\r\n [ngTemplateOutletContext]=\"{$implicit: cellInfo, cellTemplateLoaded$: service.cellTemplateLoaded$}\"></ng-container>\r\n </div>\r\n <div *dxTemplate=\"let cellInfo of 'instanceLinkTemplate'\">\r\n <ng-container [ngTemplateOutlet]=\"instanceLinkTemplate.templateRef\"\r\n [ngTemplateOutletContext]=\"{$implicit: cellInfo, cellTemplateLoaded$: service.cellTemplateLoaded$}\"></ng-container>\r\n </div>\r\n <div *dxTemplate=\"let cellInfo of 'rowIndexTemplate'\">\r\n {{cellInfo.rowIndex + 1}}\r\n </div>\r\n <div *dxTemplate=\"let cellInfo of 'multipleValueCellTemplate'\">\r\n <div [innerHTML]=\"convertMultipleValueCellText(cellInfo)\"></div>\r\n </div>\r\n <div *dxTemplate=\"let cellInfo of 'textCellTemplate'\">\r\n <div #textDiv style=\"text-overflow: ellipsis; overflow: hidden; cursor: pointer;\">{{cellInfo.value}}</div>\r\n <dx-tooltip [target]=\"textDiv\"\r\n [position]=\"'top'\"\r\n [showEvent]=\"'click'\">\r\n <div *dxTemplate=\"let data of 'content'\">\r\n <p style=\"max-width: 320px; text-align: left; white-space: normal;\" [innerText]=\"cellInfo.value\"></p>\r\n </div>\r\n </dx-tooltip>\r\n </div>\r\n <div *dxTemplate=\"let cellInfo of 'fileCellTemplate'\">\r\n <ng-container *ngFor=\"let file of cellInfo.value\">\r\n <rs-file-cell-template [table]=\"cellInfo.component\" [oid]=\"file\"></rs-file-cell-template>\r\n </ng-container>\r\n </div>\r\n <div *dxTemplate=\"let cellInfo of 'userCellTemplate'\">\r\n <ng-container *ngFor=\"let user of getOriginalValue(cellInfo, 'userInfo')\">\r\n <rs-user-info-template [table]=\"cellInfo.component\" [uid]=\"user\"></rs-user-info-template>\r\n </ng-container>\r\n </div>\r\n <div *dxTemplate=\"let cellInfo of 'unitCellTemplate'\">\r\n <ng-container *ngFor=\"let unit of getOriginalValue(cellInfo, 'unitInfo')\">\r\n <rs-unit-info-template [table]=\"cellInfo.component\" [uid]=\"unit\"></rs-unit-info-template>\r\n </ng-container>\r\n </div>\r\n</dx-data-grid>\r\n", styles: [":host{display:flex;flex-flow:column nowrap}:host dx-data-grid{flex:auto;height:0}\n"] }]
@@ -2691,6 +2794,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImpor
2691
2794
  type: Input
2692
2795
  }], enableMasterDetail: [{
2693
2796
  type: Input
2797
+ }], dataGridName: [{
2798
+ type: Input
2694
2799
  }], selectionMode: [{
2695
2800
  type: Input
2696
2801
  }], customColumnFn: [{
@@ -2827,107 +2932,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImpor
2827
2932
  type: Injectable
2828
2933
  }], ctorParameters: function () { return [{ type: i1$1.HttpClient }]; } });
2829
2934
 
2830
- function notify_error(message) {
2831
- notify({
2832
- displayTime: 12000,
2833
- message,
2834
- type: 'error',
2835
- width: '300px'
2836
- }, {
2837
- direction: 'up-push',
2838
- position: 'bottom right'
2839
- });
2840
- }
2841
- function notify_warning(message) {
2842
- notify({
2843
- displayTime: 8000,
2844
- message,
2845
- type: 'warning',
2846
- width: '300px'
2847
- }, {
2848
- direction: 'up-push',
2849
- position: 'bottom right'
2850
- });
2851
- }
2852
- function notify_success(message) {
2853
- notify({
2854
- displayTime: 4000,
2855
- message,
2856
- type: 'success',
2857
- width: '300px'
2858
- }, {
2859
- direction: 'down-push',
2860
- position: 'top right'
2861
- });
2862
- }
2863
- async function validate(validator) {
2864
- return new Promise(resolve => {
2865
- const validateResult = validator.instance.validate();
2866
- if (!validateResult.isValid) {
2867
- resolve(false);
2868
- }
2869
- if (validateResult.status === 'pending') {
2870
- validateResult.complete?.then((result) => {
2871
- if (result.isValid) {
2872
- resolve(true);
2873
- }
2874
- else {
2875
- resolve(false);
2876
- }
2877
- });
2878
- }
2879
- else {
2880
- resolve(true);
2881
- }
2882
- });
2883
- }
2884
- async function validate_group(validationGroup) {
2885
- const top = validationGroup.element.nativeElement;
2886
- let sourceNode;
2887
- const targetClassName = 'dx-field';
2888
- const findTargetNode = (node) => {
2889
- sourceNode = node;
2890
- while (true) {
2891
- if (node.classList.contains(targetClassName)) {
2892
- return node;
2893
- }
2894
- else {
2895
- node = node.parentElement;
2896
- if (node === top) {
2897
- return sourceNode;
2898
- }
2899
- }
2900
- }
2901
- };
2902
- return new Promise(resolve => {
2903
- const validateResult = validationGroup.instance.validate();
2904
- if (!validateResult.isValid) {
2905
- const brokenElement = (validateResult.brokenRules?.[0]).validator.element();
2906
- findTargetNode(brokenElement).scrollIntoView();
2907
- resolve(false);
2908
- }
2909
- if (validateResult.status === 'pending') {
2910
- validateResult.complete?.then((result) => {
2911
- if (result.isValid) {
2912
- resolve(true);
2913
- }
2914
- else {
2915
- const brokenElement = (result.brokenRules?.[0]).validator.element();
2916
- findTargetNode(brokenElement).scrollIntoView();
2917
- resolve(false);
2918
- }
2919
- });
2920
- }
2921
- else {
2922
- resolve(true);
2923
- }
2924
- });
2925
- }
2926
-
2927
2935
  class FormComponent {
2928
- constructor(viewContainerRef, service) {
2936
+ constructor(viewContainerRef, service, elementRef) {
2929
2937
  this.viewContainerRef = viewContainerRef;
2930
2938
  this.service = service;
2939
+ this.elementRef = elementRef;
2931
2940
  this.tenant = 'T';
2932
2941
  this.onlyFrontEnd = false; // 仅前端,不通过oid获取实例model
2933
2942
  this.readonly = false;
@@ -2998,6 +3007,12 @@ class FormComponent {
2998
3007
  }
2999
3008
  });
3000
3009
  }
3010
+ scrollToAnchorPoint(anchorPointId) {
3011
+ const points = this.elementRef.nativeElement.getElementsByClassName('__anchor_point_' + anchorPointId);
3012
+ if (points.length > 0) {
3013
+ points[0].scrollIntoView();
3014
+ }
3015
+ }
3001
3016
  validate() {
3002
3017
  return validate_group(this.validator);
3003
3018
  }
@@ -3005,12 +3020,12 @@ class FormComponent {
3005
3020
  this.formSubmitter.instance.element().click();
3006
3021
  }
3007
3022
  }
3008
- FormComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: FormComponent, deps: [{ token: i0.ViewContainerRef }, { token: FormService }], target: i0.ɵɵFactoryTarget.Component });
3023
+ FormComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: FormComponent, deps: [{ token: i0.ViewContainerRef }, { token: FormService }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
3009
3024
  FormComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.7", type: FormComponent, selector: "rs-form", inputs: { tenant: "tenant", className: "className", oid: "oid", copyOid: "copyOid", template: "template", extraAttrMap: "extraAttrMap", params: "params", tabViewContainerRef: "tabViewContainerRef", onlyFrontEnd: "onlyFrontEnd", model: "model", readonly: "readonly" }, outputs: { submitCallback: "submitCallback" }, providers: [FormService], viewQueries: [{ propertyName: "validator", first: true, predicate: DxValidationGroupComponent, descendants: true }, { propertyName: "formSubmitter", first: true, predicate: ["formSubmitter"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<dx-load-panel [container]=\"viewContainerRef.element.nativeElement\" [showPane]=\"false\"\r\n [visible]=\"loading\">\r\n <dxo-position [of]=\"viewContainerRef.element.nativeElement\"></dxo-position>\r\n</dx-load-panel>\r\n<dx-validation-group *ngIf=\"!loading\">\r\n <rs-box-container [config]=\"config\"\r\n [model]=\"model\"\r\n [params]=\"params\"\r\n [tabViewContainerRef]=\"tabViewContainerRef\"\r\n [readonly]=\"readonly\"></rs-box-container>\r\n <dx-button #formSubmitter [visible]=\"false\" (onClick)=\"submitForm()\"></dx-button>\r\n</dx-validation-group>\r\n", styles: [":host{padding:12px 24px 20px}:host dx-validation-group{display:flex;flex-flow:row nowrap}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: BoxContainerComponent, selector: "rs-box-container", inputs: ["config", "model", "params", "readonly", "tabViewContainerRef"] }, { kind: "component", type: i6$1.DxoPositionComponent, selector: "dxo-position", inputs: ["at", "boundary", "boundaryOffset", "collision", "my", "of", "offset"] }, { kind: "component", type: i4.DxButtonComponent, selector: "dx-button", inputs: ["accessKey", "activeStateEnabled", "disabled", "elementAttr", "focusStateEnabled", "height", "hint", "hoverStateEnabled", "icon", "rtlEnabled", "stylingMode", "tabIndex", "template", "text", "type", "useSubmitBehavior", "validationGroup", "visible", "width"], outputs: ["onClick", "onContentReady", "onDisposing", "onInitialized", "onOptionChanged", "accessKeyChange", "activeStateEnabledChange", "disabledChange", "elementAttrChange", "focusStateEnabledChange", "heightChange", "hintChange", "hoverStateEnabledChange", "iconChange", "rtlEnabledChange", "stylingModeChange", "tabIndexChange", "templateChange", "textChange", "typeChange", "useSubmitBehaviorChange", "validationGroupChange", "visibleChange", "widthChange"] }, { kind: "component", type: i6.DxLoadPanelComponent, selector: "dx-load-panel", inputs: ["animation", "closeOnOutsideClick", "container", "copyRootClassesToWrapper", "deferRendering", "delay", "elementAttr", "focusStateEnabled", "height", "hideOnOutsideClick", "hideOnParentScroll", "hint", "hoverStateEnabled", "indicatorSrc", "maxHeight", "maxWidth", "message", "minHeight", "minWidth", "position", "rtlEnabled", "shading", "shadingColor", "showIndicator", "showPane", "visible", "width", "wrapperAttr"], outputs: ["onContentReady", "onDisposing", "onHidden", "onHiding", "onInitialized", "onOptionChanged", "onShowing", "onShown", "animationChange", "closeOnOutsideClickChange", "containerChange", "copyRootClassesToWrapperChange", "deferRenderingChange", "delayChange", "elementAttrChange", "focusStateEnabledChange", "heightChange", "hideOnOutsideClickChange", "hideOnParentScrollChange", "hintChange", "hoverStateEnabledChange", "indicatorSrcChange", "maxHeightChange", "maxWidthChange", "messageChange", "minHeightChange", "minWidthChange", "positionChange", "rtlEnabledChange", "shadingChange", "shadingColorChange", "showIndicatorChange", "showPaneChange", "visibleChange", "widthChange", "wrapperAttrChange"] }, { kind: "component", type: i7.DxValidationGroupComponent, selector: "dx-validation-group", inputs: ["elementAttr", "height", "width"], outputs: ["onDisposing", "onInitialized", "onOptionChanged", "elementAttrChange", "heightChange", "widthChange"] }] });
3010
3025
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: FormComponent, decorators: [{
3011
3026
  type: Component,
3012
3027
  args: [{ selector: 'rs-form', providers: [FormService], template: "<dx-load-panel [container]=\"viewContainerRef.element.nativeElement\" [showPane]=\"false\"\r\n [visible]=\"loading\">\r\n <dxo-position [of]=\"viewContainerRef.element.nativeElement\"></dxo-position>\r\n</dx-load-panel>\r\n<dx-validation-group *ngIf=\"!loading\">\r\n <rs-box-container [config]=\"config\"\r\n [model]=\"model\"\r\n [params]=\"params\"\r\n [tabViewContainerRef]=\"tabViewContainerRef\"\r\n [readonly]=\"readonly\"></rs-box-container>\r\n <dx-button #formSubmitter [visible]=\"false\" (onClick)=\"submitForm()\"></dx-button>\r\n</dx-validation-group>\r\n", styles: [":host{padding:12px 24px 20px}:host dx-validation-group{display:flex;flex-flow:row nowrap}\n"] }]
3013
- }], ctorParameters: function () { return [{ type: i0.ViewContainerRef }, { type: FormService }]; }, propDecorators: { tenant: [{
3028
+ }], ctorParameters: function () { return [{ type: i0.ViewContainerRef }, { type: FormService }, { type: i0.ElementRef }]; }, propDecorators: { tenant: [{
3014
3029
  type: Input
3015
3030
  }], className: [{
3016
3031
  type: Input
@@ -3703,5 +3718,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImpor
3703
3718
  * Generated bundle index. Do not edit.
3704
3719
  */
3705
3720
 
3706
- export { BoxContainerComponent, BoxContainerModule, CamundaBpmnEditorComponent, CamundaBpmnEditorModule, ChangeFilter, CodeEditorComponent, CodeEditorModule, DataDetailComponent, DataDetailModule, DataGridComponent, DataGridFactory, DataGridModule, DataGridService, DrawerComponent, DrawerModule, DrawerService, DynamicParamsComponent, DynamicParamsModule, FormComponent, FormModule, FormService, IconSelectorComponent, IconSelectorModule, InstanceLinkTemplateDirective, ItemConfigComponent, ItemStyleComponent, MasterDetailTemplateDirective, ModalComponent, ModalModule, ModalService, PluginManager, RowButtonsTemplateDirective, TooltipContentTemplateDirective, WebsocketModule, WebsocketService, notify_error, notify_success, notify_warning, validate, validate_group };
3721
+ export { BoxContainerComponent, BoxContainerModule, CamundaBpmnEditorComponent, CamundaBpmnEditorModule, ChangeFilter, CodeEditorComponent, CodeEditorModule, DataDetailComponent, DataDetailModule, DataGridComponent, DataGridFactory, DataGridModule, DataGridService, DrawerComponent, DrawerModule, DrawerService, DynamicParamsComponent, DynamicParamsModule, FormComponent, FormModule, FormService, IconSelectorComponent, IconSelectorModule, InstanceLinkTemplateDirective, ItemConfigComponent, ItemStyleComponent, MasterDetailTemplateDirective, ModalComponent, ModalModule, ModalService, PluginManager, RowButtonsTemplateDirective, TooltipContentTemplateDirective, WebsocketModule, WebsocketService, file_type_icon, format_date, format_datetime, format_file_size, notify_error, notify_success, notify_warning, validate, validate_group };
3707
3722
  //# sourceMappingURL=ngx-rs-ant.mjs.map