@bizdoc/core 1.17.1 → 1.17.2

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.
Files changed (28) hide show
  1. package/esm2020/lib/admin/architecture/elements/control.component.mjs +7 -5
  2. package/esm2020/lib/admin/architecture/elements/rule.component.mjs +1 -1
  3. package/esm2020/lib/core/fields/checklist.designer.mjs +11 -11
  4. package/esm2020/lib/core/fields/checklist.field.mjs +16 -24
  5. package/esm2020/lib/core/fields/options.base.mjs +41 -0
  6. package/esm2020/lib/core/fields/options.component.mjs +3 -3
  7. package/esm2020/lib/core/fields/radio-button.designer.mjs +9 -8
  8. package/esm2020/lib/core/fields/radio-button.field.mjs +16 -23
  9. package/esm2020/lib/core/fields/select.designer.mjs +12 -12
  10. package/esm2020/lib/core/fields/select.field.mjs +17 -23
  11. package/esm2020/lib/reports/arguments-component.mjs +1 -1
  12. package/esm2020/lib/reports/report-ref.mjs +4 -2
  13. package/esm2020/lib/reports/report-viewer.component.mjs +4 -2
  14. package/fesm2015/bizdoc-core.mjs +458 -439
  15. package/fesm2015/bizdoc-core.mjs.map +1 -1
  16. package/fesm2020/bizdoc-core.mjs +454 -435
  17. package/fesm2020/bizdoc-core.mjs.map +1 -1
  18. package/lib/admin/architecture/elements/control.component.d.ts +1 -0
  19. package/lib/admin/architecture/elements/rule.component.d.ts +1 -2
  20. package/lib/core/fields/checklist.designer.d.ts +7 -10
  21. package/lib/core/fields/checklist.field.d.ts +2 -13
  22. package/lib/core/fields/options.base.d.ts +28 -0
  23. package/lib/core/fields/radio-button.designer.d.ts +6 -6
  24. package/lib/core/fields/radio-button.field.d.ts +2 -13
  25. package/lib/core/fields/select.designer.d.ts +5 -6
  26. package/lib/core/fields/select.field.d.ts +2 -14
  27. package/lib/reports/report-ref.d.ts +3 -1
  28. package/package.json +1 -1
@@ -1,22 +1,22 @@
1
1
  import { __awaiter, __decorate } from 'tslib';
2
2
  import * as i0 from '@angular/core';
3
- import { InjectionToken, Injectable, Inject, TemplateRef, Injector, ViewContainerRef, Component, ViewChild, Directive, Input, Pipe, Optional, Self, HostBinding, Output, EventEmitter, HostListener, ElementRef, NgModule, ViewChildren, Host, SkipSelf, ViewEncapsulation, APP_INITIALIZER, ContentChild } from '@angular/core';
3
+ import { Injectable, InjectionToken, Inject, Directive, TemplateRef, Injector, ViewContainerRef, Component, ViewChild, Input, Pipe, Optional, Self, HostBinding, Output, EventEmitter, HostListener, ElementRef, NgModule, ViewChildren, Host, SkipSelf, ViewEncapsulation, APP_INITIALIZER, ContentChild } from '@angular/core';
4
+ import * as i1$3 from '@angular/forms';
5
+ import { Validators, FormControl, FormGroup, ReactiveFormsModule } from '@angular/forms';
6
+ import { map, shareReplay, tap, filter, takeUntil as takeUntil$1, debounceTime, switchMap, take, first, catchError, startWith, finalize } from 'rxjs/operators';
7
+ import * as i1 from '@angular/common/http';
8
+ import { HttpRequest, HttpResponse, HttpEventType, HTTP_INTERCEPTORS, HttpClientModule } from '@angular/common/http';
4
9
  import { Subject, Observable, of, fromEvent, forkJoin, takeUntil, BehaviorSubject, map as map$1, shareReplay as shareReplay$1, tap as tap$1, interval, takeWhile, filter as filter$1, debounceTime as debounceTime$1, from, merge, first as first$1, throwError, switchMap as switchMap$1, isObservable, EMPTY, startWith as startWith$1 } from 'rxjs';
5
- import { map, tap, filter, shareReplay, takeUntil as takeUntil$1, debounceTime, switchMap, take, first, catchError, startWith, finalize } from 'rxjs/operators';
6
10
  import { HubConnectionBuilder, HubConnectionState } from '@microsoft/signalr';
7
11
  import dayjs from 'dayjs';
8
12
  import * as firebase from 'firebase/app';
9
13
  import { getMessaging, deleteToken, getToken } from 'firebase/messaging';
10
- import * as i1 from '@angular/common/http';
11
- import { HttpRequest, HttpResponse, HttpEventType, HTTP_INTERCEPTORS, HttpClientModule } from '@angular/common/http';
12
14
  import * as i2 from 'ngx-cookie-service';
13
15
  import { CookieService } from 'ngx-cookie-service';
14
16
  import * as i10 from '@angular/material/icon';
15
17
  import { MatIconModule } from '@angular/material/icon';
16
18
  import * as i1$1 from '@angular/platform-browser';
17
19
  import { BrowserModule } from '@angular/platform-browser';
18
- import * as i1$3 from '@angular/forms';
19
- import { Validators, FormControl, FormGroup, ReactiveFormsModule } from '@angular/forms';
20
20
  import * as i1$4 from '@angular/common';
21
21
  import { registerLocaleData, CommonModule, getLocaleNumberFormat, NumberFormatStyle, getCurrencySymbol, formatNumber, formatPercent, formatCurrency } from '@angular/common';
22
22
  import * as i3$1 from '@angular/material/core';
@@ -112,7 +112,7 @@ import * as i4$5 from '@angular/material/list';
112
112
  import { MatListModule, MatSelectionList } from '@angular/material/list';
113
113
  import * as i8$3 from '@angular/material/toolbar';
114
114
  import { MatToolbarModule } from '@angular/material/toolbar';
115
- import * as i4$6 from '@angular/material/radio';
115
+ import * as i3$4 from '@angular/material/radio';
116
116
  import { MatRadioModule, MatRadioButton } from '@angular/material/radio';
117
117
  import * as i2$3 from '@angular/flex-layout';
118
118
  import { FlexLayoutModule } from '@angular/flex-layout';
@@ -139,7 +139,7 @@ import * as i6$2 from '@syncfusion/ej2-angular-schedule';
139
139
  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';
140
140
  import * as i10$3 from '@syncfusion/ej2-angular-kanban';
141
141
  import { KanbanComponent, KanbanModule } from '@syncfusion/ej2-angular-kanban';
142
- import * as i3$4 from '@syncfusion/ej2-angular-inputs';
142
+ import * as i3$5 from '@syncfusion/ej2-angular-inputs';
143
143
  import { SignatureModule } from '@syncfusion/ej2-angular-inputs';
144
144
  import { CircularGaugeModule, AnnotationsService, GaugeTooltipService, LegendService as LegendService$1, CircularGauge, Annotations, GaugeTooltip, CircularGaugeComponent, Legend as Legend$1 } from '@syncfusion/ej2-angular-circulargauge';
145
145
  import { PivotViewModule, ExcelExportService as ExcelExportService$1, GroupingBarService, NumberFormattingService, GroupingService, PivotChartService, ConditionalFormattingService, PivotView as PivotView$1, GroupingBar, ExcelExport as ExcelExport$1, PivotChart, PivotViewComponent } from '@syncfusion/ej2-angular-pivotview';
@@ -198,72 +198,6 @@ function BizDoc(args) {
198
198
  // return map;
199
199
  //}
200
200
 
201
- const BIZDOC_CONFIG = new InjectionToken('bizdoc');
202
- var OpenPolicy;
203
- (function (OpenPolicy) {
204
- OpenPolicy[OpenPolicy["Pane"] = 1] = "Pane";
205
- OpenPolicy[OpenPolicy["Clear"] = 2] = "Clear";
206
- OpenPolicy[OpenPolicy["Defer"] = 4] = "Defer";
207
- OpenPolicy[OpenPolicy["Pinnable"] = 8] = "Pinnable";
208
- OpenPolicy[OpenPolicy["Stretch"] = 16] = "Stretch";
209
- OpenPolicy[OpenPolicy["Expandable"] = 32] = "Expandable";
210
- OpenPolicy[OpenPolicy["Toggle"] = 64] = "Toggle";
211
- OpenPolicy[OpenPolicy["Tab"] = 128] = "Tab";
212
- OpenPolicy[OpenPolicy["Dismissable"] = 256] = "Dismissable";
213
- OpenPolicy[OpenPolicy["Dialog"] = 672] = "Dialog";
214
- })(OpenPolicy || (OpenPolicy = {}));
215
- const DEFAULT_POLICY = OpenPolicy.Pane;
216
-
217
- const DEVICE_TYPE = 'Chrome', ACTIVATION_DELAY = 3000;
218
- var FirebaseState;
219
- (function (FirebaseState) {
220
- FirebaseState[FirebaseState["Activated"] = 0] = "Activated";
221
- })(FirebaseState || (FirebaseState = {}));
222
- class FirebaseService {
223
- constructor(_config, _session) {
224
- this._config = _config;
225
- this._session = _session;
226
- if (_config && navigator.serviceWorker) {
227
- const { apiKey, projectId, senderId, appId } = _config;
228
- if (apiKey) {
229
- const app = firebase.initializeApp({
230
- apiKey,
231
- projectId,
232
- appId,
233
- messagingSenderId: senderId
234
- });
235
- this._messaging = getMessaging();
236
- }
237
- }
238
- }
239
- get state() {
240
- return this._state;
241
- }
242
- activate() {
243
- this._config && this._config.apiKey &&
244
- setTimeout(() => this._activate(), this._config.grace || ACTIVATION_DELAY);
245
- }
246
- close() {
247
- return __awaiter(this, void 0, void 0, function* () {
248
- yield deleteToken(this._messaging);
249
- return this._session.unregisterDevice(DEVICE_TYPE, this._token).subscribe();
250
- });
251
- }
252
- _activate() {
253
- const { vapidKey } = this._config;
254
- navigator.serviceWorker.register('./js/firebase-messaging-sw.js')
255
- .then((serviceWorkerRegistration) => {
256
- //requestPermission();
257
- getToken(this._messaging, { vapidKey, serviceWorkerRegistration }).
258
- then(token => {
259
- this._token = token;
260
- this._session.registerDevice(DEVICE_TYPE, token).subscribe(() => this._state = FirebaseState.Activated);
261
- });
262
- //onTokenRefresh(token => this._session.registerDevice(DEVICE_TYPE, token).subscribe());
263
- });
264
- }
265
- }
266
-
267
201
  const FONT_FAMILY = 'Roboto, monospace, sans-serif';
268
202
  //// colors from https://github.com/egoist/color-lib/blob/master/color.json
269
203
  const MATERIAL_PALETTES = {
@@ -586,6 +520,360 @@ const MATERIAL_PALETTES = {
586
520
  //}
587
521
  };
588
522
 
523
+ const IMAGE_TYPE = ['image/png', 'image/jpeg', 'image/jpg', 'image/gif'];
524
+ function mapToArray(map) {
525
+ return Object.keys(map).map(k => ({ key: k, value: map[k] }));
526
+ }
527
+ function isImage(contentType) {
528
+ return IMAGE_TYPE.indexOf(contentType) > -1;
529
+ }
530
+ function cleanup(params) {
531
+ Object.keys(params).forEach(k => {
532
+ const val = params[k];
533
+ if (val === null || val === undefined)
534
+ delete params[k];
535
+ else if (typeof val === 'string' || val instanceof Date || typeof val === 'boolean')
536
+ return;
537
+ else if (Array.isArray(val)) {
538
+ if (val.length === 0)
539
+ delete params[k];
540
+ else
541
+ for (let i = 0; i < val.length; i++)
542
+ isObject(val[i]) && cleanup(val[i]);
543
+ }
544
+ else if (isObject(val)) {
545
+ cleanup(val);
546
+ if (Object.keys(val).length === 0)
547
+ delete params[k];
548
+ }
549
+ });
550
+ return params;
551
+ }
552
+ function outOfBound(element) {
553
+ const bounding = element.getBoundingClientRect();
554
+ return bounding.top < 0 ||
555
+ bounding.left < 0 ||
556
+ bounding.right > document.documentElement.clientWidth ||
557
+ bounding.bottom > document.documentElement.clientHeight;
558
+ }
559
+ const IS_MOBILE = /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent);
560
+ function isMobile() {
561
+ return IS_MOBILE /*|| document.cookie.indexOf('aria=1') > -1*/;
562
+ }
563
+ function isFunction(val) {
564
+ return typeof val === 'function';
565
+ }
566
+ function isBoolean(val) {
567
+ return typeof val === 'boolean';
568
+ }
569
+ function isObject(val) {
570
+ return val !== null && typeof val === 'object';
571
+ }
572
+ function isPrimitive(val) {
573
+ return typeof val !== 'object' && !Array.isArray(val);
574
+ }
575
+ function isPromise(obj) {
576
+ return obj instanceof Promise;
577
+ }
578
+ function isDate(val) {
579
+ return val instanceof Date;
580
+ }
581
+ function isArray(val) {
582
+ return Array.isArray(val);
583
+ }
584
+ function isString(val) {
585
+ return typeof val === 'string' || val instanceof String;
586
+ }
587
+ function getWarn(mode = 500) {
588
+ return MATERIAL_PALETTES['red'][mode];
589
+ }
590
+ function playAudio(name) {
591
+ try {
592
+ const audio = new Audio();
593
+ audio.src = `/assets/sounds/${name}.ogg`;
594
+ audio.load();
595
+ audio.play();
596
+ }
597
+ catch (e) {
598
+ console.log(e);
599
+ }
600
+ }
601
+ /**
602
+ *
603
+ * @param o1
604
+ * @param o2
605
+ */
606
+ function deepAssign(o1, o2) {
607
+ o2 && Object.keys(o2).forEach(p => {
608
+ const val2 = o2[p], val1 = o1[p];
609
+ if (val1 === undefined || val1 === null || isPrimitive(val2)) // val !== 'object' && !Array.isArray(val)
610
+ o1[p] = val2;
611
+ else if (Array.isArray(val2)) {
612
+ if (val2.length && !isPrimitive(val2[0])) {
613
+ for (let i = 0; i < val2.length; i++) {
614
+ if (val1[i] !== undefined)
615
+ deepAssign(val1[i], val2[i]);
616
+ else
617
+ val1.push(val2[i]);
618
+ }
619
+ val1.splice(val2.length);
620
+ }
621
+ else
622
+ //(val2 as any[]).splice(0, val2.length, ...val);
623
+ o1[p] = val2;
624
+ }
625
+ else //if (isObject(val2))
626
+ deepAssign(val1, val2);
627
+ });
628
+ return o1;
629
+ }
630
+ function generateEncryptionMap() {
631
+ const values = {};
632
+ for (let i = 65; i < 91; i++) {
633
+ const d = (i - 65).toString(), c = String.fromCharCode(i);
634
+ values[d] = c;
635
+ values[c] = d;
636
+ }
637
+ for (let i = 97; i < 123; i++) {
638
+ const d = (i - 71).toString(), c = String.fromCharCode(i);
639
+ values[d] = c;
640
+ values[c] = d;
641
+ }
642
+ return values;
643
+ }
644
+ const decode = generateEncryptionMap();
645
+ String.prototype.decodeId = function () {
646
+ let v = '';
647
+ for (let i = 0; i < this.length; i++) {
648
+ const c = this.charAt(i);
649
+ v += decode[c];
650
+ }
651
+ return parseInt(v);
652
+ };
653
+ Number.prototype.encodeId = function () {
654
+ let v = '', d = this.toString();
655
+ while (d.length > 0) {
656
+ let i = 51, c = i.toString();
657
+ while (!d.startsWith(c)) {
658
+ --i, c = i.toString();
659
+ }
660
+ v += decode[c];
661
+ d = d.substring(c.length);
662
+ }
663
+ return v;
664
+ };
665
+ /** global extended array functions */
666
+ window.global = window;
667
+ String.prototype.normalize = function () {
668
+ return this.replace(/ /g, '_').replace(/[^\w]/g, '').toLowerCase();
669
+ };
670
+ String.prototype.formatArgs = function (...args) {
671
+ return this.replace(/{(\d+)}/g, (_, index) => args[index] || '');
672
+ };
673
+ Array.prototype.last = function () {
674
+ return this[this.length - 1];
675
+ };
676
+ /** remove element from array */
677
+ Array.prototype.remove = function (value) {
678
+ const index = this.indexOf(value);
679
+ if (index > -1)
680
+ this.splice(index, 1);
681
+ return this;
682
+ };
683
+ /** calculate average using element predicate */
684
+ Array.prototype.average = function (predicate) {
685
+ let average = 0;
686
+ this.forEach(i => average += predicate(i));
687
+ return average !== 0 ? average / this.length : 0;
688
+ };
689
+ Array.prototype.distinct = function (predicate) {
690
+ const values = new Set();
691
+ this.forEach(i => values.add(predicate(i)));
692
+ return values;
693
+ };
694
+ Array.prototype.max = function (predicate) {
695
+ let n = 0;
696
+ this.forEach(i => n = Math.max(n, predicate(i)));
697
+ return n;
698
+ };
699
+ /** sum elements using predicate */
700
+ Array.prototype.sum = function (predicate) {
701
+ let n = 0;
702
+ this.forEach(i => n += predicate(i));
703
+ return n;
704
+ };
705
+ /**
706
+ *
707
+ * @param args
708
+ */
709
+ function queryParams(args) {
710
+ const params = {};
711
+ args &&
712
+ Object.keys(args).forEach(k => {
713
+ const val = args[k];
714
+ if (val !== null && val !== undefined) {
715
+ if (isString(val))
716
+ params[k] = val;
717
+ else if (isArray(val) && val.length)
718
+ params[k] = val;
719
+ else if (isDate(val))
720
+ params[k] = val.toJSON();
721
+ else if (isObject(val)) {
722
+ if (Object.keys(val).length)
723
+ params[k] = queryParams(val);
724
+ }
725
+ else
726
+ params[k] = val;
727
+ }
728
+ });
729
+ return params;
730
+ }
731
+ function getParameterByName(name, url = window.location.href) {
732
+ name = name.replace(/[\[\]]/g, '\\$&');
733
+ var regex = new RegExp('[?&]' + name + '(=([^&#]*)|&|#|$)'), results = regex.exec(url);
734
+ if (!results)
735
+ return null;
736
+ if (!results[2])
737
+ return '';
738
+ return decodeURIComponent(results[2].replace(/\+/g, ' '));
739
+ }
740
+
741
+ /** */
742
+ class DatasourceService {
743
+ constructor(_http) {
744
+ this._http = _http;
745
+ this._cache = {};
746
+ }
747
+ keys(type) {
748
+ return this.map(type).pipe(map(m => Object.keys(m)));
749
+ }
750
+ /**
751
+ *
752
+ * @param type
753
+ * @param key
754
+ */
755
+ get(type, key) {
756
+ return this.map(type).pipe(map(m => m[key] || key));
757
+ }
758
+ /**
759
+ *
760
+ * @param type
761
+ * @param value
762
+ */
763
+ keyOf(type, value) {
764
+ return this.map(type).pipe(map(m => Object.keys(m).find(k => m[k] === value)));
765
+ }
766
+ /**
767
+ *
768
+ * @param type
769
+ * @param params
770
+ */
771
+ map(type, queryParams) {
772
+ let cacheId = type;
773
+ if (queryParams) {
774
+ if (isObject(queryParams))
775
+ Object.keys(queryParams).forEach(k => cacheId += `${k}${queryParams[k]}`);
776
+ else
777
+ cacheId += queryParams.toString();
778
+ }
779
+ let observe = this._cache[cacheId];
780
+ if (!observe) {
781
+ const params = {};
782
+ if (queryParams) {
783
+ if (isObject(queryParams))
784
+ Object.assign(params, queryParams);
785
+ else
786
+ params.value = queryParams;
787
+ }
788
+ const dataSource = this._http.get(`/api/datatype/${encodeURIComponent(type)}`, {
789
+ params
790
+ });
791
+ observe = this._cache[cacheId] = dataSource.pipe(shareReplay());
792
+ }
793
+ return observe;
794
+ }
795
+ /**
796
+ *
797
+ * @param type
798
+ * @param params
799
+ */
800
+ all(type, queryParams) {
801
+ return this.map(type, queryParams).pipe(map(mapToArray));
802
+ }
803
+ }
804
+ DatasourceService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.5", ngImport: i0, type: DatasourceService, deps: [{ token: i1.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable });
805
+ DatasourceService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.2.5", ngImport: i0, type: DatasourceService, providedIn: 'root' });
806
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.5", ngImport: i0, type: DatasourceService, decorators: [{
807
+ type: Injectable,
808
+ args: [{ providedIn: 'root' }]
809
+ }], ctorParameters: function () { return [{ type: i1.HttpClient }]; } });
810
+
811
+ const BIZDOC_CONFIG = new InjectionToken('bizdoc');
812
+ var OpenPolicy;
813
+ (function (OpenPolicy) {
814
+ OpenPolicy[OpenPolicy["Pane"] = 1] = "Pane";
815
+ OpenPolicy[OpenPolicy["Clear"] = 2] = "Clear";
816
+ OpenPolicy[OpenPolicy["Defer"] = 4] = "Defer";
817
+ OpenPolicy[OpenPolicy["Pinnable"] = 8] = "Pinnable";
818
+ OpenPolicy[OpenPolicy["Stretch"] = 16] = "Stretch";
819
+ OpenPolicy[OpenPolicy["Expandable"] = 32] = "Expandable";
820
+ OpenPolicy[OpenPolicy["Toggle"] = 64] = "Toggle";
821
+ OpenPolicy[OpenPolicy["Tab"] = 128] = "Tab";
822
+ OpenPolicy[OpenPolicy["Dismissable"] = 256] = "Dismissable";
823
+ OpenPolicy[OpenPolicy["Dialog"] = 672] = "Dialog";
824
+ })(OpenPolicy || (OpenPolicy = {}));
825
+ const DEFAULT_POLICY = OpenPolicy.Pane;
826
+
827
+ const DEVICE_TYPE = 'Chrome', ACTIVATION_DELAY = 3000;
828
+ var FirebaseState;
829
+ (function (FirebaseState) {
830
+ FirebaseState[FirebaseState["Activated"] = 0] = "Activated";
831
+ })(FirebaseState || (FirebaseState = {}));
832
+ class FirebaseService {
833
+ constructor(_config, _session) {
834
+ this._config = _config;
835
+ this._session = _session;
836
+ if (_config && navigator.serviceWorker) {
837
+ const { apiKey, projectId, senderId, appId } = _config;
838
+ if (apiKey) {
839
+ const app = firebase.initializeApp({
840
+ apiKey,
841
+ projectId,
842
+ appId,
843
+ messagingSenderId: senderId
844
+ });
845
+ this._messaging = getMessaging();
846
+ }
847
+ }
848
+ }
849
+ get state() {
850
+ return this._state;
851
+ }
852
+ activate() {
853
+ this._config && this._config.apiKey &&
854
+ setTimeout(() => this._activate(), this._config.grace || ACTIVATION_DELAY);
855
+ }
856
+ close() {
857
+ return __awaiter(this, void 0, void 0, function* () {
858
+ yield deleteToken(this._messaging);
859
+ return this._session.unregisterDevice(DEVICE_TYPE, this._token).subscribe();
860
+ });
861
+ }
862
+ _activate() {
863
+ const { vapidKey } = this._config;
864
+ navigator.serviceWorker.register('./js/firebase-messaging-sw.js')
865
+ .then((serviceWorkerRegistration) => {
866
+ //requestPermission();
867
+ getToken(this._messaging, { vapidKey, serviceWorkerRegistration }).
868
+ then(token => {
869
+ this._token = token;
870
+ this._session.registerDevice(DEVICE_TYPE, token).subscribe(() => this._state = FirebaseState.Activated);
871
+ });
872
+ //onTokenRefresh(token => this._session.registerDevice(DEVICE_TYPE, token).subscribe());
873
+ });
874
+ }
875
+ }
876
+
589
877
  class AuthenticationImpl {
590
878
  }
591
879
 
@@ -948,223 +1236,43 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.5", ngImpor
948
1236
  }] }, { type: i1.HttpClient }, { type: i2.CookieService }, { type: HubService }, { type: i10.MatIconRegistry }, { type: i1$1.DomSanitizer }];
949
1237
  } });
950
1238
 
951
- const IMAGE_TYPE = ['image/png', 'image/jpeg', 'image/jpg', 'image/gif'];
952
- function mapToArray(map) {
953
- return Object.keys(map).map(k => ({ key: k, value: map[k] }));
954
- }
955
- function isImage(contentType) {
956
- return IMAGE_TYPE.indexOf(contentType) > -1;
957
- }
958
- function cleanup(params) {
959
- Object.keys(params).forEach(k => {
960
- const val = params[k];
961
- if (val === null || val === undefined)
962
- delete params[k];
963
- else if (typeof val === 'string' || val instanceof Date || typeof val === 'boolean')
964
- return;
965
- else if (Array.isArray(val)) {
966
- if (val.length === 0)
967
- delete params[k];
968
- else
969
- for (let i = 0; i < val.length; i++)
970
- isObject(val[i]) && cleanup(val[i]);
971
- }
972
- else if (isObject(val)) {
973
- cleanup(val);
974
- if (Object.keys(val).length === 0)
975
- delete params[k];
976
- }
977
- });
978
- return params;
979
- }
980
- function outOfBound(element) {
981
- const bounding = element.getBoundingClientRect();
982
- return bounding.top < 0 ||
983
- bounding.left < 0 ||
984
- bounding.right > document.documentElement.clientWidth ||
985
- bounding.bottom > document.documentElement.clientHeight;
986
- }
987
- const IS_MOBILE = /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent);
988
- function isMobile() {
989
- return IS_MOBILE /*|| document.cookie.indexOf('aria=1') > -1*/;
990
- }
991
- function isFunction(val) {
992
- return typeof val === 'function';
993
- }
994
- function isBoolean(val) {
995
- return typeof val === 'boolean';
996
- }
997
- function isObject(val) {
998
- return val !== null && typeof val === 'object';
999
- }
1000
- function isPrimitive(val) {
1001
- return typeof val !== 'object' && !Array.isArray(val);
1002
- }
1003
- function isPromise(obj) {
1004
- return obj instanceof Promise;
1005
- }
1006
- function isDate(val) {
1007
- return val instanceof Date;
1008
- }
1009
- function isArray(val) {
1010
- return Array.isArray(val);
1011
- }
1012
- function isString(val) {
1013
- return typeof val === 'string' || val instanceof String;
1014
- }
1015
- function getWarn(mode = 500) {
1016
- return MATERIAL_PALETTES['red'][mode];
1017
- }
1018
- function playAudio(name) {
1019
- try {
1020
- const audio = new Audio();
1021
- audio.src = `/assets/sounds/${name}.ogg`;
1022
- audio.load();
1023
- audio.play();
1024
- }
1025
- catch (e) {
1026
- console.log(e);
1239
+ class OptionsControlField {
1240
+ constructor(_ds) {
1241
+ this._ds = _ds;
1027
1242
  }
1028
- }
1029
- /**
1030
- *
1031
- * @param o1
1032
- * @param o2
1033
- */
1034
- function deepAssign(o1, o2) {
1035
- o2 && Object.keys(o2).forEach(p => {
1036
- const val2 = o2[p], val1 = o1[p];
1037
- if (val1 === undefined || val1 === null || isPrimitive(val2)) // val !== 'object' && !Array.isArray(val)
1038
- o1[p] = val2;
1039
- else if (Array.isArray(val2)) {
1040
- if (val2.length && !isPrimitive(val2[0])) {
1041
- for (let i = 0; i < val2.length; i++) {
1042
- if (val1[i] !== undefined)
1043
- deepAssign(val1[i], val2[i]);
1044
- else
1045
- val1.push(val2[i]);
1046
- }
1047
- val1.splice(val2.length);
1048
- }
1049
- else
1050
- //(val2 as any[]).splice(0, val2.length, ...val);
1051
- o1[p] = val2;
1052
- }
1053
- else //if (isObject(val2))
1054
- deepAssign(val1, val2);
1055
- });
1056
- return o1;
1057
- }
1058
- function generateEncryptionMap() {
1059
- const values = {};
1060
- for (let i = 65; i < 91; i++) {
1061
- const d = (i - 65).toString(), c = String.fromCharCode(i);
1062
- values[d] = c;
1063
- values[c] = d;
1243
+ ngOnInit() {
1244
+ this.required && this.control.addValidators(Validators.required);
1245
+ if (this.dataType)
1246
+ this._ds.all(this.dataType).subscribe(v => this.options = v);
1064
1247
  }
1065
- for (let i = 97; i < 123; i++) {
1066
- const d = (i - 71).toString(), c = String.fromCharCode(i);
1067
- values[d] = c;
1068
- values[c] = d;
1248
+ optionOf(value) {
1249
+ var _a, _b;
1250
+ return (_b = (_a = this.options) === null || _a === void 0 ? void 0 : _a.find(o => o.key === value)) === null || _b === void 0 ? void 0 : _b.value;
1069
1251
  }
1070
- return values;
1071
1252
  }
1072
- const decode = generateEncryptionMap();
1073
- String.prototype.decodeId = function () {
1074
- let v = '';
1075
- for (let i = 0; i < this.length; i++) {
1076
- const c = this.charAt(i);
1077
- v += decode[c];
1078
- }
1079
- return parseInt(v);
1080
- };
1081
- Number.prototype.encodeId = function () {
1082
- let v = '', d = this.toString();
1083
- while (d.length > 0) {
1084
- let i = 51, c = i.toString();
1085
- while (!d.startsWith(c)) {
1086
- --i, c = i.toString();
1087
- }
1088
- v += decode[c];
1089
- d = d.substring(c.length);
1253
+ OptionsControlField.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.5", ngImport: i0, type: OptionsControlField, deps: [{ token: DatasourceService }], target: i0.ɵɵFactoryTarget.Directive });
1254
+ OptionsControlField.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.2.5", type: OptionsControlField, ngImport: i0 });
1255
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.5", ngImport: i0, type: OptionsControlField, decorators: [{
1256
+ type: Directive
1257
+ }], ctorParameters: function () { return [{ type: DatasourceService }]; } });
1258
+ class OptionsControlDesigner {
1259
+ constructor(_session) {
1260
+ this._session = _session;
1261
+ this._typeRequired = (control) => {
1262
+ var _a;
1263
+ const options = (_a = control.parent) === null || _a === void 0 ? void 0 : _a.get('options');
1264
+ if (options && !options.length)
1265
+ return { required: true };
1266
+ return null;
1267
+ };
1268
+ this.datatypes = this._session.profile.types;
1090
1269
  }
1091
- return v;
1092
- };
1093
- /** global extended array functions */
1094
- window.global = window;
1095
- String.prototype.normalize = function () {
1096
- return this.replace(/ /g, '_').replace(/[^\w]/g, '').toLowerCase();
1097
- };
1098
- String.prototype.formatArgs = function (...args) {
1099
- return this.replace(/{(\d+)}/g, (_, index) => args[index] || '');
1100
- };
1101
- Array.prototype.last = function () {
1102
- return this[this.length - 1];
1103
- };
1104
- /** remove element from array */
1105
- Array.prototype.remove = function (value) {
1106
- const index = this.indexOf(value);
1107
- if (index > -1)
1108
- this.splice(index, 1);
1109
- return this;
1110
- };
1111
- /** calculate average using element predicate */
1112
- Array.prototype.average = function (predicate) {
1113
- let average = 0;
1114
- this.forEach(i => average += predicate(i));
1115
- return average !== 0 ? average / this.length : 0;
1116
- };
1117
- Array.prototype.distinct = function (predicate) {
1118
- const values = new Set();
1119
- this.forEach(i => values.add(predicate(i)));
1120
- return values;
1121
- };
1122
- Array.prototype.max = function (predicate) {
1123
- let n = 0;
1124
- this.forEach(i => n = Math.max(n, predicate(i)));
1125
- return n;
1126
- };
1127
- /** sum elements using predicate */
1128
- Array.prototype.sum = function (predicate) {
1129
- let n = 0;
1130
- this.forEach(i => n += predicate(i));
1131
- return n;
1132
- };
1133
- /**
1134
- *
1135
- * @param args
1136
- */
1137
- function queryParams(args) {
1138
- const params = {};
1139
- args &&
1140
- Object.keys(args).forEach(k => {
1141
- const val = args[k];
1142
- if (val !== null && val !== undefined) {
1143
- if (isString(val))
1144
- params[k] = val;
1145
- else if (isArray(val) && val.length)
1146
- params[k] = val;
1147
- else if (isDate(val))
1148
- params[k] = val.toJSON();
1149
- else if (isObject(val)) {
1150
- if (Object.keys(val).length)
1151
- params[k] = queryParams(val);
1152
- }
1153
- else
1154
- params[k] = val;
1155
- }
1156
- });
1157
- return params;
1158
1270
  }
1159
- function getParameterByName(name, url = window.location.href) {
1160
- name = name.replace(/[\[\]]/g, '\\$&');
1161
- var regex = new RegExp('[?&]' + name + '(=([^&#]*)|&|#|$)'), results = regex.exec(url);
1162
- if (!results)
1163
- return null;
1164
- if (!results[2])
1165
- return '';
1166
- return decodeURIComponent(results[2].replace(/\+/g, ' '));
1167
- }
1271
+ OptionsControlDesigner.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.5", ngImport: i0, type: OptionsControlDesigner, deps: [{ token: SessionService }], target: i0.ɵɵFactoryTarget.Directive });
1272
+ OptionsControlDesigner.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.2.5", type: OptionsControlDesigner, ngImport: i0 });
1273
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.5", ngImport: i0, type: OptionsControlDesigner, decorators: [{
1274
+ type: Directive
1275
+ }], ctorParameters: function () { return [{ type: SessionService }]; } });
1168
1276
 
1169
1277
  class PopupRef {
1170
1278
  constructor(_data) {
@@ -2872,47 +2980,46 @@ class ControlOptionsComponent {
2872
2980
  }
2873
2981
  }
2874
2982
  ControlOptionsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.5", ngImport: i0, type: ControlOptionsComponent, deps: [{ token: TranslateService }, { token: i1$3.FormBuilder }], target: i0.ɵɵFactoryTarget.Component });
2875
- ControlOptionsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.5", type: ControlOptionsComponent, selector: "bizdoc-design-options", inputs: { form: "form", model: "model" }, ngImport: i0, template: "<h2 class=\"mat-title row\">\r\n {{'Options'|translate}}\r\n <span class=\"divider\"></span>\r\n <button mat-icon-button (click)=\"add()\" [bizdocTooltip]=\"'Add'|translate\"><mat-icon>add_circle_outline</mat-icon></button>\r\n</h2>\r\n<div class=\"column\" cdkDropList (cdkDropListDropped)=\"drop($event)\">\r\n <div *ngFor=\"let c of options.controls; index as index\" class=\"row\" [formGroup]=\"c\" cdkDrag>\r\n <mat-icon cdkDragHandle>drag_indicator</mat-icon>\r\n <mat-form-field class=\"flex\">\r\n <input matInput formControlName=\"key\" required />\r\n </mat-form-field>\r\n <bizdoc-localized-string formControlName=\"value\" required class=\"row flex\" [placeholder]=\"'Label'|l18n\"></bizdoc-localized-string>\r\n <button mat-icon-button (click)=\"options.removeAt(index)\" [bizdocTooltip]=\"'Remove'|translate\"><mat-icon>delete</mat-icon></button>\r\n </div>\r\n</div>\r\n", dependencies: [{ kind: "directive", type: i1$4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { 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: i3.CdkDropList, selector: "[cdkDropList], cdk-drop-list", inputs: ["cdkDropListConnectedTo", "cdkDropListData", "cdkDropListOrientation", "id", "cdkDropListLockAxis", "cdkDropListDisabled", "cdkDropListSortingDisabled", "cdkDropListEnterPredicate", "cdkDropListSortPredicate", "cdkDropListAutoScrollDisabled", "cdkDropListAutoScrollStep"], outputs: ["cdkDropListDropped", "cdkDropListEntered", "cdkDropListExited", "cdkDropListSorted"], exportAs: ["cdkDropList"] }, { kind: "directive", type: i3.CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { kind: "directive", type: i3.CdkDragHandle, selector: "[cdkDragHandle]", inputs: ["cdkDragHandleDisabled"] }, { kind: "component", type: i4.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { kind: "component", type: i9.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "directive", type: i9$1.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", "value", "placeholder", "required", "disabled", "maxlength"], outputs: ["valueChanges"] }, { kind: "pipe", type: L18nPipe, name: "l18n" }, { kind: "pipe", type: TranslatePipe, name: "translate" }] });
2983
+ ControlOptionsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.5", type: ControlOptionsComponent, selector: "bizdoc-design-options", inputs: { form: "form", model: "model" }, ngImport: i0, template: "<h2 class=\"mat-title row\">\r\n {{'Options'|translate}}\r\n <span class=\"divider\"></span>\r\n <button mat-icon-button (click)=\"add()\" [bizdocTooltip]=\"'Add'|translate\"><mat-icon>add_circle_outline</mat-icon></button>\r\n</h2>\r\n<div class=\"column\" cdkDropList (cdkDropListDropped)=\"drop($event)\">\r\n <div *ngFor=\"let c of options.controls; index as index\" class=\"row\" [formGroup]=\"c\" cdkDrag>\r\n <mat-icon cdkDragHandle>drag_indicator</mat-icon>\r\n <mat-form-field class=\"flex\">\r\n <input matInput formControlName=\"key\" required />\r\n </mat-form-field>\r\n &nbsp;\r\n <bizdoc-localized-string formControlName=\"value\" required class=\"row flex\" [placeholder]=\"'Label'|l18n\"></bizdoc-localized-string>\r\n <button mat-icon-button (click)=\"options.removeAt(index)\" [bizdocTooltip]=\"'Remove'|translate\"><mat-icon>delete</mat-icon></button>\r\n </div>\r\n</div>\r\n", dependencies: [{ kind: "directive", type: i1$4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { 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: i3.CdkDropList, selector: "[cdkDropList], cdk-drop-list", inputs: ["cdkDropListConnectedTo", "cdkDropListData", "cdkDropListOrientation", "id", "cdkDropListLockAxis", "cdkDropListDisabled", "cdkDropListSortingDisabled", "cdkDropListEnterPredicate", "cdkDropListSortPredicate", "cdkDropListAutoScrollDisabled", "cdkDropListAutoScrollStep"], outputs: ["cdkDropListDropped", "cdkDropListEntered", "cdkDropListExited", "cdkDropListSorted"], exportAs: ["cdkDropList"] }, { kind: "directive", type: i3.CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { kind: "directive", type: i3.CdkDragHandle, selector: "[cdkDragHandle]", inputs: ["cdkDragHandleDisabled"] }, { kind: "component", type: i4.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { kind: "component", type: i9.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "directive", type: i9$1.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", "value", "placeholder", "required", "disabled", "maxlength"], outputs: ["valueChanges"] }, { kind: "pipe", type: L18nPipe, name: "l18n" }, { kind: "pipe", type: TranslatePipe, name: "translate" }] });
2876
2984
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.5", ngImport: i0, type: ControlOptionsComponent, decorators: [{
2877
2985
  type: Component,
2878
- args: [{ selector: 'bizdoc-design-options', template: "<h2 class=\"mat-title row\">\r\n {{'Options'|translate}}\r\n <span class=\"divider\"></span>\r\n <button mat-icon-button (click)=\"add()\" [bizdocTooltip]=\"'Add'|translate\"><mat-icon>add_circle_outline</mat-icon></button>\r\n</h2>\r\n<div class=\"column\" cdkDropList (cdkDropListDropped)=\"drop($event)\">\r\n <div *ngFor=\"let c of options.controls; index as index\" class=\"row\" [formGroup]=\"c\" cdkDrag>\r\n <mat-icon cdkDragHandle>drag_indicator</mat-icon>\r\n <mat-form-field class=\"flex\">\r\n <input matInput formControlName=\"key\" required />\r\n </mat-form-field>\r\n <bizdoc-localized-string formControlName=\"value\" required class=\"row flex\" [placeholder]=\"'Label'|l18n\"></bizdoc-localized-string>\r\n <button mat-icon-button (click)=\"options.removeAt(index)\" [bizdocTooltip]=\"'Remove'|translate\"><mat-icon>delete</mat-icon></button>\r\n </div>\r\n</div>\r\n" }]
2986
+ args: [{ selector: 'bizdoc-design-options', template: "<h2 class=\"mat-title row\">\r\n {{'Options'|translate}}\r\n <span class=\"divider\"></span>\r\n <button mat-icon-button (click)=\"add()\" [bizdocTooltip]=\"'Add'|translate\"><mat-icon>add_circle_outline</mat-icon></button>\r\n</h2>\r\n<div class=\"column\" cdkDropList (cdkDropListDropped)=\"drop($event)\">\r\n <div *ngFor=\"let c of options.controls; index as index\" class=\"row\" [formGroup]=\"c\" cdkDrag>\r\n <mat-icon cdkDragHandle>drag_indicator</mat-icon>\r\n <mat-form-field class=\"flex\">\r\n <input matInput formControlName=\"key\" required />\r\n </mat-form-field>\r\n &nbsp;\r\n <bizdoc-localized-string formControlName=\"value\" required class=\"row flex\" [placeholder]=\"'Label'|l18n\"></bizdoc-localized-string>\r\n <button mat-icon-button (click)=\"options.removeAt(index)\" [bizdocTooltip]=\"'Remove'|translate\"><mat-icon>delete</mat-icon></button>\r\n </div>\r\n</div>\r\n" }]
2879
2987
  }], ctorParameters: function () { return [{ type: TranslateService }, { type: i1$3.FormBuilder }]; }, propDecorators: { form: [{
2880
2988
  type: Input
2881
2989
  }], model: [{
2882
2990
  type: Input
2883
2991
  }] } });
2884
2992
 
2885
- let SelectControlDesigner = class SelectControlDesigner {
2886
- constructor(_session, _fb) {
2887
- this._session = _session;
2993
+ let SelectControlDesigner = class SelectControlDesigner extends OptionsControlDesigner {
2994
+ constructor(session, _fb) {
2995
+ super(session);
2888
2996
  this._fb = _fb;
2889
2997
  this.form = this._fb.group({
2890
2998
  label: null,
2891
2999
  placeholder: null,
2892
3000
  autocomplete: null,
2893
3001
  multiple: null,
2894
- dataType: null,
3002
+ dataType: this._fb.control(null, this._typeRequired),
2895
3003
  });
2896
- this.datatypes = this._session.profile.types;
2897
3004
  }
2898
3005
  onBind(model) {
2899
3006
  this.model = model;
2900
3007
  }
2901
3008
  };
2902
3009
  SelectControlDesigner.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.5", ngImport: i0, type: SelectControlDesigner, deps: [{ token: SessionService }, { token: i1$3.FormBuilder }], target: i0.ɵɵFactoryTarget.Component });
2903
- SelectControlDesigner.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.5", type: SelectControlDesigner, selector: "ng-component", ngImport: i0, template: `
3010
+ SelectControlDesigner.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.5", type: SelectControlDesigner, selector: "ng-component", usesInheritance: true, ngImport: i0, template: `
2904
3011
  <form autocomplete="off" [formGroup]="form" class="column">
2905
3012
  <bizdoc-localized-string [placeholder]="'Label'|translate" formControlName="label"></bizdoc-localized-string>
2906
3013
  <mat-form-field>
2907
3014
  <mat-label>{{'DataType'|translate}}</mat-label>
2908
- <mat-select formControlName="dataType" required>
3015
+ <mat-select formControlName="dataType">
2909
3016
  <mat-option *ngFor="let t of datatypes" [value]="t.name">{{t.title}}</mat-option>
2910
3017
  </mat-select>
2911
- <mat-error *ngIf="form.get('dataType').hasError('required')" [innerHTML]="'RequiredErr'|translate:'DataType'"></mat-error>
3018
+ <mat-error *ngIf="form.get('dataType').hasError('required')" [innerHTML]="'RequiredErr'|translate:('DataType'|translate)"></mat-error>
2912
3019
  </mat-form-field>
2913
3020
  <bizdoc-design-options [form]="form" [model]="model"></bizdoc-design-options>
2914
3021
  <mat-checkbox formControlName="multiple">{{'Multiple'|translate}}</mat-checkbox>
2915
- </form>`, isInline: true, dependencies: [{ kind: "directive", type: i1$4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$3.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { 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: "component", type: i3$1.MatOption, selector: "mat-option", exportAs: ["matOption"] }, { kind: "directive", type: i4.MatError, selector: "mat-error", inputs: ["id"] }, { kind: "component", type: i4.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i4.MatLabel, selector: "mat-label" }, { kind: "component", type: i5.MatSelect, selector: "mat-select", inputs: ["disabled", "disableRipple", "tabIndex"], exportAs: ["matSelect"] }, { kind: "component", type: i9$2.MatCheckbox, selector: "mat-checkbox", inputs: ["disableRipple", "color", "tabIndex"], exportAs: ["matCheckbox"] }, { kind: "component", type: LocalizedStringComponent, selector: "bizdoc-localized-string", inputs: ["class", "value", "placeholder", "required", "disabled", "maxlength"], outputs: ["valueChanges"] }, { kind: "component", type: ControlOptionsComponent, selector: "bizdoc-design-options", inputs: ["form", "model"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }] });
3022
+ </form>`, isInline: true, dependencies: [{ kind: "directive", type: i1$4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$3.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { 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.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$3.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i3$1.MatOption, selector: "mat-option", exportAs: ["matOption"] }, { kind: "directive", type: i4.MatError, selector: "mat-error", inputs: ["id"] }, { kind: "component", type: i4.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i4.MatLabel, selector: "mat-label" }, { kind: "component", type: i5.MatSelect, selector: "mat-select", inputs: ["disabled", "disableRipple", "tabIndex"], exportAs: ["matSelect"] }, { kind: "component", type: i9$2.MatCheckbox, selector: "mat-checkbox", inputs: ["disableRipple", "color", "tabIndex"], exportAs: ["matCheckbox"] }, { kind: "component", type: LocalizedStringComponent, selector: "bizdoc-localized-string", inputs: ["class", "value", "placeholder", "required", "disabled", "maxlength"], outputs: ["valueChanges"] }, { kind: "component", type: ControlOptionsComponent, selector: "bizdoc-design-options", inputs: ["form", "model"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }] });
2916
3023
  SelectControlDesigner = __decorate([
2917
3024
  BizDoc({ selector: 'select-control-designer' })
2918
3025
  ], SelectControlDesigner);
@@ -2924,10 +3031,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.5", ngImpor
2924
3031
  <bizdoc-localized-string [placeholder]="'Label'|translate" formControlName="label"></bizdoc-localized-string>
2925
3032
  <mat-form-field>
2926
3033
  <mat-label>{{'DataType'|translate}}</mat-label>
2927
- <mat-select formControlName="dataType" required>
3034
+ <mat-select formControlName="dataType">
2928
3035
  <mat-option *ngFor="let t of datatypes" [value]="t.name">{{t.title}}</mat-option>
2929
3036
  </mat-select>
2930
- <mat-error *ngIf="form.get('dataType').hasError('required')" [innerHTML]="'RequiredErr'|translate:'DataType'"></mat-error>
3037
+ <mat-error *ngIf="form.get('dataType').hasError('required')" [innerHTML]="'RequiredErr'|translate:('DataType'|translate)"></mat-error>
2931
3038
  </mat-form-field>
2932
3039
  <bizdoc-design-options [form]="form" [model]="model"></bizdoc-design-options>
2933
3040
  <mat-checkbox formControlName="multiple">{{'Multiple'|translate}}</mat-checkbox>
@@ -3293,26 +3400,23 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.5", ngImpor
3293
3400
  }]
3294
3401
  }], ctorParameters: function () { return [{ type: SessionService }, { type: i1$3.FormBuilder }]; } });
3295
3402
 
3296
- let ChecklistControlDesigner = class ChecklistControlDesigner {
3297
- constructor(_session, _fb) {
3298
- this._session = _session;
3403
+ let ChecklistControlDesigner = class ChecklistControlDesigner extends OptionsControlDesigner {
3404
+ constructor(session, _fb) {
3405
+ super(session);
3299
3406
  this._fb = _fb;
3300
3407
  this.form = this._fb.group({
3301
3408
  label: null,
3302
- multiple: null,
3303
- dataType: null,
3409
+ multiple: true,
3410
+ dataType: this._fb.control(null, this._typeRequired),
3304
3411
  hint: null,
3305
3412
  });
3306
- this.datatypes = this._session.profile.types;
3307
- }
3308
- ngOnInit() {
3309
3413
  }
3310
3414
  onBind(model) {
3311
3415
  this.model = model;
3312
3416
  }
3313
3417
  };
3314
3418
  ChecklistControlDesigner.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.5", ngImport: i0, type: ChecklistControlDesigner, deps: [{ token: SessionService }, { token: i1$3.FormBuilder }], target: i0.ɵɵFactoryTarget.Component });
3315
- ChecklistControlDesigner.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.5", type: ChecklistControlDesigner, selector: "ng-component", ngImport: i0, template: `
3419
+ ChecklistControlDesigner.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.5", type: ChecklistControlDesigner, selector: "ng-component", usesInheritance: true, ngImport: i0, template: `
3316
3420
  <form autocomplete="off" [formGroup]="form" class="column">
3317
3421
  <mat-checkbox formControlName="multiple">{{'Multiple'|translate}}</mat-checkbox>
3318
3422
  <mat-form-field>
@@ -3320,9 +3424,10 @@ ChecklistControlDesigner.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0
3320
3424
  <mat-select formControlName="dataType">
3321
3425
  <mat-option *ngFor="let t of datatypes" [value]="t.name">{{t.title}}</mat-option>
3322
3426
  </mat-select>
3427
+ <mat-error *ngIf="form.get('dataType').hasError('required')" [innerHTML]="'RequiredErr'|translate:('DataType'|translate)"></mat-error>
3323
3428
  </mat-form-field>
3324
3429
  <bizdoc-design-options [form]="form" [model]="model"></bizdoc-design-options>
3325
- </form>`, isInline: true, dependencies: [{ kind: "directive", type: i1$4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$3.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { 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.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$3.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i3$1.MatOption, selector: "mat-option", exportAs: ["matOption"] }, { kind: "component", type: i4.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i4.MatLabel, selector: "mat-label" }, { kind: "component", type: i5.MatSelect, selector: "mat-select", inputs: ["disabled", "disableRipple", "tabIndex"], exportAs: ["matSelect"] }, { kind: "component", type: i9$2.MatCheckbox, selector: "mat-checkbox", inputs: ["disableRipple", "color", "tabIndex"], exportAs: ["matCheckbox"] }, { kind: "component", type: ControlOptionsComponent, selector: "bizdoc-design-options", inputs: ["form", "model"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }] });
3430
+ </form>`, isInline: true, dependencies: [{ kind: "directive", type: i1$4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$3.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { 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.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$3.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i3$1.MatOption, selector: "mat-option", exportAs: ["matOption"] }, { kind: "directive", type: i4.MatError, selector: "mat-error", inputs: ["id"] }, { kind: "component", type: i4.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i4.MatLabel, selector: "mat-label" }, { kind: "component", type: i5.MatSelect, selector: "mat-select", inputs: ["disabled", "disableRipple", "tabIndex"], exportAs: ["matSelect"] }, { kind: "component", type: i9$2.MatCheckbox, selector: "mat-checkbox", inputs: ["disableRipple", "color", "tabIndex"], exportAs: ["matCheckbox"] }, { kind: "component", type: ControlOptionsComponent, selector: "bizdoc-design-options", inputs: ["form", "model"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }] });
3326
3431
  ChecklistControlDesigner = __decorate([
3327
3432
  BizDoc({ selector: 'checklist-control-designer' })
3328
3433
  ], ChecklistControlDesigner);
@@ -3337,34 +3442,35 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.5", ngImpor
3337
3442
  <mat-select formControlName="dataType">
3338
3443
  <mat-option *ngFor="let t of datatypes" [value]="t.name">{{t.title}}</mat-option>
3339
3444
  </mat-select>
3445
+ <mat-error *ngIf="form.get('dataType').hasError('required')" [innerHTML]="'RequiredErr'|translate:('DataType'|translate)"></mat-error>
3340
3446
  </mat-form-field>
3341
3447
  <bizdoc-design-options [form]="form" [model]="model"></bizdoc-design-options>
3342
3448
  </form>`
3343
3449
  }]
3344
3450
  }], ctorParameters: function () { return [{ type: SessionService }, { type: i1$3.FormBuilder }]; } });
3345
3451
 
3346
- let RadioButtonControlDesigner = class RadioButtonControlDesigner {
3347
- constructor(_session, _fb) {
3348
- this._session = _session;
3452
+ let RadioButtonControlDesigner = class RadioButtonControlDesigner extends OptionsControlDesigner {
3453
+ constructor(session, _fb) {
3454
+ super(session);
3349
3455
  this._fb = _fb;
3350
3456
  this.form = this._fb.group({
3351
3457
  label: null,
3352
- dataType: null,
3458
+ dataType: this._fb.control(null, this._typeRequired),
3459
+ hint: null,
3353
3460
  });
3354
- this.datatypes = this._session.profile.types;
3355
3461
  }
3356
3462
  onBind(model) {
3357
3463
  this.model = model;
3358
3464
  }
3359
3465
  };
3360
3466
  RadioButtonControlDesigner.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.5", ngImport: i0, type: RadioButtonControlDesigner, deps: [{ token: SessionService }, { token: i1$3.FormBuilder }], target: i0.ɵɵFactoryTarget.Component });
3361
- RadioButtonControlDesigner.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.5", type: RadioButtonControlDesigner, selector: "ng-component", ngImport: i0, template: "<form autocomplete=\"off\" [formGroup]=\"form\" class=\"column\">\r\n <mat-form-field>\r\n <mat-label>{{'DataType'|translate}}</mat-label>\r\n <mat-select formControlName=\"dataType\">\r\n <mat-option *ngFor=\"let t of datatypes\" [value]=\"t.name\">{{t.title}}</mat-option>\r\n </mat-select>\r\n <mat-error *ngIf=\"form.get('dataType').hasError('required')\" [innerHTML]=\"'RequiredErr'|translate:'DataType'\"></mat-error>\r\n </mat-form-field>\r\n <bizdoc-design-options [form]=\"form\" [model]=\"model\"></bizdoc-design-options>\r\n</form>\r\n", dependencies: [{ kind: "directive", type: i1$4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$3.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { 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.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$3.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i3$1.MatOption, selector: "mat-option", exportAs: ["matOption"] }, { kind: "directive", type: i4.MatError, selector: "mat-error", inputs: ["id"] }, { kind: "component", type: i4.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i4.MatLabel, selector: "mat-label" }, { kind: "component", type: i5.MatSelect, selector: "mat-select", inputs: ["disabled", "disableRipple", "tabIndex"], exportAs: ["matSelect"] }, { kind: "component", type: ControlOptionsComponent, selector: "bizdoc-design-options", inputs: ["form", "model"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }] });
3467
+ RadioButtonControlDesigner.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.5", type: RadioButtonControlDesigner, selector: "ng-component", usesInheritance: true, ngImport: i0, template: "<form autocomplete=\"off\" [formGroup]=\"form\" class=\"column\">\r\n <mat-form-field>\r\n <mat-label>{{'DataType'|translate}}</mat-label>\r\n <mat-select formControlName=\"dataType\">\r\n <mat-option *ngFor=\"let t of datatypes\" [value]=\"t.name\">{{t.title}}</mat-option>\r\n </mat-select>\r\n <mat-error *ngIf=\"form.get('dataType').hasError('required')\" [innerHTML]=\"'RequiredErr'|translate:('DataType'|translate)\"></mat-error>\r\n </mat-form-field>\r\n <bizdoc-design-options [form]=\"form\" [model]=\"model\"></bizdoc-design-options>\r\n</form>\r\n", dependencies: [{ kind: "directive", type: i1$4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$3.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { 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.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$3.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i3$1.MatOption, selector: "mat-option", exportAs: ["matOption"] }, { kind: "directive", type: i4.MatError, selector: "mat-error", inputs: ["id"] }, { kind: "component", type: i4.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i4.MatLabel, selector: "mat-label" }, { kind: "component", type: i5.MatSelect, selector: "mat-select", inputs: ["disabled", "disableRipple", "tabIndex"], exportAs: ["matSelect"] }, { kind: "component", type: ControlOptionsComponent, selector: "bizdoc-design-options", inputs: ["form", "model"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }] });
3362
3468
  RadioButtonControlDesigner = __decorate([
3363
3469
  BizDoc({ selector: 'radio-button-control-designer' })
3364
3470
  ], RadioButtonControlDesigner);
3365
3471
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.5", ngImport: i0, type: RadioButtonControlDesigner, decorators: [{
3366
3472
  type: Component,
3367
- args: [{ template: "<form autocomplete=\"off\" [formGroup]=\"form\" class=\"column\">\r\n <mat-form-field>\r\n <mat-label>{{'DataType'|translate}}</mat-label>\r\n <mat-select formControlName=\"dataType\">\r\n <mat-option *ngFor=\"let t of datatypes\" [value]=\"t.name\">{{t.title}}</mat-option>\r\n </mat-select>\r\n <mat-error *ngIf=\"form.get('dataType').hasError('required')\" [innerHTML]=\"'RequiredErr'|translate:'DataType'\"></mat-error>\r\n </mat-form-field>\r\n <bizdoc-design-options [form]=\"form\" [model]=\"model\"></bizdoc-design-options>\r\n</form>\r\n" }]
3473
+ args: [{ template: "<form autocomplete=\"off\" [formGroup]=\"form\" class=\"column\">\r\n <mat-form-field>\r\n <mat-label>{{'DataType'|translate}}</mat-label>\r\n <mat-select formControlName=\"dataType\">\r\n <mat-option *ngFor=\"let t of datatypes\" [value]=\"t.name\">{{t.title}}</mat-option>\r\n </mat-select>\r\n <mat-error *ngIf=\"form.get('dataType').hasError('required')\" [innerHTML]=\"'RequiredErr'|translate:('DataType'|translate)\"></mat-error>\r\n </mat-form-field>\r\n <bizdoc-design-options [form]=\"form\" [model]=\"model\"></bizdoc-design-options>\r\n</form>\r\n" }]
3368
3474
  }], ctorParameters: function () { return [{ type: SessionService }, { type: i1$3.FormBuilder }]; } });
3369
3475
 
3370
3476
  let AddressControlDesigner = class AddressControlDesigner {
@@ -3424,76 +3530,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.5", ngImpor
3424
3530
  }]
3425
3531
  }], ctorParameters: function () { return [{ type: i1$3.FormBuilder }]; } });
3426
3532
 
3427
- /** */
3428
- class DatasourceService {
3429
- constructor(_http) {
3430
- this._http = _http;
3431
- this._cache = {};
3432
- }
3433
- keys(type) {
3434
- return this.map(type).pipe(map(m => Object.keys(m)));
3435
- }
3436
- /**
3437
- *
3438
- * @param type
3439
- * @param key
3440
- */
3441
- get(type, key) {
3442
- return this.map(type).pipe(map(m => m[key] || key));
3443
- }
3444
- /**
3445
- *
3446
- * @param type
3447
- * @param value
3448
- */
3449
- keyOf(type, value) {
3450
- return this.map(type).pipe(map(m => Object.keys(m).find(k => m[k] === value)));
3451
- }
3452
- /**
3453
- *
3454
- * @param type
3455
- * @param params
3456
- */
3457
- map(type, queryParams) {
3458
- let cacheId = type;
3459
- if (queryParams) {
3460
- if (isObject(queryParams))
3461
- Object.keys(queryParams).forEach(k => cacheId += `${k}${queryParams[k]}`);
3462
- else
3463
- cacheId += queryParams.toString();
3464
- }
3465
- let observe = this._cache[cacheId];
3466
- if (!observe) {
3467
- const params = {};
3468
- if (queryParams) {
3469
- if (isObject(queryParams))
3470
- Object.assign(params, queryParams);
3471
- else
3472
- params.value = queryParams;
3473
- }
3474
- const dataSource = this._http.get(`/api/datatype/${encodeURIComponent(type)}`, {
3475
- params
3476
- });
3477
- observe = this._cache[cacheId] = dataSource.pipe(shareReplay());
3478
- }
3479
- return observe;
3480
- }
3481
- /**
3482
- *
3483
- * @param type
3484
- * @param params
3485
- */
3486
- all(type, queryParams) {
3487
- return this.map(type, queryParams).pipe(map(mapToArray));
3488
- }
3489
- }
3490
- DatasourceService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.5", ngImport: i0, type: DatasourceService, deps: [{ token: i1.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable });
3491
- DatasourceService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.2.5", ngImport: i0, type: DatasourceService, providedIn: 'root' });
3492
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.5", ngImport: i0, type: DatasourceService, decorators: [{
3493
- type: Injectable,
3494
- args: [{ providedIn: 'root' }]
3495
- }], ctorParameters: function () { return [{ type: i1.HttpClient }]; } });
3496
-
3497
3533
  class TypeAutocomplete {
3498
3534
  constructor(ngControl, _fm, _elRef, _session, _service) {
3499
3535
  this.ngControl = ngControl;
@@ -4688,16 +4724,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.5", ngImpor
4688
4724
  type: Input
4689
4725
  }] } });
4690
4726
 
4691
- let SelectField = class SelectField {
4692
- constructor(_ds) {
4693
- this._ds = _ds;
4727
+ let SelectField = class SelectField extends OptionsControlField {
4728
+ constructor() {
4729
+ super(...arguments);
4694
4730
  this.control = new FormControl();
4695
4731
  }
4696
- ngOnInit() {
4697
- this.dataType &&
4698
- this._ds.all(this.dataType, this.params).subscribe(v => this.options = v);
4699
- this.required && this.control.addValidators(Validators.required);
4700
- }
4701
4732
  focus() {
4702
4733
  if (this.input)
4703
4734
  this.input.focus();
@@ -4705,15 +4736,15 @@ let SelectField = class SelectField {
4705
4736
  this.select.focus();
4706
4737
  }
4707
4738
  };
4708
- SelectField.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.5", ngImport: i0, type: SelectField, deps: [{ token: DatasourceService }], target: i0.ɵɵFactoryTarget.Component });
4709
- SelectField.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.5", type: SelectField, selector: "ng-component", host: { classAttribute: "field" }, viewQueries: [{ propertyName: "input", first: true, predicate: TypeSelect, descendants: true }, { propertyName: "select", first: true, predicate: MatSelect, descendants: true }], ngImport: i0, template: "<mat-form-field [appearance]=appearance *ngIf=\"mode==='compose';else view\">\r\n <mat-label>{{label |localizedString}}</mat-label>\r\n <mat-select [placeholder]=\"placeholder\" [formControl]=control\r\n [required]=\"required\" [multiple]=\"multiple\">\r\n <mat-option *ngFor=\"let o of options\" [value]=\"o.key\">{{o.value}}</mat-option>\r\n </mat-select>\r\n <mat-hint *ngIf=\"hint\"> {{ hint|localizedString }}</mat-hint>\r\n <mat-error *ngIf=\"control.hasError('required')\" [innerHTML]=\"'RequiredErr'|translate:(label|localizedString)\"></mat-error>\r\n</mat-form-field>\r\n<ng-template #view>\r\n <span>{{control.value | typeValue: dataType | async}}</span>\r\n</ng-template>\r\n", dependencies: [{ kind: "directive", type: i1$4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { 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.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: i3$1.MatOption, selector: "mat-option", exportAs: ["matOption"] }, { kind: "directive", type: i4.MatError, selector: "mat-error", inputs: ["id"] }, { kind: "component", type: i4.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i4.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "directive", type: i4.MatLabel, selector: "mat-label" }, { kind: "component", type: i5.MatSelect, selector: "mat-select", inputs: ["disabled", "disableRipple", "tabIndex"], exportAs: ["matSelect"] }, { kind: "pipe", type: i1$4.AsyncPipe, name: "async" }, { kind: "pipe", type: LocalizedStringPipe, name: "localizedString" }, { kind: "pipe", type: TypeValuePipe, name: "typeValue" }, { kind: "pipe", type: TranslatePipe, name: "translate" }] });
4739
+ SelectField.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.5", ngImport: i0, type: SelectField, deps: null, target: i0.ɵɵFactoryTarget.Component });
4740
+ SelectField.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.5", type: SelectField, selector: "ng-component", host: { classAttribute: "field" }, viewQueries: [{ propertyName: "input", first: true, predicate: TypeSelect, descendants: true }, { propertyName: "select", first: true, predicate: MatSelect, descendants: true }], usesInheritance: true, ngImport: i0, template: "<mat-form-field [appearance]=appearance *ngIf=\"mode==='compose';else view\">\r\n <mat-label>{{label |localizedString}}</mat-label>\r\n <mat-select [placeholder]=\"placeholder\" [formControl]=control\r\n [required]=\"required\" [multiple]=\"multiple\">\r\n <mat-option *ngFor=\"let o of options\" [value]=\"o.key\">{{o.value}}</mat-option>\r\n </mat-select>\r\n <mat-hint *ngIf=\"hint\"> {{ hint|localizedString }}</mat-hint>\r\n <mat-error *ngIf=\"control.hasError('required')\" [innerHTML]=\"'RequiredErr'|translate:(label|localizedString)\"></mat-error>\r\n</mat-form-field>\r\n<ng-template #view>\r\n <span *ngIf=\"control.value\" [ngSwitch]=\"multiple\">\r\n <ng-container *ngSwitchCase=\"true\">\r\n <ng-container *ngFor=\"let o of control.value; index as index\">\r\n {{optionOf(o)|localizedString}}\r\n <ng-container *ngIf=\"index>0\">,&nbsp;</ng-container>\r\n </ng-container>\r\n </ng-container>\r\n <ng-container *ngSwitchDefault>\r\n {{optionOf(control.value)|localizedString}}\r\n </ng-container>\r\n </span>\r\n</ng-template>\r\n", dependencies: [{ kind: "directive", type: i1$4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$4.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i1$4.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i1$4.NgSwitchDefault, selector: "[ngSwitchDefault]" }, { kind: "directive", type: i1$3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { 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.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: i3$1.MatOption, selector: "mat-option", exportAs: ["matOption"] }, { kind: "directive", type: i4.MatError, selector: "mat-error", inputs: ["id"] }, { kind: "component", type: i4.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i4.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "directive", type: i4.MatLabel, selector: "mat-label" }, { kind: "component", type: i5.MatSelect, selector: "mat-select", inputs: ["disabled", "disableRipple", "tabIndex"], exportAs: ["matSelect"] }, { kind: "pipe", type: LocalizedStringPipe, name: "localizedString" }, { kind: "pipe", type: TranslatePipe, name: "translate" }] });
4710
4741
  SelectField = __decorate([
4711
4742
  BizDoc({ selector: 'select-control' })
4712
4743
  ], SelectField);
4713
4744
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.5", ngImport: i0, type: SelectField, decorators: [{
4714
4745
  type: Component,
4715
- args: [{ host: { class: 'field' }, template: "<mat-form-field [appearance]=appearance *ngIf=\"mode==='compose';else view\">\r\n <mat-label>{{label |localizedString}}</mat-label>\r\n <mat-select [placeholder]=\"placeholder\" [formControl]=control\r\n [required]=\"required\" [multiple]=\"multiple\">\r\n <mat-option *ngFor=\"let o of options\" [value]=\"o.key\">{{o.value}}</mat-option>\r\n </mat-select>\r\n <mat-hint *ngIf=\"hint\"> {{ hint|localizedString }}</mat-hint>\r\n <mat-error *ngIf=\"control.hasError('required')\" [innerHTML]=\"'RequiredErr'|translate:(label|localizedString)\"></mat-error>\r\n</mat-form-field>\r\n<ng-template #view>\r\n <span>{{control.value | typeValue: dataType | async}}</span>\r\n</ng-template>\r\n" }]
4716
- }], ctorParameters: function () { return [{ type: DatasourceService }]; }, propDecorators: { input: [{
4746
+ args: [{ host: { class: 'field' }, template: "<mat-form-field [appearance]=appearance *ngIf=\"mode==='compose';else view\">\r\n <mat-label>{{label |localizedString}}</mat-label>\r\n <mat-select [placeholder]=\"placeholder\" [formControl]=control\r\n [required]=\"required\" [multiple]=\"multiple\">\r\n <mat-option *ngFor=\"let o of options\" [value]=\"o.key\">{{o.value}}</mat-option>\r\n </mat-select>\r\n <mat-hint *ngIf=\"hint\"> {{ hint|localizedString }}</mat-hint>\r\n <mat-error *ngIf=\"control.hasError('required')\" [innerHTML]=\"'RequiredErr'|translate:(label|localizedString)\"></mat-error>\r\n</mat-form-field>\r\n<ng-template #view>\r\n <span *ngIf=\"control.value\" [ngSwitch]=\"multiple\">\r\n <ng-container *ngSwitchCase=\"true\">\r\n <ng-container *ngFor=\"let o of control.value; index as index\">\r\n {{optionOf(o)|localizedString}}\r\n <ng-container *ngIf=\"index>0\">,&nbsp;</ng-container>\r\n </ng-container>\r\n </ng-container>\r\n <ng-container *ngSwitchDefault>\r\n {{optionOf(control.value)|localizedString}}\r\n </ng-container>\r\n </span>\r\n</ng-template>\r\n" }]
4747
+ }], propDecorators: { input: [{
4717
4748
  type: ViewChild,
4718
4749
  args: [TypeSelect]
4719
4750
  }], select: [{
@@ -13972,11 +14003,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.5", ngImpor
13972
14003
 
13973
14004
  /** */
13974
14005
  class ReportRef {
13975
- constructor(_configuration, _hub, dim) {
14006
+ constructor(_configuration, args, _hub, dim) {
13976
14007
  this._configuration = _configuration;
13977
14008
  this._hub = _hub;
13978
14009
  this._exporting = new Subject();
13979
14010
  this._resize = new BehaviorSubject(dim);
14011
+ this._args = new BehaviorSubject(args);
13980
14012
  }
13981
14013
  /** intercept user export */
13982
14014
  exporting() {
@@ -13994,6 +14026,7 @@ class ReportRef {
13994
14026
  }
13995
14027
  /** configuration name */
13996
14028
  get name() { return this._configuration.name; }
14029
+ get arguments() { return this._args.value; }
13997
14030
  _destroy() {
13998
14031
  this._resize.unsubscribe();
13999
14032
  }
@@ -14054,7 +14087,7 @@ class ReportViewerComponent {
14054
14087
  if (changes['report']) {
14055
14088
  this._destroy.next();
14056
14089
  this._reportRef && this._reportRef._destroy();
14057
- this._reportRef = new ReportRef(this.report, this._hub, this._dim());
14090
+ this._reportRef = new ReportRef(this.report, this.args, this._hub, this._dim());
14058
14091
  if (this.report.template)
14059
14092
  this._createView();
14060
14093
  else
@@ -14068,6 +14101,8 @@ class ReportViewerComponent {
14068
14101
  });
14069
14102
  this._resizing.pipe(debounceTime(150)).subscribe(() => this._reportRef._resize.next(this._dim()));
14070
14103
  }
14104
+ if (changes['args'])
14105
+ this._reportRef._args.next(this.args);
14071
14106
  }
14072
14107
  /** */
14073
14108
  _createView() {
@@ -23020,7 +23055,7 @@ let YesNoField = class YesNoField {
23020
23055
  }
23021
23056
  };
23022
23057
  YesNoField.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.5", ngImport: i0, type: YesNoField, deps: [], target: i0.ɵɵFactoryTarget.Component });
23023
- YesNoField.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.5", type: YesNoField, selector: "ng-component", host: { classAttribute: "field" }, viewQueries: [{ propertyName: "input", first: true, predicate: MatRadioButton, descendants: true }], ngImport: i0, template: "<div *ngIf=\"mode==='compose';else view\">\r\n<!-- <mat-label *ngIf=label>{{label|localizedString}}</mat-label>-->\r\n <mat-hint *ngIf=\"hint\"> {{ hint |localizedString}}</mat-hint>\r\n <mat-radio-group [formControl]=control>\r\n <mat-radio-button [value]=\"true\">{{'Yes'|translate}}</mat-radio-button>\r\n <mat-radio-button [value]=\"false\">{{'No'|translate}}</mat-radio-button>\r\n </mat-radio-group>\r\n\r\n <mat-error *ngIf=\"control.hasError('required')\" [innerHTML]=\"'RequiredErr'|translate:(label|localizedString)\"></mat-error>\r\n</div>\r\n<ng-template #view>\r\n {{(control.value?'Yes':'No')|translate}}\r\n</ng-template>\r\n", dependencies: [{ kind: "directive", type: i1$4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { 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: "directive", type: i4$6.MatRadioGroup, selector: "mat-radio-group", exportAs: ["matRadioGroup"] }, { kind: "component", type: i4$6.MatRadioButton, selector: "mat-radio-button", inputs: ["disableRipple", "tabIndex"], exportAs: ["matRadioButton"] }, { kind: "directive", type: i4.MatError, selector: "mat-error", inputs: ["id"] }, { kind: "directive", type: i4.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "pipe", type: LocalizedStringPipe, name: "localizedString" }, { kind: "pipe", type: TranslatePipe, name: "translate" }] });
23058
+ YesNoField.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.5", type: YesNoField, selector: "ng-component", host: { classAttribute: "field" }, viewQueries: [{ propertyName: "input", first: true, predicate: MatRadioButton, descendants: true }], ngImport: i0, template: "<div *ngIf=\"mode==='compose';else view\">\r\n<!-- <mat-label *ngIf=label>{{label|localizedString}}</mat-label>-->\r\n <mat-hint *ngIf=\"hint\"> {{ hint |localizedString}}</mat-hint>\r\n <mat-radio-group [formControl]=control>\r\n <mat-radio-button [value]=\"true\">{{'Yes'|translate}}</mat-radio-button>\r\n <mat-radio-button [value]=\"false\">{{'No'|translate}}</mat-radio-button>\r\n </mat-radio-group>\r\n\r\n <mat-error *ngIf=\"control.hasError('required')\" [innerHTML]=\"'RequiredErr'|translate:(label|localizedString)\"></mat-error>\r\n</div>\r\n<ng-template #view>\r\n {{(control.value?'Yes':'No')|translate}}\r\n</ng-template>\r\n", dependencies: [{ kind: "directive", type: i1$4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { 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: "directive", type: i3$4.MatRadioGroup, selector: "mat-radio-group", exportAs: ["matRadioGroup"] }, { kind: "component", type: i3$4.MatRadioButton, selector: "mat-radio-button", inputs: ["disableRipple", "tabIndex"], exportAs: ["matRadioButton"] }, { kind: "directive", type: i4.MatError, selector: "mat-error", inputs: ["id"] }, { kind: "directive", type: i4.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "pipe", type: LocalizedStringPipe, name: "localizedString" }, { kind: "pipe", type: TranslatePipe, name: "translate" }] });
23024
23059
  YesNoField = __decorate([
23025
23060
  BizDoc({ selector: 'yesno-control' })
23026
23061
  ], YesNoField);
@@ -23032,61 +23067,44 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.5", ngImpor
23032
23067
  args: [MatRadioButton]
23033
23068
  }] } });
23034
23069
 
23035
- let ChecklistField = class ChecklistField {
23036
- constructor(_ds) {
23037
- this._ds = _ds;
23070
+ let ChecklistField = class ChecklistField extends OptionsControlField {
23071
+ constructor() {
23072
+ super(...arguments);
23038
23073
  this.control = new FormControl();
23039
23074
  }
23040
- ngOnInit() {
23041
- this.required && this.control.addValidators(Validators.required);
23042
- if (this.dataType)
23043
- this._ds.all(this.dataType).subscribe(v => this.options = v);
23044
- }
23045
23075
  focus() { this.input.focus(); }
23046
- optionOf(value) {
23047
- var _a;
23048
- (_a = this.options.find(o => o.key === value)) === null || _a === void 0 ? void 0 : _a.value;
23049
- }
23050
23076
  };
23051
- ChecklistField.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.5", ngImport: i0, type: ChecklistField, deps: [{ token: DatasourceService }], target: i0.ɵɵFactoryTarget.Component });
23052
- ChecklistField.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.5", type: ChecklistField, selector: "ng-component", inputs: { params: "params" }, host: { classAttribute: "field" }, viewQueries: [{ propertyName: "input", first: true, predicate: MatSelectionList, descendants: true }], ngImport: i0, template: "<div *ngIf=\"mode==='compose';else view\">\r\n <mat-label *ngIf=\"label\">{{label |localizedString}}</mat-label>\r\n <mat-selection-list [formControl]=\"control\" multiple>\r\n <mat-list-option *ngFor=\"let o of options\" [value]=\"o.key\">{{o.value|localizedString}}</mat-list-option>\r\n </mat-selection-list>\r\n <mat-hint *ngIf=\"hint\"> {{ hint |localizedString}}</mat-hint>\r\n <mat-error *ngIf=\"control.hasError('required')\" [innerHTML]=\"'RequiredErr'|translate:(label|localizedString)\"></mat-error>\r\n</div>\r\n<ng-template #view>\r\n <ng-container *ngIf=\"control.value\">\r\n <mat-tag *ngFor=\"let o of control.value\">{{optionOf(o)|localizedString}}</mat-tag>\r\n </ng-container>\r\n</ng-template>\r\n", dependencies: [{ kind: "directive", type: i1$4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { 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$5.MatSelectionList, selector: "mat-selection-list", inputs: ["disableRipple", "color", "compareWith", "disabled", "multiple"], outputs: ["selectionChange"], exportAs: ["matSelectionList"] }, { kind: "component", type: i4$5.MatListOption, selector: "mat-list-option", inputs: ["disableRipple", "checkboxPosition", "color", "value", "disabled", "selected"], outputs: ["selectedChange"], exportAs: ["matListOption"] }, { kind: "directive", type: i4.MatError, selector: "mat-error", inputs: ["id"] }, { kind: "directive", type: i4.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "directive", type: i4.MatLabel, selector: "mat-label" }, { kind: "pipe", type: LocalizedStringPipe, name: "localizedString" }, { kind: "pipe", type: TranslatePipe, name: "translate" }] });
23077
+ ChecklistField.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.5", ngImport: i0, type: ChecklistField, deps: null, target: i0.ɵɵFactoryTarget.Component });
23078
+ ChecklistField.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.5", type: ChecklistField, selector: "ng-component", inputs: { params: "params" }, host: { classAttribute: "field" }, viewQueries: [{ propertyName: "input", first: true, predicate: MatSelectionList, descendants: true }], usesInheritance: true, ngImport: i0, template: "<div *ngIf=\"mode==='compose';else view\">\r\n <mat-label *ngIf=\"label\">{{label |localizedString}}</mat-label>\r\n <mat-selection-list [formControl]=\"control\" multiple>\r\n <mat-list-option *ngFor=\"let o of options\" [value]=\"o.key\">{{o.value|localizedString}}</mat-list-option>\r\n </mat-selection-list>\r\n <mat-hint *ngIf=\"hint\"> {{ hint |localizedString}}</mat-hint>\r\n <mat-error *ngIf=\"control.hasError('required')\" [innerHTML]=\"'RequiredErr'|translate:(label|localizedString)\"></mat-error>\r\n</div>\r\n<ng-template #view>\r\n <ng-container *ngIf=\"control.value\">\r\n <ng-container *ngFor=\"let o of control.value; index as index\">\r\n {{optionOf(o)|localizedString}}\r\n <ng-container *ngIf=\"index>0\">,&nbsp;</ng-container>\r\n </ng-container>\r\n </ng-container>\r\n</ng-template>\r\n", dependencies: [{ kind: "directive", type: i1$4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { 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$5.MatSelectionList, selector: "mat-selection-list", inputs: ["disableRipple", "color", "compareWith", "disabled", "multiple"], outputs: ["selectionChange"], exportAs: ["matSelectionList"] }, { kind: "component", type: i4$5.MatListOption, selector: "mat-list-option", inputs: ["disableRipple", "checkboxPosition", "color", "value", "disabled", "selected"], outputs: ["selectedChange"], exportAs: ["matListOption"] }, { kind: "directive", type: i4.MatError, selector: "mat-error", inputs: ["id"] }, { kind: "directive", type: i4.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "directive", type: i4.MatLabel, selector: "mat-label" }, { kind: "pipe", type: LocalizedStringPipe, name: "localizedString" }, { kind: "pipe", type: TranslatePipe, name: "translate" }] });
23053
23079
  ChecklistField = __decorate([
23054
23080
  BizDoc({ selector: 'checklist-control' })
23055
23081
  ], ChecklistField);
23056
23082
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.5", ngImport: i0, type: ChecklistField, decorators: [{
23057
23083
  type: Component,
23058
- args: [{ host: { class: 'field' }, template: "<div *ngIf=\"mode==='compose';else view\">\r\n <mat-label *ngIf=\"label\">{{label |localizedString}}</mat-label>\r\n <mat-selection-list [formControl]=\"control\" multiple>\r\n <mat-list-option *ngFor=\"let o of options\" [value]=\"o.key\">{{o.value|localizedString}}</mat-list-option>\r\n </mat-selection-list>\r\n <mat-hint *ngIf=\"hint\"> {{ hint |localizedString}}</mat-hint>\r\n <mat-error *ngIf=\"control.hasError('required')\" [innerHTML]=\"'RequiredErr'|translate:(label|localizedString)\"></mat-error>\r\n</div>\r\n<ng-template #view>\r\n <ng-container *ngIf=\"control.value\">\r\n <mat-tag *ngFor=\"let o of control.value\">{{optionOf(o)|localizedString}}</mat-tag>\r\n </ng-container>\r\n</ng-template>\r\n" }]
23059
- }], ctorParameters: function () { return [{ type: DatasourceService }]; }, propDecorators: { params: [{
23084
+ args: [{ host: { class: 'field' }, template: "<div *ngIf=\"mode==='compose';else view\">\r\n <mat-label *ngIf=\"label\">{{label |localizedString}}</mat-label>\r\n <mat-selection-list [formControl]=\"control\" multiple>\r\n <mat-list-option *ngFor=\"let o of options\" [value]=\"o.key\">{{o.value|localizedString}}</mat-list-option>\r\n </mat-selection-list>\r\n <mat-hint *ngIf=\"hint\"> {{ hint |localizedString}}</mat-hint>\r\n <mat-error *ngIf=\"control.hasError('required')\" [innerHTML]=\"'RequiredErr'|translate:(label|localizedString)\"></mat-error>\r\n</div>\r\n<ng-template #view>\r\n <ng-container *ngIf=\"control.value\">\r\n <ng-container *ngFor=\"let o of control.value; index as index\">\r\n {{optionOf(o)|localizedString}}\r\n <ng-container *ngIf=\"index>0\">,&nbsp;</ng-container>\r\n </ng-container>\r\n </ng-container>\r\n</ng-template>\r\n" }]
23085
+ }], propDecorators: { params: [{
23060
23086
  type: Input
23061
23087
  }], input: [{
23062
23088
  type: ViewChild,
23063
23089
  args: [MatSelectionList]
23064
23090
  }] } });
23065
23091
 
23066
- let RadioButtonField = class RadioButtonField {
23067
- constructor(_ds) {
23068
- this._ds = _ds;
23092
+ let RadioButtonField = class RadioButtonField extends OptionsControlField {
23093
+ constructor() {
23094
+ super(...arguments);
23069
23095
  this.control = new FormControl(false);
23070
23096
  }
23071
23097
  focus() { this.input.focus(); }
23072
- ngOnInit() {
23073
- this.required && this.control.addValidators(Validators.required);
23074
- this.dataType && this._ds.all(this.dataType).subscribe(v => this.options = v);
23075
- }
23076
- optionOf(value) {
23077
- var _a;
23078
- (_a = this.options.find(o => o.key === value)) === null || _a === void 0 ? void 0 : _a.value;
23079
- }
23080
23098
  };
23081
- RadioButtonField.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.5", ngImport: i0, type: RadioButtonField, deps: [{ token: DatasourceService }], target: i0.ɵɵFactoryTarget.Component });
23082
- RadioButtonField.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.5", type: RadioButtonField, selector: "ng-component", host: { classAttribute: "field" }, viewQueries: [{ propertyName: "input", first: true, predicate: MatRadioButton, descendants: true }], ngImport: i0, template: "<div *ngIf=\"mode === 'compose'; else view\">\r\n <mat-hint *ngIf=\"hint\"> {{ hint|localizedString }}</mat-hint>\r\n <mat-label>{{label|localizedString}}</mat-label>\r\n <mat-radio-group [formControl]=control>\r\n <mat-radio-button *ngFor=\"let o of options\" [value]=\"o.key\">\r\n {{o.value|localizedString}}\r\n </mat-radio-button>\r\n </mat-radio-group>\r\n <mat-error *ngIf=\"control.hasError('required')\" [innerHTML]=\"'RequiredErr'|translate:(label||name)\"></mat-error>\r\n</div>\r\n<ng-template #view>\r\n <span>\r\n {{optionOf(control.value)|localizedString}}\r\n </span>\r\n</ng-template>\r\n", dependencies: [{ kind: "directive", type: i1$4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { 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: "directive", type: i4$6.MatRadioGroup, selector: "mat-radio-group", exportAs: ["matRadioGroup"] }, { kind: "component", type: i4$6.MatRadioButton, selector: "mat-radio-button", inputs: ["disableRipple", "tabIndex"], exportAs: ["matRadioButton"] }, { kind: "directive", type: i4.MatError, selector: "mat-error", inputs: ["id"] }, { kind: "directive", type: i4.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "directive", type: i4.MatLabel, selector: "mat-label" }, { kind: "pipe", type: LocalizedStringPipe, name: "localizedString" }, { kind: "pipe", type: TranslatePipe, name: "translate" }] });
23099
+ RadioButtonField.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.5", ngImport: i0, type: RadioButtonField, deps: null, target: i0.ɵɵFactoryTarget.Component });
23100
+ RadioButtonField.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.5", type: RadioButtonField, selector: "ng-component", host: { classAttribute: "field" }, viewQueries: [{ propertyName: "input", first: true, predicate: MatRadioButton, descendants: true }], usesInheritance: true, ngImport: i0, template: "<div *ngIf=\"mode === 'compose'; else view\">\r\n <mat-hint *ngIf=\"hint\"> {{ hint|localizedString }}</mat-hint>\r\n <mat-label>{{label|localizedString}}</mat-label>\r\n <mat-radio-group [formControl]=control>\r\n <mat-radio-button *ngFor=\"let o of options\" [value]=\"o.key\">\r\n {{o.value|localizedString}}\r\n </mat-radio-button>\r\n </mat-radio-group>\r\n <mat-error *ngIf=\"control.hasError('required')\" [innerHTML]=\"'RequiredErr'|translate:(label||name)\"></mat-error>\r\n</div>\r\n<ng-template #view>\r\n <span *ngIf=\"control.value\">\r\n {{optionOf(control.value)|localizedString}}\r\n </span>\r\n</ng-template>\r\n", dependencies: [{ kind: "directive", type: i1$4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { 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: "directive", type: i3$4.MatRadioGroup, selector: "mat-radio-group", exportAs: ["matRadioGroup"] }, { kind: "component", type: i3$4.MatRadioButton, selector: "mat-radio-button", inputs: ["disableRipple", "tabIndex"], exportAs: ["matRadioButton"] }, { kind: "directive", type: i4.MatError, selector: "mat-error", inputs: ["id"] }, { kind: "directive", type: i4.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "directive", type: i4.MatLabel, selector: "mat-label" }, { kind: "pipe", type: LocalizedStringPipe, name: "localizedString" }, { kind: "pipe", type: TranslatePipe, name: "translate" }] });
23083
23101
  RadioButtonField = __decorate([
23084
23102
  BizDoc({ selector: 'radio-button-control' })
23085
23103
  ], RadioButtonField);
23086
23104
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.5", ngImport: i0, type: RadioButtonField, decorators: [{
23087
23105
  type: Component,
23088
- args: [{ host: { class: 'field' }, template: "<div *ngIf=\"mode === 'compose'; else view\">\r\n <mat-hint *ngIf=\"hint\"> {{ hint|localizedString }}</mat-hint>\r\n <mat-label>{{label|localizedString}}</mat-label>\r\n <mat-radio-group [formControl]=control>\r\n <mat-radio-button *ngFor=\"let o of options\" [value]=\"o.key\">\r\n {{o.value|localizedString}}\r\n </mat-radio-button>\r\n </mat-radio-group>\r\n <mat-error *ngIf=\"control.hasError('required')\" [innerHTML]=\"'RequiredErr'|translate:(label||name)\"></mat-error>\r\n</div>\r\n<ng-template #view>\r\n <span>\r\n {{optionOf(control.value)|localizedString}}\r\n </span>\r\n</ng-template>\r\n" }]
23089
- }], ctorParameters: function () { return [{ type: DatasourceService }]; }, propDecorators: { input: [{
23106
+ args: [{ host: { class: 'field' }, template: "<div *ngIf=\"mode === 'compose'; else view\">\r\n <mat-hint *ngIf=\"hint\"> {{ hint|localizedString }}</mat-hint>\r\n <mat-label>{{label|localizedString}}</mat-label>\r\n <mat-radio-group [formControl]=control>\r\n <mat-radio-button *ngFor=\"let o of options\" [value]=\"o.key\">\r\n {{o.value|localizedString}}\r\n </mat-radio-button>\r\n </mat-radio-group>\r\n <mat-error *ngIf=\"control.hasError('required')\" [innerHTML]=\"'RequiredErr'|translate:(label||name)\"></mat-error>\r\n</div>\r\n<ng-template #view>\r\n <span *ngIf=\"control.value\">\r\n {{optionOf(control.value)|localizedString}}\r\n </span>\r\n</ng-template>\r\n" }]
23107
+ }], propDecorators: { input: [{
23090
23108
  type: ViewChild,
23091
23109
  args: [MatRadioButton]
23092
23110
  }] } });
@@ -23114,7 +23132,7 @@ let SignatureField = class SignatureField {
23114
23132
  }
23115
23133
  };
23116
23134
  SignatureField.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.5", ngImport: i0, type: SignatureField, deps: [{ token: i1$1.DomSanitizer }], target: i0.ɵɵFactoryTarget.Component });
23117
- SignatureField.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.5", type: SignatureField, selector: "ng-component", host: { classAttribute: "field" }, viewQueries: [{ propertyName: "input", first: true, predicate: ["signature"], descendants: true }], ngImport: i0, template: "<div *ngIf=\"mode==='compose';else view\">\r\n <mat-label>{{label |localizedString}}</mat-label>\r\n <canvas ejs-signature #signature id=\"signature\" (created)=\"created()\" (change)=\"change($event)\"></canvas>\r\n <mat-hint *ngIf=\"hint\"> {{ hint |localizedString}}</mat-hint>\r\n <mat-error *ngIf=\"control.hasError('required')\" [innerHTML]=\"'RequiredErr'|translate:(label|localizedString)\"></mat-error>\r\n <button mat-icon-button (click)=\"clear()\" [bizdocTooltip]=\"'Clear'|translate\" [disabled]=\"!control.value\" type=\"button\"><mat-icon>delete</mat-icon></button>\r\n</div>\r\n<ng-template #view>\r\n <img [src]=\"src\" />\r\n</ng-template>\r\n", dependencies: [{ kind: "directive", type: i1$4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3$4.SignatureComponent, selector: "[ejs-signature]", inputs: ["backgroundColor", "backgroundImage", "disabled", "enablePersistence", "enableRtl", "isReadOnly", "locale", "maxStrokeWidth", "minStrokeWidth", "saveWithBackground", "strokeColor", "velocity"], outputs: ["focus", "blur", "beforeSave", "change", "created"] }, { kind: "directive", type: i4.MatError, selector: "mat-error", inputs: ["id"] }, { kind: "directive", type: i4.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "directive", type: i4.MatLabel, selector: "mat-label" }, { kind: "component", type: i9.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], 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: LocalizedStringPipe, name: "localizedString" }, { kind: "pipe", type: TranslatePipe, name: "translate" }] });
23135
+ SignatureField.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.5", type: SignatureField, selector: "ng-component", host: { classAttribute: "field" }, viewQueries: [{ propertyName: "input", first: true, predicate: ["signature"], descendants: true }], ngImport: i0, template: "<div *ngIf=\"mode==='compose';else view\">\r\n <mat-label>{{label |localizedString}}</mat-label>\r\n <canvas ejs-signature #signature id=\"signature\" (created)=\"created()\" (change)=\"change($event)\"></canvas>\r\n <mat-hint *ngIf=\"hint\"> {{ hint |localizedString}}</mat-hint>\r\n <mat-error *ngIf=\"control.hasError('required')\" [innerHTML]=\"'RequiredErr'|translate:(label|localizedString)\"></mat-error>\r\n <button mat-icon-button (click)=\"clear()\" [bizdocTooltip]=\"'Clear'|translate\" [disabled]=\"!control.value\" type=\"button\"><mat-icon>delete</mat-icon></button>\r\n</div>\r\n<ng-template #view>\r\n <img [src]=\"src\" />\r\n</ng-template>\r\n", dependencies: [{ kind: "directive", type: i1$4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3$5.SignatureComponent, selector: "[ejs-signature]", inputs: ["backgroundColor", "backgroundImage", "disabled", "enablePersistence", "enableRtl", "isReadOnly", "locale", "maxStrokeWidth", "minStrokeWidth", "saveWithBackground", "strokeColor", "velocity"], outputs: ["focus", "blur", "beforeSave", "change", "created"] }, { kind: "directive", type: i4.MatError, selector: "mat-error", inputs: ["id"] }, { kind: "directive", type: i4.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "directive", type: i4.MatLabel, selector: "mat-label" }, { kind: "component", type: i9.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], 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: LocalizedStringPipe, name: "localizedString" }, { kind: "pipe", type: TranslatePipe, name: "translate" }] });
23118
23136
  SignatureField = __decorate([
23119
23137
  BizDoc({ selector: 'signature-control' })
23120
23138
  ], SignatureField);
@@ -25731,7 +25749,7 @@ Signature.nextId = 0;
25731
25749
  Signature.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.5", ngImport: i0, type: Signature, deps: [{ token: i1$3.NgControl, optional: true, self: true }, { token: i2$1.FocusMonitor }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
25732
25750
  Signature.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.5", type: Signature, selector: "bizdoc-signature", inputs: { width: "width", height: "height", velocity: "velocity", placeholder: "placeholder", required: "required", disabled: "disabled", value: "value" }, host: { properties: { "class.floating": "this.shouldLabelFloat", "attr.aria-describedby": "this.describedBy", "id": "this.id" } }, providers: [{ provide: MatFormFieldControl, useExisting: Signature }], viewQueries: [{ propertyName: "_control", first: true, predicate: ["signature"], descendants: true }], ngImport: i0, template: `
25733
25751
  <canvas ejs-signature #signature (change)="_change($event)"></canvas>
25734
- `, isInline: true, dependencies: [{ kind: "component", type: i3$4.SignatureComponent, selector: "[ejs-signature]", inputs: ["backgroundColor", "backgroundImage", "disabled", "enablePersistence", "enableRtl", "isReadOnly", "locale", "maxStrokeWidth", "minStrokeWidth", "saveWithBackground", "strokeColor", "velocity"], outputs: ["focus", "blur", "beforeSave", "change", "created"] }] });
25752
+ `, isInline: true, dependencies: [{ kind: "component", type: i3$5.SignatureComponent, selector: "[ejs-signature]", inputs: ["backgroundColor", "backgroundImage", "disabled", "enablePersistence", "enableRtl", "isReadOnly", "locale", "maxStrokeWidth", "minStrokeWidth", "saveWithBackground", "strokeColor", "velocity"], outputs: ["focus", "blur", "beforeSave", "change", "created"] }] });
25735
25753
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.5", ngImport: i0, type: Signature, decorators: [{
25736
25754
  type: Component,
25737
25755
  args: [{
@@ -32726,7 +32744,8 @@ class ControlDesignComponent extends DesignerTypeElementComponent {
32726
32744
  constructor() {
32727
32745
  super(...arguments);
32728
32746
  this.form = this._fb.group({
32729
- dataType: this._fb.control(null, Validators.required)
32747
+ dataType: this._fb.control(null, Validators.required),
32748
+ visible: null
32730
32749
  });
32731
32750
  }
32732
32751
  ngOnInit() {
@@ -32735,10 +32754,10 @@ class ControlDesignComponent extends DesignerTypeElementComponent {
32735
32754
  }
32736
32755
  }
32737
32756
  ControlDesignComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.5", ngImport: i0, type: ControlDesignComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
32738
- ControlDesignComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.5", type: ControlDesignComponent, selector: "ng-component", usesInheritance: true, ngImport: i0, template: "<bizdoc-designer-element [form]=\"form\">\r\n <ng-template bizdocEditContent>\r\n <form autocomplete=\"off\" [formGroup]=\"form\" class=\"column\">\r\n </form>\r\n </ng-template>\r\n</bizdoc-designer-element>\r\n", dependencies: [{ kind: "directive", type: i1$3.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1$3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$3.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: EditContentDirective, selector: "[bizdocEditContent]" }, { kind: "component", type: DesignerItemComponent, selector: "bizdoc-designer-element", inputs: ["privileges", "icon", "form", "state"], outputs: ["continue", "save"] }] });
32757
+ ControlDesignComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.5", type: ControlDesignComponent, selector: "ng-component", usesInheritance: true, ngImport: i0, template: "<bizdoc-designer-element [form]=\"form\">\r\n <ng-template bizdocEditContent>\r\n <form autocomplete=\"off\" [formGroup]=\"form\" class=\"column\">\r\n <div><mat-checkbox formControlName=\"visible\">{{'Visible'}}</mat-checkbox></div>\r\n </form>\r\n </ng-template>\r\n</bizdoc-designer-element>\r\n", dependencies: [{ kind: "directive", type: i1$3.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { 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.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$3.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i9$2.MatCheckbox, selector: "mat-checkbox", inputs: ["disableRipple", "color", "tabIndex"], exportAs: ["matCheckbox"] }, { kind: "directive", type: EditContentDirective, selector: "[bizdocEditContent]" }, { kind: "component", type: DesignerItemComponent, selector: "bizdoc-designer-element", inputs: ["privileges", "icon", "form", "state"], outputs: ["continue", "save"] }] });
32739
32758
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.5", ngImport: i0, type: ControlDesignComponent, decorators: [{
32740
32759
  type: Component,
32741
- args: [{ template: "<bizdoc-designer-element [form]=\"form\">\r\n <ng-template bizdocEditContent>\r\n <form autocomplete=\"off\" [formGroup]=\"form\" class=\"column\">\r\n </form>\r\n </ng-template>\r\n</bizdoc-designer-element>\r\n" }]
32760
+ args: [{ template: "<bizdoc-designer-element [form]=\"form\">\r\n <ng-template bizdocEditContent>\r\n <form autocomplete=\"off\" [formGroup]=\"form\" class=\"column\">\r\n <div><mat-checkbox formControlName=\"visible\">{{'Visible'}}</mat-checkbox></div>\r\n </form>\r\n </ng-template>\r\n</bizdoc-designer-element>\r\n" }]
32742
32761
  }] });
32743
32762
 
32744
32763
  /** filter component*/
@@ -33003,7 +33022,7 @@ class CubeDesignComponent extends DesignerTypeElementComponent {
33003
33022
  datatype(name) { var _a; return (_a = this.types.find(t => t.name == name)) === null || _a === void 0 ? void 0 : _a.title; }
33004
33023
  }
33005
33024
  CubeDesignComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.5", ngImport: i0, type: CubeDesignComponent, deps: [{ token: i1$3.FormBuilder }, { token: SystemService }, { token: PromptService }, { token: i0.ElementRef }, { token: DesignerRef }], target: i0.ɵɵFactoryTarget.Component });
33006
- CubeDesignComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.5", type: CubeDesignComponent, selector: "ng-component", viewQueries: [{ propertyName: "element", first: true, predicate: ["element"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<bizdoc-designer-element [form]=\"form\" [privileges]=\"true\" (continue)=\"complete()\" [state]=\"state\">\r\n <!-- widget -->\r\n <ng-template bizdocContent>\r\n <dl *ngIf=\"jobInfo\">\r\n <ng-container *ngIf=\"jobInfo.lastExecution\">\r\n <dt>{{'LastExecution'|translate}}</dt>\r\n <dd>{{jobInfo.lastExecution|amTimeAgo}}</dd>\r\n </ng-container>\r\n <ng-container *ngIf=\"jobInfo.nextExecution\">\r\n <dt>{{'NextExecution'|translate}}</dt>\r\n <dd>{{jobInfo.nextExecution|amTimeAgo}}</dd>\r\n </ng-container>\r\n <ng-container *ngIf=\"jobInfo.lastJobState\">\r\n <dt>{{'LastJobState'|translate}}</dt>\r\n <dd>\r\n <mat-icon *ngIf=\"jobInfo.error\" [bizdocTooltip]=\"jobInfo.error\">report</mat-icon>\r\n <span class=\"job-state\">{{jobInfo.lastJobState| translate}}</span>\r\n </dd>\r\n </ng-container>\r\n </dl>\r\n <div class=\"row\" fxLayoutAlign=\"start center\">\r\n <button mat-stroked-button (click)=\"sync()\" [disabled]=\"model.draft || syncing\">\r\n <span> {{'Synchronize'|translate}}</span>\r\n </button>\r\n &nbsp;\r\n <mat-spinner *ngIf=\"syncing\" diameter=\"22\"></mat-spinner>\r\n </div>\r\n <div class=\"row\">\r\n <div *ngIf=\"model.axes?.length\">\r\n <h2 class=\"mat-title\">{{'Axes'|translate}}</h2>\r\n <table class=\"mat-table\">\r\n <tr class=\"mat-row\" *ngFor=\"let a of model.axes\">\r\n <td class=\"mat-cell\">{{a.title}}</td>\r\n <td class=\"mat-cell\">{{datatype(a.dataType)}}</td>\r\n </tr>\r\n </table>\r\n </div>\r\n <!--<div *ngIf=\"model.indices?.length\">\r\n <h2 class=\"mat-title\">{{'Indices'|translate}}</h2>\r\n <table class=\"mat-table\">\r\n <tr class=\"mat-row\" *ngFor=\"let a of model.indices\">\r\n <td class=\"mat-cell\">{{a.title}}</td>\r\n </tr>\r\n </table>\r\n </div>-->\r\n </div>\r\n </ng-template>\r\n <!-- edit -->\r\n <ng-template bizdocEditContent>\r\n <ng-container *ngIf=\"view; else main\">\r\n <h2 class=\"mat-title\">{{context.title|translate}}</h2>\r\n <div (document:keydown.escape)=\"closeView($event)\" #element class=\"column\">\r\n <ng-container *ngTemplateOutlet=\"view; context: context\"></ng-container>\r\n </div>\r\n <div class=\"row actions\">\r\n <span class=\"divider\"></span>\r\n <button mat-icon-button (click)=\"closeView()\" type=\"button\" [bizdocTooltip]=\"'Back'|translate\"><mat-icon>keyboard_return</mat-icon></button>\r\n </div>\r\n </ng-container>\r\n </ng-template>\r\n</bizdoc-designer-element>\r\n<!---->\r\n<ng-template #main>\r\n <form autocomplete=\"off\" [formGroup]=\"form\" class=\"column\">\r\n <mat-label>{{'SecurityLevel'|translate}}</mat-label>\r\n <mat-radio-group formControlName=\"scope\">\r\n <mat-radio-button color=\"warn\">{{'Global'|translate}}</mat-radio-button>\r\n <br />\r\n <p>{{'SecurityGlobalHelp'|translate}}</p>\r\n <mat-radio-button value=\"Positions\">{{'Positions'|translate}}</mat-radio-button>\r\n <p>{{'SecurityPositionsHelp'|translate}}</p>\r\n <mat-radio-button value=\"Patterns\">{{'Patterns'|translate}}</mat-radio-button>\r\n <p>{{'SecurityPatternsHelp'|translate}}</p>\r\n </mat-radio-group>\r\n <ng-container formGroupName=\"yAxis\">\r\n <mat-form-field fxFlex>\r\n <mat-label>{{'Type'|translate}}</mat-label>\r\n <mat-select formControlName=\"type\">\r\n <mat-option value=\"Currency\">{{'Currency'|translate}}</mat-option>\r\n <mat-option value=\"Number\">{{'Numeric'|translate}}</mat-option>\r\n <mat-option value=\"Count\">{{'Accumulative'|translate}}</mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n </ng-container>\r\n <!--Axes-->\r\n <h2 class=\"mat-title row\">\r\n {{'Axes'|translate}}\r\n <span class=\"divider\"></span>\r\n <button mat-icon-button (click)=\"add(axes, newAxis(), 'Axis', axisform)\" [bizdocTooltip]=\"'Add'|translate\" type=\"button\"><mat-icon>add_circle_outline</mat-icon></button>\r\n </h2>\r\n <table formArrayName=\"axes\" class=\"mat-table\" cdkDropList (cdkDropListDropped)=\"drop($event, axes)\">\r\n <tr class=\"mat-row\" *ngFor=\"let a of axes.controls; index as index\" [formGroup]=\"a\" cdkDrag>\r\n <td class=\"mat-cell\">\r\n <mat-icon cdkDragHandle>drag_indicator</mat-icon>\r\n </td>\r\n <td class=\"mat-cell flex\">\r\n {{a.get('title').value}}\r\n </td>\r\n <td class=\"mat-cell\">\r\n <button mat-icon-button (click)=\"edit(a, 'Axis', axisform)\" [bizdocTooltip]=\"'Edit'|translate\" type=\"button\"><mat-icon>edit</mat-icon></button>\r\n <button mat-icon-button (click)=\"axes.removeAt(index)\" [bizdocTooltip]=\"'Remove'|translate\" type=\"button\"><mat-icon>delete</mat-icon></button>\r\n </td>\r\n </tr>\r\n </table>\r\n <!--Indices-->\r\n <h2 class=\"mat-title row\">\r\n {{'Indices'|translate}}\r\n <span class=\"divider\"></span>\r\n <button mat-icon-button (click)=\"add(indices, newIndex(), 'Index', indexform)\" [bizdocTooltip]=\"'Add'|translate\" type=\"button\"><mat-icon>add_circle_outline</mat-icon></button>\r\n </h2>\r\n <table formArrayName=\"indices\" class=\"mat-table\" cdkDropList (cdkDropListDropped)=\"drop($event, indices)\">\r\n <tr class=\"mat-row\" *ngFor=\"let i of indices.controls; index as index\" [formGroup]=\"i\" cdkDrag>\r\n <td class=\"mat-cell\">\r\n <mat-icon cdkDragHandle>drag_indicator</mat-icon>\r\n </td>\r\n <td class=\"mat-cell flex\">\r\n {{i.get('title').value}}\r\n </td>\r\n <td class=\"mat-cell\">\r\n <button mat-icon-button (click)=\"edit(i, 'Index', indexform)\" [bizdocTooltip]=\"'Edit'|translate\" type=\"button\"><mat-icon>edit</mat-icon></button>\r\n <button mat-icon-button (click)=\"indices.removeAt(index)\" [bizdocTooltip]=\"'Remove'|translate\" type=\"button\"><mat-icon>delete</mat-icon></button>\r\n </td>\r\n </tr>\r\n </table>\r\n <mat-form-field *ngIf=\"indices.controls.length\">\r\n <mat-label>{{'AnomalyNotification'|translate}}</mat-label>\r\n <mat-select formControlName=\"anomaly\">\r\n <mat-option value=\"None\">{{'None'|translate}}</mat-option>\r\n <mat-option value=\"Positions\">{{'Positions'|translate}}</mat-option>\r\n <mat-option value=\"Recipients\">{{'Everyone'|translate}}</mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n <!--Patterns-->\r\n <h2 class=\"mat-title row\">\r\n {{'Patterns'|translate}}\r\n <span class=\"divider\"></span>\r\n <button mat-icon-button (click)=\"add(patterns, newPattern(), 'Pattern', patternform)\" [bizdocTooltip]=\"'Add'|translate\" type=\"button\"><mat-icon>add_circle_outline</mat-icon></button>\r\n </h2>\r\n <table formArrayName=\"indices\" class=\"mat-table\" cdkDropList (cdkDropListDropped)=\"drop($event, patterns)\">\r\n <tr class=\"mat-row\" *ngFor=\"let p of patterns.controls; index as index\" [formGroup]=\"p\" cdkDrag>\r\n <td class=\"mat-cell\">\r\n <mat-icon cdkDragHandle>drag_indicator</mat-icon>\r\n </td>\r\n <td class=\"mat-cell flex\">\r\n {{p.get('title').value}}\r\n </td>\r\n <td class=\"mat-cell\">\r\n <button mat-icon-button (click)=\"edit(p, 'Pattern', patternform)\" [bizdocTooltip]=\"'Edit'|translate\" type=\"button\"><mat-icon>edit</mat-icon></button>\r\n <button mat-icon-button (click)=\"patterns.removeAt(index)\" [bizdocTooltip]=\"'Remove'|translate\" type=\"button\"><mat-icon>delete</mat-icon></button>\r\n </td>\r\n </tr>\r\n </table>\r\n <!--Views-->\r\n <h2 class=\"row mat-title\">\r\n {{'Views'|translate}}\r\n <span class=\"divider\"></span>\r\n <button mat-icon-button (click)=\"add(views, newView(), 'View', viewform)\" [bizdocTooltip]=\"'Add'|translate\" type=\"button\"><mat-icon>add_circle_outline</mat-icon></button>\r\n </h2>\r\n <table formArrayName=\"views\" class=\"mat-table\" cdkDropList (cdkDropListDropped)=\"drop($event, views)\">\r\n <tr class=\"mat-row\" *ngFor=\"let v of views.controls; index as index\" [formGroup]=\"v\" cdkDrag>\r\n <td class=\"mat-cell\">\r\n <mat-icon cdkDragHandle>drag_indicator</mat-icon>\r\n </td>\r\n <td class=\"mat-cell flex\">\r\n {{v.get('title').value}}\r\n </td>\r\n <td class=\"mat-cell\">\r\n <button mat-icon-button (click)=\"edit(v, 'View', viewform)\" [bizdocTooltip]=\"'Edit'|translate\" type=\"button\"><mat-icon>edit</mat-icon></button>\r\n <button mat-icon-button (click)=\"views.removeAt(index)\" [bizdocTooltip]=\"'Remove'|translate\" type=\"button\"><mat-icon>delete</mat-icon></button>\r\n </td>\r\n </tr>\r\n </table>\r\n <mat-form-field>\r\n <mat-label>{{'Schedule'|translate}}</mat-label>\r\n <bizdoc-timespan-input formControlName=\"schedule\"></bizdoc-timespan-input>\r\n <mat-icon matSuffix>timer</mat-icon>\r\n <mat-hint></mat-hint>\r\n </mat-form-field>\r\n </form>\r\n</ng-template>\r\n<!---->\r\n<ng-template #indexform let-form>\r\n <form autocomplete=\"off\" [formGroup]=\"form\" class=\"column\">\r\n <mat-form-field class=\"flex\">\r\n <mat-label>{{'Title'|translate}}</mat-label>\r\n <input matInput formControlName=\"title\" required />\r\n <mat-error *ngIf=\"form.get('title').hasError('required')\" [innerHTML]=\"'RequiredErr'|translate:('Title'|translate)\"></mat-error>\r\n </mat-form-field>\r\n &nbsp;\r\n <mat-form-field class=\"flex\">\r\n <mat-label>{{'Name'|translate}}</mat-label>\r\n <input matInput formControlName=\"name\" required />\r\n <mat-error *ngIf=\"form.get('name').hasError('required')\" [innerHTML]=\"'RequiredErr'|translate:('Name'|translate)\"></mat-error>\r\n </mat-form-field>\r\n </form>\r\n</ng-template>\r\n<!-- pattern-->\r\n<ng-template #patternform let-form>\r\n <form autocomplete=\"off\" [formGroup]=\"form\" class=\"column\">\r\n <mat-form-field class=\"flex\">\r\n <mat-label>{{'Title'|translate}}</mat-label>\r\n <input matInput formControlName=\"title\" required />\r\n <mat-error *ngIf=\"form.get('title').hasError('required')\" [innerHTML]=\"'RequiredErr'|translate:('Title'|translate)\"></mat-error>\r\n </mat-form-field>\r\n <bizdoc-designer-cube-filter [cube]=\"model\" [form]=\"form.get('axes')\"></bizdoc-designer-cube-filter>\r\n <bizdoc-designer-privileges [form]=\"form\"></bizdoc-designer-privileges>\r\n </form>\r\n</ng-template>\r\n<!-- view -->\r\n<ng-template #viewform let-form>\r\n <form autocomplete=\"off\" [formGroup]=\"form\" class=\"column\">\r\n <mat-form-field class=\"flex\">\r\n <mat-label>{{'Title'|translate}}</mat-label>\r\n <input matInput formControlName=\"title\" required />\r\n <mat-error *ngIf=\"form.get('title').hasError('required')\" [innerHTML]=\"'RequiredErr'|translate:('Title'|translate)\"></mat-error>\r\n </mat-form-field>\r\n <mat-form-field>\r\n <mat-label>{{'Type'|translate}}</mat-label>\r\n <mat-select formControlName=\"type\">\r\n <mat-option value=\"Chart\">{{'Chart'|translate}}</mat-option>\r\n <mat-option value=\"Pivot\">{{'Pivot'|translate}}</mat-option>\r\n <mat-option value=\"Grid\">{{'Grid'|translate}}</mat-option>\r\n <mat-option value=\"Spreadsheet\">{{'Spreadsheet'|translate}}</mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n <mat-form-field>\r\n <mat-label>{{'XAxis'|translate}}</mat-label>\r\n <mat-select formControlName=\"xAxis\" required multiple [sortComparator]=\"sortComparator\">\r\n <mat-option *ngFor=\"let a of axes.controls\" [value]=\"a.get('name').value\">{{a.get('title').value || a.get('name').value}}</mat-option>\r\n </mat-select>\r\n <mat-error *ngIf=\"form.get('xAxis').hasError('required')\" [innerHTML]=\"'RequiredErr'|translate:('XAxis'|translate)\"></mat-error>\r\n </mat-form-field>\r\n <mat-form-field>\r\n <mat-label>{{'Series'|translate}}</mat-label>\r\n <mat-select formControlName=\"series\" multiple [sortComparator]=\"sortComparator\">\r\n <ng-container *ngFor=\"let a of axes.controls\">\r\n <mat-option [value]=\"a.get('name').value\" *ngIf=\"form.get('xAxis').value?.indexOf(a.get('name').value)<0\">{{a.get('title').value|| a.get('name').value}}</mat-option>\r\n </ng-container>\r\n </mat-select>\r\n </mat-form-field>\r\n <mat-form-field>\r\n <mat-label>{{'Indices'|translate}}</mat-label>\r\n <mat-select formControlName=\"indices\" multiple>\r\n <ng-container *ngFor=\"let i of indices.controls\">\r\n <mat-option [value]=\"i.get('name').value\">{{i.get('title').value|| i.get('name').value}}</mat-option>\r\n </ng-container>\r\n </mat-select>\r\n </mat-form-field>\r\n <mat-form-field>\r\n <mat-label>{{'ChartType'|translate}}</mat-label>\r\n <mat-select formControlName=\"chartType\">\r\n <ng-container [ngSwitch]=\"form.get('type').value\">\r\n <ng-container *ngSwitchCase=\"'Chart'\">\r\n <ng-container *ngIf=\"accumulative\">\r\n <mat-option value=\"Pie\">{{'Pie'|translate}}</mat-option>\r\n <mat-option value=\"Doughnut\">{{'Doughnut'|translate}}</mat-option>\r\n <mat-option value=\"HalfDoughnut\">{{'HalfDoughnut'|translate}}</mat-option>\r\n <mat-option value=\"Funnel\">{{'Funnel'|translate}}</mat-option>\r\n <mat-option value=\"Pyramid\">{{'Pyramid'|translate}}</mat-option>\r\n </ng-container>\r\n <mat-option value=\"Column\">{{'Column'|translate}}</mat-option>\r\n <mat-option value=\"StackingColumn\">{{'StackingColumn'|translate}}</mat-option>\r\n <mat-option value=\"StackingColumn100\">{{'StackingColumn100'|translate}}</mat-option>\r\n <mat-option value=\"Bar\">{{'Bar'|translate}}</mat-option>\r\n <mat-option value=\"Bubble\">{{'Bubble'|translate}}</mat-option>\r\n <mat-option value=\"StackingBar\">{{'StackingBar'|translate}}</mat-option>\r\n <mat-option value=\"StackingBar100\">{{'StackingBar100'|translate}}</mat-option>\r\n <mat-option value=\"Line\">{{'Line'|translate}}</mat-option>\r\n <mat-option value=\"StackingLine\">{{'StackingLine'|translate}}</mat-option>\r\n <mat-option value=\"StackingLine100\">{{'StackingLine100'|translate}}</mat-option>\r\n <mat-option value=\"Spline\">{{'Spline'|translate}}</mat-option>\r\n <mat-option value=\"SplineArea\">{{'SplineArea'|translate}}</mat-option>\r\n <mat-option value=\"Area\">{{'Area'|translate}}</mat-option>\r\n <mat-option value=\"StackingArea\">{{'StackingArea'|translate}}</mat-option>\r\n <mat-option value=\"StackingArea100\">{{'StackingArea100'|translate}}</mat-option>\r\n <mat-option value=\"Scatter\">{{'Scatter'|translate}}</mat-option>\r\n <mat-option value=\"Polar\">{{'Polar'|translate}}</mat-option>\r\n <mat-option value=\"Radar\">{{'Radar'|translate}}</mat-option>\r\n <mat-option value=\"StepLine\">{{'StepLine'|translate}}</mat-option>\r\n <mat-option value=\"StepArea\">{{'StepArea'|translate}}</mat-option>\r\n <mat-option value=\"StackingStepArea\">{{'StackingStepArea'|translate}}</mat-option>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'Pivot'\">\r\n <mat-option>{{'None'|translate}}</mat-option>\r\n <mat-option value=\"Column\">{{'Column'|translate}}</mat-option>\r\n <mat-option value=\"Bar\">{{'Bar'|translate}}</mat-option>\r\n <mat-option value=\"Bubble\">{{'Bubble'|translate}}</mat-option>\r\n <mat-option value=\"StackingBar\">{{'StackingBar'|translate}}</mat-option>\r\n <mat-option value=\"StackingBar100\">{{'StackingBar100'|translate}}</mat-option>\r\n <mat-option value=\"Line\">{{'Line'|translate}}</mat-option>\r\n <mat-option value=\"Spline\">{{'Spline'|translate}}</mat-option>\r\n <mat-option value=\"SplineArea\">{{'SplineArea'|translate}}</mat-option>\r\n <mat-option value=\"Area\">{{'Area'|translate}}</mat-option>\r\n <mat-option value=\"StackingArea\">{{'StackingArea'|translate}}</mat-option>\r\n <mat-option value=\"StackingArea100\">{{'StackingArea100'|translate}}</mat-option>\r\n <mat-option value=\"StackingColumn\">{{'StackingColumn'|translate}}</mat-option>\r\n <mat-option value=\"StackingColumn100\">{{'StackingColumn100'|translate}}</mat-option>\r\n <mat-option value=\"Scatter\">{{'Scatter'|translate}}</mat-option>\r\n <mat-option value=\"Polar\">{{'Polar'|translate}}</mat-option>\r\n <mat-option value=\"Radar\">{{'Radar'|translate}}</mat-option>\r\n <mat-option value=\"StepLine\">{{'StepLine'|translate}}</mat-option>\r\n <mat-option value=\"StepArea\">{{'StepArea'|translate}}</mat-option>\r\n <mat-option value=\"StackingStepArea\">{{'StackingStepArea'|translate}}</mat-option>\r\n <mat-option value=\"StackingLine\">{{'StackingLine'|translate}}</mat-option>\r\n <mat-option value=\"StackingLine100\">{{'StackingLine100'|translate}}</mat-option>\r\n </ng-container>\r\n </ng-container>\r\n </mat-select>\r\n </mat-form-field>\r\n <mat-form-field>\r\n <mat-label>{{'IndicesChartType'|translate}}</mat-label>\r\n <mat-select formControlName=\"indicesChartType\">\r\n <ng-container [ngSwitch]=\"form.get('type').value\">\r\n <ng-container *ngSwitchCase=\"'Chart'\">\r\n <mat-option value=\"Column\">{{'Column'|translate}}</mat-option>\r\n <mat-option value=\"StackingColumn\">{{'StackingColumn'|translate}}</mat-option>\r\n <mat-option value=\"StackingColumn100\">{{'StackingColumn100'|translate}}</mat-option>\r\n <mat-option value=\"Bar\">{{'Bar'|translate}}</mat-option>\r\n <mat-option value=\"Bubble\">{{'Bubble'|translate}}</mat-option>\r\n <mat-option value=\"StackingBar\">{{'StackingBar'|translate}}</mat-option>\r\n <mat-option value=\"StackingBar100\">{{'StackingBar100'|translate}}</mat-option>\r\n <mat-option value=\"Line\">{{'Line'|translate}}</mat-option>\r\n <mat-option value=\"StackingLine\">{{'StackingLine'|translate}}</mat-option>\r\n <mat-option value=\"StackingLine100\">{{'StackingLine100'|translate}}</mat-option>\r\n <mat-option value=\"Spline\">{{'Spline'|translate}}</mat-option>\r\n <mat-option value=\"SplineArea\">{{'SplineArea'|translate}}</mat-option>\r\n <mat-option value=\"Area\">{{'Area'|translate}}</mat-option>\r\n <mat-option value=\"StackingArea\">{{'StackingArea'|translate}}</mat-option>\r\n <mat-option value=\"StackingArea100\">{{'StackingArea100'|translate}}</mat-option>\r\n <mat-option value=\"Scatter\">{{'Scatter'|translate}}</mat-option>\r\n <mat-option value=\"Polar\">{{'Polar'|translate}}</mat-option>\r\n <mat-option value=\"Radar\">{{'Radar'|translate}}</mat-option>\r\n <mat-option value=\"StepLine\">{{'StepLine'|translate}}</mat-option>\r\n <mat-option value=\"StepArea\">{{'StepArea'|translate}}</mat-option>\r\n <mat-option value=\"StackingStepArea\">{{'StackingStepArea'|translate}}</mat-option>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'Pivot'\">\r\n <mat-option>{{'None'|translate}}</mat-option>\r\n <mat-option value=\"Column\">{{'Column'|translate}}</mat-option>\r\n <mat-option value=\"Bar\">{{'Bar'|translate}}</mat-option>\r\n <mat-option value=\"Bubble\">{{'Bubble'|translate}}</mat-option>\r\n <mat-option value=\"StackingBar\">{{'StackingBar'|translate}}</mat-option>\r\n <mat-option value=\"StackingBar100\">{{'StackingBar100'|translate}}</mat-option>\r\n <mat-option value=\"Line\">{{'Line'|translate}}</mat-option>\r\n <mat-option value=\"Spline\">{{'Spline'|translate}}</mat-option>\r\n <mat-option value=\"SplineArea\">{{'SplineArea'|translate}}</mat-option>\r\n <mat-option value=\"Area\">{{'Area'|translate}}</mat-option>\r\n <mat-option value=\"StackingArea\">{{'StackingArea'|translate}}</mat-option>\r\n <mat-option value=\"StackingArea100\">{{'StackingArea100'|translate}}</mat-option>\r\n <mat-option value=\"StackingColumn\">{{'StackingColumn'|translate}}</mat-option>\r\n <mat-option value=\"StackingColumn100\">{{'StackingColumn100'|translate}}</mat-option>\r\n <mat-option value=\"Scatter\">{{'Scatter'|translate}}</mat-option>\r\n <mat-option value=\"Polar\">{{'Polar'|translate}}</mat-option>\r\n <mat-option value=\"Radar\">{{'Radar'|translate}}</mat-option>\r\n <mat-option value=\"StepLine\">{{'StepLine'|translate}}</mat-option>\r\n <mat-option value=\"StepArea\">{{'StepArea'|translate}}</mat-option>\r\n <mat-option value=\"StackingStepArea\">{{'StackingStepArea'|translate}}</mat-option>\r\n <mat-option value=\"StackingLine\">{{'StackingLine'|translate}}</mat-option>\r\n <mat-option value=\"StackingLine100\">{{'StackingLine100'|translate}}</mat-option>\r\n </ng-container>\r\n </ng-container>\r\n </mat-select>\r\n </mat-form-field>\r\n <bizdoc-designer-cube-filter *ngIf=\"cube\" [cube]=\"cube\" [form]=\"form.get('filters')\"></bizdoc-designer-cube-filter>\r\n </form>\r\n</ng-template>\r\n<!-- Axis -->\r\n<ng-template #axisform let-form>\r\n <form autocomplete=\"off\" [formGroup]=\"form\" class=\"column\">\r\n <div class=\"row\">\r\n <mat-form-field class=\"flex\">\r\n <mat-label>{{'Title'|translate}}</mat-label>\r\n <input matInput formControlName=\"title\" required />\r\n <mat-error *ngIf=\"form.get('title').hasError('required')\" [innerHTML]=\"'RequiredErr'|translate:('Title'|translate)\"></mat-error>\r\n </mat-form-field>\r\n &nbsp;\r\n <mat-form-field class=\"flex\">\r\n <mat-label>{{'Name'|translate}}</mat-label>\r\n <input matInput formControlName=\"name\" required />\r\n <mat-error *ngIf=\"form.get('name').hasError('required')\" [innerHTML]=\"'RequiredErr'|translate:('Name'|translate)\"></mat-error>\r\n </mat-form-field>\r\n </div>\r\n <mat-form-field>\r\n <mat-label>{{'DataType'|translate}}</mat-label>\r\n <mat-select formControlName=\"dataType\" required>\r\n <ng-container *ngFor=\"let t of types\">\r\n <mat-option *ngIf=\"t.name\" [value]=\"t.name\">\r\n <span *ngIf=\"t.family\">{{t.family}} -&nbsp;</span>\r\n {{t.title}}\r\n </mat-option>\r\n </ng-container>\r\n </mat-select>\r\n <mat-error *ngIf=\"form.get('title').hasError('required')\" [innerHTML]=\"'RequiredErr'|translate:('DataType'|translate)\"></mat-error>\r\n </mat-form-field>\r\n <div><mat-checkbox formControlName=\"combination\">{{'Combination'}}</mat-checkbox></div>\r\n <div><mat-checkbox formControlName=\"sensitive\">{{'Sensitive'}}</mat-checkbox></div>\r\n <mat-form-field>\r\n <mat-label>{{'SelectionMode'|translate}}</mat-label>\r\n <mat-select formControlName=\"selectionMode\">\r\n <mat-option value=\"None\">{{'None'|translate}}</mat-option>\r\n <mat-option>{{'Single'|translate}}</mat-option>\r\n <mat-option value=\"Multiple\">{{'Multiple'|translate}}</mat-option>\r\n <mat-option value=\"Search\">{{'Search'|translate}}</mat-option>\r\n <mat-option value=\"Pattern\">{{'Pattern'|translate}}</mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n <mat-form-field>\r\n <mat-label>{{'DescendentOf'|translate}}</mat-label>\r\n <mat-select formControlName=\"descendentOf\">\r\n <ng-container *ngFor=\"let a of axes.controls\">\r\n <mat-option [value]=\"a.get('name').value\" *ngIf=\"a!=form\">{{a.get('title').value}}</mat-option>\r\n </ng-container>\r\n </mat-select>\r\n </mat-form-field>\r\n <div><mat-checkbox formControlName=\"indexable\">{{'Indexable'}}</mat-checkbox></div>\r\n </form>\r\n</ng-template>\r\n", styles: [":host ::ng-deep form{min-width:350px}:host ::ng-deep .mat-radio-group p{margin-inline-start:8px}.mat-table{width:100%}.mat-table .mat-cell:last-child{width:80px}.flex{flex:1}table tr td:first-child{width:26px}dl{width:100%;overflow:hidden;padding:0;margin:0}dt{float:left;width:35%;padding:0;margin:0;clear:both}dd{float:left;width:65%;padding:0;margin:0}\n"], dependencies: [{ kind: "directive", type: i1$4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$4.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1$4.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i1$4.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { 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: i1$3.FormGroupName, selector: "[formGroupName]", inputs: ["formGroupName"] }, { kind: "directive", type: i1$3.FormArrayName, selector: "[formArrayName]", inputs: ["formArrayName"] }, { kind: "directive", type: i5$1.DefaultLayoutAlignDirective, selector: " [fxLayoutAlign], [fxLayoutAlign.xs], [fxLayoutAlign.sm], [fxLayoutAlign.md], [fxLayoutAlign.lg], [fxLayoutAlign.xl], [fxLayoutAlign.lt-sm], [fxLayoutAlign.lt-md], [fxLayoutAlign.lt-lg], [fxLayoutAlign.lt-xl], [fxLayoutAlign.gt-xs], [fxLayoutAlign.gt-sm], [fxLayoutAlign.gt-md], [fxLayoutAlign.gt-lg]", inputs: ["fxLayoutAlign", "fxLayoutAlign.xs", "fxLayoutAlign.sm", "fxLayoutAlign.md", "fxLayoutAlign.lg", "fxLayoutAlign.xl", "fxLayoutAlign.lt-sm", "fxLayoutAlign.lt-md", "fxLayoutAlign.lt-lg", "fxLayoutAlign.lt-xl", "fxLayoutAlign.gt-xs", "fxLayoutAlign.gt-sm", "fxLayoutAlign.gt-md", "fxLayoutAlign.gt-lg"] }, { kind: "directive", type: i5$1.DefaultFlexDirective, selector: " [fxFlex], [fxFlex.xs], [fxFlex.sm], [fxFlex.md], [fxFlex.lg], [fxFlex.xl], [fxFlex.lt-sm], [fxFlex.lt-md], [fxFlex.lt-lg], [fxFlex.lt-xl], [fxFlex.gt-xs], [fxFlex.gt-sm], [fxFlex.gt-md], [fxFlex.gt-lg]", inputs: ["fxFlex", "fxFlex.xs", "fxFlex.sm", "fxFlex.md", "fxFlex.lg", "fxFlex.xl", "fxFlex.lt-sm", "fxFlex.lt-md", "fxFlex.lt-lg", "fxFlex.lt-xl", "fxFlex.gt-xs", "fxFlex.gt-sm", "fxFlex.gt-md", "fxFlex.gt-lg"] }, { kind: "directive", type: i3.CdkDropList, selector: "[cdkDropList], cdk-drop-list", inputs: ["cdkDropListConnectedTo", "cdkDropListData", "cdkDropListOrientation", "id", "cdkDropListLockAxis", "cdkDropListDisabled", "cdkDropListSortingDisabled", "cdkDropListEnterPredicate", "cdkDropListSortPredicate", "cdkDropListAutoScrollDisabled", "cdkDropListAutoScrollStep"], outputs: ["cdkDropListDropped", "cdkDropListEntered", "cdkDropListExited", "cdkDropListSorted"], exportAs: ["cdkDropList"] }, { kind: "directive", type: i3.CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { kind: "directive", type: i3.CdkDragHandle, selector: "[cdkDragHandle]", inputs: ["cdkDragHandleDisabled"] }, { kind: "directive", type: i4$6.MatRadioGroup, selector: "mat-radio-group", exportAs: ["matRadioGroup"] }, { kind: "component", type: i4$6.MatRadioButton, selector: "mat-radio-button", inputs: ["disableRipple", "tabIndex"], exportAs: ["matRadioButton"] }, { kind: "component", type: i8.MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "diameter", "strokeWidth", "mode", "value"], exportAs: ["matProgressSpinner"] }, { kind: "component", type: i3$1.MatOption, selector: "mat-option", exportAs: ["matOption"] }, { kind: "directive", type: i4.MatError, selector: "mat-error", inputs: ["id"] }, { kind: "component", type: i4.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i4.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "directive", type: i4.MatLabel, selector: "mat-label" }, { kind: "directive", type: i4.MatSuffix, selector: "[matSuffix]" }, { kind: "component", type: i5.MatSelect, selector: "mat-select", inputs: ["disabled", "disableRipple", "tabIndex"], exportAs: ["matSelect"] }, { kind: "component", type: i9.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i9$2.MatCheckbox, selector: "mat-checkbox", inputs: ["disableRipple", "color", "tabIndex"], exportAs: ["matCheckbox"] }, { kind: "directive", type: i9$1.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i10.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: TooltipDirective, selector: "[bizdocTooltip]", inputs: ["bizdocTooltip", "bizdocTooltipTemplate", "bizdocTooltipContext", "bizdocTooltipPosition", "bizdocTooltipDuration", "bizdocTooltipDisabled"] }, { kind: "component", type: TimespanInput, selector: "bizdoc-timespan-input", inputs: ["placeholder", "required", "disabled", "value"] }, { kind: "component", type: DesignerPrivilegesComponent, selector: "bizdoc-designer-privileges", inputs: ["form"] }, { kind: "directive", type: EditContentDirective, selector: "[bizdocEditContent]" }, { kind: "directive", type: WidgetContentDirective, selector: "[bizdocContent]" }, { kind: "component", type: DesignerCubeFilterComponent, selector: "bizdoc-designer-cube-filter", inputs: ["cube", "form"] }, { kind: "component", type: DesignerItemComponent, selector: "bizdoc-designer-element", inputs: ["privileges", "icon", "form", "state"], outputs: ["continue", "save"] }, { kind: "pipe", type: TimeAgoPipe, name: "amTimeAgo" }, { kind: "pipe", type: TranslatePipe, name: "translate" }] });
33025
+ CubeDesignComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.5", type: CubeDesignComponent, selector: "ng-component", viewQueries: [{ propertyName: "element", first: true, predicate: ["element"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<bizdoc-designer-element [form]=\"form\" [privileges]=\"true\" (continue)=\"complete()\" [state]=\"state\">\r\n <!-- widget -->\r\n <ng-template bizdocContent>\r\n <dl *ngIf=\"jobInfo\">\r\n <ng-container *ngIf=\"jobInfo.lastExecution\">\r\n <dt>{{'LastExecution'|translate}}</dt>\r\n <dd>{{jobInfo.lastExecution|amTimeAgo}}</dd>\r\n </ng-container>\r\n <ng-container *ngIf=\"jobInfo.nextExecution\">\r\n <dt>{{'NextExecution'|translate}}</dt>\r\n <dd>{{jobInfo.nextExecution|amTimeAgo}}</dd>\r\n </ng-container>\r\n <ng-container *ngIf=\"jobInfo.lastJobState\">\r\n <dt>{{'LastJobState'|translate}}</dt>\r\n <dd>\r\n <mat-icon *ngIf=\"jobInfo.error\" [bizdocTooltip]=\"jobInfo.error\">report</mat-icon>\r\n <span class=\"job-state\">{{jobInfo.lastJobState| translate}}</span>\r\n </dd>\r\n </ng-container>\r\n </dl>\r\n <div class=\"row\" fxLayoutAlign=\"start center\">\r\n <button mat-stroked-button (click)=\"sync()\" [disabled]=\"model.draft || syncing\">\r\n <span> {{'Synchronize'|translate}}</span>\r\n </button>\r\n &nbsp;\r\n <mat-spinner *ngIf=\"syncing\" diameter=\"22\"></mat-spinner>\r\n </div>\r\n <div class=\"row\">\r\n <div *ngIf=\"model.axes?.length\">\r\n <h2 class=\"mat-title\">{{'Axes'|translate}}</h2>\r\n <table class=\"mat-table\">\r\n <tr class=\"mat-row\" *ngFor=\"let a of model.axes\">\r\n <td class=\"mat-cell\">{{a.title}}</td>\r\n <td class=\"mat-cell\">{{datatype(a.dataType)}}</td>\r\n </tr>\r\n </table>\r\n </div>\r\n <!--<div *ngIf=\"model.indices?.length\">\r\n <h2 class=\"mat-title\">{{'Indices'|translate}}</h2>\r\n <table class=\"mat-table\">\r\n <tr class=\"mat-row\" *ngFor=\"let a of model.indices\">\r\n <td class=\"mat-cell\">{{a.title}}</td>\r\n </tr>\r\n </table>\r\n </div>-->\r\n </div>\r\n </ng-template>\r\n <!-- edit -->\r\n <ng-template bizdocEditContent>\r\n <ng-container *ngIf=\"view; else main\">\r\n <h2 class=\"mat-title\">{{context.title|translate}}</h2>\r\n <div (document:keydown.escape)=\"closeView($event)\" #element class=\"column\">\r\n <ng-container *ngTemplateOutlet=\"view; context: context\"></ng-container>\r\n </div>\r\n <div class=\"row actions\">\r\n <span class=\"divider\"></span>\r\n <button mat-icon-button (click)=\"closeView()\" type=\"button\" [bizdocTooltip]=\"'Back'|translate\"><mat-icon>keyboard_return</mat-icon></button>\r\n </div>\r\n </ng-container>\r\n </ng-template>\r\n</bizdoc-designer-element>\r\n<!---->\r\n<ng-template #main>\r\n <form autocomplete=\"off\" [formGroup]=\"form\" class=\"column\">\r\n <mat-label>{{'SecurityLevel'|translate}}</mat-label>\r\n <mat-radio-group formControlName=\"scope\">\r\n <mat-radio-button color=\"warn\">{{'Global'|translate}}</mat-radio-button>\r\n <br />\r\n <p>{{'SecurityGlobalHelp'|translate}}</p>\r\n <mat-radio-button value=\"Positions\">{{'Positions'|translate}}</mat-radio-button>\r\n <p>{{'SecurityPositionsHelp'|translate}}</p>\r\n <mat-radio-button value=\"Patterns\">{{'Patterns'|translate}}</mat-radio-button>\r\n <p>{{'SecurityPatternsHelp'|translate}}</p>\r\n </mat-radio-group>\r\n <ng-container formGroupName=\"yAxis\">\r\n <mat-form-field fxFlex>\r\n <mat-label>{{'Type'|translate}}</mat-label>\r\n <mat-select formControlName=\"type\">\r\n <mat-option value=\"Currency\">{{'Currency'|translate}}</mat-option>\r\n <mat-option value=\"Number\">{{'Numeric'|translate}}</mat-option>\r\n <mat-option value=\"Count\">{{'Accumulative'|translate}}</mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n </ng-container>\r\n <!--Axes-->\r\n <h2 class=\"mat-title row\">\r\n {{'Axes'|translate}}\r\n <span class=\"divider\"></span>\r\n <button mat-icon-button (click)=\"add(axes, newAxis(), 'Axis', axisform)\" [bizdocTooltip]=\"'Add'|translate\" type=\"button\"><mat-icon>add_circle_outline</mat-icon></button>\r\n </h2>\r\n <table formArrayName=\"axes\" class=\"mat-table\" cdkDropList (cdkDropListDropped)=\"drop($event, axes)\">\r\n <tr class=\"mat-row\" *ngFor=\"let a of axes.controls; index as index\" [formGroup]=\"a\" cdkDrag>\r\n <td class=\"mat-cell\">\r\n <mat-icon cdkDragHandle>drag_indicator</mat-icon>\r\n </td>\r\n <td class=\"mat-cell flex\">\r\n {{a.get('title').value}}\r\n </td>\r\n <td class=\"mat-cell\">\r\n <button mat-icon-button (click)=\"edit(a, 'Axis', axisform)\" [bizdocTooltip]=\"'Edit'|translate\" type=\"button\"><mat-icon>edit</mat-icon></button>\r\n <button mat-icon-button (click)=\"axes.removeAt(index)\" [bizdocTooltip]=\"'Remove'|translate\" type=\"button\"><mat-icon>delete</mat-icon></button>\r\n </td>\r\n </tr>\r\n </table>\r\n <!--Indices-->\r\n <h2 class=\"mat-title row\">\r\n {{'Indices'|translate}}\r\n <span class=\"divider\"></span>\r\n <button mat-icon-button (click)=\"add(indices, newIndex(), 'Index', indexform)\" [bizdocTooltip]=\"'Add'|translate\" type=\"button\"><mat-icon>add_circle_outline</mat-icon></button>\r\n </h2>\r\n <table formArrayName=\"indices\" class=\"mat-table\" cdkDropList (cdkDropListDropped)=\"drop($event, indices)\">\r\n <tr class=\"mat-row\" *ngFor=\"let i of indices.controls; index as index\" [formGroup]=\"i\" cdkDrag>\r\n <td class=\"mat-cell\">\r\n <mat-icon cdkDragHandle>drag_indicator</mat-icon>\r\n </td>\r\n <td class=\"mat-cell flex\">\r\n {{i.get('title').value}}\r\n </td>\r\n <td class=\"mat-cell\">\r\n <button mat-icon-button (click)=\"edit(i, 'Index', indexform)\" [bizdocTooltip]=\"'Edit'|translate\" type=\"button\"><mat-icon>edit</mat-icon></button>\r\n <button mat-icon-button (click)=\"indices.removeAt(index)\" [bizdocTooltip]=\"'Remove'|translate\" type=\"button\"><mat-icon>delete</mat-icon></button>\r\n </td>\r\n </tr>\r\n </table>\r\n <mat-form-field *ngIf=\"indices.controls.length\">\r\n <mat-label>{{'AnomalyNotification'|translate}}</mat-label>\r\n <mat-select formControlName=\"anomaly\">\r\n <mat-option value=\"None\">{{'None'|translate}}</mat-option>\r\n <mat-option value=\"Positions\">{{'Positions'|translate}}</mat-option>\r\n <mat-option value=\"Recipients\">{{'Everyone'|translate}}</mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n <!--Patterns-->\r\n <h2 class=\"mat-title row\">\r\n {{'Patterns'|translate}}\r\n <span class=\"divider\"></span>\r\n <button mat-icon-button (click)=\"add(patterns, newPattern(), 'Pattern', patternform)\" [bizdocTooltip]=\"'Add'|translate\" type=\"button\"><mat-icon>add_circle_outline</mat-icon></button>\r\n </h2>\r\n <table formArrayName=\"indices\" class=\"mat-table\" cdkDropList (cdkDropListDropped)=\"drop($event, patterns)\">\r\n <tr class=\"mat-row\" *ngFor=\"let p of patterns.controls; index as index\" [formGroup]=\"p\" cdkDrag>\r\n <td class=\"mat-cell\">\r\n <mat-icon cdkDragHandle>drag_indicator</mat-icon>\r\n </td>\r\n <td class=\"mat-cell flex\">\r\n {{p.get('title').value}}\r\n </td>\r\n <td class=\"mat-cell\">\r\n <button mat-icon-button (click)=\"edit(p, 'Pattern', patternform)\" [bizdocTooltip]=\"'Edit'|translate\" type=\"button\"><mat-icon>edit</mat-icon></button>\r\n <button mat-icon-button (click)=\"patterns.removeAt(index)\" [bizdocTooltip]=\"'Remove'|translate\" type=\"button\"><mat-icon>delete</mat-icon></button>\r\n </td>\r\n </tr>\r\n </table>\r\n <!--Views-->\r\n <h2 class=\"row mat-title\">\r\n {{'Views'|translate}}\r\n <span class=\"divider\"></span>\r\n <button mat-icon-button (click)=\"add(views, newView(), 'View', viewform)\" [bizdocTooltip]=\"'Add'|translate\" type=\"button\"><mat-icon>add_circle_outline</mat-icon></button>\r\n </h2>\r\n <table formArrayName=\"views\" class=\"mat-table\" cdkDropList (cdkDropListDropped)=\"drop($event, views)\">\r\n <tr class=\"mat-row\" *ngFor=\"let v of views.controls; index as index\" [formGroup]=\"v\" cdkDrag>\r\n <td class=\"mat-cell\">\r\n <mat-icon cdkDragHandle>drag_indicator</mat-icon>\r\n </td>\r\n <td class=\"mat-cell flex\">\r\n {{v.get('title').value}}\r\n </td>\r\n <td class=\"mat-cell\">\r\n <button mat-icon-button (click)=\"edit(v, 'View', viewform)\" [bizdocTooltip]=\"'Edit'|translate\" type=\"button\"><mat-icon>edit</mat-icon></button>\r\n <button mat-icon-button (click)=\"views.removeAt(index)\" [bizdocTooltip]=\"'Remove'|translate\" type=\"button\"><mat-icon>delete</mat-icon></button>\r\n </td>\r\n </tr>\r\n </table>\r\n <mat-form-field>\r\n <mat-label>{{'Schedule'|translate}}</mat-label>\r\n <bizdoc-timespan-input formControlName=\"schedule\"></bizdoc-timespan-input>\r\n <mat-icon matSuffix>timer</mat-icon>\r\n <mat-hint></mat-hint>\r\n </mat-form-field>\r\n </form>\r\n</ng-template>\r\n<!---->\r\n<ng-template #indexform let-form>\r\n <form autocomplete=\"off\" [formGroup]=\"form\" class=\"column\">\r\n <mat-form-field class=\"flex\">\r\n <mat-label>{{'Title'|translate}}</mat-label>\r\n <input matInput formControlName=\"title\" required />\r\n <mat-error *ngIf=\"form.get('title').hasError('required')\" [innerHTML]=\"'RequiredErr'|translate:('Title'|translate)\"></mat-error>\r\n </mat-form-field>\r\n &nbsp;\r\n <mat-form-field class=\"flex\">\r\n <mat-label>{{'Name'|translate}}</mat-label>\r\n <input matInput formControlName=\"name\" required />\r\n <mat-error *ngIf=\"form.get('name').hasError('required')\" [innerHTML]=\"'RequiredErr'|translate:('Name'|translate)\"></mat-error>\r\n </mat-form-field>\r\n </form>\r\n</ng-template>\r\n<!-- pattern-->\r\n<ng-template #patternform let-form>\r\n <form autocomplete=\"off\" [formGroup]=\"form\" class=\"column\">\r\n <mat-form-field class=\"flex\">\r\n <mat-label>{{'Title'|translate}}</mat-label>\r\n <input matInput formControlName=\"title\" required />\r\n <mat-error *ngIf=\"form.get('title').hasError('required')\" [innerHTML]=\"'RequiredErr'|translate:('Title'|translate)\"></mat-error>\r\n </mat-form-field>\r\n <bizdoc-designer-cube-filter [cube]=\"model\" [form]=\"form.get('axes')\"></bizdoc-designer-cube-filter>\r\n <bizdoc-designer-privileges [form]=\"form\"></bizdoc-designer-privileges>\r\n </form>\r\n</ng-template>\r\n<!-- view -->\r\n<ng-template #viewform let-form>\r\n <form autocomplete=\"off\" [formGroup]=\"form\" class=\"column\">\r\n <mat-form-field class=\"flex\">\r\n <mat-label>{{'Title'|translate}}</mat-label>\r\n <input matInput formControlName=\"title\" required />\r\n <mat-error *ngIf=\"form.get('title').hasError('required')\" [innerHTML]=\"'RequiredErr'|translate:('Title'|translate)\"></mat-error>\r\n </mat-form-field>\r\n <mat-form-field>\r\n <mat-label>{{'Type'|translate}}</mat-label>\r\n <mat-select formControlName=\"type\">\r\n <mat-option value=\"Chart\">{{'Chart'|translate}}</mat-option>\r\n <mat-option value=\"Pivot\">{{'Pivot'|translate}}</mat-option>\r\n <mat-option value=\"Grid\">{{'Grid'|translate}}</mat-option>\r\n <mat-option value=\"Spreadsheet\">{{'Spreadsheet'|translate}}</mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n <mat-form-field>\r\n <mat-label>{{'XAxis'|translate}}</mat-label>\r\n <mat-select formControlName=\"xAxis\" required multiple [sortComparator]=\"sortComparator\">\r\n <mat-option *ngFor=\"let a of axes.controls\" [value]=\"a.get('name').value\">{{a.get('title').value || a.get('name').value}}</mat-option>\r\n </mat-select>\r\n <mat-error *ngIf=\"form.get('xAxis').hasError('required')\" [innerHTML]=\"'RequiredErr'|translate:('XAxis'|translate)\"></mat-error>\r\n </mat-form-field>\r\n <mat-form-field>\r\n <mat-label>{{'Series'|translate}}</mat-label>\r\n <mat-select formControlName=\"series\" multiple [sortComparator]=\"sortComparator\">\r\n <ng-container *ngFor=\"let a of axes.controls\">\r\n <mat-option [value]=\"a.get('name').value\" *ngIf=\"form.get('xAxis').value?.indexOf(a.get('name').value)<0\">{{a.get('title').value|| a.get('name').value}}</mat-option>\r\n </ng-container>\r\n </mat-select>\r\n </mat-form-field>\r\n <mat-form-field>\r\n <mat-label>{{'Indices'|translate}}</mat-label>\r\n <mat-select formControlName=\"indices\" multiple>\r\n <ng-container *ngFor=\"let i of indices.controls\">\r\n <mat-option [value]=\"i.get('name').value\">{{i.get('title').value|| i.get('name').value}}</mat-option>\r\n </ng-container>\r\n </mat-select>\r\n </mat-form-field>\r\n <mat-form-field>\r\n <mat-label>{{'ChartType'|translate}}</mat-label>\r\n <mat-select formControlName=\"chartType\">\r\n <ng-container [ngSwitch]=\"form.get('type').value\">\r\n <ng-container *ngSwitchCase=\"'Chart'\">\r\n <ng-container *ngIf=\"accumulative\">\r\n <mat-option value=\"Pie\">{{'Pie'|translate}}</mat-option>\r\n <mat-option value=\"Doughnut\">{{'Doughnut'|translate}}</mat-option>\r\n <mat-option value=\"HalfDoughnut\">{{'HalfDoughnut'|translate}}</mat-option>\r\n <mat-option value=\"Funnel\">{{'Funnel'|translate}}</mat-option>\r\n <mat-option value=\"Pyramid\">{{'Pyramid'|translate}}</mat-option>\r\n </ng-container>\r\n <mat-option value=\"Column\">{{'Column'|translate}}</mat-option>\r\n <mat-option value=\"StackingColumn\">{{'StackingColumn'|translate}}</mat-option>\r\n <mat-option value=\"StackingColumn100\">{{'StackingColumn100'|translate}}</mat-option>\r\n <mat-option value=\"Bar\">{{'Bar'|translate}}</mat-option>\r\n <mat-option value=\"Bubble\">{{'Bubble'|translate}}</mat-option>\r\n <mat-option value=\"StackingBar\">{{'StackingBar'|translate}}</mat-option>\r\n <mat-option value=\"StackingBar100\">{{'StackingBar100'|translate}}</mat-option>\r\n <mat-option value=\"Line\">{{'Line'|translate}}</mat-option>\r\n <mat-option value=\"StackingLine\">{{'StackingLine'|translate}}</mat-option>\r\n <mat-option value=\"StackingLine100\">{{'StackingLine100'|translate}}</mat-option>\r\n <mat-option value=\"Spline\">{{'Spline'|translate}}</mat-option>\r\n <mat-option value=\"SplineArea\">{{'SplineArea'|translate}}</mat-option>\r\n <mat-option value=\"Area\">{{'Area'|translate}}</mat-option>\r\n <mat-option value=\"StackingArea\">{{'StackingArea'|translate}}</mat-option>\r\n <mat-option value=\"StackingArea100\">{{'StackingArea100'|translate}}</mat-option>\r\n <mat-option value=\"Scatter\">{{'Scatter'|translate}}</mat-option>\r\n <mat-option value=\"Polar\">{{'Polar'|translate}}</mat-option>\r\n <mat-option value=\"Radar\">{{'Radar'|translate}}</mat-option>\r\n <mat-option value=\"StepLine\">{{'StepLine'|translate}}</mat-option>\r\n <mat-option value=\"StepArea\">{{'StepArea'|translate}}</mat-option>\r\n <mat-option value=\"StackingStepArea\">{{'StackingStepArea'|translate}}</mat-option>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'Pivot'\">\r\n <mat-option>{{'None'|translate}}</mat-option>\r\n <mat-option value=\"Column\">{{'Column'|translate}}</mat-option>\r\n <mat-option value=\"Bar\">{{'Bar'|translate}}</mat-option>\r\n <mat-option value=\"Bubble\">{{'Bubble'|translate}}</mat-option>\r\n <mat-option value=\"StackingBar\">{{'StackingBar'|translate}}</mat-option>\r\n <mat-option value=\"StackingBar100\">{{'StackingBar100'|translate}}</mat-option>\r\n <mat-option value=\"Line\">{{'Line'|translate}}</mat-option>\r\n <mat-option value=\"Spline\">{{'Spline'|translate}}</mat-option>\r\n <mat-option value=\"SplineArea\">{{'SplineArea'|translate}}</mat-option>\r\n <mat-option value=\"Area\">{{'Area'|translate}}</mat-option>\r\n <mat-option value=\"StackingArea\">{{'StackingArea'|translate}}</mat-option>\r\n <mat-option value=\"StackingArea100\">{{'StackingArea100'|translate}}</mat-option>\r\n <mat-option value=\"StackingColumn\">{{'StackingColumn'|translate}}</mat-option>\r\n <mat-option value=\"StackingColumn100\">{{'StackingColumn100'|translate}}</mat-option>\r\n <mat-option value=\"Scatter\">{{'Scatter'|translate}}</mat-option>\r\n <mat-option value=\"Polar\">{{'Polar'|translate}}</mat-option>\r\n <mat-option value=\"Radar\">{{'Radar'|translate}}</mat-option>\r\n <mat-option value=\"StepLine\">{{'StepLine'|translate}}</mat-option>\r\n <mat-option value=\"StepArea\">{{'StepArea'|translate}}</mat-option>\r\n <mat-option value=\"StackingStepArea\">{{'StackingStepArea'|translate}}</mat-option>\r\n <mat-option value=\"StackingLine\">{{'StackingLine'|translate}}</mat-option>\r\n <mat-option value=\"StackingLine100\">{{'StackingLine100'|translate}}</mat-option>\r\n </ng-container>\r\n </ng-container>\r\n </mat-select>\r\n </mat-form-field>\r\n <mat-form-field>\r\n <mat-label>{{'IndicesChartType'|translate}}</mat-label>\r\n <mat-select formControlName=\"indicesChartType\">\r\n <ng-container [ngSwitch]=\"form.get('type').value\">\r\n <ng-container *ngSwitchCase=\"'Chart'\">\r\n <mat-option value=\"Column\">{{'Column'|translate}}</mat-option>\r\n <mat-option value=\"StackingColumn\">{{'StackingColumn'|translate}}</mat-option>\r\n <mat-option value=\"StackingColumn100\">{{'StackingColumn100'|translate}}</mat-option>\r\n <mat-option value=\"Bar\">{{'Bar'|translate}}</mat-option>\r\n <mat-option value=\"Bubble\">{{'Bubble'|translate}}</mat-option>\r\n <mat-option value=\"StackingBar\">{{'StackingBar'|translate}}</mat-option>\r\n <mat-option value=\"StackingBar100\">{{'StackingBar100'|translate}}</mat-option>\r\n <mat-option value=\"Line\">{{'Line'|translate}}</mat-option>\r\n <mat-option value=\"StackingLine\">{{'StackingLine'|translate}}</mat-option>\r\n <mat-option value=\"StackingLine100\">{{'StackingLine100'|translate}}</mat-option>\r\n <mat-option value=\"Spline\">{{'Spline'|translate}}</mat-option>\r\n <mat-option value=\"SplineArea\">{{'SplineArea'|translate}}</mat-option>\r\n <mat-option value=\"Area\">{{'Area'|translate}}</mat-option>\r\n <mat-option value=\"StackingArea\">{{'StackingArea'|translate}}</mat-option>\r\n <mat-option value=\"StackingArea100\">{{'StackingArea100'|translate}}</mat-option>\r\n <mat-option value=\"Scatter\">{{'Scatter'|translate}}</mat-option>\r\n <mat-option value=\"Polar\">{{'Polar'|translate}}</mat-option>\r\n <mat-option value=\"Radar\">{{'Radar'|translate}}</mat-option>\r\n <mat-option value=\"StepLine\">{{'StepLine'|translate}}</mat-option>\r\n <mat-option value=\"StepArea\">{{'StepArea'|translate}}</mat-option>\r\n <mat-option value=\"StackingStepArea\">{{'StackingStepArea'|translate}}</mat-option>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'Pivot'\">\r\n <mat-option>{{'None'|translate}}</mat-option>\r\n <mat-option value=\"Column\">{{'Column'|translate}}</mat-option>\r\n <mat-option value=\"Bar\">{{'Bar'|translate}}</mat-option>\r\n <mat-option value=\"Bubble\">{{'Bubble'|translate}}</mat-option>\r\n <mat-option value=\"StackingBar\">{{'StackingBar'|translate}}</mat-option>\r\n <mat-option value=\"StackingBar100\">{{'StackingBar100'|translate}}</mat-option>\r\n <mat-option value=\"Line\">{{'Line'|translate}}</mat-option>\r\n <mat-option value=\"Spline\">{{'Spline'|translate}}</mat-option>\r\n <mat-option value=\"SplineArea\">{{'SplineArea'|translate}}</mat-option>\r\n <mat-option value=\"Area\">{{'Area'|translate}}</mat-option>\r\n <mat-option value=\"StackingArea\">{{'StackingArea'|translate}}</mat-option>\r\n <mat-option value=\"StackingArea100\">{{'StackingArea100'|translate}}</mat-option>\r\n <mat-option value=\"StackingColumn\">{{'StackingColumn'|translate}}</mat-option>\r\n <mat-option value=\"StackingColumn100\">{{'StackingColumn100'|translate}}</mat-option>\r\n <mat-option value=\"Scatter\">{{'Scatter'|translate}}</mat-option>\r\n <mat-option value=\"Polar\">{{'Polar'|translate}}</mat-option>\r\n <mat-option value=\"Radar\">{{'Radar'|translate}}</mat-option>\r\n <mat-option value=\"StepLine\">{{'StepLine'|translate}}</mat-option>\r\n <mat-option value=\"StepArea\">{{'StepArea'|translate}}</mat-option>\r\n <mat-option value=\"StackingStepArea\">{{'StackingStepArea'|translate}}</mat-option>\r\n <mat-option value=\"StackingLine\">{{'StackingLine'|translate}}</mat-option>\r\n <mat-option value=\"StackingLine100\">{{'StackingLine100'|translate}}</mat-option>\r\n </ng-container>\r\n </ng-container>\r\n </mat-select>\r\n </mat-form-field>\r\n <bizdoc-designer-cube-filter *ngIf=\"cube\" [cube]=\"cube\" [form]=\"form.get('filters')\"></bizdoc-designer-cube-filter>\r\n </form>\r\n</ng-template>\r\n<!-- Axis -->\r\n<ng-template #axisform let-form>\r\n <form autocomplete=\"off\" [formGroup]=\"form\" class=\"column\">\r\n <div class=\"row\">\r\n <mat-form-field class=\"flex\">\r\n <mat-label>{{'Title'|translate}}</mat-label>\r\n <input matInput formControlName=\"title\" required />\r\n <mat-error *ngIf=\"form.get('title').hasError('required')\" [innerHTML]=\"'RequiredErr'|translate:('Title'|translate)\"></mat-error>\r\n </mat-form-field>\r\n &nbsp;\r\n <mat-form-field class=\"flex\">\r\n <mat-label>{{'Name'|translate}}</mat-label>\r\n <input matInput formControlName=\"name\" required />\r\n <mat-error *ngIf=\"form.get('name').hasError('required')\" [innerHTML]=\"'RequiredErr'|translate:('Name'|translate)\"></mat-error>\r\n </mat-form-field>\r\n </div>\r\n <mat-form-field>\r\n <mat-label>{{'DataType'|translate}}</mat-label>\r\n <mat-select formControlName=\"dataType\" required>\r\n <ng-container *ngFor=\"let t of types\">\r\n <mat-option *ngIf=\"t.name\" [value]=\"t.name\">\r\n <span *ngIf=\"t.family\">{{t.family}} -&nbsp;</span>\r\n {{t.title}}\r\n </mat-option>\r\n </ng-container>\r\n </mat-select>\r\n <mat-error *ngIf=\"form.get('title').hasError('required')\" [innerHTML]=\"'RequiredErr'|translate:('DataType'|translate)\"></mat-error>\r\n </mat-form-field>\r\n <div><mat-checkbox formControlName=\"combination\">{{'Combination'}}</mat-checkbox></div>\r\n <div><mat-checkbox formControlName=\"sensitive\">{{'Sensitive'}}</mat-checkbox></div>\r\n <mat-form-field>\r\n <mat-label>{{'SelectionMode'|translate}}</mat-label>\r\n <mat-select formControlName=\"selectionMode\">\r\n <mat-option value=\"None\">{{'None'|translate}}</mat-option>\r\n <mat-option>{{'Single'|translate}}</mat-option>\r\n <mat-option value=\"Multiple\">{{'Multiple'|translate}}</mat-option>\r\n <mat-option value=\"Search\">{{'Search'|translate}}</mat-option>\r\n <mat-option value=\"Pattern\">{{'Pattern'|translate}}</mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n <mat-form-field>\r\n <mat-label>{{'DescendentOf'|translate}}</mat-label>\r\n <mat-select formControlName=\"descendentOf\">\r\n <ng-container *ngFor=\"let a of axes.controls\">\r\n <mat-option [value]=\"a.get('name').value\" *ngIf=\"a!=form\">{{a.get('title').value}}</mat-option>\r\n </ng-container>\r\n </mat-select>\r\n </mat-form-field>\r\n <div><mat-checkbox formControlName=\"indexable\">{{'Indexable'}}</mat-checkbox></div>\r\n </form>\r\n</ng-template>\r\n", styles: [":host ::ng-deep form{min-width:350px}:host ::ng-deep .mat-radio-group p{margin-inline-start:8px}.mat-table{width:100%}.mat-table .mat-cell:last-child{width:80px}.flex{flex:1}table tr td:first-child{width:26px}dl{width:100%;overflow:hidden;padding:0;margin:0}dt{float:left;width:35%;padding:0;margin:0;clear:both}dd{float:left;width:65%;padding:0;margin:0}\n"], dependencies: [{ kind: "directive", type: i1$4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$4.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1$4.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i1$4.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { 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: i1$3.FormGroupName, selector: "[formGroupName]", inputs: ["formGroupName"] }, { kind: "directive", type: i1$3.FormArrayName, selector: "[formArrayName]", inputs: ["formArrayName"] }, { kind: "directive", type: i5$1.DefaultLayoutAlignDirective, selector: " [fxLayoutAlign], [fxLayoutAlign.xs], [fxLayoutAlign.sm], [fxLayoutAlign.md], [fxLayoutAlign.lg], [fxLayoutAlign.xl], [fxLayoutAlign.lt-sm], [fxLayoutAlign.lt-md], [fxLayoutAlign.lt-lg], [fxLayoutAlign.lt-xl], [fxLayoutAlign.gt-xs], [fxLayoutAlign.gt-sm], [fxLayoutAlign.gt-md], [fxLayoutAlign.gt-lg]", inputs: ["fxLayoutAlign", "fxLayoutAlign.xs", "fxLayoutAlign.sm", "fxLayoutAlign.md", "fxLayoutAlign.lg", "fxLayoutAlign.xl", "fxLayoutAlign.lt-sm", "fxLayoutAlign.lt-md", "fxLayoutAlign.lt-lg", "fxLayoutAlign.lt-xl", "fxLayoutAlign.gt-xs", "fxLayoutAlign.gt-sm", "fxLayoutAlign.gt-md", "fxLayoutAlign.gt-lg"] }, { kind: "directive", type: i5$1.DefaultFlexDirective, selector: " [fxFlex], [fxFlex.xs], [fxFlex.sm], [fxFlex.md], [fxFlex.lg], [fxFlex.xl], [fxFlex.lt-sm], [fxFlex.lt-md], [fxFlex.lt-lg], [fxFlex.lt-xl], [fxFlex.gt-xs], [fxFlex.gt-sm], [fxFlex.gt-md], [fxFlex.gt-lg]", inputs: ["fxFlex", "fxFlex.xs", "fxFlex.sm", "fxFlex.md", "fxFlex.lg", "fxFlex.xl", "fxFlex.lt-sm", "fxFlex.lt-md", "fxFlex.lt-lg", "fxFlex.lt-xl", "fxFlex.gt-xs", "fxFlex.gt-sm", "fxFlex.gt-md", "fxFlex.gt-lg"] }, { kind: "directive", type: i3.CdkDropList, selector: "[cdkDropList], cdk-drop-list", inputs: ["cdkDropListConnectedTo", "cdkDropListData", "cdkDropListOrientation", "id", "cdkDropListLockAxis", "cdkDropListDisabled", "cdkDropListSortingDisabled", "cdkDropListEnterPredicate", "cdkDropListSortPredicate", "cdkDropListAutoScrollDisabled", "cdkDropListAutoScrollStep"], outputs: ["cdkDropListDropped", "cdkDropListEntered", "cdkDropListExited", "cdkDropListSorted"], exportAs: ["cdkDropList"] }, { kind: "directive", type: i3.CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { kind: "directive", type: i3.CdkDragHandle, selector: "[cdkDragHandle]", inputs: ["cdkDragHandleDisabled"] }, { kind: "directive", type: i3$4.MatRadioGroup, selector: "mat-radio-group", exportAs: ["matRadioGroup"] }, { kind: "component", type: i3$4.MatRadioButton, selector: "mat-radio-button", inputs: ["disableRipple", "tabIndex"], exportAs: ["matRadioButton"] }, { kind: "component", type: i8.MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "diameter", "strokeWidth", "mode", "value"], exportAs: ["matProgressSpinner"] }, { kind: "component", type: i3$1.MatOption, selector: "mat-option", exportAs: ["matOption"] }, { kind: "directive", type: i4.MatError, selector: "mat-error", inputs: ["id"] }, { kind: "component", type: i4.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i4.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "directive", type: i4.MatLabel, selector: "mat-label" }, { kind: "directive", type: i4.MatSuffix, selector: "[matSuffix]" }, { kind: "component", type: i5.MatSelect, selector: "mat-select", inputs: ["disabled", "disableRipple", "tabIndex"], exportAs: ["matSelect"] }, { kind: "component", type: i9.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i9$2.MatCheckbox, selector: "mat-checkbox", inputs: ["disableRipple", "color", "tabIndex"], exportAs: ["matCheckbox"] }, { kind: "directive", type: i9$1.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i10.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: TooltipDirective, selector: "[bizdocTooltip]", inputs: ["bizdocTooltip", "bizdocTooltipTemplate", "bizdocTooltipContext", "bizdocTooltipPosition", "bizdocTooltipDuration", "bizdocTooltipDisabled"] }, { kind: "component", type: TimespanInput, selector: "bizdoc-timespan-input", inputs: ["placeholder", "required", "disabled", "value"] }, { kind: "component", type: DesignerPrivilegesComponent, selector: "bizdoc-designer-privileges", inputs: ["form"] }, { kind: "directive", type: EditContentDirective, selector: "[bizdocEditContent]" }, { kind: "directive", type: WidgetContentDirective, selector: "[bizdocContent]" }, { kind: "component", type: DesignerCubeFilterComponent, selector: "bizdoc-designer-cube-filter", inputs: ["cube", "form"] }, { kind: "component", type: DesignerItemComponent, selector: "bizdoc-designer-element", inputs: ["privileges", "icon", "form", "state"], outputs: ["continue", "save"] }, { kind: "pipe", type: TimeAgoPipe, name: "amTimeAgo" }, { kind: "pipe", type: TranslatePipe, name: "translate" }] });
33007
33026
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.5", ngImport: i0, type: CubeDesignComponent, decorators: [{
33008
33027
  type: Component,
33009
33028
  args: [{ template: "<bizdoc-designer-element [form]=\"form\" [privileges]=\"true\" (continue)=\"complete()\" [state]=\"state\">\r\n <!-- widget -->\r\n <ng-template bizdocContent>\r\n <dl *ngIf=\"jobInfo\">\r\n <ng-container *ngIf=\"jobInfo.lastExecution\">\r\n <dt>{{'LastExecution'|translate}}</dt>\r\n <dd>{{jobInfo.lastExecution|amTimeAgo}}</dd>\r\n </ng-container>\r\n <ng-container *ngIf=\"jobInfo.nextExecution\">\r\n <dt>{{'NextExecution'|translate}}</dt>\r\n <dd>{{jobInfo.nextExecution|amTimeAgo}}</dd>\r\n </ng-container>\r\n <ng-container *ngIf=\"jobInfo.lastJobState\">\r\n <dt>{{'LastJobState'|translate}}</dt>\r\n <dd>\r\n <mat-icon *ngIf=\"jobInfo.error\" [bizdocTooltip]=\"jobInfo.error\">report</mat-icon>\r\n <span class=\"job-state\">{{jobInfo.lastJobState| translate}}</span>\r\n </dd>\r\n </ng-container>\r\n </dl>\r\n <div class=\"row\" fxLayoutAlign=\"start center\">\r\n <button mat-stroked-button (click)=\"sync()\" [disabled]=\"model.draft || syncing\">\r\n <span> {{'Synchronize'|translate}}</span>\r\n </button>\r\n &nbsp;\r\n <mat-spinner *ngIf=\"syncing\" diameter=\"22\"></mat-spinner>\r\n </div>\r\n <div class=\"row\">\r\n <div *ngIf=\"model.axes?.length\">\r\n <h2 class=\"mat-title\">{{'Axes'|translate}}</h2>\r\n <table class=\"mat-table\">\r\n <tr class=\"mat-row\" *ngFor=\"let a of model.axes\">\r\n <td class=\"mat-cell\">{{a.title}}</td>\r\n <td class=\"mat-cell\">{{datatype(a.dataType)}}</td>\r\n </tr>\r\n </table>\r\n </div>\r\n <!--<div *ngIf=\"model.indices?.length\">\r\n <h2 class=\"mat-title\">{{'Indices'|translate}}</h2>\r\n <table class=\"mat-table\">\r\n <tr class=\"mat-row\" *ngFor=\"let a of model.indices\">\r\n <td class=\"mat-cell\">{{a.title}}</td>\r\n </tr>\r\n </table>\r\n </div>-->\r\n </div>\r\n </ng-template>\r\n <!-- edit -->\r\n <ng-template bizdocEditContent>\r\n <ng-container *ngIf=\"view; else main\">\r\n <h2 class=\"mat-title\">{{context.title|translate}}</h2>\r\n <div (document:keydown.escape)=\"closeView($event)\" #element class=\"column\">\r\n <ng-container *ngTemplateOutlet=\"view; context: context\"></ng-container>\r\n </div>\r\n <div class=\"row actions\">\r\n <span class=\"divider\"></span>\r\n <button mat-icon-button (click)=\"closeView()\" type=\"button\" [bizdocTooltip]=\"'Back'|translate\"><mat-icon>keyboard_return</mat-icon></button>\r\n </div>\r\n </ng-container>\r\n </ng-template>\r\n</bizdoc-designer-element>\r\n<!---->\r\n<ng-template #main>\r\n <form autocomplete=\"off\" [formGroup]=\"form\" class=\"column\">\r\n <mat-label>{{'SecurityLevel'|translate}}</mat-label>\r\n <mat-radio-group formControlName=\"scope\">\r\n <mat-radio-button color=\"warn\">{{'Global'|translate}}</mat-radio-button>\r\n <br />\r\n <p>{{'SecurityGlobalHelp'|translate}}</p>\r\n <mat-radio-button value=\"Positions\">{{'Positions'|translate}}</mat-radio-button>\r\n <p>{{'SecurityPositionsHelp'|translate}}</p>\r\n <mat-radio-button value=\"Patterns\">{{'Patterns'|translate}}</mat-radio-button>\r\n <p>{{'SecurityPatternsHelp'|translate}}</p>\r\n </mat-radio-group>\r\n <ng-container formGroupName=\"yAxis\">\r\n <mat-form-field fxFlex>\r\n <mat-label>{{'Type'|translate}}</mat-label>\r\n <mat-select formControlName=\"type\">\r\n <mat-option value=\"Currency\">{{'Currency'|translate}}</mat-option>\r\n <mat-option value=\"Number\">{{'Numeric'|translate}}</mat-option>\r\n <mat-option value=\"Count\">{{'Accumulative'|translate}}</mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n </ng-container>\r\n <!--Axes-->\r\n <h2 class=\"mat-title row\">\r\n {{'Axes'|translate}}\r\n <span class=\"divider\"></span>\r\n <button mat-icon-button (click)=\"add(axes, newAxis(), 'Axis', axisform)\" [bizdocTooltip]=\"'Add'|translate\" type=\"button\"><mat-icon>add_circle_outline</mat-icon></button>\r\n </h2>\r\n <table formArrayName=\"axes\" class=\"mat-table\" cdkDropList (cdkDropListDropped)=\"drop($event, axes)\">\r\n <tr class=\"mat-row\" *ngFor=\"let a of axes.controls; index as index\" [formGroup]=\"a\" cdkDrag>\r\n <td class=\"mat-cell\">\r\n <mat-icon cdkDragHandle>drag_indicator</mat-icon>\r\n </td>\r\n <td class=\"mat-cell flex\">\r\n {{a.get('title').value}}\r\n </td>\r\n <td class=\"mat-cell\">\r\n <button mat-icon-button (click)=\"edit(a, 'Axis', axisform)\" [bizdocTooltip]=\"'Edit'|translate\" type=\"button\"><mat-icon>edit</mat-icon></button>\r\n <button mat-icon-button (click)=\"axes.removeAt(index)\" [bizdocTooltip]=\"'Remove'|translate\" type=\"button\"><mat-icon>delete</mat-icon></button>\r\n </td>\r\n </tr>\r\n </table>\r\n <!--Indices-->\r\n <h2 class=\"mat-title row\">\r\n {{'Indices'|translate}}\r\n <span class=\"divider\"></span>\r\n <button mat-icon-button (click)=\"add(indices, newIndex(), 'Index', indexform)\" [bizdocTooltip]=\"'Add'|translate\" type=\"button\"><mat-icon>add_circle_outline</mat-icon></button>\r\n </h2>\r\n <table formArrayName=\"indices\" class=\"mat-table\" cdkDropList (cdkDropListDropped)=\"drop($event, indices)\">\r\n <tr class=\"mat-row\" *ngFor=\"let i of indices.controls; index as index\" [formGroup]=\"i\" cdkDrag>\r\n <td class=\"mat-cell\">\r\n <mat-icon cdkDragHandle>drag_indicator</mat-icon>\r\n </td>\r\n <td class=\"mat-cell flex\">\r\n {{i.get('title').value}}\r\n </td>\r\n <td class=\"mat-cell\">\r\n <button mat-icon-button (click)=\"edit(i, 'Index', indexform)\" [bizdocTooltip]=\"'Edit'|translate\" type=\"button\"><mat-icon>edit</mat-icon></button>\r\n <button mat-icon-button (click)=\"indices.removeAt(index)\" [bizdocTooltip]=\"'Remove'|translate\" type=\"button\"><mat-icon>delete</mat-icon></button>\r\n </td>\r\n </tr>\r\n </table>\r\n <mat-form-field *ngIf=\"indices.controls.length\">\r\n <mat-label>{{'AnomalyNotification'|translate}}</mat-label>\r\n <mat-select formControlName=\"anomaly\">\r\n <mat-option value=\"None\">{{'None'|translate}}</mat-option>\r\n <mat-option value=\"Positions\">{{'Positions'|translate}}</mat-option>\r\n <mat-option value=\"Recipients\">{{'Everyone'|translate}}</mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n <!--Patterns-->\r\n <h2 class=\"mat-title row\">\r\n {{'Patterns'|translate}}\r\n <span class=\"divider\"></span>\r\n <button mat-icon-button (click)=\"add(patterns, newPattern(), 'Pattern', patternform)\" [bizdocTooltip]=\"'Add'|translate\" type=\"button\"><mat-icon>add_circle_outline</mat-icon></button>\r\n </h2>\r\n <table formArrayName=\"indices\" class=\"mat-table\" cdkDropList (cdkDropListDropped)=\"drop($event, patterns)\">\r\n <tr class=\"mat-row\" *ngFor=\"let p of patterns.controls; index as index\" [formGroup]=\"p\" cdkDrag>\r\n <td class=\"mat-cell\">\r\n <mat-icon cdkDragHandle>drag_indicator</mat-icon>\r\n </td>\r\n <td class=\"mat-cell flex\">\r\n {{p.get('title').value}}\r\n </td>\r\n <td class=\"mat-cell\">\r\n <button mat-icon-button (click)=\"edit(p, 'Pattern', patternform)\" [bizdocTooltip]=\"'Edit'|translate\" type=\"button\"><mat-icon>edit</mat-icon></button>\r\n <button mat-icon-button (click)=\"patterns.removeAt(index)\" [bizdocTooltip]=\"'Remove'|translate\" type=\"button\"><mat-icon>delete</mat-icon></button>\r\n </td>\r\n </tr>\r\n </table>\r\n <!--Views-->\r\n <h2 class=\"row mat-title\">\r\n {{'Views'|translate}}\r\n <span class=\"divider\"></span>\r\n <button mat-icon-button (click)=\"add(views, newView(), 'View', viewform)\" [bizdocTooltip]=\"'Add'|translate\" type=\"button\"><mat-icon>add_circle_outline</mat-icon></button>\r\n </h2>\r\n <table formArrayName=\"views\" class=\"mat-table\" cdkDropList (cdkDropListDropped)=\"drop($event, views)\">\r\n <tr class=\"mat-row\" *ngFor=\"let v of views.controls; index as index\" [formGroup]=\"v\" cdkDrag>\r\n <td class=\"mat-cell\">\r\n <mat-icon cdkDragHandle>drag_indicator</mat-icon>\r\n </td>\r\n <td class=\"mat-cell flex\">\r\n {{v.get('title').value}}\r\n </td>\r\n <td class=\"mat-cell\">\r\n <button mat-icon-button (click)=\"edit(v, 'View', viewform)\" [bizdocTooltip]=\"'Edit'|translate\" type=\"button\"><mat-icon>edit</mat-icon></button>\r\n <button mat-icon-button (click)=\"views.removeAt(index)\" [bizdocTooltip]=\"'Remove'|translate\" type=\"button\"><mat-icon>delete</mat-icon></button>\r\n </td>\r\n </tr>\r\n </table>\r\n <mat-form-field>\r\n <mat-label>{{'Schedule'|translate}}</mat-label>\r\n <bizdoc-timespan-input formControlName=\"schedule\"></bizdoc-timespan-input>\r\n <mat-icon matSuffix>timer</mat-icon>\r\n <mat-hint></mat-hint>\r\n </mat-form-field>\r\n </form>\r\n</ng-template>\r\n<!---->\r\n<ng-template #indexform let-form>\r\n <form autocomplete=\"off\" [formGroup]=\"form\" class=\"column\">\r\n <mat-form-field class=\"flex\">\r\n <mat-label>{{'Title'|translate}}</mat-label>\r\n <input matInput formControlName=\"title\" required />\r\n <mat-error *ngIf=\"form.get('title').hasError('required')\" [innerHTML]=\"'RequiredErr'|translate:('Title'|translate)\"></mat-error>\r\n </mat-form-field>\r\n &nbsp;\r\n <mat-form-field class=\"flex\">\r\n <mat-label>{{'Name'|translate}}</mat-label>\r\n <input matInput formControlName=\"name\" required />\r\n <mat-error *ngIf=\"form.get('name').hasError('required')\" [innerHTML]=\"'RequiredErr'|translate:('Name'|translate)\"></mat-error>\r\n </mat-form-field>\r\n </form>\r\n</ng-template>\r\n<!-- pattern-->\r\n<ng-template #patternform let-form>\r\n <form autocomplete=\"off\" [formGroup]=\"form\" class=\"column\">\r\n <mat-form-field class=\"flex\">\r\n <mat-label>{{'Title'|translate}}</mat-label>\r\n <input matInput formControlName=\"title\" required />\r\n <mat-error *ngIf=\"form.get('title').hasError('required')\" [innerHTML]=\"'RequiredErr'|translate:('Title'|translate)\"></mat-error>\r\n </mat-form-field>\r\n <bizdoc-designer-cube-filter [cube]=\"model\" [form]=\"form.get('axes')\"></bizdoc-designer-cube-filter>\r\n <bizdoc-designer-privileges [form]=\"form\"></bizdoc-designer-privileges>\r\n </form>\r\n</ng-template>\r\n<!-- view -->\r\n<ng-template #viewform let-form>\r\n <form autocomplete=\"off\" [formGroup]=\"form\" class=\"column\">\r\n <mat-form-field class=\"flex\">\r\n <mat-label>{{'Title'|translate}}</mat-label>\r\n <input matInput formControlName=\"title\" required />\r\n <mat-error *ngIf=\"form.get('title').hasError('required')\" [innerHTML]=\"'RequiredErr'|translate:('Title'|translate)\"></mat-error>\r\n </mat-form-field>\r\n <mat-form-field>\r\n <mat-label>{{'Type'|translate}}</mat-label>\r\n <mat-select formControlName=\"type\">\r\n <mat-option value=\"Chart\">{{'Chart'|translate}}</mat-option>\r\n <mat-option value=\"Pivot\">{{'Pivot'|translate}}</mat-option>\r\n <mat-option value=\"Grid\">{{'Grid'|translate}}</mat-option>\r\n <mat-option value=\"Spreadsheet\">{{'Spreadsheet'|translate}}</mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n <mat-form-field>\r\n <mat-label>{{'XAxis'|translate}}</mat-label>\r\n <mat-select formControlName=\"xAxis\" required multiple [sortComparator]=\"sortComparator\">\r\n <mat-option *ngFor=\"let a of axes.controls\" [value]=\"a.get('name').value\">{{a.get('title').value || a.get('name').value}}</mat-option>\r\n </mat-select>\r\n <mat-error *ngIf=\"form.get('xAxis').hasError('required')\" [innerHTML]=\"'RequiredErr'|translate:('XAxis'|translate)\"></mat-error>\r\n </mat-form-field>\r\n <mat-form-field>\r\n <mat-label>{{'Series'|translate}}</mat-label>\r\n <mat-select formControlName=\"series\" multiple [sortComparator]=\"sortComparator\">\r\n <ng-container *ngFor=\"let a of axes.controls\">\r\n <mat-option [value]=\"a.get('name').value\" *ngIf=\"form.get('xAxis').value?.indexOf(a.get('name').value)<0\">{{a.get('title').value|| a.get('name').value}}</mat-option>\r\n </ng-container>\r\n </mat-select>\r\n </mat-form-field>\r\n <mat-form-field>\r\n <mat-label>{{'Indices'|translate}}</mat-label>\r\n <mat-select formControlName=\"indices\" multiple>\r\n <ng-container *ngFor=\"let i of indices.controls\">\r\n <mat-option [value]=\"i.get('name').value\">{{i.get('title').value|| i.get('name').value}}</mat-option>\r\n </ng-container>\r\n </mat-select>\r\n </mat-form-field>\r\n <mat-form-field>\r\n <mat-label>{{'ChartType'|translate}}</mat-label>\r\n <mat-select formControlName=\"chartType\">\r\n <ng-container [ngSwitch]=\"form.get('type').value\">\r\n <ng-container *ngSwitchCase=\"'Chart'\">\r\n <ng-container *ngIf=\"accumulative\">\r\n <mat-option value=\"Pie\">{{'Pie'|translate}}</mat-option>\r\n <mat-option value=\"Doughnut\">{{'Doughnut'|translate}}</mat-option>\r\n <mat-option value=\"HalfDoughnut\">{{'HalfDoughnut'|translate}}</mat-option>\r\n <mat-option value=\"Funnel\">{{'Funnel'|translate}}</mat-option>\r\n <mat-option value=\"Pyramid\">{{'Pyramid'|translate}}</mat-option>\r\n </ng-container>\r\n <mat-option value=\"Column\">{{'Column'|translate}}</mat-option>\r\n <mat-option value=\"StackingColumn\">{{'StackingColumn'|translate}}</mat-option>\r\n <mat-option value=\"StackingColumn100\">{{'StackingColumn100'|translate}}</mat-option>\r\n <mat-option value=\"Bar\">{{'Bar'|translate}}</mat-option>\r\n <mat-option value=\"Bubble\">{{'Bubble'|translate}}</mat-option>\r\n <mat-option value=\"StackingBar\">{{'StackingBar'|translate}}</mat-option>\r\n <mat-option value=\"StackingBar100\">{{'StackingBar100'|translate}}</mat-option>\r\n <mat-option value=\"Line\">{{'Line'|translate}}</mat-option>\r\n <mat-option value=\"StackingLine\">{{'StackingLine'|translate}}</mat-option>\r\n <mat-option value=\"StackingLine100\">{{'StackingLine100'|translate}}</mat-option>\r\n <mat-option value=\"Spline\">{{'Spline'|translate}}</mat-option>\r\n <mat-option value=\"SplineArea\">{{'SplineArea'|translate}}</mat-option>\r\n <mat-option value=\"Area\">{{'Area'|translate}}</mat-option>\r\n <mat-option value=\"StackingArea\">{{'StackingArea'|translate}}</mat-option>\r\n <mat-option value=\"StackingArea100\">{{'StackingArea100'|translate}}</mat-option>\r\n <mat-option value=\"Scatter\">{{'Scatter'|translate}}</mat-option>\r\n <mat-option value=\"Polar\">{{'Polar'|translate}}</mat-option>\r\n <mat-option value=\"Radar\">{{'Radar'|translate}}</mat-option>\r\n <mat-option value=\"StepLine\">{{'StepLine'|translate}}</mat-option>\r\n <mat-option value=\"StepArea\">{{'StepArea'|translate}}</mat-option>\r\n <mat-option value=\"StackingStepArea\">{{'StackingStepArea'|translate}}</mat-option>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'Pivot'\">\r\n <mat-option>{{'None'|translate}}</mat-option>\r\n <mat-option value=\"Column\">{{'Column'|translate}}</mat-option>\r\n <mat-option value=\"Bar\">{{'Bar'|translate}}</mat-option>\r\n <mat-option value=\"Bubble\">{{'Bubble'|translate}}</mat-option>\r\n <mat-option value=\"StackingBar\">{{'StackingBar'|translate}}</mat-option>\r\n <mat-option value=\"StackingBar100\">{{'StackingBar100'|translate}}</mat-option>\r\n <mat-option value=\"Line\">{{'Line'|translate}}</mat-option>\r\n <mat-option value=\"Spline\">{{'Spline'|translate}}</mat-option>\r\n <mat-option value=\"SplineArea\">{{'SplineArea'|translate}}</mat-option>\r\n <mat-option value=\"Area\">{{'Area'|translate}}</mat-option>\r\n <mat-option value=\"StackingArea\">{{'StackingArea'|translate}}</mat-option>\r\n <mat-option value=\"StackingArea100\">{{'StackingArea100'|translate}}</mat-option>\r\n <mat-option value=\"StackingColumn\">{{'StackingColumn'|translate}}</mat-option>\r\n <mat-option value=\"StackingColumn100\">{{'StackingColumn100'|translate}}</mat-option>\r\n <mat-option value=\"Scatter\">{{'Scatter'|translate}}</mat-option>\r\n <mat-option value=\"Polar\">{{'Polar'|translate}}</mat-option>\r\n <mat-option value=\"Radar\">{{'Radar'|translate}}</mat-option>\r\n <mat-option value=\"StepLine\">{{'StepLine'|translate}}</mat-option>\r\n <mat-option value=\"StepArea\">{{'StepArea'|translate}}</mat-option>\r\n <mat-option value=\"StackingStepArea\">{{'StackingStepArea'|translate}}</mat-option>\r\n <mat-option value=\"StackingLine\">{{'StackingLine'|translate}}</mat-option>\r\n <mat-option value=\"StackingLine100\">{{'StackingLine100'|translate}}</mat-option>\r\n </ng-container>\r\n </ng-container>\r\n </mat-select>\r\n </mat-form-field>\r\n <mat-form-field>\r\n <mat-label>{{'IndicesChartType'|translate}}</mat-label>\r\n <mat-select formControlName=\"indicesChartType\">\r\n <ng-container [ngSwitch]=\"form.get('type').value\">\r\n <ng-container *ngSwitchCase=\"'Chart'\">\r\n <mat-option value=\"Column\">{{'Column'|translate}}</mat-option>\r\n <mat-option value=\"StackingColumn\">{{'StackingColumn'|translate}}</mat-option>\r\n <mat-option value=\"StackingColumn100\">{{'StackingColumn100'|translate}}</mat-option>\r\n <mat-option value=\"Bar\">{{'Bar'|translate}}</mat-option>\r\n <mat-option value=\"Bubble\">{{'Bubble'|translate}}</mat-option>\r\n <mat-option value=\"StackingBar\">{{'StackingBar'|translate}}</mat-option>\r\n <mat-option value=\"StackingBar100\">{{'StackingBar100'|translate}}</mat-option>\r\n <mat-option value=\"Line\">{{'Line'|translate}}</mat-option>\r\n <mat-option value=\"StackingLine\">{{'StackingLine'|translate}}</mat-option>\r\n <mat-option value=\"StackingLine100\">{{'StackingLine100'|translate}}</mat-option>\r\n <mat-option value=\"Spline\">{{'Spline'|translate}}</mat-option>\r\n <mat-option value=\"SplineArea\">{{'SplineArea'|translate}}</mat-option>\r\n <mat-option value=\"Area\">{{'Area'|translate}}</mat-option>\r\n <mat-option value=\"StackingArea\">{{'StackingArea'|translate}}</mat-option>\r\n <mat-option value=\"StackingArea100\">{{'StackingArea100'|translate}}</mat-option>\r\n <mat-option value=\"Scatter\">{{'Scatter'|translate}}</mat-option>\r\n <mat-option value=\"Polar\">{{'Polar'|translate}}</mat-option>\r\n <mat-option value=\"Radar\">{{'Radar'|translate}}</mat-option>\r\n <mat-option value=\"StepLine\">{{'StepLine'|translate}}</mat-option>\r\n <mat-option value=\"StepArea\">{{'StepArea'|translate}}</mat-option>\r\n <mat-option value=\"StackingStepArea\">{{'StackingStepArea'|translate}}</mat-option>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'Pivot'\">\r\n <mat-option>{{'None'|translate}}</mat-option>\r\n <mat-option value=\"Column\">{{'Column'|translate}}</mat-option>\r\n <mat-option value=\"Bar\">{{'Bar'|translate}}</mat-option>\r\n <mat-option value=\"Bubble\">{{'Bubble'|translate}}</mat-option>\r\n <mat-option value=\"StackingBar\">{{'StackingBar'|translate}}</mat-option>\r\n <mat-option value=\"StackingBar100\">{{'StackingBar100'|translate}}</mat-option>\r\n <mat-option value=\"Line\">{{'Line'|translate}}</mat-option>\r\n <mat-option value=\"Spline\">{{'Spline'|translate}}</mat-option>\r\n <mat-option value=\"SplineArea\">{{'SplineArea'|translate}}</mat-option>\r\n <mat-option value=\"Area\">{{'Area'|translate}}</mat-option>\r\n <mat-option value=\"StackingArea\">{{'StackingArea'|translate}}</mat-option>\r\n <mat-option value=\"StackingArea100\">{{'StackingArea100'|translate}}</mat-option>\r\n <mat-option value=\"StackingColumn\">{{'StackingColumn'|translate}}</mat-option>\r\n <mat-option value=\"StackingColumn100\">{{'StackingColumn100'|translate}}</mat-option>\r\n <mat-option value=\"Scatter\">{{'Scatter'|translate}}</mat-option>\r\n <mat-option value=\"Polar\">{{'Polar'|translate}}</mat-option>\r\n <mat-option value=\"Radar\">{{'Radar'|translate}}</mat-option>\r\n <mat-option value=\"StepLine\">{{'StepLine'|translate}}</mat-option>\r\n <mat-option value=\"StepArea\">{{'StepArea'|translate}}</mat-option>\r\n <mat-option value=\"StackingStepArea\">{{'StackingStepArea'|translate}}</mat-option>\r\n <mat-option value=\"StackingLine\">{{'StackingLine'|translate}}</mat-option>\r\n <mat-option value=\"StackingLine100\">{{'StackingLine100'|translate}}</mat-option>\r\n </ng-container>\r\n </ng-container>\r\n </mat-select>\r\n </mat-form-field>\r\n <bizdoc-designer-cube-filter *ngIf=\"cube\" [cube]=\"cube\" [form]=\"form.get('filters')\"></bizdoc-designer-cube-filter>\r\n </form>\r\n</ng-template>\r\n<!-- Axis -->\r\n<ng-template #axisform let-form>\r\n <form autocomplete=\"off\" [formGroup]=\"form\" class=\"column\">\r\n <div class=\"row\">\r\n <mat-form-field class=\"flex\">\r\n <mat-label>{{'Title'|translate}}</mat-label>\r\n <input matInput formControlName=\"title\" required />\r\n <mat-error *ngIf=\"form.get('title').hasError('required')\" [innerHTML]=\"'RequiredErr'|translate:('Title'|translate)\"></mat-error>\r\n </mat-form-field>\r\n &nbsp;\r\n <mat-form-field class=\"flex\">\r\n <mat-label>{{'Name'|translate}}</mat-label>\r\n <input matInput formControlName=\"name\" required />\r\n <mat-error *ngIf=\"form.get('name').hasError('required')\" [innerHTML]=\"'RequiredErr'|translate:('Name'|translate)\"></mat-error>\r\n </mat-form-field>\r\n </div>\r\n <mat-form-field>\r\n <mat-label>{{'DataType'|translate}}</mat-label>\r\n <mat-select formControlName=\"dataType\" required>\r\n <ng-container *ngFor=\"let t of types\">\r\n <mat-option *ngIf=\"t.name\" [value]=\"t.name\">\r\n <span *ngIf=\"t.family\">{{t.family}} -&nbsp;</span>\r\n {{t.title}}\r\n </mat-option>\r\n </ng-container>\r\n </mat-select>\r\n <mat-error *ngIf=\"form.get('title').hasError('required')\" [innerHTML]=\"'RequiredErr'|translate:('DataType'|translate)\"></mat-error>\r\n </mat-form-field>\r\n <div><mat-checkbox formControlName=\"combination\">{{'Combination'}}</mat-checkbox></div>\r\n <div><mat-checkbox formControlName=\"sensitive\">{{'Sensitive'}}</mat-checkbox></div>\r\n <mat-form-field>\r\n <mat-label>{{'SelectionMode'|translate}}</mat-label>\r\n <mat-select formControlName=\"selectionMode\">\r\n <mat-option value=\"None\">{{'None'|translate}}</mat-option>\r\n <mat-option>{{'Single'|translate}}</mat-option>\r\n <mat-option value=\"Multiple\">{{'Multiple'|translate}}</mat-option>\r\n <mat-option value=\"Search\">{{'Search'|translate}}</mat-option>\r\n <mat-option value=\"Pattern\">{{'Pattern'|translate}}</mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n <mat-form-field>\r\n <mat-label>{{'DescendentOf'|translate}}</mat-label>\r\n <mat-select formControlName=\"descendentOf\">\r\n <ng-container *ngFor=\"let a of axes.controls\">\r\n <mat-option [value]=\"a.get('name').value\" *ngIf=\"a!=form\">{{a.get('title').value}}</mat-option>\r\n </ng-container>\r\n </mat-select>\r\n </mat-form-field>\r\n <div><mat-checkbox formControlName=\"indexable\">{{'Indexable'}}</mat-checkbox></div>\r\n </form>\r\n</ng-template>\r\n", styles: [":host ::ng-deep form{min-width:350px}:host ::ng-deep .mat-radio-group p{margin-inline-start:8px}.mat-table{width:100%}.mat-table .mat-cell:last-child{width:80px}.flex{flex:1}table tr td:first-child{width:26px}dl{width:100%;overflow:hidden;padding:0;margin:0}dt{float:left;width:35%;padding:0;margin:0;clear:both}dd{float:left;width:65%;padding:0;margin:0}\n"] }]
@@ -34265,7 +34284,7 @@ let MatrixViewDesignComponent = class MatrixViewDesignComponent extends Designer
34265
34284
  }
34266
34285
  };
34267
34286
  MatrixViewDesignComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.5", ngImport: i0, type: MatrixViewDesignComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
34268
- MatrixViewDesignComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.5", type: MatrixViewDesignComponent, selector: "ng-component", usesInheritance: true, ngImport: i0, template: "<ng-container *ngIf=\"mode === 'widget'; else edit\">\r\n</ng-container>\r\n<ng-template #edit>\r\n <ng-container *ngIf=\"view; else main\">\r\n <h2 class=\"mat-title\">{{context.title|translate}}</h2>\r\n <div (document:keydown.escape)=\"closeView($event)\" #element class=\"column\">\r\n <ng-container *ngTemplateOutlet=\"view; context: context\"></ng-container>\r\n </div>\r\n <div class=\"row actions\">\r\n <span class=\"divider\"></span>\r\n <button mat-icon-button (click)=\"closeView()\" type=\"button\" [bizdocTooltip]=\"'Back'|translate\"><mat-icon>keyboard_return</mat-icon></button>\r\n </div>\r\n </ng-container>\r\n</ng-template>\r\n<ng-template #main>\r\n <form autocomplete=\"off\" [formGroup]=\"form\" class=\"column\">\r\n <mat-form-field *ngIf=\"cubes.length>1\">\r\n <mat-label>{{'Cube'|translate}}</mat-label>\r\n <mat-select required (selectionChange)=\"cubeSelected($event)\">\r\n <mat-option *ngFor=\"let c of cubes\" [value]=\"c\">{{c.title}}</mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n <div class=\"row\">\r\n <mat-form-field class=\"flex\">\r\n <mat-label>{{'XAxis'|translate}}</mat-label>\r\n <mat-select formControlName=\"xAxis\" required>\r\n <mat-option *ngFor=\"let a of cube?.axes\" [value]=\"a.name\">{{a.title }}</mat-option>\r\n </mat-select>\r\n <mat-error *ngIf=\"form.get('xAxis').hasError('required')\" [innerHTML]=\"'RequiredErr'|translate:('XAxis'|translate)\"></mat-error>\r\n </mat-form-field>\r\n &nbsp;\r\n <mat-form-field class=\"flex\">\r\n <mat-label>{{'Series'|translate}}</mat-label>\r\n <mat-select formControlName=\"series\" required>\r\n <ng-container *ngFor=\"let a of cube?.axes\">\r\n <mat-option *ngIf=\"form.get('xAxis').value!==a.name\" [value]=\"a.name\">{{a.title }}</mat-option>\r\n </ng-container>\r\n </mat-select>\r\n <mat-error *ngIf=\"form.get('series').hasError('required')\" [innerHTML]=\"'RequiredErr'|translate:('Series'|translate)\"></mat-error>\r\n </mat-form-field>\r\n </div>\r\n <mat-form-field *ngIf=\"cube?.indices?.length\" class=\"flex\">\r\n <mat-label>{{'Indices'|translate}}</mat-label>\r\n <mat-select formControlName=\"indices\" multiple>\r\n <mat-option *ngFor=\"let i of cube.indices\" [value]=\"i.name\">{{i.title}}</mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n <div class=\"row\">\r\n <mat-form-field class=\"flex\">\r\n <mat-label>{{'Filters'|translate}}</mat-label>\r\n <mat-select formControlName=\"filters\" multiple>\r\n <ng-container *ngFor=\"let a of cube?.axes\">\r\n <mat-option *ngIf=\"form.get('xAxis').value !== a.name && form.get('series').value !== a.name\" [value]=\"a.name\">{{a.title }}</mat-option>\r\n </ng-container>\r\n </mat-select>\r\n </mat-form-field>\r\n &nbsp;\r\n <mat-form-field class=\"flex\">\r\n <mat-label>{{'Aggregate'|translate}}</mat-label>\r\n <mat-select formControlName=\"aggregate\" multiple>\r\n <ng-container *ngFor=\"let a of cube?.axes\">\r\n <mat-option *ngIf=\"form.get('xAxis').value!==a.name && form.get('series').value !== a.name && form.get('filters').value?.indexOf(a.name) < 0\" [value]=\"a.name\">{{a.title }}</mat-option>\r\n </ng-container>\r\n </mat-select>\r\n <mat-hint></mat-hint>\r\n </mat-form-field>\r\n </div>\r\n <h2 class=\"mat-title\">{{'Summary'|translate}}</h2>\r\n <table class=\"mat-table\" formArrayName=\"sum\" cdkDropList (cdkDropListDropped)=\"drop($event, sum)\">\r\n <tr class=\"mat-row\" *ngFor=\"let s of sum.controls; index as index\" [formGroup]=\"s\" cdkDrag>\r\n <td class=\"mat-cell\">\r\n <mat-icon cdkDragHandle>drag_indicator</mat-icon>\r\n </td>\r\n <td class=\"mat-cell\">{{s.get('title').value}}</td>\r\n <td class=\"mat-cell\">\r\n <button mat-icon-button (click)=\"edit(s, 'Summary', sumform)\" [bizdocTooltip]=\"'Edit'|translate\" type=\"button\"><mat-icon>edit</mat-icon></button>\r\n <button mat-icon-button (click)=\"sum.removeAt(index)\" [bizdocTooltip]=\"'Remove'|translate\" type=\"button\"><mat-icon>delete</mat-icon></button>\r\n </td>\r\n </tr>\r\n </table>\r\n <button mat-icon-button (click)=\"add(sum, newSum(), 'Summary', sumform)\" [bizdocTooltip]=\"'Add'|translate\" type=\"button\"><mat-icon>add_circle_outline</mat-icon></button>\r\n </form>\r\n</ng-template>\r\n<ng-template #sumform let-form>\r\n <form autocomplete=\"off\" [formGroup]=\"form\" class=\"column\">\r\n <mat-form-field class=\"flex\">\r\n <mat-label>{{'title'|translate}}</mat-label>\r\n <input matInput formControlName=\"title\" required />\r\n </mat-form-field>\r\n <mat-radio-group formControlName=\"axis\">\r\n <mat-radio-button value=\"XAxis\">{{'XAxis'|translate}}</mat-radio-button>\r\n <mat-radio-button value=\"Series\">{{'Series'|translate}}</mat-radio-button>\r\n </mat-radio-group>\r\n <mat-form-field>\r\n <mat-label>{{'Calculate'|translate}}</mat-label>\r\n <mat-select formControlName=\"calculate\">\r\n <mat-option>{{'None'|translate}}</mat-option>\r\n <mat-option value=\"Quarter\">{{'Quarter'|translate}}</mat-option>\r\n <mat-option value=\"Year\">{{'Year'|translate}}</mat-option>\r\n <mat-option value=\"Month\">{{'Month'|translate}}</mat-option>\r\n <mat-option value=\"Sum\">{{'Sum'|translate}}</mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n </form>\r\n</ng-template>\r\n", dependencies: [{ kind: "directive", type: i1$4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$4.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: i1$3.FormArrayName, selector: "[formArrayName]", inputs: ["formArrayName"] }, { kind: "directive", type: i3.CdkDropList, selector: "[cdkDropList], cdk-drop-list", inputs: ["cdkDropListConnectedTo", "cdkDropListData", "cdkDropListOrientation", "id", "cdkDropListLockAxis", "cdkDropListDisabled", "cdkDropListSortingDisabled", "cdkDropListEnterPredicate", "cdkDropListSortPredicate", "cdkDropListAutoScrollDisabled", "cdkDropListAutoScrollStep"], outputs: ["cdkDropListDropped", "cdkDropListEntered", "cdkDropListExited", "cdkDropListSorted"], exportAs: ["cdkDropList"] }, { kind: "directive", type: i3.CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { kind: "directive", type: i3.CdkDragHandle, selector: "[cdkDragHandle]", inputs: ["cdkDragHandleDisabled"] }, { kind: "directive", type: i4$6.MatRadioGroup, selector: "mat-radio-group", exportAs: ["matRadioGroup"] }, { kind: "component", type: i4$6.MatRadioButton, selector: "mat-radio-button", inputs: ["disableRipple", "tabIndex"], exportAs: ["matRadioButton"] }, { kind: "component", type: i3$1.MatOption, selector: "mat-option", exportAs: ["matOption"] }, { kind: "directive", type: i4.MatError, selector: "mat-error", inputs: ["id"] }, { kind: "component", type: i4.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i4.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "directive", type: i4.MatLabel, selector: "mat-label" }, { kind: "component", type: i5.MatSelect, selector: "mat-select", inputs: ["disabled", "disableRipple", "tabIndex"], exportAs: ["matSelect"] }, { kind: "component", type: i9.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "directive", type: i9$1.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: "pipe", type: TranslatePipe, name: "translate" }] });
34287
+ MatrixViewDesignComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.5", type: MatrixViewDesignComponent, selector: "ng-component", usesInheritance: true, ngImport: i0, template: "<ng-container *ngIf=\"mode === 'widget'; else edit\">\r\n</ng-container>\r\n<ng-template #edit>\r\n <ng-container *ngIf=\"view; else main\">\r\n <h2 class=\"mat-title\">{{context.title|translate}}</h2>\r\n <div (document:keydown.escape)=\"closeView($event)\" #element class=\"column\">\r\n <ng-container *ngTemplateOutlet=\"view; context: context\"></ng-container>\r\n </div>\r\n <div class=\"row actions\">\r\n <span class=\"divider\"></span>\r\n <button mat-icon-button (click)=\"closeView()\" type=\"button\" [bizdocTooltip]=\"'Back'|translate\"><mat-icon>keyboard_return</mat-icon></button>\r\n </div>\r\n </ng-container>\r\n</ng-template>\r\n<ng-template #main>\r\n <form autocomplete=\"off\" [formGroup]=\"form\" class=\"column\">\r\n <mat-form-field *ngIf=\"cubes.length>1\">\r\n <mat-label>{{'Cube'|translate}}</mat-label>\r\n <mat-select required (selectionChange)=\"cubeSelected($event)\">\r\n <mat-option *ngFor=\"let c of cubes\" [value]=\"c\">{{c.title}}</mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n <div class=\"row\">\r\n <mat-form-field class=\"flex\">\r\n <mat-label>{{'XAxis'|translate}}</mat-label>\r\n <mat-select formControlName=\"xAxis\" required>\r\n <mat-option *ngFor=\"let a of cube?.axes\" [value]=\"a.name\">{{a.title }}</mat-option>\r\n </mat-select>\r\n <mat-error *ngIf=\"form.get('xAxis').hasError('required')\" [innerHTML]=\"'RequiredErr'|translate:('XAxis'|translate)\"></mat-error>\r\n </mat-form-field>\r\n &nbsp;\r\n <mat-form-field class=\"flex\">\r\n <mat-label>{{'Series'|translate}}</mat-label>\r\n <mat-select formControlName=\"series\" required>\r\n <ng-container *ngFor=\"let a of cube?.axes\">\r\n <mat-option *ngIf=\"form.get('xAxis').value!==a.name\" [value]=\"a.name\">{{a.title }}</mat-option>\r\n </ng-container>\r\n </mat-select>\r\n <mat-error *ngIf=\"form.get('series').hasError('required')\" [innerHTML]=\"'RequiredErr'|translate:('Series'|translate)\"></mat-error>\r\n </mat-form-field>\r\n </div>\r\n <mat-form-field *ngIf=\"cube?.indices?.length\" class=\"flex\">\r\n <mat-label>{{'Indices'|translate}}</mat-label>\r\n <mat-select formControlName=\"indices\" multiple>\r\n <mat-option *ngFor=\"let i of cube.indices\" [value]=\"i.name\">{{i.title}}</mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n <div class=\"row\">\r\n <mat-form-field class=\"flex\">\r\n <mat-label>{{'Filters'|translate}}</mat-label>\r\n <mat-select formControlName=\"filters\" multiple>\r\n <ng-container *ngFor=\"let a of cube?.axes\">\r\n <mat-option *ngIf=\"form.get('xAxis').value !== a.name && form.get('series').value !== a.name\" [value]=\"a.name\">{{a.title }}</mat-option>\r\n </ng-container>\r\n </mat-select>\r\n </mat-form-field>\r\n &nbsp;\r\n <mat-form-field class=\"flex\">\r\n <mat-label>{{'Aggregate'|translate}}</mat-label>\r\n <mat-select formControlName=\"aggregate\" multiple>\r\n <ng-container *ngFor=\"let a of cube?.axes\">\r\n <mat-option *ngIf=\"form.get('xAxis').value!==a.name && form.get('series').value !== a.name && form.get('filters').value?.indexOf(a.name) < 0\" [value]=\"a.name\">{{a.title }}</mat-option>\r\n </ng-container>\r\n </mat-select>\r\n <mat-hint></mat-hint>\r\n </mat-form-field>\r\n </div>\r\n <h2 class=\"mat-title\">{{'Summary'|translate}}</h2>\r\n <table class=\"mat-table\" formArrayName=\"sum\" cdkDropList (cdkDropListDropped)=\"drop($event, sum)\">\r\n <tr class=\"mat-row\" *ngFor=\"let s of sum.controls; index as index\" [formGroup]=\"s\" cdkDrag>\r\n <td class=\"mat-cell\">\r\n <mat-icon cdkDragHandle>drag_indicator</mat-icon>\r\n </td>\r\n <td class=\"mat-cell\">{{s.get('title').value}}</td>\r\n <td class=\"mat-cell\">\r\n <button mat-icon-button (click)=\"edit(s, 'Summary', sumform)\" [bizdocTooltip]=\"'Edit'|translate\" type=\"button\"><mat-icon>edit</mat-icon></button>\r\n <button mat-icon-button (click)=\"sum.removeAt(index)\" [bizdocTooltip]=\"'Remove'|translate\" type=\"button\"><mat-icon>delete</mat-icon></button>\r\n </td>\r\n </tr>\r\n </table>\r\n <button mat-icon-button (click)=\"add(sum, newSum(), 'Summary', sumform)\" [bizdocTooltip]=\"'Add'|translate\" type=\"button\"><mat-icon>add_circle_outline</mat-icon></button>\r\n </form>\r\n</ng-template>\r\n<ng-template #sumform let-form>\r\n <form autocomplete=\"off\" [formGroup]=\"form\" class=\"column\">\r\n <mat-form-field class=\"flex\">\r\n <mat-label>{{'title'|translate}}</mat-label>\r\n <input matInput formControlName=\"title\" required />\r\n </mat-form-field>\r\n <mat-radio-group formControlName=\"axis\">\r\n <mat-radio-button value=\"XAxis\">{{'XAxis'|translate}}</mat-radio-button>\r\n <mat-radio-button value=\"Series\">{{'Series'|translate}}</mat-radio-button>\r\n </mat-radio-group>\r\n <mat-form-field>\r\n <mat-label>{{'Calculate'|translate}}</mat-label>\r\n <mat-select formControlName=\"calculate\">\r\n <mat-option>{{'None'|translate}}</mat-option>\r\n <mat-option value=\"Quarter\">{{'Quarter'|translate}}</mat-option>\r\n <mat-option value=\"Year\">{{'Year'|translate}}</mat-option>\r\n <mat-option value=\"Month\">{{'Month'|translate}}</mat-option>\r\n <mat-option value=\"Sum\">{{'Sum'|translate}}</mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n </form>\r\n</ng-template>\r\n", dependencies: [{ kind: "directive", type: i1$4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$4.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: i1$3.FormArrayName, selector: "[formArrayName]", inputs: ["formArrayName"] }, { kind: "directive", type: i3.CdkDropList, selector: "[cdkDropList], cdk-drop-list", inputs: ["cdkDropListConnectedTo", "cdkDropListData", "cdkDropListOrientation", "id", "cdkDropListLockAxis", "cdkDropListDisabled", "cdkDropListSortingDisabled", "cdkDropListEnterPredicate", "cdkDropListSortPredicate", "cdkDropListAutoScrollDisabled", "cdkDropListAutoScrollStep"], outputs: ["cdkDropListDropped", "cdkDropListEntered", "cdkDropListExited", "cdkDropListSorted"], exportAs: ["cdkDropList"] }, { kind: "directive", type: i3.CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { kind: "directive", type: i3.CdkDragHandle, selector: "[cdkDragHandle]", inputs: ["cdkDragHandleDisabled"] }, { kind: "directive", type: i3$4.MatRadioGroup, selector: "mat-radio-group", exportAs: ["matRadioGroup"] }, { kind: "component", type: i3$4.MatRadioButton, selector: "mat-radio-button", inputs: ["disableRipple", "tabIndex"], exportAs: ["matRadioButton"] }, { kind: "component", type: i3$1.MatOption, selector: "mat-option", exportAs: ["matOption"] }, { kind: "directive", type: i4.MatError, selector: "mat-error", inputs: ["id"] }, { kind: "component", type: i4.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i4.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "directive", type: i4.MatLabel, selector: "mat-label" }, { kind: "component", type: i5.MatSelect, selector: "mat-select", inputs: ["disabled", "disableRipple", "tabIndex"], exportAs: ["matSelect"] }, { kind: "component", type: i9.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "directive", type: i9$1.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: "pipe", type: TranslatePipe, name: "translate" }] });
34269
34288
  MatrixViewDesignComponent = __decorate([
34270
34289
  BizDoc({ selector: 'matrix-view-designer' })
34271
34290
  ], MatrixViewDesignComponent);
@@ -34499,7 +34518,7 @@ let UsageReportDesignComponent = class UsageReportDesignComponent extends Design
34499
34518
  }
34500
34519
  };
34501
34520
  UsageReportDesignComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.5", ngImport: i0, type: UsageReportDesignComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
34502
- UsageReportDesignComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.5", type: UsageReportDesignComponent, selector: "ng-component", usesInheritance: true, ngImport: i0, template: "<ng-container *ngIf=\"mode === 'widget'; else edit\">\r\n</ng-container>\r\n<ng-template #edit>\r\n <form autocomplete=\"off\" [formGroup]=\"form\" class=\"column\">\r\n <mat-radio-group [formControl]=\"type\" (change)=\"typechange($event)\">\r\n <mat-radio-button value=\"Chart\">{{'Chart'|translate}}</mat-radio-button>\r\n <mat-radio-button value=\"Pivot\">{{'Pivot'|translate}}</mat-radio-button>\r\n </mat-radio-group>\r\n <mat-form-field *ngIf=\"cubes.length>1\">\r\n <mat-label>{{'Cube'|translate}}</mat-label>\r\n <mat-select required (selectionChange)=\"cubeSelected($event)\">\r\n <mat-option *ngFor=\"let c of cubes\" [value]=\"c\">{{c.title}}</mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n <mat-form-field>\r\n <mat-label>{{'Series'|translate}}</mat-label>\r\n <mat-select formControlName=\"series\" required multiple [sortComparator]=\"sortComparator\">\r\n <mat-option *ngFor=\"let a of cube?.axes\" [value]=\"a.name\">{{a.title }}</mat-option>\r\n </mat-select>\r\n <mat-error *ngIf=\"form.get('series').hasError('required')\" [innerHTML]=\"'RequiredErr'|translate:('Series'|translate)\"></mat-error>\r\n </mat-form-field>\r\n <ng-container [ngSwitch]=\"type.value\">\r\n <ng-container *ngSwitchCase=\"'Pivot'\">\r\n <mat-form-field>\r\n <mat-label>{{'XAxis'|translate}}</mat-label>\r\n <mat-select formControlName=\"xAxis\" multiple [sortComparator]=\"sortComparator\">\r\n <ng-container *ngFor=\"let a of cube?.axes\">\r\n <mat-option *ngIf=\"form.get('series').value?.indexOf(a.name) < 0\" [value]=\"a.name\">{{a.title }}</mat-option>\r\n </ng-container>\r\n </mat-select>\r\n </mat-form-field>\r\n </ng-container>\r\n <mat-form-field *ngIf=\"cube?.indices?.length\">\r\n <mat-label>{{'Indices'|translate}}</mat-label>\r\n <mat-select formControlName=\"indices\" multiple [sortComparator]=\"sortComparator\">\r\n <mat-option *ngFor=\"let x of cube?.indices\" [value]=\"x.name\">{{x.title }}</mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n <ng-container *ngSwitchCase=\"'Chart'\">\r\n <mat-form-field>\r\n <mat-label>{{'ChartType'|translate}}</mat-label>\r\n <mat-select formControlName=\"chartType\">\r\n <mat-option value=\"Column\">{{'Column'|translate}}</mat-option>\r\n <mat-option value=\"Bar\">{{'Bar'|translate}}</mat-option>\r\n <mat-option value=\"Line\">{{'Line'|translate}}</mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n </ng-container>\r\n </ng-container>\r\n <bizdoc-designer-cube-filter *ngIf=\"cube\" [cube]=\"cube\" [form]=\"form.get('filters')\"></bizdoc-designer-cube-filter>\r\n </form>\r\n</ng-template>\r\n", styles: [""], dependencies: [{ kind: "directive", type: i1$4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$4.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i1$4.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i1$3.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { 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.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { 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: i4$6.MatRadioGroup, selector: "mat-radio-group", exportAs: ["matRadioGroup"] }, { kind: "component", type: i4$6.MatRadioButton, selector: "mat-radio-button", inputs: ["disableRipple", "tabIndex"], exportAs: ["matRadioButton"] }, { kind: "component", type: i3$1.MatOption, selector: "mat-option", exportAs: ["matOption"] }, { kind: "directive", type: i4.MatError, selector: "mat-error", inputs: ["id"] }, { kind: "component", type: i4.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i4.MatLabel, selector: "mat-label" }, { kind: "component", type: i5.MatSelect, selector: "mat-select", inputs: ["disabled", "disableRipple", "tabIndex"], exportAs: ["matSelect"] }, { kind: "component", type: DesignerCubeFilterComponent, selector: "bizdoc-designer-cube-filter", inputs: ["cube", "form"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }] });
34521
+ UsageReportDesignComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.5", type: UsageReportDesignComponent, selector: "ng-component", usesInheritance: true, ngImport: i0, template: "<ng-container *ngIf=\"mode === 'widget'; else edit\">\r\n</ng-container>\r\n<ng-template #edit>\r\n <form autocomplete=\"off\" [formGroup]=\"form\" class=\"column\">\r\n <mat-radio-group [formControl]=\"type\" (change)=\"typechange($event)\">\r\n <mat-radio-button value=\"Chart\">{{'Chart'|translate}}</mat-radio-button>\r\n <mat-radio-button value=\"Pivot\">{{'Pivot'|translate}}</mat-radio-button>\r\n </mat-radio-group>\r\n <mat-form-field *ngIf=\"cubes.length>1\">\r\n <mat-label>{{'Cube'|translate}}</mat-label>\r\n <mat-select required (selectionChange)=\"cubeSelected($event)\">\r\n <mat-option *ngFor=\"let c of cubes\" [value]=\"c\">{{c.title}}</mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n <mat-form-field>\r\n <mat-label>{{'Series'|translate}}</mat-label>\r\n <mat-select formControlName=\"series\" required multiple [sortComparator]=\"sortComparator\">\r\n <mat-option *ngFor=\"let a of cube?.axes\" [value]=\"a.name\">{{a.title }}</mat-option>\r\n </mat-select>\r\n <mat-error *ngIf=\"form.get('series').hasError('required')\" [innerHTML]=\"'RequiredErr'|translate:('Series'|translate)\"></mat-error>\r\n </mat-form-field>\r\n <ng-container [ngSwitch]=\"type.value\">\r\n <ng-container *ngSwitchCase=\"'Pivot'\">\r\n <mat-form-field>\r\n <mat-label>{{'XAxis'|translate}}</mat-label>\r\n <mat-select formControlName=\"xAxis\" multiple [sortComparator]=\"sortComparator\">\r\n <ng-container *ngFor=\"let a of cube?.axes\">\r\n <mat-option *ngIf=\"form.get('series').value?.indexOf(a.name) < 0\" [value]=\"a.name\">{{a.title }}</mat-option>\r\n </ng-container>\r\n </mat-select>\r\n </mat-form-field>\r\n </ng-container>\r\n <mat-form-field *ngIf=\"cube?.indices?.length\">\r\n <mat-label>{{'Indices'|translate}}</mat-label>\r\n <mat-select formControlName=\"indices\" multiple [sortComparator]=\"sortComparator\">\r\n <mat-option *ngFor=\"let x of cube?.indices\" [value]=\"x.name\">{{x.title }}</mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n <ng-container *ngSwitchCase=\"'Chart'\">\r\n <mat-form-field>\r\n <mat-label>{{'ChartType'|translate}}</mat-label>\r\n <mat-select formControlName=\"chartType\">\r\n <mat-option value=\"Column\">{{'Column'|translate}}</mat-option>\r\n <mat-option value=\"Bar\">{{'Bar'|translate}}</mat-option>\r\n <mat-option value=\"Line\">{{'Line'|translate}}</mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n </ng-container>\r\n </ng-container>\r\n <bizdoc-designer-cube-filter *ngIf=\"cube\" [cube]=\"cube\" [form]=\"form.get('filters')\"></bizdoc-designer-cube-filter>\r\n </form>\r\n</ng-template>\r\n", styles: [""], dependencies: [{ kind: "directive", type: i1$4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1$4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$4.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i1$4.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i1$3.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { 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.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { 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: i3$4.MatRadioGroup, selector: "mat-radio-group", exportAs: ["matRadioGroup"] }, { kind: "component", type: i3$4.MatRadioButton, selector: "mat-radio-button", inputs: ["disableRipple", "tabIndex"], exportAs: ["matRadioButton"] }, { kind: "component", type: i3$1.MatOption, selector: "mat-option", exportAs: ["matOption"] }, { kind: "directive", type: i4.MatError, selector: "mat-error", inputs: ["id"] }, { kind: "component", type: i4.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i4.MatLabel, selector: "mat-label" }, { kind: "component", type: i5.MatSelect, selector: "mat-select", inputs: ["disabled", "disableRipple", "tabIndex"], exportAs: ["matSelect"] }, { kind: "component", type: DesignerCubeFilterComponent, selector: "bizdoc-designer-cube-filter", inputs: ["cube", "form"] }, { kind: "pipe", type: TranslatePipe, name: "translate" }] });
34503
34522
  UsageReportDesignComponent = __decorate([
34504
34523
  BizDoc({ selector: 'usage-report-designer' })
34505
34524
  ], UsageReportDesignComponent);