@bizdoc/core 3.2.6 → 3.2.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/assets/themes/brown.min.css +1 -1
- package/assets/themes/dark.min.css +1 -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/core/localized-string.component.mjs +2 -2
- package/esm2022/lib/admin/form/workflow/workflow.component.mjs +4 -4
- package/esm2022/lib/compose/tag/tags.component.mjs +2 -2
- package/esm2022/lib/compose/trace/flow.component.mjs +121 -124
- package/esm2022/lib/compose/trace/trace.component.mjs +4 -2
- package/esm2022/lib/compose/trace/trace.pane.component.mjs +3 -3
- package/esm2022/lib/core/configuration.mjs +5 -5
- package/esm2022/lib/core/slots/slots.component.mjs +6 -3
- package/esm2022/lib/core/translations.mjs +7 -2
- package/esm2022/lib/modules/diagram.module.mjs +9 -5
- package/esm2022/lib/routes.desktop.mjs +2 -2
- package/fesm2022/bizdoc-core.mjs +160 -150
- package/fesm2022/bizdoc-core.mjs.map +1 -1
- package/lib/compose/trace/flow.component.d.ts +1 -11
- package/lib/compose/trace/trace.component.d.ts +2 -1
- package/lib/core/configuration.d.ts +4 -4
- package/lib/core/functions.d.ts +1 -1
- package/lib/core/slots/slots.component.d.ts +1 -0
- package/lib/cube/cube.service.d.ts +1 -1
- package/package.json +1 -1
package/fesm2022/bizdoc-core.mjs
CHANGED
@@ -126,8 +126,8 @@ import { ToolbarType, RichTextEditorComponent, RichTextEditorModule, HtmlEditorS
|
|
126
126
|
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
|
-
import { Diagram, UndoRedo,
|
130
|
-
import { DiagramAction, DiagramTools as DiagramTools$1, DiagramConstraints as DiagramConstraints$1, ConnectionPointOrigin, SnapConstraints, Diagram as Diagram$1, NodeConstraints as NodeConstraints$1, ComplexHierarchicalTreeService,
|
129
|
+
import { Diagram, UndoRedo, 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, DiagramModule, SymbolPaletteModule, ConnectorBridgingService, LineRoutingService, BpmnDiagramsService, LayoutAnimationService, DataBindingService, FlowchartLayoutService, UndoRedoService, SnappingService, ConnectorEditingService, LineDistributionService, FlowchartLayout, HierarchicalTree, ComplexHierarchicalTree, BpmnDiagrams as BpmnDiagrams$1, LineDistribution, LineRouting, ConnectorBridging } 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;
|
@@ -9531,11 +9536,11 @@ class TagsComponent {
|
|
9531
9536
|
this._destroy.complete();
|
9532
9537
|
}
|
9533
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 }); }
|
9534
|
-
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" }] }); }
|
9535
9540
|
}
|
9536
9541
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: TagsComponent, decorators: [{
|
9537
9542
|
type: Component,
|
9538
|
-
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"] }]
|
9539
9544
|
}], ctorParameters: () => [{ type: undefined, decorators: [{
|
9540
9545
|
type: Inject,
|
9541
9546
|
args: [POPUP_DATA]
|
@@ -14386,8 +14391,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImpor
|
|
14386
14391
|
args: ['connectorargs', { static: true }]
|
14387
14392
|
}] } });
|
14388
14393
|
|
14389
|
-
Diagram.Inject(UndoRedo,
|
14390
|
-
SymbolPalette.Inject(BpmnDiagrams);
|
14394
|
+
Diagram.Inject(UndoRedo, ConnectorEditing, Snapping);
|
14395
|
+
SymbolPalette.Inject(BpmnDiagrams /*, LayoutAnimation*/);
|
14391
14396
|
const ports = [
|
14392
14397
|
{ id: 'port1', shape: 'Circle', offset: { x: 0, y: 0.5 }, visibility: PortVisibility.Connect | PortVisibility.Hover, constraints: PortConstraints.Default | PortConstraints.Draw },
|
14393
14398
|
{ id: 'port2', shape: 'Circle', offset: { x: 0.5, y: 1 }, visibility: PortVisibility.Connect | PortVisibility.Hover, constraints: PortConstraints.Default | PortConstraints.Draw },
|
@@ -15139,9 +15144,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImpor
|
|
15139
15144
|
args: [{ name: 'amDurationFormat' }]
|
15140
15145
|
}], ctorParameters: () => [{ type: TranslateService }] });
|
15141
15146
|
|
15142
|
-
const
|
15143
|
-
//ELLIPSIS = 'M 650, 150 a 75,150 0 1,0 1,0 z',
|
15144
|
-
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';
|
15145
15148
|
/** flow-view component*/
|
15146
15149
|
class FlowViewComponent extends TraceBase {
|
15147
15150
|
/** workflow-view ctor */
|
@@ -15153,24 +15156,21 @@ class FlowViewComponent extends TraceBase {
|
|
15153
15156
|
this._elementRef = _elementRef;
|
15154
15157
|
this.connectorType = 'Orthogonal';
|
15155
15158
|
this.tool = DiagramTools$1.ZoomPan;
|
15156
|
-
this.diagramConstraints = DiagramConstraints$1.
|
15157
|
-
DiagramConstraints$1.Pan |
|
15159
|
+
this.diagramConstraints = DiagramConstraints$1.Pan |
|
15158
15160
|
DiagramConstraints$1.LineRouting |
|
15159
15161
|
DiagramConstraints$1.Bridging |
|
15160
15162
|
DiagramConstraints$1.Zoom;
|
15161
15163
|
this.enableRtl = this._session.inverse;
|
15162
15164
|
this.layout = {
|
15163
|
-
type: '
|
15165
|
+
type: 'Flowchart',
|
15164
15166
|
verticalAlignment: 'Center',
|
15165
|
-
connectionPointOrigin: ConnectionPointOrigin.
|
15167
|
+
connectionPointOrigin: ConnectionPointOrigin.SamePoint,
|
15166
15168
|
horizontalSpacing: 50,
|
15167
15169
|
enableRouting: true,
|
15168
15170
|
verticalSpacing: 50,
|
15169
15171
|
margin: { top: 4 },
|
15170
|
-
//arrangement:
|
15171
|
-
//
|
15172
|
-
//root: 'start',
|
15173
|
-
orientation: this.enableRtl ? 'RightToLeft' : 'LeftToRight',
|
15172
|
+
// arrangement: ChildArrangement.Linear,
|
15173
|
+
//orientation: this.enableRtl ? 'RightToLeft' : 'LeftToRight',
|
15174
15174
|
};
|
15175
15175
|
this.scrollSettings = {
|
15176
15176
|
minZoom: .5,
|
@@ -15198,7 +15198,7 @@ class FlowViewComponent extends TraceBase {
|
|
15198
15198
|
this.diagram && this.diagram.destroy();
|
15199
15199
|
this.diagram = new Diagram$1({
|
15200
15200
|
width: '100%',
|
15201
|
-
height:
|
15201
|
+
height: 600,
|
15202
15202
|
nodes,
|
15203
15203
|
connectors,
|
15204
15204
|
layout: this.layout,
|
@@ -15208,10 +15208,9 @@ class FlowViewComponent extends TraceBase {
|
|
15208
15208
|
scrollSettings: this.scrollSettings,
|
15209
15209
|
snapSettings: this.snapSettings,
|
15210
15210
|
constraints: this.diagramConstraints,
|
15211
|
-
getConnectorDefaults: this.connDefaults.bind(this),
|
15212
|
-
getNodeDefaults: this.nodeDefaults.bind(this),
|
15213
15211
|
}, this._elementRef.nativeElement);
|
15214
15212
|
this.diagram.doLayout();
|
15213
|
+
this.diagram.fitToPage({ margin: { top: 10 } });
|
15215
15214
|
indicators.forEach((n, i) => {
|
15216
15215
|
const parent = this.diagram.getNodeObject(n.addInfo.parentId);
|
15217
15216
|
n.offsetX = parent.offsetX + (this.enableRtl ? -25 : 25);
|
@@ -15219,7 +15218,6 @@ class FlowViewComponent extends TraceBase {
|
|
15219
15218
|
n.zIndex = 1000 + i;
|
15220
15219
|
this.diagram.add(n);
|
15221
15220
|
});
|
15222
|
-
this.diagram.fitToPage({ margin: { top: 10 } });
|
15223
15221
|
interval(60000).pipe(takeUntil(this._destroy)).subscribe(this._refresh.bind(this));
|
15224
15222
|
}
|
15225
15223
|
_refresh() {
|
@@ -15242,63 +15240,12 @@ class FlowViewComponent extends TraceBase {
|
|
15242
15240
|
n.addInfo.tooltip.estimatedTime = this._timeEstimate(node),
|
15243
15241
|
n.tooltip.content = this._tooltip(n.addInfo.tooltip);
|
15244
15242
|
});
|
15245
|
-
// this.diagram.dataBind();
|
15246
|
-
}
|
15247
|
-
/**
|
15248
|
-
*
|
15249
|
-
* @param obj
|
15250
|
-
*/
|
15251
|
-
nodeDefaults(obj) {
|
15252
|
-
const { recipient, node, indicator } = obj.addInfo;
|
15253
|
-
if (indicator) {
|
15254
|
-
obj.width = obj.height = 15;
|
15255
|
-
obj.style.strokeWidth = 0;
|
15256
|
-
}
|
15257
|
-
else {
|
15258
|
-
obj.width = obj.height = 50;
|
15259
|
-
if (obj.annotations && obj.annotations.length)
|
15260
|
-
obj.annotations[0].style.color = this._session.theme.dark ? 'white' : 'black';
|
15261
|
-
if (node && node.estimate) {
|
15262
|
-
obj.style.strokeColor = this._session.theme.dark ? 'white' : 'black';
|
15263
|
-
obj.style.opacity = obj.annotations[0].style.opacity = .6;
|
15264
|
-
obj.style.fill = 'transparent';
|
15265
|
-
}
|
15266
|
-
else {
|
15267
|
-
obj.style.strokeColor = this._accentColor;
|
15268
|
-
obj.style.fill = recipient && recipient.pending ?
|
15269
|
-
this._session.getAccent(recipient.userId === this._session.userId ? 500 : 400) : 'transparent';
|
15270
|
-
}
|
15271
|
-
obj.style.strokeWidth = 2;
|
15272
|
-
}
|
15273
|
-
return obj;
|
15274
|
-
}
|
15275
|
-
/**
|
15276
|
-
*
|
15277
|
-
* @param connector
|
15278
|
-
*/
|
15279
|
-
connDefaults(connector) {
|
15280
|
-
connector.type = this.connectorType;
|
15281
|
-
connector.cornerRadius = 6;
|
15282
|
-
connector.targetDecorator.height = 7;
|
15283
|
-
connector.targetDecorator.width = 7;
|
15284
|
-
if (connector.addInfo.estimate) {
|
15285
|
-
connector.style.strokeDashArray = '2 2';
|
15286
|
-
connector.style.strokeColor =
|
15287
|
-
connector.targetDecorator.style.fill =
|
15288
|
-
connector.targetDecorator.style.strokeColor =
|
15289
|
-
this._session.theme.dark ? 'white' : 'black';
|
15290
|
-
connector.style.strokeWidth = 1;
|
15291
|
-
}
|
15292
|
-
else {
|
15293
|
-
connector.style.strokeColor = connector.targetDecorator.style.strokeColor = connector.targetDecorator.style.fill = this._accentColor;
|
15294
|
-
connector.style.strokeWidth = 2;
|
15295
|
-
}
|
15296
|
-
connector.targetDecorator.shape = 'None';
|
15297
15243
|
}
|
15298
15244
|
/** */
|
15299
15245
|
async _prepare() {
|
15300
15246
|
const { connectors: dconnectors, nodes: dnodes } = this.model.workflow;
|
15301
15247
|
const indicators = [], connectors = [], nodes = [];
|
15248
|
+
const color = this._session.theme.dark ? 'white' : 'black';
|
15302
15249
|
let zIndex = 500;
|
15303
15250
|
for (let node of dnodes) {
|
15304
15251
|
if (nodes.find(n => n.id == node.id))
|
@@ -15328,10 +15275,18 @@ class FlowViewComponent extends TraceBase {
|
|
15328
15275
|
} while (r < recipients.length);
|
15329
15276
|
for (r = 0; r < recipients.length; r++) {
|
15330
15277
|
let recipient = recipients[r];
|
15331
|
-
const { annotation, tooltip } = await this._note(node, recipient);
|
15332
|
-
|
15333
|
-
|
15334
|
-
|
15278
|
+
const { annotation, tooltip } = await this._note(node, recipient), content = this._tooltip(tooltip), id = r === 0 ? node.id : node.id + r.toString();
|
15279
|
+
nodes.push({
|
15280
|
+
id,
|
15281
|
+
width: 50,
|
15282
|
+
height: 50,
|
15283
|
+
style: {
|
15284
|
+
strokeWidth: 2,
|
15285
|
+
opacity: node.estimate ? .6 : 1,
|
15286
|
+
strokeColor: node.estimate ? color : this._accentColor,
|
15287
|
+
fill: !node.estimate && recipient.pending ?
|
15288
|
+
this._session.getAccent(recipient.userId === this._session.userId ? 500 : 400) : 'transparent'
|
15289
|
+
},
|
15335
15290
|
shape: this._configuration[node.type].shape,
|
15336
15291
|
zIndex: zIndex++,
|
15337
15292
|
tooltip: {
|
@@ -15347,6 +15302,10 @@ class FlowViewComponent extends TraceBase {
|
|
15347
15302
|
node
|
15348
15303
|
},
|
15349
15304
|
annotations: [{
|
15305
|
+
style: {
|
15306
|
+
color: color,
|
15307
|
+
opacity: node.estimate ? .6 : 1,
|
15308
|
+
},
|
15350
15309
|
content: annotation,
|
15351
15310
|
margin: { top: 4 },
|
15352
15311
|
verticalAlignment: 'Top',
|
@@ -15355,74 +15314,84 @@ class FlowViewComponent extends TraceBase {
|
|
15355
15314
|
x: .5
|
15356
15315
|
}
|
15357
15316
|
}]
|
15358
|
-
};
|
15359
|
-
nodes.push(nod);
|
15317
|
+
});
|
15360
15318
|
// add action indicator
|
15361
15319
|
if (recipient.action) {
|
15362
15320
|
const action = this._session.profile.actions.find(a => a.name === recipient.action);
|
15363
|
-
|
15364
|
-
|
15365
|
-
id:
|
15321
|
+
action.shape && !recipient.pending &&
|
15322
|
+
indicators.push({
|
15323
|
+
id: id + 'action',
|
15324
|
+
width: 15,
|
15325
|
+
height: 15,
|
15366
15326
|
shape: {
|
15367
15327
|
type: 'Path',
|
15368
15328
|
data: action.shape,
|
15369
15329
|
align: this.enableRtl ? 'XMinYMax' : 'XMaxYMax',
|
15370
15330
|
},
|
15371
15331
|
style: {
|
15332
|
+
strokeWidth: 0,
|
15372
15333
|
fill: action.color || this._session.getAccent(900)
|
15373
15334
|
},
|
15374
15335
|
addInfo: {
|
15375
15336
|
indicator: true,
|
15376
|
-
parentId:
|
15337
|
+
parentId: id
|
15377
15338
|
}
|
15378
|
-
};
|
15379
|
-
indicators.push(actionIndicator);
|
15380
|
-
}
|
15339
|
+
});
|
15381
15340
|
}
|
15382
15341
|
// fyi indicator
|
15383
|
-
|
15342
|
+
recipient.fyi &&
|
15384
15343
|
indicators.push({
|
15385
|
-
id:
|
15344
|
+
id: id + 'fyi',
|
15345
|
+
width: 15,
|
15346
|
+
height: 15,
|
15386
15347
|
shape: {
|
15387
15348
|
type: 'Path',
|
15388
15349
|
data: FYI_PATH,
|
15389
15350
|
align: this.enableRtl ? 'XMinYMax' : 'XMaxYMax'
|
15390
15351
|
},
|
15391
15352
|
style: {
|
15353
|
+
strokeWidth: 0,
|
15392
15354
|
fill: '#1976d2'
|
15393
15355
|
},
|
15394
15356
|
addInfo: {
|
15395
15357
|
indicator: true,
|
15396
|
-
parentId:
|
15358
|
+
parentId: id
|
15397
15359
|
}
|
15398
15360
|
});
|
15399
15361
|
// escalate indicator
|
15400
|
-
|
15401
|
-
|
15402
|
-
id:
|
15362
|
+
recipient.escalated &&
|
15363
|
+
indicators.push({
|
15364
|
+
id: id + 'escalate',
|
15365
|
+
width: 15,
|
15366
|
+
height: 15,
|
15403
15367
|
shape: {
|
15404
15368
|
type: 'Path',
|
15405
15369
|
data: ESCALATED_PATH,
|
15406
15370
|
align: this.enableRtl ? 'XMinYMax' : 'XMaxYMax'
|
15407
15371
|
},
|
15408
15372
|
style: {
|
15373
|
+
strokeWidth: 0,
|
15409
15374
|
fill: this._session.getAccent(900)
|
15410
15375
|
},
|
15411
15376
|
addInfo: {
|
15412
15377
|
indicator: true,
|
15413
|
-
parentId:
|
15378
|
+
parentId: id
|
15414
15379
|
}
|
15415
|
-
};
|
15416
|
-
indicators.push(escalateIndicator);
|
15417
|
-
}
|
15380
|
+
});
|
15418
15381
|
}
|
15419
15382
|
}
|
15420
15383
|
else {
|
15421
|
-
const { state, annotation, tooltip } = await this._shape(node);
|
15422
|
-
const { shape } = configuration;
|
15423
|
-
const content = this._tooltip(tooltip);
|
15384
|
+
const { state, annotation, tooltip } = await this._shape(node), { shape } = configuration, content = this._tooltip(tooltip);
|
15424
15385
|
nodes.push({
|
15425
15386
|
id: node.id,
|
15387
|
+
width: 50,
|
15388
|
+
height: 50,
|
15389
|
+
style: {
|
15390
|
+
strokeWidth: 2,
|
15391
|
+
opacity: node.estimate ? .6 : 1,
|
15392
|
+
strokeColor: node.estimate ? color : this._accentColor,
|
15393
|
+
fill: 'transparent'
|
15394
|
+
},
|
15426
15395
|
shape, //: {type: 'Path', data: ELLIPSIS },
|
15427
15396
|
zIndex: zIndex++,
|
15428
15397
|
tooltip: {
|
@@ -15441,19 +15410,25 @@ class FlowViewComponent extends TraceBase {
|
|
15441
15410
|
offset: shape.type === 'Path' ? {
|
15442
15411
|
y: 1
|
15443
15412
|
} : { x: .5 },
|
15444
|
-
style: {
|
15413
|
+
style: {
|
15414
|
+
color: color,
|
15415
|
+
opacity: node.estimate ? .6 : 1,
|
15416
|
+
},
|
15445
15417
|
verticalAlignment: shape.type === 'Path' ? 'Top' : 'Center'
|
15446
15418
|
}]
|
15447
15419
|
});
|
15448
|
-
|
15420
|
+
state && state.shape && !node.estimate &&
|
15449
15421
|
indicators.push({
|
15450
15422
|
id: node.id + 'state',
|
15423
|
+
width: 15,
|
15424
|
+
height: 15,
|
15451
15425
|
shape: {
|
15452
15426
|
type: 'Path',
|
15453
15427
|
data: state.shape,
|
15454
15428
|
align: this.enableRtl ? 'XMaxYMax' : 'XMinYMax'
|
15455
15429
|
},
|
15456
15430
|
style: {
|
15431
|
+
strokeWidth: 0,
|
15457
15432
|
fill: state.color || 'black'
|
15458
15433
|
},
|
15459
15434
|
addInfo: {
|
@@ -15462,49 +15437,52 @@ class FlowViewComponent extends TraceBase {
|
|
15462
15437
|
node: node
|
15463
15438
|
}
|
15464
15439
|
});
|
15465
|
-
|
15466
|
-
|
15440
|
+
node.error &&
|
15441
|
+
indicators.push({
|
15467
15442
|
id: node.id + 'exception',
|
15443
|
+
width: 15,
|
15444
|
+
height: 15,
|
15468
15445
|
shape: {
|
15469
15446
|
type: 'Path',
|
15470
15447
|
data: WARNNING_PATH$1,
|
15471
15448
|
align: this.enableRtl ? 'XMinYMax' : 'XMaxYMax'
|
15472
15449
|
},
|
15473
15450
|
style: {
|
15451
|
+
strokeWidth: 0,
|
15474
15452
|
fill: getWarn(800)
|
15475
15453
|
},
|
15476
15454
|
addInfo: {
|
15477
15455
|
indicator: true,
|
15478
15456
|
parentId: node.id
|
15479
15457
|
}
|
15480
|
-
};
|
15481
|
-
indicators.push(warnningIndicator);
|
15482
|
-
}
|
15458
|
+
});
|
15483
15459
|
}
|
15484
15460
|
}
|
15485
15461
|
// TODO
|
15486
15462
|
// longest path, remove short path connectors
|
15487
|
-
function deepen(nodeId, depth = 0) {
|
15488
|
-
|
15489
|
-
|
15490
|
-
|
15491
|
-
|
15492
|
-
|
15493
|
-
|
15494
|
-
|
15495
|
-
|
15496
|
-
|
15497
|
-
|
15498
|
-
|
15499
|
-
|
15500
|
-
|
15501
|
-
|
15502
|
-
|
15503
|
-
|
15504
|
-
|
15505
|
-
|
15506
|
-
|
15507
|
-
}
|
15463
|
+
//function deepen(nodeId: string, depth = 0) {
|
15464
|
+
// nodes.filter(n => (n.addInfo as NodeInfoModel).node.id === nodeId).
|
15465
|
+
// forEach(n => {
|
15466
|
+
// const { depth: nodeDepth } = n.addInfo as NodeInfoModel;
|
15467
|
+
// if (nodeDepth) {
|
15468
|
+
// if (nodeDepth < depth) {
|
15469
|
+
// dconnectors.filter(c => c.targetId === nodeId &&
|
15470
|
+
// nodes.filter(n => (n.addInfo as NodeInfoModel).node.id === c.sourceId &&
|
15471
|
+
// (n.addInfo as NodeInfoModel).depth === nodeDepth - 1).length).
|
15472
|
+
// forEach(c =>
|
15473
|
+
// dconnectors.remove(c)
|
15474
|
+
// );
|
15475
|
+
// (n.addInfo as NodeInfoModel).depth = depth;
|
15476
|
+
// } else if (nodeDepth > depth)
|
15477
|
+
// dconnectors.filter(c => c.sourceId === nodeId).forEach(c => dconnectors.remove(c));
|
15478
|
+
// } else {
|
15479
|
+
// (n.addInfo as NodeInfoModel).depth = depth;
|
15480
|
+
// dconnectors.filter(c => c.sourceId === nodeId).forEach(c =>
|
15481
|
+
// deepen(c.targetId, depth + 1)
|
15482
|
+
// );
|
15483
|
+
// }
|
15484
|
+
// });
|
15485
|
+
//}
|
15508
15486
|
for (let connector of dconnectors) {
|
15509
15487
|
let sources = nodes.filter(n => n.addInfo.node.id === connector.sourceId), targets = nodes.filter(n => n.addInfo.node.id === connector.targetId);
|
15510
15488
|
for (let source of sources)
|
@@ -15512,6 +15490,29 @@ class FlowViewComponent extends TraceBase {
|
|
15512
15490
|
connectors.push({
|
15513
15491
|
sourceID: source.id,
|
15514
15492
|
targetID: target.id,
|
15493
|
+
type: this.connectorType,
|
15494
|
+
cornerRadius: 6,
|
15495
|
+
targetDecorator: {
|
15496
|
+
shape: 'None',
|
15497
|
+
height: 7,
|
15498
|
+
width: 7,
|
15499
|
+
style: connector.estimate ? {
|
15500
|
+
fill: color,
|
15501
|
+
strokeColor: color
|
15502
|
+
} : {
|
15503
|
+
strokeColor: this._accentColor,
|
15504
|
+
fill: this._accentColor
|
15505
|
+
},
|
15506
|
+
},
|
15507
|
+
style: connector.estimate ? {
|
15508
|
+
strokeDashArray: '2 2',
|
15509
|
+
strokeColor: color,
|
15510
|
+
opacity: .3,
|
15511
|
+
strokeWidth: 1
|
15512
|
+
} : {
|
15513
|
+
strokeColor: this._accentColor,
|
15514
|
+
strokeWidth: 2
|
15515
|
+
},
|
15515
15516
|
addInfo: {
|
15516
15517
|
estimate: connector.estimate,
|
15517
15518
|
time: connector.time
|
@@ -15801,13 +15802,13 @@ class FlowViewComponent extends TraceBase {
|
|
15801
15802
|
super.ngOnDestroy();
|
15802
15803
|
}
|
15803
15804
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: FlowViewComponent, deps: [{ token: AccountService }, { token: SessionService }, { token: TranslateService }, { token: DurationFormatPipe }, { token: i0.ElementRef }, { token: HubService }], target: i0.ɵɵFactoryTarget.Component }); }
|
15804
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.5", type: FlowViewComponent, selector: "bizdoc-flow", inputs: { model: "model", version: "version", connectorType: "connectorType" }, host: { attributes: { "dir": "ltr" } }, usesInheritance: true, ngImport: i0, template: '', isInline: true, styles: ["
|
15805
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.5", type: FlowViewComponent, selector: "bizdoc-flow", inputs: { model: "model", version: "version", connectorType: "connectorType" }, host: { attributes: { "dir": "ltr" } }, usesInheritance: true, ngImport: i0, template: '', isInline: true, styles: [""], viewProviders: [ComplexHierarchicalTreeService] }); }
|
15805
15806
|
}
|
15806
15807
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: FlowViewComponent, decorators: [{
|
15807
15808
|
type: Component,
|
15808
15809
|
args: [{ selector: 'bizdoc-flow', template: '', viewProviders: [ComplexHierarchicalTreeService], host: {
|
15809
15810
|
dir: 'ltr'
|
15810
|
-
}
|
15811
|
+
} }]
|
15811
15812
|
}], ctorParameters: () => [{ type: AccountService }, { type: SessionService }, { type: TranslateService }, { type: DurationFormatPipe }, { type: i0.ElementRef }, { type: HubService }], propDecorators: { model: [{
|
15812
15813
|
type: Input
|
15813
15814
|
}], version: [{
|
@@ -16151,13 +16152,15 @@ class TraceViewComponent extends TraceBase {
|
|
16151
16152
|
this.versionSelected.emit(log.time);
|
16152
16153
|
}
|
16153
16154
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: TraceViewComponent, deps: [{ token: SessionService }, { token: TranslateService }, { token: AccountService }, { token: ChatInfo }, { token: HubService }], target: i0.ɵɵFactoryTarget.Component }); }
|
16154
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.5", type: TraceViewComponent, selector: "bizdoc-trace", inputs: { model: "model" }, outputs: { versionSelected: "versionSelected" }, usesInheritance: true, ngImport: i0, template: "<div class=\"nav-toolbar row\">\r\n <span class=\"divider\"></span>\r\n <button mat-icon-button [matMenuTriggerFor]=\"menu\" [bizdocTooltip]=\"'ShowAll'|translate\"><mat-icon>filter_list</mat-icon></button>\r\n <mat-menu #menu> \r\n <button mat-menu-item (click)=\"showMode='route'\">\r\n <mat-icon>{{ showMode === 'route' ? 'check':'' }}</mat-icon>\r\n <span>{{'Route' | translate }}</span>\r\n </button>\r\n <button mat-menu-item (click)=\"showMode='active'\">\r\n <mat-icon>{{ showMode === 'active' ? 'check':'' }}</mat-icon>\r\n <span>{{'ActiveRoute' | translate }}</span>\r\n </button>\r\n <button mat-menu-item (click)=\"showMode='everything'\">\r\n <mat-icon>{{ showMode === 'everything' ? 'check':'' }}</mat-icon>\r\n <span>{{'Everything' | translate }}</span>\r\n </button>\r\n </mat-menu>\r\n</div>\r\n<table class=\"mat-mdc-table\" @list>\r\n <tbody role=\"rowgroup\">\r\n @for(l of data; track l){\r\n <tr class=\"mat-mdc-row\" @item>\r\n <td class=\"mat-mdc-cell\">\r\n <span [innerHTML]=\"l.name | sanitizeHtml\" (click)=\"chat($event)\"></span>\r\n @if(l.role) {<span>{{'JoinComma'|translate}}{{l.role}}</span>}\r\n </td>\r\n <td class=\"mat-mdc-cell\">\r\n @switch (l.type) {\r\n @case('ActionTaken') {\r\n <span [innerHTML]=\"l.action | sanitizeHtml\" (click)=\"chat($event)\" class=\"to\"></span>\r\n }\r\n @case('Submit') {\r\n <span>{{'Issued' | translate}}</span>\r\n }\r\n @case('Pending') {\r\n <span>{{'IsPending' | translate}}</span>\r\n }\r\n @case('CheckOut') {\r\n <span>{{'CheckedIn' | translate : l.fileName}}</span>\r\n }\r\n @case('CheckIn') {\r\n <span>{{'CheckedOut' | translate : l.fileName}}</span>\r\n }\r\n @case('Estimate') {\r\n <span>{{'Estimate' | translate}}</span>\r\n }\r\n @case('ModelChange') {\r\n <span>{{'Changed' | translate}}</span>\r\n }\r\n }\r\n @if(l.fyi) {\r\n <span> {{'FYI'|translate}}</span>\r\n }\r\n </td>\r\n <td class=\"mat-mdc-cell\">\r\n @if(l.estimate) {\r\n @if(l.durationMax && l.durationMax === l.durationMin)\r\n {<span [bizdocTooltip]=\"l.durationMax|amDurationFormat\">{{'EstimateTime'| translate : (l.durationMax | amDuration:'s')}}</span>\r\n }\r\n @if(l.durationMax && l.durationMax !== l.durationMin){<span [bizdocTooltip]=\"l.durationMax|amDurationFormat\">{{'EstimateTimeRange'| translate : (l.durationMin | amDuration:'s') : (l.durationMax | amDuration:'s')}}</span>}\r\n }\r\n @else {\r\n <span>{{l.time | amCalendar : null : CALENDAR_SPEC }}</span>\r\n @if(l.duration) {<span [bizdocTooltip]=\"l.duration|amDurationFormat\" class=\"duration\"> ({{l.duration | amDuration:'s'}})</span>}\r\n }\r\n </td>\r\n <td class=\"mat-mdc-cell\">\r\n @if (l.note) {<span>{{l.note}}</span> }\r\n @if (l.type==='ModelChange') {<button mat-icon-button (click)=\"compare(l)\" [bizdocTooltip]=\"'Compare'|translate\" bizdocTooltipPosition=\"start\"><mat-icon>more_horiz</mat-icon></button>}\r\n </td>\r\n </tr>}\r\n </tbody>\r\n</table>\r\n", styles: [":host{width:100%}table{width:100%;background:transparent}table td{padding:0 4px}.duration{white-space:nowrap}\n"], dependencies: [{ 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: "component", type: i10$1.MatMenu, selector: "mat-menu", inputs: ["backdropClass", "aria-label", "aria-labelledby", "aria-describedby", "xPosition", "yPosition", "overlapTrigger", "hasBackdrop", "class", "classList"], outputs: ["closed", "close"], exportAs: ["matMenu"] }, { kind: "component", type: i10$1.MatMenuItem, selector: "[mat-menu-item]", inputs: ["role", "disabled", "disableRipple"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i10$1.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: ["mat-menu-trigger-for", "matMenuTriggerFor", "matMenuTriggerData", "matMenuTriggerRestoreFocus"], outputs: ["menuOpened", "onMenuOpen", "menuClosed", "onMenuClose"], exportAs: ["matMenuTrigger"] }, { kind: "directive", type: TooltipDirective, selector: "[bizdocTooltip]", inputs: ["bizdocTooltip", "bizdocTooltipTemplate", "bizdocTooltipContext", "bizdocTooltipPosition", "bizdocTooltipDuration", "bizdocTooltipDisabled"] }, { kind: "pipe", type: CalendarPipe, name: "amCalendar" }, { kind: "pipe", type: DurationPipe, name: "amDuration" }, { kind: "pipe", type: DurationFormatPipe, name: "amDurationFormat" }, { kind: "pipe", type: TranslatePipe, name: "translate" }, { kind: "pipe", type: SanitizeHtmlPipe, name: "sanitizeHtml" }], animations: [listAnimation, itemAnimation] }); }
|
16155
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.5", type: TraceViewComponent, selector: "bizdoc-trace", inputs: { model: "model", version: "version" }, outputs: { versionSelected: "versionSelected" }, usesInheritance: true, ngImport: i0, template: "<div class=\"nav-toolbar row\">\r\n <span class=\"divider\"></span>\r\n <button mat-icon-button [matMenuTriggerFor]=\"menu\" [bizdocTooltip]=\"'ShowAll'|translate\"><mat-icon>filter_list</mat-icon></button>\r\n <mat-menu #menu> \r\n <button mat-menu-item (click)=\"showMode='route'\">\r\n <mat-icon>{{ showMode === 'route' ? 'check':'' }}</mat-icon>\r\n <span>{{'Route' | translate }}</span>\r\n </button>\r\n <button mat-menu-item (click)=\"showMode='active'\">\r\n <mat-icon>{{ showMode === 'active' ? 'check':'' }}</mat-icon>\r\n <span>{{'ActiveRoute' | translate }}</span>\r\n </button>\r\n <button mat-menu-item (click)=\"showMode='everything'\">\r\n <mat-icon>{{ showMode === 'everything' ? 'check':'' }}</mat-icon>\r\n <span>{{'Everything' | translate }}</span>\r\n </button>\r\n </mat-menu>\r\n</div>\r\n<table class=\"mat-mdc-table\" @list>\r\n <tbody role=\"rowgroup\">\r\n @for(l of data; track l){\r\n <tr class=\"mat-mdc-row\" @item>\r\n <td class=\"mat-mdc-cell\">\r\n <span [innerHTML]=\"l.name | sanitizeHtml\" (click)=\"chat($event)\"></span>\r\n @if(l.role) {<span>{{'JoinComma'|translate}}{{l.role}}</span>}\r\n </td>\r\n <td class=\"mat-mdc-cell\">\r\n @switch (l.type) {\r\n @case('ActionTaken') {\r\n <span [innerHTML]=\"l.action | sanitizeHtml\" (click)=\"chat($event)\" class=\"to\"></span>\r\n }\r\n @case('Submit') {\r\n <span>{{'Issued' | translate}}</span>\r\n }\r\n @case('Pending') {\r\n <span>{{'IsPending' | translate}}</span>\r\n }\r\n @case('CheckOut') {\r\n <span>{{'CheckedIn' | translate : l.fileName}}</span>\r\n }\r\n @case('CheckIn') {\r\n <span>{{'CheckedOut' | translate : l.fileName}}</span>\r\n }\r\n @case('Estimate') {\r\n <span>{{'Estimate' | translate}}</span>\r\n }\r\n @case('ModelChange') {\r\n <span>{{'Changed' | translate}}</span>\r\n }\r\n }\r\n @if(l.fyi) {\r\n <span> {{'FYI'|translate}}</span>\r\n }\r\n </td>\r\n <td class=\"mat-mdc-cell\">\r\n @if(l.estimate) {\r\n @if(l.durationMax && l.durationMax === l.durationMin)\r\n {<span [bizdocTooltip]=\"l.durationMax|amDurationFormat\">{{'EstimateTime'| translate : (l.durationMax | amDuration:'s')}}</span>\r\n }\r\n @if(l.durationMax && l.durationMax !== l.durationMin){<span [bizdocTooltip]=\"l.durationMax|amDurationFormat\">{{'EstimateTimeRange'| translate : (l.durationMin | amDuration:'s') : (l.durationMax | amDuration:'s')}}</span>}\r\n }\r\n @else {\r\n <span>{{l.time | amCalendar : null : CALENDAR_SPEC }}</span>\r\n @if(l.duration) {<span [bizdocTooltip]=\"l.duration|amDurationFormat\" class=\"duration\"> ({{l.duration | amDuration:'s'}})</span>}\r\n }\r\n </td>\r\n <td class=\"mat-mdc-cell\">\r\n @if (l.note) {<span>{{l.note}}</span> }\r\n @if (l.type==='ModelChange') {<button mat-icon-button (click)=\"compare(l)\" [bizdocTooltip]=\"'Compare'|translate\" bizdocTooltipPosition=\"start\"><mat-icon>more_horiz</mat-icon></button>}\r\n </td>\r\n </tr>}\r\n </tbody>\r\n</table>\r\n", styles: [":host{width:100%}table{width:100%;background:transparent}table td{padding:0 4px}.duration{white-space:nowrap}\n"], dependencies: [{ 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: "component", type: i10$1.MatMenu, selector: "mat-menu", inputs: ["backdropClass", "aria-label", "aria-labelledby", "aria-describedby", "xPosition", "yPosition", "overlapTrigger", "hasBackdrop", "class", "classList"], outputs: ["closed", "close"], exportAs: ["matMenu"] }, { kind: "component", type: i10$1.MatMenuItem, selector: "[mat-menu-item]", inputs: ["role", "disabled", "disableRipple"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i10$1.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: ["mat-menu-trigger-for", "matMenuTriggerFor", "matMenuTriggerData", "matMenuTriggerRestoreFocus"], outputs: ["menuOpened", "onMenuOpen", "menuClosed", "onMenuClose"], exportAs: ["matMenuTrigger"] }, { kind: "directive", type: TooltipDirective, selector: "[bizdocTooltip]", inputs: ["bizdocTooltip", "bizdocTooltipTemplate", "bizdocTooltipContext", "bizdocTooltipPosition", "bizdocTooltipDuration", "bizdocTooltipDisabled"] }, { kind: "pipe", type: CalendarPipe, name: "amCalendar" }, { kind: "pipe", type: DurationPipe, name: "amDuration" }, { kind: "pipe", type: DurationFormatPipe, name: "amDurationFormat" }, { kind: "pipe", type: TranslatePipe, name: "translate" }, { kind: "pipe", type: SanitizeHtmlPipe, name: "sanitizeHtml" }], animations: [listAnimation, itemAnimation] }); }
|
16155
16156
|
}
|
16156
16157
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: TraceViewComponent, decorators: [{
|
16157
16158
|
type: Component,
|
16158
16159
|
args: [{ selector: 'bizdoc-trace', animations: [listAnimation, itemAnimation], template: "<div class=\"nav-toolbar row\">\r\n <span class=\"divider\"></span>\r\n <button mat-icon-button [matMenuTriggerFor]=\"menu\" [bizdocTooltip]=\"'ShowAll'|translate\"><mat-icon>filter_list</mat-icon></button>\r\n <mat-menu #menu> \r\n <button mat-menu-item (click)=\"showMode='route'\">\r\n <mat-icon>{{ showMode === 'route' ? 'check':'' }}</mat-icon>\r\n <span>{{'Route' | translate }}</span>\r\n </button>\r\n <button mat-menu-item (click)=\"showMode='active'\">\r\n <mat-icon>{{ showMode === 'active' ? 'check':'' }}</mat-icon>\r\n <span>{{'ActiveRoute' | translate }}</span>\r\n </button>\r\n <button mat-menu-item (click)=\"showMode='everything'\">\r\n <mat-icon>{{ showMode === 'everything' ? 'check':'' }}</mat-icon>\r\n <span>{{'Everything' | translate }}</span>\r\n </button>\r\n </mat-menu>\r\n</div>\r\n<table class=\"mat-mdc-table\" @list>\r\n <tbody role=\"rowgroup\">\r\n @for(l of data; track l){\r\n <tr class=\"mat-mdc-row\" @item>\r\n <td class=\"mat-mdc-cell\">\r\n <span [innerHTML]=\"l.name | sanitizeHtml\" (click)=\"chat($event)\"></span>\r\n @if(l.role) {<span>{{'JoinComma'|translate}}{{l.role}}</span>}\r\n </td>\r\n <td class=\"mat-mdc-cell\">\r\n @switch (l.type) {\r\n @case('ActionTaken') {\r\n <span [innerHTML]=\"l.action | sanitizeHtml\" (click)=\"chat($event)\" class=\"to\"></span>\r\n }\r\n @case('Submit') {\r\n <span>{{'Issued' | translate}}</span>\r\n }\r\n @case('Pending') {\r\n <span>{{'IsPending' | translate}}</span>\r\n }\r\n @case('CheckOut') {\r\n <span>{{'CheckedIn' | translate : l.fileName}}</span>\r\n }\r\n @case('CheckIn') {\r\n <span>{{'CheckedOut' | translate : l.fileName}}</span>\r\n }\r\n @case('Estimate') {\r\n <span>{{'Estimate' | translate}}</span>\r\n }\r\n @case('ModelChange') {\r\n <span>{{'Changed' | translate}}</span>\r\n }\r\n }\r\n @if(l.fyi) {\r\n <span> {{'FYI'|translate}}</span>\r\n }\r\n </td>\r\n <td class=\"mat-mdc-cell\">\r\n @if(l.estimate) {\r\n @if(l.durationMax && l.durationMax === l.durationMin)\r\n {<span [bizdocTooltip]=\"l.durationMax|amDurationFormat\">{{'EstimateTime'| translate : (l.durationMax | amDuration:'s')}}</span>\r\n }\r\n @if(l.durationMax && l.durationMax !== l.durationMin){<span [bizdocTooltip]=\"l.durationMax|amDurationFormat\">{{'EstimateTimeRange'| translate : (l.durationMin | amDuration:'s') : (l.durationMax | amDuration:'s')}}</span>}\r\n }\r\n @else {\r\n <span>{{l.time | amCalendar : null : CALENDAR_SPEC }}</span>\r\n @if(l.duration) {<span [bizdocTooltip]=\"l.duration|amDurationFormat\" class=\"duration\"> ({{l.duration | amDuration:'s'}})</span>}\r\n }\r\n </td>\r\n <td class=\"mat-mdc-cell\">\r\n @if (l.note) {<span>{{l.note}}</span> }\r\n @if (l.type==='ModelChange') {<button mat-icon-button (click)=\"compare(l)\" [bizdocTooltip]=\"'Compare'|translate\" bizdocTooltipPosition=\"start\"><mat-icon>more_horiz</mat-icon></button>}\r\n </td>\r\n </tr>}\r\n </tbody>\r\n</table>\r\n", styles: [":host{width:100%}table{width:100%;background:transparent}table td{padding:0 4px}.duration{white-space:nowrap}\n"] }]
|
16159
16160
|
}], ctorParameters: () => [{ type: SessionService }, { type: TranslateService }, { type: AccountService }, { type: ChatInfo }, { type: HubService }], propDecorators: { model: [{
|
16160
16161
|
type: Input
|
16162
|
+
}], version: [{
|
16163
|
+
type: Input
|
16161
16164
|
}], versionSelected: [{
|
16162
16165
|
type: Output
|
16163
16166
|
}] } });
|
@@ -16188,11 +16191,11 @@ class TracePaneComponent {
|
|
16188
16191
|
});
|
16189
16192
|
}
|
16190
16193
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: TracePaneComponent, deps: [{ token: TranslateService }, { token: PaneRef }, { token: PanesRouter }], target: i0.ɵɵFactoryTarget.Component }); }
|
16191
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.5", type: TracePaneComponent, selector: "ng-component", viewQueries: [{ propertyName: "trace", first: true, predicate: TraceViewComponent, descendants: true, static: true }, { propertyName: "flow", first: true, predicate: FlowViewComponent, descendants: true, static: true }], ngImport: i0, template: "<bizdoc-trace [model]=\"model\" (versionSelected)=\"showVersion($event)\"></bizdoc-trace>\r\n\r\n<bizdoc-flow [model]=\"model\" [version]=\"model.version\"></bizdoc-flow>\r\n", styles: [":host{padding:0 8px;display:block;min-width:400px;width:100%}\n"], dependencies: [{ kind: "component", type: TraceViewComponent, selector: "bizdoc-trace", inputs: ["model"], outputs: ["versionSelected"] }, { kind: "component", type: FlowViewComponent, selector: "bizdoc-flow", inputs: ["model", "version", "connectorType"] }] }); }
|
16194
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.5", type: TracePaneComponent, selector: "ng-component", viewQueries: [{ propertyName: "trace", first: true, predicate: TraceViewComponent, descendants: true, static: true }, { propertyName: "flow", first: true, predicate: FlowViewComponent, descendants: true, static: true }], ngImport: i0, template: "<bizdoc-trace [model]=\"model\" [version]=\"model.version\" (versionSelected)=\"showVersion($event)\"></bizdoc-trace>\r\n\r\n<bizdoc-flow [model]=\"model\" [version]=\"model.version\"></bizdoc-flow>\r\n", styles: [":host{padding:0 8px;display:block;min-width:400px;width:100%}\n"], dependencies: [{ kind: "component", type: TraceViewComponent, selector: "bizdoc-trace", inputs: ["model", "version"], outputs: ["versionSelected"] }, { kind: "component", type: FlowViewComponent, selector: "bizdoc-flow", inputs: ["model", "version", "connectorType"] }] }); }
|
16192
16195
|
}
|
16193
16196
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: TracePaneComponent, decorators: [{
|
16194
16197
|
type: Component,
|
16195
|
-
args: [{ template: "<bizdoc-trace [model]=\"model\" (versionSelected)=\"showVersion($event)\"></bizdoc-trace>\r\n\r\n<bizdoc-flow [model]=\"model\" [version]=\"model.version\"></bizdoc-flow>\r\n", styles: [":host{padding:0 8px;display:block;min-width:400px;width:100%}\n"] }]
|
16198
|
+
args: [{ template: "<bizdoc-trace [model]=\"model\" [version]=\"model.version\" (versionSelected)=\"showVersion($event)\"></bizdoc-trace>\r\n\r\n<bizdoc-flow [model]=\"model\" [version]=\"model.version\"></bizdoc-flow>\r\n", styles: [":host{padding:0 8px;display:block;min-width:400px;width:100%}\n"] }]
|
16196
16199
|
}], ctorParameters: () => [{ type: TranslateService }, { type: PaneRef }, { type: PanesRouter }], propDecorators: { trace: [{
|
16197
16200
|
type: ViewChild,
|
16198
16201
|
args: [TraceViewComponent, { static: true }]
|
@@ -19123,6 +19126,9 @@ class SlotsComponent {
|
|
19123
19126
|
this._selectedTabIndex = value;
|
19124
19127
|
this._setTabAnimation();
|
19125
19128
|
}
|
19129
|
+
get selectedTab() {
|
19130
|
+
return this.tabs[this.selectedTabIndex];
|
19131
|
+
}
|
19126
19132
|
constructor(data, _session, _cd, _router, _title, _injector) {
|
19127
19133
|
this._session = _session;
|
19128
19134
|
this._cd = _cd;
|
@@ -20214,7 +20220,7 @@ class SlotsComponent {
|
|
20214
20220
|
this._destroy.complete();
|
20215
20221
|
}
|
20216
20222
|
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 }); }
|
20217
|
-
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
|
20223
|
+
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: [
|
20218
20224
|
panesAnimation,
|
20219
20225
|
paneAnimation,
|
20220
20226
|
paramAnimation,
|
@@ -20232,7 +20238,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImpor
|
|
20232
20238
|
queryAnimation,
|
20233
20239
|
tabsAnimation,
|
20234
20240
|
tabAnimation
|
20235
|
-
], 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
|
20241
|
+
], 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"] }]
|
20236
20242
|
}], ctorParameters: () => [{ type: undefined, decorators: [{
|
20237
20243
|
type: Inject,
|
20238
20244
|
args: [PANES_DATA]
|
@@ -20626,11 +20632,11 @@ class AdminMenuComponent {
|
|
20626
20632
|
ngOnInit() {
|
20627
20633
|
}
|
20628
20634
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: AdminMenuComponent, deps: [{ token: SessionService }], target: i0.ɵɵFactoryTarget.Component }); }
|
20629
|
-
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
|
20635
|
+
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" }] }); }
|
20630
20636
|
}
|
20631
20637
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: AdminMenuComponent, decorators: [{
|
20632
20638
|
type: Component,
|
20633
|
-
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
|
20639
|
+
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" }]
|
20634
20640
|
}], ctorParameters: () => [{ type: SessionService }], propDecorators: { collapsed: [{
|
20635
20641
|
type: Input
|
20636
20642
|
}] } });
|
@@ -21466,7 +21472,7 @@ const PANES_CONFIG = [
|
|
21466
21472
|
]
|
21467
21473
|
}, {
|
21468
21474
|
path: 'trace',
|
21469
|
-
icon: '
|
21475
|
+
icon: 'timeline',
|
21470
21476
|
component: TracePaneComponent,
|
21471
21477
|
policy: OpenPolicy.Tab | OpenPolicy.Expandable
|
21472
21478
|
}, {
|
@@ -22328,14 +22334,15 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImpor
|
|
22328
22334
|
|
22329
22335
|
class SyncfusionDiagramModule {
|
22330
22336
|
constructor() {
|
22331
|
-
Diagram$1.Inject(ComplexHierarchicalTree, BpmnDiagrams$1, DataBinding, LineDistribution, LineRouting, ConnectorBridging$1 /*, LayoutAnimation*/);
|
22332
22337
|
}
|
22333
22338
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: SyncfusionDiagramModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
22334
22339
|
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.5", ngImport: i0, type: SyncfusionDiagramModule, imports: [CommonModule,
|
22335
22340
|
DiagramModule,
|
22336
22341
|
SymbolPaletteModule], exports: [DiagramModule,
|
22337
22342
|
SymbolPaletteModule] }); }
|
22338
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: SyncfusionDiagramModule, providers: [ConnectorBridgingService, LineRoutingService, ComplexHierarchicalTreeService, BpmnDiagramsService, LayoutAnimationService,
|
22343
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: SyncfusionDiagramModule, providers: [ConnectorBridgingService, LineRoutingService, ComplexHierarchicalTreeService, BpmnDiagramsService, LayoutAnimationService,
|
22344
|
+
DataBindingService, FlowchartLayoutService,
|
22345
|
+
UndoRedoService, SnappingService, ConnectorEditingService, LineDistributionService], imports: [CommonModule,
|
22339
22346
|
DiagramModule,
|
22340
22347
|
SymbolPaletteModule, DiagramModule,
|
22341
22348
|
SymbolPaletteModule] }); }
|
@@ -22353,9 +22360,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImpor
|
|
22353
22360
|
DiagramModule,
|
22354
22361
|
SymbolPaletteModule
|
22355
22362
|
],
|
22356
|
-
providers: [ConnectorBridgingService, LineRoutingService, ComplexHierarchicalTreeService, BpmnDiagramsService, LayoutAnimationService,
|
22363
|
+
providers: [ConnectorBridgingService, LineRoutingService, ComplexHierarchicalTreeService, BpmnDiagramsService, LayoutAnimationService,
|
22364
|
+
DataBindingService, FlowchartLayoutService,
|
22365
|
+
UndoRedoService, SnappingService, ConnectorEditingService, LineDistributionService]
|
22357
22366
|
}]
|
22358
22367
|
}], ctorParameters: () => [] });
|
22368
|
+
Diagram$1.Inject(FlowchartLayout, HierarchicalTree, ComplexHierarchicalTree, BpmnDiagrams$1, LineDistribution, LineRouting, ConnectorBridging);
|
22359
22369
|
|
22360
22370
|
class SyncfusionGridModule {
|
22361
22371
|
constructor() {
|
@@ -34115,11 +34125,11 @@ class DesignerItemComponent {
|
|
34115
34125
|
this._destroy?.complete();
|
34116
34126
|
}
|
34117
34127
|
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 }); }
|
34118
|
-
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" }] }); }
|
34128
|
+
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" }] }); }
|
34119
34129
|
}
|
34120
34130
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: DesignerItemComponent, decorators: [{
|
34121
34131
|
type: Component,
|
34122
|
-
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"] }]
|
34132
|
+
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"] }]
|
34123
34133
|
}], ctorParameters: () => [{ type: i0.ElementRef }, { type: i1$3.FormBuilder }, { type: i2$1.DomSanitizer }, { type: DesignerRef, decorators: [{
|
34124
34134
|
type: Inject,
|
34125
34135
|
args: [DesignerRef]
|
@@ -35321,8 +35331,8 @@ let ConfigurationDesignerComponent = class ConfigurationDesignerComponent {
|
|
35321
35331
|
eclone = clone(eclone); // deep
|
35322
35332
|
const injector = this._createInjector(eclone, section.elements, mode);
|
35323
35333
|
return new Promise((resolve, reject) => this._panes.navigate(section.comp, {
|
35324
|
-
policy: mode === 'add' ? OpenPolicy.Dialog
|
35325
|
-
|
35334
|
+
policy: mode === 'add' ? OpenPolicy.Dialog : OpenPolicy.Tab & ~OpenPolicy.Dismissable
|
35335
|
+
| OpenPolicy.Toggle | OpenPolicy.Defer,
|
35326
35336
|
group: this._translate.get(section.title),
|
35327
35337
|
//title,
|
35328
35338
|
injector: injector
|