@datarailsshared/datarailsshared 1.3.30 → 1.3.33
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/_datarailsshared.styles.css +3 -3
- package/assets/styles/_styles.scss +2 -2
- package/assets/styles/img/default-avatar.svg +5 -5
- package/bundles/datarailsshared-datarailsshared.umd.js +3715 -3345
- package/bundles/datarailsshared-datarailsshared.umd.js.map +1 -1
- package/datarailsshared-datarailsshared-1.3.33.tgz +0 -0
- package/datarailsshared-datarailsshared.d.ts +7 -7
- package/datarailsshared-datarailsshared.metadata.json +1 -1
- package/esm2015/datarailsshared-datarailsshared.js +7 -7
- package/esm2015/lib/date-tags/date-tag.component.js +70 -70
- package/esm2015/lib/date-tags/date-tag.module.js +50 -50
- package/esm2015/lib/date-tags/day-tag/day-tag.component.js +81 -81
- package/esm2015/lib/date-tags/forecast-tag/forecast-tag.component.js +143 -143
- package/esm2015/lib/date-tags/month-tag/month-tag.component.js +87 -87
- package/esm2015/lib/date-tags/quarter-tag/quarter-tag.component.js +101 -101
- package/esm2015/lib/date-tags/week-tag/week-tag.component.js +124 -124
- package/esm2015/lib/date-tags/year-tag/year-tag.component.js +93 -93
- package/esm2015/lib/dr-accordion/accordion-item-body.component.js +57 -0
- package/esm2015/lib/dr-accordion/accordion-item-header.component.js +79 -0
- package/esm2015/lib/dr-accordion/accordion-item.component.js +123 -0
- package/esm2015/lib/dr-accordion/accordion.component.js +43 -0
- package/esm2015/lib/dr-accordion/accordion.module.js +23 -0
- package/esm2015/lib/dr-avatar/dr-avatar.component.js +42 -42
- package/esm2015/lib/dr-avatar/dr-avatar.module.js +26 -26
- package/esm2015/lib/dr-avatar/dr-avatar.pipe.js +15 -15
- package/esm2015/lib/dr-dropdown/dr-dropdown-item-show.pipe.js +12 -12
- package/esm2015/lib/dr-dropdown/dr-dropdown-position.directive.js +89 -89
- package/esm2015/lib/dr-dropdown/dr-dropdown.component.js +103 -103
- package/esm2015/lib/dr-dropdown/dr-dropdown.directive.js +75 -75
- package/esm2015/lib/dr-dropdown/dr-dropdown.module.js +34 -34
- package/esm2015/lib/dr-dropdown/dr-dropdown.service.js +24 -24
- package/esm2015/lib/dr-inputs/button/button.component.js +80 -79
- package/esm2015/lib/dr-inputs/checkbox/checkbox.component.js +63 -63
- package/esm2015/lib/dr-inputs/dr-date-picker/dr-date-picker-format.directive.js +47 -47
- package/esm2015/lib/dr-inputs/dr-date-picker/dr-date-picker.component.js +131 -131
- package/esm2015/lib/dr-inputs/dr-input/dr-input.component.js +181 -166
- package/esm2015/lib/dr-inputs/dr-inputs.module.js +43 -43
- package/esm2015/lib/dr-inputs/dr-select/dr-select.component.js +87 -87
- package/esm2015/lib/dr-inputs/dr-toggle/dr-toggle.component.js +64 -64
- package/esm2015/lib/dr-inputs/dr-toggle-button/dr-toggle-button.component.js +52 -52
- package/esm2015/lib/dr-inputs/radio-button/radio-button.component.js +64 -64
- package/esm2015/lib/dr-inputs/radio-button/radio-group.component.js +164 -164
- package/esm2015/lib/dr-popover/dr-popover-ref.js +20 -20
- package/esm2015/lib/dr-popover/dr-popover.component.js +77 -77
- package/esm2015/lib/dr-popover/dr-popover.directive.js +72 -72
- package/esm2015/lib/dr-popover/dr-popover.module.js +23 -23
- package/esm2015/lib/dr-popover/dr-popover.service.js +102 -102
- package/esm2015/lib/dr-spinner/dr-spinner.component.js +29 -29
- package/esm2015/lib/dr-spinner/dr-spinner.directive.js +53 -53
- package/esm2015/lib/dr-spinner/dr-spinner.module.js +18 -18
- package/esm2015/lib/dr-tabs/dr-tab.component.js +23 -23
- package/esm2015/lib/dr-tabs/dr-tabs.component.js +28 -27
- package/esm2015/lib/dr-tabs/dr-tabs.module.js +30 -30
- package/esm2015/lib/dr-tags/dr-tag.component.js +54 -54
- package/esm2015/lib/dr-tags/dr-tag.module.js +22 -22
- package/esm2015/lib/dr-tooltip/dr-tooltip.component.js +30 -30
- package/esm2015/lib/dr-tooltip/dr-tooltip.directive.js +102 -102
- package/esm2015/lib/dr-tooltip/dr-tooltip.module.js +23 -23
- package/esm2015/lib/list-tags/list-tag.component.js +41 -41
- package/esm2015/lib/list-tags/list-tag.module.js +29 -29
- package/esm2015/lib/models/constants.js +97 -97
- package/esm2015/lib/models/datePicker.js +37 -37
- package/esm2015/lib/models/dropdown.js +2 -2
- package/esm2015/lib/models/popover.js +27 -27
- package/esm2015/lib/models/serverTags.js +2 -2
- package/esm2015/public-api.js +55 -50
- package/fesm2015/datarailsshared-datarailsshared.js +3099 -2779
- package/fesm2015/datarailsshared-datarailsshared.js.map +1 -1
- package/lib/date-tags/date-tag.component.d.ts +27 -27
- package/lib/date-tags/date-tag.module.d.ts +4 -4
- package/lib/date-tags/day-tag/day-tag.component.d.ts +12 -12
- package/lib/date-tags/forecast-tag/forecast-tag.component.d.ts +21 -21
- package/lib/date-tags/month-tag/month-tag.component.d.ts +14 -14
- package/lib/date-tags/quarter-tag/quarter-tag.component.d.ts +17 -17
- package/lib/date-tags/week-tag/week-tag.component.d.ts +19 -19
- package/lib/date-tags/year-tag/year-tag.component.d.ts +14 -14
- package/lib/dr-accordion/accordion-item-body.component.d.ts +11 -0
- package/lib/dr-accordion/accordion-item-header.component.d.ts +16 -0
- package/lib/dr-accordion/accordion-item.component.d.ts +53 -0
- package/lib/dr-accordion/accordion.component.d.ts +19 -0
- package/lib/dr-accordion/accordion.module.d.ts +2 -0
- package/lib/dr-avatar/dr-avatar.component.d.ts +10 -10
- package/lib/dr-avatar/dr-avatar.module.d.ts +2 -2
- package/lib/dr-avatar/dr-avatar.pipe.d.ts +4 -4
- package/lib/dr-dropdown/dr-dropdown-item-show.pipe.d.ts +5 -5
- package/lib/dr-dropdown/dr-dropdown-position.directive.d.ts +11 -11
- package/lib/dr-dropdown/dr-dropdown.component.d.ts +23 -23
- package/lib/dr-dropdown/dr-dropdown.directive.d.ts +19 -19
- package/lib/dr-dropdown/dr-dropdown.module.d.ts +2 -2
- package/lib/dr-dropdown/dr-dropdown.service.d.ts +11 -11
- package/lib/dr-inputs/button/button.component.d.ts +21 -20
- package/lib/dr-inputs/checkbox/checkbox.component.d.ts +20 -20
- package/lib/dr-inputs/dr-date-picker/dr-date-picker-format.directive.d.ts +10 -10
- package/lib/dr-inputs/dr-date-picker/dr-date-picker.component.d.ts +28 -28
- package/lib/dr-inputs/dr-input/dr-input.component.d.ts +55 -53
- package/lib/dr-inputs/dr-inputs.module.d.ts +2 -2
- package/lib/dr-inputs/dr-select/dr-select.component.d.ts +36 -36
- package/lib/dr-inputs/dr-toggle/dr-toggle.component.d.ts +23 -23
- package/lib/dr-inputs/dr-toggle-button/dr-toggle-button.component.d.ts +17 -17
- package/lib/dr-inputs/radio-button/radio-button.component.d.ts +21 -21
- package/lib/dr-inputs/radio-button/radio-group.component.d.ts +39 -39
- package/lib/dr-popover/dr-popover-ref.d.ts +16 -16
- package/lib/dr-popover/dr-popover.component.d.ts +26 -26
- package/lib/dr-popover/dr-popover.directive.d.ts +26 -26
- package/lib/dr-popover/dr-popover.module.d.ts +2 -2
- package/lib/dr-popover/dr-popover.service.d.ts +17 -17
- package/lib/dr-spinner/dr-spinner.component.d.ts +10 -10
- package/lib/dr-spinner/dr-spinner.directive.d.ts +15 -15
- package/lib/dr-spinner/dr-spinner.module.d.ts +2 -2
- package/lib/dr-tabs/dr-tab.component.d.ts +8 -8
- package/lib/dr-tabs/dr-tabs.component.d.ts +11 -10
- package/lib/dr-tabs/dr-tabs.module.d.ts +2 -2
- package/lib/dr-tags/dr-tag.component.d.ts +15 -15
- package/lib/dr-tags/dr-tag.module.d.ts +2 -2
- package/lib/dr-tooltip/dr-tooltip.component.d.ts +16 -16
- package/lib/dr-tooltip/dr-tooltip.directive.d.ts +23 -23
- package/lib/dr-tooltip/dr-tooltip.module.d.ts +2 -2
- package/lib/list-tags/list-tag.component.d.ts +14 -14
- package/lib/list-tags/list-tag.module.d.ts +2 -2
- package/lib/models/constants.d.ts +87 -87
- package/lib/models/datePicker.d.ts +21 -21
- package/lib/models/dropdown.d.ts +47 -47
- package/lib/models/popover.d.ts +32 -32
- package/lib/models/serverTags.d.ts +28 -28
- package/package.json +1 -1
- package/public-api.d.ts +54 -49
- package/datarailsshared-datarailsshared-1.3.30.tgz +0 -0
|
@@ -1,93 +1,93 @@
|
|
|
1
|
-
import { Component, Input } from "@angular/core";
|
|
2
|
-
import { FormControl } from "@angular/forms";
|
|
3
|
-
import { AnyTagComponent } from "../date-tag.component";
|
|
4
|
-
import { DateAdapter, MAT_DATE_FORMATS, MAT_DATE_LOCALE } from "@angular/material/core";
|
|
5
|
-
import { MAT_MOMENT_DATE_ADAPTER_OPTIONS, MomentDateAdapter } from "@angular/material-moment-adapter";
|
|
6
|
-
// @ts-ignore
|
|
7
|
-
const moment = require("moment");
|
|
8
|
-
const YEAR_FORMATS = {
|
|
9
|
-
parse: {
|
|
10
|
-
dateInput: "YYYY",
|
|
11
|
-
},
|
|
12
|
-
display: {
|
|
13
|
-
dateInput: "YYYY",
|
|
14
|
-
monthYearLabel: "MMMM YYYY",
|
|
15
|
-
dateA11yLabel: "LL",
|
|
16
|
-
monthYearA11yLabel: "MMMM YYYY"
|
|
17
|
-
},
|
|
18
|
-
};
|
|
19
|
-
const ɵ0 = YEAR_FORMATS;
|
|
20
|
-
export class YearTagComponent extends AnyTagComponent {
|
|
21
|
-
constructor() {
|
|
22
|
-
super();
|
|
23
|
-
this.lockedDate = [];
|
|
24
|
-
this.date = new FormControl(moment());
|
|
25
|
-
this.dateFilter = (date) => {
|
|
26
|
-
const calendarDateYear = moment(date).year();
|
|
27
|
-
let status = true;
|
|
28
|
-
this.lockedDate.forEach(timestamp => {
|
|
29
|
-
const lockDate = moment.unix(timestamp);
|
|
30
|
-
return status = !(lockDate.year() === calendarDateYear);
|
|
31
|
-
});
|
|
32
|
-
return status;
|
|
33
|
-
};
|
|
34
|
-
}
|
|
35
|
-
initDate() {
|
|
36
|
-
if (this.defaultValue) {
|
|
37
|
-
this.dateObj.date = moment(new Date(this.defaultValue * 1000)).utc().format("YYYY");
|
|
38
|
-
this.date = new FormControl(moment(this.defaultValue * 1000));
|
|
39
|
-
}
|
|
40
|
-
else {
|
|
41
|
-
this.dateObj.date = moment(new Date()).format("YYYY");
|
|
42
|
-
}
|
|
43
|
-
}
|
|
44
|
-
initName() {
|
|
45
|
-
if (!this.name) {
|
|
46
|
-
this.name = "Year";
|
|
47
|
-
}
|
|
48
|
-
}
|
|
49
|
-
chosenTagHandler(value) {
|
|
50
|
-
const date = new Date();
|
|
51
|
-
const year = moment(value).year();
|
|
52
|
-
date.setTime(0);
|
|
53
|
-
date.setFullYear(year, 0, 1);
|
|
54
|
-
const resultDate = moment.utc(date);
|
|
55
|
-
resultDate.hour(12);
|
|
56
|
-
const resultTag = {
|
|
57
|
-
name: this.name,
|
|
58
|
-
value: parseInt(resultDate.format("X"), 10),
|
|
59
|
-
label: resultDate.format("YYYY"),
|
|
60
|
-
locked: !this.dateFilter(value)
|
|
61
|
-
};
|
|
62
|
-
console.log("resultTag", resultTag);
|
|
63
|
-
this.dateChange.emit(resultTag);
|
|
64
|
-
}
|
|
65
|
-
chosenYearHandler(normalizedYear, datepicker) {
|
|
66
|
-
const ctrlValue = this.date.value;
|
|
67
|
-
ctrlValue.year(normalizedYear.year());
|
|
68
|
-
this.date.setValue(ctrlValue);
|
|
69
|
-
this.dateObj.date = this.date.value;
|
|
70
|
-
this.chosenTagHandler(this.date.value);
|
|
71
|
-
datepicker.close();
|
|
72
|
-
}
|
|
73
|
-
}
|
|
74
|
-
YearTagComponent.decorators = [
|
|
75
|
-
{ type: Component, args: [{
|
|
76
|
-
template: "<div>\n <mat-form-field class=\"date-select-box\">\n <input\n matInput\n placeholder=\"{{name}}\"\n name=\"Year\"\n [formControl]=\"date\"\n [matDatepicker]=\"datepicker\"\n [matDatepickerFilter]=\"dateFilter\">\n <mat-datepicker-toggle matSuffix [for]=\"datepicker\"></mat-datepicker-toggle>\n <mat-datepicker\n #datepicker\n startView=\"multi-year\"\n (yearSelected)=\"chosenYearHandler($event, datepicker)\"\n panelClass=\"date-month-picker\"\n ></mat-datepicker>\n </mat-form-field>\n</div>\n",
|
|
77
|
-
selector: "year-tag",
|
|
78
|
-
providers: [
|
|
79
|
-
{
|
|
80
|
-
provide: DateAdapter,
|
|
81
|
-
useClass: MomentDateAdapter,
|
|
82
|
-
deps: [MAT_DATE_LOCALE, MAT_MOMENT_DATE_ADAPTER_OPTIONS],
|
|
83
|
-
},
|
|
84
|
-
{ provide: MAT_DATE_FORMATS, useValue: ɵ0 },
|
|
85
|
-
]
|
|
86
|
-
},] }
|
|
87
|
-
];
|
|
88
|
-
YearTagComponent.ctorParameters = () => [];
|
|
89
|
-
YearTagComponent.propDecorators = {
|
|
90
|
-
lockedDate: [{ type: Input }]
|
|
91
|
-
};
|
|
92
|
-
export { ɵ0 };
|
|
93
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
1
|
+
import { Component, Input } from "@angular/core";
|
|
2
|
+
import { FormControl } from "@angular/forms";
|
|
3
|
+
import { AnyTagComponent } from "../date-tag.component";
|
|
4
|
+
import { DateAdapter, MAT_DATE_FORMATS, MAT_DATE_LOCALE } from "@angular/material/core";
|
|
5
|
+
import { MAT_MOMENT_DATE_ADAPTER_OPTIONS, MomentDateAdapter } from "@angular/material-moment-adapter";
|
|
6
|
+
// @ts-ignore
|
|
7
|
+
const moment = require("moment");
|
|
8
|
+
const YEAR_FORMATS = {
|
|
9
|
+
parse: {
|
|
10
|
+
dateInput: "YYYY",
|
|
11
|
+
},
|
|
12
|
+
display: {
|
|
13
|
+
dateInput: "YYYY",
|
|
14
|
+
monthYearLabel: "MMMM YYYY",
|
|
15
|
+
dateA11yLabel: "LL",
|
|
16
|
+
monthYearA11yLabel: "MMMM YYYY"
|
|
17
|
+
},
|
|
18
|
+
};
|
|
19
|
+
const ɵ0 = YEAR_FORMATS;
|
|
20
|
+
export class YearTagComponent extends AnyTagComponent {
|
|
21
|
+
constructor() {
|
|
22
|
+
super();
|
|
23
|
+
this.lockedDate = [];
|
|
24
|
+
this.date = new FormControl(moment());
|
|
25
|
+
this.dateFilter = (date) => {
|
|
26
|
+
const calendarDateYear = moment(date).year();
|
|
27
|
+
let status = true;
|
|
28
|
+
this.lockedDate.forEach(timestamp => {
|
|
29
|
+
const lockDate = moment.unix(timestamp);
|
|
30
|
+
return status = !(lockDate.year() === calendarDateYear);
|
|
31
|
+
});
|
|
32
|
+
return status;
|
|
33
|
+
};
|
|
34
|
+
}
|
|
35
|
+
initDate() {
|
|
36
|
+
if (this.defaultValue) {
|
|
37
|
+
this.dateObj.date = moment(new Date(this.defaultValue * 1000)).utc().format("YYYY");
|
|
38
|
+
this.date = new FormControl(moment(this.defaultValue * 1000));
|
|
39
|
+
}
|
|
40
|
+
else {
|
|
41
|
+
this.dateObj.date = moment(new Date()).format("YYYY");
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
initName() {
|
|
45
|
+
if (!this.name) {
|
|
46
|
+
this.name = "Year";
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
chosenTagHandler(value) {
|
|
50
|
+
const date = new Date();
|
|
51
|
+
const year = moment(value).year();
|
|
52
|
+
date.setTime(0);
|
|
53
|
+
date.setFullYear(year, 0, 1);
|
|
54
|
+
const resultDate = moment.utc(date);
|
|
55
|
+
resultDate.hour(12);
|
|
56
|
+
const resultTag = {
|
|
57
|
+
name: this.name,
|
|
58
|
+
value: parseInt(resultDate.format("X"), 10),
|
|
59
|
+
label: resultDate.format("YYYY"),
|
|
60
|
+
locked: !this.dateFilter(value)
|
|
61
|
+
};
|
|
62
|
+
console.log("resultTag", resultTag);
|
|
63
|
+
this.dateChange.emit(resultTag);
|
|
64
|
+
}
|
|
65
|
+
chosenYearHandler(normalizedYear, datepicker) {
|
|
66
|
+
const ctrlValue = this.date.value;
|
|
67
|
+
ctrlValue.year(normalizedYear.year());
|
|
68
|
+
this.date.setValue(ctrlValue);
|
|
69
|
+
this.dateObj.date = this.date.value;
|
|
70
|
+
this.chosenTagHandler(this.date.value);
|
|
71
|
+
datepicker.close();
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
YearTagComponent.decorators = [
|
|
75
|
+
{ type: Component, args: [{
|
|
76
|
+
template: "<div>\r\n <mat-form-field class=\"date-select-box\">\r\n <input\r\n matInput\r\n placeholder=\"{{name}}\"\r\n name=\"Year\"\r\n [formControl]=\"date\"\r\n [matDatepicker]=\"datepicker\"\r\n [matDatepickerFilter]=\"dateFilter\">\r\n <mat-datepicker-toggle matSuffix [for]=\"datepicker\"></mat-datepicker-toggle>\r\n <mat-datepicker\r\n #datepicker\r\n startView=\"multi-year\"\r\n (yearSelected)=\"chosenYearHandler($event, datepicker)\"\r\n panelClass=\"date-month-picker\"\r\n ></mat-datepicker>\r\n </mat-form-field>\r\n</div>\r\n",
|
|
77
|
+
selector: "year-tag",
|
|
78
|
+
providers: [
|
|
79
|
+
{
|
|
80
|
+
provide: DateAdapter,
|
|
81
|
+
useClass: MomentDateAdapter,
|
|
82
|
+
deps: [MAT_DATE_LOCALE, MAT_MOMENT_DATE_ADAPTER_OPTIONS],
|
|
83
|
+
},
|
|
84
|
+
{ provide: MAT_DATE_FORMATS, useValue: ɵ0 },
|
|
85
|
+
]
|
|
86
|
+
},] }
|
|
87
|
+
];
|
|
88
|
+
YearTagComponent.ctorParameters = () => [];
|
|
89
|
+
YearTagComponent.propDecorators = {
|
|
90
|
+
lockedDate: [{ type: Input }]
|
|
91
|
+
};
|
|
92
|
+
export { ɵ0 };
|
|
93
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoieWVhci10YWcuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGF0YXJhaWxzc2hhcmVkL3NyYy9saWIvZGF0ZS10YWdzL3llYXItdGFnL3llYXItdGFnLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFFLEtBQUssRUFBUyxNQUFNLGVBQWUsQ0FBQztBQUN2RCxPQUFPLEVBQUMsV0FBVyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFJM0MsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLHVCQUF1QixDQUFDO0FBQ3RELE9BQU8sRUFBQyxXQUFXLEVBQUUsZ0JBQWdCLEVBQUUsZUFBZSxFQUFDLE1BQU0sd0JBQXdCLENBQUM7QUFDdEYsT0FBTyxFQUFDLCtCQUErQixFQUFFLGlCQUFpQixFQUFDLE1BQU0sa0NBQWtDLENBQUM7QUFDcEcsYUFBYTtBQUNiLE1BQU0sTUFBTSxHQUFHLE9BQU8sQ0FBQyxRQUFRLENBQUMsQ0FBQztBQUVqQyxNQUFNLFlBQVksR0FBRztJQUNuQixLQUFLLEVBQUU7UUFDTCxTQUFTLEVBQUUsTUFBTTtLQUNsQjtJQUNELE9BQU8sRUFBRTtRQUNQLFNBQVMsRUFBRSxNQUFNO1FBQ2pCLGNBQWMsRUFBRSxXQUFXO1FBQzNCLGFBQWEsRUFBRSxJQUFJO1FBQ25CLGtCQUFrQixFQUFFLFdBQVc7S0FDaEM7Q0FDRixDQUFDO1dBVzBDLFlBQVk7QUFJeEQsTUFBTSxPQUFPLGdCQUFpQixTQUFRLGVBQWU7SUFLbkQ7UUFDRSxLQUFLLEVBQUUsQ0FBQztRQUxELGVBQVUsR0FBVSxFQUFFLENBQUM7UUFFaEMsU0FBSSxHQUFHLElBQUksV0FBVyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUM7UUFpRGpDLGVBQVUsR0FBRyxDQUFDLElBQUksRUFBRSxFQUFFO1lBQ3BCLE1BQU0sZ0JBQWdCLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDO1lBQzdDLElBQUksTUFBTSxHQUFHLElBQUksQ0FBQztZQUVsQixJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsRUFBRTtnQkFDbEMsTUFBTSxRQUFRLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztnQkFFeEMsT0FBTyxNQUFNLEdBQUcsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsS0FBSyxnQkFBZ0IsQ0FBQyxDQUFBO1lBQ3pELENBQUMsQ0FBQyxDQUFDO1lBRUgsT0FBTyxNQUFNLENBQUM7UUFDaEIsQ0FBQyxDQUFBO0lBeERELENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBSSxJQUFJLENBQUMsWUFBWSxFQUFFO1lBQ3JCLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxHQUFHLE1BQU0sQ0FBQyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQ3BGLElBQUksQ0FBQyxJQUFJLEdBQUcsSUFBSSxXQUFXLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQztTQUMvRDthQUFNO1lBQ0wsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEdBQUcsTUFBTSxDQUFDLElBQUksSUFBSSxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7U0FDdkQ7SUFDSCxDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFO1lBQ2QsSUFBSSxDQUFDLElBQUksR0FBRyxNQUFNLENBQUM7U0FDcEI7SUFDSCxDQUFDO0lBRUQsZ0JBQWdCLENBQUMsS0FBSztRQUNsQixNQUFNLElBQUksR0FBRyxJQUFJLElBQUksRUFBRSxDQUFDO1FBQ3hCLE1BQU0sSUFBSSxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNsQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ2hCLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUM3QixNQUFNLFVBQVUsR0FBVyxNQUFNLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzVDLFVBQVUsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDcEIsTUFBTSxTQUFTLEdBQWE7WUFDeEIsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJO1lBQ2YsS0FBSyxFQUFFLFFBQVEsQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQztZQUMzQyxLQUFLLEVBQUUsVUFBVSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUM7WUFDaEMsTUFBTSxFQUFFLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUM7U0FDbEMsQ0FBQztRQUNGLE9BQU8sQ0FBQyxHQUFHLENBQUMsV0FBVyxFQUFFLFNBQVMsQ0FBQyxDQUFDO1FBQ3BDLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ3BDLENBQUM7SUFFRCxpQkFBaUIsQ0FBQyxjQUFzQixFQUFFLFVBQWlDO1FBQ3pFLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDO1FBQ2xDLFNBQVMsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUM7UUFFdEMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDOUIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUM7UUFDcEMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFdkMsVUFBVSxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQ3JCLENBQUM7OztZQS9ERixTQUFTLFNBQUM7Z0JBQ1AsZ3JCQUFzQztnQkFDdEMsUUFBUSxFQUFFLFVBQVU7Z0JBQ3BCLFNBQVMsRUFBRTtvQkFDVDt3QkFDRSxPQUFPLEVBQUUsV0FBVzt3QkFDcEIsUUFBUSxFQUFFLGlCQUFpQjt3QkFDM0IsSUFBSSxFQUFFLENBQUMsZUFBZSxFQUFFLCtCQUErQixDQUFDO3FCQUN6RDtvQkFDRCxFQUFDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxRQUFRLElBQWMsRUFBQztpQkFDcEQ7YUFDSjs7Ozt5QkFHRSxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21wb25lbnQsIElucHV0LCBPbkluaXR9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7Rm9ybUNvbnRyb2x9IGZyb20gXCJAYW5ndWxhci9mb3Jtc1wiO1xyXG5pbXBvcnQge01hdERhdGVwaWNrZXJ9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC9kYXRlcGlja2VyXCI7XHJcbmltcG9ydCB7TW9tZW50fSBmcm9tIFwibW9tZW50XCI7XHJcbmltcG9ydCB7SURhdGVUYWd9IGZyb20gXCIuLi8uLi9tb2RlbHMvc2VydmVyVGFnc1wiO1xyXG5pbXBvcnQge0FueVRhZ0NvbXBvbmVudH0gZnJvbSBcIi4uL2RhdGUtdGFnLmNvbXBvbmVudFwiO1xyXG5pbXBvcnQge0RhdGVBZGFwdGVyLCBNQVRfREFURV9GT1JNQVRTLCBNQVRfREFURV9MT0NBTEV9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC9jb3JlXCI7XHJcbmltcG9ydCB7TUFUX01PTUVOVF9EQVRFX0FEQVBURVJfT1BUSU9OUywgTW9tZW50RGF0ZUFkYXB0ZXJ9IGZyb20gXCJAYW5ndWxhci9tYXRlcmlhbC1tb21lbnQtYWRhcHRlclwiO1xyXG4vLyBAdHMtaWdub3JlXHJcbmNvbnN0IG1vbWVudCA9IHJlcXVpcmUoXCJtb21lbnRcIik7XHJcblxyXG5jb25zdCBZRUFSX0ZPUk1BVFMgPSB7XHJcbiAgcGFyc2U6IHtcclxuICAgIGRhdGVJbnB1dDogXCJZWVlZXCIsXHJcbiAgfSxcclxuICBkaXNwbGF5OiB7XHJcbiAgICBkYXRlSW5wdXQ6IFwiWVlZWVwiLFxyXG4gICAgbW9udGhZZWFyTGFiZWw6IFwiTU1NTSBZWVlZXCIsXHJcbiAgICBkYXRlQTExeUxhYmVsOiBcIkxMXCIsXHJcbiAgICBtb250aFllYXJBMTF5TGFiZWw6IFwiTU1NTSBZWVlZXCJcclxuICB9LFxyXG59O1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgICB0ZW1wbGF0ZVVybDogXCJ5ZWFyLXRhZy5jb21wb25lbnQuaHRtbFwiLFxyXG4gICAgc2VsZWN0b3I6IFwieWVhci10YWdcIixcclxuICAgIHByb3ZpZGVyczogW1xyXG4gICAgICB7XHJcbiAgICAgICAgcHJvdmlkZTogRGF0ZUFkYXB0ZXIsXHJcbiAgICAgICAgdXNlQ2xhc3M6IE1vbWVudERhdGVBZGFwdGVyLFxyXG4gICAgICAgIGRlcHM6IFtNQVRfREFURV9MT0NBTEUsIE1BVF9NT01FTlRfREFURV9BREFQVEVSX09QVElPTlNdLFxyXG4gICAgICB9LFxyXG4gICAgICB7cHJvdmlkZTogTUFUX0RBVEVfRk9STUFUUywgdXNlVmFsdWU6IFlFQVJfRk9STUFUU30sXHJcbiAgICBdLFxyXG59KVxyXG5cclxuZXhwb3J0IGNsYXNzIFllYXJUYWdDb21wb25lbnQgZXh0ZW5kcyBBbnlUYWdDb21wb25lbnQge1xyXG4gIEBJbnB1dCgpIGxvY2tlZERhdGU6IGFueVtdID0gW107XHJcblxyXG4gIGRhdGUgPSBuZXcgRm9ybUNvbnRyb2wobW9tZW50KCkpO1xyXG5cclxuICBjb25zdHJ1Y3RvcigpIHtcclxuICAgIHN1cGVyKCk7XHJcbiAgfVxyXG5cclxuICBpbml0RGF0ZSgpIHtcclxuICAgIGlmICh0aGlzLmRlZmF1bHRWYWx1ZSkge1xyXG4gICAgICB0aGlzLmRhdGVPYmouZGF0ZSA9IG1vbWVudChuZXcgRGF0ZSh0aGlzLmRlZmF1bHRWYWx1ZSAqIDEwMDApKS51dGMoKS5mb3JtYXQoXCJZWVlZXCIpO1xyXG4gICAgICB0aGlzLmRhdGUgPSBuZXcgRm9ybUNvbnRyb2wobW9tZW50KHRoaXMuZGVmYXVsdFZhbHVlICogMTAwMCkpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5kYXRlT2JqLmRhdGUgPSBtb21lbnQobmV3IERhdGUoKSkuZm9ybWF0KFwiWVlZWVwiKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGluaXROYW1lKCkge1xyXG4gICAgaWYgKCF0aGlzLm5hbWUpIHtcclxuICAgICAgdGhpcy5uYW1lID0gXCJZZWFyXCI7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBjaG9zZW5UYWdIYW5kbGVyKHZhbHVlKSB7XHJcbiAgICAgIGNvbnN0IGRhdGUgPSBuZXcgRGF0ZSgpO1xyXG4gICAgICBjb25zdCB5ZWFyID0gbW9tZW50KHZhbHVlKS55ZWFyKCk7XHJcbiAgICAgIGRhdGUuc2V0VGltZSgwKTtcclxuICAgICAgZGF0ZS5zZXRGdWxsWWVhcih5ZWFyLCAwLCAxKTtcclxuICAgICAgY29uc3QgcmVzdWx0RGF0ZTogTW9tZW50ID0gbW9tZW50LnV0YyhkYXRlKTtcclxuICAgICAgcmVzdWx0RGF0ZS5ob3VyKDEyKTtcclxuICAgICAgY29uc3QgcmVzdWx0VGFnOiBJRGF0ZVRhZyA9IHtcclxuICAgICAgICAgIG5hbWU6IHRoaXMubmFtZSxcclxuICAgICAgICAgIHZhbHVlOiBwYXJzZUludChyZXN1bHREYXRlLmZvcm1hdChcIlhcIiksIDEwKSxcclxuICAgICAgICAgIGxhYmVsOiByZXN1bHREYXRlLmZvcm1hdChcIllZWVlcIiksXHJcbiAgICAgICAgICBsb2NrZWQ6ICF0aGlzLmRhdGVGaWx0ZXIodmFsdWUpXHJcbiAgICAgIH07XHJcbiAgICAgIGNvbnNvbGUubG9nKFwicmVzdWx0VGFnXCIsIHJlc3VsdFRhZyk7XHJcbiAgICAgIHRoaXMuZGF0ZUNoYW5nZS5lbWl0KHJlc3VsdFRhZyk7XHJcbiAgfVxyXG5cclxuICBjaG9zZW5ZZWFySGFuZGxlcihub3JtYWxpemVkWWVhcjogTW9tZW50LCBkYXRlcGlja2VyOiBNYXREYXRlcGlja2VyPE1vbWVudD4pIHtcclxuICAgIGNvbnN0IGN0cmxWYWx1ZSA9IHRoaXMuZGF0ZS52YWx1ZTtcclxuICAgIGN0cmxWYWx1ZS55ZWFyKG5vcm1hbGl6ZWRZZWFyLnllYXIoKSk7XHJcblxyXG4gICAgdGhpcy5kYXRlLnNldFZhbHVlKGN0cmxWYWx1ZSk7XHJcbiAgICB0aGlzLmRhdGVPYmouZGF0ZSA9IHRoaXMuZGF0ZS52YWx1ZTtcclxuICAgIHRoaXMuY2hvc2VuVGFnSGFuZGxlcih0aGlzLmRhdGUudmFsdWUpO1xyXG5cclxuICAgIGRhdGVwaWNrZXIuY2xvc2UoKTtcclxuICB9XHJcblxyXG4gIGRhdGVGaWx0ZXIgPSAoZGF0ZSkgPT4ge1xyXG4gICAgY29uc3QgY2FsZW5kYXJEYXRlWWVhciA9IG1vbWVudChkYXRlKS55ZWFyKCk7XHJcbiAgICBsZXQgc3RhdHVzID0gdHJ1ZTtcclxuXHJcbiAgICB0aGlzLmxvY2tlZERhdGUuZm9yRWFjaCh0aW1lc3RhbXAgPT4ge1xyXG4gICAgICBjb25zdCBsb2NrRGF0ZSA9IG1vbWVudC51bml4KHRpbWVzdGFtcCk7XHJcblxyXG4gICAgICByZXR1cm4gc3RhdHVzID0gIShsb2NrRGF0ZS55ZWFyKCkgPT09IGNhbGVuZGFyRGF0ZVllYXIpXHJcbiAgICB9KTtcclxuXHJcbiAgICByZXR1cm4gc3RhdHVzO1xyXG4gIH1cclxufVxyXG4iXX0=
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import { Component, ChangeDetectionStrategy, Host, ChangeDetectorRef, } from '@angular/core';
|
|
2
|
+
import { trigger, state, style, animate, transition } from '@angular/animations';
|
|
3
|
+
import { takeUntil } from 'rxjs/operators';
|
|
4
|
+
import { Subject } from 'rxjs';
|
|
5
|
+
import { DrAccordionItemComponent } from './accordion-item.component';
|
|
6
|
+
const accordionItemBodyTrigger = trigger('accordionItemBody', [
|
|
7
|
+
state('collapsed', style({
|
|
8
|
+
overflow: 'hidden',
|
|
9
|
+
visibility: 'hidden',
|
|
10
|
+
height: 0,
|
|
11
|
+
})),
|
|
12
|
+
state('expanded', style({
|
|
13
|
+
overflow: 'hidden',
|
|
14
|
+
visibility: 'visible',
|
|
15
|
+
})),
|
|
16
|
+
transition('collapsed => expanded', animate('100ms ease-in')),
|
|
17
|
+
transition('expanded => collapsed', animate('100ms ease-out')),
|
|
18
|
+
]);
|
|
19
|
+
export class DrAccordionItemBodyComponent {
|
|
20
|
+
constructor(accordionItem, cd) {
|
|
21
|
+
this.accordionItem = accordionItem;
|
|
22
|
+
this.cd = cd;
|
|
23
|
+
this.destroy$ = new Subject();
|
|
24
|
+
}
|
|
25
|
+
get state() {
|
|
26
|
+
return this.accordionItem.collapsed ? 'collapsed' : 'expanded';
|
|
27
|
+
}
|
|
28
|
+
ngOnInit() {
|
|
29
|
+
this.accordionItem.accordionItemInvalidate
|
|
30
|
+
.pipe(takeUntil(this.destroy$))
|
|
31
|
+
.subscribe(() => this.cd.markForCheck());
|
|
32
|
+
}
|
|
33
|
+
ngOnDestroy() {
|
|
34
|
+
this.destroy$.next();
|
|
35
|
+
this.destroy$.complete();
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
DrAccordionItemBodyComponent.decorators = [
|
|
39
|
+
{ type: Component, args: [{
|
|
40
|
+
selector: 'dr-accordion-item-body',
|
|
41
|
+
template: `
|
|
42
|
+
<div [@accordionItemBody]="{ value: state }">
|
|
43
|
+
<div class="item-body">
|
|
44
|
+
<ng-content></ng-content>
|
|
45
|
+
</div>
|
|
46
|
+
</div>
|
|
47
|
+
`,
|
|
48
|
+
animations: [accordionItemBodyTrigger],
|
|
49
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
50
|
+
styles: [".item-body{flex:1;-ms-flex:1 1 auto;overflow:auto;position:relative}\n"]
|
|
51
|
+
},] }
|
|
52
|
+
];
|
|
53
|
+
DrAccordionItemBodyComponent.ctorParameters = () => [
|
|
54
|
+
{ type: DrAccordionItemComponent, decorators: [{ type: Host }] },
|
|
55
|
+
{ type: ChangeDetectorRef }
|
|
56
|
+
];
|
|
57
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNjb3JkaW9uLWl0ZW0tYm9keS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9kYXRhcmFpbHNzaGFyZWQvc3JjL2xpYi9kci1hY2NvcmRpb24vYWNjb3JkaW9uLWl0ZW0tYm9keS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCx1QkFBdUIsRUFDdkIsSUFBSSxFQUNKLGlCQUFpQixHQUdsQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ2pGLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzQyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9CLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBRXRFLE1BQU0sd0JBQXdCLEdBQUcsT0FBTyxDQUFDLG1CQUFtQixFQUFFO0lBQzVELEtBQUssQ0FDSCxXQUFXLEVBQ1gsS0FBSyxDQUFDO1FBQ0osUUFBUSxFQUFFLFFBQVE7UUFDbEIsVUFBVSxFQUFFLFFBQVE7UUFDcEIsTUFBTSxFQUFFLENBQUM7S0FDVixDQUFDLENBQ0g7SUFDRCxLQUFLLENBQ0gsVUFBVSxFQUNWLEtBQUssQ0FBQztRQUNKLFFBQVEsRUFBRSxRQUFRO1FBQ2xCLFVBQVUsRUFBRSxTQUFTO0tBQ3RCLENBQUMsQ0FDSDtJQUNELFVBQVUsQ0FBQyx1QkFBdUIsRUFBRSxPQUFPLENBQUMsZUFBZSxDQUFDLENBQUM7SUFDN0QsVUFBVSxDQUFDLHVCQUF1QixFQUFFLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO0NBQy9ELENBQUMsQ0FBQztBQWVILE1BQU0sT0FBTyw0QkFBNEI7SUFHdkMsWUFBNEIsYUFBdUMsRUFBVSxFQUFxQjtRQUF0RSxrQkFBYSxHQUFiLGFBQWEsQ0FBMEI7UUFBVSxPQUFFLEdBQUYsRUFBRSxDQUFtQjtRQUYxRixhQUFRLEdBQUcsSUFBSSxPQUFPLEVBQVEsQ0FBQztJQUU4RCxDQUFDO0lBRXRHLElBQUksS0FBSztRQUNQLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLFdBQVcsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDO0lBQ2pFLENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBSSxDQUFDLGFBQWEsQ0FBQyx1QkFBdUI7YUFDdkMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7YUFDOUIsU0FBUyxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsWUFBWSxFQUFFLENBQUMsQ0FBQztJQUM3QyxDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDckIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUMzQixDQUFDOzs7WUEvQkYsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSx3QkFBd0I7Z0JBQ2xDLFFBQVEsRUFBRTs7Ozs7O0dBTVQ7Z0JBRUQsVUFBVSxFQUFFLENBQUMsd0JBQXdCLENBQUM7Z0JBQ3RDLGVBQWUsRUFBRSx1QkFBdUIsQ0FBQyxNQUFNOzthQUNoRDs7O1lBbENRLHdCQUF3Qix1QkFzQ2xCLElBQUk7WUE3Q2pCLGlCQUFpQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQ29tcG9uZW50LFxyXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxyXG4gIEhvc3QsXHJcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgT25Jbml0LFxyXG4gIE9uRGVzdHJveSxcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgdHJpZ2dlciwgc3RhdGUsIHN0eWxlLCBhbmltYXRlLCB0cmFuc2l0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvYW5pbWF0aW9ucyc7XHJcbmltcG9ydCB7IHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBEckFjY29yZGlvbkl0ZW1Db21wb25lbnQgfSBmcm9tICcuL2FjY29yZGlvbi1pdGVtLmNvbXBvbmVudCc7XHJcblxyXG5jb25zdCBhY2NvcmRpb25JdGVtQm9keVRyaWdnZXIgPSB0cmlnZ2VyKCdhY2NvcmRpb25JdGVtQm9keScsIFtcclxuICBzdGF0ZShcclxuICAgICdjb2xsYXBzZWQnLFxyXG4gICAgc3R5bGUoe1xyXG4gICAgICBvdmVyZmxvdzogJ2hpZGRlbicsXHJcbiAgICAgIHZpc2liaWxpdHk6ICdoaWRkZW4nLFxyXG4gICAgICBoZWlnaHQ6IDAsXHJcbiAgICB9KSxcclxuICApLFxyXG4gIHN0YXRlKFxyXG4gICAgJ2V4cGFuZGVkJyxcclxuICAgIHN0eWxlKHtcclxuICAgICAgb3ZlcmZsb3c6ICdoaWRkZW4nLFxyXG4gICAgICB2aXNpYmlsaXR5OiAndmlzaWJsZScsXHJcbiAgICB9KSxcclxuICApLFxyXG4gIHRyYW5zaXRpb24oJ2NvbGxhcHNlZCA9PiBleHBhbmRlZCcsIGFuaW1hdGUoJzEwMG1zIGVhc2UtaW4nKSksXHJcbiAgdHJhbnNpdGlvbignZXhwYW5kZWQgPT4gY29sbGFwc2VkJywgYW5pbWF0ZSgnMTAwbXMgZWFzZS1vdXQnKSksXHJcbl0pO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdkci1hY2NvcmRpb24taXRlbS1ib2R5JyxcclxuICB0ZW1wbGF0ZTogYFxyXG4gICAgPGRpdiBbQGFjY29yZGlvbkl0ZW1Cb2R5XT1cInsgdmFsdWU6IHN0YXRlIH1cIj5cclxuICAgICAgPGRpdiBjbGFzcz1cIml0ZW0tYm9keVwiPlxyXG4gICAgICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICBgLFxyXG4gIHN0eWxlVXJsczogWycuL2FjY29yZGlvbi1pdGVtLWJvZHkuY29tcG9uZW50LnNjc3MnXSxcclxuICBhbmltYXRpb25zOiBbYWNjb3JkaW9uSXRlbUJvZHlUcmlnZ2VyXSxcclxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcclxufSlcclxuZXhwb3J0IGNsYXNzIERyQWNjb3JkaW9uSXRlbUJvZHlDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XHJcbiAgcHJpdmF0ZSBkZXN0cm95JCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XHJcblxyXG4gIGNvbnN0cnVjdG9yKEBIb3N0KCkgcHJpdmF0ZSBhY2NvcmRpb25JdGVtOiBEckFjY29yZGlvbkl0ZW1Db21wb25lbnQsIHByaXZhdGUgY2Q6IENoYW5nZURldGVjdG9yUmVmKSB7fVxyXG5cclxuICBnZXQgc3RhdGUoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLmFjY29yZGlvbkl0ZW0uY29sbGFwc2VkID8gJ2NvbGxhcHNlZCcgOiAnZXhwYW5kZWQnO1xyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICB0aGlzLmFjY29yZGlvbkl0ZW0uYWNjb3JkaW9uSXRlbUludmFsaWRhdGVcclxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxyXG4gICAgICAuc3Vic2NyaWJlKCgpID0+IHRoaXMuY2QubWFya0ZvckNoZWNrKCkpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKSB7XHJcbiAgICB0aGlzLmRlc3Ryb3kkLm5leHQoKTtcclxuICAgIHRoaXMuZGVzdHJveSQuY29tcGxldGUoKTtcclxuICB9XHJcbn1cclxuIl19
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
import { Component, ChangeDetectionStrategy, Host, HostBinding, HostListener, ChangeDetectorRef, } from '@angular/core';
|
|
2
|
+
import { trigger, state, style, animate, transition } from '@angular/animations';
|
|
3
|
+
import { takeUntil } from 'rxjs/operators';
|
|
4
|
+
import { Subject } from 'rxjs';
|
|
5
|
+
import { DrAccordionItemComponent } from './accordion-item.component';
|
|
6
|
+
export class DrAccordionItemHeaderComponent {
|
|
7
|
+
constructor(accordionItem, cd) {
|
|
8
|
+
this.accordionItem = accordionItem;
|
|
9
|
+
this.cd = cd;
|
|
10
|
+
this.destroy$ = new Subject();
|
|
11
|
+
}
|
|
12
|
+
get isCollapsed() {
|
|
13
|
+
return this.accordionItem.collapsed;
|
|
14
|
+
}
|
|
15
|
+
get expanded() {
|
|
16
|
+
return !this.accordionItem.collapsed;
|
|
17
|
+
}
|
|
18
|
+
get tabbable() {
|
|
19
|
+
return this.accordionItem.disabled ? '-1' : '0';
|
|
20
|
+
}
|
|
21
|
+
get disabled() {
|
|
22
|
+
return this.accordionItem.disabled;
|
|
23
|
+
}
|
|
24
|
+
toggle() {
|
|
25
|
+
this.accordionItem.toggle();
|
|
26
|
+
}
|
|
27
|
+
get state() {
|
|
28
|
+
if (this.isCollapsed) {
|
|
29
|
+
return 'collapsed';
|
|
30
|
+
}
|
|
31
|
+
return 'expanded';
|
|
32
|
+
}
|
|
33
|
+
ngOnInit() {
|
|
34
|
+
this.accordionItem.accordionItemInvalidate
|
|
35
|
+
.pipe(takeUntil(this.destroy$))
|
|
36
|
+
.subscribe(() => this.cd.markForCheck());
|
|
37
|
+
}
|
|
38
|
+
ngOnDestroy() {
|
|
39
|
+
this.destroy$.next();
|
|
40
|
+
this.destroy$.complete();
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
DrAccordionItemHeaderComponent.decorators = [
|
|
44
|
+
{ type: Component, args: [{
|
|
45
|
+
selector: 'dr-accordion-item-header',
|
|
46
|
+
template: `
|
|
47
|
+
<ng-content select="dr-accordion-item-title"></ng-content>
|
|
48
|
+
<ng-content select="dr-accordion-item-description"></ng-content>
|
|
49
|
+
<ng-content></ng-content>
|
|
50
|
+
<i class="dr-icon-arrow-down expansion-indicator"
|
|
51
|
+
[@expansionIndicator]="state"
|
|
52
|
+
*ngIf="!disabled">
|
|
53
|
+
</i>
|
|
54
|
+
`,
|
|
55
|
+
animations: [
|
|
56
|
+
trigger('expansionIndicator', [
|
|
57
|
+
state('expanded', style({
|
|
58
|
+
transform: 'rotate(180deg)',
|
|
59
|
+
})),
|
|
60
|
+
transition('collapsed => expanded', animate('100ms ease-in')),
|
|
61
|
+
transition('expanded => collapsed', animate('100ms ease-out')),
|
|
62
|
+
]),
|
|
63
|
+
],
|
|
64
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
65
|
+
styles: [":host{display:flex;align-items:center;cursor:pointer;position:relative;border-bottom:1px solid #edf1f7;color:#222b45;font-family:\"Poppins\",sans-serif;font-size:13px;font-weight:600;line-height:1.5rem;padding:1.25rem;text-transform:capitalize}:host:focus{outline:0}:host .expansion-indicator{font-size:24px;position:absolute;right:10px;font-weight:700}\n"]
|
|
66
|
+
},] }
|
|
67
|
+
];
|
|
68
|
+
DrAccordionItemHeaderComponent.ctorParameters = () => [
|
|
69
|
+
{ type: DrAccordionItemComponent, decorators: [{ type: Host }] },
|
|
70
|
+
{ type: ChangeDetectorRef }
|
|
71
|
+
];
|
|
72
|
+
DrAccordionItemHeaderComponent.propDecorators = {
|
|
73
|
+
isCollapsed: [{ type: HostBinding, args: ['class.accordion-item-header-collapsed',] }],
|
|
74
|
+
expanded: [{ type: HostBinding, args: ['class.accordion-item-header-expanded',] }, { type: HostBinding, args: ['attr.aria-expanded',] }],
|
|
75
|
+
tabbable: [{ type: HostBinding, args: ['attr.tabindex',] }],
|
|
76
|
+
disabled: [{ type: HostBinding, args: ['attr.aria-disabled',] }],
|
|
77
|
+
toggle: [{ type: HostListener, args: ['click',] }, { type: HostListener, args: ['keydown.space',] }, { type: HostListener, args: ['keydown.enter',] }]
|
|
78
|
+
};
|
|
79
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNjb3JkaW9uLWl0ZW0taGVhZGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2RhdGFyYWlsc3NoYXJlZC9zcmMvbGliL2RyLWFjY29yZGlvbi9hY2NvcmRpb24taXRlbS1oZWFkZXIuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsdUJBQXVCLEVBQ3ZCLElBQUksRUFDSixXQUFXLEVBQ1gsWUFBWSxFQUdaLGlCQUFpQixHQUNsQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ2pGLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzQyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9CLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBNEJ0RSxNQUFNLE9BQU8sOEJBQThCO0lBc0N6QyxZQUE0QixhQUF1QyxFQUFVLEVBQXFCO1FBQXRFLGtCQUFhLEdBQWIsYUFBYSxDQUEwQjtRQUFVLE9BQUUsR0FBRixFQUFFLENBQW1CO1FBckMxRixhQUFRLEdBQUcsSUFBSSxPQUFPLEVBQVEsQ0FBQztJQXNDdkMsQ0FBQztJQXBDRCxJQUNJLFdBQVc7UUFDYixPQUFPLElBQUksQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDO0lBQ3RDLENBQUM7SUFFRCxJQUVJLFFBQVE7UUFDVixPQUFPLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUM7SUFDdkMsQ0FBQztJQUVELElBQ0ksUUFBUTtRQUNWLE9BQU8sSUFBSSxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDO0lBQ2xELENBQUM7SUFFRCxJQUNJLFFBQVE7UUFDVixPQUFPLElBQUksQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDO0lBQ3JDLENBQUM7SUFLRCxNQUFNO1FBQ0osSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLEVBQUUsQ0FBQztJQUM5QixDQUFDO0lBRUQsSUFBSSxLQUFLO1FBQ1AsSUFBSSxJQUFJLENBQUMsV0FBVyxFQUFFO1lBQ3BCLE9BQU8sV0FBVyxDQUFDO1NBQ3BCO1FBQ0QsT0FBTyxVQUFVLENBQUM7SUFDcEIsQ0FBQztJQUtELFFBQVE7UUFDTixJQUFJLENBQUMsYUFBYSxDQUFDLHVCQUF1QjthQUN2QyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQzthQUM5QixTQUFTLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxZQUFZLEVBQUUsQ0FBQyxDQUFDO0lBQzdDLENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNyQixJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQzNCLENBQUM7OztZQTVFRixTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLDBCQUEwQjtnQkFFcEMsUUFBUSxFQUFFOzs7Ozs7OztHQVFUO2dCQUNELFVBQVUsRUFBRTtvQkFDVixPQUFPLENBQUMsb0JBQW9CLEVBQUU7d0JBQzVCLEtBQUssQ0FDSCxVQUFVLEVBQ1YsS0FBSyxDQUFDOzRCQUNKLFNBQVMsRUFBRSxnQkFBZ0I7eUJBQzVCLENBQUMsQ0FDSDt3QkFDRCxVQUFVLENBQUMsdUJBQXVCLEVBQUUsT0FBTyxDQUFDLGVBQWUsQ0FBQyxDQUFDO3dCQUM3RCxVQUFVLENBQUMsdUJBQXVCLEVBQUUsT0FBTyxDQUFDLGdCQUFnQixDQUFDLENBQUM7cUJBQy9ELENBQUM7aUJBQ0g7Z0JBQ0QsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07O2FBQ2hEOzs7WUEzQlEsd0JBQXdCLHVCQWtFbEIsSUFBSTtZQXZFakIsaUJBQWlCOzs7MEJBb0NoQixXQUFXLFNBQUMsdUNBQXVDO3VCQUtuRCxXQUFXLFNBQUMsc0NBQXNDLGNBQ2xELFdBQVcsU0FBQyxvQkFBb0I7dUJBS2hDLFdBQVcsU0FBQyxlQUFlO3VCQUszQixXQUFXLFNBQUMsb0JBQW9CO3FCQUtoQyxZQUFZLFNBQUMsT0FBTyxjQUNwQixZQUFZLFNBQUMsZUFBZSxjQUM1QixZQUFZLFNBQUMsZUFBZSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQ29tcG9uZW50LFxyXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxyXG4gIEhvc3QsXHJcbiAgSG9zdEJpbmRpbmcsXHJcbiAgSG9zdExpc3RlbmVyLFxyXG4gIE9uSW5pdCxcclxuICBPbkRlc3Ryb3ksXHJcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IHRyaWdnZXIsIHN0YXRlLCBzdHlsZSwgYW5pbWF0ZSwgdHJhbnNpdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2FuaW1hdGlvbnMnO1xyXG5pbXBvcnQgeyB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgRHJBY2NvcmRpb25JdGVtQ29tcG9uZW50IH0gZnJvbSAnLi9hY2NvcmRpb24taXRlbS5jb21wb25lbnQnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdkci1hY2NvcmRpb24taXRlbS1oZWFkZXInLFxyXG4gIHN0eWxlVXJsczogWycuL2FjY29yZGlvbi1pdGVtLWhlYWRlci5jb21wb25lbnQuc2NzcyddLFxyXG4gIHRlbXBsYXRlOiBgXHJcbiAgICA8bmctY29udGVudCBzZWxlY3Q9XCJkci1hY2NvcmRpb24taXRlbS10aXRsZVwiPjwvbmctY29udGVudD5cclxuICAgIDxuZy1jb250ZW50IHNlbGVjdD1cImRyLWFjY29yZGlvbi1pdGVtLWRlc2NyaXB0aW9uXCI+PC9uZy1jb250ZW50PlxyXG4gICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxyXG4gICAgPGkgY2xhc3M9XCJkci1pY29uLWFycm93LWRvd24gZXhwYW5zaW9uLWluZGljYXRvclwiXHJcbiAgICAgICBbQGV4cGFuc2lvbkluZGljYXRvcl09XCJzdGF0ZVwiXHJcbiAgICAgICAqbmdJZj1cIiFkaXNhYmxlZFwiPlxyXG4gICAgPC9pPlxyXG4gIGAsXHJcbiAgYW5pbWF0aW9uczogW1xyXG4gICAgdHJpZ2dlcignZXhwYW5zaW9uSW5kaWNhdG9yJywgW1xyXG4gICAgICBzdGF0ZShcclxuICAgICAgICAnZXhwYW5kZWQnLFxyXG4gICAgICAgIHN0eWxlKHtcclxuICAgICAgICAgIHRyYW5zZm9ybTogJ3JvdGF0ZSgxODBkZWcpJyxcclxuICAgICAgICB9KSxcclxuICAgICAgKSxcclxuICAgICAgdHJhbnNpdGlvbignY29sbGFwc2VkID0+IGV4cGFuZGVkJywgYW5pbWF0ZSgnMTAwbXMgZWFzZS1pbicpKSxcclxuICAgICAgdHJhbnNpdGlvbignZXhwYW5kZWQgPT4gY29sbGFwc2VkJywgYW5pbWF0ZSgnMTAwbXMgZWFzZS1vdXQnKSksXHJcbiAgICBdKSxcclxuICBdLFxyXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgRHJBY2NvcmRpb25JdGVtSGVhZGVyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xyXG4gIHByaXZhdGUgZGVzdHJveSQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xyXG5cclxuICBASG9zdEJpbmRpbmcoJ2NsYXNzLmFjY29yZGlvbi1pdGVtLWhlYWRlci1jb2xsYXBzZWQnKVxyXG4gIGdldCBpc0NvbGxhcHNlZCgpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLmFjY29yZGlvbkl0ZW0uY29sbGFwc2VkO1xyXG4gIH1cclxuXHJcbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5hY2NvcmRpb24taXRlbS1oZWFkZXItZXhwYW5kZWQnKVxyXG4gIEBIb3N0QmluZGluZygnYXR0ci5hcmlhLWV4cGFuZGVkJylcclxuICBnZXQgZXhwYW5kZWQoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gIXRoaXMuYWNjb3JkaW9uSXRlbS5jb2xsYXBzZWQ7XHJcbiAgfVxyXG5cclxuICBASG9zdEJpbmRpbmcoJ2F0dHIudGFiaW5kZXgnKVxyXG4gIGdldCB0YWJiYWJsZSgpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMuYWNjb3JkaW9uSXRlbS5kaXNhYmxlZCA/ICctMScgOiAnMCc7XHJcbiAgfVxyXG5cclxuICBASG9zdEJpbmRpbmcoJ2F0dHIuYXJpYS1kaXNhYmxlZCcpXHJcbiAgZ2V0IGRpc2FibGVkKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuYWNjb3JkaW9uSXRlbS5kaXNhYmxlZDtcclxuICB9XHJcblxyXG4gIEBIb3N0TGlzdGVuZXIoJ2NsaWNrJylcclxuICBASG9zdExpc3RlbmVyKCdrZXlkb3duLnNwYWNlJylcclxuICBASG9zdExpc3RlbmVyKCdrZXlkb3duLmVudGVyJylcclxuICB0b2dnbGUoKSB7XHJcbiAgICB0aGlzLmFjY29yZGlvbkl0ZW0udG9nZ2xlKCk7XHJcbiAgfVxyXG5cclxuICBnZXQgc3RhdGUoKTogc3RyaW5nIHtcclxuICAgIGlmICh0aGlzLmlzQ29sbGFwc2VkKSB7XHJcbiAgICAgIHJldHVybiAnY29sbGFwc2VkJztcclxuICAgIH1cclxuICAgIHJldHVybiAnZXhwYW5kZWQnO1xyXG4gIH1cclxuXHJcbiAgY29uc3RydWN0b3IoQEhvc3QoKSBwcml2YXRlIGFjY29yZGlvbkl0ZW06IERyQWNjb3JkaW9uSXRlbUNvbXBvbmVudCwgcHJpdmF0ZSBjZDogQ2hhbmdlRGV0ZWN0b3JSZWYpIHtcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgdGhpcy5hY2NvcmRpb25JdGVtLmFjY29yZGlvbkl0ZW1JbnZhbGlkYXRlXHJcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSlcclxuICAgICAgLnN1YnNjcmliZSgoKSA9PiB0aGlzLmNkLm1hcmtGb3JDaGVjaygpKTtcclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCkge1xyXG4gICAgdGhpcy5kZXN0cm95JC5uZXh0KCk7XHJcbiAgICB0aGlzLmRlc3Ryb3kkLmNvbXBsZXRlKCk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
import { Component, ChangeDetectionStrategy, ChangeDetectorRef, Input, Output, EventEmitter, HostBinding, Host, } from '@angular/core';
|
|
2
|
+
import { Subject } from 'rxjs';
|
|
3
|
+
import { takeUntil } from 'rxjs/operators';
|
|
4
|
+
import { DrAccordionComponent } from './accordion.component';
|
|
5
|
+
export class DrAccordionItemComponent {
|
|
6
|
+
constructor(accordion, cd) {
|
|
7
|
+
this.accordion = accordion;
|
|
8
|
+
this.cd = cd;
|
|
9
|
+
/**
|
|
10
|
+
* Emits whenever the expanded state of the accordion changes.
|
|
11
|
+
* Primarily used to facilitate two-way binding.
|
|
12
|
+
*/
|
|
13
|
+
this.collapsedChange = new EventEmitter();
|
|
14
|
+
this.accordionItemInvalidate = new Subject();
|
|
15
|
+
this.collapsedValue = true;
|
|
16
|
+
this.disabledValue = false;
|
|
17
|
+
this.destroy$ = new Subject();
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Item is collapse (`true` by default)
|
|
21
|
+
* @type {boolean}
|
|
22
|
+
*/
|
|
23
|
+
get collapsed() {
|
|
24
|
+
return this.collapsedValue;
|
|
25
|
+
}
|
|
26
|
+
set collapsed(val) {
|
|
27
|
+
this.collapsedValue = !!val;
|
|
28
|
+
this.collapsedChange.emit(this.collapsedValue);
|
|
29
|
+
this.invalidate();
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Item is expanded (`false` by default)
|
|
33
|
+
*/
|
|
34
|
+
get expanded() {
|
|
35
|
+
return !this.collapsed;
|
|
36
|
+
}
|
|
37
|
+
set expanded(val) {
|
|
38
|
+
this.collapsedValue = !val;
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Item is disabled and cannot be opened.
|
|
42
|
+
* @type {boolean}
|
|
43
|
+
*/
|
|
44
|
+
get disabled() {
|
|
45
|
+
return this.disabledValue;
|
|
46
|
+
}
|
|
47
|
+
set disabled(val) {
|
|
48
|
+
this.disabledValue = !!val;
|
|
49
|
+
this.invalidate();
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Open/close the item
|
|
53
|
+
*/
|
|
54
|
+
toggle() {
|
|
55
|
+
if (!this.disabled) {
|
|
56
|
+
// we need this temporary variable as `openCloseItems.next` will change current value we need to save
|
|
57
|
+
const willSet = !this.collapsed;
|
|
58
|
+
if (!this.accordion.multi) {
|
|
59
|
+
this.accordion.openCloseItems.next(true);
|
|
60
|
+
}
|
|
61
|
+
this.collapsed = willSet;
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* Open the item.
|
|
66
|
+
*/
|
|
67
|
+
open() {
|
|
68
|
+
if (!this.disabled) {
|
|
69
|
+
this.collapsed = false;
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* Collapse the item.
|
|
74
|
+
*/
|
|
75
|
+
close() {
|
|
76
|
+
if (!this.disabled) {
|
|
77
|
+
this.collapsed = true;
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
ngOnInit() {
|
|
81
|
+
this.accordion.openCloseItems
|
|
82
|
+
.pipe(takeUntil(this.destroy$))
|
|
83
|
+
.subscribe(collapsed => {
|
|
84
|
+
if (!this.disabled) {
|
|
85
|
+
this.collapsed = collapsed;
|
|
86
|
+
}
|
|
87
|
+
});
|
|
88
|
+
}
|
|
89
|
+
ngOnChanges(changes) {
|
|
90
|
+
this.accordionItemInvalidate.next(true);
|
|
91
|
+
}
|
|
92
|
+
ngOnDestroy() {
|
|
93
|
+
this.destroy$.next();
|
|
94
|
+
this.destroy$.complete();
|
|
95
|
+
this.accordionItemInvalidate.complete();
|
|
96
|
+
}
|
|
97
|
+
invalidate() {
|
|
98
|
+
this.accordionItemInvalidate.next(true);
|
|
99
|
+
this.cd.markForCheck();
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
DrAccordionItemComponent.decorators = [
|
|
103
|
+
{ type: Component, args: [{
|
|
104
|
+
selector: 'dr-accordion-item',
|
|
105
|
+
template: `
|
|
106
|
+
<ng-content select="dr-accordion-item-header"></ng-content>
|
|
107
|
+
<ng-content select="dr-accordion-item-body"></ng-content>
|
|
108
|
+
`,
|
|
109
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
110
|
+
styles: [":host{background-color:#fff;color:#222b45;font-family:\"Poppins\",sans-serif;font-size:16px;font-weight:400;line-height:1.25rem;display:flex;flex-direction:column}\n"]
|
|
111
|
+
},] }
|
|
112
|
+
];
|
|
113
|
+
DrAccordionItemComponent.ctorParameters = () => [
|
|
114
|
+
{ type: DrAccordionComponent, decorators: [{ type: Host }] },
|
|
115
|
+
{ type: ChangeDetectorRef }
|
|
116
|
+
];
|
|
117
|
+
DrAccordionItemComponent.propDecorators = {
|
|
118
|
+
collapsed: [{ type: Input, args: ['collapsed',] }, { type: HostBinding, args: ['class.collapsed',] }],
|
|
119
|
+
expanded: [{ type: Input, args: ['expanded',] }, { type: HostBinding, args: ['class.expanded',] }],
|
|
120
|
+
disabled: [{ type: Input, args: ['disabled',] }, { type: HostBinding, args: ['class.disabled',] }],
|
|
121
|
+
collapsedChange: [{ type: Output }]
|
|
122
|
+
};
|
|
123
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNjb3JkaW9uLWl0ZW0uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGF0YXJhaWxzc2hhcmVkL3NyYy9saWIvZHItYWNjb3JkaW9uL2FjY29yZGlvbi1pdGVtLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsS0FBSyxFQUNMLE1BQU0sRUFDTixZQUFZLEVBRVosV0FBVyxFQUNYLElBQUksR0FJTCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9CLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzQyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQVc3RCxNQUFNLE9BQU8sd0JBQXdCO0lBMERuQyxZQUE0QixTQUErQixFQUFVLEVBQXFCO1FBQTlELGNBQVMsR0FBVCxTQUFTLENBQXNCO1FBQVUsT0FBRSxHQUFGLEVBQUUsQ0FBbUI7UUFaMUY7OztXQUdHO1FBQ08sb0JBQWUsR0FBRyxJQUFJLFlBQVksRUFBVyxDQUFDO1FBRXhELDRCQUF1QixHQUFHLElBQUksT0FBTyxFQUFXLENBQUM7UUFFekMsbUJBQWMsR0FBRyxJQUFJLENBQUM7UUFDdEIsa0JBQWEsR0FBRyxLQUFLLENBQUM7UUFDdEIsYUFBUSxHQUFHLElBQUksT0FBTyxFQUFRLENBQUM7SUFHdkMsQ0FBQztJQXpERDs7O09BR0c7SUFDSCxJQUVJLFNBQVM7UUFDWCxPQUFPLElBQUksQ0FBQyxjQUFjLENBQUM7SUFDN0IsQ0FBQztJQUNELElBQUksU0FBUyxDQUFDLEdBQVk7UUFDeEIsSUFBSSxDQUFDLGNBQWMsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDO1FBQzVCLElBQUksQ0FBQyxlQUFlLENBQUMsSUFB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XHJcbiAgQ29tcG9uZW50LFxyXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxyXG4gIENoYW5nZURldGVjdG9yUmVmLFxyXG4gIElucHV0LFxyXG4gIE91dHB1dCxcclxuICBFdmVudEVtaXR0ZXIsXHJcbiAgU2ltcGxlQ2hhbmdlcyxcclxuICBIb3N0QmluZGluZyxcclxuICBIb3N0LFxyXG4gIE9uSW5pdCxcclxuICBPbkNoYW5nZXMsXHJcbiAgT25EZXN0cm95LFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgRHJBY2NvcmRpb25Db21wb25lbnQgfSBmcm9tICcuL2FjY29yZGlvbi5jb21wb25lbnQnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdkci1hY2NvcmRpb24taXRlbScsXHJcbiAgc3R5bGVVcmxzOiBbJy4vYWNjb3JkaW9uLWl0ZW0uY29tcG9uZW50LnNjc3MnXSxcclxuICB0ZW1wbGF0ZTogYFxyXG4gICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiZHItYWNjb3JkaW9uLWl0ZW0taGVhZGVyXCI+PC9uZy1jb250ZW50PlxyXG4gICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiZHItYWNjb3JkaW9uLWl0ZW0tYm9keVwiPjwvbmctY29udGVudD5cclxuICBgLFxyXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgRHJBY2NvcmRpb25JdGVtQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMsIE9uRGVzdHJveSB7XHJcblxyXG4gIC8qKlxyXG4gICAqIEl0ZW0gaXMgY29sbGFwc2UgKGB0cnVlYCBieSBkZWZhdWx0KVxyXG4gICAqIEB0eXBlIHtib29sZWFufVxyXG4gICAqL1xyXG4gIEBJbnB1dCgnY29sbGFwc2VkJylcclxuICBASG9zdEJpbmRpbmcoJ2NsYXNzLmNvbGxhcHNlZCcpXHJcbiAgZ2V0IGNvbGxhcHNlZCgpOiBib29sZWFuIHtcclxuICAgIHJldHVybiB0aGlzLmNvbGxhcHNlZFZhbHVlO1xyXG4gIH1cclxuICBzZXQgY29sbGFwc2VkKHZhbDogYm9vbGVhbikge1xyXG4gICAgdGhpcy5jb2xsYXBzZWRWYWx1ZSA9ICEhdmFsO1xyXG4gICAgdGhpcy5jb2xsYXBzZWRDaGFuZ2UuZW1pdCh0aGlzLmNvbGxhcHNlZFZhbHVlKTtcclxuICAgIHRoaXMuaW52YWxpZGF0ZSgpO1xyXG4gIH1cclxuICBzdGF0aWMgbmdBY2NlcHRJbnB1dFR5cGVfY29sbGFwc2VkOiBhbnk7XHJcblxyXG4gIC8qKlxyXG4gICAqIEl0ZW0gaXMgZXhwYW5kZWQgKGBmYWxzZWAgYnkgZGVmYXVsdClcclxuICAgKi9cclxuICBASW5wdXQoJ2V4cGFuZGVkJylcclxuICBASG9zdEJpbmRpbmcoJ2NsYXNzLmV4cGFuZGVkJylcclxuICBnZXQgZXhwYW5kZWQoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gIXRoaXMuY29sbGFwc2VkO1xyXG4gIH1cclxuICBzZXQgZXhwYW5kZWQodmFsOiBib29sZWFuKSB7XHJcbiAgICB0aGlzLmNvbGxhcHNlZFZhbHVlID0gIXZhbDtcclxuICB9XHJcbiAgc3RhdGljIG5nQWNjZXB0SW5wdXRUeXBlX2V4cGFuZGVkOiBhbnk7XHJcblxyXG4gIC8qKlxyXG4gICAqIEl0ZW0gaXMgZGlzYWJsZWQgYW5kIGNhbm5vdCBiZSBvcGVuZWQuXHJcbiAgICogQHR5cGUge2Jvb2xlYW59XHJcbiAgICovXHJcbiAgQElucHV0KCdkaXNhYmxlZCcpXHJcbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5kaXNhYmxlZCcpXHJcbiAgZ2V0IGRpc2FibGVkKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuZGlzYWJsZWRWYWx1ZTtcclxuICB9XHJcbiAgc2V0IGRpc2FibGVkKHZhbDogYm9vbGVhbikge1xyXG4gICAgdGhpcy5kaXNhYmxlZFZhbHVlID0gISF2YWw7XHJcbiAgICB0aGlzLmludmFsaWRhdGUoKTtcclxuICB9XHJcbiAgc3RhdGljIG5nQWNjZXB0SW5wdXRUeXBlX2Rpc2FibGVkOiBhbnk7XHJcblxyXG4gIC8qKlxyXG4gICAqIEVtaXRzIHdoZW5ldmVyIHRoZSBleHBhbmRlZCBzdGF0ZSBvZiB0aGUgYWNjb3JkaW9uIGNoYW5nZXMuXHJcbiAgICogUHJpbWFyaWx5IHVzZWQgdG8gZmFjaWxpdGF0ZSB0d28td2F5IGJpbmRpbmcuXHJcbiAgICovXHJcbiAgQE91dHB1dCgpIGNvbGxhcHNlZENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcclxuXHJcbiAgYWNjb3JkaW9uSXRlbUludmFsaWRhdGUgPSBuZXcgU3ViamVjdDxib29sZWFuPigpO1xyXG5cclxuICBwcml2YXRlIGNvbGxhcHNlZFZhbHVlID0gdHJ1ZTtcclxuICBwcml2YXRlIGRpc2FibGVkVmFsdWUgPSBmYWxzZTtcclxuICBwcml2YXRlIGRlc3Ryb3kkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcclxuXHJcbiAgY29uc3RydWN0b3IoQEhvc3QoKSBwcml2YXRlIGFjY29yZGlvbjogRHJBY2NvcmRpb25Db21wb25lbnQsIHByaXZhdGUgY2Q6IENoYW5nZURldGVjdG9yUmVmKSB7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBPcGVuL2Nsb3NlIHRoZSBpdGVtXHJcbiAgICovXHJcbiAgdG9nZ2xlKCkge1xyXG4gICAgaWYgKCF0aGlzLmRpc2FibGVkKSB7XHJcbiAgICAgIC8vIHdlIG5lZWQgdGhpcyB0ZW1wb3JhcnkgdmFyaWFibGUgYXMgYG9wZW5DbG9zZUl0ZW1zLm5leHRgIHdpbGwgY2hhbmdlIGN1cnJlbnQgdmFsdWUgd2UgbmVlZCB0byBzYXZlXHJcbiAgICAgIGNvbnN0IHdpbGxTZXQgPSAhdGhpcy5jb2xsYXBzZWQ7XHJcblxyXG4gICAgICBpZiAoIXRoaXMuYWNjb3JkaW9uLm11bHRpKSB7XHJcbiAgICAgICAgdGhpcy5hY2NvcmRpb24ub3BlbkNsb3NlSXRlbXMubmV4dCh0cnVlKTtcclxuICAgICAgfVxyXG4gICAgICB0aGlzLmNvbGxhcHNlZCA9IHdpbGxTZXQ7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBPcGVuIHRoZSBpdGVtLlxyXG4gICAqL1xyXG4gIG9wZW4oKSB7XHJcbiAgICBpZiAoIXRoaXMuZGlzYWJsZWQpIHtcclxuICAgICAgdGhpcy5jb2xsYXBzZWQgPSBmYWxzZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIENvbGxhcHNlIHRoZSBpdGVtLlxyXG4gICAqL1xyXG4gIGNsb3NlKCkge1xyXG4gICAgaWYgKCF0aGlzLmRpc2FibGVkKSB7XHJcbiAgICAgIHRoaXMuY29sbGFwc2VkID0gdHJ1ZTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgdGhpcy5hY2NvcmRpb24ub3BlbkNsb3NlSXRlbXNcclxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxyXG4gICAgICAuc3Vic2NyaWJlKGNvbGxhcHNlZCA9PiB7XHJcbiAgICAgICAgaWYgKCF0aGlzLmRpc2FibGVkKSB7XHJcbiAgICAgICAgICB0aGlzLmNvbGxhcHNlZCA9IGNvbGxhcHNlZDtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xyXG4gICAgdGhpcy5hY2NvcmRpb25JdGVtSW52YWxpZGF0ZS5uZXh0KHRydWUpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKSB7XHJcbiAgICB0aGlzLmRlc3Ryb3kkLm5leHQoKTtcclxuICAgIHRoaXMuZGVzdHJveSQuY29tcGxldGUoKTtcclxuICAgIHRoaXMuYWNjb3JkaW9uSXRlbUludmFsaWRhdGUuY29tcGxldGUoKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgaW52YWxpZGF0ZSgpIHtcclxuICAgIHRoaXMuYWNjb3JkaW9uSXRlbUludmFsaWRhdGUubmV4dCh0cnVlKTtcclxuICAgIHRoaXMuY2QubWFya0ZvckNoZWNrKCk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
import { Component, ChangeDetectionStrategy, Input } from '@angular/core';
|
|
2
|
+
import { Subject } from 'rxjs';
|
|
3
|
+
export class DrAccordionComponent {
|
|
4
|
+
constructor() {
|
|
5
|
+
this.openCloseItems = new Subject();
|
|
6
|
+
this.multiValue = false;
|
|
7
|
+
}
|
|
8
|
+
/**
|
|
9
|
+
* Allow multiple items to be expanded at the same time.
|
|
10
|
+
*/
|
|
11
|
+
get multi() {
|
|
12
|
+
return this.multiValue;
|
|
13
|
+
}
|
|
14
|
+
set multi(val) {
|
|
15
|
+
this.multiValue = !!val;
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Opens all enabled accordion items.
|
|
19
|
+
*/
|
|
20
|
+
openAll() {
|
|
21
|
+
if (this.multi) {
|
|
22
|
+
this.openCloseItems.next(false);
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Closes all enabled accordion items.
|
|
27
|
+
*/
|
|
28
|
+
closeAll() {
|
|
29
|
+
this.openCloseItems.next(true);
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
DrAccordionComponent.decorators = [
|
|
33
|
+
{ type: Component, args: [{
|
|
34
|
+
selector: 'dr-accordion',
|
|
35
|
+
template: '<ng-content select="dr-accordion-item"></ng-content>',
|
|
36
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
37
|
+
styles: [":host{display:block;box-shadow:#2c33491a 0 5px 10px}\n"]
|
|
38
|
+
},] }
|
|
39
|
+
];
|
|
40
|
+
DrAccordionComponent.propDecorators = {
|
|
41
|
+
multi: [{ type: Input, args: ['multi',] }]
|
|
42
|
+
};
|
|
43
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNjb3JkaW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2RhdGFyYWlsc3NoYXJlZC9zcmMvbGliL2RyLWFjY29yZGlvbi9hY2NvcmRpb24uY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsdUJBQXVCLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFRL0IsTUFBTSxPQUFPLG9CQUFvQjtJQU5qQztRQVFFLG1CQUFjLEdBQUcsSUFBSSxPQUFPLEVBQVcsQ0FBQztRQWFoQyxlQUFVLEdBQUcsS0FBSyxDQUFDO0lBaUI3QixDQUFDO0lBNUJDOztPQUVHO0lBQ0gsSUFDSSxLQUFLO1FBQ1AsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDO0lBQ3pCLENBQUM7SUFDRCxJQUFJLEtBQUssQ0FBQyxHQUFZO1FBQ3BCLElBQUksQ0FBQyxVQUFVLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQztJQUMxQixDQUFDO0lBSUQ7O09BRUc7SUFDSCxPQUFPO1FBQ0wsSUFBSSxJQUFJLENBQUMsS0FBSyxFQUFFO1lBQ2QsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7U0FDakM7SUFDSCxDQUFDO0lBRUQ7O09BRUc7SUFDSCxRQUFRO1FBQ04sSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDakMsQ0FBQzs7O1lBckNGLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUsY0FBYztnQkFDeEIsUUFBUSxFQUFFLHNEQUFzRDtnQkFFaEUsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU07O2FBQ2hEOzs7b0JBUUUsS0FBSyxTQUFDLE9BQU8iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2RyLWFjY29yZGlvbicsXHJcbiAgdGVtcGxhdGU6ICc8bmctY29udGVudCBzZWxlY3Q9XCJkci1hY2NvcmRpb24taXRlbVwiPjwvbmctY29udGVudD4nLFxyXG4gIHN0eWxlVXJsczogWycuL2FjY29yZGlvbi5jb21wb25lbnQuc2NzcyddLFxyXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgRHJBY2NvcmRpb25Db21wb25lbnQge1xyXG4gIHN0YXRpYyBuZ0FjY2VwdElucHV0VHlwZV9tdWx0aTogYW55O1xyXG4gIG9wZW5DbG9zZUl0ZW1zID0gbmV3IFN1YmplY3Q8Ym9vbGVhbj4oKTtcclxuXHJcbiAgLyoqXHJcbiAgICogIEFsbG93IG11bHRpcGxlIGl0ZW1zIHRvIGJlIGV4cGFuZGVkIGF0IHRoZSBzYW1lIHRpbWUuXHJcbiAgICovXHJcbiAgQElucHV0KCdtdWx0aScpXHJcbiAgZ2V0IG11bHRpKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMubXVsdGlWYWx1ZTtcclxuICB9XHJcbiAgc2V0IG11bHRpKHZhbDogYm9vbGVhbikge1xyXG4gICAgdGhpcy5tdWx0aVZhbHVlID0gISF2YWw7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIG11bHRpVmFsdWUgPSBmYWxzZTtcclxuXHJcbiAgLyoqXHJcbiAgICogT3BlbnMgYWxsIGVuYWJsZWQgYWNjb3JkaW9uIGl0ZW1zLlxyXG4gICAqL1xyXG4gIG9wZW5BbGwoKSB7XHJcbiAgICBpZiAodGhpcy5tdWx0aSkge1xyXG4gICAgICB0aGlzLm9wZW5DbG9zZUl0ZW1zLm5leHQoZmFsc2UpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQ2xvc2VzIGFsbCBlbmFibGVkIGFjY29yZGlvbiBpdGVtcy5cclxuICAgKi9cclxuICBjbG9zZUFsbCgpIHtcclxuICAgIHRoaXMub3BlbkNsb3NlSXRlbXMubmV4dCh0cnVlKTtcclxuICB9XHJcbn1cclxuIl19
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { NgModule } from '@angular/core';
|
|
2
|
+
import { CommonModule } from '@angular/common';
|
|
3
|
+
import { DrAccordionComponent } from './accordion.component';
|
|
4
|
+
import { DrAccordionItemComponent } from './accordion-item.component';
|
|
5
|
+
import { DrAccordionItemHeaderComponent } from './accordion-item-header.component';
|
|
6
|
+
import { DrAccordionItemBodyComponent } from './accordion-item-body.component';
|
|
7
|
+
const DR_ACCORDION_COMPONENTS = [
|
|
8
|
+
DrAccordionComponent,
|
|
9
|
+
DrAccordionItemComponent,
|
|
10
|
+
DrAccordionItemHeaderComponent,
|
|
11
|
+
DrAccordionItemBodyComponent,
|
|
12
|
+
];
|
|
13
|
+
export class DrAccordionModule {
|
|
14
|
+
}
|
|
15
|
+
DrAccordionModule.decorators = [
|
|
16
|
+
{ type: NgModule, args: [{
|
|
17
|
+
imports: [CommonModule],
|
|
18
|
+
exports: [...DR_ACCORDION_COMPONENTS],
|
|
19
|
+
declarations: [...DR_ACCORDION_COMPONENTS],
|
|
20
|
+
providers: [],
|
|
21
|
+
},] }
|
|
22
|
+
];
|
|
23
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWNjb3JkaW9uLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2RhdGFyYWlsc3NoYXJlZC9zcmMvbGliL2RyLWFjY29yZGlvbi9hY2NvcmRpb24ubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzdELE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3RFLE9BQU8sRUFBRSw4QkFBOEIsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ25GLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBRS9FLE1BQU0sdUJBQXVCLEdBQUc7SUFDOUIsb0JBQW9CO0lBQ3BCLHdCQUF3QjtJQUN4Qiw4QkFBOEI7SUFDOUIsNEJBQTRCO0NBQzdCLENBQUM7QUFRRixNQUFNLE9BQU8saUJBQWlCOzs7WUFON0IsUUFBUSxTQUFDO2dCQUNSLE9BQU8sRUFBRSxDQUFDLFlBQVksQ0FBQztnQkFDdkIsT0FBTyxFQUFFLENBQUMsR0FBRyx1QkFBdUIsQ0FBQztnQkFDckMsWUFBWSxFQUFFLENBQUMsR0FBRyx1QkFBdUIsQ0FBQztnQkFDMUMsU0FBUyxFQUFFLEVBQUU7YUFDZCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IERyQWNjb3JkaW9uQ29tcG9uZW50IH0gZnJvbSAnLi9hY2NvcmRpb24uY29tcG9uZW50JztcclxuaW1wb3J0IHsgRHJBY2NvcmRpb25JdGVtQ29tcG9uZW50IH0gZnJvbSAnLi9hY2NvcmRpb24taXRlbS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBEckFjY29yZGlvbkl0ZW1IZWFkZXJDb21wb25lbnQgfSBmcm9tICcuL2FjY29yZGlvbi1pdGVtLWhlYWRlci5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBEckFjY29yZGlvbkl0ZW1Cb2R5Q29tcG9uZW50IH0gZnJvbSAnLi9hY2NvcmRpb24taXRlbS1ib2R5LmNvbXBvbmVudCc7XHJcblxyXG5jb25zdCBEUl9BQ0NPUkRJT05fQ09NUE9ORU5UUyA9IFtcclxuICBEckFjY29yZGlvbkNvbXBvbmVudCxcclxuICBEckFjY29yZGlvbkl0ZW1Db21wb25lbnQsXHJcbiAgRHJBY2NvcmRpb25JdGVtSGVhZGVyQ29tcG9uZW50LFxyXG4gIERyQWNjb3JkaW9uSXRlbUJvZHlDb21wb25lbnQsXHJcbl07XHJcblxyXG5ATmdNb2R1bGUoe1xyXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGVdLFxyXG4gIGV4cG9ydHM6IFsuLi5EUl9BQ0NPUkRJT05fQ09NUE9ORU5UU10sXHJcbiAgZGVjbGFyYXRpb25zOiBbLi4uRFJfQUNDT1JESU9OX0NPTVBPTkVOVFNdLFxyXG4gIHByb3ZpZGVyczogW10sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBEckFjY29yZGlvbk1vZHVsZSB7fVxyXG4iXX0=
|