ngx-rs-ant 1.0.5 → 1.1.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/box-container/PluginManager.d.ts +2 -0
- package/box-container/box-container.module.d.ts +5 -4
- package/box-container/box-item/box-item.component.d.ts +3 -0
- package/box-container/box-item/item-config/config-blank/config-blank.component.d.ts +5 -0
- package/box-container/box-item/item-config/item-config.component.d.ts +1 -1
- package/box-container/box-item/item-style/item-style.component.d.ts +2 -4
- package/data-grid/data-grid.component.d.ts +2 -1
- package/data-grid/unit-info-template/unit-info-template.component.d.ts +4 -4
- package/data-grid/user-info-template/user-info-template.component.d.ts +4 -4
- package/esm2020/box-container/PluginManager.mjs +45 -1
- package/esm2020/box-container/box-container.module.mjs +6 -3
- package/esm2020/box-container/box-item/box-item.component.mjs +5 -2
- package/esm2020/box-container/box-item/item-config/config-blank/config-blank.component.mjs +11 -0
- package/esm2020/box-container/box-item/item-config/item-config.component.mjs +9 -31
- package/esm2020/box-container/box-item/item-style/item-style.component.mjs +7 -22
- package/esm2020/box-container/box-item/item-style/style/style.component.mjs +4 -3
- package/esm2020/data-grid/data-grid.component.mjs +25 -9
- package/esm2020/data-grid/file-cell-template/file-cell-template.component.mjs +3 -3
- package/esm2020/data-grid/unit-info-template/unit-info-template.component.mjs +21 -41
- package/esm2020/data-grid/user-info-template/user-info-template.component.mjs +21 -41
- package/esm2020/form/form.component.mjs +18 -20
- package/esm2020/public-api.mjs +4 -2
- package/esm2020/util/utils.mjs +98 -0
- package/esm2020/websocket/websocket.module.mjs +18 -0
- package/esm2020/websocket/websocket.service.mjs +153 -0
- package/fesm2015/ngx-rs-ant.mjs +468 -238
- package/fesm2015/ngx-rs-ant.mjs.map +1 -1
- package/fesm2020/ngx-rs-ant.mjs +465 -240
- package/fesm2020/ngx-rs-ant.mjs.map +1 -1
- package/form/form.component.d.ts +2 -2
- package/package.json +2 -3
- package/public-api.d.ts +3 -1
- package/util/utils.d.ts +6 -0
- package/websocket/websocket.module.d.ts +7 -0
- package/websocket/websocket.service.d.ts +56 -0
- package/esm2020/notify/notify.mjs +0 -35
- package/notify/notify.d.ts +0 -3
package/fesm2020/ngx-rs-ant.mjs
CHANGED
|
@@ -3,26 +3,26 @@ import { Component, Input, HostBinding, EventEmitter, Output, HostListener, View
|
|
|
3
3
|
import { PluginFactory } from 'coast-plugin-register';
|
|
4
4
|
import * as i1 from '@angular/common';
|
|
5
5
|
import { CommonModule } from '@angular/common';
|
|
6
|
-
import { Subject, map, of, lastValueFrom } from 'rxjs';
|
|
6
|
+
import { Subject, map, of, lastValueFrom, 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';
|
|
9
|
-
import * as i3$
|
|
9
|
+
import * as i3$2 from '@angular/forms';
|
|
10
10
|
import { FormsModule, ReactiveFormsModule } from '@angular/forms';
|
|
11
11
|
import { DevExtremeModule, DxDataGridComponent, DxButtonModule, DxValidationGroupComponent } from 'devextreme-angular';
|
|
12
12
|
import { HelperUtils, DevUIModule } from 'ng-devui';
|
|
13
13
|
import * as i1$1 from '@angular/common/http';
|
|
14
14
|
import CustomStore from 'devextreme/data/custom_store';
|
|
15
|
-
import * as
|
|
16
|
-
import * as i4$1 from 'devextreme-angular/ui/
|
|
17
|
-
import * as i5$1 from 'devextreme-angular/ui/
|
|
18
|
-
import * as
|
|
15
|
+
import * as i3 from 'devextreme-angular/core';
|
|
16
|
+
import * as i4$1 from 'devextreme-angular/ui/data-grid';
|
|
17
|
+
import * as i5$1 from 'devextreme-angular/ui/nested';
|
|
18
|
+
import * as i5 from 'devextreme-angular/ui/tooltip';
|
|
19
19
|
import * as i2$2 from '@angular/platform-browser';
|
|
20
|
-
import * as
|
|
21
|
-
import * as i3 from 'devextreme-angular/ui/text-box';
|
|
22
|
-
import
|
|
20
|
+
import * as i4 from 'devextreme-angular/ui/button';
|
|
21
|
+
import * as i3$1 from 'devextreme-angular/ui/text-box';
|
|
22
|
+
import notify from 'devextreme/ui/notify';
|
|
23
|
+
import * as i6 from 'devextreme-angular/ui/load-panel';
|
|
23
24
|
import * as i7 from 'devextreme-angular/ui/validation-group';
|
|
24
25
|
import * as i4$2 from 'devextreme-angular/ui/popover';
|
|
25
|
-
import notify from 'devextreme/ui/notify';
|
|
26
26
|
|
|
27
27
|
class DividerLineComponent {
|
|
28
28
|
get _style() {
|
|
@@ -186,6 +186,68 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImpor
|
|
|
186
186
|
args: [{ selector: 'rs-plugin-not-found', template: "<div>\n <span>\u7EC4\u4EF6\u52A0\u8F7D\u5931\u8D25</span>\n</div>\n", styles: [":host{flex:1;margin:16px;border:1px solid var(--devui-dividing-line, #f2f2f3);display:flex;flex-flow:row nowrap;justify-content:center;pointer-events:all}:host div{flex:1;padding:16px;display:flex;flex-flow:row nowrap;justify-content:center;align-items:center}:host div span{color:var(--devui-danger, #f66f6a);text-align:center;-webkit-user-select:none;user-select:none}:host div.active{background-color:var(--devui-waiting, #beccfa)}:host.plugin-hover>div{pointer-events:none}\n"] }]
|
|
187
187
|
}] });
|
|
188
188
|
|
|
189
|
+
class ConfigBlankComponent {
|
|
190
|
+
}
|
|
191
|
+
ConfigBlankComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: ConfigBlankComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
192
|
+
ConfigBlankComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.7", type: ConfigBlankComponent, selector: "rs-config-blank", ngImport: i0, template: "<div>\n <span>\u65E0\u914D\u7F6E\u9879</span>\n</div>\n", styles: [":host{height:80px;margin:8px;display:flex;flex-flow:row nowrap;justify-content:center}:host div{flex:1;display:flex;flex-flow:row nowrap;justify-content:center;align-items:center}:host div span{text-align:center;-webkit-user-select:none;user-select:none}\n"] });
|
|
193
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: ConfigBlankComponent, decorators: [{
|
|
194
|
+
type: Component,
|
|
195
|
+
args: [{ selector: 'rs-config-blank', template: "<div>\n <span>\u65E0\u914D\u7F6E\u9879</span>\n</div>\n", styles: [":host{height:80px;margin:8px;display:flex;flex-flow:row nowrap;justify-content:center}:host div{flex:1;display:flex;flex-flow:row nowrap;justify-content:center;align-items:center}:host div span{text-align:center;-webkit-user-select:none;user-select:none}\n"] }]
|
|
196
|
+
}] });
|
|
197
|
+
|
|
198
|
+
class StyleComponent {
|
|
199
|
+
constructor() {
|
|
200
|
+
this.width = 0;
|
|
201
|
+
this.height = 0;
|
|
202
|
+
}
|
|
203
|
+
ngOnInit() {
|
|
204
|
+
this.style.width = this.style.width ? this.style.width : 'auto';
|
|
205
|
+
this.style.height = this.style.height ? this.style.height : 'auto';
|
|
206
|
+
if (this.style.width !== 'auto') {
|
|
207
|
+
this.width = this.style.width.substring(0, this.style.width.length - 2);
|
|
208
|
+
}
|
|
209
|
+
if (this.style.height !== 'auto') {
|
|
210
|
+
this.height = this.style.height.substring(0, this.style.height.length - 2);
|
|
211
|
+
}
|
|
212
|
+
}
|
|
213
|
+
select(name, value) {
|
|
214
|
+
const that = this;
|
|
215
|
+
if (value === 'auto') {
|
|
216
|
+
this.style[name] = 'auto';
|
|
217
|
+
that[name] = 0;
|
|
218
|
+
}
|
|
219
|
+
else {
|
|
220
|
+
if (!that[name]) {
|
|
221
|
+
that[name] = value;
|
|
222
|
+
}
|
|
223
|
+
this.style[name] = that[name] + 'px';
|
|
224
|
+
}
|
|
225
|
+
}
|
|
226
|
+
typing(name, value) {
|
|
227
|
+
if (value) {
|
|
228
|
+
this.style[name] = value + 'px';
|
|
229
|
+
}
|
|
230
|
+
else {
|
|
231
|
+
this.style[name] = 'auto';
|
|
232
|
+
}
|
|
233
|
+
}
|
|
234
|
+
}
|
|
235
|
+
StyleComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: StyleComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
236
|
+
StyleComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.7", type: StyleComponent, selector: "rs-style", ngImport: i0, template: "<div class=\"config-item\">\n <div class=\"item-title\">\u5BBD\u5EA6\u7C7B\u578B</div>\n <div class=\"item-setting\">\n <div class=\"card-style-radio\">\n <div class=\"radio-value\" [ngClass]=\"!style.width || style.width === 'auto' ? 'active' : ''\"\n (click)=\"select('width','auto')\">\n <span>\u81EA\u9002\u5E94</span>\n </div>\n <div class=\"radio-value\" [ngClass]=\"style.width && style.width !== 'auto' ? 'active' : ''\"\n (click)=\"select('width',240)\">\n <span>\u56FA\u5B9A\u503C</span>\n </div>\n </div>\n </div>\n</div>\n<div class=\"config-item\">\n <div class=\"item-title\">\u56FA\u5B9A\u5BBD\u5EA6</div>\n <div class=\"item-setting\">\n <dx-number-box [min]=\"0\"\n [showSpinButtons]=\"true\"\n [showClearButton]=\"true\"\n [(value)]=\"width\"\n (onValueChanged)=\"typing('width', $event.value)\"\n [readOnly]=\"style.width === 'auto'\">\n </dx-number-box>\n </div>\n</div>\n<div class=\"config-item\">\n <div class=\"item-title\">\u9AD8\u5EA6\u7C7B\u578B</div>\n <div class=\"item-setting\">\n <div class=\"card-style-radio\">\n <div class=\"radio-value\" [ngClass]=\"!style.height || style.height === 'auto' ? 'active' : ''\"\n (click)=\"select('height','auto')\">\n <span>\u81EA\u9002\u5E94</span>\n </div>\n <div class=\"radio-value\" [ngClass]=\"style.height && style.height !== 'auto' ? 'active' : ''\"\n (click)=\"select('height',800)\">\n <span>\u56FA\u5B9A\u503C</span>\n </div>\n </div>\n </div>\n</div>\n<div class=\"config-item\">\n <div class=\"item-title\">\u56FA\u5B9A\u9AD8\u5EA6</div>\n <div class=\"item-setting\">\n <dx-number-box [min]=\"0\"\n [showSpinButtons]=\"true\"\n [showClearButton]=\"true\"\n [(value)]=\"height\"\n (onValueChanged)=\"typing('height', $event.value)\"\n [readOnly]=\"style.height === 'auto'\">\n </dx-number-box>\n </div>\n</div>\n", styles: [":host .config-item{display:flex;flex-flow:row nowrap;align-items:center;margin-bottom:8px}:host .config-item .item-title{flex:0 0 80px}:host .config-item .item-setting{flex:1;display:flex;flex-flow:row nowrap}:host .config-item .item-setting .card-style-radio{flex:1;display:flex;flex-flow:row nowrap;justify-content:stretch}:host .config-item .item-setting .card-style-radio .radio-value{flex:1;border:1px solid var(--devui-dividing-line, #f2f2f3);text-align:center;padding:4px;margin-left:-1px;cursor:pointer}:host .config-item .item-setting .card-style-radio .radio-value span{-webkit-user-select:none;user-select:none}:host .config-item .item-setting .card-style-radio .radio-value.active{color:var(--devui-brand, #5e7ce0);border:1px solid var(--devui-brand, #5e7ce0);z-index:1}:host .config-item .item-setting dx-number-box{flex:1}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: i2.DxNumberBoxComponent, selector: "dx-number-box", inputs: ["accessKey", "activeStateEnabled", "buttons", "disabled", "elementAttr", "focusStateEnabled", "format", "height", "hint", "hoverStateEnabled", "inputAttr", "invalidValueMessage", "isValid", "label", "labelMode", "max", "min", "mode", "name", "placeholder", "readOnly", "rtlEnabled", "showClearButton", "showSpinButtons", "step", "stylingMode", "tabIndex", "text", "useLargeSpinButtons", "validationError", "validationErrors", "validationMessageMode", "validationMessagePosition", "validationStatus", "value", "valueChangeEvent", "visible", "width"], outputs: ["onChange", "onContentReady", "onCopy", "onCut", "onDisposing", "onEnterKey", "onFocusIn", "onFocusOut", "onInitialized", "onInput", "onKeyDown", "onKeyUp", "onOptionChanged", "onPaste", "onValueChanged", "accessKeyChange", "activeStateEnabledChange", "buttonsChange", "disabledChange", "elementAttrChange", "focusStateEnabledChange", "formatChange", "heightChange", "hintChange", "hoverStateEnabledChange", "inputAttrChange", "invalidValueMessageChange", "isValidChange", "labelChange", "labelModeChange", "maxChange", "minChange", "modeChange", "nameChange", "placeholderChange", "readOnlyChange", "rtlEnabledChange", "showClearButtonChange", "showSpinButtonsChange", "stepChange", "stylingModeChange", "tabIndexChange", "textChange", "useLargeSpinButtonsChange", "validationErrorChange", "validationErrorsChange", "validationMessageModeChange", "validationMessagePositionChange", "validationStatusChange", "valueChange", "valueChangeEventChange", "visibleChange", "widthChange", "onBlur"] }] });
|
|
237
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: StyleComponent, decorators: [{
|
|
238
|
+
type: Component,
|
|
239
|
+
args: [{ selector: 'rs-style', template: "<div class=\"config-item\">\n <div class=\"item-title\">\u5BBD\u5EA6\u7C7B\u578B</div>\n <div class=\"item-setting\">\n <div class=\"card-style-radio\">\n <div class=\"radio-value\" [ngClass]=\"!style.width || style.width === 'auto' ? 'active' : ''\"\n (click)=\"select('width','auto')\">\n <span>\u81EA\u9002\u5E94</span>\n </div>\n <div class=\"radio-value\" [ngClass]=\"style.width && style.width !== 'auto' ? 'active' : ''\"\n (click)=\"select('width',240)\">\n <span>\u56FA\u5B9A\u503C</span>\n </div>\n </div>\n </div>\n</div>\n<div class=\"config-item\">\n <div class=\"item-title\">\u56FA\u5B9A\u5BBD\u5EA6</div>\n <div class=\"item-setting\">\n <dx-number-box [min]=\"0\"\n [showSpinButtons]=\"true\"\n [showClearButton]=\"true\"\n [(value)]=\"width\"\n (onValueChanged)=\"typing('width', $event.value)\"\n [readOnly]=\"style.width === 'auto'\">\n </dx-number-box>\n </div>\n</div>\n<div class=\"config-item\">\n <div class=\"item-title\">\u9AD8\u5EA6\u7C7B\u578B</div>\n <div class=\"item-setting\">\n <div class=\"card-style-radio\">\n <div class=\"radio-value\" [ngClass]=\"!style.height || style.height === 'auto' ? 'active' : ''\"\n (click)=\"select('height','auto')\">\n <span>\u81EA\u9002\u5E94</span>\n </div>\n <div class=\"radio-value\" [ngClass]=\"style.height && style.height !== 'auto' ? 'active' : ''\"\n (click)=\"select('height',800)\">\n <span>\u56FA\u5B9A\u503C</span>\n </div>\n </div>\n </div>\n</div>\n<div class=\"config-item\">\n <div class=\"item-title\">\u56FA\u5B9A\u9AD8\u5EA6</div>\n <div class=\"item-setting\">\n <dx-number-box [min]=\"0\"\n [showSpinButtons]=\"true\"\n [showClearButton]=\"true\"\n [(value)]=\"height\"\n (onValueChanged)=\"typing('height', $event.value)\"\n [readOnly]=\"style.height === 'auto'\">\n </dx-number-box>\n </div>\n</div>\n", styles: [":host .config-item{display:flex;flex-flow:row nowrap;align-items:center;margin-bottom:8px}:host .config-item .item-title{flex:0 0 80px}:host .config-item .item-setting{flex:1;display:flex;flex-flow:row nowrap}:host .config-item .item-setting .card-style-radio{flex:1;display:flex;flex-flow:row nowrap;justify-content:stretch}:host .config-item .item-setting .card-style-radio .radio-value{flex:1;border:1px solid var(--devui-dividing-line, #f2f2f3);text-align:center;padding:4px;margin-left:-1px;cursor:pointer}:host .config-item .item-setting .card-style-radio .radio-value span{-webkit-user-select:none;user-select:none}:host .config-item .item-setting .card-style-radio .radio-value.active{color:var(--devui-brand, #5e7ce0);border:1px solid var(--devui-brand, #5e7ce0);z-index:1}:host .config-item .item-setting dx-number-box{flex:1}\n"] }]
|
|
240
|
+
}] });
|
|
241
|
+
|
|
242
|
+
class StyleBlankComponent {
|
|
243
|
+
}
|
|
244
|
+
StyleBlankComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: StyleBlankComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
245
|
+
StyleBlankComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.7", type: StyleBlankComponent, selector: "rs-style-blank", ngImport: i0, template: "<div>\n <span>\u8BF7\u5728\u5DE6\u4FA7\u753B\u5E03\u9009\u4E2D\u8282\u70B9</span>\n</div>\n", styles: [":host{height:80px;margin:8px;display:flex;flex-flow:row nowrap;justify-content:center}:host div{flex:1;display:flex;flex-flow:row nowrap;justify-content:center;align-items:center}:host div span{text-align:center;-webkit-user-select:none;user-select:none}\n"] });
|
|
246
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: StyleBlankComponent, decorators: [{
|
|
247
|
+
type: Component,
|
|
248
|
+
args: [{ selector: 'rs-style-blank', template: "<div>\n <span>\u8BF7\u5728\u5DE6\u4FA7\u753B\u5E03\u9009\u4E2D\u8282\u70B9</span>\n</div>\n", styles: [":host{height:80px;margin:8px;display:flex;flex-flow:row nowrap;justify-content:center}:host div{flex:1;display:flex;flex-flow:row nowrap;justify-content:center;align-items:center}:host div span{text-align:center;-webkit-user-select:none;user-select:none}\n"] }]
|
|
249
|
+
}] });
|
|
250
|
+
|
|
189
251
|
class PluginManager {
|
|
190
252
|
static createComponent(boxItem, index, style, config) {
|
|
191
253
|
let plugin = PluginFactory.get(config.name);
|
|
@@ -200,6 +262,7 @@ class PluginManager {
|
|
|
200
262
|
const viewContainerRef = boxItem.itemHosts.get(index)?.viewContainerRef;
|
|
201
263
|
viewContainerRef.clear();
|
|
202
264
|
const componentRef = viewContainerRef.createComponent(plugin.component);
|
|
265
|
+
componentRef.location.nativeElement.style.width = '100%';
|
|
203
266
|
const instance = componentRef.instance;
|
|
204
267
|
Object.assign(instance, config.pluginConfig);
|
|
205
268
|
if (plugin.type === 'form') {
|
|
@@ -301,29 +364,20 @@ class PluginManager {
|
|
|
301
364
|
});
|
|
302
365
|
return activeComponentRef;
|
|
303
366
|
}
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
}
|
|
315
|
-
this.pageConfigContent.clear();
|
|
316
|
-
const plugin = PluginFactory.get(item.config?.name);
|
|
317
|
-
const pluginType = plugin?.type;
|
|
318
|
-
const pluginConfig = PluginFactory.getConfig(item.config?.name);
|
|
319
|
-
if (!pluginConfig) {
|
|
320
|
-
return;
|
|
321
|
-
}
|
|
322
|
-
const componentRef = this.pageConfigContent.createComponent(pluginConfig.component);
|
|
367
|
+
static resetItemConfig(itemConfigContainerRef, item, fieldTree) {
|
|
368
|
+
if (!item) {
|
|
369
|
+
return;
|
|
370
|
+
}
|
|
371
|
+
itemConfigContainerRef.clear();
|
|
372
|
+
const plugin = PluginFactory.get(item.config?.name);
|
|
373
|
+
const pluginType = plugin?.type;
|
|
374
|
+
const pluginConfig = PluginFactory.getConfig(item.config?.name);
|
|
375
|
+
if (pluginConfig) {
|
|
376
|
+
const componentRef = itemConfigContainerRef.createComponent(pluginConfig.component);
|
|
323
377
|
const instance = componentRef.instance;
|
|
324
378
|
instance.config = item.config.pluginConfig;
|
|
325
379
|
if (pluginType === 'form') {
|
|
326
|
-
instance.fieldTree =
|
|
380
|
+
instance.fieldTree = fieldTree;
|
|
327
381
|
}
|
|
328
382
|
instance.configChange.subscribe((reload) => {
|
|
329
383
|
if (reload) {
|
|
@@ -334,99 +388,62 @@ class ItemConfigComponent {
|
|
|
334
388
|
Object.assign(item.componentRef.instance, item.config.pluginConfig);
|
|
335
389
|
}
|
|
336
390
|
});
|
|
337
|
-
});
|
|
338
|
-
}
|
|
339
|
-
}
|
|
340
|
-
ItemConfigComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: ItemConfigComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
341
|
-
ItemConfigComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.7", type: ItemConfigComponent, selector: "rs-item-config", viewQueries: [{ propertyName: "pageConfigContent", first: true, predicate: ["pageConfigContent"], descendants: true, read: ViewContainerRef, static: true }], ngImport: i0, template: "<ng-container #pageConfigContent></ng-container>\n", styles: [""] });
|
|
342
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: ItemConfigComponent, decorators: [{
|
|
343
|
-
type: Component,
|
|
344
|
-
args: [{ selector: 'rs-item-config', template: "<ng-container #pageConfigContent></ng-container>\n" }]
|
|
345
|
-
}], propDecorators: { pageConfigContent: [{
|
|
346
|
-
type: ViewChild,
|
|
347
|
-
args: ['pageConfigContent', { static: true, read: ViewContainerRef }]
|
|
348
|
-
}] } });
|
|
349
|
-
|
|
350
|
-
class StyleBlankComponent {
|
|
351
|
-
}
|
|
352
|
-
StyleBlankComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: StyleBlankComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
353
|
-
StyleBlankComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.7", type: StyleBlankComponent, selector: "rs-style-blank", ngImport: i0, template: "<div>\n <span>\u8BF7\u5728\u5DE6\u4FA7\u753B\u5E03\u9009\u4E2D\u8282\u70B9</span>\n</div>\n", styles: [":host{height:80px;margin:8px;display:flex;flex-flow:row nowrap;justify-content:center}:host div{flex:1;display:flex;flex-flow:row nowrap;justify-content:center;align-items:center}:host div span{text-align:center;-webkit-user-select:none;user-select:none}\n"] });
|
|
354
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: StyleBlankComponent, decorators: [{
|
|
355
|
-
type: Component,
|
|
356
|
-
args: [{ selector: 'rs-style-blank', template: "<div>\n <span>\u8BF7\u5728\u5DE6\u4FA7\u753B\u5E03\u9009\u4E2D\u8282\u70B9</span>\n</div>\n", styles: [":host{height:80px;margin:8px;display:flex;flex-flow:row nowrap;justify-content:center}:host div{flex:1;display:flex;flex-flow:row nowrap;justify-content:center;align-items:center}:host div span{text-align:center;-webkit-user-select:none;user-select:none}\n"] }]
|
|
357
|
-
}] });
|
|
358
|
-
|
|
359
|
-
class StyleComponent {
|
|
360
|
-
constructor() {
|
|
361
|
-
this.width = 0;
|
|
362
|
-
this.height = 0;
|
|
363
|
-
}
|
|
364
|
-
ngOnInit() {
|
|
365
|
-
this.style.width = this.style.width ? this.style.width : 'auto';
|
|
366
|
-
this.style.height = this.style.height ? this.style.height : 'auto';
|
|
367
|
-
if (this.style.width !== 'auto') {
|
|
368
|
-
this.width = this.style.width.substring(0, this.style.width.length - 2);
|
|
369
|
-
}
|
|
370
|
-
if (this.style.height !== 'auto') {
|
|
371
|
-
this.height = this.style.height.substring(0, this.style.height.length - 2);
|
|
372
|
-
}
|
|
373
|
-
}
|
|
374
|
-
select(name, value) {
|
|
375
|
-
const that = this;
|
|
376
|
-
if (value === 'auto') {
|
|
377
|
-
this.style[name] = 'auto';
|
|
378
391
|
}
|
|
379
392
|
else {
|
|
380
|
-
|
|
381
|
-
that[name] = value;
|
|
382
|
-
}
|
|
383
|
-
this.style[name] = that[name] + 'px';
|
|
393
|
+
itemConfigContainerRef.createComponent(ConfigBlankComponent);
|
|
384
394
|
}
|
|
385
395
|
}
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
396
|
+
static resetItemStyle(itemStyleContainerRef, item) {
|
|
397
|
+
itemStyleContainerRef.clear();
|
|
398
|
+
if (item) {
|
|
399
|
+
const componentRef = itemStyleContainerRef.createComponent(StyleComponent);
|
|
400
|
+
const instance = componentRef.instance;
|
|
401
|
+
instance.style = item.style;
|
|
389
402
|
}
|
|
390
403
|
else {
|
|
391
|
-
|
|
404
|
+
itemStyleContainerRef.createComponent(StyleBlankComponent);
|
|
392
405
|
}
|
|
393
406
|
}
|
|
394
407
|
}
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
|
|
408
|
+
PluginManager.hoverItems = [];
|
|
409
|
+
PluginManager.activeItem = new Subject();
|
|
410
|
+
PluginManager.activeItems = [];
|
|
411
|
+
|
|
412
|
+
class ItemConfigComponent {
|
|
413
|
+
ngOnInit() {
|
|
414
|
+
PluginManager.activeItem.subscribe(item => {
|
|
415
|
+
PluginManager.resetItemConfig(this.itemConfigContainerRef, item, this.fieldTree);
|
|
416
|
+
});
|
|
417
|
+
}
|
|
418
|
+
}
|
|
419
|
+
ItemConfigComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: ItemConfigComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
420
|
+
ItemConfigComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.7", type: ItemConfigComponent, selector: "rs-item-config", viewQueries: [{ propertyName: "itemConfigContainerRef", first: true, predicate: ["itemConfigContainerRef"], descendants: true, read: ViewContainerRef, static: true }], ngImport: i0, template: "<ng-container #itemConfigContainerRef></ng-container>\n", styles: [""] });
|
|
421
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: ItemConfigComponent, decorators: [{
|
|
398
422
|
type: Component,
|
|
399
|
-
args: [{ selector: 'rs-
|
|
400
|
-
}]
|
|
423
|
+
args: [{ selector: 'rs-item-config', template: "<ng-container #itemConfigContainerRef></ng-container>\n" }]
|
|
424
|
+
}], propDecorators: { itemConfigContainerRef: [{
|
|
425
|
+
type: ViewChild,
|
|
426
|
+
args: ['itemConfigContainerRef', {
|
|
427
|
+
static: true,
|
|
428
|
+
read: ViewContainerRef
|
|
429
|
+
}]
|
|
430
|
+
}] } });
|
|
401
431
|
|
|
402
432
|
class ItemStyleComponent {
|
|
403
|
-
constructor(changeDetectorRef) {
|
|
404
|
-
this.changeDetectorRef = changeDetectorRef;
|
|
405
|
-
}
|
|
406
433
|
ngOnInit() {
|
|
407
|
-
this.pageStyleContent.createComponent(StyleBlankComponent);
|
|
408
434
|
PluginManager.activeItem.subscribe(item => {
|
|
409
|
-
this.
|
|
410
|
-
if (item) {
|
|
411
|
-
const componentRef = this.pageStyleContent.createComponent(StyleComponent);
|
|
412
|
-
const instance = componentRef.instance;
|
|
413
|
-
instance.style = item.style;
|
|
414
|
-
}
|
|
415
|
-
else {
|
|
416
|
-
this.pageStyleContent.createComponent(StyleBlankComponent);
|
|
417
|
-
this.changeDetectorRef.detectChanges();
|
|
418
|
-
}
|
|
435
|
+
PluginManager.resetItemStyle(this.itemStyleContainerRef, item);
|
|
419
436
|
});
|
|
420
437
|
}
|
|
421
438
|
}
|
|
422
|
-
ItemStyleComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: ItemStyleComponent, deps: [
|
|
423
|
-
ItemStyleComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.7", type: ItemStyleComponent, selector: "rs-item-style", viewQueries: [{ propertyName: "
|
|
439
|
+
ItemStyleComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: ItemStyleComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
440
|
+
ItemStyleComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.7", type: ItemStyleComponent, selector: "rs-item-style", viewQueries: [{ propertyName: "itemStyleContainerRef", first: true, predicate: ["itemStyleContainerRef"], descendants: true, read: ViewContainerRef, static: true }], ngImport: i0, template: "<ng-container #itemStyleContainerRef></ng-container>\n", styles: [""] });
|
|
424
441
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: ItemStyleComponent, decorators: [{
|
|
425
442
|
type: Component,
|
|
426
|
-
args: [{ selector: 'rs-item-style', template: "<ng-container #
|
|
427
|
-
}],
|
|
443
|
+
args: [{ selector: 'rs-item-style', template: "<ng-container #itemStyleContainerRef></ng-container>\n" }]
|
|
444
|
+
}], propDecorators: { itemStyleContainerRef: [{
|
|
428
445
|
type: ViewChild,
|
|
429
|
-
args: ['
|
|
446
|
+
args: ['itemStyleContainerRef', { static: true, read: ViewContainerRef }]
|
|
430
447
|
}] } });
|
|
431
448
|
|
|
432
449
|
class BoxItemHostDirective {
|
|
@@ -569,7 +586,10 @@ class BoxItemComponent {
|
|
|
569
586
|
calcStyle(item) {
|
|
570
587
|
const width = item.style?.width ? item.style.width : 'auto';
|
|
571
588
|
const height = item.style?.height ? item.style.height : 'auto';
|
|
572
|
-
return
|
|
589
|
+
return {
|
|
590
|
+
...this._calcStyle(this.config.direction, width, height),
|
|
591
|
+
overflow: 'auto'
|
|
592
|
+
};
|
|
573
593
|
}
|
|
574
594
|
_calcStyle(direction, width, height) {
|
|
575
595
|
if (direction === 'row') {
|
|
@@ -711,7 +731,8 @@ BoxContainerModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", vers
|
|
|
711
731
|
StyleBlankComponent,
|
|
712
732
|
ItemBlankComponent,
|
|
713
733
|
StyleComponent,
|
|
714
|
-
PluginNotFoundComponent
|
|
734
|
+
PluginNotFoundComponent,
|
|
735
|
+
ConfigBlankComponent], imports: [CommonModule,
|
|
715
736
|
FormsModule,
|
|
716
737
|
DevExtremeModule], exports: [BoxContainerComponent,
|
|
717
738
|
ItemConfigComponent,
|
|
@@ -735,7 +756,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImpor
|
|
|
735
756
|
StyleBlankComponent,
|
|
736
757
|
ItemBlankComponent,
|
|
737
758
|
StyleComponent,
|
|
738
|
-
PluginNotFoundComponent
|
|
759
|
+
PluginNotFoundComponent,
|
|
760
|
+
ConfigBlankComponent
|
|
739
761
|
],
|
|
740
762
|
imports: [
|
|
741
763
|
CommonModule,
|
|
@@ -1443,10 +1465,10 @@ class FileCellTemplateComponent {
|
|
|
1443
1465
|
}
|
|
1444
1466
|
}
|
|
1445
1467
|
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 });
|
|
1446
|
-
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\"
|
|
1468
|
+
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"] }] });
|
|
1447
1469
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: FileCellTemplateComponent, decorators: [{
|
|
1448
1470
|
type: Component,
|
|
1449
|
-
args: [{ selector: 'rs-file-cell-template', template: "<dx-button #fileBtn type=\"default\" stylingMode=\"text\"
|
|
1471
|
+
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"] }]
|
|
1450
1472
|
}], ctorParameters: function () { return [{ type: DataGridService }, { type: i2$2.DomSanitizer }]; }, propDecorators: { table: [{
|
|
1451
1473
|
type: Input
|
|
1452
1474
|
}], oid: [{
|
|
@@ -1457,56 +1479,37 @@ class UserInfoTemplateComponent {
|
|
|
1457
1479
|
constructor(service, domSanitizer) {
|
|
1458
1480
|
this.service = service;
|
|
1459
1481
|
this.domSanitizer = domSanitizer;
|
|
1460
|
-
this.users = [];
|
|
1461
1482
|
}
|
|
1462
1483
|
ngOnInit() {
|
|
1463
|
-
|
|
1464
|
-
|
|
1465
|
-
|
|
1466
|
-
|
|
1467
|
-
|
|
1468
|
-
|
|
1469
|
-
this.users.push(response);
|
|
1470
|
-
// 重绘表格宽高
|
|
1471
|
-
setTimeout(() => {
|
|
1472
|
-
this.table.resize();
|
|
1473
|
-
});
|
|
1474
|
-
});
|
|
1475
|
-
}
|
|
1476
|
-
}
|
|
1477
|
-
else {
|
|
1478
|
-
this.service.getUserInfo(value).subscribe(response => {
|
|
1479
|
-
this.users.push(response);
|
|
1480
|
-
// 重绘表格宽高
|
|
1481
|
-
setTimeout(() => {
|
|
1482
|
-
this.table.resize();
|
|
1483
|
-
});
|
|
1484
|
-
});
|
|
1485
|
-
}
|
|
1486
|
-
}
|
|
1487
|
-
}
|
|
1488
|
-
convertContent(userInfo) {
|
|
1489
|
-
let content = '<table>';
|
|
1490
|
-
for (const item of userInfo) {
|
|
1491
|
-
content += `
|
|
1484
|
+
this.service.getUserInfo(this.uid).subscribe(response => {
|
|
1485
|
+
this.displayName = response.displayName;
|
|
1486
|
+
const userInfo = response.userInfo;
|
|
1487
|
+
let content = '<table>';
|
|
1488
|
+
for (const item of userInfo) {
|
|
1489
|
+
content += `
|
|
1492
1490
|
<tr>
|
|
1493
1491
|
<td style="text-align: right;">${item.caption}:</td>
|
|
1494
1492
|
<td style="text-align: left;">${item.value}</td>
|
|
1495
1493
|
</tr>
|
|
1496
1494
|
`;
|
|
1497
|
-
|
|
1498
|
-
|
|
1499
|
-
|
|
1495
|
+
}
|
|
1496
|
+
content += '</table>';
|
|
1497
|
+
this.content = this.domSanitizer.bypassSecurityTrustHtml(content);
|
|
1498
|
+
// 重绘表格宽高
|
|
1499
|
+
setTimeout(() => {
|
|
1500
|
+
this.table.resize();
|
|
1501
|
+
});
|
|
1502
|
+
});
|
|
1500
1503
|
}
|
|
1501
1504
|
}
|
|
1502
1505
|
UserInfoTemplateComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: UserInfoTemplateComponent, deps: [{ token: DataGridService }, { token: i2$2.DomSanitizer }], target: i0.ɵɵFactoryTarget.Component });
|
|
1503
|
-
UserInfoTemplateComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.7", type: UserInfoTemplateComponent, selector: "rs-user-info-template", inputs: { table: "table",
|
|
1506
|
+
UserInfoTemplateComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.7", type: UserInfoTemplateComponent, selector: "rs-user-info-template", inputs: { table: "table", uid: "uid" }, ngImport: i0, template: "<dx-button #textDiv type=\"default\" stylingMode=\"text\">\n {{displayName}}\n <dx-tooltip [target]=\"textDiv.instance.element()\"\n [position]=\"'top'\"\n [showEvent]=\"'click'\">\n <div *dxTemplate=\"let data of 'content'\">\n <div [innerHTML]=\"content\"></div>\n </div>\n </dx-tooltip>\n</dx-button>\n<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"] }] });
|
|
1504
1507
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: UserInfoTemplateComponent, decorators: [{
|
|
1505
1508
|
type: Component,
|
|
1506
|
-
args: [{ selector: 'rs-user-info-template', template: "<
|
|
1509
|
+
args: [{ selector: 'rs-user-info-template', template: "<dx-button #textDiv type=\"default\" stylingMode=\"text\">\n {{displayName}}\n <dx-tooltip [target]=\"textDiv.instance.element()\"\n [position]=\"'top'\"\n [showEvent]=\"'click'\">\n <div *dxTemplate=\"let data of 'content'\">\n <div [innerHTML]=\"content\"></div>\n </div>\n </dx-tooltip>\n</dx-button>\n<br/>\n" }]
|
|
1507
1510
|
}], ctorParameters: function () { return [{ type: DataGridService }, { type: i2$2.DomSanitizer }]; }, propDecorators: { table: [{
|
|
1508
1511
|
type: Input
|
|
1509
|
-
}],
|
|
1512
|
+
}], uid: [{
|
|
1510
1513
|
type: Input
|
|
1511
1514
|
}] } });
|
|
1512
1515
|
|
|
@@ -1514,56 +1517,37 @@ class UnitInfoTemplateComponent {
|
|
|
1514
1517
|
constructor(service, domSanitizer) {
|
|
1515
1518
|
this.service = service;
|
|
1516
1519
|
this.domSanitizer = domSanitizer;
|
|
1517
|
-
this.units = [];
|
|
1518
1520
|
}
|
|
1519
1521
|
ngOnInit() {
|
|
1520
|
-
|
|
1521
|
-
|
|
1522
|
-
|
|
1523
|
-
|
|
1524
|
-
|
|
1525
|
-
|
|
1526
|
-
this.units.push(response);
|
|
1527
|
-
// 重绘表格宽高
|
|
1528
|
-
setTimeout(() => {
|
|
1529
|
-
this.table.resize();
|
|
1530
|
-
});
|
|
1531
|
-
});
|
|
1532
|
-
}
|
|
1533
|
-
}
|
|
1534
|
-
else {
|
|
1535
|
-
this.service.getUnitInfo(value).subscribe(response => {
|
|
1536
|
-
this.units.push(response);
|
|
1537
|
-
// 重绘表格宽高
|
|
1538
|
-
setTimeout(() => {
|
|
1539
|
-
this.table.resize();
|
|
1540
|
-
});
|
|
1541
|
-
});
|
|
1542
|
-
}
|
|
1543
|
-
}
|
|
1544
|
-
}
|
|
1545
|
-
convertContent(unitInfo) {
|
|
1546
|
-
let content = '<table>';
|
|
1547
|
-
for (const item of unitInfo) {
|
|
1548
|
-
content += `
|
|
1522
|
+
this.service.getUnitInfo(this.uid).subscribe(response => {
|
|
1523
|
+
this.displayName = response.displayName;
|
|
1524
|
+
const unitInfo = response.unitInfo;
|
|
1525
|
+
let content = '<table>';
|
|
1526
|
+
for (const item of unitInfo) {
|
|
1527
|
+
content += `
|
|
1549
1528
|
<tr>
|
|
1550
1529
|
<td style="text-align: right;">${item.caption}:</td>
|
|
1551
1530
|
<td style="text-align: left;">${item.value}</td>
|
|
1552
1531
|
</tr>
|
|
1553
1532
|
`;
|
|
1554
|
-
|
|
1555
|
-
|
|
1556
|
-
|
|
1533
|
+
}
|
|
1534
|
+
content += '</table>';
|
|
1535
|
+
this.content = this.domSanitizer.bypassSecurityTrustHtml(content);
|
|
1536
|
+
// 重绘表格宽高
|
|
1537
|
+
setTimeout(() => {
|
|
1538
|
+
this.table.resize();
|
|
1539
|
+
});
|
|
1540
|
+
});
|
|
1557
1541
|
}
|
|
1558
1542
|
}
|
|
1559
1543
|
UnitInfoTemplateComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: UnitInfoTemplateComponent, deps: [{ token: DataGridService }, { token: i2$2.DomSanitizer }], target: i0.ɵɵFactoryTarget.Component });
|
|
1560
|
-
UnitInfoTemplateComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.7", type: UnitInfoTemplateComponent, selector: "rs-unit-info-template", inputs: { table: "table",
|
|
1544
|
+
UnitInfoTemplateComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.7", type: UnitInfoTemplateComponent, selector: "rs-unit-info-template", inputs: { table: "table", uid: "uid" }, ngImport: i0, template: "<dx-button #textDiv type=\"default\" stylingMode=\"text\">\n {{displayName}}\n <dx-tooltip [target]=\"textDiv.instance.element()\"\n [position]=\"'top'\"\n [showEvent]=\"'click'\">\n <div *dxTemplate=\"let data of 'content'\">\n <div [innerHTML]=\"content\"></div>\n </div>\n </dx-tooltip>\n</dx-button>\n<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"] }] });
|
|
1561
1545
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: UnitInfoTemplateComponent, decorators: [{
|
|
1562
1546
|
type: Component,
|
|
1563
|
-
args: [{ selector: 'rs-unit-info-template', template: "<
|
|
1547
|
+
args: [{ selector: 'rs-unit-info-template', template: "<dx-button #textDiv type=\"default\" stylingMode=\"text\">\n {{displayName}}\n <dx-tooltip [target]=\"textDiv.instance.element()\"\n [position]=\"'top'\"\n [showEvent]=\"'click'\">\n <div *dxTemplate=\"let data of 'content'\">\n <div [innerHTML]=\"content\"></div>\n </div>\n </dx-tooltip>\n</dx-button>\n<br/>\n" }]
|
|
1564
1548
|
}], ctorParameters: function () { return [{ type: DataGridService }, { type: i2$2.DomSanitizer }]; }, propDecorators: { table: [{
|
|
1565
1549
|
type: Input
|
|
1566
|
-
}],
|
|
1550
|
+
}], uid: [{
|
|
1567
1551
|
type: Input
|
|
1568
1552
|
}] } });
|
|
1569
1553
|
|
|
@@ -1606,11 +1590,19 @@ class DataGridComponent {
|
|
|
1606
1590
|
}
|
|
1607
1591
|
return cellInfo.value;
|
|
1608
1592
|
}
|
|
1609
|
-
|
|
1610
|
-
|
|
1611
|
-
|
|
1593
|
+
getOriginalValue(cellInfo, key) {
|
|
1594
|
+
const config = cellInfo.column[key];
|
|
1595
|
+
if (config) {
|
|
1596
|
+
const value = cellInfo.data[config.field];
|
|
1597
|
+
if (value) {
|
|
1598
|
+
if (Array.isArray(value)) {
|
|
1599
|
+
return value;
|
|
1600
|
+
}
|
|
1601
|
+
return [value];
|
|
1602
|
+
}
|
|
1603
|
+
return [];
|
|
1612
1604
|
}
|
|
1613
|
-
return cellInfo.
|
|
1605
|
+
return cellInfo.data[key];
|
|
1614
1606
|
}
|
|
1615
1607
|
refresh(callback) {
|
|
1616
1608
|
this.dxDataGrid.instance.refresh().then(() => {
|
|
@@ -1631,12 +1623,20 @@ class DataGridComponent {
|
|
|
1631
1623
|
onSelectionChanged($event) {
|
|
1632
1624
|
this.onDxDataGridSelectionChanged.emit($event);
|
|
1633
1625
|
}
|
|
1626
|
+
onEditorPreparing($event) {
|
|
1627
|
+
if ($event.parentType === 'filterRow' && $event.editorName === 'dxTextBox') {
|
|
1628
|
+
$event.editorOptions.valueChangeEvent = 'blur';
|
|
1629
|
+
$event.editorOptions.onEnterKey = (e) => {
|
|
1630
|
+
e.component.blur();
|
|
1631
|
+
};
|
|
1632
|
+
}
|
|
1633
|
+
}
|
|
1634
1634
|
}
|
|
1635
1635
|
DataGridComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: DataGridComponent, deps: [{ token: DataGridFactory }], target: i0.ɵɵFactoryTarget.Component });
|
|
1636
|
-
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\"\n [columns]=\"columns\"\n [syncLookupFilterValues]=\"false\"\n [showBorders]=\"true\"\n [showRowLines]=\"true\"\n [hoverStateEnabled]=\"true\"\n [rowAlternationEnabled]=\"true\"\n [columnAutoWidth]=\"true\"\n [allowColumnResizing]=\"true\"\n columnResizingMode=\"widget\"\n dateSerializationFormat=\"yyyy/MM/dd HH:mm:ss\"\n (onCellPrepared)=\"onCellPrepared($event)\"\n (onContentReady)=\"onContentReady($event)\"\n (onSelectionChanged)=\"onSelectionChanged($event)\"\n (onRowExpanding)=\"$event.component.collapseAll(-1)\">\n <dxo-sorting mode=\"multiple\"></dxo-sorting>\n <dxo-selection [mode]=\"selectionMode\" selectAllMode=\"page\" showCheckBoxesMode=\"always\"></dxo-selection>\n <dxo-header-filter [visible]=\"true\">\n <dxo-search [enabled]=\"true\"></dxo-search>\n <dxo-texts [ok]=\"'\u786E\u5B9A'\"></dxo-texts>\n </dxo-header-filter>\n <dxo-filter-row [visible]=\"true\"></dxo-filter-row>\n <dxo-remote-operations [filtering]=\"true\"\n [sorting]=\"true\"\n [paging]=\"true\">\n </dxo-remote-operations>\n <dxo-master-detail [enabled]=\"enableMasterDetail\" template=\"masterDetailTemplate\"></dxo-master-detail>\n <dxo-paging [pageSize]=\"15\"></dxo-paging>\n <dxo-pager [visible]=\"true\"\n [showInfo]=\"true\"\n infoText=\"\u7B2C{0}\u9875\uFF0C\u5171{1}\u9875\uFF08\u5171{2}\u4E2A\u9879\u76EE\uFF09\"\n [showPageSizeSelector]=\"true\"\n [allowedPageSizes]=\"[15, 30, 50]\"\n ></dxo-pager>\n <dxo-scrolling mode=\"virtual\" [preloadEnabled]=\"true\" showScrollbar=\"always\"></dxo-scrolling>\n <dxo-export [allowExportSelectedData]=\"true\"\n [fileName]=\"className\"></dxo-export>\n <div *dxTemplate=\"let cellInfo of 'masterDetailTemplate'\">\n <ng-container [ngTemplateOutlet]=\"masterDetailTemplate.templateRef\"\n [ngTemplateOutletContext]=\"{$implicit: cellInfo}\"></ng-container>\n </div>\n <div *dxTemplate=\"let cellInfo of 'rowButtonsTemplate'\">\n <ng-container [ngTemplateOutlet]=\"rowButtonsTemplate.templateRef\"\n [ngTemplateOutletContext]=\"{$implicit: cellInfo}\"></ng-container>\n </div>\n <div *dxTemplate=\"let cellInfo of 'instanceLinkTemplate'\">\n <ng-container [ngTemplateOutlet]=\"instanceLinkTemplate.templateRef\"\n [ngTemplateOutletContext]=\"{$implicit: cellInfo}\"></ng-container>\n </div>\n <div *dxTemplate=\"let cellInfo of 'rowIndexTemplate'\">\n {{cellInfo.rowIndex + 1}}\n </div>\n <div *dxTemplate=\"let cellInfo of 'multipleValueCellTemplate'\">\n <div [innerHTML]=\"convertMultipleValueCellText(cellInfo)\"></div>\n </div>\n <div *dxTemplate=\"let cellInfo of 'textCellTemplate'\">\n <div #textDiv style=\"text-overflow: ellipsis; overflow: hidden;\"\n [innerHTML]=\"convertTextValueCellText(cellInfo)\"></div>\n <dx-tooltip [target]=\"textDiv\"\n [position]=\"'top'\"\n [showEvent]=\"'mouseenter'\"\n [hideEvent]=\"'mouseleave'\">\n <div *dxTemplate=\"let data of 'content'\">\n <p style=\"max-width: 320px; text-align: left; white-space: normal;\" [innerText]=\"cellInfo.value\"></p>\n </div>\n </dx-tooltip>\n </div>\n <div *dxTemplate=\"let cellInfo of 'fileCellTemplate'\">\n <ng-container *ngFor=\"let file of cellInfo.value\">\n <rs-file-cell-template [table]=\"cellInfo.component\" [oid]=\"file\"></rs-file-cell-template>\n </ng-container>\n </div>\n <div *dxTemplate=\"let cellInfo of 'userCellTemplate'\">\n <rs-user-info-template [table]=\"cellInfo.component\" [cellInfo]=\"cellInfo\"></rs-user-info-template>\n </div>\n <div *dxTemplate=\"let cellInfo of 'unitCellTemplate'\">\n <rs-unit-info-template [table]=\"cellInfo.component\" [cellInfo]=\"cellInfo\"></rs-unit-info-template>\n </div>\n</dx-data-grid>\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: i4.DxTemplateDirective, selector: "[dxTemplate]", inputs: ["dxTemplateOf"] }, { kind: "component", type: i4$1.DxoExportComponent, selector: "dxo-export", inputs: ["backgroundColor", "enabled", "fileName", "formats", "margin", "printingEnabled", "svgToCanvas", "allowExportSelectedData", "texts"] }, { 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: i4$1.DxoSearchComponent, selector: "dxo-search", inputs: ["editorOptions", "enabled", "timeout", "mode", "searchExpr"] }, { kind: "component", type: i4$1.DxoSelectionComponent, selector: "dxo-selection", inputs: ["allowSelectAll", "recursive", "selectByClick", "deferred", "mode", "selectAllMode", "showCheckBoxesMode"] }, { kind: "component", type: i4$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: i4$1.DxoHeaderFilterComponent, selector: "dxo-header-filter", inputs: ["allowSearch", "allowSelectAll", "dataSource", "groupInterval", "height", "search", "searchMode", "width", "searchTimeout", "texts", "visible", "showRelevantValues"] }, { kind: "component", type: i4$1.DxoFilterRowComponent, selector: "dxo-filter-row", inputs: ["applyFilter", "applyFilterText", "betweenEndText", "betweenStartText", "operationDescriptions", "resetOperationText", "showAllText", "showOperationChooser", "visible"] }, { kind: "component", type: i4$1.DxoMasterDetailComponent, selector: "dxo-master-detail", inputs: ["autoExpandAll", "enabled", "template"] }, { kind: "component", type: i4$1.DxoPagerComponent, selector: "dxo-pager", inputs: ["allowedPageSizes", "displayMode", "infoText", "label", "showInfo", "showNavigationButtons", "showPageSizeSelector", "visible"] }, { kind: "component", type: i4$1.DxoPagingComponent, selector: "dxo-paging", inputs: ["enabled", "pageIndex", "pageSize"], outputs: ["pageIndexChange", "pageSizeChange"] }, { kind: "component", type: i4$1.DxoRemoteOperationsComponent, selector: "dxo-remote-operations", inputs: ["filtering", "grouping", "groupPaging", "paging", "sorting", "summary"] }, { kind: "component", type: i4$1.DxoScrollingComponent, selector: "dxo-scrolling", inputs: ["columnRenderingMode", "mode", "preloadEnabled", "renderAsync", "rowRenderingMode", "scrollByContent", "scrollByThumb", "showScrollbar", "useNative"] }, { kind: "component", type: i4$1.DxoSortingComponent, selector: "dxo-sorting", inputs: ["ascendingText", "clearText", "descendingText", "mode", "showSortIndexes"] }, { kind: "component", type: i6.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", "cellInfo"] }, { kind: "component", type: UnitInfoTemplateComponent, selector: "rs-unit-info-template", inputs: ["table", "cellInfo"] }] });
|
|
1636
|
+
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\"\n [columns]=\"columns\"\n [syncLookupFilterValues]=\"false\"\n [showBorders]=\"true\"\n [showRowLines]=\"true\"\n [hoverStateEnabled]=\"true\"\n [rowAlternationEnabled]=\"true\"\n [columnAutoWidth]=\"true\"\n [allowColumnResizing]=\"true\"\n columnResizingMode=\"widget\"\n dateSerializationFormat=\"yyyy/MM/dd HH:mm:ss\"\n (onCellPrepared)=\"onCellPrepared($event)\"\n (onEditorPreparing)=\"onEditorPreparing($event)\"\n (onContentReady)=\"onContentReady($event)\"\n (onSelectionChanged)=\"onSelectionChanged($event)\"\n (onRowExpanding)=\"$event.component.collapseAll(-1)\">\n <dxo-sorting mode=\"multiple\"></dxo-sorting>\n <dxo-selection [mode]=\"selectionMode\" selectAllMode=\"page\" showCheckBoxesMode=\"always\"></dxo-selection>\n <dxo-header-filter [visible]=\"true\">\n <dxo-search [enabled]=\"true\"></dxo-search>\n <dxo-texts [ok]=\"'\u786E\u5B9A'\"></dxo-texts>\n </dxo-header-filter>\n <dxo-filter-row [visible]=\"true\"></dxo-filter-row>\n <dxo-remote-operations [filtering]=\"true\"\n [sorting]=\"true\"\n [paging]=\"true\">\n </dxo-remote-operations>\n <dxo-master-detail [enabled]=\"enableMasterDetail\" template=\"masterDetailTemplate\"></dxo-master-detail>\n <dxo-paging [pageSize]=\"15\"></dxo-paging>\n <dxo-pager [visible]=\"true\"\n [showInfo]=\"true\"\n infoText=\"\u7B2C{0}\u9875\uFF0C\u5171{1}\u9875\uFF08\u5171{2}\u4E2A\u9879\u76EE\uFF09\"\n [showPageSizeSelector]=\"true\"\n [allowedPageSizes]=\"[15, 30, 50]\"\n ></dxo-pager>\n <dxo-scrolling showScrollbar=\"always\"></dxo-scrolling>\n <div *dxTemplate=\"let cellInfo of 'masterDetailTemplate'\">\n <ng-container [ngTemplateOutlet]=\"masterDetailTemplate.templateRef\"\n [ngTemplateOutletContext]=\"{$implicit: cellInfo}\"></ng-container>\n </div>\n <div *dxTemplate=\"let cellInfo of 'rowButtonsTemplate'\">\n <ng-container [ngTemplateOutlet]=\"rowButtonsTemplate.templateRef\"\n [ngTemplateOutletContext]=\"{$implicit: cellInfo}\"></ng-container>\n </div>\n <div *dxTemplate=\"let cellInfo of 'instanceLinkTemplate'\">\n <ng-container [ngTemplateOutlet]=\"instanceLinkTemplate.templateRef\"\n [ngTemplateOutletContext]=\"{$implicit: cellInfo}\"></ng-container>\n </div>\n <div *dxTemplate=\"let cellInfo of 'rowIndexTemplate'\">\n {{cellInfo.rowIndex + 1}}\n </div>\n <div *dxTemplate=\"let cellInfo of 'multipleValueCellTemplate'\">\n <div [innerHTML]=\"convertMultipleValueCellText(cellInfo)\"></div>\n </div>\n <div *dxTemplate=\"let cellInfo of 'textCellTemplate'\">\n <div #textDiv style=\"text-overflow: ellipsis; overflow: hidden; cursor: pointer;\">{{cellInfo.value}}</div>\n <dx-tooltip [target]=\"textDiv\"\n [position]=\"'top'\"\n [showEvent]=\"'click'\">\n <div *dxTemplate=\"let data of 'content'\">\n <p style=\"max-width: 320px; text-align: left; white-space: normal;\" [innerText]=\"cellInfo.value\"></p>\n </div>\n </dx-tooltip>\n </div>\n <div *dxTemplate=\"let cellInfo of 'fileCellTemplate'\">\n <ng-container *ngFor=\"let file of cellInfo.value\">\n <rs-file-cell-template [table]=\"cellInfo.component\" [oid]=\"file\"></rs-file-cell-template>\n </ng-container>\n </div>\n <div *dxTemplate=\"let cellInfo of 'userCellTemplate'\">\n <ng-container *ngFor=\"let user of getOriginalValue(cellInfo, 'userInfo')\">\n <rs-user-info-template [table]=\"cellInfo.component\" [uid]=\"user\"></rs-user-info-template>\n </ng-container>\n </div>\n <div *dxTemplate=\"let cellInfo of 'unitCellTemplate'\">\n <ng-container *ngFor=\"let unit of getOriginalValue(cellInfo, 'unitInfo')\">\n <rs-unit-info-template [table]=\"cellInfo.component\" [uid]=\"unit\"></rs-unit-info-template>\n </ng-container>\n </div>\n</dx-data-grid>\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: i4$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: i5$1.DxoSearchComponent, selector: "dxo-search", inputs: ["editorOptions", "enabled", "timeout", "mode", "searchExpr"] }, { kind: "component", type: i5$1.DxoSelectionComponent, selector: "dxo-selection", inputs: ["allowSelectAll", "recursive", "selectByClick", "deferred", "mode", "selectAllMode", "showCheckBoxesMode"] }, { kind: "component", type: i5$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: i5$1.DxoHeaderFilterComponent, selector: "dxo-header-filter", inputs: ["allowSearch", "allowSelectAll", "dataSource", "groupInterval", "height", "search", "searchMode", "width", "searchTimeout", "texts", "visible", "showRelevantValues"] }, { kind: "component", type: i5$1.DxoFilterRowComponent, selector: "dxo-filter-row", inputs: ["applyFilter", "applyFilterText", "betweenEndText", "betweenStartText", "operationDescriptions", "resetOperationText", "showAllText", "showOperationChooser", "visible"] }, { kind: "component", type: i5$1.DxoMasterDetailComponent, selector: "dxo-master-detail", inputs: ["autoExpandAll", "enabled", "template"] }, { kind: "component", type: i5$1.DxoPagerComponent, selector: "dxo-pager", inputs: ["allowedPageSizes", "displayMode", "infoText", "label", "showInfo", "showNavigationButtons", "showPageSizeSelector", "visible"] }, { kind: "component", type: i5$1.DxoPagingComponent, selector: "dxo-paging", inputs: ["enabled", "pageIndex", "pageSize"], outputs: ["pageIndexChange", "pageSizeChange"] }, { kind: "component", type: i5$1.DxoRemoteOperationsComponent, selector: "dxo-remote-operations", inputs: ["filtering", "grouping", "groupPaging", "paging", "sorting", "summary"] }, { kind: "component", type: i5$1.DxoScrollingComponent, selector: "dxo-scrolling", inputs: ["columnRenderingMode", "mode", "preloadEnabled", "renderAsync", "rowRenderingMode", "scrollByContent", "scrollByThumb", "showScrollbar", "useNative"] }, { kind: "component", type: i5$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"] }] });
|
|
1637
1637
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: DataGridComponent, decorators: [{
|
|
1638
1638
|
type: Component,
|
|
1639
|
-
args: [{ selector: 'rs-data-grid', providers: [DataGridService], template: "<dx-data-grid [dataSource]=\"dataSource\"\n [columns]=\"columns\"\n [syncLookupFilterValues]=\"false\"\n [showBorders]=\"true\"\n [showRowLines]=\"true\"\n [hoverStateEnabled]=\"true\"\n [rowAlternationEnabled]=\"true\"\n [columnAutoWidth]=\"true\"\n [allowColumnResizing]=\"true\"\n columnResizingMode=\"widget\"\n dateSerializationFormat=\"yyyy/MM/dd HH:mm:ss\"\n (onCellPrepared)=\"onCellPrepared($event)\"\n (onContentReady)=\"onContentReady($event)\"\n (onSelectionChanged)=\"onSelectionChanged($event)\"\n (onRowExpanding)=\"$event.component.collapseAll(-1)\">\n <dxo-sorting mode=\"multiple\"></dxo-sorting>\n <dxo-selection [mode]=\"selectionMode\" selectAllMode=\"page\" showCheckBoxesMode=\"always\"></dxo-selection>\n <dxo-header-filter [visible]=\"true\">\n <dxo-search [enabled]=\"true\"></dxo-search>\n <dxo-texts [ok]=\"'\u786E\u5B9A'\"></dxo-texts>\n </dxo-header-filter>\n <dxo-filter-row [visible]=\"true\"></dxo-filter-row>\n <dxo-remote-operations [filtering]=\"true\"\n [sorting]=\"true\"\n [paging]=\"true\">\n </dxo-remote-operations>\n <dxo-master-detail [enabled]=\"enableMasterDetail\" template=\"masterDetailTemplate\"></dxo-master-detail>\n <dxo-paging [pageSize]=\"15\"></dxo-paging>\n <dxo-pager [visible]=\"true\"\n [showInfo]=\"true\"\n infoText=\"\u7B2C{0}\u9875\uFF0C\u5171{1}\u9875\uFF08\u5171{2}\u4E2A\u9879\u76EE\uFF09\"\n [showPageSizeSelector]=\"true\"\n [allowedPageSizes]=\"[15, 30, 50]\"\n ></dxo-pager>\n <dxo-scrolling
|
|
1639
|
+
args: [{ selector: 'rs-data-grid', providers: [DataGridService], template: "<dx-data-grid [dataSource]=\"dataSource\"\n [columns]=\"columns\"\n [syncLookupFilterValues]=\"false\"\n [showBorders]=\"true\"\n [showRowLines]=\"true\"\n [hoverStateEnabled]=\"true\"\n [rowAlternationEnabled]=\"true\"\n [columnAutoWidth]=\"true\"\n [allowColumnResizing]=\"true\"\n columnResizingMode=\"widget\"\n dateSerializationFormat=\"yyyy/MM/dd HH:mm:ss\"\n (onCellPrepared)=\"onCellPrepared($event)\"\n (onEditorPreparing)=\"onEditorPreparing($event)\"\n (onContentReady)=\"onContentReady($event)\"\n (onSelectionChanged)=\"onSelectionChanged($event)\"\n (onRowExpanding)=\"$event.component.collapseAll(-1)\">\n <dxo-sorting mode=\"multiple\"></dxo-sorting>\n <dxo-selection [mode]=\"selectionMode\" selectAllMode=\"page\" showCheckBoxesMode=\"always\"></dxo-selection>\n <dxo-header-filter [visible]=\"true\">\n <dxo-search [enabled]=\"true\"></dxo-search>\n <dxo-texts [ok]=\"'\u786E\u5B9A'\"></dxo-texts>\n </dxo-header-filter>\n <dxo-filter-row [visible]=\"true\"></dxo-filter-row>\n <dxo-remote-operations [filtering]=\"true\"\n [sorting]=\"true\"\n [paging]=\"true\">\n </dxo-remote-operations>\n <dxo-master-detail [enabled]=\"enableMasterDetail\" template=\"masterDetailTemplate\"></dxo-master-detail>\n <dxo-paging [pageSize]=\"15\"></dxo-paging>\n <dxo-pager [visible]=\"true\"\n [showInfo]=\"true\"\n infoText=\"\u7B2C{0}\u9875\uFF0C\u5171{1}\u9875\uFF08\u5171{2}\u4E2A\u9879\u76EE\uFF09\"\n [showPageSizeSelector]=\"true\"\n [allowedPageSizes]=\"[15, 30, 50]\"\n ></dxo-pager>\n <dxo-scrolling showScrollbar=\"always\"></dxo-scrolling>\n <div *dxTemplate=\"let cellInfo of 'masterDetailTemplate'\">\n <ng-container [ngTemplateOutlet]=\"masterDetailTemplate.templateRef\"\n [ngTemplateOutletContext]=\"{$implicit: cellInfo}\"></ng-container>\n </div>\n <div *dxTemplate=\"let cellInfo of 'rowButtonsTemplate'\">\n <ng-container [ngTemplateOutlet]=\"rowButtonsTemplate.templateRef\"\n [ngTemplateOutletContext]=\"{$implicit: cellInfo}\"></ng-container>\n </div>\n <div *dxTemplate=\"let cellInfo of 'instanceLinkTemplate'\">\n <ng-container [ngTemplateOutlet]=\"instanceLinkTemplate.templateRef\"\n [ngTemplateOutletContext]=\"{$implicit: cellInfo}\"></ng-container>\n </div>\n <div *dxTemplate=\"let cellInfo of 'rowIndexTemplate'\">\n {{cellInfo.rowIndex + 1}}\n </div>\n <div *dxTemplate=\"let cellInfo of 'multipleValueCellTemplate'\">\n <div [innerHTML]=\"convertMultipleValueCellText(cellInfo)\"></div>\n </div>\n <div *dxTemplate=\"let cellInfo of 'textCellTemplate'\">\n <div #textDiv style=\"text-overflow: ellipsis; overflow: hidden; cursor: pointer;\">{{cellInfo.value}}</div>\n <dx-tooltip [target]=\"textDiv\"\n [position]=\"'top'\"\n [showEvent]=\"'click'\">\n <div *dxTemplate=\"let data of 'content'\">\n <p style=\"max-width: 320px; text-align: left; white-space: normal;\" [innerText]=\"cellInfo.value\"></p>\n </div>\n </dx-tooltip>\n </div>\n <div *dxTemplate=\"let cellInfo of 'fileCellTemplate'\">\n <ng-container *ngFor=\"let file of cellInfo.value\">\n <rs-file-cell-template [table]=\"cellInfo.component\" [oid]=\"file\"></rs-file-cell-template>\n </ng-container>\n </div>\n <div *dxTemplate=\"let cellInfo of 'userCellTemplate'\">\n <ng-container *ngFor=\"let user of getOriginalValue(cellInfo, 'userInfo')\">\n <rs-user-info-template [table]=\"cellInfo.component\" [uid]=\"user\"></rs-user-info-template>\n </ng-container>\n </div>\n <div *dxTemplate=\"let cellInfo of 'unitCellTemplate'\">\n <ng-container *ngFor=\"let unit of getOriginalValue(cellInfo, 'unitInfo')\">\n <rs-unit-info-template [table]=\"cellInfo.component\" [uid]=\"unit\"></rs-unit-info-template>\n </ng-container>\n </div>\n</dx-data-grid>\n", styles: [":host{display:flex;flex-flow:column nowrap}:host dx-data-grid{flex:auto;height:0}\n"] }]
|
|
1640
1640
|
}], ctorParameters: function () { return [{ type: DataGridFactory }]; }, propDecorators: { tenant: [{
|
|
1641
1641
|
type: Input
|
|
1642
1642
|
}], className: [{
|
|
@@ -1749,7 +1749,7 @@ class DrawerComponent {
|
|
|
1749
1749
|
}
|
|
1750
1750
|
}
|
|
1751
1751
|
DrawerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: DrawerComponent, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
1752
|
-
DrawerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.7", type: DrawerComponent, selector: "rs-drawer", ngImport: i0, template: "<div #drawerBackdrop class=\"drawer-backdrop\" (click)=\"hide($event, drawerBackdrop)\">\n <div class=\"drawer\" [ngStyle]=\"{width: _width}\">\n <div *ngIf=\"headerTemplate\" class=\"drawer-header\">\n <ng-template [ngTemplateOutlet]=\"headerTemplate\"\n [ngTemplateOutletContext]=\"{$implicit: headerTemplateContext}\"></ng-template>\n </div>\n <div class=\"drawer-content\">\n <ng-template [ngTemplateOutlet]=\"contentTemplate\"\n [ngTemplateOutletContext]=\"{$implicit: contentTemplateContext}\"></ng-template>\n </div>\n <div class=\"drawer-close\">\n <dx-button height=\"40px\" icon=\"coast-icon coast-icon-arrow-right-filling\" (onClick)=\"hide($event)\"></dx-button>\n </div>\n </div>\n</div>\n", styles: [":host .drawer-backdrop{position:absolute;inset:0;z-index:calc(var(--coast-z-index-drawer, 1040) - 1)}:host .drawer-backdrop .drawer{position:absolute;right:0;height:100%;z-index:var(--coast-z-index-drawer, 1040);background-color:var(--coast-base-bg-color, #fff);box-shadow:0 10px 24px #252b3a3d;display:flex;flex-flow:column nowrap}:host .drawer-backdrop .drawer .drawer-header{flex:0 0 36px;padding:8px;border-bottom:1px solid var(--coast-border-color, #dddddd);display:flex;flex-flow:row nowrap;align-items:center;justify-content:flex-end}:host .drawer-backdrop .drawer .drawer-content{flex:1;overflow:auto;display:flex;flex-flow:column nowrap}:host .drawer-backdrop .drawer .drawer-close{position:absolute;height:100%;width:20px;top:0;left:-20px;display:flex;flex-flow:row nowrap;align-items:center}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type:
|
|
1752
|
+
DrawerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.7", type: DrawerComponent, selector: "rs-drawer", ngImport: i0, template: "<div #drawerBackdrop class=\"drawer-backdrop\" (click)=\"hide($event, drawerBackdrop)\">\n <div class=\"drawer\" [ngStyle]=\"{width: _width}\">\n <div *ngIf=\"headerTemplate\" class=\"drawer-header\">\n <ng-template [ngTemplateOutlet]=\"headerTemplate\"\n [ngTemplateOutletContext]=\"{$implicit: headerTemplateContext}\"></ng-template>\n </div>\n <div class=\"drawer-content\">\n <ng-template [ngTemplateOutlet]=\"contentTemplate\"\n [ngTemplateOutletContext]=\"{$implicit: contentTemplateContext}\"></ng-template>\n </div>\n <div class=\"drawer-close\">\n <dx-button height=\"40px\" icon=\"coast-icon coast-icon-arrow-right-filling\" (onClick)=\"hide($event)\"></dx-button>\n </div>\n </div>\n</div>\n", styles: [":host .drawer-backdrop{position:absolute;inset:0;z-index:calc(var(--coast-z-index-drawer, 1040) - 1)}:host .drawer-backdrop .drawer{position:absolute;right:0;height:100%;z-index:var(--coast-z-index-drawer, 1040);background-color:var(--coast-base-bg-color, #fff);box-shadow:0 10px 24px #252b3a3d;display:flex;flex-flow:column nowrap}:host .drawer-backdrop .drawer .drawer-header{flex:0 0 36px;padding:8px;border-bottom:1px solid var(--coast-border-color, #dddddd);display:flex;flex-flow:row nowrap;align-items:center;justify-content:flex-end}:host .drawer-backdrop .drawer .drawer-content{flex:1;overflow:auto;display:flex;flex-flow:column nowrap}:host .drawer-backdrop .drawer .drawer-close{position:absolute;height:100%;width:20px;top:0;left:-20px;display:flex;flex-flow:row nowrap;align-items:center}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { 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"] }] });
|
|
1753
1753
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: DrawerComponent, decorators: [{
|
|
1754
1754
|
type: Component,
|
|
1755
1755
|
args: [{ selector: 'rs-drawer', template: "<div #drawerBackdrop class=\"drawer-backdrop\" (click)=\"hide($event, drawerBackdrop)\">\n <div class=\"drawer\" [ngStyle]=\"{width: _width}\">\n <div *ngIf=\"headerTemplate\" class=\"drawer-header\">\n <ng-template [ngTemplateOutlet]=\"headerTemplate\"\n [ngTemplateOutletContext]=\"{$implicit: headerTemplateContext}\"></ng-template>\n </div>\n <div class=\"drawer-content\">\n <ng-template [ngTemplateOutlet]=\"contentTemplate\"\n [ngTemplateOutletContext]=\"{$implicit: contentTemplateContext}\"></ng-template>\n </div>\n <div class=\"drawer-close\">\n <dx-button height=\"40px\" icon=\"coast-icon coast-icon-arrow-right-filling\" (onClick)=\"hide($event)\"></dx-button>\n </div>\n </div>\n</div>\n", styles: [":host .drawer-backdrop{position:absolute;inset:0;z-index:calc(var(--coast-z-index-drawer, 1040) - 1)}:host .drawer-backdrop .drawer{position:absolute;right:0;height:100%;z-index:var(--coast-z-index-drawer, 1040);background-color:var(--coast-base-bg-color, #fff);box-shadow:0 10px 24px #252b3a3d;display:flex;flex-flow:column nowrap}:host .drawer-backdrop .drawer .drawer-header{flex:0 0 36px;padding:8px;border-bottom:1px solid var(--coast-border-color, #dddddd);display:flex;flex-flow:row nowrap;align-items:center;justify-content:flex-end}:host .drawer-backdrop .drawer .drawer-content{flex:1;overflow:auto;display:flex;flex-flow:column nowrap}:host .drawer-backdrop .drawer .drawer-close{position:absolute;height:100%;width:20px;top:0;left:-20px;display:flex;flex-flow:row nowrap;align-items:center}\n"] }]
|
|
@@ -1813,7 +1813,7 @@ class DynamicParamsComponent {
|
|
|
1813
1813
|
}
|
|
1814
1814
|
}
|
|
1815
1815
|
DynamicParamsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: DynamicParamsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
1816
|
-
DynamicParamsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.7", type: DynamicParamsComponent, selector: "rs-dynamic-params", inputs: { label: "label", params: "params" }, ngImport: i0, template: "<div class=\"dx-field\">\n <div class=\"dx-field-label\">\n <span>{{label || '\u52A8\u6001\u53C2\u6570'}}</span>\n <dx-button type=\"default\" stylingMode=\"text\" icon=\"coast-icon coast-icon-add\" (onClick)=\"add()\"></dx-button>\n </div>\n <div class=\"dx-field-value\">\n <div *ngFor=\"let param of params; let index = index\">\n <dx-text-box placeholder=\"\u53C2\u6570\u540D\" [(value)]=\"param.name\"></dx-text-box>\n <dx-text-box placeholder=\"\u53C2\u6570\u503C\" [(value)]=\"param.value\"></dx-text-box>\n <dx-button type=\"danger\" stylingMode=\"text\" icon=\"coast-icon coast-icon-close\"\n (onClick)=\"delete(index)\"></dx-button>\n </div>\n </div>\n</div>\n", styles: [":host .dx-field .dx-field-label{display:flex;align-items:center}:host .dx-field .dx-field-value div{display:flex;flex-flow:row nowrap}:host .dx-field .dx-field-value div dx-text-box{flex:1}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type:
|
|
1816
|
+
DynamicParamsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.7", type: DynamicParamsComponent, selector: "rs-dynamic-params", inputs: { label: "label", params: "params" }, ngImport: i0, template: "<div class=\"dx-field\">\n <div class=\"dx-field-label\">\n <span>{{label || '\u52A8\u6001\u53C2\u6570'}}</span>\n <dx-button type=\"default\" stylingMode=\"text\" icon=\"coast-icon coast-icon-add\" (onClick)=\"add()\"></dx-button>\n </div>\n <div class=\"dx-field-value\">\n <div *ngFor=\"let param of params; let index = index\">\n <dx-text-box placeholder=\"\u53C2\u6570\u540D\" [(value)]=\"param.name\"></dx-text-box>\n <dx-text-box placeholder=\"\u53C2\u6570\u503C\" [(value)]=\"param.value\"></dx-text-box>\n <dx-button type=\"danger\" stylingMode=\"text\" icon=\"coast-icon coast-icon-close\"\n (onClick)=\"delete(index)\"></dx-button>\n </div>\n </div>\n</div>\n", styles: [":host .dx-field .dx-field-label{display:flex;align-items:center}:host .dx-field .dx-field-value div{display:flex;flex-flow:row nowrap}:host .dx-field .dx-field-value div dx-text-box{flex:1}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { 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: i3$1.DxTextBoxComponent, selector: "dx-text-box", inputs: ["accessKey", "activeStateEnabled", "buttons", "disabled", "elementAttr", "focusStateEnabled", "height", "hint", "hoverStateEnabled", "inputAttr", "isValid", "label", "labelMode", "mask", "maskChar", "maskInvalidMessage", "maskRules", "maxLength", "mode", "name", "placeholder", "readOnly", "rtlEnabled", "showClearButton", "showMaskMode", "spellcheck", "stylingMode", "tabIndex", "text", "useMaskedValue", "validationError", "validationErrors", "validationMessageMode", "validationMessagePosition", "validationStatus", "value", "valueChangeEvent", "visible", "width"], outputs: ["onChange", "onContentReady", "onCopy", "onCut", "onDisposing", "onEnterKey", "onFocusIn", "onFocusOut", "onInitialized", "onInput", "onKeyDown", "onKeyUp", "onOptionChanged", "onPaste", "onValueChanged", "accessKeyChange", "activeStateEnabledChange", "buttonsChange", "disabledChange", "elementAttrChange", "focusStateEnabledChange", "heightChange", "hintChange", "hoverStateEnabledChange", "inputAttrChange", "isValidChange", "labelChange", "labelModeChange", "maskChange", "maskCharChange", "maskInvalidMessageChange", "maskRulesChange", "maxLengthChange", "modeChange", "nameChange", "placeholderChange", "readOnlyChange", "rtlEnabledChange", "showClearButtonChange", "showMaskModeChange", "spellcheckChange", "stylingModeChange", "tabIndexChange", "textChange", "useMaskedValueChange", "validationErrorChange", "validationErrorsChange", "validationMessageModeChange", "validationMessagePositionChange", "validationStatusChange", "valueChange", "valueChangeEventChange", "visibleChange", "widthChange", "onBlur"] }] });
|
|
1817
1817
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: DynamicParamsComponent, decorators: [{
|
|
1818
1818
|
type: Component,
|
|
1819
1819
|
args: [{ selector: 'rs-dynamic-params', template: "<div class=\"dx-field\">\n <div class=\"dx-field-label\">\n <span>{{label || '\u52A8\u6001\u53C2\u6570'}}</span>\n <dx-button type=\"default\" stylingMode=\"text\" icon=\"coast-icon coast-icon-add\" (onClick)=\"add()\"></dx-button>\n </div>\n <div class=\"dx-field-value\">\n <div *ngFor=\"let param of params; let index = index\">\n <dx-text-box placeholder=\"\u53C2\u6570\u540D\" [(value)]=\"param.name\"></dx-text-box>\n <dx-text-box placeholder=\"\u53C2\u6570\u503C\" [(value)]=\"param.value\"></dx-text-box>\n <dx-button type=\"danger\" stylingMode=\"text\" icon=\"coast-icon coast-icon-close\"\n (onClick)=\"delete(index)\"></dx-button>\n </div>\n </div>\n</div>\n", styles: [":host .dx-field .dx-field-label{display:flex;align-items:center}:host .dx-field .dx-field-value div{display:flex;flex-flow:row nowrap}:host .dx-field .dx-field-value div dx-text-box{flex:1}\n"] }]
|
|
@@ -1899,6 +1899,103 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImpor
|
|
|
1899
1899
|
type: Injectable
|
|
1900
1900
|
}], ctorParameters: function () { return [{ type: i1$1.HttpClient }]; } });
|
|
1901
1901
|
|
|
1902
|
+
function notify_error(message) {
|
|
1903
|
+
notify({
|
|
1904
|
+
displayTime: 12000,
|
|
1905
|
+
message,
|
|
1906
|
+
type: 'error',
|
|
1907
|
+
width: '300px'
|
|
1908
|
+
}, {
|
|
1909
|
+
direction: 'up-push',
|
|
1910
|
+
position: 'bottom right'
|
|
1911
|
+
});
|
|
1912
|
+
}
|
|
1913
|
+
function notify_warning(message) {
|
|
1914
|
+
notify({
|
|
1915
|
+
displayTime: 8000,
|
|
1916
|
+
message,
|
|
1917
|
+
type: 'warning',
|
|
1918
|
+
width: '300px'
|
|
1919
|
+
}, {
|
|
1920
|
+
direction: 'up-push',
|
|
1921
|
+
position: 'bottom right'
|
|
1922
|
+
});
|
|
1923
|
+
}
|
|
1924
|
+
function notify_success(message) {
|
|
1925
|
+
notify({
|
|
1926
|
+
displayTime: 4000,
|
|
1927
|
+
message,
|
|
1928
|
+
type: 'success',
|
|
1929
|
+
width: '300px'
|
|
1930
|
+
}, {
|
|
1931
|
+
direction: 'down-push',
|
|
1932
|
+
position: 'top right'
|
|
1933
|
+
});
|
|
1934
|
+
}
|
|
1935
|
+
async function validate(validator) {
|
|
1936
|
+
return new Promise(resolve => {
|
|
1937
|
+
const validateResult = validator.instance.validate();
|
|
1938
|
+
if (!validateResult.isValid) {
|
|
1939
|
+
resolve(false);
|
|
1940
|
+
}
|
|
1941
|
+
if (validateResult.status === 'pending') {
|
|
1942
|
+
validateResult.complete?.then((result) => {
|
|
1943
|
+
if (result.isValid) {
|
|
1944
|
+
resolve(true);
|
|
1945
|
+
}
|
|
1946
|
+
else {
|
|
1947
|
+
resolve(false);
|
|
1948
|
+
}
|
|
1949
|
+
});
|
|
1950
|
+
}
|
|
1951
|
+
else {
|
|
1952
|
+
resolve(true);
|
|
1953
|
+
}
|
|
1954
|
+
});
|
|
1955
|
+
}
|
|
1956
|
+
async function validate_group(validationGroup) {
|
|
1957
|
+
const top = validationGroup.element.nativeElement;
|
|
1958
|
+
let sourceNode;
|
|
1959
|
+
const targetClassName = 'dx-field';
|
|
1960
|
+
const findTargetNode = (node) => {
|
|
1961
|
+
sourceNode = node;
|
|
1962
|
+
while (true) {
|
|
1963
|
+
if (node.classList.contains(targetClassName)) {
|
|
1964
|
+
return node;
|
|
1965
|
+
}
|
|
1966
|
+
else {
|
|
1967
|
+
node = node.parentElement;
|
|
1968
|
+
if (node === top) {
|
|
1969
|
+
return sourceNode;
|
|
1970
|
+
}
|
|
1971
|
+
}
|
|
1972
|
+
}
|
|
1973
|
+
};
|
|
1974
|
+
return new Promise(resolve => {
|
|
1975
|
+
const validateResult = validationGroup.instance.validate();
|
|
1976
|
+
if (!validateResult.isValid) {
|
|
1977
|
+
const brokenElement = (validateResult.brokenRules?.[0]).validator.element();
|
|
1978
|
+
findTargetNode(brokenElement).scrollIntoView();
|
|
1979
|
+
resolve(false);
|
|
1980
|
+
}
|
|
1981
|
+
if (validateResult.status === 'pending') {
|
|
1982
|
+
validateResult.complete?.then((result) => {
|
|
1983
|
+
if (result.isValid) {
|
|
1984
|
+
resolve(true);
|
|
1985
|
+
}
|
|
1986
|
+
else {
|
|
1987
|
+
const brokenElement = (result.brokenRules?.[0]).validator.element();
|
|
1988
|
+
findTargetNode(brokenElement).scrollIntoView();
|
|
1989
|
+
resolve(false);
|
|
1990
|
+
}
|
|
1991
|
+
});
|
|
1992
|
+
}
|
|
1993
|
+
else {
|
|
1994
|
+
resolve(true);
|
|
1995
|
+
}
|
|
1996
|
+
});
|
|
1997
|
+
}
|
|
1998
|
+
|
|
1902
1999
|
class FormComponent {
|
|
1903
2000
|
constructor(service) {
|
|
1904
2001
|
this.service = service;
|
|
@@ -1926,36 +2023,33 @@ class FormComponent {
|
|
|
1926
2023
|
}
|
|
1927
2024
|
});
|
|
1928
2025
|
}
|
|
1929
|
-
submitForm(
|
|
1930
|
-
|
|
1931
|
-
|
|
1932
|
-
|
|
1933
|
-
|
|
1934
|
-
|
|
1935
|
-
|
|
1936
|
-
|
|
1937
|
-
|
|
2026
|
+
submitForm() {
|
|
2027
|
+
this.validate().then(isValid => {
|
|
2028
|
+
if (isValid) {
|
|
2029
|
+
this.service.createOrUpdate(this.tenant, this.className, {
|
|
2030
|
+
oid: this.oid,
|
|
2031
|
+
...this.model
|
|
2032
|
+
}).subscribe(response => {
|
|
2033
|
+
this.submitCallback.emit(response);
|
|
2034
|
+
});
|
|
2035
|
+
}
|
|
2036
|
+
else {
|
|
2037
|
+
this.submitCallback.emit({ success: false });
|
|
2038
|
+
}
|
|
1938
2039
|
});
|
|
1939
2040
|
}
|
|
1940
2041
|
validate() {
|
|
1941
|
-
|
|
1942
|
-
if (!result.isValid) { // TODO 异步校验可能存在问题,需进一步确认
|
|
1943
|
-
this.submitCallback.emit({ success: false });
|
|
1944
|
-
// @ts-ignore
|
|
1945
|
-
result.brokenRules[0].validator.element().scrollIntoView();
|
|
1946
|
-
return false;
|
|
1947
|
-
}
|
|
1948
|
-
return true;
|
|
2042
|
+
return validate_group(this.validator);
|
|
1949
2043
|
}
|
|
1950
2044
|
submit() {
|
|
1951
2045
|
this.formSubmitter.instance.element().click();
|
|
1952
2046
|
}
|
|
1953
2047
|
}
|
|
1954
2048
|
FormComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: FormComponent, deps: [{ token: FormService }], target: i0.ɵɵFactoryTarget.Component });
|
|
1955
|
-
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", readonly: "readonly" }, outputs: { submitCallback: "submitCallback" }, providers: [FormService], viewQueries: [{ propertyName: "validator", first: true, predicate: DxValidationGroupComponent, descendants: true }, { propertyName: "formSubmitter", first: true, predicate: ["formSubmitter"], descendants: true }], ngImport: i0, template: "<dx-load-panel [position]=\"{my: 'center', at: 'center', of: form.parentElement?.parentElement || window}\"\n [showPane]=\"false\"\n [visible]=\"!model\"></dx-load-panel>\n<form #form>\n <dx-validation-group *ngIf=\"model\">\n <rs-box-container [config]=\"config\" [model]=\"model\" [readonly]=\"readonly\"></rs-box-container>\n <dx-button #formSubmitter [visible]=\"false\" (onClick)=\"submitForm(
|
|
2049
|
+
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", readonly: "readonly" }, outputs: { submitCallback: "submitCallback" }, providers: [FormService], viewQueries: [{ propertyName: "validator", first: true, predicate: DxValidationGroupComponent, descendants: true }, { propertyName: "formSubmitter", first: true, predicate: ["formSubmitter"], descendants: true }], ngImport: i0, template: "<dx-load-panel [position]=\"{my: 'center', at: 'center', of: form.parentElement?.parentElement || window}\"\n [showPane]=\"false\"\n [visible]=\"!model\"></dx-load-panel>\n<form #form>\n <dx-validation-group *ngIf=\"model\">\n <rs-box-container [config]=\"config\" [model]=\"model\" [readonly]=\"readonly\"></rs-box-container>\n <dx-button #formSubmitter [visible]=\"false\" (onClick)=\"submitForm()\"></dx-button>\n </dx-validation-group>\n</form>\n", styles: [":host{padding:12px 24px 20px}:host form{display:flex;flex-flow:row nowrap}:host form dx-validation-group{width:100%}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3$2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i3$2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i3$2.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "component", type: BoxContainerComponent, selector: "rs-box-container", inputs: ["editMode", "config", "model", "readonly", "tabViewContainerRef"] }, { 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"] }] });
|
|
1956
2050
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: FormComponent, decorators: [{
|
|
1957
2051
|
type: Component,
|
|
1958
|
-
args: [{ selector: 'rs-form', providers: [FormService], template: "<dx-load-panel [position]=\"{my: 'center', at: 'center', of: form.parentElement?.parentElement || window}\"\n [showPane]=\"false\"\n [visible]=\"!model\"></dx-load-panel>\n<form #form>\n <dx-validation-group *ngIf=\"model\">\n <rs-box-container [config]=\"config\" [model]=\"model\" [readonly]=\"readonly\"></rs-box-container>\n <dx-button #formSubmitter [visible]=\"false\" (onClick)=\"submitForm(
|
|
2052
|
+
args: [{ selector: 'rs-form', providers: [FormService], template: "<dx-load-panel [position]=\"{my: 'center', at: 'center', of: form.parentElement?.parentElement || window}\"\n [showPane]=\"false\"\n [visible]=\"!model\"></dx-load-panel>\n<form #form>\n <dx-validation-group *ngIf=\"model\">\n <rs-box-container [config]=\"config\" [model]=\"model\" [readonly]=\"readonly\"></rs-box-container>\n <dx-button #formSubmitter [visible]=\"false\" (onClick)=\"submitForm()\"></dx-button>\n </dx-validation-group>\n</form>\n", styles: [":host{padding:12px 24px 20px}:host form{display:flex;flex-flow:row nowrap}:host form dx-validation-group{width:100%}\n"] }]
|
|
1959
2053
|
}], ctorParameters: function () { return [{ type: FormService }]; }, propDecorators: { tenant: [{
|
|
1960
2054
|
type: Input
|
|
1961
2055
|
}], className: [{
|
|
@@ -2038,7 +2132,7 @@ class IconSelectorComponent {
|
|
|
2038
2132
|
}
|
|
2039
2133
|
}
|
|
2040
2134
|
IconSelectorComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: IconSelectorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
2041
|
-
IconSelectorComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.7", type: IconSelectorComponent, selector: "rs-icon-selector", inputs: { target: "target" }, outputs: { select: "select" }, viewQueries: [{ propertyName: "popover", first: true, predicate: ["iconSelector"], descendants: true, static: true }, { propertyName: "iconZoomOut", first: true, predicate: ["iconZoomOut"], descendants: true, static: true }], ngImport: i0, template: "<dx-popover #iconSelector\n maxWidth=\"280\"\n maxHeight=\"280\"\n [target]=\"target\"\n [showEvent]=\"{name: 'click'}\">\n <div *dxTemplate=\"let data of 'content'\">\n <ng-container *ngFor=\"let icon of iconList; let index=index\">\n <dx-button [icon]=\"'coast-icon ' + icon\" (onClick)=\"selectIcon(icon)\"\n (mouseenter)=\"zoomOut($event, icon)\" (mouseleave)=\"iconZoomOut.instance.hide()\"></dx-button>\n </ng-container>\n </div>\n</dx-popover>\n<dx-popover #iconZoomOut height=\"72px\" [enableBodyScroll]=\"false\">\n <div *dxTemplate=\"let data of 'content'\"\n style=\"display: flex; flex-flow: column nowrap; align-items: center; justify-content: center;\">\n <i [class]=\"hoverIcon\" style=\"font-size: 36px;\"></i>\n <span>{{hoverIcon?.substring(11)}}</span>\n </div>\n</dx-popover>\n", styles: [""], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type:
|
|
2135
|
+
IconSelectorComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.7", type: IconSelectorComponent, selector: "rs-icon-selector", inputs: { target: "target" }, outputs: { select: "select" }, viewQueries: [{ propertyName: "popover", first: true, predicate: ["iconSelector"], descendants: true, static: true }, { propertyName: "iconZoomOut", first: true, predicate: ["iconZoomOut"], descendants: true, static: true }], ngImport: i0, template: "<dx-popover #iconSelector\n maxWidth=\"280\"\n maxHeight=\"280\"\n [target]=\"target\"\n [showEvent]=\"{name: 'click'}\">\n <div *dxTemplate=\"let data of 'content'\">\n <ng-container *ngFor=\"let icon of iconList; let index=index\">\n <dx-button [icon]=\"'coast-icon ' + icon\" (onClick)=\"selectIcon(icon)\"\n (mouseenter)=\"zoomOut($event, icon)\" (mouseleave)=\"iconZoomOut.instance.hide()\"></dx-button>\n </ng-container>\n </div>\n</dx-popover>\n<dx-popover #iconZoomOut height=\"72px\" [enableBodyScroll]=\"false\">\n <div *dxTemplate=\"let data of 'content'\"\n style=\"display: flex; flex-flow: column nowrap; align-items: center; justify-content: center;\">\n <i [class]=\"hoverIcon\" style=\"font-size: 36px;\"></i>\n <span>{{hoverIcon?.substring(11)}}</span>\n </div>\n</dx-popover>\n", styles: [""], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { 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: i4$2.DxPopoverComponent, selector: "dx-popover", inputs: ["animation", "closeOnOutsideClick", "container", "contentTemplate", "copyRootClassesToWrapper", "deferRendering", "disabled", "elementAttr", "enableBodyScroll", "height", "hideEvent", "hideOnOutsideClick", "hideOnParentScroll", "hint", "hoverStateEnabled", "maxHeight", "maxWidth", "minHeight", "minWidth", "position", "rtlEnabled", "shading", "shadingColor", "showCloseButton", "showEvent", "showTitle", "target", "title", "titleTemplate", "toolbarItems", "visible", "width", "wrapperAttr"], outputs: ["onContentReady", "onDisposing", "onHidden", "onHiding", "onInitialized", "onOptionChanged", "onShowing", "onShown", "onTitleRendered", "animationChange", "closeOnOutsideClickChange", "containerChange", "contentTemplateChange", "copyRootClassesToWrapperChange", "deferRenderingChange", "disabledChange", "elementAttrChange", "enableBodyScrollChange", "heightChange", "hideEventChange", "hideOnOutsideClickChange", "hideOnParentScrollChange", "hintChange", "hoverStateEnabledChange", "maxHeightChange", "maxWidthChange", "minHeightChange", "minWidthChange", "positionChange", "rtlEnabledChange", "shadingChange", "shadingColorChange", "showCloseButtonChange", "showEventChange", "showTitleChange", "targetChange", "titleChange", "titleTemplateChange", "toolbarItemsChange", "visibleChange", "widthChange", "wrapperAttrChange"] }] });
|
|
2042
2136
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: IconSelectorComponent, decorators: [{
|
|
2043
2137
|
type: Component,
|
|
2044
2138
|
args: [{ selector: 'rs-icon-selector', template: "<dx-popover #iconSelector\n maxWidth=\"280\"\n maxHeight=\"280\"\n [target]=\"target\"\n [showEvent]=\"{name: 'click'}\">\n <div *dxTemplate=\"let data of 'content'\">\n <ng-container *ngFor=\"let icon of iconList; let index=index\">\n <dx-button [icon]=\"'coast-icon ' + icon\" (onClick)=\"selectIcon(icon)\"\n (mouseenter)=\"zoomOut($event, icon)\" (mouseleave)=\"iconZoomOut.instance.hide()\"></dx-button>\n </ng-container>\n </div>\n</dx-popover>\n<dx-popover #iconZoomOut height=\"72px\" [enableBodyScroll]=\"false\">\n <div *dxTemplate=\"let data of 'content'\"\n style=\"display: flex; flex-flow: column nowrap; align-items: center; justify-content: center;\">\n <i [class]=\"hoverIcon\" style=\"font-size: 36px;\"></i>\n <span>{{hoverIcon?.substring(11)}}</span>\n </div>\n</dx-popover>\n" }]
|
|
@@ -2265,43 +2359,174 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImpor
|
|
|
2265
2359
|
}]
|
|
2266
2360
|
}], ctorParameters: function () { return []; } });
|
|
2267
2361
|
|
|
2268
|
-
|
|
2269
|
-
notify({
|
|
2270
|
-
displayTime: 12000,
|
|
2271
|
-
message,
|
|
2272
|
-
type: 'error',
|
|
2273
|
-
width: '300px'
|
|
2274
|
-
}, {
|
|
2275
|
-
direction: 'up-push',
|
|
2276
|
-
position: 'bottom right'
|
|
2277
|
-
});
|
|
2362
|
+
class WebsocketModule {
|
|
2278
2363
|
}
|
|
2279
|
-
|
|
2280
|
-
|
|
2281
|
-
|
|
2282
|
-
|
|
2283
|
-
|
|
2284
|
-
|
|
2285
|
-
|
|
2286
|
-
|
|
2287
|
-
|
|
2288
|
-
|
|
2364
|
+
WebsocketModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: WebsocketModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
2365
|
+
WebsocketModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.7", ngImport: i0, type: WebsocketModule, imports: [CommonModule] });
|
|
2366
|
+
WebsocketModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: WebsocketModule, imports: [CommonModule] });
|
|
2367
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: WebsocketModule, decorators: [{
|
|
2368
|
+
type: NgModule,
|
|
2369
|
+
args: [{
|
|
2370
|
+
declarations: [],
|
|
2371
|
+
imports: [
|
|
2372
|
+
CommonModule
|
|
2373
|
+
]
|
|
2374
|
+
}]
|
|
2375
|
+
}] });
|
|
2376
|
+
|
|
2377
|
+
class WebsocketService {
|
|
2378
|
+
constructor() {
|
|
2379
|
+
this.connectSuccess = false; // websocket 连接成功
|
|
2380
|
+
this.period = 60 * 1000 * 10; // 10分钟检查一次
|
|
2381
|
+
this.reconnectFlag = false; // 重连
|
|
2382
|
+
this.reconnectPeriod = 5 * 1000; // 重连失败,则5秒钟重连一次
|
|
2383
|
+
this.serverMessageSubject = new Subject(); // subject对象,用于发送服务器消息
|
|
2384
|
+
// 实例化时开始连接服务器
|
|
2385
|
+
this.connect();
|
|
2386
|
+
// 进入程序就进行心跳检测,避免出现开始就连接中断,后续不重连
|
|
2387
|
+
this.heartCheckStart();
|
|
2388
|
+
// 将messageSubject存储到window对象上
|
|
2389
|
+
window.serverMessageSubject = this.serverMessageSubject;
|
|
2390
|
+
}
|
|
2391
|
+
/**
|
|
2392
|
+
* 创建新连接
|
|
2393
|
+
*/
|
|
2394
|
+
connect() {
|
|
2395
|
+
this.url = 'ws://' + window.location.host + '/ws?token=' + localStorage.getItem('token');
|
|
2396
|
+
// 创建websocket对象
|
|
2397
|
+
this.createWebSocket();
|
|
2398
|
+
}
|
|
2399
|
+
/**
|
|
2400
|
+
* 创建连接
|
|
2401
|
+
*/
|
|
2402
|
+
createWebSocket() {
|
|
2403
|
+
// 如果没有建立过连接,才建立连接并且添加时间监听
|
|
2404
|
+
this.webSocket = new WebSocket(this.url);
|
|
2405
|
+
// 建立连接成功
|
|
2406
|
+
this.webSocket.onopen = () => this.onOpen();
|
|
2407
|
+
// 接收到消息
|
|
2408
|
+
this.webSocket.onmessage = (e) => this.onMessage(e);
|
|
2409
|
+
// 连接关闭
|
|
2410
|
+
this.webSocket.onclose = (e) => this.onClose(e);
|
|
2411
|
+
// 异常
|
|
2412
|
+
this.webSocket.onerror = (e) => this.onError(e);
|
|
2413
|
+
}
|
|
2414
|
+
/**
|
|
2415
|
+
* 连接打开
|
|
2416
|
+
*/
|
|
2417
|
+
onOpen() {
|
|
2418
|
+
console.log('websocket 已连接');
|
|
2419
|
+
// 设置连接成功
|
|
2420
|
+
this.connectSuccess = true;
|
|
2421
|
+
// 如果是重连中
|
|
2422
|
+
if (this.reconnectFlag) {
|
|
2423
|
+
// 1.停止重连
|
|
2424
|
+
this.stopReconnect();
|
|
2425
|
+
// 2.重新开启心跳
|
|
2426
|
+
this.heartCheckStart();
|
|
2427
|
+
}
|
|
2428
|
+
}
|
|
2429
|
+
/**
|
|
2430
|
+
* 接受到消息
|
|
2431
|
+
*/
|
|
2432
|
+
onMessage(event) {
|
|
2433
|
+
// 将接受到的消息发布出去
|
|
2434
|
+
const message = JSON.parse(event.data);
|
|
2435
|
+
if (message.type === 'websocket') {
|
|
2436
|
+
sessionStorage.setItem('clientId', message.value);
|
|
2437
|
+
}
|
|
2438
|
+
else {
|
|
2439
|
+
this.serverMessageSubject.next(message);
|
|
2440
|
+
}
|
|
2441
|
+
}
|
|
2442
|
+
/**
|
|
2443
|
+
* 连接关闭
|
|
2444
|
+
*/
|
|
2445
|
+
onClose(e) {
|
|
2446
|
+
console.log('websocket 连接关闭', e);
|
|
2447
|
+
this.connectSuccess = false;
|
|
2448
|
+
this.webSocket.close();
|
|
2449
|
+
// 关闭时开始重连
|
|
2450
|
+
this.reconnect();
|
|
2451
|
+
}
|
|
2452
|
+
/**
|
|
2453
|
+
* 连接异常
|
|
2454
|
+
*/
|
|
2455
|
+
onError(e) {
|
|
2456
|
+
// 出现异常时一定会进onClose,所以只在onClose做一次重连动作
|
|
2457
|
+
console.log('websocket 连接异常', e);
|
|
2458
|
+
this.connectSuccess = false;
|
|
2459
|
+
}
|
|
2460
|
+
/**
|
|
2461
|
+
* 开始重新连接
|
|
2462
|
+
*/
|
|
2463
|
+
reconnect() {
|
|
2464
|
+
// 如果已重连,则直接return,避免重复连接
|
|
2465
|
+
if (this.connectSuccess) {
|
|
2466
|
+
this.stopReconnect();
|
|
2467
|
+
return;
|
|
2468
|
+
}
|
|
2469
|
+
// 如果正在连接中,则直接return,避免产生多个轮训事件
|
|
2470
|
+
if (this.reconnectFlag) {
|
|
2471
|
+
console.log('正在重连...');
|
|
2472
|
+
return;
|
|
2473
|
+
}
|
|
2474
|
+
// 开始重连
|
|
2475
|
+
this.reconnectFlag = true;
|
|
2476
|
+
// 如果没能成功连接,则定时重连
|
|
2477
|
+
this.reconnectSubscription = interval(this.reconnectPeriod).subscribe(async (val) => {
|
|
2478
|
+
console.log(`重连:${val + 1}次`);
|
|
2479
|
+
// 重新连接
|
|
2480
|
+
this.connect();
|
|
2481
|
+
});
|
|
2482
|
+
}
|
|
2483
|
+
/**
|
|
2484
|
+
* 停止重连
|
|
2485
|
+
*/
|
|
2486
|
+
stopReconnect() {
|
|
2487
|
+
// 连接标识置为false
|
|
2488
|
+
this.reconnectFlag = false;
|
|
2489
|
+
// 取消订阅
|
|
2490
|
+
if (typeof this.reconnectSubscription !== 'undefined' && this.reconnectSubscription != null) {
|
|
2491
|
+
this.reconnectSubscription.unsubscribe();
|
|
2492
|
+
}
|
|
2493
|
+
}
|
|
2494
|
+
/**
|
|
2495
|
+
* 开始心跳检测
|
|
2496
|
+
*/
|
|
2497
|
+
heartCheckStart() {
|
|
2498
|
+
this.serverTimeoutSubscription = interval(this.period).subscribe(() => {
|
|
2499
|
+
console.log('心跳检查');
|
|
2500
|
+
// 保持连接状态,重置下
|
|
2501
|
+
if (this.webSocket != null && this.webSocket.readyState === 1) {
|
|
2502
|
+
}
|
|
2503
|
+
else {
|
|
2504
|
+
// 停止心跳
|
|
2505
|
+
this.heartCheckStop();
|
|
2506
|
+
// 开始重连
|
|
2507
|
+
this.reconnect();
|
|
2508
|
+
}
|
|
2509
|
+
});
|
|
2510
|
+
}
|
|
2511
|
+
/**
|
|
2512
|
+
* 停止心跳检测
|
|
2513
|
+
*/
|
|
2514
|
+
heartCheckStop() {
|
|
2515
|
+
// 取消订阅停止心跳
|
|
2516
|
+
if (typeof this.serverTimeoutSubscription !== 'undefined' && this.serverTimeoutSubscription != null) {
|
|
2517
|
+
this.serverTimeoutSubscription.unsubscribe();
|
|
2518
|
+
}
|
|
2519
|
+
}
|
|
2289
2520
|
}
|
|
2290
|
-
|
|
2291
|
-
|
|
2292
|
-
|
|
2293
|
-
|
|
2294
|
-
|
|
2295
|
-
width: '300px'
|
|
2296
|
-
}, {
|
|
2297
|
-
direction: 'down-push',
|
|
2298
|
-
position: 'top right'
|
|
2299
|
-
});
|
|
2300
|
-
}
|
|
2521
|
+
WebsocketService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: WebsocketService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
2522
|
+
WebsocketService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: WebsocketService });
|
|
2523
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.7", ngImport: i0, type: WebsocketService, decorators: [{
|
|
2524
|
+
type: Injectable
|
|
2525
|
+
}], ctorParameters: function () { return []; } });
|
|
2301
2526
|
|
|
2302
2527
|
/**
|
|
2303
2528
|
* Generated bundle index. Do not edit.
|
|
2304
2529
|
*/
|
|
2305
2530
|
|
|
2306
|
-
export { BoxContainerComponent, BoxContainerModule, DataGridComponent, DataGridFactory, DataGridModule, DataGridService, DrawerComponent, DrawerModule, DrawerService, DynamicParamsComponent, DynamicParamsModule, FormComponent, FormModule, FormService, IconSelectorComponent, IconSelectorModule, InstanceLinkTemplateDirective, ItemConfigComponent, ItemStyleComponent, MasterDetailTemplateDirective, ModalComponent, ModalModule, ModalService, PluginManager, RowButtonsTemplateDirective, notify_error, notify_success, notify_warning };
|
|
2531
|
+
export { BoxContainerComponent, BoxContainerModule, DataGridComponent, DataGridFactory, DataGridModule, DataGridService, DrawerComponent, DrawerModule, DrawerService, DynamicParamsComponent, DynamicParamsModule, FormComponent, FormModule, FormService, IconSelectorComponent, IconSelectorModule, InstanceLinkTemplateDirective, ItemConfigComponent, ItemStyleComponent, MasterDetailTemplateDirective, ModalComponent, ModalModule, ModalService, PluginManager, RowButtonsTemplateDirective, WebsocketModule, WebsocketService, notify_error, notify_success, notify_warning, validate, validate_group };
|
|
2307
2532
|
//# sourceMappingURL=ngx-rs-ant.mjs.map
|