@datarailsshared/datarailsshared 1.5.420 → 1.5.422

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.
@@ -13,7 +13,7 @@ export class DrTabComponent {
13
13
  } if (rf & 2) {
14
14
  let _t;
15
15
  i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.contentTemplate = _t.first);
16
- } }, inputs: { label: "label", icon: "icon", disabled: "disabled", tooltip: "tooltip" }, ngContentSelectors: _c0, decls: 1, vars: 0, template: function DrTabComponent_Template(rf, ctx) { if (rf & 1) {
16
+ } }, inputs: { id: "id", label: "label", icon: "icon", disabled: "disabled", tooltip: "tooltip" }, ngContentSelectors: _c0, decls: 1, vars: 0, template: function DrTabComponent_Template(rf, ctx) { if (rf & 1) {
17
17
  i0.ɵɵprojectionDef();
18
18
  i0.ɵɵtemplate(0, DrTabComponent_ng_template_0_Template, 1, 0, "ng-template");
19
19
  } }, encapsulation: 2 }); }
@@ -28,7 +28,9 @@ export class DrTabComponent {
28
28
  </ng-template>
29
29
  `,
30
30
  }]
31
- }], function () { return []; }, { label: [{
31
+ }], function () { return []; }, { id: [{
32
+ type: Input
33
+ }], label: [{
32
34
  type: Input
33
35
  }], icon: [{
34
36
  type: Input
@@ -40,4 +42,4 @@ export class DrTabComponent {
40
42
  type: ViewChild,
41
43
  args: [TemplateRef]
42
44
  }] }); })();
43
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHItdGFiLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2RhdGFyYWlsc3NoYXJlZC9zcmMvbGliL2RyLXRhYnMvZHItdGFiLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBVSxXQUFXLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7SUFNckUsa0JBQXlCOzs7QUFJckMsTUFBTSxPQUFPLGNBQWM7SUFPdkIsZ0JBQWUsQ0FBQztJQUVoQixRQUFRLEtBQUksQ0FBQztrR0FUSixjQUFjO21HQUFkLGNBQWM7MkJBS1osV0FBVzs7Ozs7O1lBVmxCLDRFQUVjOzs7dUZBR1QsY0FBYztjQVIxQixTQUFTO2VBQUM7Z0JBQ1AsUUFBUSxFQUFFLFFBQVE7Z0JBQ2xCLFFBQVEsRUFBRTs7OztLQUlUO2FBQ0o7c0NBRVksS0FBSztrQkFBYixLQUFLO1lBQ0csSUFBSTtrQkFBWixLQUFLO1lBQ0csUUFBUTtrQkFBaEIsS0FBSztZQUNHLE9BQU87a0JBQWYsS0FBSztZQUN5QixlQUFlO2tCQUE3QyxTQUFTO21CQUFDLFdBQVciLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPbkluaXQsIFRlbXBsYXRlUmVmLCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdkci10YWInLFxuICAgIHRlbXBsYXRlOiBgXG4gICAgICAgIDxuZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICBgLFxufSlcbmV4cG9ydCBjbGFzcyBEclRhYkNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gICAgQElucHV0KCkgbGFiZWw6IHN0cmluZztcbiAgICBASW5wdXQoKSBpY29uOiBzdHJpbmc7XG4gICAgQElucHV0KCkgZGlzYWJsZWQ6IGJvb2xlYW47XG4gICAgQElucHV0KCkgdG9vbHRpcDogc3RyaW5nO1xuICAgIEBWaWV3Q2hpbGQoVGVtcGxhdGVSZWYpIHB1YmxpYyBjb250ZW50VGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgICBjb25zdHJ1Y3RvcigpIHt9XG5cbiAgICBuZ09uSW5pdCgpIHt9XG59XG4iXX0=
45
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHItdGFiLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2RhdGFyYWlsc3NoYXJlZC9zcmMvbGliL2RyLXRhYnMvZHItdGFiLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBVSxXQUFXLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7SUFNckUsa0JBQXlCOzs7QUFJckMsTUFBTSxPQUFPLGNBQWM7SUFRdkIsZ0JBQWUsQ0FBQztJQUVoQixRQUFRLEtBQUksQ0FBQztrR0FWSixjQUFjO21HQUFkLGNBQWM7MkJBTVosV0FBVzs7Ozs7O1lBWGxCLDRFQUVjOzs7dUZBR1QsY0FBYztjQVIxQixTQUFTO2VBQUM7Z0JBQ1AsUUFBUSxFQUFFLFFBQVE7Z0JBQ2xCLFFBQVEsRUFBRTs7OztLQUlUO2FBQ0o7c0NBRVksRUFBRTtrQkFBVixLQUFLO1lBQ0csS0FBSztrQkFBYixLQUFLO1lBQ0csSUFBSTtrQkFBWixLQUFLO1lBQ0csUUFBUTtrQkFBaEIsS0FBSztZQUNHLE9BQU87a0JBQWYsS0FBSztZQUN5QixlQUFlO2tCQUE3QyxTQUFTO21CQUFDLFdBQVciLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPbkluaXQsIFRlbXBsYXRlUmVmLCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdkci10YWInLFxuICAgIHRlbXBsYXRlOiBgXG4gICAgICAgIDxuZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICBgLFxufSlcbmV4cG9ydCBjbGFzcyBEclRhYkNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gICAgQElucHV0KCkgaWQ6IG51bWJlcjtcbiAgICBASW5wdXQoKSBsYWJlbDogc3RyaW5nO1xuICAgIEBJbnB1dCgpIGljb246IHN0cmluZztcbiAgICBASW5wdXQoKSBkaXNhYmxlZDogYm9vbGVhbjtcbiAgICBASW5wdXQoKSB0b29sdGlwOiBzdHJpbmc7XG4gICAgQFZpZXdDaGlsZChUZW1wbGF0ZVJlZikgcHVibGljIGNvbnRlbnRUZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcblxuICAgIGNvbnN0cnVjdG9yKCkge31cblxuICAgIG5nT25Jbml0KCkge31cbn1cbiJdfQ==
@@ -1,5 +1,6 @@
1
1
  import { ChangeDetectorRef, Component, ContentChildren, EventEmitter, Input, Output, QueryList } from '@angular/core';
2
2
  import { DrTabComponent } from './dr-tab.component';
3
+ import { isNil } from 'lodash';
3
4
  import * as i0 from "@angular/core";
4
5
  import * as i1 from "@angular/common";
5
6
  import * as i2 from "@angular/material/tabs";
@@ -94,20 +95,58 @@ export class DrTabsComponent {
94
95
  });
95
96
  }
96
97
  }
98
+ set selectedTabId(value) {
99
+ this._selectedIndexById = value || 0;
100
+ this._selectedIndex = this.getTabIndexById(this._selectedIndexById);
101
+ /**
102
+ * Hack to disable animation calculation in case the pre-selected tab is not at index 0.
103
+ * Otherwise, the animation of redirecting to the pre-selected tab will conflict
104
+ * with the animation of the tab at index 0.
105
+ */
106
+ if (this._selectedIndexById) {
107
+ this._disableAnimation = true;
108
+ setTimeout(() => {
109
+ this._disableAnimation = false;
110
+ });
111
+ }
112
+ }
97
113
  constructor(cdr) {
98
114
  this.cdr = cdr;
99
115
  this._disableAnimation = true;
100
116
  this._selectedIndex = 0;
117
+ this._selectedIndexById = 0;
101
118
  this.theme = 'primary';
102
119
  this.noBodyPadding = false;
103
120
  this.hideTabs = false;
104
121
  this.noHeaderBorder = false;
105
122
  this.noTabLabelsPadding = false;
106
123
  this.selectedTabChange = new EventEmitter();
124
+ this.selectedTabIdChange = new EventEmitter();
125
+ }
126
+ ngAfterViewInit() {
127
+ const selectedTabIdx = this.getTabIndexById(this._selectedIndexById);
128
+ if (~selectedTabIdx && !isNil(this._selectedIndexById)) {
129
+ this._selectedIndex = selectedTabIdx;
130
+ }
107
131
  }
108
132
  selectedIndexChange($event) {
109
133
  this._selectedIndex = $event;
110
134
  this.selectedTabChange.emit($event);
135
+ if (this.tabsContentList) {
136
+ const tabId = this.tabsContentList.get($event).id;
137
+ this.selectedTabIdChange.emit(tabId);
138
+ }
139
+ }
140
+ getTabIndexById(tabId) {
141
+ if (!this.tabsContentList)
142
+ return 0;
143
+ const currentTabIdx = this.tabsContentList.reduce((acc, drTab, idx) => {
144
+ if (drTab.id === tabId) {
145
+ acc = idx;
146
+ }
147
+ return acc;
148
+ }, -1);
149
+ return ~currentTabIdx ? currentTabIdx : 0;
111
150
  }
112
151
  /** @nocollapse */ static { this.ɵfac = function DrTabsComponent_Factory(t) { return new (t || DrTabsComponent)(i0.ɵɵdirectiveInject(i0.ChangeDetectorRef)); }; }
113
152
  /** @nocollapse */ static { this.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DrTabsComponent, selectors: [["dr-tabs"]], contentQueries: function DrTabsComponent_ContentQueries(rf, ctx, dirIndex) { if (rf & 1) {
@@ -115,7 +154,7 @@ export class DrTabsComponent {
115
154
  } if (rf & 2) {
116
155
  let _t;
117
156
  i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.tabsContentList = _t);
118
- } }, inputs: { theme: "theme", selectedTab: "selectedTab", withRadio: "withRadio", withIcon: "withIcon", vertical: "vertical", noBodyPadding: "noBodyPadding", hideTabs: "hideTabs", noHeaderBorder: "noHeaderBorder", noTabLabelsPadding: "noTabLabelsPadding" }, outputs: { selectedTabChange: "selectedTabChange" }, decls: 2, vars: 16, consts: [["disableRipple", "", 3, "ngClass", "selectedIndex", "animationDuration", "selectedIndexChange"], [3, "label", "disabled", 4, "ngFor", "ngForOf"], [3, "label", "disabled"], [4, "ngIf"], [4, "ngTemplateOutlet"], ["mat-tab-label", ""], [3, "value", "ngModel", "ngModelChange"], [1, "cursor-pointer", 3, "drTooltip"], [1, "icon-tab__wrapper"], [1, "cursor-pointer", 3, "ngClass"]], template: function DrTabsComponent_Template(rf, ctx) { if (rf & 1) {
157
+ } }, inputs: { theme: "theme", selectedTab: "selectedTab", selectedTabId: "selectedTabId", withRadio: "withRadio", withIcon: "withIcon", vertical: "vertical", noBodyPadding: "noBodyPadding", hideTabs: "hideTabs", noHeaderBorder: "noHeaderBorder", noTabLabelsPadding: "noTabLabelsPadding" }, outputs: { selectedTabChange: "selectedTabChange", selectedTabIdChange: "selectedTabIdChange" }, decls: 2, vars: 16, consts: [["disableRipple", "", 3, "ngClass", "selectedIndex", "animationDuration", "selectedIndexChange"], [3, "label", "disabled", 4, "ngFor", "ngForOf"], [3, "label", "disabled"], [4, "ngIf"], [4, "ngTemplateOutlet"], ["mat-tab-label", ""], [3, "value", "ngModel", "ngModelChange"], [1, "cursor-pointer", 3, "drTooltip"], [1, "icon-tab__wrapper"], [1, "cursor-pointer", 3, "ngClass"]], template: function DrTabsComponent_Template(rf, ctx) { if (rf & 1) {
119
158
  i0.ɵɵelementStart(0, "mat-tab-group", 0);
120
159
  i0.ɵɵlistener("selectedIndexChange", function DrTabsComponent_Template_mat_tab_group_selectedIndexChange_0_listener($event) { return ctx.selectedIndexChange($event); });
121
160
  i0.ɵɵtemplate(1, DrTabsComponent_mat_tab_1_Template, 5, 6, "mat-tab", 1);
@@ -134,6 +173,8 @@ export class DrTabsComponent {
134
173
  type: Input
135
174
  }], selectedTab: [{
136
175
  type: Input
176
+ }], selectedTabId: [{
177
+ type: Input
137
178
  }], withRadio: [{
138
179
  type: Input
139
180
  }], withIcon: [{
@@ -150,8 +191,10 @@ export class DrTabsComponent {
150
191
  type: Input
151
192
  }], selectedTabChange: [{
152
193
  type: Output
194
+ }], selectedTabIdChange: [{
195
+ type: Output
153
196
  }], tabsContentList: [{
154
197
  type: ContentChildren,
155
198
  args: [DrTabComponent]
156
199
  }] }); })();
157
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHItdGFicy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kYXRhcmFpbHNzaGFyZWQvc3JjL2xpYi9kci10YWJzL2RyLXRhYnMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGF0YXJhaWxzc2hhcmVkL3NyYy9saWIvZHItdGFicy9kci10YWJzLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxTQUFTLEVBQUUsZUFBZSxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN0SCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7Ozs7Ozs7OztJQ2NwQywwQ0FBOEQ7SUFBN0IsK1FBQTRCO0lBQUUsaUJBQWtCO0lBQ2pGLFlBQ0o7Ozs7OztJQUZxQixnQ0FBZSxrQ0FBQTtJQUNoQyxlQUNKO0lBREksNkNBQ0o7OztJQUpKLDZCQUFnQztJQUM1Qix5R0FHYztJQUNsQiwwQkFBZTs7O0lBR1AsZ0NBQXdEO0lBQUEsWUFBZTtJQUFBLGlCQUFROzs7SUFBakQsMENBQXlCO0lBQUMsZUFBZTtJQUFmLGtDQUFlOzs7SUFGL0UsNkJBQTZEO0lBQ3pELHlHQUVjO0lBQ2xCLDBCQUFlOzs7SUFHUCwrQkFBZ0M7SUFDNUIsdUJBQW1EO0lBQ3ZELGlCQUFPOzs7SUFEQSxlQUFvQjtJQUFwQixxQ0FBb0I7OztJQUhuQyw2QkFBK0I7SUFDM0IseUdBSWM7SUFDbEIsMEJBQWU7OztJQUNmLHdCQUFxRTs7O0lBbkJ6RSxrQ0FBa0g7SUFDOUcsNEZBS2U7SUFDZiw0RkFJZTtJQUNmLDRGQU1lO0lBQ2YsNEZBQXFFO0lBQ3pFLGlCQUFVOzs7O0lBcEJzRCwrQ0FBdUI7SUFBQywwQ0FBeUI7SUFDOUYsZUFBZTtJQUFmLHVDQUFlO0lBTWYsZUFBNEM7SUFBNUMsOEVBQTRDO0lBSzVDLGVBQWM7SUFBZCxzQ0FBYztJQU9kLGVBQXFDO0lBQXJDLHlEQUFxQzs7QUR2QjVELE1BQU0sT0FBTyxlQUFlO0lBSXhCLElBQWEsV0FBVyxDQUFDLEtBQUs7UUFDMUIsSUFBSSxDQUFDLGNBQWMsR0FBRyxLQUFLLElBQUksQ0FBQyxDQUFDO1FBRWpDOzs7O1dBSUc7UUFDSCxJQUFJLElBQUksQ0FBQyxjQUFjLEVBQUU7WUFDckIsSUFBSSxDQUFDLGlCQUFpQixHQUFHLElBQUksQ0FBQztZQUM5QixVQUFVLENBQUMsR0FBRyxFQUFFO2dCQUNaLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxLQUFLLENBQUM7WUFDbkMsQ0FBQyxDQUFDLENBQUM7U0FDTjtJQUNMLENBQUM7SUFXRCxZQUFzQixHQUFzQjtRQUF0QixRQUFHLEdBQUgsR0FBRyxDQUFtQjtRQTVCNUMsc0JBQWlCLEdBQUcsSUFBSSxDQUFDO1FBQ3pCLG1CQUFjLEdBQUcsQ0FBQyxDQUFDO1FBQ1YsVUFBSyxHQUFXLFNBQVMsQ0FBQztRQW1CMUIsa0JBQWEsR0FBRyxLQUFLLENBQUM7UUFDdEIsYUFBUSxHQUFHLEtBQUssQ0FBQztRQUNqQixtQkFBYyxHQUFHLEtBQUssQ0FBQztRQUN2Qix1QkFBa0IsR0FBRyxLQUFLLENBQUM7UUFDMUIsc0JBQWlCLEdBQXNCLElBQUksWUFBWSxFQUFPLENBQUM7SUFHMUIsQ0FBQztJQUVoRCxtQkFBbUIsQ0FBQyxNQUFNO1FBQ3RCLElBQUksQ0FBQyxjQUFjLEdBQUcsTUFBTSxDQUFDO1FBQzdCLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDeEMsQ0FBQzttR0FsQ1EsZUFBZTttR0FBZixlQUFlO3dDQTJCUCxjQUFjOzs7OztZQ25DbkMsd0NBVzBFO1lBUHRFLHFJQUF1QiwrQkFBMkIsSUFBQztZQVFuRCx3RUFvQlU7WUFDZCxpQkFBZ0I7O1lBNUJaLDJDQUE4QiwwQkFBQSxpREFBQSxzQ0FBQSx5QkFBQSx3Q0FBQTtZQUg5QixtQ0FBaUIscUNBQUEsOEVBQUE7WUFVUSxlQUFvQjtZQUFwQiw2Q0FBb0I7Ozt1RkRKcEMsZUFBZTtjQUwzQixTQUFTOzJCQUNJLFNBQVM7b0VBT1YsS0FBSztrQkFBYixLQUFLO1lBQ08sV0FBVztrQkFBdkIsS0FBSztZQWVHLFNBQVM7a0JBQWpCLEtBQUs7WUFDRyxRQUFRO2tCQUFoQixLQUFLO1lBQ0csUUFBUTtrQkFBaEIsS0FBSztZQUNHLGFBQWE7a0JBQXJCLEtBQUs7WUFDRyxRQUFRO2tCQUFoQixLQUFLO1lBQ0csY0FBYztrQkFBdEIsS0FBSztZQUNHLGtCQUFrQjtrQkFBMUIsS0FBSztZQUNJLGlCQUFpQjtrQkFBMUIsTUFBTTtZQUNpQyxlQUFlO2tCQUF0RCxlQUFlO21CQUFDLGNBQWMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LCBDb250ZW50Q2hpbGRyZW4sIEV2ZW50RW1pdHRlciwgSW5wdXQsIE91dHB1dCwgUXVlcnlMaXN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBEclRhYkNvbXBvbmVudCB9IGZyb20gJy4vZHItdGFiLmNvbXBvbmVudCc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnZHItdGFicycsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2RyLXRhYnMuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2RyLXRhYnMuY29tcG9uZW50LnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgRHJUYWJzQ29tcG9uZW50IHtcbiAgICBfZGlzYWJsZUFuaW1hdGlvbiA9IHRydWU7XG4gICAgX3NlbGVjdGVkSW5kZXggPSAwO1xuICAgIEBJbnB1dCgpIHRoZW1lOiBzdHJpbmcgPSAncHJpbWFyeSc7XG4gICAgQElucHV0KCkgc2V0IHNlbGVjdGVkVGFiKHZhbHVlKSB7XG4gICAgICAgIHRoaXMuX3NlbGVjdGVkSW5kZXggPSB2YWx1ZSB8fCAwO1xuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBIYWNrIHRvIGRpc2FibGUgYW5pbWF0aW9uIGNhbGN1bGF0aW9uIGluIGNhc2UgdGhlIHByZS1zZWxlY3RlZCB0YWIgaXMgbm90IGF0IGluZGV4IDAuXG4gICAgICAgICAqIE90aGVyd2lzZSwgdGhlIGFuaW1hdGlvbiBvZiByZWRpcmVjdGluZyB0byB0aGUgcHJlLXNlbGVjdGVkIHRhYiB3aWxsIGNvbmZsaWN0XG4gICAgICAgICAqIHdpdGggdGhlIGFuaW1hdGlvbiBvZiB0aGUgdGFiIGF0IGluZGV4IDAuXG4gICAgICAgICAqL1xuICAgICAgICBpZiAodGhpcy5fc2VsZWN0ZWRJbmRleCkge1xuICAgICAgICAgICAgdGhpcy5fZGlzYWJsZUFuaW1hdGlvbiA9IHRydWU7XG4gICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9kaXNhYmxlQW5pbWF0aW9uID0gZmFsc2U7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBASW5wdXQoKSB3aXRoUmFkaW86IGJvb2xlYW47XG4gICAgQElucHV0KCkgd2l0aEljb246IGJvb2xlYW47XG4gICAgQElucHV0KCkgdmVydGljYWw6IGJvb2xlYW47XG4gICAgQElucHV0KCkgbm9Cb2R5UGFkZGluZyA9IGZhbHNlO1xuICAgIEBJbnB1dCgpIGhpZGVUYWJzID0gZmFsc2U7XG4gICAgQElucHV0KCkgbm9IZWFkZXJCb3JkZXIgPSBmYWxzZTtcbiAgICBASW5wdXQoKSBub1RhYkxhYmVsc1BhZGRpbmcgPSBmYWxzZTtcbiAgICBAT3V0cHV0KCkgc2VsZWN0ZWRUYWJDaGFuZ2U6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gICAgQENvbnRlbnRDaGlsZHJlbihEclRhYkNvbXBvbmVudCkgcHVibGljIHRhYnNDb250ZW50TGlzdDogUXVlcnlMaXN0PERyVGFiQ29tcG9uZW50PjtcblxuICAgIGNvbnN0cnVjdG9yKHByb3RlY3RlZCBjZHI6IENoYW5nZURldGVjdG9yUmVmKSB7fVxuXG4gICAgc2VsZWN0ZWRJbmRleENoYW5nZSgkZXZlbnQpIHtcbiAgICAgICAgdGhpcy5fc2VsZWN0ZWRJbmRleCA9ICRldmVudDtcbiAgICAgICAgdGhpcy5zZWxlY3RlZFRhYkNoYW5nZS5lbWl0KCRldmVudCk7XG4gICAgfVxufVxuIiwiPG1hdC10YWItZ3JvdXBcbiAgICBkaXNhYmxlUmlwcGxlXG4gICAgW25nQ2xhc3NdPVwidGhlbWVcIlxuICAgIFtzZWxlY3RlZEluZGV4XT1cIl9zZWxlY3RlZEluZGV4XCJcbiAgICAoc2VsZWN0ZWRJbmRleENoYW5nZSk9XCJzZWxlY3RlZEluZGV4Q2hhbmdlKCRldmVudClcIlxuICAgIFtjbGFzcy53aXRoLXJhZGlvXT1cIndpdGhSYWRpb1wiXG4gICAgW2NsYXNzLnZlcnRpY2FsXT1cInZlcnRpY2FsXCJcbiAgICBbY2xhc3Mubm8tdGFiLWxhYmVscy1wYWRkaW5nXT1cIm5vVGFiTGFiZWxzUGFkZGluZ1wiXG4gICAgW2NsYXNzLm5vLWJvZHktcGFkZGluZ109XCJub0JvZHlQYWRkaW5nXCJcbiAgICBbY2xhc3Mubm8tdGFic109XCJoaWRlVGFic1wiXG4gICAgW2NsYXNzLm5vLWhlYWRlci1ib3JkZXJdPVwibm9IZWFkZXJCb3JkZXJcIlxuICAgIFthbmltYXRpb25EdXJhdGlvbl09XCJ2ZXJ0aWNhbCB8fCBfZGlzYWJsZUFuaW1hdGlvbiA/ICcwbXMnIDogJzUwMG1zJ1wiPlxuICAgIDxtYXQtdGFiICpuZ0Zvcj1cImxldCB0YWIgb2YgdGFic0NvbnRlbnRMaXN0OyBsZXQgaW5kZXggPSBpbmRleFwiIGxhYmVsPVwie3sgdGFiLmxhYmVsIH19XCIgW2Rpc2FibGVkXT1cInRhYi5kaXNhYmxlZFwiPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwid2l0aFJhZGlvXCI+XG4gICAgICAgICAgICA8bmctdGVtcGxhdGUgbWF0LXRhYi1sYWJlbD5cbiAgICAgICAgICAgICAgICA8ZHItcmFkaW8tYnV0dG9uIFt2YWx1ZV09XCJpbmRleFwiIFsobmdNb2RlbCldPVwiX3NlbGVjdGVkSW5kZXhcIj4gPC9kci1yYWRpby1idXR0b24+XG4gICAgICAgICAgICAgICAge3sgdGFiLmxhYmVsIH19XG4gICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInRhYi50b29sdGlwICYmICF3aXRoUmFkaW8gJiYgIXdpdGhJY29uXCI+XG4gICAgICAgICAgICA8bmctdGVtcGxhdGUgbWF0LXRhYi1sYWJlbD5cbiAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJjdXJzb3ItcG9pbnRlclwiIFtkclRvb2x0aXBdPVwidGFiLnRvb2x0aXBcIj57eyB0YWIubGFiZWwgfX08L2xhYmVsPlxuICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJ3aXRoSWNvblwiPlxuICAgICAgICAgICAgPG5nLXRlbXBsYXRlIG1hdC10YWItbGFiZWw+XG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJpY29uLXRhYl9fd3JhcHBlclwiPlxuICAgICAgICAgICAgICAgICAgICA8aSBbbmdDbGFzc109XCJ0YWIuaWNvblwiIGNsYXNzPVwiY3Vyc29yLXBvaW50ZXJcIj48L2k+XG4gICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJ0YWIuY29udGVudFRlbXBsYXRlXCI+PC9uZy1jb250YWluZXI+XG4gICAgPC9tYXQtdGFiPlxuPC9tYXQtdGFiLWdyb3VwPlxuIl19
200
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHItdGFicy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kYXRhcmFpbHNzaGFyZWQvc3JjL2xpYi9kci10YWJzL2RyLXRhYnMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGF0YXJhaWxzc2hhcmVkL3NyYy9saWIvZHItdGFicy9kci10YWJzLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBaUIsaUJBQWlCLEVBQUUsU0FBUyxFQUFFLGVBQWUsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDckksT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3BELE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxRQUFRLENBQUM7Ozs7Ozs7OztJQ2FmLDBDQUE4RDtJQUE3QiwrUUFBNEI7SUFBRSxpQkFBa0I7SUFDakYsWUFDSjs7Ozs7O0lBRnFCLGdDQUFlLGtDQUFBO0lBQ2hDLGVBQ0o7SUFESSw2Q0FDSjs7O0lBSkosNkJBQWdDO0lBQzVCLHlHQUdjO0lBQ2xCLDBCQUFlOzs7SUFHUCxnQ0FBd0Q7SUFBQSxZQUFlO0lBQUEsaUJBQVE7OztJQUFqRCwwQ0FBeUI7SUFBQyxlQUFlO0lBQWYsa0NBQWU7OztJQUYvRSw2QkFBNkQ7SUFDekQseUdBRWM7SUFDbEIsMEJBQWU7OztJQUdQLCtCQUFnQztJQUM1Qix1QkFBbUQ7SUFDdkQsaUJBQU87OztJQURBLGVBQW9CO0lBQXBCLHFDQUFvQjs7O0lBSG5DLDZCQUErQjtJQUMzQix5R0FJYztJQUNsQiwwQkFBZTs7O0lBQ2Ysd0JBQXFFOzs7SUFuQnpFLGtDQUFrSDtJQUM5Ryw0RkFLZTtJQUNmLDRGQUllO0lBQ2YsNEZBTWU7SUFDZiw0RkFBcUU7SUFDekUsaUJBQVU7Ozs7SUFwQnNELCtDQUF1QjtJ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O1FBQ2YsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFFUCxPQUFPLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUM5QyxDQUFDO21HQWxGUSxlQUFlO21HQUFmLGVBQWU7d0NBaURQLGNBQWM7Ozs7O1lDMURuQyx3Q0FXMEU7WUFQdEUscUlBQXVCLCtCQUEyQixJQUFDO1lBUW5ELHdFQW9CVTtZQUNkLGlCQUFnQjs7WUE1QlosMkNBQThCLDBCQUFBLGlEQUFBLHNDQUFBLHlCQUFBLHdDQUFBO1lBSDlCLG1DQUFpQixxQ0FBQSw4RUFBQTtZQVVRLGVBQW9CO1lBQXBCLDZDQUFvQjs7O3VGREhwQyxlQUFlO2NBTDNCLFNBQVM7MkJBQ0ksU0FBUztvRUFTVixLQUFLO2tCQUFiLEtBQUs7WUFFTyxXQUFXO2tCQUF2QixLQUFLO1lBZ0JPLGFBQWE7a0JBQXpCLEtBQUs7WUFpQkcsU0FBUztrQkFBakIsS0FBSztZQUNHLFFBQVE7a0JBQWhCLEtBQUs7WUFDRyxRQUFRO2tCQUFoQixLQUFLO1lBQ0csYUFBYTtrQkFBckIsS0FBSztZQUNHLFFBQVE7a0JBQWhCLEtBQUs7WUFDRyxjQUFjO2tCQUF0QixLQUFLO1lBQ0csa0JBQWtCO2tCQUExQixLQUFLO1lBQ0ksaUJBQWlCO2tCQUExQixNQUFNO1lBQ0csbUJBQW1CO2tCQUE1QixNQUFNO1lBQ2lDLGVBQWU7a0JBQXRELGVBQWU7bUJBQUMsY0FBYyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFmdGVyVmlld0luaXQsIENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIENvbnRlbnRDaGlsZHJlbiwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT3V0cHV0LCBRdWVyeUxpc3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IERyVGFiQ29tcG9uZW50IH0gZnJvbSAnLi9kci10YWIuY29tcG9uZW50JztcbmltcG9ydCB7IGlzTmlsIH0gZnJvbSAnbG9kYXNoJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdkci10YWJzJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vZHItdGFicy5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vZHItdGFicy5jb21wb25lbnQuc2NzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBEclRhYnNDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0IHtcbiAgICBfZGlzYWJsZUFuaW1hdGlvbiA9IHRydWU7XG4gICAgX3NlbGVjdGVkSW5kZXggPSAwO1xuICAgIF9zZWxlY3RlZEluZGV4QnlJZCA9IDA7XG5cbiAgICBASW5wdXQoKSB0aGVtZTogc3RyaW5nID0gJ3ByaW1hcnknO1xuXG4gICAgQElucHV0KCkgc2V0IHNlbGVjdGVkVGFiKHZhbHVlKSB7XG4gICAgICAgIHRoaXMuX3NlbGVjdGVkSW5kZXggPSB2YWx1ZSB8fCAwO1xuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBIYWNrIHRvIGRpc2FibGUgYW5pbWF0aW9uIGNhbGN1bGF0aW9uIGluIGNhc2UgdGhlIHByZS1zZWxlY3RlZCB0YWIgaXMgbm90IGF0IGluZGV4IDAuXG4gICAgICAgICAqIE90aGVyd2lzZSwgdGhlIGFuaW1hdGlvbiBvZiByZWRpcmVjdGluZyB0byB0aGUgcHJlLXNlbGVjdGVkIHRhYiB3aWxsIGNvbmZsaWN0XG4gICAgICAgICAqIHdpdGggdGhlIGFuaW1hdGlvbiBvZiB0aGUgdGFiIGF0IGluZGV4IDAuXG4gICAgICAgICAqL1xuICAgICAgICBpZiAodGhpcy5fc2VsZWN0ZWRJbmRleCkge1xuICAgICAgICAgICAgdGhpcy5fZGlzYWJsZUFuaW1hdGlvbiA9IHRydWU7XG4gICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLl9kaXNhYmxlQW5pbWF0aW9uID0gZmFsc2U7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIEBJbnB1dCgpIHNldCBzZWxlY3RlZFRhYklkKHZhbHVlOiBudW1iZXIpIHtcbiAgICAgICAgdGhpcy5fc2VsZWN0ZWRJbmRleEJ5SWQgPSB2YWx1ZSB8fCAwO1xuICAgICAgICB0aGlzLl9zZWxlY3RlZEluZGV4ID0gdGhpcy5nZXRUYWJJbmRleEJ5SWQodGhpcy5fc2VsZWN0ZWRJbmRleEJ5SWQpO1xuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBIYWNrIHRvIGRpc2FibGUgYW5pbWF0aW9uIGNhbGN1bGF0aW9uIGluIGNhc2UgdGhlIHByZS1zZWxlY3RlZCB0YWIgaXMgbm90IGF0IGluZGV4IDAuXG4gICAgICAgICAqIE90aGVyd2lzZSwgdGhlIGFuaW1hdGlvbiBvZiByZWRpcmVjdGluZyB0byB0aGUgcHJlLXNlbGVjdGVkIHRhYiB3aWxsIGNvbmZsaWN0XG4gICAgICAgICAqIHdpdGggdGhlIGFuaW1hdGlvbiBvZiB0aGUgdGFiIGF0IGluZGV4IDAuXG4gICAgICAgICAqL1xuICAgICAgICBpZiAodGhpcy5fc2VsZWN0ZWRJbmRleEJ5SWQpIHtcbiAgICAgICAgICAgIHRoaXMuX2Rpc2FibGVBbmltYXRpb24gPSB0cnVlO1xuICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5fZGlzYWJsZUFuaW1hdGlvbiA9IGZhbHNlO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBASW5wdXQoKSB3aXRoUmFkaW86IGJvb2xlYW47XG4gICAgQElucHV0KCkgd2l0aEljb246IGJvb2xlYW47XG4gICAgQElucHV0KCkgdmVydGljYWw6IGJvb2xlYW47XG4gICAgQElucHV0KCkgbm9Cb2R5UGFkZGluZyA9IGZhbHNlO1xuICAgIEBJbnB1dCgpIGhpZGVUYWJzID0gZmFsc2U7XG4gICAgQElucHV0KCkgbm9IZWFkZXJCb3JkZXIgPSBmYWxzZTtcbiAgICBASW5wdXQoKSBub1RhYkxhYmVsc1BhZGRpbmcgPSBmYWxzZTtcbiAgICBAT3V0cHV0KCkgc2VsZWN0ZWRUYWJDaGFuZ2U6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gICAgQE91dHB1dCgpIHNlbGVjdGVkVGFiSWRDaGFuZ2U6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gICAgQENvbnRlbnRDaGlsZHJlbihEclRhYkNvbXBvbmVudCkgcHVibGljIHRhYnNDb250ZW50TGlzdDogUXVlcnlMaXN0PERyVGFiQ29tcG9uZW50PjtcblxuICAgIGNvbnN0cnVjdG9yKHByb3RlY3RlZCBjZHI6IENoYW5nZURldGVjdG9yUmVmKSB7fVxuXG4gICAgbmdBZnRlclZpZXdJbml0KCkge1xuICAgICAgICBjb25zdCBzZWxlY3RlZFRhYklkeCA9IHRoaXMuZ2V0VGFiSW5kZXhCeUlkKHRoaXMuX3NlbGVjdGVkSW5kZXhCeUlkKTtcbiAgICAgICAgaWYgKH5zZWxlY3RlZFRhYklkeCAmJiAhaXNOaWwodGhpcy5fc2VsZWN0ZWRJbmRleEJ5SWQpKSB7XG4gICAgICAgICAgICB0aGlzLl9zZWxlY3RlZEluZGV4ID0gc2VsZWN0ZWRUYWJJZHg7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBzZWxlY3RlZEluZGV4Q2hhbmdlKCRldmVudCkge1xuICAgICAgICB0aGlzLl9zZWxlY3RlZEluZGV4ID0gJGV2ZW50O1xuICAgICAgICB0aGlzLnNlbGVjdGVkVGFiQ2hhbmdlLmVtaXQoJGV2ZW50KTtcblxuICAgICAgICBpZiAodGhpcy50YWJzQ29udGVudExpc3QpIHtcbiAgICAgICAgICAgIGNvbnN0IHRhYklkID0gdGhpcy50YWJzQ29udGVudExpc3QuZ2V0KCRldmVudCkuaWQ7XG4gICAgICAgICAgICB0aGlzLnNlbGVjdGVkVGFiSWRDaGFuZ2UuZW1pdCh0YWJJZCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIGdldFRhYkluZGV4QnlJZCh0YWJJZDogbnVtYmVyKTogbnVtYmVyIHtcbiAgICAgICAgaWYgKCF0aGlzLnRhYnNDb250ZW50TGlzdCkgcmV0dXJuIDA7XG5cbiAgICAgICAgY29uc3QgY3VycmVudFRhYklkeCA9IHRoaXMudGFic0NvbnRlbnRMaXN0LnJlZHVjZSgoYWNjLCBkclRhYiwgaWR4KSA9PiB7XG4gICAgICAgICAgICBpZiAoZHJUYWIuaWQgPT09IHRhYklkKSB7XG4gICAgICAgICAgICAgICAgYWNjID0gaWR4O1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXR1cm4gYWNjO1xuICAgICAgICB9LCAtMSk7XG5cbiAgICAgICAgcmV0dXJuIH5jdXJyZW50VGFiSWR4ID8gY3VycmVudFRhYklkeCA6IDA7XG4gICAgfVxufVxuIiwiPG1hdC10YWItZ3JvdXBcbiAgICBkaXNhYmxlUmlwcGxlXG4gICAgW25nQ2xhc3NdPVwidGhlbWVcIlxuICAgIFtzZWxlY3RlZEluZGV4XT1cIl9zZWxlY3RlZEluZGV4XCJcbiAgICAoc2VsZWN0ZWRJbmRleENoYW5nZSk9XCJzZWxlY3RlZEluZGV4Q2hhbmdlKCRldmVudClcIlxuICAgIFtjbGFzcy53aXRoLXJhZGlvXT1cIndpdGhSYWRpb1wiXG4gICAgW2NsYXNzLnZlcnRpY2FsXT1cInZlcnRpY2FsXCJcbiAgICBbY2xhc3Mubm8tdGFiLWxhYmVscy1wYWRkaW5nXT1cIm5vVGFiTGFiZWxzUGFkZGluZ1wiXG4gICAgW2NsYXNzLm5vLWJvZHktcGFkZGluZ109XCJub0JvZHlQYWRkaW5nXCJcbiAgICBbY2xhc3Mubm8tdGFic109XCJoaWRlVGFic1wiXG4gICAgW2NsYXNzLm5vLWhlYWRlci1ib3JkZXJdPVwibm9IZWFkZXJCb3JkZXJcIlxuICAgIFthbmltYXRpb25EdXJhdGlvbl09XCJ2ZXJ0aWNhbCB8fCBfZGlzYWJsZUFuaW1hdGlvbiA/ICcwbXMnIDogJzUwMG1zJ1wiPlxuICAgIDxtYXQtdGFiICpuZ0Zvcj1cImxldCB0YWIgb2YgdGFic0NvbnRlbnRMaXN0OyBsZXQgaW5kZXggPSBpbmRleFwiIGxhYmVsPVwie3sgdGFiLmxhYmVsIH19XCIgW2Rpc2FibGVkXT1cInRhYi5kaXNhYmxlZFwiPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwid2l0aFJhZGlvXCI+XG4gICAgICAgICAgICA8bmctdGVtcGxhdGUgbWF0LXRhYi1sYWJlbD5cbiAgICAgICAgICAgICAgICA8ZHItcmFkaW8tYnV0dG9uIFt2YWx1ZV09XCJpbmRleFwiIFsobmdNb2RlbCldPVwiX3NlbGVjdGVkSW5kZXhcIj4gPC9kci1yYWRpby1idXR0b24+XG4gICAgICAgICAgICAgICAge3sgdGFiLmxhYmVsIH19XG4gICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInRhYi50b29sdGlwICYmICF3aXRoUmFkaW8gJiYgIXdpdGhJY29uXCI+XG4gICAgICAgICAgICA8bmctdGVtcGxhdGUgbWF0LXRhYi1sYWJlbD5cbiAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJjdXJzb3ItcG9pbnRlclwiIFtkclRvb2x0aXBdPVwidGFiLnRvb2x0aXBcIj57eyB0YWIubGFiZWwgfX08L2xhYmVsPlxuICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJ3aXRoSWNvblwiPlxuICAgICAgICAgICAgPG5nLXRlbXBsYXRlIG1hdC10YWItbGFiZWw+XG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJpY29uLXRhYl9fd3JhcHBlclwiPlxuICAgICAgICAgICAgICAgICAgICA8aSBbbmdDbGFzc109XCJ0YWIuaWNvblwiIGNsYXNzPVwiY3Vyc29yLXBvaW50ZXJcIj48L2k+XG4gICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJ0YWIuY29udGVudFRlbXBsYXRlXCI+PC9uZy1jb250YWluZXI+XG4gICAgPC9tYXQtdGFiPlxuPC9tYXQtdGFiLWdyb3VwPlxuIl19
@@ -8588,7 +8588,7 @@ class DrTabComponent {
8588
8588
  } if (rf & 2) {
8589
8589
  let _t;
8590
8590
  i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.contentTemplate = _t.first);
8591
- } }, inputs: { label: "label", icon: "icon", disabled: "disabled", tooltip: "tooltip" }, ngContentSelectors: _c0$d, decls: 1, vars: 0, template: function DrTabComponent_Template(rf, ctx) { if (rf & 1) {
8591
+ } }, inputs: { id: "id", label: "label", icon: "icon", disabled: "disabled", tooltip: "tooltip" }, ngContentSelectors: _c0$d, decls: 1, vars: 0, template: function DrTabComponent_Template(rf, ctx) { if (rf & 1) {
8592
8592
  i0.ɵɵprojectionDef();
8593
8593
  i0.ɵɵtemplate(0, DrTabComponent_ng_template_0_Template, 1, 0, "ng-template");
8594
8594
  } }, encapsulation: 2 }); }
@@ -8603,7 +8603,9 @@ class DrTabComponent {
8603
8603
  </ng-template>
8604
8604
  `,
8605
8605
  }]
8606
- }], function () { return []; }, { label: [{
8606
+ }], function () { return []; }, { id: [{
8607
+ type: Input
8608
+ }], label: [{
8607
8609
  type: Input
8608
8610
  }], icon: [{
8609
8611
  type: Input
@@ -8704,20 +8706,58 @@ class DrTabsComponent {
8704
8706
  });
8705
8707
  }
8706
8708
  }
8709
+ set selectedTabId(value) {
8710
+ this._selectedIndexById = value || 0;
8711
+ this._selectedIndex = this.getTabIndexById(this._selectedIndexById);
8712
+ /**
8713
+ * Hack to disable animation calculation in case the pre-selected tab is not at index 0.
8714
+ * Otherwise, the animation of redirecting to the pre-selected tab will conflict
8715
+ * with the animation of the tab at index 0.
8716
+ */
8717
+ if (this._selectedIndexById) {
8718
+ this._disableAnimation = true;
8719
+ setTimeout(() => {
8720
+ this._disableAnimation = false;
8721
+ });
8722
+ }
8723
+ }
8707
8724
  constructor(cdr) {
8708
8725
  this.cdr = cdr;
8709
8726
  this._disableAnimation = true;
8710
8727
  this._selectedIndex = 0;
8728
+ this._selectedIndexById = 0;
8711
8729
  this.theme = 'primary';
8712
8730
  this.noBodyPadding = false;
8713
8731
  this.hideTabs = false;
8714
8732
  this.noHeaderBorder = false;
8715
8733
  this.noTabLabelsPadding = false;
8716
8734
  this.selectedTabChange = new EventEmitter();
8735
+ this.selectedTabIdChange = new EventEmitter();
8736
+ }
8737
+ ngAfterViewInit() {
8738
+ const selectedTabIdx = this.getTabIndexById(this._selectedIndexById);
8739
+ if (~selectedTabIdx && !isNil(this._selectedIndexById)) {
8740
+ this._selectedIndex = selectedTabIdx;
8741
+ }
8717
8742
  }
8718
8743
  selectedIndexChange($event) {
8719
8744
  this._selectedIndex = $event;
8720
8745
  this.selectedTabChange.emit($event);
8746
+ if (this.tabsContentList) {
8747
+ const tabId = this.tabsContentList.get($event).id;
8748
+ this.selectedTabIdChange.emit(tabId);
8749
+ }
8750
+ }
8751
+ getTabIndexById(tabId) {
8752
+ if (!this.tabsContentList)
8753
+ return 0;
8754
+ const currentTabIdx = this.tabsContentList.reduce((acc, drTab, idx) => {
8755
+ if (drTab.id === tabId) {
8756
+ acc = idx;
8757
+ }
8758
+ return acc;
8759
+ }, -1);
8760
+ return ~currentTabIdx ? currentTabIdx : 0;
8721
8761
  }
8722
8762
  /** @nocollapse */ static { this.ɵfac = function DrTabsComponent_Factory(t) { return new (t || DrTabsComponent)(i0.ɵɵdirectiveInject(i0.ChangeDetectorRef)); }; }
8723
8763
  /** @nocollapse */ static { this.ɵcmp = /** @pureOrBreakMyCode */ i0.ɵɵdefineComponent({ type: DrTabsComponent, selectors: [["dr-tabs"]], contentQueries: function DrTabsComponent_ContentQueries(rf, ctx, dirIndex) { if (rf & 1) {
@@ -8725,7 +8765,7 @@ class DrTabsComponent {
8725
8765
  } if (rf & 2) {
8726
8766
  let _t;
8727
8767
  i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.tabsContentList = _t);
8728
- } }, inputs: { theme: "theme", selectedTab: "selectedTab", withRadio: "withRadio", withIcon: "withIcon", vertical: "vertical", noBodyPadding: "noBodyPadding", hideTabs: "hideTabs", noHeaderBorder: "noHeaderBorder", noTabLabelsPadding: "noTabLabelsPadding" }, outputs: { selectedTabChange: "selectedTabChange" }, decls: 2, vars: 16, consts: [["disableRipple", "", 3, "ngClass", "selectedIndex", "animationDuration", "selectedIndexChange"], [3, "label", "disabled", 4, "ngFor", "ngForOf"], [3, "label", "disabled"], [4, "ngIf"], [4, "ngTemplateOutlet"], ["mat-tab-label", ""], [3, "value", "ngModel", "ngModelChange"], [1, "cursor-pointer", 3, "drTooltip"], [1, "icon-tab__wrapper"], [1, "cursor-pointer", 3, "ngClass"]], template: function DrTabsComponent_Template(rf, ctx) { if (rf & 1) {
8768
+ } }, inputs: { theme: "theme", selectedTab: "selectedTab", selectedTabId: "selectedTabId", withRadio: "withRadio", withIcon: "withIcon", vertical: "vertical", noBodyPadding: "noBodyPadding", hideTabs: "hideTabs", noHeaderBorder: "noHeaderBorder", noTabLabelsPadding: "noTabLabelsPadding" }, outputs: { selectedTabChange: "selectedTabChange", selectedTabIdChange: "selectedTabIdChange" }, decls: 2, vars: 16, consts: [["disableRipple", "", 3, "ngClass", "selectedIndex", "animationDuration", "selectedIndexChange"], [3, "label", "disabled", 4, "ngFor", "ngForOf"], [3, "label", "disabled"], [4, "ngIf"], [4, "ngTemplateOutlet"], ["mat-tab-label", ""], [3, "value", "ngModel", "ngModelChange"], [1, "cursor-pointer", 3, "drTooltip"], [1, "icon-tab__wrapper"], [1, "cursor-pointer", 3, "ngClass"]], template: function DrTabsComponent_Template(rf, ctx) { if (rf & 1) {
8729
8769
  i0.ɵɵelementStart(0, "mat-tab-group", 0);
8730
8770
  i0.ɵɵlistener("selectedIndexChange", function DrTabsComponent_Template_mat_tab_group_selectedIndexChange_0_listener($event) { return ctx.selectedIndexChange($event); });
8731
8771
  i0.ɵɵtemplate(1, DrTabsComponent_mat_tab_1_Template, 5, 6, "mat-tab", 1);
@@ -8744,6 +8784,8 @@ class DrTabsComponent {
8744
8784
  type: Input
8745
8785
  }], selectedTab: [{
8746
8786
  type: Input
8787
+ }], selectedTabId: [{
8788
+ type: Input
8747
8789
  }], withRadio: [{
8748
8790
  type: Input
8749
8791
  }], withIcon: [{
@@ -8760,6 +8802,8 @@ class DrTabsComponent {
8760
8802
  type: Input
8761
8803
  }], selectedTabChange: [{
8762
8804
  type: Output
8805
+ }], selectedTabIdChange: [{
8806
+ type: Output
8763
8807
  }], tabsContentList: [{
8764
8808
  type: ContentChildren,
8765
8809
  args: [DrTabComponent]