@bizdoc/core 3.2.4 → 3.2.7
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/assets/fonts/LICENSE +202 -0
- package/assets/fonts/material-symbols-outlined.woff2 +0 -0
- package/assets/fonts/material-symbols-rounded.woff2 +0 -0
- package/assets/fonts/material-symbols-sharp.woff2 +0 -0
- package/assets/themes/brown.min.css +1 -1
- package/assets/themes/dark.min.css +15 -1
- package/assets/themes/deep-purple-light-blue.min.css +1 -1
- package/assets/themes/deep-purple-teal.min.css +1 -1
- package/assets/themes/default.min.css +1 -1
- package/assets/themes/green.min.css +1 -1
- package/assets/themes/indigo-amber.min.css +1 -1
- package/assets/themes/indigo.min.css +1 -1
- package/esm2022/lib/admin/admin-menu.component.mjs +7 -8
- package/esm2022/lib/admin/architecture/designer-element.component.mjs +2 -2
- package/esm2022/lib/admin/architecture/designer.component.mjs +3 -3
- package/esm2022/lib/admin/architecture/elements/cube.component.mjs +11 -10
- package/esm2022/lib/admin/core/localized-string.component.mjs +2 -2
- package/esm2022/lib/admin/form/workflow/workflow.component.mjs +1 -1
- package/esm2022/lib/app.component.mjs +4 -6
- package/esm2022/lib/compose/form-selector/form-selector.sheet.mjs +12 -14
- package/esm2022/lib/compose/new-menu.component.mjs +3 -2
- package/esm2022/lib/compose/tag/tags.component.mjs +2 -2
- package/esm2022/lib/compose/trace/flow.component.mjs +115 -116
- package/esm2022/lib/core/configuration.mjs +5 -5
- package/esm2022/lib/core/document-factory.service.mjs +1 -1
- package/esm2022/lib/core/slots/slots.component.mjs +6 -3
- package/esm2022/lib/core/translations.mjs +7 -2
- package/esm2022/lib/cube/accum/accum.component.mjs +2 -2
- package/esm2022/lib/cube/chart/chart.component.mjs +2 -2
- package/esm2022/lib/cube/cube.service.mjs +18 -12
- package/esm2022/lib/cube/explore/explore-items.component.mjs +2 -2
- package/esm2022/lib/cube/matrix/table.component.mjs +7 -8
- package/esm2022/lib/cube/pivot/pivot.component.mjs +2 -2
- package/esm2022/lib/cube/spreadsheet/spreadsheet.component.mjs +2 -2
- package/esm2022/lib/dashboard/cube/compare.widget.mjs +2 -2
- package/esm2022/lib/dashboard/score/personal-score.widget.mjs +1 -1
- package/esm2022/lib/impersonate/impersonate.component.mjs +15 -6
- package/esm2022/lib/modules/diagram.module.mjs +3 -3
- package/esm2022/lib/options/options.component.mjs +1 -1
- package/esm2022/lib/reports/cube/usage-chart.component.mjs +2 -6
- package/fesm2022/bizdoc-core.mjs +193 -177
- package/fesm2022/bizdoc-core.mjs.map +1 -1
- package/lib/app.component.d.ts +0 -2
- package/lib/compose/form-selector/form-selector.sheet.d.ts +1 -3
- package/lib/compose/trace/flow.component.d.ts +1 -11
- package/lib/core/configuration.d.ts +4 -4
- package/lib/core/slots/slots.component.d.ts +1 -0
- package/lib/cube/cube.service.d.ts +2 -2
- package/lib/impersonate/impersonate.component.d.ts +4 -3
- package/package.json +2 -3
- package/assets/fonts/MaterialIcons-Outlined.woff2 +0 -0
- package/assets/fonts/MaterialIcons-Regular.eot +0 -0
- package/assets/fonts/MaterialIcons-Regular.ijmap +0 -1
- package/assets/fonts/MaterialIcons-Regular.svg +0 -2373
- package/assets/fonts/MaterialIcons-Regular.ttf +0 -0
- package/assets/fonts/MaterialIcons-Regular.woff +0 -0
- package/assets/fonts/MaterialIcons-Regular.woff2 +0 -0
- package/assets/fonts/MaterialIcons.css +0 -55
- package/assets/fonts/README.md +0 -9
- package/assets/fonts/material-icons.css +0 -36
package/fesm2022/bizdoc-core.mjs
CHANGED
@@ -31,7 +31,7 @@ import 'dayjs/locale/de';
|
|
31
31
|
import 'dayjs/locale/ru';
|
32
32
|
import 'dayjs/locale/ar';
|
33
33
|
import * as i5 from '@angular/common';
|
34
|
-
import { registerLocaleData,
|
34
|
+
import { registerLocaleData, CommonModule, formatPercent, formatCurrency, formatNumber } from '@angular/common';
|
35
35
|
import localeHe from '@angular/common/locales/he';
|
36
36
|
import localeAr from '@angular/common/locales/ar';
|
37
37
|
import localeRu from '@angular/common/locales/ru';
|
@@ -127,7 +127,7 @@ import EventEmitter$1 from 'events';
|
|
127
127
|
import * as i4$3 from '@ctrl/ngx-emoji-mart';
|
128
128
|
import { PickerModule } from '@ctrl/ngx-emoji-mart';
|
129
129
|
import { Diagram, UndoRedo, ConnectorBridging, ConnectorEditing, Snapping, SymbolPalette, BpmnDiagrams, PortVisibility, PortConstraints, DiagramConstraints, SelectorConstraints, NodeConstraints, ConnectorConstraints, DiagramTools, Connector, Node, ToolBase, ConnectionPointOrigin as ConnectionPointOrigin$1 } from '@syncfusion/ej2-diagrams';
|
130
|
-
import { DiagramAction, DiagramTools as DiagramTools$1, DiagramConstraints as DiagramConstraints$1, ConnectionPointOrigin, SnapConstraints, Diagram as Diagram$1, NodeConstraints as NodeConstraints$1, ComplexHierarchicalTreeService,
|
130
|
+
import { DiagramAction, DiagramTools as DiagramTools$1, DiagramConstraints as DiagramConstraints$1, ConnectionPointOrigin, SnapConstraints, Diagram as Diagram$1, NodeConstraints as NodeConstraints$1, ComplexHierarchicalTreeService, DiagramModule, SymbolPaletteModule, ConnectorBridgingService, LineRoutingService, BpmnDiagramsService, LayoutAnimationService, UndoRedoService, SnappingService, ConnectorEditingService, LineDistributionService, ComplexHierarchicalTree, BpmnDiagrams as BpmnDiagrams$1, DataBinding, LineDistribution, LineRouting, ConnectorBridging as ConnectorBridging$1, LayoutAnimation } from '@syncfusion/ej2-angular-diagrams';
|
131
131
|
import * as i5$3 from '@syncfusion/ej2-angular-schedule';
|
132
132
|
import { Schedule, Day, WorkWeek, Month, MonthAgenda, Agenda, Year, ScheduleModule, ExcelExportService as ExcelExportService$2, DayService, WorkWeekService, MonthService, MonthAgendaService, ICalendarExportService, AgendaService, YearService } from '@syncfusion/ej2-angular-schedule';
|
133
133
|
import * as i10$3 from '@syncfusion/ej2-angular-kanban';
|
@@ -163,10 +163,10 @@ var OpenPolicy;
|
|
163
163
|
OpenPolicy[OpenPolicy["Pinnable"] = 8] = "Pinnable";
|
164
164
|
OpenPolicy[OpenPolicy["Stretch"] = 16] = "Stretch";
|
165
165
|
OpenPolicy[OpenPolicy["Expandable"] = 32] = "Expandable";
|
166
|
-
OpenPolicy[OpenPolicy["
|
167
|
-
OpenPolicy[OpenPolicy["
|
168
|
-
OpenPolicy[OpenPolicy["
|
169
|
-
OpenPolicy[OpenPolicy["Dialog"] =
|
166
|
+
OpenPolicy[OpenPolicy["Dismissable"] = 64] = "Dismissable";
|
167
|
+
OpenPolicy[OpenPolicy["Toggle"] = 128] = "Toggle";
|
168
|
+
OpenPolicy[OpenPolicy["Tab"] = 320] = "Tab";
|
169
|
+
OpenPolicy[OpenPolicy["Dialog"] = 832] = "Dialog";
|
170
170
|
})(OpenPolicy || (OpenPolicy = {}));
|
171
171
|
const DEFAULT_POLICY = OpenPolicy.Pane;
|
172
172
|
|
@@ -1613,7 +1613,7 @@ const STRINGS = {
|
|
1613
1613
|
Preferences: 'Settings',
|
1614
1614
|
Tags: 'Tags',
|
1615
1615
|
Mention: 'Mention',
|
1616
|
-
TagsHint: 'Choose or type tags',
|
1616
|
+
TagsHint: 'Choose or type personal tags',
|
1617
1617
|
ContinueEditing: 'Continue editing',
|
1618
1618
|
Close: 'Close',
|
1619
1619
|
View: 'View',
|
@@ -1967,6 +1967,10 @@ const STRINGS = {
|
|
1967
1967
|
MaxLengthErr: 'Maximum <strong>{0}</strong> length',
|
1968
1968
|
},
|
1969
1969
|
'he': {
|
1970
|
+
SettingThingsUp: 'אוסף נתונים',
|
1971
|
+
PleaseWait: 'אנא המתן/י',
|
1972
|
+
Enable: 'אפשר/י',
|
1973
|
+
Disable: 'הסתר/י',
|
1970
1974
|
Insights: 'תובנות',
|
1971
1975
|
CheckOut: 'הורד/י',
|
1972
1976
|
CheckIn: 'העלה/י',
|
@@ -2517,6 +2521,7 @@ const STRINGS = {
|
|
2517
2521
|
Copyright: '© מודינג',
|
2518
2522
|
Map: 'מפה',
|
2519
2523
|
Watched: 'נצפה {0}',
|
2524
|
+
LicencedTo: 'רשיון ל-<strong>{0}</strong>',
|
2520
2525
|
NothingHere: 'אין נתונים נוספים'
|
2521
2526
|
}
|
2522
2527
|
};
|
@@ -4075,7 +4080,7 @@ class LocalizedStringComponent {
|
|
4075
4080
|
const currentLang = this._session.language;
|
4076
4081
|
for (let lang of this._session.languages) {
|
4077
4082
|
let val = this.multilingual ? this._value[lang] :
|
4078
|
-
lang === currentLang ? this._value : null, ctrl = this._fb.control(val, this.required ? Validators.required : null);
|
4083
|
+
lang === currentLang ? this._value : null, ctrl = this._fb.control(val, this.required && lang === currentLang ? Validators.required : null);
|
4079
4084
|
this.group.addControl(lang, ctrl);
|
4080
4085
|
if (lang === currentLang)
|
4081
4086
|
this.control = ctrl;
|
@@ -6137,16 +6142,23 @@ class CubeService {
|
|
6137
6142
|
this._cacheOr = (name, fn) => this._cache[name] || (this._cache[name] = fn().pipe(shareReplay()));
|
6138
6143
|
_config && _config.currencyCode && setCurrencyCode(_config.currencyCode);
|
6139
6144
|
}
|
6140
|
-
|
6141
|
-
|
6142
|
-
|
6143
|
-
|
6144
|
-
|
6145
|
-
|
6146
|
-
|
6147
|
-
|
6148
|
-
|
6149
|
-
|
6145
|
+
getCurrencySymbol(currencyCode) {
|
6146
|
+
return Intl.NumberFormat(this._session.locale, { style: 'currency', currency: currencyCode }).
|
6147
|
+
formatToParts().
|
6148
|
+
find(part => part.type === 'currency').value;
|
6149
|
+
}
|
6150
|
+
getNumberFormat(currencyCode) {
|
6151
|
+
if (!currencyCode)
|
6152
|
+
currencyCode = this._config?.currencyCode;
|
6153
|
+
return Intl.NumberFormat(this._session.locale, {
|
6154
|
+
maximumFractionDigits: this.fractionDigits,
|
6155
|
+
style: currencyCode ? 'currency' : 'decimal', currency: currencyCode
|
6156
|
+
}).
|
6157
|
+
formatToParts(99999999999.99999).
|
6158
|
+
map(e => e.type === 'integer' ? '###'.substring(0, e.value.length - 1) :
|
6159
|
+
e.type === 'fraction' ? '00000'.substring(0, e.value.length - 1) :
|
6160
|
+
e.value).
|
6161
|
+
join('');
|
6150
6162
|
}
|
6151
6163
|
get currencyCode() {
|
6152
6164
|
const { currencyCode } = this._config;
|
@@ -9524,11 +9536,11 @@ class TagsComponent {
|
|
9524
9536
|
this._destroy.complete();
|
9525
9537
|
}
|
9526
9538
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: TagsComponent, deps: [{ token: POPUP_DATA }, { token: MailboxService }, { token: SessionService }], target: i0.ɵɵFactoryTarget.Component }); }
|
9527
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.5", type: TagsComponent, selector: "ng-component", viewQueries: [{ propertyName: "inputElement", first: true, predicate: ["input"], descendants: true, static: true }, { propertyName: "auto", first: true, predicate: ["auto"], descendants: true, static: true }], ngImport: i0, template: "<mat-form-field floatLabel=\"never\" subscriptSizing=\"dynamic\">\r\n <mat-chip-grid #chipList [attr.aria-label]=\"'Tags'|translate\">\r\n @for (item of tags; track item) {\r\n <mat-chip\r\n [removable]=\"true\" (removed)=\"remove(item)\">\r\n {{item}}\r\n <mat-icon matChipRemove>cancel</mat-icon>\r\n </mat-chip>\r\n }\r\n </mat-chip-grid>\r\n <input [placeholder]=\"'TagsHint'|translate\"\r\n [matAutocomplete]=\"auto\"\r\n [matChipInputFor]=\"chipList\"\r\n [formControl]=\"control\"\r\n #input autocomplete=\"off\"\r\n [matChipInputSeparatorKeyCodes]=\"separatorKeysCodes\"\r\n [matChipInputAddOnBlur]=\"true\"\r\n (matChipInputTokenEnd)=\"add($event)\">\r\n <mat-autocomplete #auto=\"matAutocomplete\" (optionSelected)=\"selected($event)\">\r\n @for (item of options | async; track item) {\r\n <mat-option [value]=\"item\">\r\n {{item}}\r\n </mat-option>\r\n }\r\n </mat-autocomplete>\r\n </mat-form-field>\r\n", styles: [":host{padding:8px}\n"], dependencies: [{ kind: "directive", type: i1$3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1$3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$3.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: i4.MatChip, selector: "mat-basic-chip, [mat-basic-chip], mat-chip, [mat-chip]", inputs: ["role", "id", "aria-label", "aria-description", "value", "color", "removable", "highlighted", "disableRipple", "disabled"], outputs: ["removed", "destroyed"], exportAs: ["matChip"] }, { kind: "component", type: i4.MatChipGrid, selector: "mat-chip-grid", inputs: ["disabled", "placeholder", "required", "value", "errorStateMatcher"], outputs: ["change", "valueChange"] }, { kind: "directive", type: i4.MatChipInput, selector: "input[matChipInputFor]", inputs: ["matChipInputFor", "matChipInputAddOnBlur", "matChipInputSeparatorKeyCodes", "placeholder", "id", "disabled"], outputs: ["matChipInputTokenEnd"], exportAs: ["matChipInput", "matChipInputFor"] }, { kind: "directive", type: i4.MatChipRemove, selector: "[matChipRemove]" }, { kind: "component", type: i4$1.MatAutocomplete, selector: "mat-autocomplete", inputs: ["aria-label", "aria-labelledby", "displayWith", "autoActiveFirstOption", "autoSelectActiveOption", "requireSelection", "panelWidth", "disableRipple", "class", "hideSingleSelectionIndicator"], outputs: ["optionSelected", "opened", "closed", "optionActivated"], exportAs: ["matAutocomplete"] }, { kind: "component", type: i2$5.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "directive", type: i4$1.MatAutocompleteTrigger, selector: "input[matAutocomplete], textarea[matAutocomplete]", inputs: ["matAutocomplete", "matAutocompletePosition", "matAutocompleteConnectedTo", "autocomplete", "matAutocompleteDisabled"], exportAs: ["matAutocompleteTrigger"] }, { kind: "component", type: i3$1.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "component", type: i10.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "pipe", type: i5.AsyncPipe, name: "async" }, { kind: "pipe", type: TranslatePipe, name: "translate" }] }); }
|
9539
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.5", type: TagsComponent, selector: "ng-component", viewQueries: [{ propertyName: "inputElement", first: true, predicate: ["input"], descendants: true, static: true }, { propertyName: "auto", first: true, predicate: ["auto"], descendants: true, static: true }], ngImport: i0, template: "<mat-form-field floatLabel=\"never\" subscriptSizing=\"dynamic\">\r\n <mat-chip-grid #chipList [attr.aria-label]=\"'Tags'|translate\">\r\n @for (item of tags; track item) {\r\n <mat-chip\r\n [removable]=\"true\" (removed)=\"remove(item)\">\r\n {{item}}\r\n <mat-icon matChipRemove>cancel</mat-icon>\r\n </mat-chip>\r\n }\r\n </mat-chip-grid>\r\n <input [placeholder]=\"'TagsHint'|translate\"\r\n [matAutocomplete]=\"auto\"\r\n [matChipInputFor]=\"chipList\"\r\n [formControl]=\"control\"\r\n #input autocomplete=\"off\"\r\n [matChipInputSeparatorKeyCodes]=\"separatorKeysCodes\"\r\n [matChipInputAddOnBlur]=\"true\"\r\n (matChipInputTokenEnd)=\"add($event)\">\r\n <mat-autocomplete #auto=\"matAutocomplete\" (optionSelected)=\"selected($event)\">\r\n @for (item of options | async; track item) {\r\n <mat-option [value]=\"item\">\r\n {{item}}\r\n </mat-option>\r\n }\r\n </mat-autocomplete>\r\n </mat-form-field>\r\n", styles: [":host{min-width:260px;padding:8px}\n"], dependencies: [{ kind: "directive", type: i1$3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1$3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$3.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: i4.MatChip, selector: "mat-basic-chip, [mat-basic-chip], mat-chip, [mat-chip]", inputs: ["role", "id", "aria-label", "aria-description", "value", "color", "removable", "highlighted", "disableRipple", "disabled"], outputs: ["removed", "destroyed"], exportAs: ["matChip"] }, { kind: "component", type: i4.MatChipGrid, selector: "mat-chip-grid", inputs: ["disabled", "placeholder", "required", "value", "errorStateMatcher"], outputs: ["change", "valueChange"] }, { kind: "directive", type: i4.MatChipInput, selector: "input[matChipInputFor]", inputs: ["matChipInputFor", "matChipInputAddOnBlur", "matChipInputSeparatorKeyCodes", "placeholder", "id", "disabled"], outputs: ["matChipInputTokenEnd"], exportAs: ["matChipInput", "matChipInputFor"] }, { kind: "directive", type: i4.MatChipRemove, selector: "[matChipRemove]" }, { kind: "component", type: i4$1.MatAutocomplete, selector: "mat-autocomplete", inputs: ["aria-label", "aria-labelledby", "displayWith", "autoActiveFirstOption", "autoSelectActiveOption", "requireSelection", "panelWidth", "disableRipple", "class", "hideSingleSelectionIndicator"], outputs: ["optionSelected", "opened", "closed", "optionActivated"], exportAs: ["matAutocomplete"] }, { kind: "component", type: i2$5.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "directive", type: i4$1.MatAutocompleteTrigger, selector: "input[matAutocomplete], textarea[matAutocomplete]", inputs: ["matAutocomplete", "matAutocompletePosition", "matAutocompleteConnectedTo", "autocomplete", "matAutocompleteDisabled"], exportAs: ["matAutocompleteTrigger"] }, { kind: "component", type: i3$1.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "component", type: i10.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "pipe", type: i5.AsyncPipe, name: "async" }, { kind: "pipe", type: TranslatePipe, name: "translate" }] }); }
|
9528
9540
|
}
|
9529
9541
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: TagsComponent, decorators: [{
|
9530
9542
|
type: Component,
|
9531
|
-
args: [{ template: "<mat-form-field floatLabel=\"never\" subscriptSizing=\"dynamic\">\r\n <mat-chip-grid #chipList [attr.aria-label]=\"'Tags'|translate\">\r\n @for (item of tags; track item) {\r\n <mat-chip\r\n [removable]=\"true\" (removed)=\"remove(item)\">\r\n {{item}}\r\n <mat-icon matChipRemove>cancel</mat-icon>\r\n </mat-chip>\r\n }\r\n </mat-chip-grid>\r\n <input [placeholder]=\"'TagsHint'|translate\"\r\n [matAutocomplete]=\"auto\"\r\n [matChipInputFor]=\"chipList\"\r\n [formControl]=\"control\"\r\n #input autocomplete=\"off\"\r\n [matChipInputSeparatorKeyCodes]=\"separatorKeysCodes\"\r\n [matChipInputAddOnBlur]=\"true\"\r\n (matChipInputTokenEnd)=\"add($event)\">\r\n <mat-autocomplete #auto=\"matAutocomplete\" (optionSelected)=\"selected($event)\">\r\n @for (item of options | async; track item) {\r\n <mat-option [value]=\"item\">\r\n {{item}}\r\n </mat-option>\r\n }\r\n </mat-autocomplete>\r\n </mat-form-field>\r\n", styles: [":host{padding:8px}\n"] }]
|
9543
|
+
args: [{ template: "<mat-form-field floatLabel=\"never\" subscriptSizing=\"dynamic\">\r\n <mat-chip-grid #chipList [attr.aria-label]=\"'Tags'|translate\">\r\n @for (item of tags; track item) {\r\n <mat-chip\r\n [removable]=\"true\" (removed)=\"remove(item)\">\r\n {{item}}\r\n <mat-icon matChipRemove>cancel</mat-icon>\r\n </mat-chip>\r\n }\r\n </mat-chip-grid>\r\n <input [placeholder]=\"'TagsHint'|translate\"\r\n [matAutocomplete]=\"auto\"\r\n [matChipInputFor]=\"chipList\"\r\n [formControl]=\"control\"\r\n #input autocomplete=\"off\"\r\n [matChipInputSeparatorKeyCodes]=\"separatorKeysCodes\"\r\n [matChipInputAddOnBlur]=\"true\"\r\n (matChipInputTokenEnd)=\"add($event)\">\r\n <mat-autocomplete #auto=\"matAutocomplete\" (optionSelected)=\"selected($event)\">\r\n @for (item of options | async; track item) {\r\n <mat-option [value]=\"item\">\r\n {{item}}\r\n </mat-option>\r\n }\r\n </mat-autocomplete>\r\n </mat-form-field>\r\n", styles: [":host{min-width:260px;padding:8px}\n"] }]
|
9532
9544
|
}], ctorParameters: () => [{ type: undefined, decorators: [{
|
9533
9545
|
type: Inject,
|
9534
9546
|
args: [POPUP_DATA]
|
@@ -10496,7 +10508,7 @@ class CubeAccumulationChartComponent {
|
|
10496
10508
|
}, this._elementRef.nativeElement);
|
10497
10509
|
}
|
10498
10510
|
exportToExcel(title) {
|
10499
|
-
const numberFormat = this._service.
|
10511
|
+
const numberFormat = this._service.getNumberFormat(this._cube.currencyCode), rows = [{
|
10500
10512
|
index: 1,
|
10501
10513
|
cells: this._xAxis.map((x, i) => ({
|
10502
10514
|
index: i + 1,
|
@@ -10818,7 +10830,7 @@ class CubeChartComponent {
|
|
10818
10830
|
this.explore.emit({ axes, index });
|
10819
10831
|
}
|
10820
10832
|
exportToExcel(title) {
|
10821
|
-
const numberFormat = this._service.
|
10833
|
+
const numberFormat = this._service.getNumberFormat(this._cube.currencyCode), worksheets = [];
|
10822
10834
|
this._data.forEach(s => {
|
10823
10835
|
const cells = this._xAxis.map((x, i) => ({
|
10824
10836
|
index: i + 1,
|
@@ -11512,7 +11524,7 @@ class CubePivotComponent {
|
|
11512
11524
|
this.pivot.excelExport({ fileName: `${title}.xlsx`, hierarchyExportMode: 'All', });
|
11513
11525
|
}
|
11514
11526
|
_exportExcel(title) {
|
11515
|
-
const numberFormat = this._service.
|
11527
|
+
const numberFormat = this._service.getNumberFormat(this._cube.currencyCode), columns = this._cube.axes.filter(a => this._xAxis.indexOf(a.name) > -1 ||
|
11516
11528
|
this._series.indexOf(a.name) > -1), rows = [{
|
11517
11529
|
index: 1,
|
11518
11530
|
cells: columns.map((c, i) => ({
|
@@ -11974,7 +11986,7 @@ class CubeSpreadsheetComponent {
|
|
11974
11986
|
}
|
11975
11987
|
}
|
11976
11988
|
exportToExcel(title) {
|
11977
|
-
const { rows } = this.spreadsheet.sheets[0], numberFormat = this._service.
|
11989
|
+
const { rows } = this.spreadsheet.sheets[0], numberFormat = this._service.getNumberFormat(this._cube.currencyCode), book = new Workbook({
|
11978
11990
|
worksheets: [
|
11979
11991
|
{
|
11980
11992
|
enableRtl: this._session.inverse,
|
@@ -13687,7 +13699,7 @@ class ExploreItemsComponent {
|
|
13687
13699
|
this.explore.emit({ keys, template: this._template });
|
13688
13700
|
}
|
13689
13701
|
exportExcel() {
|
13690
|
-
const numberFormat = this._service.
|
13702
|
+
const numberFormat = this._service.getNumberFormat(this._cube.currencyCode), columns = this.columns.filter(c => !c.flags || c.flags.indexOf('Hidden') < 0), rows = [{
|
13691
13703
|
index: 1,
|
13692
13704
|
cells: columns.map((c, i) => ({
|
13693
13705
|
index: i + 1, value: c.label || c.name,
|
@@ -15132,9 +15144,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImpor
|
|
15132
15144
|
args: [{ name: 'amDurationFormat' }]
|
15133
15145
|
}], ctorParameters: () => [{ type: TranslateService }] });
|
15134
15146
|
|
15135
|
-
const
|
15136
|
-
//ELLIPSIS = 'M 650, 150 a 75,150 0 1,0 1,0 z',
|
15137
|
-
FYI_PATH = 'M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm1 15h-2v-6h2v6zm0-8h-2V7h2v2z', ESCALATED_PATH = 'M22 5.72l-4.6-3.86-1.29 1.53 4.6 3.86L22 5.72zM7.88 3.39L6.6 1.86 2 5.71l1.29 1.53 4.59-3.85zM12.5 8H11v6l4.75 2.85.75-1.23-4-2.37V8zM12 4c-4.97 0-9 4.03-9 9s4.02 9 9 9c4.97 0 9-4.03 9-9s-4.03-9-9-9zm0 16c-3.87 0-7-3.13-7-7s3.13-7 7-7 7 3.13 7 7-3.13 7-7 7z', WARNNING_PATH$1 = 'M 13.763735,1.8433735 H 6.3037349 l -5.27,5.27 v 7.4599995 l 5.27,5.27 h 7.4600001 l 5.27,-5.27 V 7.1133735 Z m -3.73,14.2999995 c -0.7200001,0 -1.3000001,-0.58 -1.3000001,-1.3 0,-0.72 0.58,-1.3 1.3000001,-1.3 0.72,0 1.3,0.58 1.3,1.3 0,0.72 -0.58,1.3 -1.3,1.3 z m 1,-4.3 H 9.0337349 V 5.8433735 h 2.0000001 z';
|
15147
|
+
const FYI_PATH = 'M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm1 15h-2v-6h2v6zm0-8h-2V7h2v2z', ESCALATED_PATH = 'M22 5.72l-4.6-3.86-1.29 1.53 4.6 3.86L22 5.72zM7.88 3.39L6.6 1.86 2 5.71l1.29 1.53 4.59-3.85zM12.5 8H11v6l4.75 2.85.75-1.23-4-2.37V8zM12 4c-4.97 0-9 4.03-9 9s4.02 9 9 9c4.97 0 9-4.03 9-9s-4.03-9-9-9zm0 16c-3.87 0-7-3.13-7-7s3.13-7 7-7 7 3.13 7 7-3.13 7-7 7z', WARNNING_PATH$1 = 'M 13.763735,1.8433735 H 6.3037349 l -5.27,5.27 v 7.4599995 l 5.27,5.27 h 7.4600001 l 5.27,-5.27 V 7.1133735 Z m -3.73,14.2999995 c -0.7200001,0 -1.3000001,-0.58 -1.3000001,-1.3 0,-0.72 0.58,-1.3 1.3000001,-1.3 0.72,0 1.3,0.58 1.3,1.3 0,0.72 -0.58,1.3 -1.3,1.3 z m 1,-4.3 H 9.0337349 V 5.8433735 h 2.0000001 z';
|
15138
15148
|
/** flow-view component*/
|
15139
15149
|
class FlowViewComponent extends TraceBase {
|
15140
15150
|
/** workflow-view ctor */
|
@@ -15146,9 +15156,9 @@ class FlowViewComponent extends TraceBase {
|
|
15146
15156
|
this._elementRef = _elementRef;
|
15147
15157
|
this.connectorType = 'Orthogonal';
|
15148
15158
|
this.tool = DiagramTools$1.ZoomPan;
|
15149
|
-
this.diagramConstraints = DiagramConstraints$1.
|
15150
|
-
DiagramConstraints$1.Pan |
|
15159
|
+
this.diagramConstraints = DiagramConstraints$1.Pan |
|
15151
15160
|
DiagramConstraints$1.LineRouting |
|
15161
|
+
DiagramConstraints$1.Bridging |
|
15152
15162
|
DiagramConstraints$1.Zoom;
|
15153
15163
|
this.enableRtl = this._session.inverse;
|
15154
15164
|
this.layout = {
|
@@ -15159,7 +15169,7 @@ class FlowViewComponent extends TraceBase {
|
|
15159
15169
|
enableRouting: true,
|
15160
15170
|
verticalSpacing: 50,
|
15161
15171
|
margin: { top: 4 },
|
15162
|
-
//arrangement:
|
15172
|
+
//arrangement: ChildArrangement.Nonlinear,
|
15163
15173
|
//enableAnimation: true,
|
15164
15174
|
//root: 'start',
|
15165
15175
|
orientation: this.enableRtl ? 'RightToLeft' : 'LeftToRight',
|
@@ -15200,10 +15210,9 @@ class FlowViewComponent extends TraceBase {
|
|
15200
15210
|
scrollSettings: this.scrollSettings,
|
15201
15211
|
snapSettings: this.snapSettings,
|
15202
15212
|
constraints: this.diagramConstraints,
|
15203
|
-
getConnectorDefaults: this.connDefaults.bind(this),
|
15204
|
-
getNodeDefaults: this.nodeDefaults.bind(this),
|
15205
15213
|
}, this._elementRef.nativeElement);
|
15206
15214
|
this.diagram.doLayout();
|
15215
|
+
this.diagram.fitToPage({ margin: { top: 10 } });
|
15207
15216
|
indicators.forEach((n, i) => {
|
15208
15217
|
const parent = this.diagram.getNodeObject(n.addInfo.parentId);
|
15209
15218
|
n.offsetX = parent.offsetX + (this.enableRtl ? -25 : 25);
|
@@ -15211,7 +15220,6 @@ class FlowViewComponent extends TraceBase {
|
|
15211
15220
|
n.zIndex = 1000 + i;
|
15212
15221
|
this.diagram.add(n);
|
15213
15222
|
});
|
15214
|
-
this.diagram.fitToPage({ margin: { top: 10 } });
|
15215
15223
|
interval(60000).pipe(takeUntil(this._destroy)).subscribe(this._refresh.bind(this));
|
15216
15224
|
}
|
15217
15225
|
_refresh() {
|
@@ -15234,63 +15242,12 @@ class FlowViewComponent extends TraceBase {
|
|
15234
15242
|
n.addInfo.tooltip.estimatedTime = this._timeEstimate(node),
|
15235
15243
|
n.tooltip.content = this._tooltip(n.addInfo.tooltip);
|
15236
15244
|
});
|
15237
|
-
// this.diagram.dataBind();
|
15238
|
-
}
|
15239
|
-
/**
|
15240
|
-
*
|
15241
|
-
* @param obj
|
15242
|
-
*/
|
15243
|
-
nodeDefaults(obj) {
|
15244
|
-
const { recipient, node, indicator } = obj.addInfo;
|
15245
|
-
if (indicator) {
|
15246
|
-
obj.width = obj.height = 15;
|
15247
|
-
obj.style.strokeWidth = 0;
|
15248
|
-
}
|
15249
|
-
else {
|
15250
|
-
obj.width = obj.height = 50;
|
15251
|
-
if (obj.annotations && obj.annotations.length)
|
15252
|
-
obj.annotations[0].style.color = this._session.theme.dark ? 'white' : 'black';
|
15253
|
-
if (node && node.estimate) {
|
15254
|
-
obj.style.strokeColor = this._session.theme.dark ? 'white' : 'black';
|
15255
|
-
obj.style.opacity = obj.annotations[0].style.opacity = .6;
|
15256
|
-
obj.style.fill = 'transparent';
|
15257
|
-
}
|
15258
|
-
else {
|
15259
|
-
obj.style.strokeColor = this._accentColor;
|
15260
|
-
obj.style.fill = recipient && recipient.pending ?
|
15261
|
-
this._session.getAccent(recipient.userId === this._session.userId ? 500 : 400) : 'transparent';
|
15262
|
-
}
|
15263
|
-
obj.style.strokeWidth = 2;
|
15264
|
-
}
|
15265
|
-
return obj;
|
15266
|
-
}
|
15267
|
-
/**
|
15268
|
-
*
|
15269
|
-
* @param connector
|
15270
|
-
*/
|
15271
|
-
connDefaults(connector) {
|
15272
|
-
connector.type = this.connectorType;
|
15273
|
-
connector.cornerRadius = 6;
|
15274
|
-
connector.targetDecorator.height = 7;
|
15275
|
-
connector.targetDecorator.width = 7;
|
15276
|
-
if (connector.addInfo.estimate) {
|
15277
|
-
connector.style.strokeDashArray = '2 2';
|
15278
|
-
connector.style.strokeColor =
|
15279
|
-
connector.targetDecorator.style.fill =
|
15280
|
-
connector.targetDecorator.style.strokeColor =
|
15281
|
-
this._session.theme.dark ? 'white' : 'black';
|
15282
|
-
connector.style.strokeWidth = 1;
|
15283
|
-
}
|
15284
|
-
else {
|
15285
|
-
connector.style.strokeColor = connector.targetDecorator.style.strokeColor = connector.targetDecorator.style.fill = this._accentColor;
|
15286
|
-
connector.style.strokeWidth = 2;
|
15287
|
-
}
|
15288
|
-
connector.targetDecorator.shape = 'None';
|
15289
15245
|
}
|
15290
15246
|
/** */
|
15291
15247
|
async _prepare() {
|
15292
15248
|
const { connectors: dconnectors, nodes: dnodes } = this.model.workflow;
|
15293
15249
|
const indicators = [], connectors = [], nodes = [];
|
15250
|
+
const color = this._session.theme.dark ? 'white' : 'black';
|
15294
15251
|
let zIndex = 500;
|
15295
15252
|
for (let node of dnodes) {
|
15296
15253
|
if (nodes.find(n => n.id == node.id))
|
@@ -15320,10 +15277,18 @@ class FlowViewComponent extends TraceBase {
|
|
15320
15277
|
} while (r < recipients.length);
|
15321
15278
|
for (r = 0; r < recipients.length; r++) {
|
15322
15279
|
let recipient = recipients[r];
|
15323
|
-
const { annotation, tooltip } = await this._note(node, recipient);
|
15324
|
-
|
15325
|
-
|
15326
|
-
|
15280
|
+
const { annotation, tooltip } = await this._note(node, recipient), content = this._tooltip(tooltip), id = r === 0 ? node.id : node.id + r.toString();
|
15281
|
+
nodes.push({
|
15282
|
+
id,
|
15283
|
+
width: 50,
|
15284
|
+
height: 50,
|
15285
|
+
style: {
|
15286
|
+
strokeWidth: 2,
|
15287
|
+
opacity: node.estimate ? .6 : 1,
|
15288
|
+
strokeColor: node.estimate ? color : this._accentColor,
|
15289
|
+
fill: !node.estimate && recipient.pending ?
|
15290
|
+
this._session.getAccent(recipient.userId === this._session.userId ? 500 : 400) : 'transparent'
|
15291
|
+
},
|
15327
15292
|
shape: this._configuration[node.type].shape,
|
15328
15293
|
zIndex: zIndex++,
|
15329
15294
|
tooltip: {
|
@@ -15339,6 +15304,10 @@ class FlowViewComponent extends TraceBase {
|
|
15339
15304
|
node
|
15340
15305
|
},
|
15341
15306
|
annotations: [{
|
15307
|
+
style: {
|
15308
|
+
color: color,
|
15309
|
+
opacity: node.estimate ? .6 : 1,
|
15310
|
+
},
|
15342
15311
|
content: annotation,
|
15343
15312
|
margin: { top: 4 },
|
15344
15313
|
verticalAlignment: 'Top',
|
@@ -15347,74 +15316,84 @@ class FlowViewComponent extends TraceBase {
|
|
15347
15316
|
x: .5
|
15348
15317
|
}
|
15349
15318
|
}]
|
15350
|
-
};
|
15351
|
-
nodes.push(nod);
|
15319
|
+
});
|
15352
15320
|
// add action indicator
|
15353
15321
|
if (recipient.action) {
|
15354
15322
|
const action = this._session.profile.actions.find(a => a.name === recipient.action);
|
15355
|
-
|
15356
|
-
|
15357
|
-
id:
|
15323
|
+
action.shape && !recipient.pending &&
|
15324
|
+
indicators.push({
|
15325
|
+
id: id + 'action',
|
15326
|
+
width: 15,
|
15327
|
+
height: 15,
|
15358
15328
|
shape: {
|
15359
15329
|
type: 'Path',
|
15360
15330
|
data: action.shape,
|
15361
15331
|
align: this.enableRtl ? 'XMinYMax' : 'XMaxYMax',
|
15362
15332
|
},
|
15363
15333
|
style: {
|
15334
|
+
strokeWidth: 0,
|
15364
15335
|
fill: action.color || this._session.getAccent(900)
|
15365
15336
|
},
|
15366
15337
|
addInfo: {
|
15367
15338
|
indicator: true,
|
15368
|
-
parentId:
|
15339
|
+
parentId: id
|
15369
15340
|
}
|
15370
|
-
};
|
15371
|
-
indicators.push(actionIndicator);
|
15372
|
-
}
|
15341
|
+
});
|
15373
15342
|
}
|
15374
15343
|
// fyi indicator
|
15375
|
-
|
15344
|
+
recipient.fyi &&
|
15376
15345
|
indicators.push({
|
15377
|
-
id:
|
15346
|
+
id: id + 'fyi',
|
15347
|
+
width: 15,
|
15348
|
+
height: 15,
|
15378
15349
|
shape: {
|
15379
15350
|
type: 'Path',
|
15380
15351
|
data: FYI_PATH,
|
15381
15352
|
align: this.enableRtl ? 'XMinYMax' : 'XMaxYMax'
|
15382
15353
|
},
|
15383
15354
|
style: {
|
15355
|
+
strokeWidth: 0,
|
15384
15356
|
fill: '#1976d2'
|
15385
15357
|
},
|
15386
15358
|
addInfo: {
|
15387
15359
|
indicator: true,
|
15388
|
-
parentId:
|
15360
|
+
parentId: id
|
15389
15361
|
}
|
15390
15362
|
});
|
15391
15363
|
// escalate indicator
|
15392
|
-
|
15393
|
-
|
15394
|
-
id:
|
15364
|
+
recipient.escalated &&
|
15365
|
+
indicators.push({
|
15366
|
+
id: id + 'escalate',
|
15367
|
+
width: 15,
|
15368
|
+
height: 15,
|
15395
15369
|
shape: {
|
15396
15370
|
type: 'Path',
|
15397
15371
|
data: ESCALATED_PATH,
|
15398
15372
|
align: this.enableRtl ? 'XMinYMax' : 'XMaxYMax'
|
15399
15373
|
},
|
15400
15374
|
style: {
|
15375
|
+
strokeWidth: 0,
|
15401
15376
|
fill: this._session.getAccent(900)
|
15402
15377
|
},
|
15403
15378
|
addInfo: {
|
15404
15379
|
indicator: true,
|
15405
|
-
parentId:
|
15380
|
+
parentId: id
|
15406
15381
|
}
|
15407
|
-
};
|
15408
|
-
indicators.push(escalateIndicator);
|
15409
|
-
}
|
15382
|
+
});
|
15410
15383
|
}
|
15411
15384
|
}
|
15412
15385
|
else {
|
15413
|
-
const { state, annotation, tooltip } = await this._shape(node);
|
15414
|
-
const { shape } = configuration;
|
15415
|
-
const content = this._tooltip(tooltip);
|
15386
|
+
const { state, annotation, tooltip } = await this._shape(node), { shape } = configuration, content = this._tooltip(tooltip);
|
15416
15387
|
nodes.push({
|
15417
15388
|
id: node.id,
|
15389
|
+
width: 50,
|
15390
|
+
height: 50,
|
15391
|
+
style: {
|
15392
|
+
strokeWidth: 2,
|
15393
|
+
opacity: node.estimate ? .6 : 1,
|
15394
|
+
strokeColor: node.estimate ? color : this._accentColor,
|
15395
|
+
fill: 'transparent'
|
15396
|
+
},
|
15418
15397
|
shape, //: {type: 'Path', data: ELLIPSIS },
|
15419
15398
|
zIndex: zIndex++,
|
15420
15399
|
tooltip: {
|
@@ -15433,19 +15412,25 @@ class FlowViewComponent extends TraceBase {
|
|
15433
15412
|
offset: shape.type === 'Path' ? {
|
15434
15413
|
y: 1
|
15435
15414
|
} : { x: .5 },
|
15436
|
-
style: {
|
15415
|
+
style: {
|
15416
|
+
color: color,
|
15417
|
+
opacity: node.estimate ? .6 : 1,
|
15418
|
+
},
|
15437
15419
|
verticalAlignment: shape.type === 'Path' ? 'Top' : 'Center'
|
15438
15420
|
}]
|
15439
15421
|
});
|
15440
|
-
|
15422
|
+
state && state.shape && !node.estimate &&
|
15441
15423
|
indicators.push({
|
15442
15424
|
id: node.id + 'state',
|
15425
|
+
width: 15,
|
15426
|
+
height: 15,
|
15443
15427
|
shape: {
|
15444
15428
|
type: 'Path',
|
15445
15429
|
data: state.shape,
|
15446
15430
|
align: this.enableRtl ? 'XMaxYMax' : 'XMinYMax'
|
15447
15431
|
},
|
15448
15432
|
style: {
|
15433
|
+
strokeWidth: 0,
|
15449
15434
|
fill: state.color || 'black'
|
15450
15435
|
},
|
15451
15436
|
addInfo: {
|
@@ -15454,49 +15439,52 @@ class FlowViewComponent extends TraceBase {
|
|
15454
15439
|
node: node
|
15455
15440
|
}
|
15456
15441
|
});
|
15457
|
-
|
15458
|
-
|
15442
|
+
node.error &&
|
15443
|
+
indicators.push({
|
15459
15444
|
id: node.id + 'exception',
|
15445
|
+
width: 15,
|
15446
|
+
height: 15,
|
15460
15447
|
shape: {
|
15461
15448
|
type: 'Path',
|
15462
15449
|
data: WARNNING_PATH$1,
|
15463
15450
|
align: this.enableRtl ? 'XMinYMax' : 'XMaxYMax'
|
15464
15451
|
},
|
15465
15452
|
style: {
|
15453
|
+
strokeWidth: 0,
|
15466
15454
|
fill: getWarn(800)
|
15467
15455
|
},
|
15468
15456
|
addInfo: {
|
15469
15457
|
indicator: true,
|
15470
15458
|
parentId: node.id
|
15471
15459
|
}
|
15472
|
-
};
|
15473
|
-
indicators.push(warnningIndicator);
|
15474
|
-
}
|
15460
|
+
});
|
15475
15461
|
}
|
15476
15462
|
}
|
15477
15463
|
// TODO
|
15478
15464
|
// longest path, remove short path connectors
|
15479
|
-
function deepen(nodeId, depth = 0) {
|
15480
|
-
|
15481
|
-
|
15482
|
-
|
15483
|
-
|
15484
|
-
|
15485
|
-
|
15486
|
-
|
15487
|
-
|
15488
|
-
|
15489
|
-
|
15490
|
-
|
15491
|
-
|
15492
|
-
|
15493
|
-
|
15494
|
-
|
15495
|
-
|
15496
|
-
|
15497
|
-
|
15498
|
-
|
15499
|
-
}
|
15465
|
+
//function deepen(nodeId: string, depth = 0) {
|
15466
|
+
// nodes.filter(n => (n.addInfo as NodeInfoModel).node.id === nodeId).
|
15467
|
+
// forEach(n => {
|
15468
|
+
// const { depth: nodeDepth } = n.addInfo as NodeInfoModel;
|
15469
|
+
// if (nodeDepth) {
|
15470
|
+
// if (nodeDepth < depth) {
|
15471
|
+
// dconnectors.filter(c => c.targetId === nodeId &&
|
15472
|
+
// nodes.filter(n => (n.addInfo as NodeInfoModel).node.id === c.sourceId &&
|
15473
|
+
// (n.addInfo as NodeInfoModel).depth === nodeDepth - 1).length).
|
15474
|
+
// forEach(c =>
|
15475
|
+
// dconnectors.remove(c)
|
15476
|
+
// );
|
15477
|
+
// (n.addInfo as NodeInfoModel).depth = depth;
|
15478
|
+
// } else if (nodeDepth > depth)
|
15479
|
+
// dconnectors.filter(c => c.sourceId === nodeId).forEach(c => dconnectors.remove(c));
|
15480
|
+
// } else {
|
15481
|
+
// (n.addInfo as NodeInfoModel).depth = depth;
|
15482
|
+
// dconnectors.filter(c => c.sourceId === nodeId).forEach(c =>
|
15483
|
+
// deepen(c.targetId, depth + 1)
|
15484
|
+
// );
|
15485
|
+
// }
|
15486
|
+
// });
|
15487
|
+
//}
|
15500
15488
|
for (let connector of dconnectors) {
|
15501
15489
|
let sources = nodes.filter(n => n.addInfo.node.id === connector.sourceId), targets = nodes.filter(n => n.addInfo.node.id === connector.targetId);
|
15502
15490
|
for (let source of sources)
|
@@ -15504,6 +15492,28 @@ class FlowViewComponent extends TraceBase {
|
|
15504
15492
|
connectors.push({
|
15505
15493
|
sourceID: source.id,
|
15506
15494
|
targetID: target.id,
|
15495
|
+
type: this.connectorType,
|
15496
|
+
cornerRadius: 6,
|
15497
|
+
targetDecorator: {
|
15498
|
+
shape: 'None',
|
15499
|
+
height: 7,
|
15500
|
+
width: 7,
|
15501
|
+
style: connector.estimate ? {
|
15502
|
+
fill: color,
|
15503
|
+
strokeColor: color
|
15504
|
+
} : {
|
15505
|
+
strokeColor: this._accentColor,
|
15506
|
+
fill: this._accentColor
|
15507
|
+
},
|
15508
|
+
},
|
15509
|
+
style: connector.estimate ? {
|
15510
|
+
strokeDashArray: '2 2',
|
15511
|
+
strokeColor: color,
|
15512
|
+
strokeWidth: 1
|
15513
|
+
} : {
|
15514
|
+
strokeColor: this._accentColor,
|
15515
|
+
strokeWidth: 2
|
15516
|
+
},
|
15507
15517
|
addInfo: {
|
15508
15518
|
estimate: connector.estimate,
|
15509
15519
|
time: connector.time
|
@@ -16780,15 +16790,13 @@ class CubeMatrixComponent {
|
|
16780
16790
|
if (changes['_cube']) {
|
16781
16791
|
this.cube = this._session.profile.cubes.find(c => c.name === this._cube);
|
16782
16792
|
this.CURRENCY = this.cube.currencyCode /*|| this._service.currencyCode*/;
|
16783
|
-
if (this.CURRENCY)
|
16784
|
-
this.SYMBOL = getCurrencySymbol(this.CURRENCY, 'narrow');
|
16785
16793
|
}
|
16786
16794
|
if (!this.cube) {
|
16787
16795
|
this.cube = this._session.profile.cubes[0];
|
16788
16796
|
this.CURRENCY = this.cube.currencyCode /*|| this._service.currencyCode*/;
|
16789
|
-
if (this.CURRENCY)
|
16790
|
-
this.SYMBOL = getCurrencySymbol(this.CURRENCY, 'narrow');
|
16791
16797
|
}
|
16798
|
+
if (this.CURRENCY)
|
16799
|
+
this.SYMBOL = this._service.getCurrencySymbol(this.CURRENCY);
|
16792
16800
|
if (changes['_indices'] && this._indices) {
|
16793
16801
|
if (!this.cube.indices)
|
16794
16802
|
throw `cube ${this.cube.name} expects one or more indices.`;
|
@@ -16877,7 +16885,8 @@ class CubeMatrixComponent {
|
|
16877
16885
|
error: (e) => {
|
16878
16886
|
this._sb.error(errResource(e));
|
16879
16887
|
this.loadingChange.error(e);
|
16880
|
-
},
|
16888
|
+
},
|
16889
|
+
complete: () => {
|
16881
16890
|
clearTimeout(progressTask);
|
16882
16891
|
this.loadingChange.next(this.loading = false);
|
16883
16892
|
}
|
@@ -17090,7 +17099,7 @@ class CubeMatrixComponent {
|
|
17090
17099
|
}
|
17091
17100
|
/** */
|
17092
17101
|
export() {
|
17093
|
-
const numberFormat = this._service.
|
17102
|
+
const numberFormat = this._service.getNumberFormat(this.cube.currencyCode), columns = this.columns.filter(c => !c.sum);
|
17094
17103
|
const book = new Workbook({
|
17095
17104
|
worksheets: [
|
17096
17105
|
{
|
@@ -19116,6 +19125,9 @@ class SlotsComponent {
|
|
19116
19125
|
this._selectedTabIndex = value;
|
19117
19126
|
this._setTabAnimation();
|
19118
19127
|
}
|
19128
|
+
get selectedTab() {
|
19129
|
+
return this.tabs[this.selectedTabIndex];
|
19130
|
+
}
|
19119
19131
|
constructor(data, _session, _cd, _router, _title, _injector) {
|
19120
19132
|
this._session = _session;
|
19121
19133
|
this._cd = _cd;
|
@@ -20207,7 +20219,7 @@ class SlotsComponent {
|
|
20207
20219
|
this._destroy.complete();
|
20208
20220
|
}
|
20209
20221
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: SlotsComponent, deps: [{ token: PANES_DATA }, { token: SessionService }, { token: i0.ChangeDetectorRef }, { token: PanesRouter }, { token: WindowTitleService }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component }); }
|
20210
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.5", type: SlotsComponent, selector: "bizdoc-panes-outlet", outputs: { dialogChange: "dialogChange" }, host: { listeners: { "document:keydown": "handleKeydown($event)", "window:resize": "onResize()" } }, viewQueries: [{ propertyName: "_panesContainerRef", first: true, predicate: ["panesEl"], descendants: true, read: ViewContainerRef, static: true }, { propertyName: "_tabsElement", first: true, predicate: ["tabsEl"], descendants: true }, { propertyName: "_scrollable", first: true, predicate: CdkScrollable, descendants: true, static: true }], ngImport: i0, template: "<div #panesEl class=\"panes\"\r\n cdkScrollable\r\n @panes\r\n (scroll)=\"enableNavigationArrows($event)\">\r\n <!---->\r\n @if (prev) {\r\n <div class=\"scroll-arrow\" (click)=\"scrollBy(-400)\" matRipple [matRippleUnbounded]=\"true\" [matRippleCentered]=\"true\" [matRippleColor]=\"accent\">\r\n <i class=\"material-icons mat-icon-rtl-mirror\">\r\n arrow_back_ios\r\n </i>\r\n </div>\r\n }\r\n <!--panes-->\r\n @for (p of panes; track p; let i = $index) {\r\n <div (mouseenter)=\"selectedIndex !== i && !dragging && select(i)\"\r\n (click)=\"select(i)\"\r\n [class.active]=\"selectedIndex === i && panes.length > 1\" class=\"pane\" @pane>\r\n <ng-container [cdkPortalOutlet]=\"p._portal\" (attached)=\"p._instance = $event.instance\"></ng-container>\r\n </div>\r\n @if (i < panes.length - 1) {\r\n <div class=\"pane-separator\" (mousedown)=\"onPaneResize(p, $event)\"></div>\r\n }\r\n }\r\n <!--dialog-->\r\n @if (dialog) {\r\n <div class=\"backdrop\" (click)=\"closeTab(0)\"></div>\r\n }\r\n <!--next-->\r\n @if (next) {\r\n <div class=\"scroll-arrow forward\">\r\n <i class=\"material-icons mat-icon-rtl-mirror\" matRipple [matRippleUnbounded]=\"true\" [matRippleCentered]=\"true\" [matRippleRadius]=\"30\" [matRippleColor]=\"accent\"\r\n (click)=\"scrollBy(400)\">\r\n arrow_forward_ios\r\n </i>\r\n </div>\r\n }\r\n</div>\r\n<!--tabs-->\r\n@if (tabs.length) {\r\n<div class=\"tabs-separator\" (mousedown)=\"onTabResize($event)\"></div>\r\n<div class=\"tabs mat-elevation-z18\" #tabsEl [@tabs]=\"tabsAnimation\" (@tabs.done)=\"done()\">\r\n <!--title-->\r\n <div class=\"row tabs-title\">\r\n @if (swapTab) {\r\n <button mat-icon-button (click)=\"tabBack()\" [bizdocTooltip]=\"prevGroup || ('Back'|translate)\"><mat-icon class=\"mat-icon-rtl-mirror\">arrow_back</mat-icon></button>\r\n }\r\n <h2>{{group}}</h2>\r\n @if
|
20222
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.5", type: SlotsComponent, selector: "bizdoc-panes-outlet", outputs: { dialogChange: "dialogChange" }, host: { listeners: { "document:keydown": "handleKeydown($event)", "window:resize": "onResize()" } }, viewQueries: [{ propertyName: "_panesContainerRef", first: true, predicate: ["panesEl"], descendants: true, read: ViewContainerRef, static: true }, { propertyName: "_tabsElement", first: true, predicate: ["tabsEl"], descendants: true }, { propertyName: "_scrollable", first: true, predicate: CdkScrollable, descendants: true, static: true }], ngImport: i0, template: "<div #panesEl class=\"panes\"\r\n cdkScrollable\r\n @panes\r\n (scroll)=\"enableNavigationArrows($event)\">\r\n <!---->\r\n @if (prev) {\r\n <div class=\"scroll-arrow\" (click)=\"scrollBy(-400)\" matRipple [matRippleUnbounded]=\"true\" [matRippleCentered]=\"true\" [matRippleColor]=\"accent\">\r\n <i class=\"material-icons mat-icon-rtl-mirror\">\r\n arrow_back_ios\r\n </i>\r\n </div>\r\n }\r\n <!--panes-->\r\n @for (p of panes; track p; let i = $index) {\r\n <div (mouseenter)=\"selectedIndex !== i && !dragging && select(i)\"\r\n (click)=\"select(i)\"\r\n [class.active]=\"selectedIndex === i && panes.length > 1\" class=\"pane\" @pane>\r\n <ng-container [cdkPortalOutlet]=\"p._portal\" (attached)=\"p._instance = $event.instance\"></ng-container>\r\n </div>\r\n @if (i < panes.length - 1) {\r\n <div class=\"pane-separator\" (mousedown)=\"onPaneResize(p, $event)\"></div>\r\n }\r\n }\r\n <!--dialog-->\r\n @if (dialog) {\r\n <div class=\"backdrop\" (click)=\"closeTab(0)\"></div>\r\n }\r\n <!--next-->\r\n @if (next) {\r\n <div class=\"scroll-arrow forward\">\r\n <i class=\"material-icons mat-icon-rtl-mirror\" matRipple [matRippleUnbounded]=\"true\" [matRippleCentered]=\"true\" [matRippleRadius]=\"30\" [matRippleColor]=\"accent\"\r\n (click)=\"scrollBy(400)\">\r\n arrow_forward_ios\r\n </i>\r\n </div>\r\n }\r\n</div>\r\n<!--tabs-->\r\n@if (tabs.length) {\r\n<div class=\"tabs-separator\" (mousedown)=\"onTabResize($event)\"></div>\r\n<div class=\"tabs mat-elevation-z18\" #tabsEl [@tabs]=\"tabsAnimation\" (@tabs.done)=\"done()\">\r\n <!--title-->\r\n <div class=\"row tabs-title\">\r\n @if (swapTab) {\r\n <button mat-icon-button (click)=\"tabBack()\" [bizdocTooltip]=\"prevGroup || ('Back'|translate)\"><mat-icon class=\"mat-icon-rtl-mirror\">arrow_back</mat-icon></button>\r\n }\r\n <h2>{{group}}</h2>\r\n @if(selectedTab?.expandable) {\r\n <button mat-icon-button (click)=\"expandTab()\" [bizdocTooltip]=\"'Expand'| translate\"><mat-icon class=\"mat-icon-rtl-mirror\" style=\"font-size: 22px\">open_in_full</mat-icon></button>\r\n }\r\n @if(selectedTab?.dismissable) {\r\n <span class=\"divider\"></span>\r\n <button mat-icon-button (click)=\"collapse()\" bizdocTooltip=\"Esc\"><mat-icon>close</mat-icon></button>\r\n }\r\n </div>\r\n <nav mat-tab-nav-bar color=\"accent\" [disablePagination]=\"true\" [tabPanel]=\"tabPanel\">\r\n @for (t of tabs; track t; let i = $index) {\r\n <a mat-tab-link class=\"mat-tab-link\"\r\n (click)=\"selectedTabIndex = i\"\r\n [active]=\"selectedTabIndex === i\">\r\n <mat-icon [matBadge]=\"t.badge\" [matBadgeHidden]=\"!t.badge\" matBadgeSize=\"small\" matBadgeColor=\"accent\" aria-hidden=\"false\">{{t.icon}}</mat-icon> \r\n {{t.title}}\r\n <!--@if (t.dismissable) {\r\n <mat-icon (click)=\"closeTab(i)\" class=\"tool\">close</mat-icon>\r\n }-->\r\n <!--inline=\"true\"-->\r\n </a>\r\n }\r\n </nav>\r\n <mat-tab-nav-panel #tabPanel class=\"flex\">\r\n @for (t of tabs; track t; let i = $index) {\r\n <div [style.display]=\"selectedTabIndex === i ? '': 'none'\" class=\"tab\" [@tab]=\"selectedTabIndex\">\r\n <ng-container [cdkPortalOutlet]=\"t._portal\" (attached)=\"t._instance = $event.instance\"></ng-container>\r\n </div>\r\n }\r\n </mat-tab-nav-panel>\r\n</div>\r\n}\r\n", styles: [":host{flex:1;overflow:hidden;display:flex}.scroll-arrow{cursor:pointer;align-self:center;position:sticky;top:50%;z-index:200}.scroll-arrow i{font-size:50px;opacity:.2}.scroll-arrow i:hover{opacity:.9}.scroll-arrow:first-child{margin-inline-start:-50px;left:15px}.scroll-arrow:last-child{margin-inline-end:-50px;right:0}.panes{overflow-x:auto;position:relative;flex:1;height:100%;display:flex;-ms-flex-direction:row;-webkit-flex-direction:row;flex-direction:row}.panes .pane{-webkit-flex-grow:1;flex-grow:1;min-width:420px;overflow-y:auto;overflow-x:clip}.panes .pane>*{display:flex;-ms-flex-direction:column;-webkit-flex-direction:column;flex-direction:column;overflow-x:hidden;flex-grow:1}.pane-separator,.tabs-separator{cursor:ew-resize;background-repeat:no-repeat;background-position:center;display:table;height:100%;-moz-user-select:none;-ms-user-select:none;-webkit-user-select:none;user-select:none}.pane-separator{width:8px}.tabs-separator{width:12px}::ng-deep .mat-mdc-tab-link-container{overflow-x:auto;border-bottom:1px solid lightgray;-ms-overflow-style:none;scrollbar-width:none}::ng-deep .mat-mdc-tab-link-container::-webkit-scrollbar{display:none}::ng-deep .mat-mdc-tab-nav-panel{overflow-y:auto}.tabs{display:flex;-ms-flex-direction:column;-webkit-flex-direction:column;flex-direction:column;z-index:300;-webkit-flex-grow:0;flex-shrink:1;flex-basis:0;max-width:80vw}.tabs .tabs-title{align-items:center}.tabs .tabs-title h2{font-size:x-large;margin:9px;font-weight:100}.tabs .tabs-title:hover{opacity:1}.tabs .mat-mdc-tab-link .tool{opacity:0}.tabs .mat-mdc-tab-link:hover .tool{opacity:1}.tabs .tab{overflow-y:auto;overflow-x:hidden;display:flex;height:100%}\n"], dependencies: [{ kind: "directive", type: i5$4.CdkScrollable, selector: "[cdk-scrollable], [cdkScrollable]" }, { kind: "directive", type: i5$1.CdkPortalOutlet, selector: "[cdkPortalOutlet]", inputs: ["cdkPortalOutlet"], outputs: ["attached"], exportAs: ["cdkPortalOutlet"] }, { kind: "directive", type: i2$5.MatRipple, selector: "[mat-ripple], [matRipple]", inputs: ["matRippleColor", "matRippleUnbounded", "matRippleCentered", "matRippleRadius", "matRippleAnimation", "matRippleDisabled", "matRippleTrigger"], exportAs: ["matRipple"] }, { kind: "component", type: i7$5.MatTabNav, selector: "[mat-tab-nav-bar]", inputs: ["fitInkBarToContent", "mat-stretch-tabs", "animationDuration", "backgroundColor", "disableRipple", "color", "tabPanel"], exportAs: ["matTabNavBar", "matTabNav"] }, { kind: "component", type: i7$5.MatTabNavPanel, selector: "mat-tab-nav-panel", inputs: ["id"], exportAs: ["matTabNavPanel"] }, { kind: "component", type: i7$5.MatTabLink, selector: "[mat-tab-link], [matTabLink]", inputs: ["active", "disabled", "disableRipple", "tabIndex", "id"], exportAs: ["matTabLink"] }, { kind: "directive", type: i11.MatBadge, selector: "[matBadge]", inputs: ["matBadgeColor", "matBadgeOverlap", "matBadgeDisabled", "matBadgePosition", "matBadge", "matBadgeDescription", "matBadgeSize", "matBadgeHidden"] }, { kind: "component", type: i8.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "component", type: i10.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: TooltipDirective, selector: "[bizdocTooltip]", inputs: ["bizdocTooltip", "bizdocTooltipTemplate", "bizdocTooltipContext", "bizdocTooltipPosition", "bizdocTooltipDuration", "bizdocTooltipDisabled"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }], animations: [
|
20211
20223
|
panesAnimation,
|
20212
20224
|
paneAnimation,
|
20213
20225
|
paramAnimation,
|
@@ -20225,7 +20237,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImpor
|
|
20225
20237
|
queryAnimation,
|
20226
20238
|
tabsAnimation,
|
20227
20239
|
tabAnimation
|
20228
|
-
], template: "<div #panesEl class=\"panes\"\r\n cdkScrollable\r\n @panes\r\n (scroll)=\"enableNavigationArrows($event)\">\r\n <!---->\r\n @if (prev) {\r\n <div class=\"scroll-arrow\" (click)=\"scrollBy(-400)\" matRipple [matRippleUnbounded]=\"true\" [matRippleCentered]=\"true\" [matRippleColor]=\"accent\">\r\n <i class=\"material-icons mat-icon-rtl-mirror\">\r\n arrow_back_ios\r\n </i>\r\n </div>\r\n }\r\n <!--panes-->\r\n @for (p of panes; track p; let i = $index) {\r\n <div (mouseenter)=\"selectedIndex !== i && !dragging && select(i)\"\r\n (click)=\"select(i)\"\r\n [class.active]=\"selectedIndex === i && panes.length > 1\" class=\"pane\" @pane>\r\n <ng-container [cdkPortalOutlet]=\"p._portal\" (attached)=\"p._instance = $event.instance\"></ng-container>\r\n </div>\r\n @if (i < panes.length - 1) {\r\n <div class=\"pane-separator\" (mousedown)=\"onPaneResize(p, $event)\"></div>\r\n }\r\n }\r\n <!--dialog-->\r\n @if (dialog) {\r\n <div class=\"backdrop\" (click)=\"closeTab(0)\"></div>\r\n }\r\n <!--next-->\r\n @if (next) {\r\n <div class=\"scroll-arrow forward\">\r\n <i class=\"material-icons mat-icon-rtl-mirror\" matRipple [matRippleUnbounded]=\"true\" [matRippleCentered]=\"true\" [matRippleRadius]=\"30\" [matRippleColor]=\"accent\"\r\n (click)=\"scrollBy(400)\">\r\n arrow_forward_ios\r\n </i>\r\n </div>\r\n }\r\n</div>\r\n<!--tabs-->\r\n@if (tabs.length) {\r\n<div class=\"tabs-separator\" (mousedown)=\"onTabResize($event)\"></div>\r\n<div class=\"tabs mat-elevation-z18\" #tabsEl [@tabs]=\"tabsAnimation\" (@tabs.done)=\"done()\">\r\n <!--title-->\r\n <div class=\"row tabs-title\">\r\n @if (swapTab) {\r\n <button mat-icon-button (click)=\"tabBack()\" [bizdocTooltip]=\"prevGroup || ('Back'|translate)\"><mat-icon class=\"mat-icon-rtl-mirror\">arrow_back</mat-icon></button>\r\n }\r\n <h2>{{group}}</h2>\r\n @if
|
20240
|
+
], template: "<div #panesEl class=\"panes\"\r\n cdkScrollable\r\n @panes\r\n (scroll)=\"enableNavigationArrows($event)\">\r\n <!---->\r\n @if (prev) {\r\n <div class=\"scroll-arrow\" (click)=\"scrollBy(-400)\" matRipple [matRippleUnbounded]=\"true\" [matRippleCentered]=\"true\" [matRippleColor]=\"accent\">\r\n <i class=\"material-icons mat-icon-rtl-mirror\">\r\n arrow_back_ios\r\n </i>\r\n </div>\r\n }\r\n <!--panes-->\r\n @for (p of panes; track p; let i = $index) {\r\n <div (mouseenter)=\"selectedIndex !== i && !dragging && select(i)\"\r\n (click)=\"select(i)\"\r\n [class.active]=\"selectedIndex === i && panes.length > 1\" class=\"pane\" @pane>\r\n <ng-container [cdkPortalOutlet]=\"p._portal\" (attached)=\"p._instance = $event.instance\"></ng-container>\r\n </div>\r\n @if (i < panes.length - 1) {\r\n <div class=\"pane-separator\" (mousedown)=\"onPaneResize(p, $event)\"></div>\r\n }\r\n }\r\n <!--dialog-->\r\n @if (dialog) {\r\n <div class=\"backdrop\" (click)=\"closeTab(0)\"></div>\r\n }\r\n <!--next-->\r\n @if (next) {\r\n <div class=\"scroll-arrow forward\">\r\n <i class=\"material-icons mat-icon-rtl-mirror\" matRipple [matRippleUnbounded]=\"true\" [matRippleCentered]=\"true\" [matRippleRadius]=\"30\" [matRippleColor]=\"accent\"\r\n (click)=\"scrollBy(400)\">\r\n arrow_forward_ios\r\n </i>\r\n </div>\r\n }\r\n</div>\r\n<!--tabs-->\r\n@if (tabs.length) {\r\n<div class=\"tabs-separator\" (mousedown)=\"onTabResize($event)\"></div>\r\n<div class=\"tabs mat-elevation-z18\" #tabsEl [@tabs]=\"tabsAnimation\" (@tabs.done)=\"done()\">\r\n <!--title-->\r\n <div class=\"row tabs-title\">\r\n @if (swapTab) {\r\n <button mat-icon-button (click)=\"tabBack()\" [bizdocTooltip]=\"prevGroup || ('Back'|translate)\"><mat-icon class=\"mat-icon-rtl-mirror\">arrow_back</mat-icon></button>\r\n }\r\n <h2>{{group}}</h2>\r\n @if(selectedTab?.expandable) {\r\n <button mat-icon-button (click)=\"expandTab()\" [bizdocTooltip]=\"'Expand'| translate\"><mat-icon class=\"mat-icon-rtl-mirror\" style=\"font-size: 22px\">open_in_full</mat-icon></button>\r\n }\r\n @if(selectedTab?.dismissable) {\r\n <span class=\"divider\"></span>\r\n <button mat-icon-button (click)=\"collapse()\" bizdocTooltip=\"Esc\"><mat-icon>close</mat-icon></button>\r\n }\r\n </div>\r\n <nav mat-tab-nav-bar color=\"accent\" [disablePagination]=\"true\" [tabPanel]=\"tabPanel\">\r\n @for (t of tabs; track t; let i = $index) {\r\n <a mat-tab-link class=\"mat-tab-link\"\r\n (click)=\"selectedTabIndex = i\"\r\n [active]=\"selectedTabIndex === i\">\r\n <mat-icon [matBadge]=\"t.badge\" [matBadgeHidden]=\"!t.badge\" matBadgeSize=\"small\" matBadgeColor=\"accent\" aria-hidden=\"false\">{{t.icon}}</mat-icon> \r\n {{t.title}}\r\n <!--@if (t.dismissable) {\r\n <mat-icon (click)=\"closeTab(i)\" class=\"tool\">close</mat-icon>\r\n }-->\r\n <!--inline=\"true\"-->\r\n </a>\r\n }\r\n </nav>\r\n <mat-tab-nav-panel #tabPanel class=\"flex\">\r\n @for (t of tabs; track t; let i = $index) {\r\n <div [style.display]=\"selectedTabIndex === i ? '': 'none'\" class=\"tab\" [@tab]=\"selectedTabIndex\">\r\n <ng-container [cdkPortalOutlet]=\"t._portal\" (attached)=\"t._instance = $event.instance\"></ng-container>\r\n </div>\r\n }\r\n </mat-tab-nav-panel>\r\n</div>\r\n}\r\n", styles: [":host{flex:1;overflow:hidden;display:flex}.scroll-arrow{cursor:pointer;align-self:center;position:sticky;top:50%;z-index:200}.scroll-arrow i{font-size:50px;opacity:.2}.scroll-arrow i:hover{opacity:.9}.scroll-arrow:first-child{margin-inline-start:-50px;left:15px}.scroll-arrow:last-child{margin-inline-end:-50px;right:0}.panes{overflow-x:auto;position:relative;flex:1;height:100%;display:flex;-ms-flex-direction:row;-webkit-flex-direction:row;flex-direction:row}.panes .pane{-webkit-flex-grow:1;flex-grow:1;min-width:420px;overflow-y:auto;overflow-x:clip}.panes .pane>*{display:flex;-ms-flex-direction:column;-webkit-flex-direction:column;flex-direction:column;overflow-x:hidden;flex-grow:1}.pane-separator,.tabs-separator{cursor:ew-resize;background-repeat:no-repeat;background-position:center;display:table;height:100%;-moz-user-select:none;-ms-user-select:none;-webkit-user-select:none;user-select:none}.pane-separator{width:8px}.tabs-separator{width:12px}::ng-deep .mat-mdc-tab-link-container{overflow-x:auto;border-bottom:1px solid lightgray;-ms-overflow-style:none;scrollbar-width:none}::ng-deep .mat-mdc-tab-link-container::-webkit-scrollbar{display:none}::ng-deep .mat-mdc-tab-nav-panel{overflow-y:auto}.tabs{display:flex;-ms-flex-direction:column;-webkit-flex-direction:column;flex-direction:column;z-index:300;-webkit-flex-grow:0;flex-shrink:1;flex-basis:0;max-width:80vw}.tabs .tabs-title{align-items:center}.tabs .tabs-title h2{font-size:x-large;margin:9px;font-weight:100}.tabs .tabs-title:hover{opacity:1}.tabs .mat-mdc-tab-link .tool{opacity:0}.tabs .mat-mdc-tab-link:hover .tool{opacity:1}.tabs .tab{overflow-y:auto;overflow-x:hidden;display:flex;height:100%}\n"] }]
|
20229
20241
|
}], ctorParameters: () => [{ type: undefined, decorators: [{
|
20230
20242
|
type: Inject,
|
20231
20243
|
args: [PANES_DATA]
|
@@ -20619,11 +20631,11 @@ class AdminMenuComponent {
|
|
20619
20631
|
ngOnInit() {
|
20620
20632
|
}
|
20621
20633
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: AdminMenuComponent, deps: [{ token: SessionService }], target: i0.ɵɵFactoryTarget.Component }); }
|
20622
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.5", type: AdminMenuComponent, selector: "bizdoc-admin-menu", inputs: { collapsed: "collapsed" }, ngImport: i0, template: "<!--<span class=\"mat-subheader\">BizDoc</span>\r\n<h1 class=\"mat-headline-5\">{{'System'|translate}}</h1>-->\r\n\r\n<mat-nav-list>\r\n
|
20634
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.5", type: AdminMenuComponent, selector: "bizdoc-admin-menu", inputs: { collapsed: "collapsed" }, ngImport: i0, template: "<!--<span class=\"mat-subheader\">BizDoc</span>\r\n<h1 class=\"mat-headline-5\">{{'System'|translate}}</h1>-->\r\n\r\n<mat-nav-list>\r\n <!--@if (!collapsed) {\r\n <h3 mat-subheader>{{'Workflow'|translate}}</h3>\r\n }\r\n @for (f of profile.forms; track f) {\r\n <mat-list-item [slotRouterLink]='[\"admin/forms\", f.name]' slotRouterLinkActive=\"active\">\r\n <mat-icon matListItemIcon [bizdocTooltip]=\"f.title\" bizdocTooltipPosition=\"end\" [bizdocTooltipDisabled]=\"!collapsed\">{{f.icon|| 'description'}}</mat-icon>\r\n <span matListItemTitle>{{f.title}}</span>\r\n </mat-list-item>\r\n }\r\n <mat-divider></mat-divider>-->\r\n\r\n @if (!collapsed) {\r\n <h3 mat-subheader>{{'Tools'|translate}}</h3>\r\n }\r\n\r\n @for (u of profile.utilities; track u) {\r\n <mat-list-item [slotRouterLink]='[\"admin/tools\", u.name]' slotRouterLinkActive=\"active\">\r\n <mat-icon matListItemIcon [bizdocTooltip]=\"u.title\" bizdocTooltipPosition=\"end\" [bizdocTooltipDisabled]=\"!collapsed\">{{u.icon || 'build'}}</mat-icon>\r\n <span matListItemTitle>{{u.title}}</span>\r\n </mat-list-item>\r\n }\r\n</mat-nav-list>\r\n", dependencies: [{ kind: "component", type: i2$4.MatNavList, selector: "mat-nav-list", exportAs: ["matNavList"] }, { kind: "component", type: i2$4.MatListItem, selector: "mat-list-item, a[mat-list-item], button[mat-list-item]", inputs: ["activated"], exportAs: ["matListItem"] }, { kind: "directive", type: i2$4.MatListItemIcon, selector: "[matListItemIcon]" }, { kind: "directive", type: i2$4.MatListSubheaderCssMatStyler, selector: "[mat-subheader], [matSubheader]" }, { kind: "directive", type: i2$4.MatListItemTitle, selector: "[matListItemTitle]" }, { kind: "component", type: i10.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: TooltipDirective, selector: "[bizdocTooltip]", inputs: ["bizdocTooltip", "bizdocTooltipTemplate", "bizdocTooltipContext", "bizdocTooltipPosition", "bizdocTooltipDuration", "bizdocTooltipDisabled"] }, { kind: "directive", type: SlotRouterDirective, selector: "[slotRouterLink]", inputs: ["slotRouterLink", "slotRouterLinkActive", "slotRouterLinkDisabled", "slotRouterLinkPolicy", "slotRouterLinkOptions"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }] }); }
|
20623
20635
|
}
|
20624
20636
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: AdminMenuComponent, decorators: [{
|
20625
20637
|
type: Component,
|
20626
|
-
args: [{ selector: 'bizdoc-admin-menu', template: "<!--<span class=\"mat-subheader\">BizDoc</span>\r\n<h1 class=\"mat-headline-5\">{{'System'|translate}}</h1>-->\r\n\r\n<mat-nav-list>\r\n
|
20638
|
+
args: [{ selector: 'bizdoc-admin-menu', template: "<!--<span class=\"mat-subheader\">BizDoc</span>\r\n<h1 class=\"mat-headline-5\">{{'System'|translate}}</h1>-->\r\n\r\n<mat-nav-list>\r\n <!--@if (!collapsed) {\r\n <h3 mat-subheader>{{'Workflow'|translate}}</h3>\r\n }\r\n @for (f of profile.forms; track f) {\r\n <mat-list-item [slotRouterLink]='[\"admin/forms\", f.name]' slotRouterLinkActive=\"active\">\r\n <mat-icon matListItemIcon [bizdocTooltip]=\"f.title\" bizdocTooltipPosition=\"end\" [bizdocTooltipDisabled]=\"!collapsed\">{{f.icon|| 'description'}}</mat-icon>\r\n <span matListItemTitle>{{f.title}}</span>\r\n </mat-list-item>\r\n }\r\n <mat-divider></mat-divider>-->\r\n\r\n @if (!collapsed) {\r\n <h3 mat-subheader>{{'Tools'|translate}}</h3>\r\n }\r\n\r\n @for (u of profile.utilities; track u) {\r\n <mat-list-item [slotRouterLink]='[\"admin/tools\", u.name]' slotRouterLinkActive=\"active\">\r\n <mat-icon matListItemIcon [bizdocTooltip]=\"u.title\" bizdocTooltipPosition=\"end\" [bizdocTooltipDisabled]=\"!collapsed\">{{u.icon || 'build'}}</mat-icon>\r\n <span matListItemTitle>{{u.title}}</span>\r\n </mat-list-item>\r\n }\r\n</mat-nav-list>\r\n" }]
|
20627
20639
|
}], ctorParameters: () => [{ type: SessionService }], propDecorators: { collapsed: [{
|
20628
20640
|
type: Input
|
20629
20641
|
}] } });
|
@@ -20751,7 +20763,8 @@ class ComposeMenuComponent {
|
|
20751
20763
|
next: i => {
|
20752
20764
|
this.clear();
|
20753
20765
|
this._nav(i);
|
20754
|
-
},
|
20766
|
+
},
|
20767
|
+
complete: () => {
|
20755
20768
|
this._working$.next(false);
|
20756
20769
|
this.search.enable();
|
20757
20770
|
}
|
@@ -21053,10 +21066,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImpor
|
|
21053
21066
|
/** form selector component */
|
21054
21067
|
class FormSelectorSheet {
|
21055
21068
|
/** form selector ctor */
|
21056
|
-
constructor(_dialog, _bsRef,
|
21069
|
+
constructor(_dialog, _bsRef, _factory, _router, session) {
|
21057
21070
|
this._dialog = _dialog;
|
21058
21071
|
this._bsRef = _bsRef;
|
21059
|
-
this._sb = _sb;
|
21060
21072
|
this._factory = _factory;
|
21061
21073
|
this._router = _router;
|
21062
21074
|
this._done = new Subject();
|
@@ -21087,13 +21099,13 @@ class FormSelectorSheet {
|
|
21087
21099
|
}
|
21088
21100
|
});
|
21089
21101
|
}
|
21090
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: FormSelectorSheet, deps: [{ token: i2$2.MatDialog }, { token: i2$a.MatBottomSheetRef }, { token:
|
21102
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: FormSelectorSheet, deps: [{ token: i2$2.MatDialog }, { token: i2$a.MatBottomSheetRef }, { token: DocumentFactory }, { token: i1$2.Router }, { token: SessionService }], target: i0.ɵɵFactoryTarget.Component }); }
|
21091
21103
|
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.5", type: FormSelectorSheet, selector: "bizdoc-form-selector", ngImport: i0, template: "<mat-nav-list role=\"list\">\r\n @for (f of forms; track f) {\r\n <a mat-list-item role=\"listitem\" (click)=\"open(f.name)\">\r\n <span matListItemTitle>{{f.title}}</span>\r\n <mat-icon matListItemIcon>{{f.icon || 'description'}}</mat-icon>\r\n </a>\r\n }\r\n <mat-divider></mat-divider>\r\n <a mat-list-item role=\"listitem\" (click)=\"copy($event)\">\r\n <span matListItemTitle>{{'Elipsis'| translate: ('Copy' | translate)}}</span>\r\n </a>\r\n</mat-nav-list>\r\n", dependencies: [{ kind: "component", type: i2$4.MatNavList, selector: "mat-nav-list", exportAs: ["matNavList"] }, { kind: "component", type: i2$4.MatListItem, selector: "mat-list-item, a[mat-list-item], button[mat-list-item]", inputs: ["activated"], exportAs: ["matListItem"] }, { kind: "directive", type: i2$4.MatListItemIcon, selector: "[matListItemIcon]" }, { kind: "component", type: i6.MatDivider, selector: "mat-divider", inputs: ["vertical", "inset"] }, { kind: "directive", type: i2$4.MatListItemTitle, selector: "[matListItemTitle]" }, { kind: "component", type: i10.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }] }); }
|
21092
21104
|
}
|
21093
21105
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: FormSelectorSheet, decorators: [{
|
21094
21106
|
type: Component,
|
21095
21107
|
args: [{ selector: 'bizdoc-form-selector', template: "<mat-nav-list role=\"list\">\r\n @for (f of forms; track f) {\r\n <a mat-list-item role=\"listitem\" (click)=\"open(f.name)\">\r\n <span matListItemTitle>{{f.title}}</span>\r\n <mat-icon matListItemIcon>{{f.icon || 'description'}}</mat-icon>\r\n </a>\r\n }\r\n <mat-divider></mat-divider>\r\n <a mat-list-item role=\"listitem\" (click)=\"copy($event)\">\r\n <span matListItemTitle>{{'Elipsis'| translate: ('Copy' | translate)}}</span>\r\n </a>\r\n</mat-nav-list>\r\n" }]
|
21096
|
-
}], ctorParameters: () => [{ type: i2$2.MatDialog }, { type: i2$a.MatBottomSheetRef }, { type:
|
21108
|
+
}], ctorParameters: () => [{ type: i2$2.MatDialog }, { type: i2$a.MatBottomSheetRef }, { type: DocumentFactory }, { type: i1$2.Router }, { type: SessionService }] });
|
21097
21109
|
|
21098
21110
|
class ChatMobileComponent {
|
21099
21111
|
constructor() {
|
@@ -21232,12 +21244,11 @@ class BizDocApp {
|
|
21232
21244
|
this._vc = _vc;
|
21233
21245
|
this._session = _session;
|
21234
21246
|
this._messaging = _messaging;
|
21235
|
-
this.dir = 'ltr';
|
21236
21247
|
this._refresh = new Subject();
|
21237
21248
|
const doc = document.getElementsByTagName('html')[0], body = doc.getElementsByTagName('body')[0];
|
21238
21249
|
doc.lang = _session.language;
|
21239
21250
|
if (_session.inverse) {
|
21240
|
-
document.dir = doc.dir = body.dir =
|
21251
|
+
document.dir = doc.dir = body.dir = 'rtl';
|
21241
21252
|
enableRtl();
|
21242
21253
|
}
|
21243
21254
|
this._session.refresh().subscribe(this._initialize.bind(this));
|
@@ -21259,13 +21270,12 @@ class BizDocApp {
|
|
21259
21270
|
this._session.themeChange.
|
21260
21271
|
pipe(startWith(this._session.theme)).
|
21261
21272
|
subscribe(t => {
|
21262
|
-
if (meta)
|
21263
|
-
meta.content = this._session.getPrimery();
|
21264
|
-
document.body.classList.value = t.name;
|
21265
21273
|
if (t.dark)
|
21266
21274
|
document.body.classList.add('e-dark-mode');
|
21267
21275
|
else
|
21268
21276
|
document.body.classList.remove('e-dark-mode');
|
21277
|
+
if (meta)
|
21278
|
+
meta.content = this._session.getPrimery();
|
21269
21279
|
});
|
21270
21280
|
}
|
21271
21281
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: BizDocApp, deps: [{ token: i0.ViewContainerRef }, { token: SessionService }, { token: HubService }], target: i0.ɵɵFactoryTarget.Component }); }
|
@@ -21342,11 +21352,20 @@ class ImpersonateDialog {
|
|
21342
21352
|
this.users$ = this.username.valueChanges.pipe(debounceTime(250), takeUntil(this._destroy), filter(v => isString(v) && v.length > 0), switchMap(v => this._session.listImpersonate(v)));
|
21343
21353
|
this.logging = false;
|
21344
21354
|
}
|
21345
|
-
|
21355
|
+
reset() {
|
21356
|
+
this.username.reset();
|
21346
21357
|
}
|
21347
21358
|
close() {
|
21348
21359
|
history.back();
|
21349
21360
|
}
|
21361
|
+
escape(evt) {
|
21362
|
+
if (this.username.value) {
|
21363
|
+
this.reset();
|
21364
|
+
evt.stopPropagation();
|
21365
|
+
}
|
21366
|
+
else
|
21367
|
+
this.close();
|
21368
|
+
}
|
21350
21369
|
go(userId) {
|
21351
21370
|
this.logging = true;
|
21352
21371
|
this._session.impersonate(userId).subscribe({
|
@@ -21369,14 +21388,14 @@ class ImpersonateDialog {
|
|
21369
21388
|
this._destroy.complete();
|
21370
21389
|
}
|
21371
21390
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: ImpersonateDialog, deps: [{ token: PromptService }, { token: SessionService }], target: i0.ɵɵFactoryTarget.Component }); }
|
21372
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.5", type: ImpersonateDialog, selector: "bizdoc-impersonate", host: { listeners: { "document:keydown.escape": "
|
21391
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.5", type: ImpersonateDialog, selector: "bizdoc-impersonate", host: { listeners: { "document:keydown.escape": "escape($event)" } }, ngImport: i0, template: "<h2 class=\"mat-h1\"><button mat-icon-button [bizdocTooltip]=\"'Back'|translate\" (click)=\"close()\"><mat-icon class=\"mat-icon-rtl-mirror\">arrow_circle_left</mat-icon></button> {{'Impersonate' | translate}}</h2>\r\n<form>\r\n <p class=\"mat-body-1\">{{'ImpersonateHelp' | translate}}</p>\r\n <mat-form-field>\r\n <input matInput [matAutocomplete]=\"auto\" [placeholder]=\"'Associate' | translate\"\r\n [formControl]=\"username\" />\r\n <mat-autocomplete #auto=\"matAutocomplete\" [displayWith]=\"display\"\r\n (optionSelected)=\"change($event)\">\r\n @for (u of users$ | async; track u.id) {\r\n <mat-option [value]=\"u\">\r\n <span>{{u.name}}</span>\r\n </mat-option>\r\n }\r\n </mat-autocomplete>\r\n @if(username.value) {\r\n <button mat-icon-button matSuffix [bizdocTooltip]=\"'Close'|translate\" (click)=\"reset()\"><mat-icon>close</mat-icon></button>\r\n }\r\n </mat-form-field>\r\n\r\n <div class=\"row\">\r\n <button mat-raised-button (click)=\"go(selected!.id)\" [disabled]=\"!selected || logging\" color=\"primary\">{{'Login' | translate}}</button>\r\n </div>\r\n\r\n <!--<hr />-->\r\n\r\n <mat-nav-list>\r\n @for (u of recents$ | async; track u.id) {\r\n <mat-list-item [value]=\"u\" (click)=\"go(u.id)\" [class.active]=\"selected == u\">\r\n <bizdoc-avatar matListItemAvatar [person]=\"u\" [showMode]=\"false\"></bizdoc-avatar>\r\n <span matListItemTitle>{{u.name}}</span>\r\n <span matListItemLine>{{u.email}}</span>\r\n </mat-list-item>\r\n }\r\n </mat-nav-list>\r\n</form>\r\n", styles: [":host{display:flex;-ms-flex-direction:column;-webkit-flex-direction:column;flex-direction:column;padding:8px}h2{align-items:center;display:flex}.mat-mdc-form-field{width:100%}\n"], dependencies: [{ kind: "directive", type: i1$3.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1$3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1$3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$3.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: i2$4.MatNavList, selector: "mat-nav-list", exportAs: ["matNavList"] }, { kind: "component", type: i2$4.MatListItem, selector: "mat-list-item, a[mat-list-item], button[mat-list-item]", inputs: ["activated"], exportAs: ["matListItem"] }, { kind: "directive", type: i2$4.MatListItemAvatar, selector: "[matListItemAvatar]" }, { kind: "directive", type: i2$4.MatListItemLine, selector: "[matListItemLine]" }, { kind: "directive", type: i2$4.MatListItemTitle, selector: "[matListItemTitle]" }, { kind: "component", type: i4$1.MatAutocomplete, selector: "mat-autocomplete", inputs: ["aria-label", "aria-labelledby", "displayWith", "autoActiveFirstOption", "autoSelectActiveOption", "requireSelection", "panelWidth", "disableRipple", "class", "hideSingleSelectionIndicator"], outputs: ["optionSelected", "opened", "closed", "optionActivated"], exportAs: ["matAutocomplete"] }, { kind: "component", type: i2$5.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "directive", type: i4$1.MatAutocompleteTrigger, selector: "input[matAutocomplete], textarea[matAutocomplete]", inputs: ["matAutocomplete", "matAutocompletePosition", "matAutocompleteConnectedTo", "autocomplete", "matAutocompleteDisabled"], exportAs: ["matAutocompleteTrigger"] }, { kind: "component", type: i3$1.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i3$1.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "component", type: i8.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "component", type: i8.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "directive", type: i3$3.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i10.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: AvatarComponent, selector: "bizdoc-avatar", inputs: ["person", "showMode", "dense"], outputs: ["clickChange"] }, { kind: "directive", type: TooltipDirective, selector: "[bizdocTooltip]", inputs: ["bizdocTooltip", "bizdocTooltipTemplate", "bizdocTooltipContext", "bizdocTooltipPosition", "bizdocTooltipDuration", "bizdocTooltipDisabled"] }, { kind: "pipe", type: i5.AsyncPipe, name: "async" }, { kind: "pipe", type: TranslatePipe, name: "translate" }] }); }
|
21373
21392
|
}
|
21374
21393
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: ImpersonateDialog, decorators: [{
|
21375
21394
|
type: Component,
|
21376
|
-
args: [{ selector: 'bizdoc-impersonate', template: "<h2 class=\"mat-h1\"><button mat-icon-button [bizdocTooltip]=\"'Back'|translate\" (click)=\"close()\"><mat-icon class=\"mat-icon-rtl-mirror\">arrow_circle_left</mat-icon></button> {{'Impersonate' | translate}}</h2>\r\n<form>\r\n <p class=\"mat-body-1\">{{'ImpersonateHelp' | translate}}</p>\r\n <mat-form-field>\r\n <input matInput
|
21377
|
-
}], ctorParameters: () => [{ type: PromptService }, { type: SessionService }], propDecorators: {
|
21395
|
+
args: [{ selector: 'bizdoc-impersonate', template: "<h2 class=\"mat-h1\"><button mat-icon-button [bizdocTooltip]=\"'Back'|translate\" (click)=\"close()\"><mat-icon class=\"mat-icon-rtl-mirror\">arrow_circle_left</mat-icon></button> {{'Impersonate' | translate}}</h2>\r\n<form>\r\n <p class=\"mat-body-1\">{{'ImpersonateHelp' | translate}}</p>\r\n <mat-form-field>\r\n <input matInput [matAutocomplete]=\"auto\" [placeholder]=\"'Associate' | translate\"\r\n [formControl]=\"username\" />\r\n <mat-autocomplete #auto=\"matAutocomplete\" [displayWith]=\"display\"\r\n (optionSelected)=\"change($event)\">\r\n @for (u of users$ | async; track u.id) {\r\n <mat-option [value]=\"u\">\r\n <span>{{u.name}}</span>\r\n </mat-option>\r\n }\r\n </mat-autocomplete>\r\n @if(username.value) {\r\n <button mat-icon-button matSuffix [bizdocTooltip]=\"'Close'|translate\" (click)=\"reset()\"><mat-icon>close</mat-icon></button>\r\n }\r\n </mat-form-field>\r\n\r\n <div class=\"row\">\r\n <button mat-raised-button (click)=\"go(selected!.id)\" [disabled]=\"!selected || logging\" color=\"primary\">{{'Login' | translate}}</button>\r\n </div>\r\n\r\n <!--<hr />-->\r\n\r\n <mat-nav-list>\r\n @for (u of recents$ | async; track u.id) {\r\n <mat-list-item [value]=\"u\" (click)=\"go(u.id)\" [class.active]=\"selected == u\">\r\n <bizdoc-avatar matListItemAvatar [person]=\"u\" [showMode]=\"false\"></bizdoc-avatar>\r\n <span matListItemTitle>{{u.name}}</span>\r\n <span matListItemLine>{{u.email}}</span>\r\n </mat-list-item>\r\n }\r\n </mat-nav-list>\r\n</form>\r\n", styles: [":host{display:flex;-ms-flex-direction:column;-webkit-flex-direction:column;flex-direction:column;padding:8px}h2{align-items:center;display:flex}.mat-mdc-form-field{width:100%}\n"] }]
|
21396
|
+
}], ctorParameters: () => [{ type: PromptService }, { type: SessionService }], propDecorators: { escape: [{
|
21378
21397
|
type: HostListener,
|
21379
|
-
args: ['document:keydown.escape']
|
21398
|
+
args: ['document:keydown.escape', ['$event']]
|
21380
21399
|
}] } });
|
21381
21400
|
|
21382
21401
|
/** options component*/
|
@@ -22314,7 +22333,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImpor
|
|
22314
22333
|
|
22315
22334
|
class SyncfusionDiagramModule {
|
22316
22335
|
constructor() {
|
22317
|
-
Diagram$1.Inject(ComplexHierarchicalTree, BpmnDiagrams$1, DataBinding, LineDistribution /*, LayoutAnimation, LineRouting, ConnectorBridging*/);
|
22318
22336
|
}
|
22319
22337
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: SyncfusionDiagramModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
22320
22338
|
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.5", ngImport: i0, type: SyncfusionDiagramModule, imports: [CommonModule,
|
@@ -22342,6 +22360,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImpor
|
|
22342
22360
|
providers: [ConnectorBridgingService, LineRoutingService, ComplexHierarchicalTreeService, BpmnDiagramsService, LayoutAnimationService, UndoRedoService, SnappingService, ConnectorEditingService, LineDistributionService]
|
22343
22361
|
}]
|
22344
22362
|
}], ctorParameters: () => [] });
|
22363
|
+
Diagram$1.Inject(ComplexHierarchicalTree, BpmnDiagrams$1, DataBinding, LineDistribution, LineRouting, ConnectorBridging$1, LayoutAnimation);
|
22345
22364
|
|
22346
22365
|
class SyncfusionGridModule {
|
22347
22366
|
constructor() {
|
@@ -25911,10 +25930,7 @@ class UsageChartComponent extends UsageReportBase {
|
|
25911
25930
|
}
|
25912
25931
|
}
|
25913
25932
|
onExportUsage(title) {
|
25914
|
-
const numberFormat = this._cube.currencyCode
|
25915
|
-
getCurrencySymbol(this._cube.currencyCode, 'narrow') +
|
25916
|
-
getLocaleNumberFormat(this._session.language, NumberFormatStyle.Currency)
|
25917
|
-
: getLocaleNumberFormat(this._session.language, NumberFormatStyle.Decimal), columns = this._cube.axes.filter(a => this._options.series.indexOf(a.name) > -1), rows = [{
|
25933
|
+
const numberFormat = this._service.getNumberFormat(this._cube.currencyCode), columns = this._cube.axes.filter(a => this._options.series.indexOf(a.name) > -1), rows = [{
|
25918
25934
|
index: 1,
|
25919
25935
|
cells: columns.map((c, i) => ({
|
25920
25936
|
index: i + 1, value: c.title,
|
@@ -29562,7 +29578,7 @@ let CubePerformanceWidget = class CubePerformanceWidget {
|
|
29562
29578
|
labelFormat: '',
|
29563
29579
|
titleStyle: {
|
29564
29580
|
fontFamily: FONT_FAMILY,
|
29565
|
-
|
29581
|
+
fontWeight: '400'
|
29566
29582
|
},
|
29567
29583
|
title: this._translate.get('Duration'),
|
29568
29584
|
//lineStyle: { width: 0 },
|
@@ -34104,11 +34120,11 @@ class DesignerItemComponent {
|
|
34104
34120
|
this._destroy?.complete();
|
34105
34121
|
}
|
34106
34122
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: DesignerItemComponent, deps: [{ token: i0.ElementRef }, { token: i1$3.FormBuilder }, { token: i2$1.DomSanitizer }, { token: DesignerRef }, { token: BizDocComponentFactoryResolver }], target: i0.ɵɵFactoryTarget.Component }); }
|
34107
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.5", type: DesignerItemComponent, selector: "bizdoc-designer-element", inputs: { privileges: "privileges", icon: "icon", form: "form", context: "context" }, outputs: { onSave: "save", onContinue: "continue" }, queries: [{ propertyName: "editContent", first: true, predicate: EditContentDirective, descendants: true }, { propertyName: "addContent", first: true, predicate: AddContentDirective, descendants: true }, { propertyName: "widgetContent", first: true, predicate: WidgetContentDirective, descendants: true }, { propertyName: "customContents", predicate: CustomContentDirective }], usesOnChanges: true, ngImport: i0, template: "@switch (mode) {\r\n<!--widget mode -->\r\n@case ('widget') {\r\n<!--icon -->\r\n @if (model.familyKey) {\r\n @if (SVG[model.familyKey]) {\r\n<img class=\"logo\" [src]=\"resource(SVG[model.familyKey])\" [bizdocTooltip]=\"model.family\" />\r\n }\r\n @else {\r\n<div>{{model.family}}</div>\r\n }\r\n }\r\n<!--options-->\r\n<ng-container (attached)=\"optionsAttached($event)\" [cdkPortalOutlet]=\"options\"></ng-container>\r\n<!--designer widget-->\r\n<ng-container [ngTemplateOutlet]=\"widgetContent?.templateRef\"></ng-container>\r\n}\r\n@case ('edit') {\r\n<!--edit / custom mode -->\r\n@if (context?.active) {\r\n<mat-toolbar class=\"row\">\r\n @if(context.mode === 'add') {\r\n <button mat-icon-button (click)=\"closeView(true)\" [disabled]=\"context.form.invalid\"><mat-icon>save</mat-icon></button>\r\n <span class=\"divider\"></span>\r\n <button mat-icon-button (click)=\"closeView()\" [bizdocTooltip]=\"'Close'|translate\"><mat-icon>close</mat-icon></button>\r\n }\r\n @else {\r\n <button mat-icon-button (click)=\"closeView(true)\" [bizdocTooltip]=\"'Back'|translate\"><mat-icon>keyboard_backspace</mat-icon></button>\r\n }\r\n</mat-toolbar>\r\n<form autocomplete=\"off\" class=\"column\" (keydown)=\"handleKeyboardEvent($event)\">\r\n <h2 class=\"mat-h2\">{{context.title|translate}}</h2>\r\n <ng-container *ngTemplateOutlet=\"customView; context: context\"></ng-container>\r\n</form>\r\n}\r\n@else {\r\n<!--edit mode -->\r\n<mat-toolbar bizdoc-sticky>\r\n <button mat-icon-button (click)=\"save()\" [disabled]=\"form.invalid || !form.dirty\"><mat-icon>save</mat-icon></button>\r\n <span class=\"divider\"></span>\r\n <button mat-icon-button (click)=\"close()\" [bizdocTooltip]=\"'Close'|translate\"><mat-icon>close</mat-icon></button>\r\n</mat-toolbar>\r\n<form autocomplete=\"off\" class=\"column\" (keydown)=\"handleKeyboardEvent($event)\">\r\n @if (model.resourceType) {\r\n <p class=\"message\" (click)=\"unlock($event)\" [innerHTML]=\"'UnlockMultilang'|translate\"></p>\r\n <br />\r\n }\r\n <ng-container [formGroup]=\"form\">\r\n <div class=\"row gap\">\r\n <bizdoc-localized-string #title formControlName=\"title\" [placeholder]=\"'Title'|translate\" required class=\"flex column\"></bizdoc-localized-string>\r\n <mat-form-field class=\"flex\">\r\n <mat-label>{{'Name'|translate}}</mat-label>\r\n <input matInput formControlName=\"name\" required />\r\n @if (form.controls.name.hasError('required')) {\r\n <mat-error [innerHTML]=\"'RequiredErr'|translate:('Name'|translate)\"></mat-error>\r\n }\r\n @if (form.controls.name.hasError('duplicate')) {\r\n <mat-error [innerHTML]=\"'DuplicateErr'|translate:('Name'|translate)\"></mat-error>\r\n }\r\n </mat-form-field>\r\n </div>\r\n @if (icon) {\r\n <bizdoc-icon-picker formControlName=\"icon\" required></bizdoc-icon-picker>\r\n }\r\n </ng-container>\r\n <!--arguments-->\r\n @if (arguments) {\r\n <ng-container (attached)=\"argumentsAttached($event)\" [cdkPortalOutlet]=\"arguments\"></ng-container>\r\n }\r\n <!--edit template-->\r\n <ng-container [ngTemplateOutlet]=\"editContent?.templateRef\"></ng-container>\r\n <!--options-->\r\n @if (options) {\r\n <ng-container (attached)=\"optionsAttached($event)\" [cdkPortalOutlet]=\"options\"></ng-container>\r\n }\r\n <!--privileges-->\r\n @if (form.controls.privileges) {\r\n <bizdoc-designer-privileges [form]=\"form.controls.privileges\"></bizdoc-designer-privileges>\r\n }\r\n</form>\r\n}\r\n}\r\n<!--add-->\r\n@case ('add') {\r\n<form autocomplete=\"off\" class=\"column\" (keydown)=\"handleKeyboardEvent($event)\">\r\n <!--arguments-->\r\n @if (arguments) {\r\n <ng-container (attached)=\"argumentsAttached($event)\" [cdkPortalOutlet]=\"arguments\"></ng-container>\r\n }\r\n <!--add template-->\r\n <ng-container [ngTemplateOutlet]=\"addContent?.templateRef\"></ng-container>\r\n @if (options) {\r\n <!--options-->\r\n <ng-container (attached)=\"optionsAttached($event)\" [cdkPortalOutlet]=\"options\"></ng-container>\r\n }\r\n <!-- continue-->\r\n <div class=\"row actions\">\r\n <span class=\"divider\"></span>\r\n <button mat-stroked-button [disabled]=\"form.invalid\" (click)=\"continue()\" type=\"button\">{{'Continue'|translate}} <mat-icon class=\"mat-icon-rtl-mirror\">double_arrow</mat-icon></button>\r\n </div>\r\n</form>\r\n }\r\n}\r\n", styles: ["img.logo{display:block;height:26px}:host{flex:1}form{min-width:280px;padding:8px}p.message{margin:5px}:host ::ng-deep .cdk-drag-handle{cursor:move}\n"], dependencies: [{ kind: "directive", type: i5.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1$3.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1$3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1$3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$3.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i1$3.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$3.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i5$1.CdkPortalOutlet, selector: "[cdkPortalOutlet]", inputs: ["cdkPortalOutlet"], outputs: ["attached"], exportAs: ["cdkPortalOutlet"] }, { kind: "component", type: i8$1.MatToolbar, selector: "mat-toolbar", inputs: ["color"], exportAs: ["matToolbar"] }, { kind: "component", type: i3$1.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i3$1.MatLabel, selector: "mat-label" }, { kind: "directive", type: i3$1.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "component", type: i8.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "component", type: i8.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "directive", type: i3$3.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i10.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: TooltipDirective, selector: "[bizdocTooltip]", inputs: ["bizdocTooltip", "bizdocTooltipTemplate", "bizdocTooltipContext", "bizdocTooltipPosition", "bizdocTooltipDuration", "bizdocTooltipDisabled"] }, { kind: "component", type: LocalizedStringComponent, selector: "bizdoc-localized-string", inputs: ["class", "floatLabel", "value", "placeholder", "required", "disabled", "maxlength"] }, { kind: "component", type: DesignerPrivilegesComponent, selector: "bizdoc-designer-privileges", inputs: ["form"] }, { kind: "component", type: IconPickerComponent, selector: "bizdoc-icon-picker", inputs: ["value", "required", "disabled"], outputs: ["valueChanges"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }] }); }
|
34123
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.5", type: DesignerItemComponent, selector: "bizdoc-designer-element", inputs: { privileges: "privileges", icon: "icon", form: "form", context: "context" }, outputs: { onSave: "save", onContinue: "continue" }, queries: [{ propertyName: "editContent", first: true, predicate: EditContentDirective, descendants: true }, { propertyName: "addContent", first: true, predicate: AddContentDirective, descendants: true }, { propertyName: "widgetContent", first: true, predicate: WidgetContentDirective, descendants: true }, { propertyName: "customContents", predicate: CustomContentDirective }], usesOnChanges: true, ngImport: i0, template: "@switch (mode) {\r\n<!--widget mode -->\r\n@case ('widget') {\r\n<!--icon -->\r\n @if (model.familyKey) {\r\n @if (SVG[model.familyKey]) {\r\n<img class=\"logo\" [src]=\"resource(SVG[model.familyKey])\" [bizdocTooltip]=\"model.family\" />\r\n }\r\n @else {\r\n<div>{{model.family}}</div>\r\n }\r\n }\r\n<!--options-->\r\n<ng-container (attached)=\"optionsAttached($event)\" [cdkPortalOutlet]=\"options\"></ng-container>\r\n<!--designer widget-->\r\n<ng-container [ngTemplateOutlet]=\"widgetContent?.templateRef\"></ng-container>\r\n}\r\n@case ('edit') {\r\n<!--edit / custom mode -->\r\n@if (context?.active) {\r\n<mat-toolbar class=\"row\">\r\n @if(context.mode === 'add') {\r\n <button mat-icon-button (click)=\"closeView(true)\" [disabled]=\"context.form.invalid\"><mat-icon>save</mat-icon></button>\r\n <span class=\"divider\"></span>\r\n <button mat-icon-button (click)=\"closeView()\" [bizdocTooltip]=\"'Close'|translate\"><mat-icon>close</mat-icon></button>\r\n }\r\n @else {\r\n <button mat-icon-button (click)=\"closeView(true)\" [bizdocTooltip]=\"'Back'|translate\"><mat-icon>keyboard_backspace</mat-icon></button>\r\n }\r\n</mat-toolbar>\r\n<form autocomplete=\"off\" class=\"column\" (keydown)=\"handleKeyboardEvent($event)\">\r\n <h2 class=\"mat-h2\">{{context.title|translate}}</h2>\r\n <ng-container *ngTemplateOutlet=\"customView; context: context\"></ng-container>\r\n</form>\r\n}\r\n@else {\r\n<!--edit mode -->\r\n<mat-toolbar bizdoc-sticky>\r\n <button mat-icon-button (click)=\"save()\" [disabled]=\"form.invalid || !form.dirty\"><mat-icon>save</mat-icon></button>\r\n <span class=\"divider\"></span>\r\n <button mat-icon-button (click)=\"close()\" [bizdocTooltip]=\"'Close'|translate\"><mat-icon>close</mat-icon></button>\r\n</mat-toolbar>\r\n<form autocomplete=\"off\" class=\"column\" (keydown)=\"handleKeyboardEvent($event)\">\r\n @if (model.resourceType) {\r\n <p class=\"message\" (click)=\"unlock($event)\" [innerHTML]=\"'UnlockMultilang'|translate\"></p>\r\n <br />\r\n }\r\n <ng-container [formGroup]=\"form\">\r\n <div class=\"row gap\">\r\n <bizdoc-localized-string #title formControlName=\"title\" [placeholder]=\"'Title'|translate\" required class=\"flex column\"></bizdoc-localized-string>\r\n <mat-form-field class=\"flex\">\r\n <mat-label>{{'Name'|translate}}</mat-label>\r\n <input matInput formControlName=\"name\" required />\r\n @if (form.controls.name.hasError('required')) {\r\n <mat-error [innerHTML]=\"'RequiredErr'|translate:('Name'|translate)\"></mat-error>\r\n }\r\n @if (form.controls.name.hasError('duplicate')) {\r\n <mat-error [innerHTML]=\"'DuplicateErr'|translate:('Name'|translate)\"></mat-error>\r\n }\r\n </mat-form-field>\r\n </div>\r\n @if (icon) {\r\n <bizdoc-icon-picker formControlName=\"icon\" required></bizdoc-icon-picker>\r\n }\r\n </ng-container>\r\n <!--arguments-->\r\n @if (arguments) {\r\n <ng-container (attached)=\"argumentsAttached($event)\" [cdkPortalOutlet]=\"arguments\"></ng-container>\r\n }\r\n <!--edit template-->\r\n <ng-container [ngTemplateOutlet]=\"editContent?.templateRef\"></ng-container>\r\n <!--options-->\r\n @if (options) {\r\n <ng-container (attached)=\"optionsAttached($event)\" [cdkPortalOutlet]=\"options\"></ng-container>\r\n }\r\n <!--privileges-->\r\n @if (form.controls.privileges) {\r\n <bizdoc-designer-privileges [form]=\"form.controls.privileges\"></bizdoc-designer-privileges>\r\n }\r\n</form>\r\n}\r\n}\r\n<!--add-->\r\n@case ('add') {\r\n<form autocomplete=\"off\" class=\"column\" (keydown)=\"handleKeyboardEvent($event)\">\r\n <!--arguments-->\r\n @if (arguments) {\r\n <ng-container (attached)=\"argumentsAttached($event)\" [cdkPortalOutlet]=\"arguments\"></ng-container>\r\n }\r\n <!--add template-->\r\n <ng-container [ngTemplateOutlet]=\"addContent?.templateRef\"></ng-container>\r\n @if (options) {\r\n <!--options-->\r\n <ng-container (attached)=\"optionsAttached($event)\" [cdkPortalOutlet]=\"options\"></ng-container>\r\n }\r\n <!-- continue-->\r\n <div class=\"row actions\">\r\n <span class=\"divider\"></span>\r\n <button mat-stroked-button [disabled]=\"form.invalid\" (click)=\"continue()\" type=\"button\">{{'Continue'|translate}} <mat-icon class=\"mat-icon-rtl-mirror\">double_arrow</mat-icon></button>\r\n </div>\r\n</form>\r\n }\r\n}\r\n", styles: ["img.logo{display:block;height:26px}:host{flex:1;width:100%}form{min-width:280px;padding:8px}p.message{margin:5px}:host ::ng-deep .cdk-drag-handle{cursor:move}\n"], dependencies: [{ kind: "directive", type: i5.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1$3.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1$3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1$3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$3.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i1$3.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$3.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i5$1.CdkPortalOutlet, selector: "[cdkPortalOutlet]", inputs: ["cdkPortalOutlet"], outputs: ["attached"], exportAs: ["cdkPortalOutlet"] }, { kind: "component", type: i8$1.MatToolbar, selector: "mat-toolbar", inputs: ["color"], exportAs: ["matToolbar"] }, { kind: "component", type: i3$1.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i3$1.MatLabel, selector: "mat-label" }, { kind: "directive", type: i3$1.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "component", type: i8.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "component", type: i8.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "directive", type: i3$3.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i10.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: TooltipDirective, selector: "[bizdocTooltip]", inputs: ["bizdocTooltip", "bizdocTooltipTemplate", "bizdocTooltipContext", "bizdocTooltipPosition", "bizdocTooltipDuration", "bizdocTooltipDisabled"] }, { kind: "component", type: LocalizedStringComponent, selector: "bizdoc-localized-string", inputs: ["class", "floatLabel", "value", "placeholder", "required", "disabled", "maxlength"] }, { kind: "component", type: DesignerPrivilegesComponent, selector: "bizdoc-designer-privileges", inputs: ["form"] }, { kind: "component", type: IconPickerComponent, selector: "bizdoc-icon-picker", inputs: ["value", "required", "disabled"], outputs: ["valueChanges"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }] }); }
|
34108
34124
|
}
|
34109
34125
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: DesignerItemComponent, decorators: [{
|
34110
34126
|
type: Component,
|
34111
|
-
args: [{ selector: 'bizdoc-designer-element', template: "@switch (mode) {\r\n<!--widget mode -->\r\n@case ('widget') {\r\n<!--icon -->\r\n @if (model.familyKey) {\r\n @if (SVG[model.familyKey]) {\r\n<img class=\"logo\" [src]=\"resource(SVG[model.familyKey])\" [bizdocTooltip]=\"model.family\" />\r\n }\r\n @else {\r\n<div>{{model.family}}</div>\r\n }\r\n }\r\n<!--options-->\r\n<ng-container (attached)=\"optionsAttached($event)\" [cdkPortalOutlet]=\"options\"></ng-container>\r\n<!--designer widget-->\r\n<ng-container [ngTemplateOutlet]=\"widgetContent?.templateRef\"></ng-container>\r\n}\r\n@case ('edit') {\r\n<!--edit / custom mode -->\r\n@if (context?.active) {\r\n<mat-toolbar class=\"row\">\r\n @if(context.mode === 'add') {\r\n <button mat-icon-button (click)=\"closeView(true)\" [disabled]=\"context.form.invalid\"><mat-icon>save</mat-icon></button>\r\n <span class=\"divider\"></span>\r\n <button mat-icon-button (click)=\"closeView()\" [bizdocTooltip]=\"'Close'|translate\"><mat-icon>close</mat-icon></button>\r\n }\r\n @else {\r\n <button mat-icon-button (click)=\"closeView(true)\" [bizdocTooltip]=\"'Back'|translate\"><mat-icon>keyboard_backspace</mat-icon></button>\r\n }\r\n</mat-toolbar>\r\n<form autocomplete=\"off\" class=\"column\" (keydown)=\"handleKeyboardEvent($event)\">\r\n <h2 class=\"mat-h2\">{{context.title|translate}}</h2>\r\n <ng-container *ngTemplateOutlet=\"customView; context: context\"></ng-container>\r\n</form>\r\n}\r\n@else {\r\n<!--edit mode -->\r\n<mat-toolbar bizdoc-sticky>\r\n <button mat-icon-button (click)=\"save()\" [disabled]=\"form.invalid || !form.dirty\"><mat-icon>save</mat-icon></button>\r\n <span class=\"divider\"></span>\r\n <button mat-icon-button (click)=\"close()\" [bizdocTooltip]=\"'Close'|translate\"><mat-icon>close</mat-icon></button>\r\n</mat-toolbar>\r\n<form autocomplete=\"off\" class=\"column\" (keydown)=\"handleKeyboardEvent($event)\">\r\n @if (model.resourceType) {\r\n <p class=\"message\" (click)=\"unlock($event)\" [innerHTML]=\"'UnlockMultilang'|translate\"></p>\r\n <br />\r\n }\r\n <ng-container [formGroup]=\"form\">\r\n <div class=\"row gap\">\r\n <bizdoc-localized-string #title formControlName=\"title\" [placeholder]=\"'Title'|translate\" required class=\"flex column\"></bizdoc-localized-string>\r\n <mat-form-field class=\"flex\">\r\n <mat-label>{{'Name'|translate}}</mat-label>\r\n <input matInput formControlName=\"name\" required />\r\n @if (form.controls.name.hasError('required')) {\r\n <mat-error [innerHTML]=\"'RequiredErr'|translate:('Name'|translate)\"></mat-error>\r\n }\r\n @if (form.controls.name.hasError('duplicate')) {\r\n <mat-error [innerHTML]=\"'DuplicateErr'|translate:('Name'|translate)\"></mat-error>\r\n }\r\n </mat-form-field>\r\n </div>\r\n @if (icon) {\r\n <bizdoc-icon-picker formControlName=\"icon\" required></bizdoc-icon-picker>\r\n }\r\n </ng-container>\r\n <!--arguments-->\r\n @if (arguments) {\r\n <ng-container (attached)=\"argumentsAttached($event)\" [cdkPortalOutlet]=\"arguments\"></ng-container>\r\n }\r\n <!--edit template-->\r\n <ng-container [ngTemplateOutlet]=\"editContent?.templateRef\"></ng-container>\r\n <!--options-->\r\n @if (options) {\r\n <ng-container (attached)=\"optionsAttached($event)\" [cdkPortalOutlet]=\"options\"></ng-container>\r\n }\r\n <!--privileges-->\r\n @if (form.controls.privileges) {\r\n <bizdoc-designer-privileges [form]=\"form.controls.privileges\"></bizdoc-designer-privileges>\r\n }\r\n</form>\r\n}\r\n}\r\n<!--add-->\r\n@case ('add') {\r\n<form autocomplete=\"off\" class=\"column\" (keydown)=\"handleKeyboardEvent($event)\">\r\n <!--arguments-->\r\n @if (arguments) {\r\n <ng-container (attached)=\"argumentsAttached($event)\" [cdkPortalOutlet]=\"arguments\"></ng-container>\r\n }\r\n <!--add template-->\r\n <ng-container [ngTemplateOutlet]=\"addContent?.templateRef\"></ng-container>\r\n @if (options) {\r\n <!--options-->\r\n <ng-container (attached)=\"optionsAttached($event)\" [cdkPortalOutlet]=\"options\"></ng-container>\r\n }\r\n <!-- continue-->\r\n <div class=\"row actions\">\r\n <span class=\"divider\"></span>\r\n <button mat-stroked-button [disabled]=\"form.invalid\" (click)=\"continue()\" type=\"button\">{{'Continue'|translate}} <mat-icon class=\"mat-icon-rtl-mirror\">double_arrow</mat-icon></button>\r\n </div>\r\n</form>\r\n }\r\n}\r\n", styles: ["img.logo{display:block;height:26px}:host{flex:1}form{min-width:280px;padding:8px}p.message{margin:5px}:host ::ng-deep .cdk-drag-handle{cursor:move}\n"] }]
|
34127
|
+
args: [{ selector: 'bizdoc-designer-element', template: "@switch (mode) {\r\n<!--widget mode -->\r\n@case ('widget') {\r\n<!--icon -->\r\n @if (model.familyKey) {\r\n @if (SVG[model.familyKey]) {\r\n<img class=\"logo\" [src]=\"resource(SVG[model.familyKey])\" [bizdocTooltip]=\"model.family\" />\r\n }\r\n @else {\r\n<div>{{model.family}}</div>\r\n }\r\n }\r\n<!--options-->\r\n<ng-container (attached)=\"optionsAttached($event)\" [cdkPortalOutlet]=\"options\"></ng-container>\r\n<!--designer widget-->\r\n<ng-container [ngTemplateOutlet]=\"widgetContent?.templateRef\"></ng-container>\r\n}\r\n@case ('edit') {\r\n<!--edit / custom mode -->\r\n@if (context?.active) {\r\n<mat-toolbar class=\"row\">\r\n @if(context.mode === 'add') {\r\n <button mat-icon-button (click)=\"closeView(true)\" [disabled]=\"context.form.invalid\"><mat-icon>save</mat-icon></button>\r\n <span class=\"divider\"></span>\r\n <button mat-icon-button (click)=\"closeView()\" [bizdocTooltip]=\"'Close'|translate\"><mat-icon>close</mat-icon></button>\r\n }\r\n @else {\r\n <button mat-icon-button (click)=\"closeView(true)\" [bizdocTooltip]=\"'Back'|translate\"><mat-icon>keyboard_backspace</mat-icon></button>\r\n }\r\n</mat-toolbar>\r\n<form autocomplete=\"off\" class=\"column\" (keydown)=\"handleKeyboardEvent($event)\">\r\n <h2 class=\"mat-h2\">{{context.title|translate}}</h2>\r\n <ng-container *ngTemplateOutlet=\"customView; context: context\"></ng-container>\r\n</form>\r\n}\r\n@else {\r\n<!--edit mode -->\r\n<mat-toolbar bizdoc-sticky>\r\n <button mat-icon-button (click)=\"save()\" [disabled]=\"form.invalid || !form.dirty\"><mat-icon>save</mat-icon></button>\r\n <span class=\"divider\"></span>\r\n <button mat-icon-button (click)=\"close()\" [bizdocTooltip]=\"'Close'|translate\"><mat-icon>close</mat-icon></button>\r\n</mat-toolbar>\r\n<form autocomplete=\"off\" class=\"column\" (keydown)=\"handleKeyboardEvent($event)\">\r\n @if (model.resourceType) {\r\n <p class=\"message\" (click)=\"unlock($event)\" [innerHTML]=\"'UnlockMultilang'|translate\"></p>\r\n <br />\r\n }\r\n <ng-container [formGroup]=\"form\">\r\n <div class=\"row gap\">\r\n <bizdoc-localized-string #title formControlName=\"title\" [placeholder]=\"'Title'|translate\" required class=\"flex column\"></bizdoc-localized-string>\r\n <mat-form-field class=\"flex\">\r\n <mat-label>{{'Name'|translate}}</mat-label>\r\n <input matInput formControlName=\"name\" required />\r\n @if (form.controls.name.hasError('required')) {\r\n <mat-error [innerHTML]=\"'RequiredErr'|translate:('Name'|translate)\"></mat-error>\r\n }\r\n @if (form.controls.name.hasError('duplicate')) {\r\n <mat-error [innerHTML]=\"'DuplicateErr'|translate:('Name'|translate)\"></mat-error>\r\n }\r\n </mat-form-field>\r\n </div>\r\n @if (icon) {\r\n <bizdoc-icon-picker formControlName=\"icon\" required></bizdoc-icon-picker>\r\n }\r\n </ng-container>\r\n <!--arguments-->\r\n @if (arguments) {\r\n <ng-container (attached)=\"argumentsAttached($event)\" [cdkPortalOutlet]=\"arguments\"></ng-container>\r\n }\r\n <!--edit template-->\r\n <ng-container [ngTemplateOutlet]=\"editContent?.templateRef\"></ng-container>\r\n <!--options-->\r\n @if (options) {\r\n <ng-container (attached)=\"optionsAttached($event)\" [cdkPortalOutlet]=\"options\"></ng-container>\r\n }\r\n <!--privileges-->\r\n @if (form.controls.privileges) {\r\n <bizdoc-designer-privileges [form]=\"form.controls.privileges\"></bizdoc-designer-privileges>\r\n }\r\n</form>\r\n}\r\n}\r\n<!--add-->\r\n@case ('add') {\r\n<form autocomplete=\"off\" class=\"column\" (keydown)=\"handleKeyboardEvent($event)\">\r\n <!--arguments-->\r\n @if (arguments) {\r\n <ng-container (attached)=\"argumentsAttached($event)\" [cdkPortalOutlet]=\"arguments\"></ng-container>\r\n }\r\n <!--add template-->\r\n <ng-container [ngTemplateOutlet]=\"addContent?.templateRef\"></ng-container>\r\n @if (options) {\r\n <!--options-->\r\n <ng-container (attached)=\"optionsAttached($event)\" [cdkPortalOutlet]=\"options\"></ng-container>\r\n }\r\n <!-- continue-->\r\n <div class=\"row actions\">\r\n <span class=\"divider\"></span>\r\n <button mat-stroked-button [disabled]=\"form.invalid\" (click)=\"continue()\" type=\"button\">{{'Continue'|translate}} <mat-icon class=\"mat-icon-rtl-mirror\">double_arrow</mat-icon></button>\r\n </div>\r\n</form>\r\n }\r\n}\r\n", styles: ["img.logo{display:block;height:26px}:host{flex:1;width:100%}form{min-width:280px;padding:8px}p.message{margin:5px}:host ::ng-deep .cdk-drag-handle{cursor:move}\n"] }]
|
34112
34128
|
}], ctorParameters: () => [{ type: i0.ElementRef }, { type: i1$3.FormBuilder }, { type: i2$1.DomSanitizer }, { type: DesignerRef, decorators: [{
|
34113
34129
|
type: Inject,
|
34114
34130
|
args: [DesignerRef]
|
@@ -34550,11 +34566,11 @@ class CubeDesignComponent extends DesignerTypeElementComponent {
|
|
34550
34566
|
});
|
34551
34567
|
}
|
34552
34568
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: CubeDesignComponent, deps: [{ token: i1$3.FormBuilder }, { token: SystemService }, { token: PromptService }, { token: i0.ElementRef }, { token: DesignerRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
34553
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.5", type: CubeDesignComponent, selector: "ng-component", viewQueries: [{ propertyName: "element", first: true, predicate: ["element"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<bizdoc-designer-element [form]=\"form\" [privileges]=\"true\" [context]=\"context\" (continue)=\"onContinue()\">\r\n <!-- widget -->\r\n <ng-template bizdocContent>\r\n @if (jobInfo) {\r\n <dl>\r\n @if (jobInfo.lastExecution) {\r\n <dt>{{'LastExecution'|translate}}</dt>\r\n <dd>{{jobInfo.lastExecution|amTimeAgo}}</dd>\r\n }\r\n @if (jobInfo.nextExecution) {\r\n <dt>{{'NextExecution'|translate}}</dt>\r\n <dd>{{jobInfo.nextExecution|amTimeAgo}}</dd>\r\n }\r\n @if (jobInfo.lastJobState) {\r\n <dt>{{'LastJobState'|translate}}</dt>\r\n <dd>\r\n @if (jobInfo.error) {\r\n <mat-icon [bizdocTooltip]=\"jobInfo.error\">report</mat-icon>\r\n }\r\n <span class=\"job-state\">{{jobInfo.lastJobState| translate}}</span>\r\n </dd>\r\n }\r\n </dl>\r\n }\r\n <div class=\"row start center\">\r\n <button mat-stroked-button (click)=\"sync()\" [disabled]=\"model.draft || syncing\">\r\n <span> {{'Synchronize'|translate}}</span>\r\n </button>\r\n \r\n @if (syncing) {\r\n <mat-spinner diameter=\"22\"></mat-spinner>\r\n }\r\n </div>\r\n <div class=\"row\">\r\n @if(model.axes?.length)\r\n {\r\n <mat-chip-set>\r\n @for(axis of model.axes; track axis){\r\n <mat-chip>{{axis.title}}</mat-chip>\r\n }\r\n @for(index of model.indices || []; track index){\r\n <mat-chip>{{index.title}}</mat-chip>\r\n }\r\n </mat-chip-set>\r\n }\r\n </div>\r\n </ng-template>\r\n <!-- edit -->\r\n <ng-template bizdocEditContent>\r\n <ng-container [formGroup]=\"form\">\r\n <mat-label>{{'SecurityLevel'|translate}}</mat-label>\r\n <mat-radio-group formControlName=\"scope\">\r\n <p></p>\r\n <mat-radio-button color=\"warn\">{{'Global'|translate}}</mat-radio-button>\r\n <p>{{'SecurityGlobalHelp'|translate}}</p>\r\n <mat-radio-button value=\"Positions\">{{'Positions'|translate}}</mat-radio-button>\r\n <p>{{'SecurityPositionsHelp'|translate}}</p>\r\n <mat-radio-button value=\"Patterns\">{{'Patterns'|translate}}</mat-radio-button>\r\n <p>{{'SecurityPatternsHelp'|translate}}</p>\r\n </mat-radio-group>\r\n <ng-container formGroupName=\"yAxis\">\r\n <mat-form-field class=\"flex\">\r\n <mat-label>{{'Type'|translate}}</mat-label>\r\n <mat-select formControlName=\"type\">\r\n <mat-option value=\"Currency\">{{'Currency'|translate}}</mat-option>\r\n <mat-option value=\"Number\">{{'Numeric'|translate}}</mat-option>\r\n <mat-option value=\"Count\">{{'Accumulative'|translate}}</mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n </ng-container>\r\n <mat-form-field>\r\n <mat-label>{{'Currency'|translate}}</mat-label>\r\n <mat-select formControlName=\"currencyCode\" [sortComparator]=\"sortComparator\">\r\n @for (c of currencies; track c) {\r\n <mat-option [value]=\"c.name\">{{c.title}}</mat-option>\r\n }\r\n </mat-select>\r\n </mat-form-field>\r\n <!--Axes-->\r\n <h2 class=\"mat-h2 row\">\r\n {{'Axes'|translate}}\r\n <span class=\"divider\"></span>\r\n <button mat-icon-button (click)=\"add(axes, newAxis(), 'Axis', 'axis')\" [bizdocTooltip]=\"'Add'|translate\" type=\"button\"><mat-icon>add_circle_outline</mat-icon></button>\r\n </h2>\r\n <table formArrayName=\"axes\" class=\"mat-mdc-table\" cdkDropList (cdkDropListDropped)=\"drop($event, axes)\">\r\n @for (a of axes.controls; track a; let index = $index) {\r\n <tr class=\"mat-mdc-row\" [formGroup]=\"a\" cdkDrag>\r\n <td class=\"mat-mdc-cell\">\r\n <mat-icon cdkDragHandle>drag_indicator</mat-icon>\r\n </td>\r\n <td class=\"mat-mdc-cell flex\">\r\n {{a.controls.title.value}}\r\n </td>\r\n <td class=\"mat-mdc-cell nowrap\">\r\n <button mat-icon-button (click)=\"edit(a, 'Axis', 'axis')\" [bizdocTooltip]=\"'Edit'|translate\" type=\"button\"><mat-icon>edit</mat-icon></button>\r\n <button mat-icon-button (click)=\"axes.removeAt(index)\" [bizdocTooltip]=\"'Remove'|translate\" type=\"button\"><mat-icon>delete</mat-icon></button>\r\n </td>\r\n </tr>\r\n }\r\n </table>\r\n <!--Indices-->\r\n <h2 class=\"mat-h2 row\">\r\n {{'Indices'|translate}}\r\n <span class=\"divider\"></span>\r\n <button mat-icon-button (click)=\"add(indices, newIndex(), 'Index', 'index')\" [bizdocTooltip]=\"'Add'|translate\" type=\"button\"><mat-icon>add_circle_outline</mat-icon></button>\r\n </h2>\r\n <table formArrayName=\"indices\" class=\"mat-mdc-table\" cdkDropList (cdkDropListDropped)=\"drop($event, indices)\">\r\n @for (i of indices.controls; track i; let index = $index) {\r\n <tr class=\"mat-mdc-row\" [formGroup]=\"i\" cdkDrag>\r\n <td class=\"mat-mdc-cell\">\r\n <mat-icon cdkDragHandle>drag_indicator</mat-icon>\r\n </td>\r\n <td class=\"mat-mdc-cell flex\">\r\n {{i.controls.title.value}}\r\n </td>\r\n <td class=\"mat-mdc-cell nowrap\">\r\n <button mat-icon-button (click)=\"edit(i, 'Index', 'index')\" [bizdocTooltip]=\"'Edit'|translate\" type=\"button\"><mat-icon>edit</mat-icon></button>\r\n <button mat-icon-button (click)=\"indices.removeAt(index)\" [bizdocTooltip]=\"'Remove'|translate\" type=\"button\"><mat-icon>delete</mat-icon></button>\r\n </td>\r\n </tr>\r\n }\r\n </table>\r\n @if (indices.controls.length) {\r\n <mat-form-field>\r\n <mat-label>{{'AnomalyNotification'|translate}}</mat-label>\r\n <mat-select formControlName=\"anomaly\">\r\n <mat-option value=\"None\">{{'None'|translate}}</mat-option>\r\n <mat-option value=\"Positions\">{{'Positions'|translate}}</mat-option>\r\n <mat-option value=\"Recipients\">{{'Everyone'|translate}}</mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n }\r\n <!--Patterns-->\r\n <h2 class=\"mat-h2 row\">\r\n {{'Patterns'|translate}}\r\n <span class=\"divider\"></span>\r\n <button mat-icon-button (click)=\"add(patterns, newPattern(), 'Pattern', 'pattern')\" [bizdocTooltip]=\"'Add'|translate\" type=\"button\"><mat-icon>add_circle_outline</mat-icon></button>\r\n </h2>\r\n <table formArrayName=\"indices\" class=\"mat-mdc-table\" cdkDropList (cdkDropListDropped)=\"drop($event, patterns)\">\r\n @for (p of patterns.controls; track p; let index = $index) {\r\n <tr class=\"mat-mdc-row\" [formGroup]=\"p\" cdkDrag>\r\n <td class=\"mat-mdc-cell\">\r\n <mat-icon cdkDragHandle>drag_indicator</mat-icon>\r\n </td>\r\n <td class=\"mat-mdc-cell flex\">\r\n {{p.controls.title.value}}\r\n </td>\r\n <td class=\"mat-mdc-cell nowrap\">\r\n <button mat-icon-button (click)=\"edit(p, 'Pattern', 'pattern')\" [bizdocTooltip]=\"'Edit'|translate\" type=\"button\"><mat-icon>edit</mat-icon></button>\r\n <button mat-icon-button (click)=\"patterns.removeAt(index)\" [bizdocTooltip]=\"'Remove'|translate\" type=\"button\"><mat-icon>delete</mat-icon></button>\r\n </td>\r\n </tr>\r\n }\r\n </table>\r\n <!--Views-->\r\n <h2 class=\"row mat-h2\">\r\n {{'CubeViews'|translate}}\r\n <span class=\"divider\"></span>\r\n <button mat-icon-button (click)=\"add(views, newView(), 'CubeView', 'view')\" [bizdocTooltip]=\"'Add'|translate\" type=\"button\"><mat-icon>add_circle_outline</mat-icon></button>\r\n </h2>\r\n <table formArrayName=\"views\" class=\"mat-mdc-table\" cdkDropList (cdkDropListDropped)=\"drop($event, views)\">\r\n @for (v of views.controls; track v; let index = $index) {\r\n <tr class=\"mat-mdc-row\" [formGroup]=\"v\" cdkDrag>\r\n <td class=\"mat-mdc-cell\">\r\n <mat-icon cdkDragHandle>drag_indicator</mat-icon>\r\n </td>\r\n <td class=\"mat-mdc-cell flex\">\r\n {{v.controls.title.value}}\r\n </td>\r\n <td class=\"mat-mdc-cell nowrap\">\r\n <button mat-icon-button (click)=\"edit(v, 'View', 'view')\" [bizdocTooltip]=\"'Edit'|translate\" type=\"button\"><mat-icon>edit</mat-icon></button>\r\n <button mat-icon-button (click)=\"views.removeAt(index)\" [bizdocTooltip]=\"'Remove'|translate\" type=\"button\"><mat-icon>delete</mat-icon></button>\r\n </td>\r\n </tr>\r\n }\r\n </table>\r\n <mat-form-field>\r\n <mat-label>{{'Schedule'|translate}}</mat-label>\r\n <bizdoc-timespan-input formControlName=\"schedule\"></bizdoc-timespan-input>\r\n <mat-icon matSuffix>timer</mat-icon>\r\n <mat-hint></mat-hint>\r\n </mat-form-field>\r\n </ng-container>\r\n </ng-template>\r\n <!--idx-->\r\n <ng-template bizdocCustomContent=\"index\" let-form=\"form\">\r\n <ng-container [formGroup]=\"form\">\r\n <mat-form-field class=\"flex\">\r\n <mat-label>{{'Title'|translate}}</mat-label>\r\n <input matInput formControlName=\"title\" required />\r\n @if (form.controls.title.hasError('required')) {\r\n <mat-error [innerHTML]=\"'RequiredErr'|translate:('Title'|translate)\"></mat-error>\r\n }\r\n </mat-form-field>\r\n <mat-form-field class=\"flex\">\r\n <mat-label>{{'Name'|translate}}</mat-label>\r\n <input matInput formControlName=\"name\" required />\r\n @if (form.controls.name.hasError('required')) {\r\n <mat-error [innerHTML]=\"'RequiredErr'|translate:('Name'|translate)\"></mat-error>\r\n }\r\n </mat-form-field>\r\n </ng-container>\r\n </ng-template>\r\n <!-- pattern-->\r\n <ng-template bizdocCustomContent=\"pattern\" let-form=\"form\">\r\n <ng-container [formGroup]=\"form\">\r\n <mat-form-field class=\"flex\">\r\n <mat-label>{{'Title'|translate}}</mat-label>\r\n <input matInput formControlName=\"title\" required />\r\n @if (form.controls.title.hasError('required')) {\r\n <mat-error [innerHTML]=\"'RequiredErr'|translate:('Title'|translate)\"></mat-error>\r\n }\r\n </mat-form-field>\r\n <bizdoc-designer-cube-filter [cube]=\"model\" [form]=\"form.controls.axes\"></bizdoc-designer-cube-filter>\r\n <bizdoc-designer-privileges [form]=\"form\"></bizdoc-designer-privileges>\r\n </ng-container>\r\n </ng-template>\r\n <!-- view -->\r\n <ng-template bizdocCustomContent=\"view\" let-form=\"form\">\r\n <ng-container [formGroup]=\"form\">\r\n <mat-form-field class=\"flex\">\r\n <mat-label>{{'Title'|translate}}</mat-label>\r\n <input matInput formControlName=\"title\" required />\r\n @if (form.controls.title.hasError('required')) {\r\n <mat-error [innerHTML]=\"'RequiredErr'|translate:('Title'|translate)\"></mat-error>\r\n }\r\n </mat-form-field>\r\n <mat-form-field>\r\n <mat-label>{{'Type'|translate}}</mat-label>\r\n <mat-select formControlName=\"type\">\r\n <mat-option value=\"Chart\">{{'Chart'|translate}}</mat-option>\r\n <mat-option value=\"PivotChart\">{{'PivotChart'|translate}}</mat-option>\r\n <mat-option value=\"PivotGrid\">{{'PivotGrid'|translate}}</mat-option>\r\n <mat-option value=\"Grid\">{{'Grid'|translate}}</mat-option>\r\n <mat-option value=\"Spreadsheet\">{{'Spreadsheet'|translate}}</mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n <mat-form-field>\r\n <mat-label>{{'XAxis'|translate}}</mat-label>\r\n <mat-select formControlName=\"xAxis\" required multiple [sortComparator]=\"sortComparator\">\r\n @for (a of axes.controls; track a) {\r\n <mat-option [value]=\"a.controls.name.value\">{{a.controls.title.value || a.controls.name.value}}</mat-option>\r\n }\r\n </mat-select>\r\n @if (form.controls.xAxis.hasError('required')) {\r\n <mat-error [innerHTML]=\"'RequiredErr'|translate:('XAxis'|translate)\"></mat-error>\r\n }\r\n </mat-form-field>\r\n <mat-form-field>\r\n <mat-label>{{'Series'|translate}}</mat-label>\r\n <mat-select formControlName=\"series\" multiple [sortComparator]=\"sortComparator\">\r\n @for (a of axes.controls; track a) {\r\n @if (form.controls.xAxis.value?.indexOf(a.controls.name.value) < 0) {\r\n <mat-option [value]=\"a.controls.name.value\">{{a.controls.title.value|| a.controls.name.value}}</mat-option>\r\n }\r\n }\r\n </mat-select>\r\n @if (form.controls.series.hasError('required')) {\r\n <mat-error [innerHTML]=\"'RequiredErr'|translate:('Series'|translate)\"></mat-error>\r\n }\r\n </mat-form-field>\r\n <mat-form-field>\r\n <mat-label>{{'Indices'|translate}}</mat-label>\r\n <mat-select formControlName=\"indices\" multiple>\r\n @for (i of indices.controls; track i) {\r\n <mat-option [value]=\"i.controls.name.value\">{{i.controls.title.value|| i.controls.name.value}}</mat-option>\r\n }\r\n </mat-select>\r\n </mat-form-field>\r\n <mat-form-field>\r\n <mat-label>{{'ChartType'|translate}}</mat-label>\r\n <mat-select formControlName=\"chartType\">\r\n @switch (form.controls.type.value) {\r\n @case ('Chart') {\r\n <mat-option value=\"Pie\" [disabled]=\"form.controls.series.value?.length>0\">{{'Pie'|translate}}</mat-option>\r\n <mat-option value=\"Doughnut\" [disabled]=\"form.controls.series.value?.length>0\">{{'Doughnut'|translate}}</mat-option>\r\n <mat-option value=\"HalfDoughnut\" [disabled]=\"form.controls.series.value?.length>0\">{{'HalfDoughnut'|translate}}</mat-option>\r\n <mat-option value=\"Funnel\" [disabled]=\"form.controls.series.value?.length>0\">{{'Funnel'|translate}}</mat-option>\r\n <mat-option value=\"Pyramid\" [disabled]=\"form.controls.series.value?.length>0\">{{'Pyramid'|translate}}</mat-option>\r\n <mat-option value=\"Column\">{{'Column'|translate}}</mat-option>\r\n <mat-option value=\"Bar\">{{'Bar'|translate}}</mat-option>\r\n <mat-option value=\"Bubble\">{{'Bubble'|translate}}</mat-option>\r\n <mat-option value=\"Line\">{{'Line'|translate}}</mat-option>\r\n <mat-option value=\"Spline\">{{'Spline'|translate}}</mat-option>\r\n <mat-option value=\"Area\">{{'Area'|translate}}</mat-option>\r\n <mat-option value=\"Scatter\">{{'Scatter'|translate}}</mat-option>\r\n <mat-option value=\"Polar\">{{'Polar'|translate}}</mat-option>\r\n <mat-option value=\"Radar\">{{'Radar'|translate}}</mat-option>\r\n <mat-option value=\"StepLine\">{{'StepLine'|translate}}</mat-option>\r\n <mat-option value=\"StepArea\">{{'StepArea'|translate}}</mat-option>\r\n <mat-option value=\"SplineArea\">{{'SplineArea'|translate}}</mat-option>\r\n <mat-option value=\"StackingBar\" [disabled]=\"!form.controls.series.value?.length\">{{'StackingBar'|translate}}</mat-option>\r\n <mat-option value=\"StackingBar100\" [disabled]=\"!form.controls.series.value?.length\">{{'StackingBar100'|translate}}</mat-option>\r\n <mat-option value=\"StackingArea\" [disabled]=\"!form.controls.series.value?.length\">{{'StackingArea'|translate}}</mat-option>\r\n <mat-option value=\"StackingArea100\" [disabled]=\"!form.controls.series.value?.length\">{{'StackingArea100'|translate}}</mat-option>\r\n <mat-option value=\"StackingColumn\" [disabled]=\"!form.controls.series.value?.length\">{{'StackingColumn'|translate}}</mat-option>\r\n <mat-option value=\"StackingColumn100\" [disabled]=\"!form.controls.series.value?.length\">{{'StackingColumn100'|translate}}</mat-option>\r\n <mat-option value=\"StackingStepArea\" [disabled]=\"!form.controls.series.value?.length\">{{'StackingStepArea'|translate}}</mat-option>\r\n <mat-option value=\"StackingLine\" [disabled]=\"!form.controls.series.value?.length\">{{'StackingLine'|translate}}</mat-option>\r\n <mat-option value=\"StackingLine100\" [disabled]=\"!form.controls.series.value?.length\">{{'StackingLine100'|translate}}</mat-option>\r\n }\r\n @case ('PivotChart') {\r\n <mat-option>{{'None'|translate}}</mat-option>\r\n <mat-option value=\"Column\">{{'Column'|translate}}</mat-option>\r\n <mat-option value=\"Bar\">{{'Bar'|translate}}</mat-option>\r\n <mat-option value=\"Bubble\">{{'Bubble'|translate}}</mat-option>\r\n <mat-option value=\"Line\">{{'Line'|translate}}</mat-option>\r\n <mat-option value=\"Spline\">{{'Spline'|translate}}</mat-option>\r\n <mat-option value=\"SplineArea\">{{'SplineArea'|translate}}</mat-option>\r\n <mat-option value=\"Area\">{{'Area'|translate}}</mat-option>\r\n <mat-option value=\"Scatter\">{{'Scatter'|translate}}</mat-option>\r\n <mat-option value=\"Polar\">{{'Polar'|translate}}</mat-option>\r\n <mat-option value=\"Radar\">{{'Radar'|translate}}</mat-option>\r\n <mat-option value=\"StepLine\">{{'StepLine'|translate}}</mat-option>\r\n <mat-option value=\"StepArea\">{{'StepArea'|translate}}</mat-option>\r\n <mat-option value=\"StackingBar\" [disabled]=\"!form.controls.series.value?.length\">{{'StackingBar'|translate}}</mat-option>\r\n <mat-option value=\"StackingBar100\" [disabled]=\"!form.controls.series.value?.length\">{{'StackingBar100'|translate}}</mat-option>\r\n <mat-option value=\"StackingArea\" [disabled]=\"!form.controls.series.value?.length\">{{'StackingArea'|translate}}</mat-option>\r\n <mat-option value=\"StackingArea100\" [disabled]=\"!form.controls.series.value?.length\">{{'StackingArea100'|translate}}</mat-option>\r\n <mat-option value=\"StackingColumn\" [disabled]=\"!form.controls.series.value?.length\">{{'StackingColumn'|translate}}</mat-option>\r\n <mat-option value=\"StackingColumn100\" [disabled]=\"!form.controls.series.value?.length\">{{'StackingColumn100'|translate}}</mat-option>\r\n <mat-option value=\"StackingStepArea\" [disabled]=\"!form.controls.series.value?.length\">{{'StackingStepArea'|translate}}</mat-option>\r\n <mat-option value=\"StackingLine\" [disabled]=\"!form.controls.series.value?.length\">{{'StackingLine'|translate}}</mat-option>\r\n <mat-option value=\"StackingLine100\" [disabled]=\"!form.controls.series.value?.length\">{{'StackingLine100'|translate}}</mat-option>\r\n }\r\n }\r\n </mat-select>\r\n </mat-form-field>\r\n <mat-form-field>\r\n <mat-label>{{'IndicesChartType'|translate}}</mat-label>\r\n <mat-select formControlName=\"indicesChartType\">\r\n @switch (form.controls.type.value) {\r\n @case ('Chart') {\r\n <mat-option value=\"Column\">{{'Column'|translate}}</mat-option>\r\n <mat-option value=\"Bar\">{{'Bar'|translate}}</mat-option>\r\n <mat-option value=\"Bubble\">{{'Bubble'|translate}}</mat-option>\r\n <mat-option value=\"Line\">{{'Line'|translate}}</mat-option>\r\n <mat-option value=\"Spline\">{{'Spline'|translate}}</mat-option>\r\n <mat-option value=\"SplineArea\">{{'SplineArea'|translate}}</mat-option>\r\n <mat-option value=\"Area\">{{'Area'|translate}}</mat-option>\r\n <mat-option value=\"Scatter\">{{'Scatter'|translate}}</mat-option>\r\n <mat-option value=\"Polar\">{{'Polar'|translate}}</mat-option>\r\n <mat-option value=\"Radar\">{{'Radar'|translate}}</mat-option>\r\n <mat-option value=\"StepLine\">{{'StepLine'|translate}}</mat-option>\r\n <mat-option value=\"StepArea\">{{'StepArea'|translate}}</mat-option>\r\n <mat-option value=\"StackingColumn\" [disabled]=\"form.controls.indices.value?.length<2\">{{'StackingColumn'|translate}}</mat-option>\r\n <mat-option value=\"StackingColumn100\" [disabled]=\"form.controls.indices.value?.length<2\">{{'StackingColumn100'|translate}}</mat-option>\r\n <mat-option value=\"StackingBar\" [disabled]=\"form.controls.indices.value?.length<2\">{{'StackingBar'|translate}}</mat-option>\r\n <mat-option value=\"StackingBar100\" [disabled]=\"form.controls.indices.value?.length<2\">{{'StackingBar100'|translate}}</mat-option>\r\n <mat-option value=\"StackingLine\" [disabled]=\"form.controls.indices.value?.length<2\">{{'StackingLine'|translate}}</mat-option>\r\n <mat-option value=\"StackingLine100\" [disabled]=\"form.controls.indices.value?.length<2\">{{'StackingLine100'|translate}}</mat-option>\r\n <mat-option value=\"StackingArea\" [disabled]=\"form.controls.indices.value?.length<2\">{{'StackingArea'|translate}}</mat-option>\r\n <mat-option value=\"StackingArea100\" [disabled]=\"form.controls.indices.value?.length<2\">{{'StackingArea100'|translate}}</mat-option>\r\n <mat-option value=\"StackingStepArea\" [disabled]=\"form.controls.indices.value?.length<2\">{{'StackingStepArea'|translate}}</mat-option>\r\n }\r\n @case ('PivotChart') {\r\n <mat-option>{{'None'|translate}}</mat-option>\r\n <mat-option value=\"Column\">{{'Column'|translate}}</mat-option>\r\n <mat-option value=\"Bar\">{{'Bar'|translate}}</mat-option>\r\n <mat-option value=\"Bubble\">{{'Bubble'|translate}}</mat-option>\r\n <mat-option value=\"Line\">{{'Line'|translate}}</mat-option>\r\n <mat-option value=\"Spline\">{{'Spline'|translate}}</mat-option>\r\n <mat-option value=\"SplineArea\">{{'SplineArea'|translate}}</mat-option>\r\n <mat-option value=\"Area\">{{'Area'|translate}}</mat-option>\r\n <mat-option value=\"Scatter\">{{'Scatter'|translate}}</mat-option>\r\n <mat-option value=\"Polar\">{{'Polar'|translate}}</mat-option>\r\n <mat-option value=\"Radar\">{{'Radar'|translate}}</mat-option>\r\n <mat-option value=\"StepLine\">{{'StepLine'|translate}}</mat-option>\r\n <mat-option value=\"StepArea\">{{'StepArea'|translate}}</mat-option>\r\n <mat-option value=\"StackingBar\" [disabled]=\"form.controls.series.value?.length<2\">{{'StackingBar'|translate}}</mat-option>\r\n <mat-option value=\"StackingBar100\" [disabled]=\"form.controls.series.value?.length<2\">{{'StackingBar100'|translate}}</mat-option>\r\n <mat-option value=\"StackingArea\" [disabled]=\"form.controls.series.value?.length<2\">{{'StackingArea'|translate}}</mat-option>\r\n <mat-option value=\"StackingArea100\" [disabled]=\"form.controls.series.value?.length<2\">{{'StackingArea100'|translate}}</mat-option>\r\n <mat-option value=\"StackingColumn\" [disabled]=\"form.controls.series.value?.length<2\">{{'StackingColumn'|translate}}</mat-option>\r\n <mat-option value=\"StackingColumn100\" [disabled]=\"form.controls.series.value?.length<2\">{{'StackingColumn100'|translate}}</mat-option>\r\n <mat-option value=\"StackingStepArea\" [disabled]=\"form.controls.series.value?.length<2\">{{'StackingStepArea'|translate}}</mat-option>\r\n <mat-option value=\"StackingLine\" [disabled]=\"form.controls.series.value?.length<2\">{{'StackingLine'|translate}}</mat-option>\r\n <mat-option value=\"StackingLine100\" [disabled]=\"form.controls.series.value?.length<2\">{{'StackingLine100'|translate}}</mat-option>\r\n }\r\n }\r\n </mat-select>\r\n </mat-form-field>\r\n <mat-form-field>\r\n <mat-label>{{'Guide'|translate}}</mat-label>\r\n <mat-select formControlName=\"guide\">\r\n <mat-option>{{'None'|translate}}</mat-option>\r\n @for (g of guides; track g) {\r\n <mat-option [value]=\"g.name\">{{g.title |localizedString}}</mat-option>\r\n }\r\n </mat-select>\r\n </mat-form-field>\r\n @if (cube) {\r\n <bizdoc-designer-cube-filter [cube]=\"cube\" [form]=\"form.controls.filters\"></bizdoc-designer-cube-filter>\r\n }\r\n </ng-container>\r\n </ng-template>\r\n <!-- Axis -->\r\n <ng-template bizdocCustomContent=\"axis\" let-form=\"form\">\r\n <ng-container [formGroup]=\"form\">\r\n <div class=\"row gap\">\r\n <mat-form-field class=\"flex\">\r\n <mat-label>{{'Title'|translate}}</mat-label>\r\n <input matInput formControlName=\"title\" required />\r\n @if (form.controls.title.hasError('required')) {\r\n <mat-error [innerHTML]=\"'RequiredErr'|translate:('Title'|translate)\"></mat-error>\r\n }\r\n </mat-form-field>\r\n <mat-form-field class=\"flex\">\r\n <mat-label>{{'Name'|translate}}</mat-label>\r\n <input matInput formControlName=\"name\" required />\r\n @if (form.controls.name.hasError('required')) {\r\n <mat-error [innerHTML]=\"'RequiredErr'|translate:('Name'|translate)\"></mat-error>\r\n }\r\n </mat-form-field>\r\n </div>\r\n <mat-form-field>\r\n <mat-label>{{'DataType'|translate}}</mat-label>\r\n <mat-select formControlName=\"dataType\" required>\r\n @for (t of typegroups['_'].elements|sort: 'title'; track t) {\r\n <mat-option [value]=\"t.name\">\r\n {{t.title}}\r\n </mat-option>\r\n }\r\n @for (g of typegroups|sort: 'title'; track g) {\r\n <mat-optgroup [label]=\"g.title\">\r\n @for (t of g.elements|sort: 'title'; track t) {\r\n <mat-option [value]=\"t.name\">\r\n {{t.title}}\r\n </mat-option>\r\n }\r\n </mat-optgroup>\r\n }\r\n </mat-select>\r\n @if (form.controls.title.hasError('required')) {\r\n <mat-error [innerHTML]=\"'RequiredErr'|translate:('DataType'|translate)\"></mat-error>\r\n }\r\n </mat-form-field>\r\n <div><mat-checkbox formControlName=\"combination\">{{'CombinationAxis'|translate}}</mat-checkbox></div>\r\n <div><mat-checkbox formControlName=\"sensitive\">{{'SensitiveAxis'|translate}}</mat-checkbox></div>\r\n <mat-form-field>\r\n <mat-label>{{'SelectionMode'|translate}}</mat-label>\r\n <mat-select formControlName=\"selectionMode\">\r\n <mat-option value=\"None\">{{'None'|translate}}</mat-option>\r\n <mat-option>{{'OneMode'|translate}}</mat-option>\r\n <mat-option value=\"Multiple\">{{'Multiple'|translate}}</mat-option>\r\n <mat-option value=\"Search\">{{'Autocomplete'|translate}}</mat-option>\r\n <mat-option value=\"Pattern\">{{'Pattern'|translate}}</mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n <mat-form-field>\r\n <mat-label>{{'DescendentOf'|translate}}</mat-label>\r\n <mat-select formControlName=\"descendentOf\">\r\n @for (a of axes.controls; track a) {\r\n @if (a!=form) {\r\n <mat-option [value]=\"a.controls.name.value\">{{a.controls.title.value}}</mat-option>\r\n }\r\n }\r\n </mat-select>\r\n </mat-form-field>\r\n <div><mat-checkbox formControlName=\"indexable\">{{'IndexableAxis'|translate}}</mat-checkbox></div>\r\n </ng-container>\r\n </ng-template>\r\n</bizdoc-designer-element>\r\n", styles: [":host ::ng-deep form{min-width:350px;max-width:450px}:host ::ng-deep .mat-mdc-radio-group p{margin-inline-start:8px}.mat-mdc-table{width:100%}.mat-mdc-table .mat-mdc-cell:last-child{width:80px}.flex{flex:1}table tr td:first-child{width:26px}dl{width:100%;overflow:hidden;padding:0;margin:0}dt{padding:0;margin:0;clear:both}dd{float:left;padding:0;margin:0}\n"], dependencies: [{ kind: "directive", type: i1$3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1$3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$3.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i1$3.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$3.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i1$3.FormGroupName, selector: "[formGroupName]", inputs: ["formGroupName"] }, { kind: "directive", type: i1$3.FormArrayName, selector: "[formArrayName]", inputs: ["formArrayName"] }, { kind: "component", type: i4.MatChip, selector: "mat-basic-chip, [mat-basic-chip], mat-chip, [mat-chip]", inputs: ["role", "id", "aria-label", "aria-description", "value", "color", "removable", "highlighted", "disableRipple", "disabled"], outputs: ["removed", "destroyed"], exportAs: ["matChip"] }, { kind: "component", type: i4.MatChipSet, selector: "mat-chip-set", inputs: ["disabled", "role", "tabIndex"] }, { kind: "directive", type: i2$6.CdkDropList, selector: "[cdkDropList], cdk-drop-list", inputs: ["cdkDropListConnectedTo", "cdkDropListData", "cdkDropListOrientation", "id", "cdkDropListLockAxis", "cdkDropListDisabled", "cdkDropListSortingDisabled", "cdkDropListEnterPredicate", "cdkDropListSortPredicate", "cdkDropListAutoScrollDisabled", "cdkDropListAutoScrollStep", "cdkDropListElementContainer"], outputs: ["cdkDropListDropped", "cdkDropListEntered", "cdkDropListExited", "cdkDropListSorted"], exportAs: ["cdkDropList"] }, { kind: "directive", type: i2$6.CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer", "cdkDragScale"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { kind: "directive", type: i2$6.CdkDragHandle, selector: "[cdkDragHandle]", inputs: ["cdkDragHandleDisabled"] }, { kind: "directive", type: i2$b.MatRadioGroup, selector: "mat-radio-group", inputs: ["color", "name", "labelPosition", "value", "selected", "disabled", "required", "disabledInteractive"], outputs: ["change"], exportAs: ["matRadioGroup"] }, { kind: "component", type: i2$b.MatRadioButton, selector: "mat-radio-button", inputs: ["id", "name", "aria-label", "aria-labelledby", "aria-describedby", "disableRipple", "tabIndex", "checked", "value", "labelPosition", "disabled", "required", "color", "disabledInteractive"], outputs: ["change"], exportAs: ["matRadioButton"] }, { kind: "component", type: i7$1.MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "mode", "value", "diameter", "strokeWidth"], exportAs: ["matProgressSpinner"] }, { kind: "component", type: i2$5.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "component", type: i2$5.MatOptgroup, selector: "mat-optgroup", inputs: ["label", "disabled"], exportAs: ["matOptgroup"] }, { kind: "component", type: i3$1.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i3$1.MatLabel, selector: "mat-label" }, { kind: "directive", type: i3$1.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "directive", type: i3$1.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "directive", type: i3$1.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "component", type: i4$2.MatSelect, selector: "mat-select", inputs: ["aria-describedby", "panelClass", "disabled", "disableRipple", "tabIndex", "hideSingleSelectionIndicator", "placeholder", "required", "multiple", "disableOptionCentering", "compareWith", "value", "aria-label", "aria-labelledby", "errorStateMatcher", "typeaheadDebounceInterval", "sortComparator", "id", "panelWidth"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["matSelect"] }, { kind: "component", type: i8.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "component", type: i8.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "component", type: i2$7.MatCheckbox, selector: "mat-checkbox", inputs: ["aria-label", "aria-labelledby", "aria-describedby", "id", "required", "labelPosition", "name", "value", "disableRipple", "tabIndex", "color", "disabledInteractive", "checked", "disabled", "indeterminate"], outputs: ["change", "indeterminateChange"], exportAs: ["matCheckbox"] }, { kind: "directive", type: i3$3.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i10.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: TooltipDirective, selector: "[bizdocTooltip]", inputs: ["bizdocTooltip", "bizdocTooltipTemplate", "bizdocTooltipContext", "bizdocTooltipPosition", "bizdocTooltipDuration", "bizdocTooltipDisabled"] }, { kind: "component", type: TimespanInput, selector: "bizdoc-timespan-input", inputs: ["placeholder", "required", "disabled", "value"] }, { kind: "component", type: DesignerCubeFilterComponent, selector: "bizdoc-designer-cube-filter", inputs: ["cube", "form"] }, { kind: "component", type: DesignerPrivilegesComponent, selector: "bizdoc-designer-privileges", inputs: ["form"] }, { kind: "directive", type: CustomContentDirective, selector: "[bizdocCustomContent]", inputs: ["bizdocCustomContent"] }, { kind: "directive", type: EditContentDirective, selector: "[bizdocEditContent]" }, { kind: "directive", type: WidgetContentDirective, selector: "[bizdocContent]" }, { kind: "component", type: DesignerItemComponent, selector: "bizdoc-designer-element", inputs: ["privileges", "icon", "form", "context"], outputs: ["save", "continue"] }, { kind: "pipe", type: LocalizedStringPipe, name: "localizedString" }, { kind: "pipe", type: TimeAgoPipe, name: "amTimeAgo" }, { kind: "pipe", type: ArraySortPipe, name: "sort" }, { kind: "pipe", type: TranslatePipe, name: "translate" }] }); }
|
34569
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.5", type: CubeDesignComponent, selector: "ng-component", viewQueries: [{ propertyName: "element", first: true, predicate: ["element"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<bizdoc-designer-element [form]=\"form\" [privileges]=\"true\" [context]=\"context\" (continue)=\"onContinue()\">\r\n <!-- widget -->\r\n <ng-template bizdocContent>\r\n @if (jobInfo) {\r\n <dl>\r\n @if (jobInfo.lastExecution) {\r\n <dt>{{'LastExecution'|translate}}</dt>\r\n <dd>{{jobInfo.lastExecution|amTimeAgo}}</dd>\r\n }\r\n @if (jobInfo.nextExecution) {\r\n <dt>{{'NextExecution'|translate}}</dt>\r\n <dd>{{jobInfo.nextExecution|amTimeAgo}}</dd>\r\n }\r\n @if (jobInfo.lastJobState) {\r\n <dt>{{'LastJobState'|translate}}</dt>\r\n <dd>\r\n @if (jobInfo.error) {\r\n <mat-icon [bizdocTooltip]=\"jobInfo.error\">report</mat-icon>\r\n }\r\n <span class=\"job-state\">{{jobInfo.lastJobState| translate}}</span>\r\n </dd>\r\n }\r\n </dl>\r\n }\r\n <div class=\"row start center\">\r\n <button mat-stroked-button (click)=\"sync()\" [disabled]=\"model.draft || syncing\">\r\n <span> {{'Synchronize'|translate}}</span>\r\n </button>\r\n \r\n @if (syncing) {\r\n <mat-spinner diameter=\"22\"></mat-spinner>\r\n }\r\n </div>\r\n <div class=\"row\">\r\n @if(model.axes?.length)\r\n {\r\n <mat-chip-set>\r\n @for(axis of model.axes; track axis){\r\n <mat-chip>{{axis.title}}</mat-chip>\r\n }\r\n @for(index of model.indices || []; track index){\r\n <mat-chip>{{index.title}}</mat-chip>\r\n }\r\n </mat-chip-set>\r\n }\r\n </div>\r\n </ng-template>\r\n <!-- edit -->\r\n <ng-template bizdocEditContent>\r\n <ng-container [formGroup]=\"form\">\r\n <mat-label>{{'SecurityLevel'|translate}}</mat-label>\r\n <mat-radio-group formControlName=\"scope\">\r\n <p></p>\r\n <mat-radio-button color=\"warn\">{{'Global'|translate}}</mat-radio-button>\r\n <p>{{'SecurityGlobalHelp'|translate}}</p>\r\n <mat-radio-button value=\"Positions\">{{'Positions'|translate}}</mat-radio-button>\r\n <p>{{'SecurityPositionsHelp'|translate}}</p>\r\n <mat-radio-button value=\"Patterns\">{{'Patterns'|translate}}</mat-radio-button>\r\n <p>{{'SecurityPatternsHelp'|translate}}</p>\r\n </mat-radio-group>\r\n <ng-container formGroupName=\"yAxis\">\r\n <mat-form-field class=\"flex\">\r\n <mat-label>{{'Type'|translate}}</mat-label>\r\n <mat-select formControlName=\"type\">\r\n <mat-option value=\"Currency\">{{'Currency'|translate}}</mat-option>\r\n <mat-option value=\"Number\">{{'Numeric'|translate}}</mat-option>\r\n <mat-option value=\"Count\">{{'Accumulative'|translate}}</mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n </ng-container>\r\n <mat-form-field>\r\n <mat-label>{{'Currency'|translate}}</mat-label>\r\n <mat-select formControlName=\"currencyCode\" [sortComparator]=\"sortComparator\">\r\n @for (c of currencies; track c) {\r\n <mat-option [value]=\"c.name\">{{c.title}}</mat-option>\r\n }\r\n </mat-select>\r\n </mat-form-field>\r\n <!--Axes-->\r\n <h2 class=\"mat-h2 row\">\r\n {{'Axes'|translate}}\r\n <span class=\"divider\"></span>\r\n <button mat-icon-button (click)=\"add(axes, newAxis(), 'Axis', 'axis')\" [bizdocTooltip]=\"'Add'|translate\" type=\"button\"><mat-icon>add_circle_outline</mat-icon></button>\r\n </h2>\r\n <table formArrayName=\"axes\" class=\"mat-mdc-table\" cdkDropList (cdkDropListDropped)=\"drop($event, axes)\">\r\n @for (a of axes.controls; track a; let index = $index) {\r\n <tr class=\"mat-mdc-row\" [formGroup]=\"a\" cdkDrag>\r\n <td class=\"mat-mdc-cell\">\r\n <mat-icon cdkDragHandle>drag_indicator</mat-icon>\r\n </td>\r\n <td class=\"mat-mdc-cell flex\">\r\n {{a.controls.title.value}}\r\n </td>\r\n <td class=\"mat-mdc-cell nowrap\">\r\n <button mat-icon-button (click)=\"edit(a, 'Axis', 'axis')\" [bizdocTooltip]=\"'Edit'|translate\" type=\"button\"><mat-icon>edit</mat-icon></button>\r\n <button mat-icon-button (click)=\"axes.removeAt(index)\" [bizdocTooltip]=\"'Remove'|translate\" type=\"button\"><mat-icon>delete</mat-icon></button>\r\n </td>\r\n </tr>\r\n }\r\n </table>\r\n <!--Indices-->\r\n <h2 class=\"mat-h2 row\">\r\n {{'Indices'|translate}}\r\n <span class=\"divider\"></span>\r\n <button mat-icon-button (click)=\"add(indices, newIndex(), 'Index', 'index')\" [bizdocTooltip]=\"'Add'|translate\" type=\"button\"><mat-icon>add_circle_outline</mat-icon></button>\r\n </h2>\r\n <table formArrayName=\"indices\" class=\"mat-mdc-table\" cdkDropList (cdkDropListDropped)=\"drop($event, indices)\">\r\n @for (i of indices.controls; track i; let index = $index) {\r\n <tr class=\"mat-mdc-row\" [formGroup]=\"i\" cdkDrag>\r\n <td class=\"mat-mdc-cell\">\r\n <mat-icon cdkDragHandle>drag_indicator</mat-icon>\r\n </td>\r\n <td class=\"mat-mdc-cell flex\">\r\n {{i.controls.title.value}}\r\n </td>\r\n <td class=\"mat-mdc-cell nowrap\">\r\n <button mat-icon-button (click)=\"edit(i, 'Index', 'index')\" [bizdocTooltip]=\"'Edit'|translate\" type=\"button\"><mat-icon>edit</mat-icon></button>\r\n <button mat-icon-button (click)=\"indices.removeAt(index)\" [bizdocTooltip]=\"'Remove'|translate\" type=\"button\"><mat-icon>delete</mat-icon></button>\r\n </td>\r\n </tr>\r\n }\r\n </table>\r\n @if (indices.controls.length) {\r\n <mat-form-field>\r\n <mat-label>{{'AnomalyNotification'|translate}}</mat-label>\r\n <mat-select formControlName=\"anomaly\">\r\n <mat-option value=\"None\">{{'None'|translate}}</mat-option>\r\n <mat-option value=\"Positions\">{{'Positions'|translate}}</mat-option>\r\n <mat-option value=\"Recipients\">{{'Everyone'|translate}}</mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n }\r\n <!--Patterns-->\r\n <h2 class=\"mat-h2 row\">\r\n {{'Patterns'|translate}}\r\n <span class=\"divider\"></span>\r\n <button mat-icon-button (click)=\"add(patterns, newPattern(), 'Pattern', 'pattern')\" [bizdocTooltip]=\"'Add'|translate\" type=\"button\"><mat-icon>add_circle_outline</mat-icon></button>\r\n </h2>\r\n <table formArrayName=\"indices\" class=\"mat-mdc-table\" cdkDropList (cdkDropListDropped)=\"drop($event, patterns)\">\r\n @for (p of patterns.controls; track p; let index = $index) {\r\n <tr class=\"mat-mdc-row\" [formGroup]=\"p\" cdkDrag>\r\n <td class=\"mat-mdc-cell\">\r\n <mat-icon cdkDragHandle>drag_indicator</mat-icon>\r\n </td>\r\n <td class=\"mat-mdc-cell flex\">\r\n {{p.controls.title.value}}\r\n </td>\r\n <td class=\"mat-mdc-cell nowrap\">\r\n <button mat-icon-button (click)=\"edit(p, 'Pattern', 'pattern')\" [bizdocTooltip]=\"'Edit'|translate\" type=\"button\"><mat-icon>edit</mat-icon></button>\r\n <button mat-icon-button (click)=\"patterns.removeAt(index)\" [bizdocTooltip]=\"'Remove'|translate\" type=\"button\"><mat-icon>delete</mat-icon></button>\r\n </td>\r\n </tr>\r\n }\r\n </table>\r\n <!--Views-->\r\n <h2 class=\"row mat-h2\">\r\n {{'CubeViews'|translate}}\r\n <span class=\"divider\"></span>\r\n <button mat-icon-button (click)=\"add(views, newView(), 'CubeView', 'view')\" [bizdocTooltip]=\"'Add'|translate\" type=\"button\"><mat-icon>add_circle_outline</mat-icon></button>\r\n </h2>\r\n <table formArrayName=\"views\" class=\"mat-mdc-table\" cdkDropList (cdkDropListDropped)=\"drop($event, views)\">\r\n @for (v of views.controls; track v; let index = $index) {\r\n <tr class=\"mat-mdc-row\" [formGroup]=\"v\" cdkDrag>\r\n <td class=\"mat-mdc-cell\">\r\n <mat-icon cdkDragHandle>drag_indicator</mat-icon>\r\n </td>\r\n <td class=\"mat-mdc-cell flex\">\r\n {{v.controls.title.value}}\r\n </td>\r\n <td class=\"mat-mdc-cell nowrap\">\r\n <button mat-icon-button (click)=\"edit(v, 'View', 'view')\" [bizdocTooltip]=\"'Edit'|translate\" type=\"button\"><mat-icon>edit</mat-icon></button>\r\n <button mat-icon-button (click)=\"views.removeAt(index)\" [bizdocTooltip]=\"'Remove'|translate\" type=\"button\"><mat-icon>delete</mat-icon></button>\r\n </td>\r\n </tr>\r\n }\r\n </table>\r\n <mat-form-field>\r\n <mat-label>{{'Schedule'|translate}}</mat-label>\r\n <bizdoc-timespan-input formControlName=\"schedule\"></bizdoc-timespan-input>\r\n <mat-icon matSuffix>timer</mat-icon>\r\n <mat-hint></mat-hint>\r\n </mat-form-field>\r\n </ng-container>\r\n </ng-template>\r\n <!--idx-->\r\n <ng-template bizdocCustomContent=\"index\" let-form=\"form\">\r\n <ng-container [formGroup]=\"form\">\r\n <mat-form-field class=\"flex\">\r\n <mat-label>{{'Title'|translate}}</mat-label>\r\n <input matInput formControlName=\"title\" required />\r\n @if (form.controls.title.hasError('required')) {\r\n <mat-error [innerHTML]=\"'RequiredErr'|translate:('Title'|translate)\"></mat-error>\r\n }\r\n </mat-form-field>\r\n <mat-form-field class=\"flex\">\r\n <mat-label>{{'Name'|translate}}</mat-label>\r\n <input matInput formControlName=\"name\" required />\r\n @if (form.controls.name.hasError('required')) {\r\n <mat-error [innerHTML]=\"'RequiredErr'|translate:('Name'|translate)\"></mat-error>\r\n }\r\n </mat-form-field>\r\n </ng-container>\r\n </ng-template>\r\n <!-- pattern-->\r\n <ng-template bizdocCustomContent=\"pattern\" let-form=\"form\">\r\n <ng-container [formGroup]=\"form\">\r\n <mat-form-field class=\"flex\">\r\n <mat-label>{{'Title'|translate}}</mat-label>\r\n <input matInput formControlName=\"title\" required />\r\n @if (form.controls.title.hasError('required')) {\r\n <mat-error [innerHTML]=\"'RequiredErr'|translate:('Title'|translate)\"></mat-error>\r\n }\r\n </mat-form-field>\r\n <bizdoc-designer-cube-filter [cube]=\"model\" [form]=\"form.controls.axes\"></bizdoc-designer-cube-filter>\r\n <bizdoc-designer-privileges [form]=\"form\"></bizdoc-designer-privileges>\r\n </ng-container>\r\n </ng-template>\r\n <!-- view -->\r\n <ng-template bizdocCustomContent=\"view\" let-form=\"form\">\r\n <ng-container [formGroup]=\"form\">\r\n <mat-form-field class=\"flex\">\r\n <mat-label>{{'Title'|translate}}</mat-label>\r\n <input matInput formControlName=\"title\" required />\r\n @if (form.controls.title.hasError('required')) {\r\n <mat-error [innerHTML]=\"'RequiredErr'|translate:('Title'|translate)\"></mat-error>\r\n }\r\n </mat-form-field>\r\n <bizdoc-icon-picker formControlName=\"icon\" required></bizdoc-icon-picker>\r\n <mat-form-field>\r\n <mat-label>{{'Type'|translate}}</mat-label>\r\n <mat-select formControlName=\"type\">\r\n <mat-option value=\"Chart\">{{'Chart'|translate}}</mat-option>\r\n <mat-option value=\"PivotChart\">{{'PivotChart'|translate}}</mat-option>\r\n <mat-option value=\"PivotGrid\">{{'PivotGrid'|translate}}</mat-option>\r\n <mat-option value=\"Grid\">{{'Grid'|translate}}</mat-option>\r\n <mat-option value=\"Spreadsheet\">{{'Spreadsheet'|translate}}</mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n <mat-form-field>\r\n <mat-label>{{'XAxis'|translate}}</mat-label>\r\n <mat-select formControlName=\"xAxis\" required multiple [sortComparator]=\"sortComparator\">\r\n @for (a of axes.controls; track a) {\r\n <mat-option [value]=\"a.controls.name.value\">{{a.controls.title.value || a.controls.name.value}}</mat-option>\r\n }\r\n </mat-select>\r\n @if (form.controls.xAxis.hasError('required')) {\r\n <mat-error [innerHTML]=\"'RequiredErr'|translate:('XAxis'|translate)\"></mat-error>\r\n }\r\n </mat-form-field>\r\n <mat-form-field>\r\n <mat-label>{{'Series'|translate}}</mat-label>\r\n <mat-select formControlName=\"series\" multiple [sortComparator]=\"sortComparator\">\r\n @for (a of axes.controls; track a) {\r\n @if (form.controls.xAxis.value?.indexOf(a.controls.name.value) < 0) {\r\n <mat-option [value]=\"a.controls.name.value\">{{a.controls.title.value|| a.controls.name.value}}</mat-option>\r\n }\r\n }\r\n </mat-select>\r\n @if (form.controls.series.hasError('required')) {\r\n <mat-error [innerHTML]=\"'RequiredErr'|translate:('Series'|translate)\"></mat-error>\r\n }\r\n </mat-form-field>\r\n <mat-form-field>\r\n <mat-label>{{'Indices'|translate}}</mat-label>\r\n <mat-select formControlName=\"indices\" multiple>\r\n @for (i of indices.controls; track i) {\r\n <mat-option [value]=\"i.controls.name.value\">{{i.controls.title.value|| i.controls.name.value}}</mat-option>\r\n }\r\n </mat-select>\r\n </mat-form-field>\r\n <mat-form-field>\r\n <mat-label>{{'ChartType'|translate}}</mat-label>\r\n <mat-select formControlName=\"chartType\">\r\n @switch (form.controls.type.value) {\r\n @case ('Chart') {\r\n <mat-option value=\"Pie\" [disabled]=\"form.controls.series.value?.length>0\">{{'Pie'|translate}}</mat-option>\r\n <mat-option value=\"Doughnut\" [disabled]=\"form.controls.series.value?.length>0\">{{'Doughnut'|translate}}</mat-option>\r\n <mat-option value=\"HalfDoughnut\" [disabled]=\"form.controls.series.value?.length>0\">{{'HalfDoughnut'|translate}}</mat-option>\r\n <mat-option value=\"Funnel\" [disabled]=\"form.controls.series.value?.length>0\">{{'Funnel'|translate}}</mat-option>\r\n <mat-option value=\"Pyramid\" [disabled]=\"form.controls.series.value?.length>0\">{{'Pyramid'|translate}}</mat-option>\r\n <mat-option value=\"Column\">{{'Column'|translate}}</mat-option>\r\n <mat-option value=\"Bar\">{{'Bar'|translate}}</mat-option>\r\n <mat-option value=\"Bubble\">{{'Bubble'|translate}}</mat-option>\r\n <mat-option value=\"Line\">{{'Line'|translate}}</mat-option>\r\n <mat-option value=\"Spline\">{{'Spline'|translate}}</mat-option>\r\n <mat-option value=\"Area\">{{'Area'|translate}}</mat-option>\r\n <mat-option value=\"Scatter\">{{'Scatter'|translate}}</mat-option>\r\n <mat-option value=\"Polar\">{{'Polar'|translate}}</mat-option>\r\n <mat-option value=\"Radar\">{{'Radar'|translate}}</mat-option>\r\n <mat-option value=\"StepLine\">{{'StepLine'|translate}}</mat-option>\r\n <mat-option value=\"StepArea\">{{'StepArea'|translate}}</mat-option>\r\n <mat-option value=\"SplineArea\">{{'SplineArea'|translate}}</mat-option>\r\n <mat-option value=\"StackingBar\" [disabled]=\"!form.controls.series.value?.length\">{{'StackingBar'|translate}}</mat-option>\r\n <mat-option value=\"StackingBar100\" [disabled]=\"!form.controls.series.value?.length\">{{'StackingBar100'|translate}}</mat-option>\r\n <mat-option value=\"StackingArea\" [disabled]=\"!form.controls.series.value?.length\">{{'StackingArea'|translate}}</mat-option>\r\n <mat-option value=\"StackingArea100\" [disabled]=\"!form.controls.series.value?.length\">{{'StackingArea100'|translate}}</mat-option>\r\n <mat-option value=\"StackingColumn\" [disabled]=\"!form.controls.series.value?.length\">{{'StackingColumn'|translate}}</mat-option>\r\n <mat-option value=\"StackingColumn100\" [disabled]=\"!form.controls.series.value?.length\">{{'StackingColumn100'|translate}}</mat-option>\r\n <mat-option value=\"StackingStepArea\" [disabled]=\"!form.controls.series.value?.length\">{{'StackingStepArea'|translate}}</mat-option>\r\n <mat-option value=\"StackingLine\" [disabled]=\"!form.controls.series.value?.length\">{{'StackingLine'|translate}}</mat-option>\r\n <mat-option value=\"StackingLine100\" [disabled]=\"!form.controls.series.value?.length\">{{'StackingLine100'|translate}}</mat-option>\r\n }\r\n @case ('PivotChart') {\r\n <mat-option>{{'None'|translate}}</mat-option>\r\n <mat-option value=\"Column\">{{'Column'|translate}}</mat-option>\r\n <mat-option value=\"Bar\">{{'Bar'|translate}}</mat-option>\r\n <mat-option value=\"Bubble\">{{'Bubble'|translate}}</mat-option>\r\n <mat-option value=\"Line\">{{'Line'|translate}}</mat-option>\r\n <mat-option value=\"Spline\">{{'Spline'|translate}}</mat-option>\r\n <mat-option value=\"SplineArea\">{{'SplineArea'|translate}}</mat-option>\r\n <mat-option value=\"Area\">{{'Area'|translate}}</mat-option>\r\n <mat-option value=\"Scatter\">{{'Scatter'|translate}}</mat-option>\r\n <mat-option value=\"Polar\">{{'Polar'|translate}}</mat-option>\r\n <mat-option value=\"Radar\">{{'Radar'|translate}}</mat-option>\r\n <mat-option value=\"StepLine\">{{'StepLine'|translate}}</mat-option>\r\n <mat-option value=\"StepArea\">{{'StepArea'|translate}}</mat-option>\r\n <mat-option value=\"StackingBar\" [disabled]=\"!form.controls.series.value?.length\">{{'StackingBar'|translate}}</mat-option>\r\n <mat-option value=\"StackingBar100\" [disabled]=\"!form.controls.series.value?.length\">{{'StackingBar100'|translate}}</mat-option>\r\n <mat-option value=\"StackingArea\" [disabled]=\"!form.controls.series.value?.length\">{{'StackingArea'|translate}}</mat-option>\r\n <mat-option value=\"StackingArea100\" [disabled]=\"!form.controls.series.value?.length\">{{'StackingArea100'|translate}}</mat-option>\r\n <mat-option value=\"StackingColumn\" [disabled]=\"!form.controls.series.value?.length\">{{'StackingColumn'|translate}}</mat-option>\r\n <mat-option value=\"StackingColumn100\" [disabled]=\"!form.controls.series.value?.length\">{{'StackingColumn100'|translate}}</mat-option>\r\n <mat-option value=\"StackingStepArea\" [disabled]=\"!form.controls.series.value?.length\">{{'StackingStepArea'|translate}}</mat-option>\r\n <mat-option value=\"StackingLine\" [disabled]=\"!form.controls.series.value?.length\">{{'StackingLine'|translate}}</mat-option>\r\n <mat-option value=\"StackingLine100\" [disabled]=\"!form.controls.series.value?.length\">{{'StackingLine100'|translate}}</mat-option>\r\n }\r\n }\r\n </mat-select>\r\n </mat-form-field>\r\n <mat-form-field>\r\n <mat-label>{{'IndicesChartType'|translate}}</mat-label>\r\n <mat-select formControlName=\"indicesChartType\">\r\n @switch (form.controls.type.value) {\r\n @case ('Chart') {\r\n <mat-option value=\"Column\">{{'Column'|translate}}</mat-option>\r\n <mat-option value=\"Bar\">{{'Bar'|translate}}</mat-option>\r\n <mat-option value=\"Bubble\">{{'Bubble'|translate}}</mat-option>\r\n <mat-option value=\"Line\">{{'Line'|translate}}</mat-option>\r\n <mat-option value=\"Spline\">{{'Spline'|translate}}</mat-option>\r\n <mat-option value=\"SplineArea\">{{'SplineArea'|translate}}</mat-option>\r\n <mat-option value=\"Area\">{{'Area'|translate}}</mat-option>\r\n <mat-option value=\"Scatter\">{{'Scatter'|translate}}</mat-option>\r\n <mat-option value=\"Polar\">{{'Polar'|translate}}</mat-option>\r\n <mat-option value=\"Radar\">{{'Radar'|translate}}</mat-option>\r\n <mat-option value=\"StepLine\">{{'StepLine'|translate}}</mat-option>\r\n <mat-option value=\"StepArea\">{{'StepArea'|translate}}</mat-option>\r\n <mat-option value=\"StackingColumn\" [disabled]=\"form.controls.indices.value?.length<2\">{{'StackingColumn'|translate}}</mat-option>\r\n <mat-option value=\"StackingColumn100\" [disabled]=\"form.controls.indices.value?.length<2\">{{'StackingColumn100'|translate}}</mat-option>\r\n <mat-option value=\"StackingBar\" [disabled]=\"form.controls.indices.value?.length<2\">{{'StackingBar'|translate}}</mat-option>\r\n <mat-option value=\"StackingBar100\" [disabled]=\"form.controls.indices.value?.length<2\">{{'StackingBar100'|translate}}</mat-option>\r\n <mat-option value=\"StackingLine\" [disabled]=\"form.controls.indices.value?.length<2\">{{'StackingLine'|translate}}</mat-option>\r\n <mat-option value=\"StackingLine100\" [disabled]=\"form.controls.indices.value?.length<2\">{{'StackingLine100'|translate}}</mat-option>\r\n <mat-option value=\"StackingArea\" [disabled]=\"form.controls.indices.value?.length<2\">{{'StackingArea'|translate}}</mat-option>\r\n <mat-option value=\"StackingArea100\" [disabled]=\"form.controls.indices.value?.length<2\">{{'StackingArea100'|translate}}</mat-option>\r\n <mat-option value=\"StackingStepArea\" [disabled]=\"form.controls.indices.value?.length<2\">{{'StackingStepArea'|translate}}</mat-option>\r\n }\r\n @case ('PivotChart') {\r\n <mat-option>{{'None'|translate}}</mat-option>\r\n <mat-option value=\"Column\">{{'Column'|translate}}</mat-option>\r\n <mat-option value=\"Bar\">{{'Bar'|translate}}</mat-option>\r\n <mat-option value=\"Bubble\">{{'Bubble'|translate}}</mat-option>\r\n <mat-option value=\"Line\">{{'Line'|translate}}</mat-option>\r\n <mat-option value=\"Spline\">{{'Spline'|translate}}</mat-option>\r\n <mat-option value=\"SplineArea\">{{'SplineArea'|translate}}</mat-option>\r\n <mat-option value=\"Area\">{{'Area'|translate}}</mat-option>\r\n <mat-option value=\"Scatter\">{{'Scatter'|translate}}</mat-option>\r\n <mat-option value=\"Polar\">{{'Polar'|translate}}</mat-option>\r\n <mat-option value=\"Radar\">{{'Radar'|translate}}</mat-option>\r\n <mat-option value=\"StepLine\">{{'StepLine'|translate}}</mat-option>\r\n <mat-option value=\"StepArea\">{{'StepArea'|translate}}</mat-option>\r\n <mat-option value=\"StackingBar\" [disabled]=\"form.controls.series.value?.length<2\">{{'StackingBar'|translate}}</mat-option>\r\n <mat-option value=\"StackingBar100\" [disabled]=\"form.controls.series.value?.length<2\">{{'StackingBar100'|translate}}</mat-option>\r\n <mat-option value=\"StackingArea\" [disabled]=\"form.controls.series.value?.length<2\">{{'StackingArea'|translate}}</mat-option>\r\n <mat-option value=\"StackingArea100\" [disabled]=\"form.controls.series.value?.length<2\">{{'StackingArea100'|translate}}</mat-option>\r\n <mat-option value=\"StackingColumn\" [disabled]=\"form.controls.series.value?.length<2\">{{'StackingColumn'|translate}}</mat-option>\r\n <mat-option value=\"StackingColumn100\" [disabled]=\"form.controls.series.value?.length<2\">{{'StackingColumn100'|translate}}</mat-option>\r\n <mat-option value=\"StackingStepArea\" [disabled]=\"form.controls.series.value?.length<2\">{{'StackingStepArea'|translate}}</mat-option>\r\n <mat-option value=\"StackingLine\" [disabled]=\"form.controls.series.value?.length<2\">{{'StackingLine'|translate}}</mat-option>\r\n <mat-option value=\"StackingLine100\" [disabled]=\"form.controls.series.value?.length<2\">{{'StackingLine100'|translate}}</mat-option>\r\n }\r\n }\r\n </mat-select>\r\n </mat-form-field>\r\n <mat-form-field>\r\n <mat-label>{{'Guide'|translate}}</mat-label>\r\n <mat-select formControlName=\"guide\">\r\n <mat-option>{{'None'|translate}}</mat-option>\r\n @for (g of guides; track g) {\r\n <mat-option [value]=\"g.name\">{{g.title |localizedString}}</mat-option>\r\n }\r\n </mat-select>\r\n </mat-form-field>\r\n @if (cube) {\r\n <bizdoc-designer-cube-filter [cube]=\"cube\" [form]=\"form.controls.filters\"></bizdoc-designer-cube-filter>\r\n }\r\n </ng-container>\r\n </ng-template>\r\n <!-- Axis -->\r\n <ng-template bizdocCustomContent=\"axis\" let-form=\"form\">\r\n <ng-container [formGroup]=\"form\">\r\n <div class=\"row gap\">\r\n <mat-form-field class=\"flex\">\r\n <mat-label>{{'Title'|translate}}</mat-label>\r\n <input matInput formControlName=\"title\" required />\r\n @if (form.controls.title.hasError('required')) {\r\n <mat-error [innerHTML]=\"'RequiredErr'|translate:('Title'|translate)\"></mat-error>\r\n }\r\n </mat-form-field>\r\n <mat-form-field class=\"flex\">\r\n <mat-label>{{'Name'|translate}}</mat-label>\r\n <input matInput formControlName=\"name\" required />\r\n @if (form.controls.name.hasError('required')) {\r\n <mat-error [innerHTML]=\"'RequiredErr'|translate:('Name'|translate)\"></mat-error>\r\n }\r\n </mat-form-field>\r\n </div>\r\n <mat-form-field>\r\n <mat-label>{{'DataType'|translate}}</mat-label>\r\n <mat-select formControlName=\"dataType\" required>\r\n @for (t of typegroups['_'].elements|sort: 'title'; track t) {\r\n <mat-option [value]=\"t.name\">\r\n {{t.title}}\r\n </mat-option>\r\n }\r\n @for (g of typegroups|sort: 'title'; track g) {\r\n <mat-optgroup [label]=\"g.title\">\r\n @for (t of g.elements|sort: 'title'; track t) {\r\n <mat-option [value]=\"t.name\">\r\n {{t.title}}\r\n </mat-option>\r\n }\r\n </mat-optgroup>\r\n }\r\n </mat-select>\r\n @if (form.controls.title.hasError('required')) {\r\n <mat-error [innerHTML]=\"'RequiredErr'|translate:('DataType'|translate)\"></mat-error>\r\n }\r\n </mat-form-field>\r\n <div><mat-checkbox formControlName=\"combination\">{{'CombinationAxis'|translate}}</mat-checkbox></div>\r\n <div><mat-checkbox formControlName=\"sensitive\">{{'SensitiveAxis'|translate}}</mat-checkbox></div>\r\n <mat-form-field>\r\n <mat-label>{{'SelectionMode'|translate}}</mat-label>\r\n <mat-select formControlName=\"selectionMode\">\r\n <mat-option value=\"None\">{{'None'|translate}}</mat-option>\r\n <mat-option>{{'OneMode'|translate}}</mat-option>\r\n <mat-option value=\"Multiple\">{{'Multiple'|translate}}</mat-option>\r\n <mat-option value=\"Search\">{{'Autocomplete'|translate}}</mat-option>\r\n <mat-option value=\"Pattern\">{{'Pattern'|translate}}</mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n <mat-form-field>\r\n <mat-label>{{'DescendentOf'|translate}}</mat-label>\r\n <mat-select formControlName=\"descendentOf\">\r\n @for (a of axes.controls; track a) {\r\n @if (a!=form) {\r\n <mat-option [value]=\"a.controls.name.value\">{{a.controls.title.value}}</mat-option>\r\n }\r\n }\r\n </mat-select>\r\n </mat-form-field>\r\n <div><mat-checkbox formControlName=\"indexable\">{{'IndexableAxis'|translate}}</mat-checkbox></div>\r\n </ng-container>\r\n </ng-template>\r\n</bizdoc-designer-element>\r\n", styles: [":host ::ng-deep form{min-width:350px;max-width:450px}:host ::ng-deep .mat-mdc-radio-group p{margin-inline-start:8px}.mat-mdc-table{width:100%}.mat-mdc-table .mat-mdc-cell:last-child{width:80px}.flex{flex:1}table tr td:first-child{width:26px}dl{width:100%;overflow:hidden;padding:0;margin:0}dt{padding:0;margin:0;clear:both}dd{float:left;padding:0;margin:0}\n"], dependencies: [{ kind: "directive", type: i1$3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1$3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$3.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i1$3.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$3.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i1$3.FormGroupName, selector: "[formGroupName]", inputs: ["formGroupName"] }, { kind: "directive", type: i1$3.FormArrayName, selector: "[formArrayName]", inputs: ["formArrayName"] }, { kind: "component", type: i4.MatChip, selector: "mat-basic-chip, [mat-basic-chip], mat-chip, [mat-chip]", inputs: ["role", "id", "aria-label", "aria-description", "value", "color", "removable", "highlighted", "disableRipple", "disabled"], outputs: ["removed", "destroyed"], exportAs: ["matChip"] }, { kind: "component", type: i4.MatChipSet, selector: "mat-chip-set", inputs: ["disabled", "role", "tabIndex"] }, { kind: "directive", type: i2$6.CdkDropList, selector: "[cdkDropList], cdk-drop-list", inputs: ["cdkDropListConnectedTo", "cdkDropListData", "cdkDropListOrientation", "id", "cdkDropListLockAxis", "cdkDropListDisabled", "cdkDropListSortingDisabled", "cdkDropListEnterPredicate", "cdkDropListSortPredicate", "cdkDropListAutoScrollDisabled", "cdkDropListAutoScrollStep", "cdkDropListElementContainer"], outputs: ["cdkDropListDropped", "cdkDropListEntered", "cdkDropListExited", "cdkDropListSorted"], exportAs: ["cdkDropList"] }, { kind: "directive", type: i2$6.CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer", "cdkDragScale"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { kind: "directive", type: i2$6.CdkDragHandle, selector: "[cdkDragHandle]", inputs: ["cdkDragHandleDisabled"] }, { kind: "directive", type: i2$b.MatRadioGroup, selector: "mat-radio-group", inputs: ["color", "name", "labelPosition", "value", "selected", "disabled", "required", "disabledInteractive"], outputs: ["change"], exportAs: ["matRadioGroup"] }, { kind: "component", type: i2$b.MatRadioButton, selector: "mat-radio-button", inputs: ["id", "name", "aria-label", "aria-labelledby", "aria-describedby", "disableRipple", "tabIndex", "checked", "value", "labelPosition", "disabled", "required", "color", "disabledInteractive"], outputs: ["change"], exportAs: ["matRadioButton"] }, { kind: "component", type: i7$1.MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "mode", "value", "diameter", "strokeWidth"], exportAs: ["matProgressSpinner"] }, { kind: "component", type: i2$5.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "component", type: i2$5.MatOptgroup, selector: "mat-optgroup", inputs: ["label", "disabled"], exportAs: ["matOptgroup"] }, { kind: "component", type: i3$1.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i3$1.MatLabel, selector: "mat-label" }, { kind: "directive", type: i3$1.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "directive", type: i3$1.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "directive", type: i3$1.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "component", type: i4$2.MatSelect, selector: "mat-select", inputs: ["aria-describedby", "panelClass", "disabled", "disableRipple", "tabIndex", "hideSingleSelectionIndicator", "placeholder", "required", "multiple", "disableOptionCentering", "compareWith", "value", "aria-label", "aria-labelledby", "errorStateMatcher", "typeaheadDebounceInterval", "sortComparator", "id", "panelWidth"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["matSelect"] }, { kind: "component", type: i8.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "component", type: i8.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "component", type: i2$7.MatCheckbox, selector: "mat-checkbox", inputs: ["aria-label", "aria-labelledby", "aria-describedby", "id", "required", "labelPosition", "name", "value", "disableRipple", "tabIndex", "color", "disabledInteractive", "checked", "disabled", "indeterminate"], outputs: ["change", "indeterminateChange"], exportAs: ["matCheckbox"] }, { kind: "directive", type: i3$3.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i10.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: TooltipDirective, selector: "[bizdocTooltip]", inputs: ["bizdocTooltip", "bizdocTooltipTemplate", "bizdocTooltipContext", "bizdocTooltipPosition", "bizdocTooltipDuration", "bizdocTooltipDisabled"] }, { kind: "component", type: TimespanInput, selector: "bizdoc-timespan-input", inputs: ["placeholder", "required", "disabled", "value"] }, { kind: "component", type: DesignerCubeFilterComponent, selector: "bizdoc-designer-cube-filter", inputs: ["cube", "form"] }, { kind: "component", type: DesignerPrivilegesComponent, selector: "bizdoc-designer-privileges", inputs: ["form"] }, { kind: "component", type: IconPickerComponent, selector: "bizdoc-icon-picker", inputs: ["value", "required", "disabled"], outputs: ["valueChanges"] }, { kind: "directive", type: CustomContentDirective, selector: "[bizdocCustomContent]", inputs: ["bizdocCustomContent"] }, { kind: "directive", type: EditContentDirective, selector: "[bizdocEditContent]" }, { kind: "directive", type: WidgetContentDirective, selector: "[bizdocContent]" }, { kind: "component", type: DesignerItemComponent, selector: "bizdoc-designer-element", inputs: ["privileges", "icon", "form", "context"], outputs: ["save", "continue"] }, { kind: "pipe", type: LocalizedStringPipe, name: "localizedString" }, { kind: "pipe", type: TimeAgoPipe, name: "amTimeAgo" }, { kind: "pipe", type: ArraySortPipe, name: "sort" }, { kind: "pipe", type: TranslatePipe, name: "translate" }] }); }
|
34554
34570
|
}
|
34555
34571
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: CubeDesignComponent, decorators: [{
|
34556
34572
|
type: Component,
|
34557
|
-
args: [{ template: "<bizdoc-designer-element [form]=\"form\" [privileges]=\"true\" [context]=\"context\" (continue)=\"onContinue()\">\r\n <!-- widget -->\r\n <ng-template bizdocContent>\r\n @if (jobInfo) {\r\n <dl>\r\n @if (jobInfo.lastExecution) {\r\n <dt>{{'LastExecution'|translate}}</dt>\r\n <dd>{{jobInfo.lastExecution|amTimeAgo}}</dd>\r\n }\r\n @if (jobInfo.nextExecution) {\r\n <dt>{{'NextExecution'|translate}}</dt>\r\n <dd>{{jobInfo.nextExecution|amTimeAgo}}</dd>\r\n }\r\n @if (jobInfo.lastJobState) {\r\n <dt>{{'LastJobState'|translate}}</dt>\r\n <dd>\r\n @if (jobInfo.error) {\r\n <mat-icon [bizdocTooltip]=\"jobInfo.error\">report</mat-icon>\r\n }\r\n <span class=\"job-state\">{{jobInfo.lastJobState| translate}}</span>\r\n </dd>\r\n }\r\n </dl>\r\n }\r\n <div class=\"row start center\">\r\n <button mat-stroked-button (click)=\"sync()\" [disabled]=\"model.draft || syncing\">\r\n <span> {{'Synchronize'|translate}}</span>\r\n </button>\r\n \r\n @if (syncing) {\r\n <mat-spinner diameter=\"22\"></mat-spinner>\r\n }\r\n </div>\r\n <div class=\"row\">\r\n @if(model.axes?.length)\r\n {\r\n <mat-chip-set>\r\n @for(axis of model.axes; track axis){\r\n <mat-chip>{{axis.title}}</mat-chip>\r\n }\r\n @for(index of model.indices || []; track index){\r\n <mat-chip>{{index.title}}</mat-chip>\r\n }\r\n </mat-chip-set>\r\n }\r\n </div>\r\n </ng-template>\r\n <!-- edit -->\r\n <ng-template bizdocEditContent>\r\n <ng-container [formGroup]=\"form\">\r\n <mat-label>{{'SecurityLevel'|translate}}</mat-label>\r\n <mat-radio-group formControlName=\"scope\">\r\n <p></p>\r\n <mat-radio-button color=\"warn\">{{'Global'|translate}}</mat-radio-button>\r\n <p>{{'SecurityGlobalHelp'|translate}}</p>\r\n <mat-radio-button value=\"Positions\">{{'Positions'|translate}}</mat-radio-button>\r\n <p>{{'SecurityPositionsHelp'|translate}}</p>\r\n <mat-radio-button value=\"Patterns\">{{'Patterns'|translate}}</mat-radio-button>\r\n <p>{{'SecurityPatternsHelp'|translate}}</p>\r\n </mat-radio-group>\r\n <ng-container formGroupName=\"yAxis\">\r\n <mat-form-field class=\"flex\">\r\n <mat-label>{{'Type'|translate}}</mat-label>\r\n <mat-select formControlName=\"type\">\r\n <mat-option value=\"Currency\">{{'Currency'|translate}}</mat-option>\r\n <mat-option value=\"Number\">{{'Numeric'|translate}}</mat-option>\r\n <mat-option value=\"Count\">{{'Accumulative'|translate}}</mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n </ng-container>\r\n <mat-form-field>\r\n <mat-label>{{'Currency'|translate}}</mat-label>\r\n <mat-select formControlName=\"currencyCode\" [sortComparator]=\"sortComparator\">\r\n @for (c of currencies; track c) {\r\n <mat-option [value]=\"c.name\">{{c.title}}</mat-option>\r\n }\r\n </mat-select>\r\n </mat-form-field>\r\n <!--Axes-->\r\n <h2 class=\"mat-h2 row\">\r\n {{'Axes'|translate}}\r\n <span class=\"divider\"></span>\r\n <button mat-icon-button (click)=\"add(axes, newAxis(), 'Axis', 'axis')\" [bizdocTooltip]=\"'Add'|translate\" type=\"button\"><mat-icon>add_circle_outline</mat-icon></button>\r\n </h2>\r\n <table formArrayName=\"axes\" class=\"mat-mdc-table\" cdkDropList (cdkDropListDropped)=\"drop($event, axes)\">\r\n @for (a of axes.controls; track a; let index = $index) {\r\n <tr class=\"mat-mdc-row\" [formGroup]=\"a\" cdkDrag>\r\n <td class=\"mat-mdc-cell\">\r\n <mat-icon cdkDragHandle>drag_indicator</mat-icon>\r\n </td>\r\n <td class=\"mat-mdc-cell flex\">\r\n {{a.controls.title.value}}\r\n </td>\r\n <td class=\"mat-mdc-cell nowrap\">\r\n <button mat-icon-button (click)=\"edit(a, 'Axis', 'axis')\" [bizdocTooltip]=\"'Edit'|translate\" type=\"button\"><mat-icon>edit</mat-icon></button>\r\n <button mat-icon-button (click)=\"axes.removeAt(index)\" [bizdocTooltip]=\"'Remove'|translate\" type=\"button\"><mat-icon>delete</mat-icon></button>\r\n </td>\r\n </tr>\r\n }\r\n </table>\r\n <!--Indices-->\r\n <h2 class=\"mat-h2 row\">\r\n {{'Indices'|translate}}\r\n <span class=\"divider\"></span>\r\n <button mat-icon-button (click)=\"add(indices, newIndex(), 'Index', 'index')\" [bizdocTooltip]=\"'Add'|translate\" type=\"button\"><mat-icon>add_circle_outline</mat-icon></button>\r\n </h2>\r\n <table formArrayName=\"indices\" class=\"mat-mdc-table\" cdkDropList (cdkDropListDropped)=\"drop($event, indices)\">\r\n @for (i of indices.controls; track i; let index = $index) {\r\n <tr class=\"mat-mdc-row\" [formGroup]=\"i\" cdkDrag>\r\n <td class=\"mat-mdc-cell\">\r\n <mat-icon cdkDragHandle>drag_indicator</mat-icon>\r\n </td>\r\n <td class=\"mat-mdc-cell flex\">\r\n {{i.controls.title.value}}\r\n </td>\r\n <td class=\"mat-mdc-cell nowrap\">\r\n <button mat-icon-button (click)=\"edit(i, 'Index', 'index')\" [bizdocTooltip]=\"'Edit'|translate\" type=\"button\"><mat-icon>edit</mat-icon></button>\r\n <button mat-icon-button (click)=\"indices.removeAt(index)\" [bizdocTooltip]=\"'Remove'|translate\" type=\"button\"><mat-icon>delete</mat-icon></button>\r\n </td>\r\n </tr>\r\n }\r\n </table>\r\n @if (indices.controls.length) {\r\n <mat-form-field>\r\n <mat-label>{{'AnomalyNotification'|translate}}</mat-label>\r\n <mat-select formControlName=\"anomaly\">\r\n <mat-option value=\"None\">{{'None'|translate}}</mat-option>\r\n <mat-option value=\"Positions\">{{'Positions'|translate}}</mat-option>\r\n <mat-option value=\"Recipients\">{{'Everyone'|translate}}</mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n }\r\n <!--Patterns-->\r\n <h2 class=\"mat-h2 row\">\r\n {{'Patterns'|translate}}\r\n <span class=\"divider\"></span>\r\n <button mat-icon-button (click)=\"add(patterns, newPattern(), 'Pattern', 'pattern')\" [bizdocTooltip]=\"'Add'|translate\" type=\"button\"><mat-icon>add_circle_outline</mat-icon></button>\r\n </h2>\r\n <table formArrayName=\"indices\" class=\"mat-mdc-table\" cdkDropList (cdkDropListDropped)=\"drop($event, patterns)\">\r\n @for (p of patterns.controls; track p; let index = $index) {\r\n <tr class=\"mat-mdc-row\" [formGroup]=\"p\" cdkDrag>\r\n <td class=\"mat-mdc-cell\">\r\n <mat-icon cdkDragHandle>drag_indicator</mat-icon>\r\n </td>\r\n <td class=\"mat-mdc-cell flex\">\r\n {{p.controls.title.value}}\r\n </td>\r\n <td class=\"mat-mdc-cell nowrap\">\r\n <button mat-icon-button (click)=\"edit(p, 'Pattern', 'pattern')\" [bizdocTooltip]=\"'Edit'|translate\" type=\"button\"><mat-icon>edit</mat-icon></button>\r\n <button mat-icon-button (click)=\"patterns.removeAt(index)\" [bizdocTooltip]=\"'Remove'|translate\" type=\"button\"><mat-icon>delete</mat-icon></button>\r\n </td>\r\n </tr>\r\n }\r\n </table>\r\n <!--Views-->\r\n <h2 class=\"row mat-h2\">\r\n {{'CubeViews'|translate}}\r\n <span class=\"divider\"></span>\r\n <button mat-icon-button (click)=\"add(views, newView(), 'CubeView', 'view')\" [bizdocTooltip]=\"'Add'|translate\" type=\"button\"><mat-icon>add_circle_outline</mat-icon></button>\r\n </h2>\r\n <table formArrayName=\"views\" class=\"mat-mdc-table\" cdkDropList (cdkDropListDropped)=\"drop($event, views)\">\r\n @for (v of views.controls; track v; let index = $index) {\r\n <tr class=\"mat-mdc-row\" [formGroup]=\"v\" cdkDrag>\r\n <td class=\"mat-mdc-cell\">\r\n <mat-icon cdkDragHandle>drag_indicator</mat-icon>\r\n </td>\r\n <td class=\"mat-mdc-cell flex\">\r\n {{v.controls.title.value}}\r\n </td>\r\n <td class=\"mat-mdc-cell nowrap\">\r\n <button mat-icon-button (click)=\"edit(v, 'View', 'view')\" [bizdocTooltip]=\"'Edit'|translate\" type=\"button\"><mat-icon>edit</mat-icon></button>\r\n <button mat-icon-button (click)=\"views.removeAt(index)\" [bizdocTooltip]=\"'Remove'|translate\" type=\"button\"><mat-icon>delete</mat-icon></button>\r\n </td>\r\n </tr>\r\n }\r\n </table>\r\n <mat-form-field>\r\n <mat-label>{{'Schedule'|translate}}</mat-label>\r\n <bizdoc-timespan-input formControlName=\"schedule\"></bizdoc-timespan-input>\r\n <mat-icon matSuffix>timer</mat-icon>\r\n <mat-hint></mat-hint>\r\n </mat-form-field>\r\n </ng-container>\r\n </ng-template>\r\n <!--idx-->\r\n <ng-template bizdocCustomContent=\"index\" let-form=\"form\">\r\n <ng-container [formGroup]=\"form\">\r\n <mat-form-field class=\"flex\">\r\n <mat-label>{{'Title'|translate}}</mat-label>\r\n <input matInput formControlName=\"title\" required />\r\n @if (form.controls.title.hasError('required')) {\r\n <mat-error [innerHTML]=\"'RequiredErr'|translate:('Title'|translate)\"></mat-error>\r\n }\r\n </mat-form-field>\r\n <mat-form-field class=\"flex\">\r\n <mat-label>{{'Name'|translate}}</mat-label>\r\n <input matInput formControlName=\"name\" required />\r\n @if (form.controls.name.hasError('required')) {\r\n <mat-error [innerHTML]=\"'RequiredErr'|translate:('Name'|translate)\"></mat-error>\r\n }\r\n </mat-form-field>\r\n </ng-container>\r\n </ng-template>\r\n <!-- pattern-->\r\n <ng-template bizdocCustomContent=\"pattern\" let-form=\"form\">\r\n <ng-container [formGroup]=\"form\">\r\n <mat-form-field class=\"flex\">\r\n <mat-label>{{'Title'|translate}}</mat-label>\r\n <input matInput formControlName=\"title\" required />\r\n @if (form.controls.title.hasError('required')) {\r\n <mat-error [innerHTML]=\"'RequiredErr'|translate:('Title'|translate)\"></mat-error>\r\n }\r\n </mat-form-field>\r\n <bizdoc-designer-cube-filter [cube]=\"model\" [form]=\"form.controls.axes\"></bizdoc-designer-cube-filter>\r\n <bizdoc-designer-privileges [form]=\"form\"></bizdoc-designer-privileges>\r\n </ng-container>\r\n </ng-template>\r\n <!-- view -->\r\n <ng-template bizdocCustomContent=\"view\" let-form=\"form\">\r\n <ng-container [formGroup]=\"form\">\r\n <mat-form-field class=\"flex\">\r\n <mat-label>{{'Title'|translate}}</mat-label>\r\n <input matInput formControlName=\"title\" required />\r\n @if (form.controls.title.hasError('required')) {\r\n <mat-error [innerHTML]=\"'RequiredErr'|translate:('Title'|translate)\"></mat-error>\r\n }\r\n </mat-form-field>\r\n <mat-form-field>\r\n <mat-label>{{'Type'|translate}}</mat-label>\r\n <mat-select formControlName=\"type\">\r\n <mat-option value=\"Chart\">{{'Chart'|translate}}</mat-option>\r\n <mat-option value=\"PivotChart\">{{'PivotChart'|translate}}</mat-option>\r\n <mat-option value=\"PivotGrid\">{{'PivotGrid'|translate}}</mat-option>\r\n <mat-option value=\"Grid\">{{'Grid'|translate}}</mat-option>\r\n <mat-option value=\"Spreadsheet\">{{'Spreadsheet'|translate}}</mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n <mat-form-field>\r\n <mat-label>{{'XAxis'|translate}}</mat-label>\r\n <mat-select formControlName=\"xAxis\" required multiple [sortComparator]=\"sortComparator\">\r\n @for (a of axes.controls; track a) {\r\n <mat-option [value]=\"a.controls.name.value\">{{a.controls.title.value || a.controls.name.value}}</mat-option>\r\n }\r\n </mat-select>\r\n @if (form.controls.xAxis.hasError('required')) {\r\n <mat-error [innerHTML]=\"'RequiredErr'|translate:('XAxis'|translate)\"></mat-error>\r\n }\r\n </mat-form-field>\r\n <mat-form-field>\r\n <mat-label>{{'Series'|translate}}</mat-label>\r\n <mat-select formControlName=\"series\" multiple [sortComparator]=\"sortComparator\">\r\n @for (a of axes.controls; track a) {\r\n @if (form.controls.xAxis.value?.indexOf(a.controls.name.value) < 0) {\r\n <mat-option [value]=\"a.controls.name.value\">{{a.controls.title.value|| a.controls.name.value}}</mat-option>\r\n }\r\n }\r\n </mat-select>\r\n @if (form.controls.series.hasError('required')) {\r\n <mat-error [innerHTML]=\"'RequiredErr'|translate:('Series'|translate)\"></mat-error>\r\n }\r\n </mat-form-field>\r\n <mat-form-field>\r\n <mat-label>{{'Indices'|translate}}</mat-label>\r\n <mat-select formControlName=\"indices\" multiple>\r\n @for (i of indices.controls; track i) {\r\n <mat-option [value]=\"i.controls.name.value\">{{i.controls.title.value|| i.controls.name.value}}</mat-option>\r\n }\r\n </mat-select>\r\n </mat-form-field>\r\n <mat-form-field>\r\n <mat-label>{{'ChartType'|translate}}</mat-label>\r\n <mat-select formControlName=\"chartType\">\r\n @switch (form.controls.type.value) {\r\n @case ('Chart') {\r\n <mat-option value=\"Pie\" [disabled]=\"form.controls.series.value?.length>0\">{{'Pie'|translate}}</mat-option>\r\n <mat-option value=\"Doughnut\" [disabled]=\"form.controls.series.value?.length>0\">{{'Doughnut'|translate}}</mat-option>\r\n <mat-option value=\"HalfDoughnut\" [disabled]=\"form.controls.series.value?.length>0\">{{'HalfDoughnut'|translate}}</mat-option>\r\n <mat-option value=\"Funnel\" [disabled]=\"form.controls.series.value?.length>0\">{{'Funnel'|translate}}</mat-option>\r\n <mat-option value=\"Pyramid\" [disabled]=\"form.controls.series.value?.length>0\">{{'Pyramid'|translate}}</mat-option>\r\n <mat-option value=\"Column\">{{'Column'|translate}}</mat-option>\r\n <mat-option value=\"Bar\">{{'Bar'|translate}}</mat-option>\r\n <mat-option value=\"Bubble\">{{'Bubble'|translate}}</mat-option>\r\n <mat-option value=\"Line\">{{'Line'|translate}}</mat-option>\r\n <mat-option value=\"Spline\">{{'Spline'|translate}}</mat-option>\r\n <mat-option value=\"Area\">{{'Area'|translate}}</mat-option>\r\n <mat-option value=\"Scatter\">{{'Scatter'|translate}}</mat-option>\r\n <mat-option value=\"Polar\">{{'Polar'|translate}}</mat-option>\r\n <mat-option value=\"Radar\">{{'Radar'|translate}}</mat-option>\r\n <mat-option value=\"StepLine\">{{'StepLine'|translate}}</mat-option>\r\n <mat-option value=\"StepArea\">{{'StepArea'|translate}}</mat-option>\r\n <mat-option value=\"SplineArea\">{{'SplineArea'|translate}}</mat-option>\r\n <mat-option value=\"StackingBar\" [disabled]=\"!form.controls.series.value?.length\">{{'StackingBar'|translate}}</mat-option>\r\n <mat-option value=\"StackingBar100\" [disabled]=\"!form.controls.series.value?.length\">{{'StackingBar100'|translate}}</mat-option>\r\n <mat-option value=\"StackingArea\" [disabled]=\"!form.controls.series.value?.length\">{{'StackingArea'|translate}}</mat-option>\r\n <mat-option value=\"StackingArea100\" [disabled]=\"!form.controls.series.value?.length\">{{'StackingArea100'|translate}}</mat-option>\r\n <mat-option value=\"StackingColumn\" [disabled]=\"!form.controls.series.value?.length\">{{'StackingColumn'|translate}}</mat-option>\r\n <mat-option value=\"StackingColumn100\" [disabled]=\"!form.controls.series.value?.length\">{{'StackingColumn100'|translate}}</mat-option>\r\n <mat-option value=\"StackingStepArea\" [disabled]=\"!form.controls.series.value?.length\">{{'StackingStepArea'|translate}}</mat-option>\r\n <mat-option value=\"StackingLine\" [disabled]=\"!form.controls.series.value?.length\">{{'StackingLine'|translate}}</mat-option>\r\n <mat-option value=\"StackingLine100\" [disabled]=\"!form.controls.series.value?.length\">{{'StackingLine100'|translate}}</mat-option>\r\n }\r\n @case ('PivotChart') {\r\n <mat-option>{{'None'|translate}}</mat-option>\r\n <mat-option value=\"Column\">{{'Column'|translate}}</mat-option>\r\n <mat-option value=\"Bar\">{{'Bar'|translate}}</mat-option>\r\n <mat-option value=\"Bubble\">{{'Bubble'|translate}}</mat-option>\r\n <mat-option value=\"Line\">{{'Line'|translate}}</mat-option>\r\n <mat-option value=\"Spline\">{{'Spline'|translate}}</mat-option>\r\n <mat-option value=\"SplineArea\">{{'SplineArea'|translate}}</mat-option>\r\n <mat-option value=\"Area\">{{'Area'|translate}}</mat-option>\r\n <mat-option value=\"Scatter\">{{'Scatter'|translate}}</mat-option>\r\n <mat-option value=\"Polar\">{{'Polar'|translate}}</mat-option>\r\n <mat-option value=\"Radar\">{{'Radar'|translate}}</mat-option>\r\n <mat-option value=\"StepLine\">{{'StepLine'|translate}}</mat-option>\r\n <mat-option value=\"StepArea\">{{'StepArea'|translate}}</mat-option>\r\n <mat-option value=\"StackingBar\" [disabled]=\"!form.controls.series.value?.length\">{{'StackingBar'|translate}}</mat-option>\r\n <mat-option value=\"StackingBar100\" [disabled]=\"!form.controls.series.value?.length\">{{'StackingBar100'|translate}}</mat-option>\r\n <mat-option value=\"StackingArea\" [disabled]=\"!form.controls.series.value?.length\">{{'StackingArea'|translate}}</mat-option>\r\n <mat-option value=\"StackingArea100\" [disabled]=\"!form.controls.series.value?.length\">{{'StackingArea100'|translate}}</mat-option>\r\n <mat-option value=\"StackingColumn\" [disabled]=\"!form.controls.series.value?.length\">{{'StackingColumn'|translate}}</mat-option>\r\n <mat-option value=\"StackingColumn100\" [disabled]=\"!form.controls.series.value?.length\">{{'StackingColumn100'|translate}}</mat-option>\r\n <mat-option value=\"StackingStepArea\" [disabled]=\"!form.controls.series.value?.length\">{{'StackingStepArea'|translate}}</mat-option>\r\n <mat-option value=\"StackingLine\" [disabled]=\"!form.controls.series.value?.length\">{{'StackingLine'|translate}}</mat-option>\r\n <mat-option value=\"StackingLine100\" [disabled]=\"!form.controls.series.value?.length\">{{'StackingLine100'|translate}}</mat-option>\r\n }\r\n }\r\n </mat-select>\r\n </mat-form-field>\r\n <mat-form-field>\r\n <mat-label>{{'IndicesChartType'|translate}}</mat-label>\r\n <mat-select formControlName=\"indicesChartType\">\r\n @switch (form.controls.type.value) {\r\n @case ('Chart') {\r\n <mat-option value=\"Column\">{{'Column'|translate}}</mat-option>\r\n <mat-option value=\"Bar\">{{'Bar'|translate}}</mat-option>\r\n <mat-option value=\"Bubble\">{{'Bubble'|translate}}</mat-option>\r\n <mat-option value=\"Line\">{{'Line'|translate}}</mat-option>\r\n <mat-option value=\"Spline\">{{'Spline'|translate}}</mat-option>\r\n <mat-option value=\"SplineArea\">{{'SplineArea'|translate}}</mat-option>\r\n <mat-option value=\"Area\">{{'Area'|translate}}</mat-option>\r\n <mat-option value=\"Scatter\">{{'Scatter'|translate}}</mat-option>\r\n <mat-option value=\"Polar\">{{'Polar'|translate}}</mat-option>\r\n <mat-option value=\"Radar\">{{'Radar'|translate}}</mat-option>\r\n <mat-option value=\"StepLine\">{{'StepLine'|translate}}</mat-option>\r\n <mat-option value=\"StepArea\">{{'StepArea'|translate}}</mat-option>\r\n <mat-option value=\"StackingColumn\" [disabled]=\"form.controls.indices.value?.length<2\">{{'StackingColumn'|translate}}</mat-option>\r\n <mat-option value=\"StackingColumn100\" [disabled]=\"form.controls.indices.value?.length<2\">{{'StackingColumn100'|translate}}</mat-option>\r\n <mat-option value=\"StackingBar\" [disabled]=\"form.controls.indices.value?.length<2\">{{'StackingBar'|translate}}</mat-option>\r\n <mat-option value=\"StackingBar100\" [disabled]=\"form.controls.indices.value?.length<2\">{{'StackingBar100'|translate}}</mat-option>\r\n <mat-option value=\"StackingLine\" [disabled]=\"form.controls.indices.value?.length<2\">{{'StackingLine'|translate}}</mat-option>\r\n <mat-option value=\"StackingLine100\" [disabled]=\"form.controls.indices.value?.length<2\">{{'StackingLine100'|translate}}</mat-option>\r\n <mat-option value=\"StackingArea\" [disabled]=\"form.controls.indices.value?.length<2\">{{'StackingArea'|translate}}</mat-option>\r\n <mat-option value=\"StackingArea100\" [disabled]=\"form.controls.indices.value?.length<2\">{{'StackingArea100'|translate}}</mat-option>\r\n <mat-option value=\"StackingStepArea\" [disabled]=\"form.controls.indices.value?.length<2\">{{'StackingStepArea'|translate}}</mat-option>\r\n }\r\n @case ('PivotChart') {\r\n <mat-option>{{'None'|translate}}</mat-option>\r\n <mat-option value=\"Column\">{{'Column'|translate}}</mat-option>\r\n <mat-option value=\"Bar\">{{'Bar'|translate}}</mat-option>\r\n <mat-option value=\"Bubble\">{{'Bubble'|translate}}</mat-option>\r\n <mat-option value=\"Line\">{{'Line'|translate}}</mat-option>\r\n <mat-option value=\"Spline\">{{'Spline'|translate}}</mat-option>\r\n <mat-option value=\"SplineArea\">{{'SplineArea'|translate}}</mat-option>\r\n <mat-option value=\"Area\">{{'Area'|translate}}</mat-option>\r\n <mat-option value=\"Scatter\">{{'Scatter'|translate}}</mat-option>\r\n <mat-option value=\"Polar\">{{'Polar'|translate}}</mat-option>\r\n <mat-option value=\"Radar\">{{'Radar'|translate}}</mat-option>\r\n <mat-option value=\"StepLine\">{{'StepLine'|translate}}</mat-option>\r\n <mat-option value=\"StepArea\">{{'StepArea'|translate}}</mat-option>\r\n <mat-option value=\"StackingBar\" [disabled]=\"form.controls.series.value?.length<2\">{{'StackingBar'|translate}}</mat-option>\r\n <mat-option value=\"StackingBar100\" [disabled]=\"form.controls.series.value?.length<2\">{{'StackingBar100'|translate}}</mat-option>\r\n <mat-option value=\"StackingArea\" [disabled]=\"form.controls.series.value?.length<2\">{{'StackingArea'|translate}}</mat-option>\r\n <mat-option value=\"StackingArea100\" [disabled]=\"form.controls.series.value?.length<2\">{{'StackingArea100'|translate}}</mat-option>\r\n <mat-option value=\"StackingColumn\" [disabled]=\"form.controls.series.value?.length<2\">{{'StackingColumn'|translate}}</mat-option>\r\n <mat-option value=\"StackingColumn100\" [disabled]=\"form.controls.series.value?.length<2\">{{'StackingColumn100'|translate}}</mat-option>\r\n <mat-option value=\"StackingStepArea\" [disabled]=\"form.controls.series.value?.length<2\">{{'StackingStepArea'|translate}}</mat-option>\r\n <mat-option value=\"StackingLine\" [disabled]=\"form.controls.series.value?.length<2\">{{'StackingLine'|translate}}</mat-option>\r\n <mat-option value=\"StackingLine100\" [disabled]=\"form.controls.series.value?.length<2\">{{'StackingLine100'|translate}}</mat-option>\r\n }\r\n }\r\n </mat-select>\r\n </mat-form-field>\r\n <mat-form-field>\r\n <mat-label>{{'Guide'|translate}}</mat-label>\r\n <mat-select formControlName=\"guide\">\r\n <mat-option>{{'None'|translate}}</mat-option>\r\n @for (g of guides; track g) {\r\n <mat-option [value]=\"g.name\">{{g.title |localizedString}}</mat-option>\r\n }\r\n </mat-select>\r\n </mat-form-field>\r\n @if (cube) {\r\n <bizdoc-designer-cube-filter [cube]=\"cube\" [form]=\"form.controls.filters\"></bizdoc-designer-cube-filter>\r\n }\r\n </ng-container>\r\n </ng-template>\r\n <!-- Axis -->\r\n <ng-template bizdocCustomContent=\"axis\" let-form=\"form\">\r\n <ng-container [formGroup]=\"form\">\r\n <div class=\"row gap\">\r\n <mat-form-field class=\"flex\">\r\n <mat-label>{{'Title'|translate}}</mat-label>\r\n <input matInput formControlName=\"title\" required />\r\n @if (form.controls.title.hasError('required')) {\r\n <mat-error [innerHTML]=\"'RequiredErr'|translate:('Title'|translate)\"></mat-error>\r\n }\r\n </mat-form-field>\r\n <mat-form-field class=\"flex\">\r\n <mat-label>{{'Name'|translate}}</mat-label>\r\n <input matInput formControlName=\"name\" required />\r\n @if (form.controls.name.hasError('required')) {\r\n <mat-error [innerHTML]=\"'RequiredErr'|translate:('Name'|translate)\"></mat-error>\r\n }\r\n </mat-form-field>\r\n </div>\r\n <mat-form-field>\r\n <mat-label>{{'DataType'|translate}}</mat-label>\r\n <mat-select formControlName=\"dataType\" required>\r\n @for (t of typegroups['_'].elements|sort: 'title'; track t) {\r\n <mat-option [value]=\"t.name\">\r\n {{t.title}}\r\n </mat-option>\r\n }\r\n @for (g of typegroups|sort: 'title'; track g) {\r\n <mat-optgroup [label]=\"g.title\">\r\n @for (t of g.elements|sort: 'title'; track t) {\r\n <mat-option [value]=\"t.name\">\r\n {{t.title}}\r\n </mat-option>\r\n }\r\n </mat-optgroup>\r\n }\r\n </mat-select>\r\n @if (form.controls.title.hasError('required')) {\r\n <mat-error [innerHTML]=\"'RequiredErr'|translate:('DataType'|translate)\"></mat-error>\r\n }\r\n </mat-form-field>\r\n <div><mat-checkbox formControlName=\"combination\">{{'CombinationAxis'|translate}}</mat-checkbox></div>\r\n <div><mat-checkbox formControlName=\"sensitive\">{{'SensitiveAxis'|translate}}</mat-checkbox></div>\r\n <mat-form-field>\r\n <mat-label>{{'SelectionMode'|translate}}</mat-label>\r\n <mat-select formControlName=\"selectionMode\">\r\n <mat-option value=\"None\">{{'None'|translate}}</mat-option>\r\n <mat-option>{{'OneMode'|translate}}</mat-option>\r\n <mat-option value=\"Multiple\">{{'Multiple'|translate}}</mat-option>\r\n <mat-option value=\"Search\">{{'Autocomplete'|translate}}</mat-option>\r\n <mat-option value=\"Pattern\">{{'Pattern'|translate}}</mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n <mat-form-field>\r\n <mat-label>{{'DescendentOf'|translate}}</mat-label>\r\n <mat-select formControlName=\"descendentOf\">\r\n @for (a of axes.controls; track a) {\r\n @if (a!=form) {\r\n <mat-option [value]=\"a.controls.name.value\">{{a.controls.title.value}}</mat-option>\r\n }\r\n }\r\n </mat-select>\r\n </mat-form-field>\r\n <div><mat-checkbox formControlName=\"indexable\">{{'IndexableAxis'|translate}}</mat-checkbox></div>\r\n </ng-container>\r\n </ng-template>\r\n</bizdoc-designer-element>\r\n", styles: [":host ::ng-deep form{min-width:350px;max-width:450px}:host ::ng-deep .mat-mdc-radio-group p{margin-inline-start:8px}.mat-mdc-table{width:100%}.mat-mdc-table .mat-mdc-cell:last-child{width:80px}.flex{flex:1}table tr td:first-child{width:26px}dl{width:100%;overflow:hidden;padding:0;margin:0}dt{padding:0;margin:0;clear:both}dd{float:left;padding:0;margin:0}\n"] }]
|
34573
|
+
args: [{ template: "<bizdoc-designer-element [form]=\"form\" [privileges]=\"true\" [context]=\"context\" (continue)=\"onContinue()\">\r\n <!-- widget -->\r\n <ng-template bizdocContent>\r\n @if (jobInfo) {\r\n <dl>\r\n @if (jobInfo.lastExecution) {\r\n <dt>{{'LastExecution'|translate}}</dt>\r\n <dd>{{jobInfo.lastExecution|amTimeAgo}}</dd>\r\n }\r\n @if (jobInfo.nextExecution) {\r\n <dt>{{'NextExecution'|translate}}</dt>\r\n <dd>{{jobInfo.nextExecution|amTimeAgo}}</dd>\r\n }\r\n @if (jobInfo.lastJobState) {\r\n <dt>{{'LastJobState'|translate}}</dt>\r\n <dd>\r\n @if (jobInfo.error) {\r\n <mat-icon [bizdocTooltip]=\"jobInfo.error\">report</mat-icon>\r\n }\r\n <span class=\"job-state\">{{jobInfo.lastJobState| translate}}</span>\r\n </dd>\r\n }\r\n </dl>\r\n }\r\n <div class=\"row start center\">\r\n <button mat-stroked-button (click)=\"sync()\" [disabled]=\"model.draft || syncing\">\r\n <span> {{'Synchronize'|translate}}</span>\r\n </button>\r\n \r\n @if (syncing) {\r\n <mat-spinner diameter=\"22\"></mat-spinner>\r\n }\r\n </div>\r\n <div class=\"row\">\r\n @if(model.axes?.length)\r\n {\r\n <mat-chip-set>\r\n @for(axis of model.axes; track axis){\r\n <mat-chip>{{axis.title}}</mat-chip>\r\n }\r\n @for(index of model.indices || []; track index){\r\n <mat-chip>{{index.title}}</mat-chip>\r\n }\r\n </mat-chip-set>\r\n }\r\n </div>\r\n </ng-template>\r\n <!-- edit -->\r\n <ng-template bizdocEditContent>\r\n <ng-container [formGroup]=\"form\">\r\n <mat-label>{{'SecurityLevel'|translate}}</mat-label>\r\n <mat-radio-group formControlName=\"scope\">\r\n <p></p>\r\n <mat-radio-button color=\"warn\">{{'Global'|translate}}</mat-radio-button>\r\n <p>{{'SecurityGlobalHelp'|translate}}</p>\r\n <mat-radio-button value=\"Positions\">{{'Positions'|translate}}</mat-radio-button>\r\n <p>{{'SecurityPositionsHelp'|translate}}</p>\r\n <mat-radio-button value=\"Patterns\">{{'Patterns'|translate}}</mat-radio-button>\r\n <p>{{'SecurityPatternsHelp'|translate}}</p>\r\n </mat-radio-group>\r\n <ng-container formGroupName=\"yAxis\">\r\n <mat-form-field class=\"flex\">\r\n <mat-label>{{'Type'|translate}}</mat-label>\r\n <mat-select formControlName=\"type\">\r\n <mat-option value=\"Currency\">{{'Currency'|translate}}</mat-option>\r\n <mat-option value=\"Number\">{{'Numeric'|translate}}</mat-option>\r\n <mat-option value=\"Count\">{{'Accumulative'|translate}}</mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n </ng-container>\r\n <mat-form-field>\r\n <mat-label>{{'Currency'|translate}}</mat-label>\r\n <mat-select formControlName=\"currencyCode\" [sortComparator]=\"sortComparator\">\r\n @for (c of currencies; track c) {\r\n <mat-option [value]=\"c.name\">{{c.title}}</mat-option>\r\n }\r\n </mat-select>\r\n </mat-form-field>\r\n <!--Axes-->\r\n <h2 class=\"mat-h2 row\">\r\n {{'Axes'|translate}}\r\n <span class=\"divider\"></span>\r\n <button mat-icon-button (click)=\"add(axes, newAxis(), 'Axis', 'axis')\" [bizdocTooltip]=\"'Add'|translate\" type=\"button\"><mat-icon>add_circle_outline</mat-icon></button>\r\n </h2>\r\n <table formArrayName=\"axes\" class=\"mat-mdc-table\" cdkDropList (cdkDropListDropped)=\"drop($event, axes)\">\r\n @for (a of axes.controls; track a; let index = $index) {\r\n <tr class=\"mat-mdc-row\" [formGroup]=\"a\" cdkDrag>\r\n <td class=\"mat-mdc-cell\">\r\n <mat-icon cdkDragHandle>drag_indicator</mat-icon>\r\n </td>\r\n <td class=\"mat-mdc-cell flex\">\r\n {{a.controls.title.value}}\r\n </td>\r\n <td class=\"mat-mdc-cell nowrap\">\r\n <button mat-icon-button (click)=\"edit(a, 'Axis', 'axis')\" [bizdocTooltip]=\"'Edit'|translate\" type=\"button\"><mat-icon>edit</mat-icon></button>\r\n <button mat-icon-button (click)=\"axes.removeAt(index)\" [bizdocTooltip]=\"'Remove'|translate\" type=\"button\"><mat-icon>delete</mat-icon></button>\r\n </td>\r\n </tr>\r\n }\r\n </table>\r\n <!--Indices-->\r\n <h2 class=\"mat-h2 row\">\r\n {{'Indices'|translate}}\r\n <span class=\"divider\"></span>\r\n <button mat-icon-button (click)=\"add(indices, newIndex(), 'Index', 'index')\" [bizdocTooltip]=\"'Add'|translate\" type=\"button\"><mat-icon>add_circle_outline</mat-icon></button>\r\n </h2>\r\n <table formArrayName=\"indices\" class=\"mat-mdc-table\" cdkDropList (cdkDropListDropped)=\"drop($event, indices)\">\r\n @for (i of indices.controls; track i; let index = $index) {\r\n <tr class=\"mat-mdc-row\" [formGroup]=\"i\" cdkDrag>\r\n <td class=\"mat-mdc-cell\">\r\n <mat-icon cdkDragHandle>drag_indicator</mat-icon>\r\n </td>\r\n <td class=\"mat-mdc-cell flex\">\r\n {{i.controls.title.value}}\r\n </td>\r\n <td class=\"mat-mdc-cell nowrap\">\r\n <button mat-icon-button (click)=\"edit(i, 'Index', 'index')\" [bizdocTooltip]=\"'Edit'|translate\" type=\"button\"><mat-icon>edit</mat-icon></button>\r\n <button mat-icon-button (click)=\"indices.removeAt(index)\" [bizdocTooltip]=\"'Remove'|translate\" type=\"button\"><mat-icon>delete</mat-icon></button>\r\n </td>\r\n </tr>\r\n }\r\n </table>\r\n @if (indices.controls.length) {\r\n <mat-form-field>\r\n <mat-label>{{'AnomalyNotification'|translate}}</mat-label>\r\n <mat-select formControlName=\"anomaly\">\r\n <mat-option value=\"None\">{{'None'|translate}}</mat-option>\r\n <mat-option value=\"Positions\">{{'Positions'|translate}}</mat-option>\r\n <mat-option value=\"Recipients\">{{'Everyone'|translate}}</mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n }\r\n <!--Patterns-->\r\n <h2 class=\"mat-h2 row\">\r\n {{'Patterns'|translate}}\r\n <span class=\"divider\"></span>\r\n <button mat-icon-button (click)=\"add(patterns, newPattern(), 'Pattern', 'pattern')\" [bizdocTooltip]=\"'Add'|translate\" type=\"button\"><mat-icon>add_circle_outline</mat-icon></button>\r\n </h2>\r\n <table formArrayName=\"indices\" class=\"mat-mdc-table\" cdkDropList (cdkDropListDropped)=\"drop($event, patterns)\">\r\n @for (p of patterns.controls; track p; let index = $index) {\r\n <tr class=\"mat-mdc-row\" [formGroup]=\"p\" cdkDrag>\r\n <td class=\"mat-mdc-cell\">\r\n <mat-icon cdkDragHandle>drag_indicator</mat-icon>\r\n </td>\r\n <td class=\"mat-mdc-cell flex\">\r\n {{p.controls.title.value}}\r\n </td>\r\n <td class=\"mat-mdc-cell nowrap\">\r\n <button mat-icon-button (click)=\"edit(p, 'Pattern', 'pattern')\" [bizdocTooltip]=\"'Edit'|translate\" type=\"button\"><mat-icon>edit</mat-icon></button>\r\n <button mat-icon-button (click)=\"patterns.removeAt(index)\" [bizdocTooltip]=\"'Remove'|translate\" type=\"button\"><mat-icon>delete</mat-icon></button>\r\n </td>\r\n </tr>\r\n }\r\n </table>\r\n <!--Views-->\r\n <h2 class=\"row mat-h2\">\r\n {{'CubeViews'|translate}}\r\n <span class=\"divider\"></span>\r\n <button mat-icon-button (click)=\"add(views, newView(), 'CubeView', 'view')\" [bizdocTooltip]=\"'Add'|translate\" type=\"button\"><mat-icon>add_circle_outline</mat-icon></button>\r\n </h2>\r\n <table formArrayName=\"views\" class=\"mat-mdc-table\" cdkDropList (cdkDropListDropped)=\"drop($event, views)\">\r\n @for (v of views.controls; track v; let index = $index) {\r\n <tr class=\"mat-mdc-row\" [formGroup]=\"v\" cdkDrag>\r\n <td class=\"mat-mdc-cell\">\r\n <mat-icon cdkDragHandle>drag_indicator</mat-icon>\r\n </td>\r\n <td class=\"mat-mdc-cell flex\">\r\n {{v.controls.title.value}}\r\n </td>\r\n <td class=\"mat-mdc-cell nowrap\">\r\n <button mat-icon-button (click)=\"edit(v, 'View', 'view')\" [bizdocTooltip]=\"'Edit'|translate\" type=\"button\"><mat-icon>edit</mat-icon></button>\r\n <button mat-icon-button (click)=\"views.removeAt(index)\" [bizdocTooltip]=\"'Remove'|translate\" type=\"button\"><mat-icon>delete</mat-icon></button>\r\n </td>\r\n </tr>\r\n }\r\n </table>\r\n <mat-form-field>\r\n <mat-label>{{'Schedule'|translate}}</mat-label>\r\n <bizdoc-timespan-input formControlName=\"schedule\"></bizdoc-timespan-input>\r\n <mat-icon matSuffix>timer</mat-icon>\r\n <mat-hint></mat-hint>\r\n </mat-form-field>\r\n </ng-container>\r\n </ng-template>\r\n <!--idx-->\r\n <ng-template bizdocCustomContent=\"index\" let-form=\"form\">\r\n <ng-container [formGroup]=\"form\">\r\n <mat-form-field class=\"flex\">\r\n <mat-label>{{'Title'|translate}}</mat-label>\r\n <input matInput formControlName=\"title\" required />\r\n @if (form.controls.title.hasError('required')) {\r\n <mat-error [innerHTML]=\"'RequiredErr'|translate:('Title'|translate)\"></mat-error>\r\n }\r\n </mat-form-field>\r\n <mat-form-field class=\"flex\">\r\n <mat-label>{{'Name'|translate}}</mat-label>\r\n <input matInput formControlName=\"name\" required />\r\n @if (form.controls.name.hasError('required')) {\r\n <mat-error [innerHTML]=\"'RequiredErr'|translate:('Name'|translate)\"></mat-error>\r\n }\r\n </mat-form-field>\r\n </ng-container>\r\n </ng-template>\r\n <!-- pattern-->\r\n <ng-template bizdocCustomContent=\"pattern\" let-form=\"form\">\r\n <ng-container [formGroup]=\"form\">\r\n <mat-form-field class=\"flex\">\r\n <mat-label>{{'Title'|translate}}</mat-label>\r\n <input matInput formControlName=\"title\" required />\r\n @if (form.controls.title.hasError('required')) {\r\n <mat-error [innerHTML]=\"'RequiredErr'|translate:('Title'|translate)\"></mat-error>\r\n }\r\n </mat-form-field>\r\n <bizdoc-designer-cube-filter [cube]=\"model\" [form]=\"form.controls.axes\"></bizdoc-designer-cube-filter>\r\n <bizdoc-designer-privileges [form]=\"form\"></bizdoc-designer-privileges>\r\n </ng-container>\r\n </ng-template>\r\n <!-- view -->\r\n <ng-template bizdocCustomContent=\"view\" let-form=\"form\">\r\n <ng-container [formGroup]=\"form\">\r\n <mat-form-field class=\"flex\">\r\n <mat-label>{{'Title'|translate}}</mat-label>\r\n <input matInput formControlName=\"title\" required />\r\n @if (form.controls.title.hasError('required')) {\r\n <mat-error [innerHTML]=\"'RequiredErr'|translate:('Title'|translate)\"></mat-error>\r\n }\r\n </mat-form-field>\r\n <bizdoc-icon-picker formControlName=\"icon\" required></bizdoc-icon-picker>\r\n <mat-form-field>\r\n <mat-label>{{'Type'|translate}}</mat-label>\r\n <mat-select formControlName=\"type\">\r\n <mat-option value=\"Chart\">{{'Chart'|translate}}</mat-option>\r\n <mat-option value=\"PivotChart\">{{'PivotChart'|translate}}</mat-option>\r\n <mat-option value=\"PivotGrid\">{{'PivotGrid'|translate}}</mat-option>\r\n <mat-option value=\"Grid\">{{'Grid'|translate}}</mat-option>\r\n <mat-option value=\"Spreadsheet\">{{'Spreadsheet'|translate}}</mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n <mat-form-field>\r\n <mat-label>{{'XAxis'|translate}}</mat-label>\r\n <mat-select formControlName=\"xAxis\" required multiple [sortComparator]=\"sortComparator\">\r\n @for (a of axes.controls; track a) {\r\n <mat-option [value]=\"a.controls.name.value\">{{a.controls.title.value || a.controls.name.value}}</mat-option>\r\n }\r\n </mat-select>\r\n @if (form.controls.xAxis.hasError('required')) {\r\n <mat-error [innerHTML]=\"'RequiredErr'|translate:('XAxis'|translate)\"></mat-error>\r\n }\r\n </mat-form-field>\r\n <mat-form-field>\r\n <mat-label>{{'Series'|translate}}</mat-label>\r\n <mat-select formControlName=\"series\" multiple [sortComparator]=\"sortComparator\">\r\n @for (a of axes.controls; track a) {\r\n @if (form.controls.xAxis.value?.indexOf(a.controls.name.value) < 0) {\r\n <mat-option [value]=\"a.controls.name.value\">{{a.controls.title.value|| a.controls.name.value}}</mat-option>\r\n }\r\n }\r\n </mat-select>\r\n @if (form.controls.series.hasError('required')) {\r\n <mat-error [innerHTML]=\"'RequiredErr'|translate:('Series'|translate)\"></mat-error>\r\n }\r\n </mat-form-field>\r\n <mat-form-field>\r\n <mat-label>{{'Indices'|translate}}</mat-label>\r\n <mat-select formControlName=\"indices\" multiple>\r\n @for (i of indices.controls; track i) {\r\n <mat-option [value]=\"i.controls.name.value\">{{i.controls.title.value|| i.controls.name.value}}</mat-option>\r\n }\r\n </mat-select>\r\n </mat-form-field>\r\n <mat-form-field>\r\n <mat-label>{{'ChartType'|translate}}</mat-label>\r\n <mat-select formControlName=\"chartType\">\r\n @switch (form.controls.type.value) {\r\n @case ('Chart') {\r\n <mat-option value=\"Pie\" [disabled]=\"form.controls.series.value?.length>0\">{{'Pie'|translate}}</mat-option>\r\n <mat-option value=\"Doughnut\" [disabled]=\"form.controls.series.value?.length>0\">{{'Doughnut'|translate}}</mat-option>\r\n <mat-option value=\"HalfDoughnut\" [disabled]=\"form.controls.series.value?.length>0\">{{'HalfDoughnut'|translate}}</mat-option>\r\n <mat-option value=\"Funnel\" [disabled]=\"form.controls.series.value?.length>0\">{{'Funnel'|translate}}</mat-option>\r\n <mat-option value=\"Pyramid\" [disabled]=\"form.controls.series.value?.length>0\">{{'Pyramid'|translate}}</mat-option>\r\n <mat-option value=\"Column\">{{'Column'|translate}}</mat-option>\r\n <mat-option value=\"Bar\">{{'Bar'|translate}}</mat-option>\r\n <mat-option value=\"Bubble\">{{'Bubble'|translate}}</mat-option>\r\n <mat-option value=\"Line\">{{'Line'|translate}}</mat-option>\r\n <mat-option value=\"Spline\">{{'Spline'|translate}}</mat-option>\r\n <mat-option value=\"Area\">{{'Area'|translate}}</mat-option>\r\n <mat-option value=\"Scatter\">{{'Scatter'|translate}}</mat-option>\r\n <mat-option value=\"Polar\">{{'Polar'|translate}}</mat-option>\r\n <mat-option value=\"Radar\">{{'Radar'|translate}}</mat-option>\r\n <mat-option value=\"StepLine\">{{'StepLine'|translate}}</mat-option>\r\n <mat-option value=\"StepArea\">{{'StepArea'|translate}}</mat-option>\r\n <mat-option value=\"SplineArea\">{{'SplineArea'|translate}}</mat-option>\r\n <mat-option value=\"StackingBar\" [disabled]=\"!form.controls.series.value?.length\">{{'StackingBar'|translate}}</mat-option>\r\n <mat-option value=\"StackingBar100\" [disabled]=\"!form.controls.series.value?.length\">{{'StackingBar100'|translate}}</mat-option>\r\n <mat-option value=\"StackingArea\" [disabled]=\"!form.controls.series.value?.length\">{{'StackingArea'|translate}}</mat-option>\r\n <mat-option value=\"StackingArea100\" [disabled]=\"!form.controls.series.value?.length\">{{'StackingArea100'|translate}}</mat-option>\r\n <mat-option value=\"StackingColumn\" [disabled]=\"!form.controls.series.value?.length\">{{'StackingColumn'|translate}}</mat-option>\r\n <mat-option value=\"StackingColumn100\" [disabled]=\"!form.controls.series.value?.length\">{{'StackingColumn100'|translate}}</mat-option>\r\n <mat-option value=\"StackingStepArea\" [disabled]=\"!form.controls.series.value?.length\">{{'StackingStepArea'|translate}}</mat-option>\r\n <mat-option value=\"StackingLine\" [disabled]=\"!form.controls.series.value?.length\">{{'StackingLine'|translate}}</mat-option>\r\n <mat-option value=\"StackingLine100\" [disabled]=\"!form.controls.series.value?.length\">{{'StackingLine100'|translate}}</mat-option>\r\n }\r\n @case ('PivotChart') {\r\n <mat-option>{{'None'|translate}}</mat-option>\r\n <mat-option value=\"Column\">{{'Column'|translate}}</mat-option>\r\n <mat-option value=\"Bar\">{{'Bar'|translate}}</mat-option>\r\n <mat-option value=\"Bubble\">{{'Bubble'|translate}}</mat-option>\r\n <mat-option value=\"Line\">{{'Line'|translate}}</mat-option>\r\n <mat-option value=\"Spline\">{{'Spline'|translate}}</mat-option>\r\n <mat-option value=\"SplineArea\">{{'SplineArea'|translate}}</mat-option>\r\n <mat-option value=\"Area\">{{'Area'|translate}}</mat-option>\r\n <mat-option value=\"Scatter\">{{'Scatter'|translate}}</mat-option>\r\n <mat-option value=\"Polar\">{{'Polar'|translate}}</mat-option>\r\n <mat-option value=\"Radar\">{{'Radar'|translate}}</mat-option>\r\n <mat-option value=\"StepLine\">{{'StepLine'|translate}}</mat-option>\r\n <mat-option value=\"StepArea\">{{'StepArea'|translate}}</mat-option>\r\n <mat-option value=\"StackingBar\" [disabled]=\"!form.controls.series.value?.length\">{{'StackingBar'|translate}}</mat-option>\r\n <mat-option value=\"StackingBar100\" [disabled]=\"!form.controls.series.value?.length\">{{'StackingBar100'|translate}}</mat-option>\r\n <mat-option value=\"StackingArea\" [disabled]=\"!form.controls.series.value?.length\">{{'StackingArea'|translate}}</mat-option>\r\n <mat-option value=\"StackingArea100\" [disabled]=\"!form.controls.series.value?.length\">{{'StackingArea100'|translate}}</mat-option>\r\n <mat-option value=\"StackingColumn\" [disabled]=\"!form.controls.series.value?.length\">{{'StackingColumn'|translate}}</mat-option>\r\n <mat-option value=\"StackingColumn100\" [disabled]=\"!form.controls.series.value?.length\">{{'StackingColumn100'|translate}}</mat-option>\r\n <mat-option value=\"StackingStepArea\" [disabled]=\"!form.controls.series.value?.length\">{{'StackingStepArea'|translate}}</mat-option>\r\n <mat-option value=\"StackingLine\" [disabled]=\"!form.controls.series.value?.length\">{{'StackingLine'|translate}}</mat-option>\r\n <mat-option value=\"StackingLine100\" [disabled]=\"!form.controls.series.value?.length\">{{'StackingLine100'|translate}}</mat-option>\r\n }\r\n }\r\n </mat-select>\r\n </mat-form-field>\r\n <mat-form-field>\r\n <mat-label>{{'IndicesChartType'|translate}}</mat-label>\r\n <mat-select formControlName=\"indicesChartType\">\r\n @switch (form.controls.type.value) {\r\n @case ('Chart') {\r\n <mat-option value=\"Column\">{{'Column'|translate}}</mat-option>\r\n <mat-option value=\"Bar\">{{'Bar'|translate}}</mat-option>\r\n <mat-option value=\"Bubble\">{{'Bubble'|translate}}</mat-option>\r\n <mat-option value=\"Line\">{{'Line'|translate}}</mat-option>\r\n <mat-option value=\"Spline\">{{'Spline'|translate}}</mat-option>\r\n <mat-option value=\"SplineArea\">{{'SplineArea'|translate}}</mat-option>\r\n <mat-option value=\"Area\">{{'Area'|translate}}</mat-option>\r\n <mat-option value=\"Scatter\">{{'Scatter'|translate}}</mat-option>\r\n <mat-option value=\"Polar\">{{'Polar'|translate}}</mat-option>\r\n <mat-option value=\"Radar\">{{'Radar'|translate}}</mat-option>\r\n <mat-option value=\"StepLine\">{{'StepLine'|translate}}</mat-option>\r\n <mat-option value=\"StepArea\">{{'StepArea'|translate}}</mat-option>\r\n <mat-option value=\"StackingColumn\" [disabled]=\"form.controls.indices.value?.length<2\">{{'StackingColumn'|translate}}</mat-option>\r\n <mat-option value=\"StackingColumn100\" [disabled]=\"form.controls.indices.value?.length<2\">{{'StackingColumn100'|translate}}</mat-option>\r\n <mat-option value=\"StackingBar\" [disabled]=\"form.controls.indices.value?.length<2\">{{'StackingBar'|translate}}</mat-option>\r\n <mat-option value=\"StackingBar100\" [disabled]=\"form.controls.indices.value?.length<2\">{{'StackingBar100'|translate}}</mat-option>\r\n <mat-option value=\"StackingLine\" [disabled]=\"form.controls.indices.value?.length<2\">{{'StackingLine'|translate}}</mat-option>\r\n <mat-option value=\"StackingLine100\" [disabled]=\"form.controls.indices.value?.length<2\">{{'StackingLine100'|translate}}</mat-option>\r\n <mat-option value=\"StackingArea\" [disabled]=\"form.controls.indices.value?.length<2\">{{'StackingArea'|translate}}</mat-option>\r\n <mat-option value=\"StackingArea100\" [disabled]=\"form.controls.indices.value?.length<2\">{{'StackingArea100'|translate}}</mat-option>\r\n <mat-option value=\"StackingStepArea\" [disabled]=\"form.controls.indices.value?.length<2\">{{'StackingStepArea'|translate}}</mat-option>\r\n }\r\n @case ('PivotChart') {\r\n <mat-option>{{'None'|translate}}</mat-option>\r\n <mat-option value=\"Column\">{{'Column'|translate}}</mat-option>\r\n <mat-option value=\"Bar\">{{'Bar'|translate}}</mat-option>\r\n <mat-option value=\"Bubble\">{{'Bubble'|translate}}</mat-option>\r\n <mat-option value=\"Line\">{{'Line'|translate}}</mat-option>\r\n <mat-option value=\"Spline\">{{'Spline'|translate}}</mat-option>\r\n <mat-option value=\"SplineArea\">{{'SplineArea'|translate}}</mat-option>\r\n <mat-option value=\"Area\">{{'Area'|translate}}</mat-option>\r\n <mat-option value=\"Scatter\">{{'Scatter'|translate}}</mat-option>\r\n <mat-option value=\"Polar\">{{'Polar'|translate}}</mat-option>\r\n <mat-option value=\"Radar\">{{'Radar'|translate}}</mat-option>\r\n <mat-option value=\"StepLine\">{{'StepLine'|translate}}</mat-option>\r\n <mat-option value=\"StepArea\">{{'StepArea'|translate}}</mat-option>\r\n <mat-option value=\"StackingBar\" [disabled]=\"form.controls.series.value?.length<2\">{{'StackingBar'|translate}}</mat-option>\r\n <mat-option value=\"StackingBar100\" [disabled]=\"form.controls.series.value?.length<2\">{{'StackingBar100'|translate}}</mat-option>\r\n <mat-option value=\"StackingArea\" [disabled]=\"form.controls.series.value?.length<2\">{{'StackingArea'|translate}}</mat-option>\r\n <mat-option value=\"StackingArea100\" [disabled]=\"form.controls.series.value?.length<2\">{{'StackingArea100'|translate}}</mat-option>\r\n <mat-option value=\"StackingColumn\" [disabled]=\"form.controls.series.value?.length<2\">{{'StackingColumn'|translate}}</mat-option>\r\n <mat-option value=\"StackingColumn100\" [disabled]=\"form.controls.series.value?.length<2\">{{'StackingColumn100'|translate}}</mat-option>\r\n <mat-option value=\"StackingStepArea\" [disabled]=\"form.controls.series.value?.length<2\">{{'StackingStepArea'|translate}}</mat-option>\r\n <mat-option value=\"StackingLine\" [disabled]=\"form.controls.series.value?.length<2\">{{'StackingLine'|translate}}</mat-option>\r\n <mat-option value=\"StackingLine100\" [disabled]=\"form.controls.series.value?.length<2\">{{'StackingLine100'|translate}}</mat-option>\r\n }\r\n }\r\n </mat-select>\r\n </mat-form-field>\r\n <mat-form-field>\r\n <mat-label>{{'Guide'|translate}}</mat-label>\r\n <mat-select formControlName=\"guide\">\r\n <mat-option>{{'None'|translate}}</mat-option>\r\n @for (g of guides; track g) {\r\n <mat-option [value]=\"g.name\">{{g.title |localizedString}}</mat-option>\r\n }\r\n </mat-select>\r\n </mat-form-field>\r\n @if (cube) {\r\n <bizdoc-designer-cube-filter [cube]=\"cube\" [form]=\"form.controls.filters\"></bizdoc-designer-cube-filter>\r\n }\r\n </ng-container>\r\n </ng-template>\r\n <!-- Axis -->\r\n <ng-template bizdocCustomContent=\"axis\" let-form=\"form\">\r\n <ng-container [formGroup]=\"form\">\r\n <div class=\"row gap\">\r\n <mat-form-field class=\"flex\">\r\n <mat-label>{{'Title'|translate}}</mat-label>\r\n <input matInput formControlName=\"title\" required />\r\n @if (form.controls.title.hasError('required')) {\r\n <mat-error [innerHTML]=\"'RequiredErr'|translate:('Title'|translate)\"></mat-error>\r\n }\r\n </mat-form-field>\r\n <mat-form-field class=\"flex\">\r\n <mat-label>{{'Name'|translate}}</mat-label>\r\n <input matInput formControlName=\"name\" required />\r\n @if (form.controls.name.hasError('required')) {\r\n <mat-error [innerHTML]=\"'RequiredErr'|translate:('Name'|translate)\"></mat-error>\r\n }\r\n </mat-form-field>\r\n </div>\r\n <mat-form-field>\r\n <mat-label>{{'DataType'|translate}}</mat-label>\r\n <mat-select formControlName=\"dataType\" required>\r\n @for (t of typegroups['_'].elements|sort: 'title'; track t) {\r\n <mat-option [value]=\"t.name\">\r\n {{t.title}}\r\n </mat-option>\r\n }\r\n @for (g of typegroups|sort: 'title'; track g) {\r\n <mat-optgroup [label]=\"g.title\">\r\n @for (t of g.elements|sort: 'title'; track t) {\r\n <mat-option [value]=\"t.name\">\r\n {{t.title}}\r\n </mat-option>\r\n }\r\n </mat-optgroup>\r\n }\r\n </mat-select>\r\n @if (form.controls.title.hasError('required')) {\r\n <mat-error [innerHTML]=\"'RequiredErr'|translate:('DataType'|translate)\"></mat-error>\r\n }\r\n </mat-form-field>\r\n <div><mat-checkbox formControlName=\"combination\">{{'CombinationAxis'|translate}}</mat-checkbox></div>\r\n <div><mat-checkbox formControlName=\"sensitive\">{{'SensitiveAxis'|translate}}</mat-checkbox></div>\r\n <mat-form-field>\r\n <mat-label>{{'SelectionMode'|translate}}</mat-label>\r\n <mat-select formControlName=\"selectionMode\">\r\n <mat-option value=\"None\">{{'None'|translate}}</mat-option>\r\n <mat-option>{{'OneMode'|translate}}</mat-option>\r\n <mat-option value=\"Multiple\">{{'Multiple'|translate}}</mat-option>\r\n <mat-option value=\"Search\">{{'Autocomplete'|translate}}</mat-option>\r\n <mat-option value=\"Pattern\">{{'Pattern'|translate}}</mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n <mat-form-field>\r\n <mat-label>{{'DescendentOf'|translate}}</mat-label>\r\n <mat-select formControlName=\"descendentOf\">\r\n @for (a of axes.controls; track a) {\r\n @if (a!=form) {\r\n <mat-option [value]=\"a.controls.name.value\">{{a.controls.title.value}}</mat-option>\r\n }\r\n }\r\n </mat-select>\r\n </mat-form-field>\r\n <div><mat-checkbox formControlName=\"indexable\">{{'IndexableAxis'|translate}}</mat-checkbox></div>\r\n </ng-container>\r\n </ng-template>\r\n</bizdoc-designer-element>\r\n", styles: [":host ::ng-deep form{min-width:350px;max-width:450px}:host ::ng-deep .mat-mdc-radio-group p{margin-inline-start:8px}.mat-mdc-table{width:100%}.mat-mdc-table .mat-mdc-cell:last-child{width:80px}.flex{flex:1}table tr td:first-child{width:26px}dl{width:100%;overflow:hidden;padding:0;margin:0}dt{padding:0;margin:0;clear:both}dd{float:left;padding:0;margin:0}\n"] }]
|
34558
34574
|
}], ctorParameters: () => [{ type: i1$3.FormBuilder }, { type: SystemService }, { type: PromptService }, { type: i0.ElementRef }, { type: DesignerRef, decorators: [{
|
34559
34575
|
type: Inject,
|
34560
34576
|
args: [DesignerRef]
|
@@ -35310,8 +35326,8 @@ let ConfigurationDesignerComponent = class ConfigurationDesignerComponent {
|
|
35310
35326
|
eclone = clone(eclone); // deep
|
35311
35327
|
const injector = this._createInjector(eclone, section.elements, mode);
|
35312
35328
|
return new Promise((resolve, reject) => this._panes.navigate(section.comp, {
|
35313
|
-
policy: mode === 'add' ? OpenPolicy.Dialog
|
35314
|
-
|
35329
|
+
policy: mode === 'add' ? OpenPolicy.Dialog : OpenPolicy.Tab & ~OpenPolicy.Dismissable
|
35330
|
+
| OpenPolicy.Toggle | OpenPolicy.Defer,
|
35315
35331
|
group: this._translate.get(section.title),
|
35316
35332
|
//title,
|
35317
35333
|
injector: injector
|