@gipisistemas/ng-core 1.1.2 → 1.1.4

Sign up to get free protection for your applications and to get access to all the features.
Files changed (89) hide show
  1. package/assets/styles/colors.scss +5 -1
  2. package/bundles/gipisistemas-ng-core.umd.js +8416 -7886
  3. package/bundles/gipisistemas-ng-core.umd.js.map +1 -1
  4. package/bundles/gipisistemas-ng-core.umd.min.js +10 -9
  5. package/bundles/gipisistemas-ng-core.umd.min.js.map +1 -1
  6. package/core/gipi-components/models/sort.model.d.ts +3 -3
  7. package/core/utils/array.util.d.ts +2 -2
  8. package/core/utils/object.util.d.ts +3 -5
  9. package/esm2015/core/gipi-components/models/sort.model.js +1 -1
  10. package/esm2015/core/gipi-components/services/abstract-crud.service.js +18 -24
  11. package/esm2015/core/utils/array.util.js +4 -2
  12. package/esm2015/core/utils/object.util.js +5 -9
  13. package/esm2015/gipi-components.js +10 -1
  14. package/esm2015/shared/components/input/input.component.js +46 -23
  15. package/esm2015/shared/components/table/table.component.js +1 -1
  16. package/esm2015/shared/gipi-components/abstract-form/abstract-form.component.js +1 -1
  17. package/esm2015/shared/gipi-components/button/button.component.js +2 -2
  18. package/esm2015/shared/gipi-components/card/card.component.js +113 -0
  19. package/esm2015/shared/gipi-components/datepicker/datepicker/datepicker.component.js +8 -3
  20. package/esm2015/shared/gipi-components/empty-state/empty-state.component.js +30 -0
  21. package/esm2015/shared/gipi-components/input-select/input-select.component.js +7 -4
  22. package/esm2015/shared/gipi-components/layout-grid/col.directive.js +4 -4
  23. package/esm2015/shared/gipi-components/month-year-picker/month-year-picker.component.js +2 -2
  24. package/esm2015/shared/gipi-components/notification/notification.component.js +8 -3
  25. package/esm2015/shared/gipi-components/sidebar/sidenav/sidenav.component.js +35 -3
  26. package/esm2015/shared/gipi-components/slide-toggle/slide-toggle.component.js +113 -0
  27. package/esm2015/shared/gipi-components/tabs/shared/dynamic-tab.directive.js +18 -0
  28. package/esm2015/shared/gipi-components/tabs/shared/tab.model.js +8 -0
  29. package/esm2015/shared/gipi-components/tabs/tab/tab.component.js +66 -0
  30. package/esm2015/shared/gipi-components/tabs/tab-group/tab-group.component.js +123 -0
  31. package/esm2015/shared/gipi-components/textarea/textarea.component.js +298 -0
  32. package/esm2015/shared/shared.module.js +20 -16
  33. package/esm2015/shared.js +1 -5
  34. package/esm5/core/gipi-components/models/sort.model.js +1 -1
  35. package/esm5/core/gipi-components/services/abstract-crud.service.js +18 -24
  36. package/esm5/core/utils/array.util.js +4 -3
  37. package/esm5/core/utils/object.util.js +5 -9
  38. package/esm5/gipi-components.js +10 -1
  39. package/esm5/shared/components/input/input.component.js +46 -23
  40. package/esm5/shared/components/table/table.component.js +1 -1
  41. package/esm5/shared/gipi-components/abstract-form/abstract-form.component.js +1 -1
  42. package/esm5/shared/gipi-components/button/button.component.js +2 -2
  43. package/esm5/shared/gipi-components/card/card.component.js +135 -0
  44. package/esm5/shared/gipi-components/datepicker/datepicker/datepicker.component.js +8 -3
  45. package/esm5/shared/gipi-components/empty-state/empty-state.component.js +33 -0
  46. package/esm5/shared/gipi-components/input-select/input-select.component.js +11 -4
  47. package/esm5/shared/gipi-components/layout-grid/col.directive.js +4 -4
  48. package/esm5/shared/gipi-components/month-year-picker/month-year-picker.component.js +2 -2
  49. package/esm5/shared/gipi-components/notification/notification.component.js +8 -3
  50. package/esm5/shared/gipi-components/sidebar/sidenav/sidenav.component.js +35 -3
  51. package/esm5/shared/gipi-components/slide-toggle/slide-toggle.component.js +127 -0
  52. package/esm5/shared/gipi-components/tabs/shared/dynamic-tab.directive.js +19 -0
  53. package/esm5/shared/gipi-components/tabs/shared/tab.model.js +10 -0
  54. package/esm5/shared/gipi-components/tabs/tab/tab.component.js +67 -0
  55. package/esm5/shared/gipi-components/tabs/tab-group/tab-group.component.js +131 -0
  56. package/esm5/shared/gipi-components/textarea/textarea.component.js +352 -0
  57. package/esm5/shared/shared.module.js +20 -16
  58. package/esm5/shared.js +1 -5
  59. package/fesm2015/gipisistemas-ng-core.js +1746 -1305
  60. package/fesm2015/gipisistemas-ng-core.js.map +1 -1
  61. package/fesm5/gipisistemas-ng-core.js +8406 -7881
  62. package/fesm5/gipisistemas-ng-core.js.map +1 -1
  63. package/gipi-components.d.ts +8 -0
  64. package/gipisistemas-ng-core.metadata.json +1 -1
  65. package/package.json +1 -2
  66. package/shared/components/input/input.component.d.ts +13 -11
  67. package/shared/components/table/table.component.d.ts +3 -3
  68. package/shared/gipi-components/card/card.component.d.ts +23 -0
  69. package/shared/gipi-components/empty-state/empty-state.component.d.ts +5 -0
  70. package/shared/gipi-components/input-select/input-select.component.d.ts +1 -0
  71. package/shared/gipi-components/notification/notification.component.d.ts +1 -0
  72. package/shared/gipi-components/sidebar/sidenav/sidenav.component.d.ts +7 -0
  73. package/shared/gipi-components/slide-toggle/slide-toggle.component.d.ts +27 -0
  74. package/shared/{directives → gipi-components/tabs/shared}/dynamic-tab.directive.d.ts +1 -1
  75. package/shared/gipi-components/tabs/shared/tab.model.d.ts +12 -0
  76. package/shared/{components → gipi-components/tabs}/tab/tab.component.d.ts +4 -2
  77. package/shared/gipi-components/tabs/tab-group/tab-group.component.d.ts +22 -0
  78. package/shared/gipi-components/textarea/textarea.component.d.ts +68 -0
  79. package/shared.d.ts +0 -4
  80. package/esm2015/shared/components/select-button/select-button.component.js +0 -181
  81. package/esm2015/shared/components/tab/tab.component.js +0 -57
  82. package/esm2015/shared/components/tab-group/tab-group.component.js +0 -117
  83. package/esm2015/shared/directives/dynamic-tab.directive.js +0 -18
  84. package/esm5/shared/components/select-button/select-button.component.js +0 -195
  85. package/esm5/shared/components/tab/tab.component.js +0 -58
  86. package/esm5/shared/components/tab-group/tab-group.component.js +0 -125
  87. package/esm5/shared/directives/dynamic-tab.directive.js +0 -19
  88. package/shared/components/select-button/select-button.component.d.ts +0 -35
  89. package/shared/components/tab-group/tab-group.component.d.ts +0 -22
@@ -0,0 +1,127 @@
1
+ import { __decorate, __metadata } from "tslib";
2
+ import { coerceBooleanProperty } from '@angular/cdk/coercion';
3
+ import { ChangeDetectionStrategy, ChangeDetectorRef, Component, forwardRef, Input, OnInit } from '@angular/core';
4
+ import { NG_VALUE_ACCESSOR } from '@angular/forms';
5
+ var nextUniqueId = 0;
6
+ var GIPISlideToggleComponent = /** @class */ (function () {
7
+ function GIPISlideToggleComponent(_changeDetectorRef) {
8
+ this._changeDetectorRef = _changeDetectorRef;
9
+ this._name = "gipi-slide-toggle-" + nextUniqueId++;
10
+ this._slideToggleValue = false;
11
+ this.id = this._name;
12
+ this.name = this._name;
13
+ this.label = '';
14
+ this.help = '';
15
+ this._required = false;
16
+ this._disabled = false;
17
+ this.onChange = function () { };
18
+ this.onTouched = function () { };
19
+ }
20
+ GIPISlideToggleComponent_1 = GIPISlideToggleComponent;
21
+ Object.defineProperty(GIPISlideToggleComponent.prototype, "slideToggleValue", {
22
+ get: function () {
23
+ return this._slideToggleValue;
24
+ },
25
+ set: function (value) {
26
+ this._slideToggleValue = value;
27
+ this.onChange(value);
28
+ this.onTouched();
29
+ },
30
+ enumerable: false,
31
+ configurable: true
32
+ });
33
+ Object.defineProperty(GIPISlideToggleComponent.prototype, "required", {
34
+ get: function () {
35
+ return this._required;
36
+ },
37
+ set: function (value) {
38
+ if (this.required !== value) {
39
+ this._required = coerceBooleanProperty(value);
40
+ this._changeDetectorRef.markForCheck();
41
+ }
42
+ },
43
+ enumerable: false,
44
+ configurable: true
45
+ });
46
+ Object.defineProperty(GIPISlideToggleComponent.prototype, "disabled", {
47
+ get: function () {
48
+ return this._disabled;
49
+ },
50
+ set: function (value) {
51
+ if (this.disabled !== value) {
52
+ this._disabled = coerceBooleanProperty(value);
53
+ this._changeDetectorRef.markForCheck();
54
+ }
55
+ },
56
+ enumerable: false,
57
+ configurable: true
58
+ });
59
+ GIPISlideToggleComponent.prototype.ngOnInit = function () { };
60
+ GIPISlideToggleComponent.prototype.writeValue = function (value) {
61
+ this.slideToggleValue = value;
62
+ this._changeDetectorRef.markForCheck();
63
+ };
64
+ GIPISlideToggleComponent.prototype.registerOnChange = function (fn) {
65
+ this.onChange = fn;
66
+ };
67
+ GIPISlideToggleComponent.prototype.registerOnTouched = function (fn) {
68
+ this.onTouched = fn;
69
+ };
70
+ GIPISlideToggleComponent.prototype.setDisabledState = function (isDisabled) {
71
+ this.disabled = isDisabled;
72
+ this._changeDetectorRef.markForCheck();
73
+ };
74
+ var GIPISlideToggleComponent_1;
75
+ GIPISlideToggleComponent.ctorParameters = function () { return [
76
+ { type: ChangeDetectorRef }
77
+ ]; };
78
+ __decorate([
79
+ Input(),
80
+ __metadata("design:type", String)
81
+ ], GIPISlideToggleComponent.prototype, "id", void 0);
82
+ __decorate([
83
+ Input(),
84
+ __metadata("design:type", String)
85
+ ], GIPISlideToggleComponent.prototype, "name", void 0);
86
+ __decorate([
87
+ Input(),
88
+ __metadata("design:type", String)
89
+ ], GIPISlideToggleComponent.prototype, "label", void 0);
90
+ __decorate([
91
+ Input(),
92
+ __metadata("design:type", String)
93
+ ], GIPISlideToggleComponent.prototype, "help", void 0);
94
+ __decorate([
95
+ Input(),
96
+ __metadata("design:type", Boolean),
97
+ __metadata("design:paramtypes", [Boolean])
98
+ ], GIPISlideToggleComponent.prototype, "required", null);
99
+ __decorate([
100
+ Input(),
101
+ __metadata("design:type", Boolean),
102
+ __metadata("design:paramtypes", [Boolean])
103
+ ], GIPISlideToggleComponent.prototype, "disabled", null);
104
+ GIPISlideToggleComponent = GIPISlideToggleComponent_1 = __decorate([
105
+ Component({
106
+ selector: 'gipi-slide-toggle',
107
+ exportAs: 'gipiSlideToggle',
108
+ template: "<input class=\"toggle toggle-light\"\n type=\"checkbox\"\n [attr.id]=\"id\"\n [attr.name]=\"name\"\n [(ngModel)]=\"slideToggleValue\" />\n<label class=\"toggle-btn\"\n [attr.for]=\"id\">\n</label>\n<label class=\"toggle-label\"\n *ngIf=\"label\"\n [attr.for]=\"id\">\n {{ label }}\n</label>",
109
+ providers: [
110
+ {
111
+ provide: NG_VALUE_ACCESSOR,
112
+ useExisting: forwardRef(function () { return GIPISlideToggleComponent_1; }),
113
+ multi: true,
114
+ },
115
+ ],
116
+ changeDetection: ChangeDetectionStrategy.OnPush,
117
+ host: {
118
+ 'class': 'gipi-slide-toggle',
119
+ },
120
+ styles: [":host{display:flex;align-items:center;cursor:pointer}.toggle-label{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;margin-left:1rem;cursor:pointer}.toggle{display:none}.toggle ::-moz-selection,.toggle :after::-moz-selection,.toggle :before::-moz-selection,.toggle+.toggle-btn::-moz-selection,.toggle::-moz-selection,.toggle:after::-moz-selection,.toggle:before::-moz-selection{background:0 0}.toggle ::selection,.toggle :after::selection,.toggle :before::selection,.toggle+.toggle-btn::selection,.toggle::selection,.toggle:after::selection,.toggle:before::selection{background:0 0}.toggle+.toggle-btn{display:block;width:40px;height:24px;outline:0;background:#e0e1e2;border-radius:22px;padding:4px;transition:.4s;position:relative;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;cursor:pointer}.toggle+.toggle-btn:after,.toggle+.toggle-btn:before{content:\"\";display:block;width:16px;height:16px;position:relative}.toggle+.toggle-btn:after{left:0;background:#8c8f93;border-radius:50%;transition:.2s}.toggle+.toggle-btn:before{display:none}.toggle:checked+.toggle-btn:after{left:50%;background:#414244}"]
121
+ }),
122
+ __metadata("design:paramtypes", [ChangeDetectorRef])
123
+ ], GIPISlideToggleComponent);
124
+ return GIPISlideToggleComponent;
125
+ }());
126
+ export { GIPISlideToggleComponent };
127
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2xpZGUtdG9nZ2xlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BnaXBpc2lzdGVtYXMvbmctY29yZS8iLCJzb3VyY2VzIjpbInNoYXJlZC9naXBpLWNvbXBvbmVudHMvc2xpZGUtdG9nZ2xlL3NsaWRlLXRvZ2dsZS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzlELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxpQkFBaUIsRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDakgsT0FBTyxFQUF3QixpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXpFLElBQUksWUFBWSxHQUFHLENBQUMsQ0FBQztBQW1CckI7SUErQ0ksa0NBQW9CLGtCQUFxQztRQUFyQyx1QkFBa0IsR0FBbEIsa0JBQWtCLENBQW1CO1FBN0NqRCxVQUFLLEdBQVcsdUJBQXFCLFlBQVksRUFBSSxDQUFDO1FBRXRELHNCQUFpQixHQUFZLEtBQUssQ0FBQztRQVVsQyxPQUFFLEdBQVcsSUFBSSxDQUFDLEtBQUssQ0FBQztRQUV4QixTQUFJLEdBQVcsSUFBSSxDQUFDLEtBQUssQ0FBQztRQUUxQixVQUFLLEdBQVcsRUFBRSxDQUFDO1FBRW5CLFNBQUksR0FBVyxFQUFFLENBQUM7UUFFbkIsY0FBUyxHQUFZLEtBQUssQ0FBQztRQVczQixjQUFTLEdBQVksS0FBSyxDQUFDO1FBV25DLGFBQVEsR0FBYSxjQUFRLENBQUMsQ0FBQztRQUMvQixjQUFTLEdBQWEsY0FBUSxDQUFDLENBQUM7SUFFNkIsQ0FBQztpQ0EvQ3JELHdCQUF3QjtJQUtqQyxzQkFBSSxzREFBZ0I7YUFBcEI7WUFDSSxPQUFPLElBQUksQ0FBQyxpQkFBaUIsQ0FBQztRQUNsQyxDQUFDO2FBQ0QsVUFBcUIsS0FBYztZQUMvQixJQUFJLENBQUMsaUJBQWlCLEdBQUcsS0FBSyxDQUFDO1lBQy9CLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDckIsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO1FBQ3JCLENBQUM7OztPQUxBO0lBZ0JRLHNCQUFJLDhDQUFRO2FBQVo7WUFDTCxPQUFPLElBQUksQ0FBQyxTQUFTLENBQUM7UUFDMUIsQ0FBQzthQUNELFVBQWEsS0FBYztZQUN2QixJQUFJLElBQUksQ0FBQyxRQUFRLEtBQUssS0FBSyxFQUFFO2dCQUN6QixJQUFJLENBQUMsU0FBUyxHQUFHLHFCQUFxQixDQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUM5QyxJQUFJLENBQUMsa0JBQWtCLENBQUMsWUFBWSxFQUFFLENBQUM7YUFDMUM7UUFDTCxDQUFDOzs7T0FOQTtJQVNRLHNCQUFJLDhDQUFRO2FBQVo7WUFDTCxPQUFPLElBQUksQ0FBQyxTQUFTLENBQUM7UUFDMUIsQ0FBQzthQUNELFVBQWEsS0FBYztZQUN2QixJQUFJLElBQUksQ0FBQyxRQUFRLEtBQUssS0FBSyxFQUFFO2dCQUN6QixJQUFJLENBQUMsU0FBUyxHQUFHLHFCQUFxQixDQUFDLEtBQUssQ0FBQyxDQUFDO2dCQUM5QyxJQUFJLENBQUMsa0JBQWtCLENBQUMsWUFBWSxFQUFFLENBQUM7YUFDMUM7UUFDTCxDQUFDOzs7T0FOQTtJQWFELDJDQUFRLEdBQVIsY0FBbUIsQ0FBQztJQUVwQiw2Q0FBVSxHQUFWLFVBQVcsS0FBYztRQUNyQixJQUFJLENBQUMsZ0JBQWdCLEdBQUcsS0FBSyxDQUFDO1FBQzlCLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUMzQyxDQUFDO0lBRUQsbURBQWdCLEdBQWhCLFVBQWlCLEVBQU87UUFDcEIsSUFBSSxDQUFDLFFBQVEsR0FBRyxFQUFFLENBQUM7SUFDdkIsQ0FBQztJQUVELG9EQUFpQixHQUFqQixVQUFrQixFQUFPO1FBQ3JCLElBQUksQ0FBQyxTQUFTLEdBQUcsRUFBRSxDQUFDO0lBQ3hCLENBQUM7SUFFRCxtREFBZ0IsR0FBaEIsVUFBa0IsVUFBbUI7UUFDakMsSUFBSSxDQUFDLFFBQVEsR0FBRyxVQUFVLENBQUM7UUFDM0IsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFlBQVksRUFBRSxDQUFDO0lBQzNDLENBQUM7OztnQkFwQnVDLGlCQUFpQjs7SUFqQ2hEO1FBQVIsS0FBSyxFQUFFOzt3REFBeUI7SUFFeEI7UUFBUixLQUFLLEVBQUU7OzBEQUEyQjtJQUUxQjtRQUFSLEtBQUssRUFBRTs7MkRBQW9CO0lBRW5CO1FBQVIsS0FBSyxFQUFFOzswREFBbUI7SUFHbEI7UUFBUixLQUFLLEVBQUU7Ozs0REFFUDtJQVNRO1FBQVIsS0FBSyxFQUFFOzs7NERBRVA7SUFwQ1Esd0JBQXdCO1FBakJwQyxTQUFTLENBQUM7WUFDUCxRQUFRLEVBQUUsbUJBQW1CO1lBQzdCLFFBQVEsRUFBRSxpQkFBaUI7WUFDM0IsMlZBQTRDO1lBRTVDLFNBQVMsRUFBRTtnQkFDUDtvQkFDSSxPQUFPLEVBQUUsaUJBQWlCO29CQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLGNBQU0sT0FBQSwwQkFBd0IsRUFBeEIsQ0FBd0IsQ0FBQztvQkFDdkQsS0FBSyxFQUFFLElBQUk7aUJBQ2Q7YUFDSjtZQUNELGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNO1lBQy9DLElBQUksRUFBRTtnQkFDRixPQUFPLEVBQUUsbUJBQW1CO2FBQy9COztTQUNKLENBQUM7eUNBZ0QwQyxpQkFBaUI7T0EvQ2hELHdCQUF3QixDQXFFcEM7SUFBRCwrQkFBQztDQUFBLEFBckVELElBcUVDO1NBckVZLHdCQUF3QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9jb2VyY2lvbic7XG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgZm9yd2FyZFJlZiwgSW5wdXQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuXG5sZXQgbmV4dFVuaXF1ZUlkID0gMDtcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdnaXBpLXNsaWRlLXRvZ2dsZScsXG4gICAgZXhwb3J0QXM6ICdnaXBpU2xpZGVUb2dnbGUnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9zbGlkZS10b2dnbGUuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL3NsaWRlLXRvZ2dsZS5jb21wb25lbnQuc2NzcyddLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAgICAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IEdJUElTbGlkZVRvZ2dsZUNvbXBvbmVudCksXG4gICAgICAgICAgICBtdWx0aTogdHJ1ZSxcbiAgICAgICAgfSxcbiAgICBdLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIGhvc3Q6IHtcbiAgICAgICAgJ2NsYXNzJzogJ2dpcGktc2xpZGUtdG9nZ2xlJyxcbiAgICB9LFxufSlcbmV4cG9ydCBjbGFzcyBHSVBJU2xpZGVUb2dnbGVDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIENvbnRyb2xWYWx1ZUFjY2Vzc29yIHtcblxuICAgIHByaXZhdGUgX25hbWU6IHN0cmluZyA9IGBnaXBpLXNsaWRlLXRvZ2dsZS0ke25leHRVbmlxdWVJZCsrfWA7XG5cbiAgICBwcml2YXRlIF9zbGlkZVRvZ2dsZVZhbHVlOiBib29sZWFuID0gZmFsc2U7XG4gICAgZ2V0IHNsaWRlVG9nZ2xlVmFsdWUoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9zbGlkZVRvZ2dsZVZhbHVlO1xuICAgIH1cbiAgICBzZXQgc2xpZGVUb2dnbGVWYWx1ZSh2YWx1ZTogYm9vbGVhbikge1xuICAgICAgICB0aGlzLl9zbGlkZVRvZ2dsZVZhbHVlID0gdmFsdWU7XG4gICAgICAgIHRoaXMub25DaGFuZ2UodmFsdWUpO1xuICAgICAgICB0aGlzLm9uVG91Y2hlZCgpO1xuICAgIH1cblxuICAgIEBJbnB1dCgpIGlkOiBzdHJpbmcgPSB0aGlzLl9uYW1lO1xuXG4gICAgQElucHV0KCkgbmFtZTogc3RyaW5nID0gdGhpcy5fbmFtZTtcblxuICAgIEBJbnB1dCgpIGxhYmVsOiBzdHJpbmcgPSAnJztcblxuICAgIEBJbnB1dCgpIGhlbHA6IHN0cmluZyA9ICcnO1xuXG4gICAgcHJpdmF0ZSBfcmVxdWlyZWQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgICBASW5wdXQoKSBnZXQgcmVxdWlyZWQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9yZXF1aXJlZDtcbiAgICB9XG4gICAgc2V0IHJlcXVpcmVkKHZhbHVlOiBib29sZWFuKSB7XG4gICAgICAgIGlmICh0aGlzLnJlcXVpcmVkICE9PSB2YWx1ZSkge1xuICAgICAgICAgICAgdGhpcy5fcmVxdWlyZWQgPSBjb2VyY2VCb29sZWFuUHJvcGVydHkodmFsdWUpO1xuICAgICAgICAgICAgdGhpcy5fY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIF9kaXNhYmxlZDogYm9vbGVhbiA9IGZhbHNlO1xuICAgIEBJbnB1dCgpIGdldCBkaXNhYmxlZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2Rpc2FibGVkO1xuICAgIH1cbiAgICBzZXQgZGlzYWJsZWQodmFsdWU6IGJvb2xlYW4pIHtcbiAgICAgICAgaWYgKHRoaXMuZGlzYWJsZWQgIT09IHZhbHVlKSB7XG4gICAgICAgICAgICB0aGlzLl9kaXNhYmxlZCA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7XG4gICAgICAgICAgICB0aGlzLl9jaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG9uQ2hhbmdlOiBGdW5jdGlvbiA9ICgpID0+IHsgfTtcbiAgICBvblRvdWNoZWQ6IEZ1bmN0aW9uID0gKCkgPT4geyB9O1xuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBfY2hhbmdlRGV0ZWN0b3JSZWY6IENoYW5nZURldGVjdG9yUmVmKSB7IH1cblxuICAgIG5nT25Jbml0KCk6IHZvaWQgeyB9XG5cbiAgICB3cml0ZVZhbHVlKHZhbHVlOiBib29sZWFuKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc2xpZGVUb2dnbGVWYWx1ZSA9IHZhbHVlO1xuICAgICAgICB0aGlzLl9jaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKTtcbiAgICB9XG5cbiAgICByZWdpc3Rlck9uQ2hhbmdlKGZuOiBhbnkpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5vbkNoYW5nZSA9IGZuO1xuICAgIH1cblxuICAgIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiBhbnkpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5vblRvdWNoZWQgPSBmbjtcbiAgICB9XG5cbiAgICBzZXREaXNhYmxlZFN0YXRlPyhpc0Rpc2FibGVkOiBib29sZWFuKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZGlzYWJsZWQgPSBpc0Rpc2FibGVkO1xuICAgICAgICB0aGlzLl9jaGFuZ2VEZXRlY3RvclJlZi5tYXJrRm9yQ2hlY2soKTtcbiAgICB9XG5cbn1cbiJdfQ==
@@ -0,0 +1,19 @@
1
+ import { __decorate, __metadata } from "tslib";
2
+ import { Directive, ViewContainerRef } from '@angular/core';
3
+ var GIPIDynamicTabDirective = /** @class */ (function () {
4
+ function GIPIDynamicTabDirective(viewContainer) {
5
+ this.viewContainer = viewContainer;
6
+ }
7
+ GIPIDynamicTabDirective.ctorParameters = function () { return [
8
+ { type: ViewContainerRef }
9
+ ]; };
10
+ GIPIDynamicTabDirective = __decorate([
11
+ Directive({
12
+ selector: '[GIPIDynamicTab]'
13
+ }),
14
+ __metadata("design:paramtypes", [ViewContainerRef])
15
+ ], GIPIDynamicTabDirective);
16
+ return GIPIDynamicTabDirective;
17
+ }());
18
+ export { GIPIDynamicTabDirective };
19
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy10YWIuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGdpcGlzaXN0ZW1hcy9uZy1jb3JlLyIsInNvdXJjZXMiOlsic2hhcmVkL2dpcGktY29tcG9uZW50cy90YWJzL3NoYXJlZC9keW5hbWljLXRhYi5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFLNUQ7SUFFSSxpQ0FBbUIsYUFBK0I7UUFBL0Isa0JBQWEsR0FBYixhQUFhLENBQWtCO0lBQUksQ0FBQzs7Z0JBQXJCLGdCQUFnQjs7SUFGekMsdUJBQXVCO1FBSG5DLFNBQVMsQ0FBQztZQUNQLFFBQVEsRUFBRSxrQkFBa0I7U0FDL0IsQ0FBQzt5Q0FHb0MsZ0JBQWdCO09BRnpDLHVCQUF1QixDQUluQztJQUFELDhCQUFDO0NBQUEsQUFKRCxJQUlDO1NBSlksdUJBQXVCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBWaWV3Q29udGFpbmVyUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiAnW0dJUElEeW5hbWljVGFiXSdcbn0pXG5leHBvcnQgY2xhc3MgR0lQSUR5bmFtaWNUYWJEaXJlY3RpdmUge1xuXG4gICAgY29uc3RydWN0b3IocHVibGljIHZpZXdDb250YWluZXI6IFZpZXdDb250YWluZXJSZWYpIHsgfVxuXG59XG4iXX0=
@@ -0,0 +1,10 @@
1
+ var TabModel = /** @class */ (function () {
2
+ function TabModel() {
3
+ this.active = false;
4
+ this.closeable = false;
5
+ this.disabled = false;
6
+ }
7
+ return TabModel;
8
+ }());
9
+ export { TabModel };
10
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFiLm1vZGVsLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGdpcGlzaXN0ZW1hcy9uZy1jb3JlLyIsInNvdXJjZXMiOlsic2hhcmVkL2dpcGktY29tcG9uZW50cy90YWJzL3NoYXJlZC90YWIubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUE7SUFBQTtRQUlJLFdBQU0sR0FBRyxLQUFLLENBQUM7UUFJZixjQUFTLEdBQUcsS0FBSyxDQUFDO1FBRWxCLGFBQVEsR0FBRyxLQUFLLENBQUM7SUFVckIsQ0FBQztJQUFELGVBQUM7QUFBRCxDQUFDLEFBcEJELElBb0JDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVGVtcGxhdGVSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuZXhwb3J0IGNsYXNzIFRhYk1vZGVsIHtcblxuICAgIGxhYmVsOiBzdHJpbmc7XG5cbiAgICBhY3RpdmUgPSBmYWxzZTtcblxuICAgIHRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gICAgY2xvc2VhYmxlID0gZmFsc2U7XG5cbiAgICBkaXNhYmxlZCA9IGZhbHNlO1xuXG4gICAgZGF0YTogYW55O1xuXG4gICAgaWNvbjogc3RyaW5nO1xuXG4gICAgc3ZnSWNvbjogc3RyaW5nO1xuXG4gICAgYWN0aW9uOiAob2JqOiBhbnkpID0+IHZvaWQ7XG5cbn1cbiJdfQ==
@@ -0,0 +1,67 @@
1
+ import { __decorate, __metadata } from "tslib";
2
+ import { Component, EventEmitter, Input, Output, TemplateRef } from '@angular/core';
3
+ var GIPITabComponent = /** @class */ (function () {
4
+ function GIPITabComponent() {
5
+ this.active = false;
6
+ this.closeable = false;
7
+ this.disabled = false;
8
+ this.selectionChange = new EventEmitter();
9
+ }
10
+ GIPITabComponent.prototype.ngOnInit = function () { };
11
+ __decorate([
12
+ Input(),
13
+ __metadata("design:type", Number)
14
+ ], GIPITabComponent.prototype, "index", void 0);
15
+ __decorate([
16
+ Input(),
17
+ __metadata("design:type", String)
18
+ ], GIPITabComponent.prototype, "label", void 0);
19
+ __decorate([
20
+ Input(),
21
+ __metadata("design:type", Boolean)
22
+ ], GIPITabComponent.prototype, "active", void 0);
23
+ __decorate([
24
+ Input(),
25
+ __metadata("design:type", TemplateRef)
26
+ ], GIPITabComponent.prototype, "template", void 0);
27
+ __decorate([
28
+ Input(),
29
+ __metadata("design:type", Boolean)
30
+ ], GIPITabComponent.prototype, "closeable", void 0);
31
+ __decorate([
32
+ Input(),
33
+ __metadata("design:type", Boolean)
34
+ ], GIPITabComponent.prototype, "disabled", void 0);
35
+ __decorate([
36
+ Input(),
37
+ __metadata("design:type", Object)
38
+ ], GIPITabComponent.prototype, "data", void 0);
39
+ __decorate([
40
+ Input(),
41
+ __metadata("design:type", String)
42
+ ], GIPITabComponent.prototype, "icon", void 0);
43
+ __decorate([
44
+ Input(),
45
+ __metadata("design:type", String)
46
+ ], GIPITabComponent.prototype, "svgIcon", void 0);
47
+ __decorate([
48
+ Output(),
49
+ __metadata("design:type", EventEmitter)
50
+ ], GIPITabComponent.prototype, "selectionChange", void 0);
51
+ GIPITabComponent = __decorate([
52
+ Component({
53
+ selector: 'gipi-tab',
54
+ exportAs: 'gipiTab',
55
+ template: "<ng-container *ngIf=\"active\">\n <ng-content> </ng-content>\n <ng-container *ngIf=\"template\"\n [ngTemplateOutlet]=\"template\"\n [ngTemplateOutletContext]=\"{$implicit: data}\">\n </ng-container>\n</ng-container>",
56
+ host: {
57
+ 'class': 'gipi-tab',
58
+ '[style.display]': '!active ? "none" : "block"',
59
+ },
60
+ styles: [":host{padding:1.6rem}"]
61
+ }),
62
+ __metadata("design:paramtypes", [])
63
+ ], GIPITabComponent);
64
+ return GIPITabComponent;
65
+ }());
66
+ export { GIPITabComponent };
67
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFiLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BnaXBpc2lzdGVtYXMvbmctY29yZS8iLCJzb3VyY2VzIjpbInNoYXJlZC9naXBpLWNvbXBvbmVudHMvdGFicy90YWIvdGFiLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxXQUFXLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFZNUY7SUF1Qkk7UUFqQlMsV0FBTSxHQUFZLEtBQUssQ0FBQztRQUl4QixjQUFTLEdBQVksS0FBSyxDQUFDO1FBRTNCLGFBQVEsR0FBWSxLQUFLLENBQUM7UUFTekIsb0JBQWUsR0FBc0IsSUFBSSxZQUFZLEVBQUUsQ0FBQztJQUVsRCxDQUFDO0lBRWpCLG1DQUFRLEdBQVIsY0FBbUIsQ0FBQztJQXZCWDtRQUFSLEtBQUssRUFBRTs7bURBQWU7SUFFZDtRQUFSLEtBQUssRUFBRTs7bURBQWU7SUFFZDtRQUFSLEtBQUssRUFBRTs7b0RBQXlCO0lBRXhCO1FBQVIsS0FBSyxFQUFFO2tDQUFXLFdBQVc7c0RBQU07SUFFM0I7UUFBUixLQUFLLEVBQUU7O3VEQUE0QjtJQUUzQjtRQUFSLEtBQUssRUFBRTs7c0RBQTJCO0lBRTFCO1FBQVIsS0FBSyxFQUFFOztrREFBVztJQUVWO1FBQVIsS0FBSyxFQUFFOztrREFBYztJQUNiO1FBQVIsS0FBSyxFQUFFOztxREFBaUI7SUFJZjtRQUFULE1BQU0sRUFBRTtrQ0FBa0IsWUFBWTs2REFBMkI7SUFyQnpELGdCQUFnQjtRQVY1QixTQUFTLENBQUM7WUFDUCxRQUFRLEVBQUUsVUFBVTtZQUNwQixRQUFRLEVBQUUsU0FBUztZQUNuQiw4UUFBbUM7WUFFbkMsSUFBSSxFQUFFO2dCQUNGLE9BQU8sRUFBRSxVQUFVO2dCQUNuQixpQkFBaUIsRUFBRSw0QkFBNEI7YUFDbEQ7O1NBQ0osQ0FBQzs7T0FDVyxnQkFBZ0IsQ0EyQjVCO0lBQUQsdUJBQUM7Q0FBQSxBQTNCRCxJQTJCQztTQTNCWSxnQkFBZ0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0LCBUZW1wbGF0ZVJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2dpcGktdGFiJyxcbiAgICBleHBvcnRBczogJ2dpcGlUYWInLFxuICAgIHRlbXBsYXRlVXJsOiAnLi90YWIuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL3RhYi5jb21wb25lbnQuc2NzcyddLFxuICAgIGhvc3Q6IHtcbiAgICAgICAgJ2NsYXNzJzogJ2dpcGktdGFiJyxcbiAgICAgICAgJ1tzdHlsZS5kaXNwbGF5XSc6ICchYWN0aXZlID8gXCJub25lXCIgOiBcImJsb2NrXCInLFxuICAgIH0sXG59KVxuZXhwb3J0IGNsYXNzIEdJUElUYWJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuXG4gICAgQElucHV0KCkgaW5kZXg6IG51bWJlcjtcblxuICAgIEBJbnB1dCgpIGxhYmVsOiBzdHJpbmc7XG5cbiAgICBASW5wdXQoKSBhY3RpdmU6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAgIEBJbnB1dCgpIHRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gICAgQElucHV0KCkgY2xvc2VhYmxlOiBib29sZWFuID0gZmFsc2U7XG5cbiAgICBASW5wdXQoKSBkaXNhYmxlZDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gICAgQElucHV0KCkgZGF0YTogYW55O1xuXG4gICAgQElucHV0KCkgaWNvbjogc3RyaW5nO1xuICAgIEBJbnB1dCgpIHN2Z0ljb246IHN0cmluZztcblxuICAgIGFjdGlvbjogKG9iajogYW55KSA9PiB2b2lkO1xuXG4gICAgQE91dHB1dCgpIHNlbGVjdGlvbkNoYW5nZTogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgICBjb25zdHJ1Y3RvcigpIHsgfVxuXG4gICAgbmdPbkluaXQoKTogdm9pZCB7IH1cblxufVxuIl19
@@ -0,0 +1,131 @@
1
+ import { __decorate, __metadata, __read, __spread } from "tslib";
2
+ import { AfterContentInit, Component, ComponentFactory, ComponentFactoryResolver, ComponentRef, ContentChildren, ElementRef, OnInit, QueryList, TemplateRef, ViewChild, ViewContainerRef } from '@angular/core';
3
+ import { GIPIDynamicTabDirective } from '../shared/dynamic-tab.directive';
4
+ import { TabModel } from '../shared/tab.model';
5
+ import { GIPITabComponent } from '../tab/tab.component';
6
+ var GIPITabGroupComponent = /** @class */ (function () {
7
+ function GIPITabGroupComponent(elementRef, _componentFactoryResolver) {
8
+ this.elementRef = elementRef;
9
+ this._componentFactoryResolver = _componentFactoryResolver;
10
+ this.dynamicTabs = [];
11
+ }
12
+ GIPITabGroupComponent.prototype.ngOnInit = function () { };
13
+ GIPITabGroupComponent.prototype.ngAfterContentInit = function () {
14
+ var activeTabs = this.tabQueryList.filter(function (tab) { return tab.active; });
15
+ if (activeTabs.length === 0 && this.tabQueryList.length > 0) {
16
+ this.selectTab(this.tabQueryList.first);
17
+ }
18
+ };
19
+ GIPITabGroupComponent.prototype.openTab = function (label, template, data, closeable, disabled, action) {
20
+ if (closeable === void 0) { closeable = false; }
21
+ if (disabled === void 0) { disabled = false; }
22
+ var tab = new TabModel();
23
+ tab.label = label;
24
+ tab.template = template;
25
+ tab.data = data;
26
+ tab.closeable = closeable;
27
+ tab.disabled = disabled;
28
+ tab.action = action;
29
+ this._openTabs(Array(tab));
30
+ };
31
+ GIPITabGroupComponent.prototype._openTabs = function (tabList) {
32
+ var _a;
33
+ var _this = this;
34
+ var tabsComponent = tabList.map(function (tab) { return _this._getTabComponent(tab.label, tab.template, tab.data, tab.closeable, tab.disabled, tab.action); });
35
+ (_a = this.dynamicTabs).push.apply(_a, __spread(tabsComponent));
36
+ this.selectTab(this.dynamicTabs[0]);
37
+ };
38
+ GIPITabGroupComponent.prototype._getTabComponent = function (label, template, data, closeable, disabled, action) {
39
+ if (closeable === void 0) { closeable = false; }
40
+ if (disabled === void 0) { disabled = false; }
41
+ var componentFactory = this._componentFactoryResolver.resolveComponentFactory(GIPITabComponent);
42
+ var componentRef = this.dynamicTabPlaceholder.viewContainer.createComponent(componentFactory);
43
+ var instance = componentRef.instance;
44
+ instance.label = label;
45
+ instance.template = template;
46
+ instance.data = data;
47
+ instance.closeable = closeable;
48
+ instance.disabled = disabled;
49
+ instance.action = action;
50
+ return componentRef.instance;
51
+ };
52
+ GIPITabGroupComponent.prototype.selectTab = function (tab) {
53
+ this.tabQueryList.toArray().forEach(function (t) { return (t.active = false); });
54
+ this.dynamicTabs.forEach(function (t) { return (t.active = false); });
55
+ tab.active = true;
56
+ tab.selectionChange.emit();
57
+ if (tab.action) {
58
+ tab.action(tab.data);
59
+ }
60
+ };
61
+ GIPITabGroupComponent.prototype.closeTab = function (tab) {
62
+ var index = this.dynamicTabs.indexOf(tab);
63
+ this.dynamicTabs.splice(index, 1);
64
+ var viewContainerRef = this.dynamicTabPlaceholder.viewContainer;
65
+ viewContainerRef.remove(index);
66
+ if (this.tabQueryList.length > 0) {
67
+ this.selectTab(this.tabQueryList.first);
68
+ }
69
+ };
70
+ GIPITabGroupComponent.prototype.closeActiveTab = function () {
71
+ var activeTabs = this.dynamicTabs.filter(function (tab) { return tab.active; });
72
+ if (activeTabs.length > 0) {
73
+ this.closeTab(activeTabs[0]);
74
+ }
75
+ };
76
+ GIPITabGroupComponent.prototype.closeAllTabs = function () {
77
+ var _this = this;
78
+ var tabs = Object.assign([], this.dynamicTabs);
79
+ if (tabs.length > 0) {
80
+ tabs.forEach(function (tab) { return _this.closeTab(tab); });
81
+ }
82
+ };
83
+ GIPITabGroupComponent.prototype.nextTab = function () {
84
+ var currentTab = this.tabQueryList.toArray().find(function (tab) { return tab.active; });
85
+ var nextTab = this.tabQueryList.toArray()[this.tabQueryList.toArray().indexOf(currentTab) + 1];
86
+ if (nextTab != null) {
87
+ this.tabQueryList.toArray().forEach(function (t) { return (t.active = false); });
88
+ this.dynamicTabs.forEach(function (t) { return (t.active = false); });
89
+ nextTab.active = true;
90
+ nextTab.selectionChange.emit();
91
+ }
92
+ };
93
+ GIPITabGroupComponent.prototype.previousTab = function () {
94
+ var currentTab = this.tabQueryList.toArray().find(function (tab) { return tab.active; });
95
+ var previousTab = this.tabQueryList.toArray()[this.tabQueryList.toArray().indexOf(currentTab) - 1];
96
+ if (previousTab != null) {
97
+ this.tabQueryList.toArray().forEach(function (t) { return (t.active = false); });
98
+ this.dynamicTabs.forEach(function (t) { return (t.active = false); });
99
+ previousTab.active = true;
100
+ previousTab.selectionChange.emit();
101
+ }
102
+ };
103
+ GIPITabGroupComponent.ctorParameters = function () { return [
104
+ { type: ElementRef },
105
+ { type: ComponentFactoryResolver }
106
+ ]; };
107
+ __decorate([
108
+ ContentChildren(GIPITabComponent),
109
+ __metadata("design:type", QueryList)
110
+ ], GIPITabGroupComponent.prototype, "tabQueryList", void 0);
111
+ __decorate([
112
+ ViewChild(GIPIDynamicTabDirective, { static: false }),
113
+ __metadata("design:type", GIPIDynamicTabDirective)
114
+ ], GIPITabGroupComponent.prototype, "dynamicTabPlaceholder", void 0);
115
+ GIPITabGroupComponent = __decorate([
116
+ Component({
117
+ selector: 'gipi-tab-group',
118
+ exportAs: 'gipiTabGroup',
119
+ template: "<nav mat-tab-nav-bar>\n <a mat-tab-link\n *ngFor=\"let tab of tabQueryList\"\n (click)=\"selectTab(tab)\"\n [class.active]=\"tab.active\"\n [disabled]=\"tab.disabled\">\n <mat-icon *ngIf=\"tab.icon || tab.svgIcon\"\n [svgIcon]=\"tab.svgIcon ? tab.svgIcon : ''\">\n {{ !tab.svgIcon && tab.icon ? tab.icon : '' }}\n </mat-icon>\n\n {{ tab.label }}\n </a>\n\n <a mat-tab-link\n *ngFor=\"let tab of dynamicTabs\"\n (click)=\"selectTab(tab)\"\n [class.active]=\"tab.active\"\n [disabled]=\"tab.disabled\">\n <mat-icon *ngIf=\"tab.icon || tab.svgIcon\"\n [svgIcon]=\"tab.svgIcon ? tab.svgIcon : ''\">\n {{ !tab.svgIcon && tab.icon ? tab.icon : '' }}\n </mat-icon>\n\n {{ tab.label }}\n </a>\n</nav>\n\n<ng-content> </ng-content>\n<ng-template dynamicTab\n #container>\n</ng-template>",
120
+ host: {
121
+ 'class': 'gipi-tab-group',
122
+ },
123
+ styles: [":host{display:block;flex:1;width:100%;box-shadow:0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -2px rgba(0,0,0,.1)}:host ::ng-deep .mat-tab-nav-bar{background:#f5f5f6;border:none;border-radius:.4rem;padding:.4rem;box-shadow:0 1px 3px 0 rgba(0,0,0,.1),0 1px 2px -1px rgba(0,0,0,.1)}:host ::ng-deep .mat-tab-links{display:flex;gap:1rem}:host ::ng-deep .mat-tab-link{height:auto!important;padding:1rem!important;opacity:1!important;border:none!important;border-radius:4px!important;transition:.2s!important;color:#595959!important;gap:1rem}:host ::ng-deep .mat-tab-link>mat-icon{width:2rem!important;height:2rem!important;font-size:2rem!important;color:#595959!important}:host ::ng-deep .mat-tab-link>mat-icon svg,:host ::ng-deep .mat-tab-link>mat-icon svg g path,:host ::ng-deep .mat-tab-link>mat-icon svg path{color:#595959!important;fill:#595959!important}:host ::ng-deep .mat-tab-link:not(.active):hover{background:#e0e1e2!important}:host ::ng-deep .mat-tab-link.active{background:#e0313e!important;color:#fff!important}:host ::ng-deep .mat-tab-link.active>mat-icon{color:#fff!important}:host ::ng-deep .mat-tab-link.active>mat-icon svg,:host ::ng-deep .mat-tab-link.active>mat-icon svg g path,:host ::ng-deep .mat-tab-link.active>mat-icon svg path{color:#fff!important;fill:#fff!important}:host ::ng-deep .mat-tab-link:disabled,:host ::ng-deep .mat-tab-link:disabled>mat-icon{color:#9a9da2!important;fill:#9a9da2!important}:host ::ng-deep .mat-tab-link:disabled svg,:host ::ng-deep .mat-tab-link:disabled svg g path,:host ::ng-deep .mat-tab-link:disabled svg path,:host ::ng-deep .mat-tab-link:disabled>mat-icon svg,:host ::ng-deep .mat-tab-link:disabled>mat-icon svg g path,:host ::ng-deep .mat-tab-link:disabled>mat-icon svg path{color:#9a9da2!important;fill:#9a9da2!important}:host ::ng-deep .mat-ink-bar{display:none!important}"]
124
+ }),
125
+ __metadata("design:paramtypes", [ElementRef,
126
+ ComponentFactoryResolver])
127
+ ], GIPITabGroupComponent);
128
+ return GIPITabGroupComponent;
129
+ }());
130
+ export { GIPITabGroupComponent };
131
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFiLWdyb3VwLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BnaXBpc2lzdGVtYXMvbmctY29yZS8iLCJzb3VyY2VzIjpbInNoYXJlZC9naXBpLWNvbXBvbmVudHMvdGFicy90YWItZ3JvdXAvdGFiLWdyb3VwLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLGdCQUFnQixFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRSx3QkFBd0IsRUFBRSxZQUFZLEVBQUUsZUFBZSxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFaE4sT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDMUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBV3hEO0lBT0ksK0JBQ1csVUFBc0IsRUFDckIseUJBQW1EO1FBRHBELGVBQVUsR0FBVixVQUFVLENBQVk7UUFDckIsOEJBQXlCLEdBQXpCLHlCQUF5QixDQUEwQjtRQUp4RCxnQkFBVyxHQUF1QixFQUFFLENBQUM7SUFLeEMsQ0FBQztJQUVMLHdDQUFRLEdBQVIsY0FBbUIsQ0FBQztJQUVwQixrREFBa0IsR0FBbEI7UUFDSSxJQUFNLFVBQVUsR0FBdUIsSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsVUFBQSxHQUFHLElBQUksT0FBQSxHQUFHLENBQUMsTUFBTSxFQUFWLENBQVUsQ0FBQyxDQUFDO1FBQ25GLElBQUksVUFBVSxDQUFDLE1BQU0sS0FBSyxDQUFDLElBQUksSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO1lBQ3pELElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUMzQztJQUNMLENBQUM7SUFFTSx1Q0FBTyxHQUFkLFVBQWUsS0FBYSxFQUFFLFFBQTJCLEVBQUUsSUFBVSxFQUFFLFNBQTBCLEVBQUUsUUFBeUIsRUFBRSxNQUEyQjtRQUFsRiwwQkFBQSxFQUFBLGlCQUEwQjtRQUFFLHlCQUFBLEVBQUEsZ0JBQXlCO1FBQ3hILElBQU0sR0FBRyxHQUFhLElBQUksUUFBUSxFQUFFLENBQUM7UUFDckMsR0FBRyxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7UUFDbEIsR0FBRyxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUM7UUFDeEIsR0FBRyxDQUFDLElBQUksR0FBRyxJQUFJLENBQUM7UUFDaEIsR0FBRyxDQUFDLFNBQVMsR0FBRyxTQUFTLENBQUM7UUFDMUIsR0FBRyxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUM7UUFDeEIsR0FBRyxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7UUFDcEIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztJQUMvQixDQUFDO0lBRU8seUNBQVMsR0FBakIsVUFBa0IsT0FBbUI7O1FBQXJDLGlCQUlDO1FBSEcsSUFBTSxhQUFhLEdBQXVCLE9BQU8sQ0FBQyxHQUFHLENBQUMsVUFBQSxHQUFHLElBQUksT0FBQSxLQUFJLENBQUMsZ0JBQWdCLENBQUMsR0FBRyxDQUFDLEtBQUssRUFBRSxHQUFHLENBQUMsUUFBUSxFQUFFLEdBQUcsQ0FBQyxJQUFJLEVBQUUsR0FBRyxDQUFDLFNBQVMsRUFBRSxHQUFHLENBQUMsUUFBUSxFQUFFLEdBQUcsQ0FBQyxNQUFNLENBQUMsRUFBakcsQ0FBaUcsQ0FBQyxDQUFDO1FBQ2hLLENBQUEsS0FBQSxJQUFJLENBQUMsV0FBVyxDQUFBLENBQUMsSUFBSSxvQkFBSSxhQUFhLEdBQUU7UUFDeEMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDeEMsQ0FBQztJQUVPLGdEQUFnQixHQUF4QixVQUF5QixLQUFhLEVBQUUsUUFBMkIsRUFBRSxJQUFVLEVBQUUsU0FBMEIsRUFBRSxRQUF5QixFQUFFLE1BQTJCO1FBQWxGLDBCQUFBLEVBQUEsaUJBQTBCO1FBQUUseUJBQUEsRUFBQSxnQkFBeUI7UUFDbEksSUFBTSxnQkFBZ0IsR0FBdUMsSUFBSSxDQUFDLHlCQUF5QixDQUFDLHVCQUF1QixDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFDdEksSUFBTSxZQUFZLEdBQW1DLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxhQUFhLENBQUMsZUFBZSxDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFFaEksSUFBTSxRQUFRLEdBQUcsWUFBWSxDQUFDLFFBQVEsQ0FBQztRQUN2QyxRQUFRLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztRQUN2QixRQUFRLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQztRQUM3QixRQUFRLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztRQUNyQixRQUFRLENBQUMsU0FBUyxHQUFHLFNBQVMsQ0FBQztRQUMvQixRQUFRLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQztRQUM3QixRQUFRLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQztRQUV6QixPQUFPLFlBQVksQ0FBQyxRQUFRLENBQUM7SUFDakMsQ0FBQztJQUVNLHlDQUFTLEdBQWhCLFVBQWlCLEdBQXFCO1FBQ2xDLElBQUksQ0FBQyxZQUFZLENBQUMsT0FBTyxFQUFFLENBQUMsT0FBTyxDQUFDLFVBQUEsQ0FBQyxJQUFJLE9BQUEsQ0FBQyxDQUFDLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQyxFQUFsQixDQUFrQixDQUFDLENBQUM7UUFDN0QsSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsVUFBQSxDQUFDLElBQUksT0FBQSxDQUFDLENBQUMsQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDLEVBQWxCLENBQWtCLENBQUMsQ0FBQztRQUNsRCxHQUFHLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQztRQUNsQixHQUFHLENBQUMsZUFBZSxDQUFDLElBQUksRUFBRSxDQUFDO1FBRTNCLElBQUksR0FBRyxDQUFDLE1BQU0sRUFBRTtZQUNaLEdBQUcsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO1NBQ3hCO0lBQ0wsQ0FBQztJQUVNLHdDQUFRLEdBQWYsVUFBZ0IsR0FBcUI7UUFDakMsSUFBTSxLQUFLLEdBQVcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDcEQsSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBRWxDLElBQU0sZ0JBQWdCLEdBQXFCLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxhQUFhLENBQUM7UUFDcEYsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRS9CLElBQUksSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO1lBQzlCLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUMzQztJQUNMLENBQUM7SUFFTSw4Q0FBYyxHQUFyQjtRQUNJLElBQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLFVBQUEsR0FBRyxJQUFJLE9BQUEsR0FBRyxDQUFDLE1BQU0sRUFBVixDQUFVLENBQUMsQ0FBQztRQUM5RCxJQUFJLFVBQVUsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO1lBQ3ZCLElBQUksQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7U0FDaEM7SUFDTCxDQUFDO0lBRU0sNENBQVksR0FBbkI7UUFBQSxpQkFLQztRQUpHLElBQU0sSUFBSSxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUNqRCxJQUFJLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO1lBQ2pCLElBQUksQ0FBQyxPQUFPLENBQUMsVUFBQSxHQUFHLElBQUksT0FBQSxLQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxFQUFsQixDQUFrQixDQUFDLENBQUM7U0FDM0M7SUFDTCxDQUFDO0lBRU0sdUNBQU8sR0FBZDtRQUNJLElBQU0sVUFBVSxHQUFxQixJQUFJLENBQUMsWUFBWSxDQUFDLE9BQU8sRUFBRSxDQUFDLElBQUksQ0FBQyxVQUFBLEdBQUcsSUFBSSxPQUFBLEdBQUcsQ0FBQyxNQUFNLEVBQVYsQ0FBVSxDQUFDLENBQUM7UUFDekYsSUFBTSxPQUFPLEdBQXFCLElBQUksQ0FBQyxZQUFZLENBQUMsT0FBTyxFQUFFLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDbkgsSUFBSSxPQUFPLElBQUksSUFBSSxFQUFFO1lBQ2pCLElBQUksQ0FBQyxZQUFZLENBQUMsT0FBTyxFQUFFLENBQUMsT0FBTyxDQUFDLFVBQUEsQ0FBQyxJQUFJLE9BQUEsQ0FBQyxDQUFDLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQyxFQUFsQixDQUFrQixDQUFDLENBQUM7WUFDN0QsSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQUMsVUFBQSxDQUFDLElBQUksT0FBQSxDQUFDLENBQUMsQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDLEVBQWxCLENBQWtCLENBQUMsQ0FBQztZQUNsRCxPQUFPLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQztZQUN0QixPQUFPLENBQUMsZUFBZSxDQUFDLElBQUksRUFBRSxDQUFDO1NBQ2xDO0lBQ0wsQ0FBQztJQUVNLDJDQUFXLEdBQWxCO1FBQ0ksSUFBTSxVQUFVLEdBQXFCLElBQUksQ0FBQyxZQUFZLENBQUMsT0FBTyxFQUFFLENBQUMsSUFBSSxDQUFDLFVBQUEsR0FBRyxJQUFJLE9BQUEsR0FBRyxDQUFDLE1BQU0sRUFBVixDQUFVLENBQUMsQ0FBQztRQUN6RixJQUFNLFdBQVcsR0FBcUIsSUFBSSxDQUFDLFlBQVksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLE9BQU8sRUFBRSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztRQUN2SCxJQUFJLFdBQVcsSUFBSSxJQUFJLEVBQUU7WUFDckIsSUFBSSxDQUFDLFlBQVksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxPQUFPLENBQUMsVUFBQSxDQUFDLElBQUksT0FBQSxDQUFDLENBQUMsQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDLEVBQWxCLENBQWtCLENBQUMsQ0FBQztZQUM3RCxJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBQyxVQUFBLENBQUMsSUFBSSxPQUFBLENBQUMsQ0FBQyxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUMsRUFBbEIsQ0FBa0IsQ0FBQyxDQUFDO1lBQ2xELFdBQVcsQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDO1lBQzFCLFdBQVcsQ0FBQyxlQUFlLENBQUMsSUFBSSxFQUFFLENBQUM7U0FDdEM7SUFDTCxDQUFDOztnQkF0R3NCLFVBQVU7Z0JBQ00sd0JBQXdCOztJQVA1QjtRQUFsQyxlQUFlLENBQUMsZ0JBQWdCLENBQUM7a0NBQWUsU0FBUzsrREFBbUI7SUFDdEI7UUFBdEQsU0FBUyxDQUFDLHVCQUF1QixFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxDQUFDO2tDQUF3Qix1QkFBdUI7d0VBQUM7SUFIN0YscUJBQXFCO1FBVGpDLFNBQVMsQ0FBQztZQUNQLFFBQVEsRUFBRSxnQkFBZ0I7WUFDMUIsUUFBUSxFQUFFLGNBQWM7WUFDeEIsKzdCQUF5QztZQUV6QyxJQUFJLEVBQUU7Z0JBQ0YsT0FBTyxFQUFFLGdCQUFnQjthQUM1Qjs7U0FDSixDQUFDO3lDQVN5QixVQUFVO1lBQ00sd0JBQXdCO09BVHRELHFCQUFxQixDQWdIakM7SUFBRCw0QkFBQztDQUFBLEFBaEhELElBZ0hDO1NBaEhZLHFCQUFxQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFmdGVyQ29udGVudEluaXQsIENvbXBvbmVudCwgQ29tcG9uZW50RmFjdG9yeSwgQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyLCBDb21wb25lbnRSZWYsIENvbnRlbnRDaGlsZHJlbiwgRWxlbWVudFJlZiwgT25Jbml0LCBRdWVyeUxpc3QsIFRlbXBsYXRlUmVmLCBWaWV3Q2hpbGQsIFZpZXdDb250YWluZXJSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgR0lQSUR5bmFtaWNUYWJEaXJlY3RpdmUgfSBmcm9tICcuLi9zaGFyZWQvZHluYW1pYy10YWIuZGlyZWN0aXZlJztcbmltcG9ydCB7IFRhYk1vZGVsIH0gZnJvbSAnLi4vc2hhcmVkL3RhYi5tb2RlbCc7XG5pbXBvcnQgeyBHSVBJVGFiQ29tcG9uZW50IH0gZnJvbSAnLi4vdGFiL3RhYi5jb21wb25lbnQnO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ2dpcGktdGFiLWdyb3VwJyxcbiAgICBleHBvcnRBczogJ2dpcGlUYWJHcm91cCcsXG4gICAgdGVtcGxhdGVVcmw6ICcuL3RhYi1ncm91cC5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vdGFiLWdyb3VwLmNvbXBvbmVudC5zY3NzJ10sXG4gICAgaG9zdDoge1xuICAgICAgICAnY2xhc3MnOiAnZ2lwaS10YWItZ3JvdXAnLFxuICAgIH0sXG59KVxuZXhwb3J0IGNsYXNzIEdJUElUYWJHcm91cENvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyQ29udGVudEluaXQsIE9uSW5pdCB7XG5cbiAgICBAQ29udGVudENoaWxkcmVuKEdJUElUYWJDb21wb25lbnQpIHRhYlF1ZXJ5TGlzdDogUXVlcnlMaXN0PEdJUElUYWJDb21wb25lbnQ+O1xuICAgIEBWaWV3Q2hpbGQoR0lQSUR5bmFtaWNUYWJEaXJlY3RpdmUsIHsgc3RhdGljOiBmYWxzZSB9KSBkeW5hbWljVGFiUGxhY2Vob2xkZXI6IEdJUElEeW5hbWljVGFiRGlyZWN0aXZlO1xuXG4gICAgcHVibGljIGR5bmFtaWNUYWJzOiBHSVBJVGFiQ29tcG9uZW50W10gPSBbXTtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwdWJsaWMgZWxlbWVudFJlZjogRWxlbWVudFJlZixcbiAgICAgICAgcHJpdmF0ZSBfY29tcG9uZW50RmFjdG9yeVJlc29sdmVyOiBDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXJcbiAgICApIHsgfVxuXG4gICAgbmdPbkluaXQoKTogdm9pZCB7IH1cblxuICAgIG5nQWZ0ZXJDb250ZW50SW5pdCgpIHtcbiAgICAgICAgY29uc3QgYWN0aXZlVGFiczogR0lQSVRhYkNvbXBvbmVudFtdID0gdGhpcy50YWJRdWVyeUxpc3QuZmlsdGVyKHRhYiA9PiB0YWIuYWN0aXZlKTtcbiAgICAgICAgaWYgKGFjdGl2ZVRhYnMubGVuZ3RoID09PSAwICYmIHRoaXMudGFiUXVlcnlMaXN0Lmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0VGFiKHRoaXMudGFiUXVlcnlMaXN0LmZpcnN0KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBvcGVuVGFiKGxhYmVsOiBzdHJpbmcsIHRlbXBsYXRlPzogVGVtcGxhdGVSZWY8YW55PiwgZGF0YT86IGFueSwgY2xvc2VhYmxlOiBib29sZWFuID0gZmFsc2UsIGRpc2FibGVkOiBib29sZWFuID0gZmFsc2UsIGFjdGlvbj86IChvYmo6IGFueSkgPT4gdm9pZCk6IHZvaWQge1xuICAgICAgICBjb25zdCB0YWI6IFRhYk1vZGVsID0gbmV3IFRhYk1vZGVsKCk7XG4gICAgICAgIHRhYi5sYWJlbCA9IGxhYmVsO1xuICAgICAgICB0YWIudGVtcGxhdGUgPSB0ZW1wbGF0ZTtcbiAgICAgICAgdGFiLmRhdGEgPSBkYXRhO1xuICAgICAgICB0YWIuY2xvc2VhYmxlID0gY2xvc2VhYmxlO1xuICAgICAgICB0YWIuZGlzYWJsZWQgPSBkaXNhYmxlZDtcbiAgICAgICAgdGFiLmFjdGlvbiA9IGFjdGlvbjtcbiAgICAgICAgdGhpcy5fb3BlblRhYnMoQXJyYXkodGFiKSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfb3BlblRhYnModGFiTGlzdDogVGFiTW9kZWxbXSk6IHZvaWQge1xuICAgICAgICBjb25zdCB0YWJzQ29tcG9uZW50OiBHSVBJVGFiQ29tcG9uZW50W10gPSB0YWJMaXN0Lm1hcCh0YWIgPT4gdGhpcy5fZ2V0VGFiQ29tcG9uZW50KHRhYi5sYWJlbCwgdGFiLnRlbXBsYXRlLCB0YWIuZGF0YSwgdGFiLmNsb3NlYWJsZSwgdGFiLmRpc2FibGVkLCB0YWIuYWN0aW9uKSk7XG4gICAgICAgIHRoaXMuZHluYW1pY1RhYnMucHVzaCguLi50YWJzQ29tcG9uZW50KTtcbiAgICAgICAgdGhpcy5zZWxlY3RUYWIodGhpcy5keW5hbWljVGFic1swXSk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfZ2V0VGFiQ29tcG9uZW50KGxhYmVsOiBzdHJpbmcsIHRlbXBsYXRlPzogVGVtcGxhdGVSZWY8YW55PiwgZGF0YT86IGFueSwgY2xvc2VhYmxlOiBib29sZWFuID0gZmFsc2UsIGRpc2FibGVkOiBib29sZWFuID0gZmFsc2UsIGFjdGlvbj86IChvYmo6IGFueSkgPT4gdm9pZCk6IEdJUElUYWJDb21wb25lbnQge1xuICAgICAgICBjb25zdCBjb21wb25lbnRGYWN0b3J5OiBDb21wb25lbnRGYWN0b3J5PEdJUElUYWJDb21wb25lbnQ+ID0gdGhpcy5fY29tcG9uZW50RmFjdG9yeVJlc29sdmVyLnJlc29sdmVDb21wb25lbnRGYWN0b3J5KEdJUElUYWJDb21wb25lbnQpO1xuICAgICAgICBjb25zdCBjb21wb25lbnRSZWY6IENvbXBvbmVudFJlZjxHSVBJVGFiQ29tcG9uZW50PiA9IHRoaXMuZHluYW1pY1RhYlBsYWNlaG9sZGVyLnZpZXdDb250YWluZXIuY3JlYXRlQ29tcG9uZW50KGNvbXBvbmVudEZhY3RvcnkpO1xuXG4gICAgICAgIGNvbnN0IGluc3RhbmNlID0gY29tcG9uZW50UmVmLmluc3RhbmNlO1xuICAgICAgICBpbnN0YW5jZS5sYWJlbCA9IGxhYmVsO1xuICAgICAgICBpbnN0YW5jZS50ZW1wbGF0ZSA9IHRlbXBsYXRlO1xuICAgICAgICBpbnN0YW5jZS5kYXRhID0gZGF0YTtcbiAgICAgICAgaW5zdGFuY2UuY2xvc2VhYmxlID0gY2xvc2VhYmxlO1xuICAgICAgICBpbnN0YW5jZS5kaXNhYmxlZCA9IGRpc2FibGVkO1xuICAgICAgICBpbnN0YW5jZS5hY3Rpb24gPSBhY3Rpb247XG5cbiAgICAgICAgcmV0dXJuIGNvbXBvbmVudFJlZi5pbnN0YW5jZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgc2VsZWN0VGFiKHRhYjogR0lQSVRhYkNvbXBvbmVudCk6IHZvaWQge1xuICAgICAgICB0aGlzLnRhYlF1ZXJ5TGlzdC50b0FycmF5KCkuZm9yRWFjaCh0ID0+ICh0LmFjdGl2ZSA9IGZhbHNlKSk7XG4gICAgICAgIHRoaXMuZHluYW1pY1RhYnMuZm9yRWFjaCh0ID0+ICh0LmFjdGl2ZSA9IGZhbHNlKSk7XG4gICAgICAgIHRhYi5hY3RpdmUgPSB0cnVlO1xuICAgICAgICB0YWIuc2VsZWN0aW9uQ2hhbmdlLmVtaXQoKTtcblxuICAgICAgICBpZiAodGFiLmFjdGlvbikge1xuICAgICAgICAgICAgdGFiLmFjdGlvbih0YWIuZGF0YSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgY2xvc2VUYWIodGFiOiBHSVBJVGFiQ29tcG9uZW50KTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGluZGV4OiBudW1iZXIgPSB0aGlzLmR5bmFtaWNUYWJzLmluZGV4T2YodGFiKTtcbiAgICAgICAgdGhpcy5keW5hbWljVGFicy5zcGxpY2UoaW5kZXgsIDEpO1xuXG4gICAgICAgIGNvbnN0IHZpZXdDb250YWluZXJSZWY6IFZpZXdDb250YWluZXJSZWYgPSB0aGlzLmR5bmFtaWNUYWJQbGFjZWhvbGRlci52aWV3Q29udGFpbmVyO1xuICAgICAgICB2aWV3Q29udGFpbmVyUmVmLnJlbW92ZShpbmRleCk7XG5cbiAgICAgICAgaWYgKHRoaXMudGFiUXVlcnlMaXN0Lmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0VGFiKHRoaXMudGFiUXVlcnlMaXN0LmZpcnN0KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBjbG9zZUFjdGl2ZVRhYigpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgYWN0aXZlVGFicyA9IHRoaXMuZHluYW1pY1RhYnMuZmlsdGVyKHRhYiA9PiB0YWIuYWN0aXZlKTtcbiAgICAgICAgaWYgKGFjdGl2ZVRhYnMubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgdGhpcy5jbG9zZVRhYihhY3RpdmVUYWJzWzBdKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBjbG9zZUFsbFRhYnMoKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHRhYnMgPSBPYmplY3QuYXNzaWduKFtdLCB0aGlzLmR5bmFtaWNUYWJzKTtcbiAgICAgICAgaWYgKHRhYnMubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgdGFicy5mb3JFYWNoKHRhYiA9PiB0aGlzLmNsb3NlVGFiKHRhYikpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIG5leHRUYWIoKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGN1cnJlbnRUYWI6IEdJUElUYWJDb21wb25lbnQgPSB0aGlzLnRhYlF1ZXJ5TGlzdC50b0FycmF5KCkuZmluZCh0YWIgPT4gdGFiLmFjdGl2ZSk7XG4gICAgICAgIGNvbnN0IG5leHRUYWI6IEdJUElUYWJDb21wb25lbnQgPSB0aGlzLnRhYlF1ZXJ5TGlzdC50b0FycmF5KClbdGhpcy50YWJRdWVyeUxpc3QudG9BcnJheSgpLmluZGV4T2YoY3VycmVudFRhYikgKyAxXTtcbiAgICAgICAgaWYgKG5leHRUYWIgIT0gbnVsbCkge1xuICAgICAgICAgICAgdGhpcy50YWJRdWVyeUxpc3QudG9BcnJheSgpLmZvckVhY2godCA9PiAodC5hY3RpdmUgPSBmYWxzZSkpO1xuICAgICAgICAgICAgdGhpcy5keW5hbWljVGFicy5mb3JFYWNoKHQgPT4gKHQuYWN0aXZlID0gZmFsc2UpKTtcbiAgICAgICAgICAgIG5leHRUYWIuYWN0aXZlID0gdHJ1ZTtcbiAgICAgICAgICAgIG5leHRUYWIuc2VsZWN0aW9uQ2hhbmdlLmVtaXQoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBwcmV2aW91c1RhYigpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgY3VycmVudFRhYjogR0lQSVRhYkNvbXBvbmVudCA9IHRoaXMudGFiUXVlcnlMaXN0LnRvQXJyYXkoKS5maW5kKHRhYiA9PiB0YWIuYWN0aXZlKTtcbiAgICAgICAgY29uc3QgcHJldmlvdXNUYWI6IEdJUElUYWJDb21wb25lbnQgPSB0aGlzLnRhYlF1ZXJ5TGlzdC50b0FycmF5KClbdGhpcy50YWJRdWVyeUxpc3QudG9BcnJheSgpLmluZGV4T2YoY3VycmVudFRhYikgLSAxXTtcbiAgICAgICAgaWYgKHByZXZpb3VzVGFiICE9IG51bGwpIHtcbiAgICAgICAgICAgIHRoaXMudGFiUXVlcnlMaXN0LnRvQXJyYXkoKS5mb3JFYWNoKHQgPT4gKHQuYWN0aXZlID0gZmFsc2UpKTtcbiAgICAgICAgICAgIHRoaXMuZHluYW1pY1RhYnMuZm9yRWFjaCh0ID0+ICh0LmFjdGl2ZSA9IGZhbHNlKSk7XG4gICAgICAgICAgICBwcmV2aW91c1RhYi5hY3RpdmUgPSB0cnVlO1xuICAgICAgICAgICAgcHJldmlvdXNUYWIuc2VsZWN0aW9uQ2hhbmdlLmVtaXQoKTtcbiAgICAgICAgfVxuICAgIH1cblxufVxuXG4iXX0=