monkey-style-guide-v2 0.0.27 → 0.0.28
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/assets/scss/theme.scss +7 -6
- package/fesm2022/monkey-style-guide-v2.mjs +278 -271
- package/fesm2022/monkey-style-guide-v2.mjs.map +1 -1
- package/lib/components/form-field/form-field-control.d.ts +1 -1
- package/lib/components/input-phone/input-phone.component.d.ts +0 -2
- package/monkey-style-guide-v2-0.0.28.tgz +0 -0
- package/package.json +8 -10
- package/esm2022/lib/components/accordion/accordion.component.mjs +0 -93
- package/esm2022/lib/components/accordion/index.mjs +0 -7
- package/esm2022/lib/components/action-bar/action-bar.component.mjs +0 -46
- package/esm2022/lib/components/action-bar/index.mjs +0 -7
- package/esm2022/lib/components/alert/alert.component.mjs +0 -50
- package/esm2022/lib/components/alert/index.mjs +0 -7
- package/esm2022/lib/components/avatar/avatar.component.mjs +0 -55
- package/esm2022/lib/components/avatar/index.mjs +0 -7
- package/esm2022/lib/components/badge/badge.component.mjs +0 -74
- package/esm2022/lib/components/badge/index.mjs +0 -7
- package/esm2022/lib/components/breadcrumb/breadcrumb.component.mjs +0 -56
- package/esm2022/lib/components/breadcrumb/index.mjs +0 -7
- package/esm2022/lib/components/button/button.component.mjs +0 -59
- package/esm2022/lib/components/button/index.mjs +0 -7
- package/esm2022/lib/components/checkbox/checkbox.component.mjs +0 -215
- package/esm2022/lib/components/checkbox/index.mjs +0 -7
- package/esm2022/lib/components/date-range/date-range.component.mjs +0 -239
- package/esm2022/lib/components/date-range/index.mjs +0 -7
- package/esm2022/lib/components/date-range/month/index.mjs +0 -7
- package/esm2022/lib/components/date-range/month/month.component.mjs +0 -148
- package/esm2022/lib/components/date-range/quick-actions/index.mjs +0 -7
- package/esm2022/lib/components/date-range/quick-actions/quick-actions.component.mjs +0 -48
- package/esm2022/lib/components/date-range/utils.mjs +0 -102
- package/esm2022/lib/components/divider/divider.component.mjs +0 -44
- package/esm2022/lib/components/divider/index.mjs +0 -7
- package/esm2022/lib/components/form-field/form-field-control.mjs +0 -15
- package/esm2022/lib/components/form-field/form-field.component.mjs +0 -265
- package/esm2022/lib/components/form-field/form-field.module.mjs +0 -23
- package/esm2022/lib/components/form-field/index.mjs +0 -10
- package/esm2022/lib/components/form-field/utils.mjs +0 -16
- package/esm2022/lib/components/icon/icon.component.mjs +0 -51
- package/esm2022/lib/components/icon/index.mjs +0 -7
- package/esm2022/lib/components/icon-button/icon-button.component.mjs +0 -59
- package/esm2022/lib/components/icon-button/index.mjs +0 -7
- package/esm2022/lib/components/index.mjs +0 -34
- package/esm2022/lib/components/input/index.mjs +0 -9
- package/esm2022/lib/components/input/input-currency.directive.mjs +0 -185
- package/esm2022/lib/components/input/input.directive.mjs +0 -185
- package/esm2022/lib/components/input/input.module.mjs +0 -24
- package/esm2022/lib/components/input/validators.mjs +0 -22
- package/esm2022/lib/components/input-code/index.mjs +0 -7
- package/esm2022/lib/components/input-code/input-code.component.mjs +0 -232
- package/esm2022/lib/components/input-phone/index.mjs +0 -7
- package/esm2022/lib/components/input-phone/input-phone.component.mjs +0 -324
- package/esm2022/lib/components/input-upload/index.mjs +0 -7
- package/esm2022/lib/components/input-upload/input-upload.component.mjs +0 -238
- package/esm2022/lib/components/modal/components/confirmation.component.mjs +0 -73
- package/esm2022/lib/components/modal/components/default.mjs +0 -65
- package/esm2022/lib/components/modal/directives/actions.mjs +0 -29
- package/esm2022/lib/components/modal/directives/content.mjs +0 -26
- package/esm2022/lib/components/modal/directives/subtitle.mjs +0 -26
- package/esm2022/lib/components/modal/directives/title.mjs +0 -26
- package/esm2022/lib/components/modal/index.mjs +0 -16
- package/esm2022/lib/components/modal/modal-config.mjs +0 -19
- package/esm2022/lib/components/modal/modal-ref.mjs +0 -56
- package/esm2022/lib/components/modal/modal.component.mjs +0 -119
- package/esm2022/lib/components/modal/modal.module.mjs +0 -56
- package/esm2022/lib/components/modal/modal.service.mjs +0 -150
- package/esm2022/lib/components/modal/utils.mjs +0 -24
- package/esm2022/lib/components/option/index.mjs +0 -7
- package/esm2022/lib/components/option/option.component.mjs +0 -70
- package/esm2022/lib/components/radio-button/index.mjs +0 -7
- package/esm2022/lib/components/radio-button/radio-button.component.mjs +0 -190
- package/esm2022/lib/components/security-level/index.mjs +0 -7
- package/esm2022/lib/components/security-level/security-level.component.mjs +0 -57
- package/esm2022/lib/components/select/index.mjs +0 -7
- package/esm2022/lib/components/select/select.component.mjs +0 -444
- package/esm2022/lib/components/status/index.mjs +0 -7
- package/esm2022/lib/components/status/status.component.mjs +0 -45
- package/esm2022/lib/components/table/components/pagination-action/pagination-action.mjs +0 -53
- package/esm2022/lib/components/table/components/pagination-label/pagination-label.mjs +0 -34
- package/esm2022/lib/components/table/components/pagination-size/pagination-size.mjs +0 -57
- package/esm2022/lib/components/table/directives/column-checked.mjs +0 -109
- package/esm2022/lib/components/table/directives/column-expansible.mjs +0 -134
- package/esm2022/lib/components/table/directives/column-sortable.mjs +0 -97
- package/esm2022/lib/components/table/directives/column-stick.mjs +0 -28
- package/esm2022/lib/components/table/index.mjs +0 -15
- package/esm2022/lib/components/table/table.component.mjs +0 -133
- package/esm2022/lib/components/table/table.module.mjs +0 -63
- package/esm2022/lib/components/toast/index.mjs +0 -7
- package/esm2022/lib/components/toast/toast.component.mjs +0 -79
- package/esm2022/lib/components/toggle/index.mjs +0 -7
- package/esm2022/lib/components/toggle/toggle.component.mjs +0 -74
- package/esm2022/lib/components/toggle-line/index.mjs +0 -8
- package/esm2022/lib/components/toggle-line/toggle-line-button/index.mjs +0 -7
- package/esm2022/lib/components/toggle-line/toggle-line-button/toggle-line-button.component.mjs +0 -24
- package/esm2022/lib/components/toggle-line/toggle-line.component.mjs +0 -85
- package/esm2022/lib/components/tooltip/index.mjs +0 -8
- package/esm2022/lib/components/tooltip/tooltip/index.mjs +0 -7
- package/esm2022/lib/components/tooltip/tooltip/tooltip.component.mjs +0 -58
- package/esm2022/lib/components/tooltip/tooltip.directive.mjs +0 -189
- package/esm2022/lib/directives/badge.mjs +0 -74
- package/esm2022/lib/directives/error.mjs +0 -18
- package/esm2022/lib/directives/helper.mjs +0 -18
- package/esm2022/lib/directives/index.mjs +0 -15
- package/esm2022/lib/directives/info.mjs +0 -18
- package/esm2022/lib/directives/label.mjs +0 -18
- package/esm2022/lib/directives/module.mjs +0 -61
- package/esm2022/lib/directives/popover.mjs +0 -385
- package/esm2022/lib/directives/prefix.mjs +0 -18
- package/esm2022/lib/directives/suffix.mjs +0 -43
- package/esm2022/lib/interfaces/alert.mjs +0 -2
- package/esm2022/lib/interfaces/breadcrumb.mjs +0 -2
- package/esm2022/lib/interfaces/button.mjs +0 -2
- package/esm2022/lib/interfaces/index.mjs +0 -13
- package/esm2022/lib/interfaces/popover.mjs +0 -2
- package/esm2022/lib/interfaces/sizes.mjs +0 -2
- package/esm2022/lib/interfaces/table.mjs +0 -2
- package/esm2022/lib/interfaces/toast.mjs +0 -10
- package/esm2022/lib/services/dictionary.service.mjs +0 -224
- package/esm2022/lib/services/index.mjs +0 -7
- package/esm2022/lib/services/toast.service.mjs +0 -79
- package/esm2022/lib/tokens/index.mjs +0 -10
- package/esm2022/monkey-style-guide-v2.mjs +0 -5
- package/esm2022/public-api.mjs +0 -11
- package/esm2022/utils/icon.mjs +0 -277
- package/esm2022/utils/id-generator.mjs +0 -20
- package/esm2022/utils/index.mjs +0 -5
- package/esm2022/utils/tests-utils.mjs +0 -4
- package/esm2022/utils/utils.mjs +0 -41
- package/monkey-style-guide-v2-0.0.27.tgz +0 -0
|
@@ -1,239 +0,0 @@
|
|
|
1
|
-
/** ************************
|
|
2
|
-
* Copyright Monkey Exchange. All Rights Reserved
|
|
3
|
-
* This style guide was developed by Monkey Exchange Team
|
|
4
|
-
* MIT Licence
|
|
5
|
-
************************* */
|
|
6
|
-
import { CommonModule } from '@angular/common';
|
|
7
|
-
import { booleanAttribute, Component, EventEmitter, HostListener, inject, Input, Output } from '@angular/core';
|
|
8
|
-
import { FormsModule } from '@angular/forms';
|
|
9
|
-
import { addDays, isAfter, isBefore, subDays } from 'date-fns';
|
|
10
|
-
import { IdGenerator } from '../../../utils';
|
|
11
|
-
import { MonkeyDirectivesModule } from '../../directives';
|
|
12
|
-
import { MonkeyDictionaryService } from '../../services/dictionary.service';
|
|
13
|
-
import { MonkeyButtonComponent } from '../button';
|
|
14
|
-
import { MonkeyFormFieldModule } from '../form-field';
|
|
15
|
-
import { MonkeyInputModule } from '../input';
|
|
16
|
-
import { MonkeyDateRangeMonthComponent } from './month';
|
|
17
|
-
import { MonkeyDateRangeQuickActionsComponent } from './quick-actions';
|
|
18
|
-
import * as Utils from './utils';
|
|
19
|
-
import * as i0 from "@angular/core";
|
|
20
|
-
import * as i1 from "@angular/common";
|
|
21
|
-
import * as i2 from "@angular/forms";
|
|
22
|
-
import * as i3 from "../input/input.directive";
|
|
23
|
-
import * as i4 from "../form-field/form-field.component";
|
|
24
|
-
import * as i5 from "../../directives/error";
|
|
25
|
-
import * as i6 from "../../directives/label";
|
|
26
|
-
export class MonkeyDateRangeComponent {
|
|
27
|
-
set startDate(val) {
|
|
28
|
-
this.handledStartDate = val;
|
|
29
|
-
}
|
|
30
|
-
set endDate(val) {
|
|
31
|
-
this.handledEndDate = val;
|
|
32
|
-
}
|
|
33
|
-
set minDate(val) {
|
|
34
|
-
this.handledMinDate = Utils.parseStringDate(val);
|
|
35
|
-
}
|
|
36
|
-
set maxDate(val) {
|
|
37
|
-
this.handledMaxDate = Utils.parseStringDate(val);
|
|
38
|
-
}
|
|
39
|
-
get id() {
|
|
40
|
-
return this._id;
|
|
41
|
-
}
|
|
42
|
-
set id(value) {
|
|
43
|
-
this._id = value || this._uid;
|
|
44
|
-
}
|
|
45
|
-
constructor() {
|
|
46
|
-
this.onCancel = new EventEmitter();
|
|
47
|
-
this.onDate = new EventEmitter();
|
|
48
|
-
this._uid = inject(IdGenerator).getId('monkey-date-range-');
|
|
49
|
-
this._screenWidth = window.innerWidth;
|
|
50
|
-
this._allowChangeFastAction = true;
|
|
51
|
-
this._allowChangeSecondCalendar = true;
|
|
52
|
-
this._today = new Date();
|
|
53
|
-
this.i18nDictionary = inject(MonkeyDictionaryService).get('DATE-RANGE');
|
|
54
|
-
this.isInvalidInterval = false;
|
|
55
|
-
this.handledMinDate = Utils.getDefaultdates().minDate;
|
|
56
|
-
this.handledMaxDate = Utils.getDefaultdates().maxDate;
|
|
57
|
-
// eslint-disable-next-line no-self-assign
|
|
58
|
-
this.id = this.id;
|
|
59
|
-
}
|
|
60
|
-
handleInitialValues() {
|
|
61
|
-
const calendars = Utils.buildCalendars(this.handledStartDate || new Date());
|
|
62
|
-
this.firstCalendar = calendars.firstCalendar;
|
|
63
|
-
this.secondCalendar = calendars.secondCalendar;
|
|
64
|
-
}
|
|
65
|
-
handleProperties() {
|
|
66
|
-
if (this._screenWidth < 950) {
|
|
67
|
-
if (this._allowChangeFastAction) {
|
|
68
|
-
this.hideQuickAction = true;
|
|
69
|
-
this.allowFastActionOnHeader = false;
|
|
70
|
-
}
|
|
71
|
-
if (this._allowChangeSecondCalendar) {
|
|
72
|
-
this.hideSecondCalendar = true;
|
|
73
|
-
}
|
|
74
|
-
}
|
|
75
|
-
else {
|
|
76
|
-
if (this._allowChangeFastAction) {
|
|
77
|
-
this.hideQuickAction = false;
|
|
78
|
-
this.allowFastActionOnHeader = false;
|
|
79
|
-
}
|
|
80
|
-
if (this._allowChangeSecondCalendar) {
|
|
81
|
-
this.hideSecondCalendar = false;
|
|
82
|
-
}
|
|
83
|
-
}
|
|
84
|
-
}
|
|
85
|
-
handleInputChange(event, isStart) {
|
|
86
|
-
const input = event.target;
|
|
87
|
-
const { value } = input;
|
|
88
|
-
const [year] = value.split('-');
|
|
89
|
-
if (`${Number(year)}`.length < 4)
|
|
90
|
-
return;
|
|
91
|
-
if (!input.checkValidity()) {
|
|
92
|
-
event.preventDefault();
|
|
93
|
-
input.value = '';
|
|
94
|
-
this.isInvalidInterval = true;
|
|
95
|
-
return;
|
|
96
|
-
}
|
|
97
|
-
this.isInvalidInterval = false;
|
|
98
|
-
if (isStart) {
|
|
99
|
-
this.handledStartDate = value;
|
|
100
|
-
}
|
|
101
|
-
else {
|
|
102
|
-
this.handledEndDate = value;
|
|
103
|
-
}
|
|
104
|
-
if (this.hideActions) {
|
|
105
|
-
this.onSubmit();
|
|
106
|
-
}
|
|
107
|
-
}
|
|
108
|
-
onResize(event) {
|
|
109
|
-
this._screenWidth = event.target.innerWidth;
|
|
110
|
-
this.handleProperties();
|
|
111
|
-
}
|
|
112
|
-
ngOnInit() {
|
|
113
|
-
if (this.hideQuickAction) {
|
|
114
|
-
this._allowChangeFastAction = false;
|
|
115
|
-
}
|
|
116
|
-
if (this.hideSecondCalendar) {
|
|
117
|
-
this._allowChangeSecondCalendar = false;
|
|
118
|
-
}
|
|
119
|
-
if (this.allowFastActionOnHeader) {
|
|
120
|
-
this._allowChangeFastAction = false;
|
|
121
|
-
this.hideQuickAction = true;
|
|
122
|
-
}
|
|
123
|
-
this.handleInitialValues();
|
|
124
|
-
this.handleProperties();
|
|
125
|
-
}
|
|
126
|
-
onHandleDate({ startDate, endDate }) {
|
|
127
|
-
this.handledStartDate = startDate;
|
|
128
|
-
this.handledEndDate = endDate;
|
|
129
|
-
if (this.hideActions) {
|
|
130
|
-
this.onSubmit();
|
|
131
|
-
}
|
|
132
|
-
}
|
|
133
|
-
onSubmit() {
|
|
134
|
-
this.onDate.next({
|
|
135
|
-
startDate: this.handledStartDate ?? '',
|
|
136
|
-
endDate: this.handledEndDate ?? ''
|
|
137
|
-
});
|
|
138
|
-
}
|
|
139
|
-
onHandleQuickAction(event) {
|
|
140
|
-
const isBackward = event < 0;
|
|
141
|
-
const days = Math.abs(event);
|
|
142
|
-
if (isBackward) {
|
|
143
|
-
const baseDate = Utils.parseStringDate(this.handledEndDate || this.handledStartDate || this._today);
|
|
144
|
-
let startDate = subDays(baseDate, days);
|
|
145
|
-
if (isBefore(startDate, this.handledMinDate)) {
|
|
146
|
-
startDate = this.handledMinDate;
|
|
147
|
-
}
|
|
148
|
-
this.handledStartDate = Utils.parseStringDate(startDate);
|
|
149
|
-
this.handledEndDate = Utils.parseStringDate(baseDate);
|
|
150
|
-
}
|
|
151
|
-
else {
|
|
152
|
-
const baseDate = Utils.parseStringDate(this.handledStartDate || this.handledEndDate || this._today);
|
|
153
|
-
let endDate = addDays(baseDate, days);
|
|
154
|
-
if (isAfter(endDate, this.handledMaxDate)) {
|
|
155
|
-
endDate = this.handledMaxDate;
|
|
156
|
-
}
|
|
157
|
-
this.handledStartDate = Utils.parseStringDate(baseDate);
|
|
158
|
-
this.handledEndDate = Utils.parseStringDate(endDate);
|
|
159
|
-
}
|
|
160
|
-
}
|
|
161
|
-
onChangeInputStartDate(event) {
|
|
162
|
-
this.handleInputChange(event, true);
|
|
163
|
-
}
|
|
164
|
-
onChangeInputEndDate(event) {
|
|
165
|
-
this.handleInputChange(event, false);
|
|
166
|
-
}
|
|
167
|
-
onDataChange(event, isStart) {
|
|
168
|
-
if (isStart) {
|
|
169
|
-
this.handledStartDate = event;
|
|
170
|
-
this.handledEndDate = '';
|
|
171
|
-
}
|
|
172
|
-
else {
|
|
173
|
-
this.handledEndDate = event;
|
|
174
|
-
}
|
|
175
|
-
if (this.hideActions) {
|
|
176
|
-
this.onSubmit();
|
|
177
|
-
}
|
|
178
|
-
}
|
|
179
|
-
onHandleNavigate(action) {
|
|
180
|
-
if (!action)
|
|
181
|
-
return;
|
|
182
|
-
const date = new Date(this.firstCalendar.year, this.firstCalendar.month, 1);
|
|
183
|
-
const calendars = Utils.buildCalendars(date, action);
|
|
184
|
-
this.firstCalendar = calendars.firstCalendar;
|
|
185
|
-
this.secondCalendar = calendars.secondCalendar;
|
|
186
|
-
}
|
|
187
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: MonkeyDateRangeComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
188
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: MonkeyDateRangeComponent, isStandalone: true, selector: "monkey-date-range", inputs: { startDate: "startDate", endDate: "endDate", hideQuickAction: ["hideQuickAction", "hideQuickAction", booleanAttribute], hideHeader: ["hideHeader", "hideHeader", booleanAttribute], hideActions: ["hideActions", "hideActions", booleanAttribute], hideSecondCalendar: ["hideSecondCalendar", "hideSecondCalendar", booleanAttribute], allowFastActionOnHeader: ["allowFastActionOnHeader", "allowFastActionOnHeader", booleanAttribute], minDate: "minDate", maxDate: "maxDate", id: "id" }, outputs: { onCancel: "onCancel", onDate: "onDate" }, host: { attributes: { "data-testid": "monkey-date-range" }, listeners: { "window:resize": "onResize($event)" }, properties: { "attr.id": "id", "id": "id" } }, ngImport: i0, template: "<ng-container *ngIf=\"i18nDictionary | async as i18n\">\n <div class=\"container-group\">\n @if (!hideQuickAction) {\n <div class=\"quick-actions\">\n <monkey-date-range-quick-actions (onChange)=\"onHandleQuickAction($event)\">\n </monkey-date-range-quick-actions>\n </div>\n }\n\n <div class=\"container\">\n @if (!hideHeader) {\n <div class=\"header\" [class.no-quick-action]=\"hideQuickAction\">\n @if (allowFastActionOnHeader) {\n <div class=\"quick-actions\">\n <monkey-date-range-quick-actions (onChange)=\"onHandleQuickAction($event)\">\n </monkey-date-range-quick-actions>\n </div>\n } @else {\n <div class=\"inputs\">\n <monkey-form-field hideAction enableClear size=\"sm\">\n <monkey-label>{{ i18n?.['START-DATE'] }}</monkey-label>\n <input\n type=\"date\"\n monkey-input\n id=\"startDate\"\n [(ngModel)]=\"handledStartDate\"\n (ngModelChange)=\"onDataChange($event, true)\"\n [min]=\"handledMinDate\"\n [max]=\"handledEndDate ? handledEndDate : handledMaxDate\"\n (change)=\"onChangeInputStartDate($event)\"\n />\n </monkey-form-field>\n <monkey-form-field hideAction enableClear size=\"sm\">\n <monkey-label>{{ i18n?.['END-DATE'] }}</monkey-label>\n <input\n type=\"date\"\n monkey-input\n id=\"endDate\"\n [(ngModel)]=\"handledEndDate\"\n (ngModelChange)=\"onDataChange($event, false)\"\n [min]=\"handledStartDate ? handledStartDate : ''\"\n [max]=\"handledMaxDate\"\n (change)=\"onChangeInputEndDate($event)\"\n />\n </monkey-form-field>\n </div>\n @if (isInvalidInterval) {\n <monkey-error>{{ i18n?.['INVALID'] }}</monkey-error>\n }\n }\n </div>\n }\n\n <div class=\"body\">\n <div class=\"calendars\">\n <monkey-date-range-month\n [month]=\"firstCalendar.month\"\n [year]=\"firstCalendar.year\"\n [startDate]=\"handledStartDate\"\n [endDate]=\"handledEndDate\"\n (onDate)=\"onHandleDate($event)\"\n (onNavigate)=\"onHandleNavigate($event)\"\n [hideNext]=\"!hideSecondCalendar\"\n [minDate]=\"handledMinDate\"\n [maxDate]=\"handledMaxDate\"\n >\n </monkey-date-range-month>\n\n @if (!hideSecondCalendar) {\n <monkey-date-range-month\n [month]=\"secondCalendar.month\"\n [year]=\"secondCalendar.year\"\n [startDate]=\"handledStartDate\"\n [endDate]=\"handledEndDate\"\n (onDate)=\"onHandleDate($event)\"\n (onNavigate)=\"onHandleNavigate($event)\"\n hidePrevious\n [minDate]=\"handledMinDate\"\n [maxDate]=\"handledMaxDate\"\n >\n </monkey-date-range-month>\n }\n </div>\n </div>\n\n @if (!hideActions) {\n <div class=\"actions\">\n <monkey-button size=\"md\" type=\"secondary\" (click)=\"onCancel.next(null)\">\n {{ i18n?.ACTIONS?.CANCEL }}\n </monkey-button>\n <monkey-button\n size=\"md\"\n (click)=\"onSubmit()\"\n [disabled]=\"!this.handledStartDate || !this.handledEndDate\"\n >\n {{ i18n?.ACTIONS?.APPLY }}\n </monkey-button>\n </div>\n }\n </div>\n </div>\n</ng-container>\n", styles: [":host{display:block;border:2px solid var(--mecx-color-gray-200);border-radius:16px}:host .container-group{width:100%;display:inline-flex}:host .container-group .quick-actions{width:100%;max-width:172px;border-top-left-radius:16px;border-bottom-left-radius:16px;border-right:2px solid var(--mecx-color-gray-200);background:var(--mecx-color-white)}:host .container-group .container{width:100%;display:inline-flex;flex-direction:column}:host .header{padding:16px 24px;border-radius:1px 16px 1px 1px;border-bottom:1px solid var(--mecx-color-gray-200);background:var(--mecx-color-gray-50)}:host .header .quick-actions{max-width:unset;border:unset}:host .header .quick-actions monkey-date-range-quick-actions{flex-flow:row wrap;padding:unset;justify-content:space-between;background:var(--mecx-color-gray-50)}:host .header.no-quick-action{border-top-left-radius:16px}:host .header .inputs{max-width:400px;display:flex;gap:16px}:host .header monkey-error{margin-top:2px}:host .body{padding:16px 24px}:host .body .calendars{display:inline-flex;width:100%;gap:48px}:host .actions{border-top:1px solid var(--mecx-color-gray-200);padding:16px 24px;display:flex;justify-content:flex-end;align-items:center;gap:16px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: MonkeyInputModule }, { kind: "directive", type: i3.MonkeyInputDirective, selector: "input[monkey-input],textarea[monkey-input]", inputs: ["name", "disabled", "id", "required", "type", "min", "max", "percent"], exportAs: ["monkeyInput"] }, { kind: "ngmodule", type: MonkeyFormFieldModule }, { kind: "component", type: i4.MonkeyFormFieldComponent, selector: "monkey-form-field", inputs: ["id", "hideAction", "enableClear", "size"], exportAs: ["monkeyFormField"] }, { kind: "ngmodule", type: MonkeyDirectivesModule }, { kind: "directive", type: i5.MonkeyErrorDirective, selector: "monkey-error" }, { kind: "directive", type: i6.MonkeyLabelDirective, selector: "monkey-label" }, { kind: "component", type: MonkeyButtonComponent, selector: "monkey-button", inputs: ["disabled", "color", "size", "type", "id"] }, { kind: "component", type: MonkeyDateRangeMonthComponent, selector: "monkey-date-range-month", inputs: ["month", "year", "startDate", "endDate", "hidePrevious", "hideNext", "minDate", "maxDate", "id"], outputs: ["onNavigate", "onDate"] }, { kind: "component", type: MonkeyDateRangeQuickActionsComponent, selector: "monkey-date-range-quick-actions", inputs: ["id"], outputs: ["onChange"] }] }); }
|
|
189
|
-
}
|
|
190
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: MonkeyDateRangeComponent, decorators: [{
|
|
191
|
-
type: Component,
|
|
192
|
-
args: [{ selector: 'monkey-date-range', standalone: true, imports: [
|
|
193
|
-
CommonModule,
|
|
194
|
-
FormsModule,
|
|
195
|
-
MonkeyInputModule,
|
|
196
|
-
MonkeyFormFieldModule,
|
|
197
|
-
MonkeyDirectivesModule,
|
|
198
|
-
MonkeyButtonComponent,
|
|
199
|
-
MonkeyDateRangeMonthComponent,
|
|
200
|
-
MonkeyDateRangeQuickActionsComponent
|
|
201
|
-
], host: {
|
|
202
|
-
'data-testid': 'monkey-date-range',
|
|
203
|
-
'[attr.id]': 'id',
|
|
204
|
-
'[id]': 'id'
|
|
205
|
-
}, template: "<ng-container *ngIf=\"i18nDictionary | async as i18n\">\n <div class=\"container-group\">\n @if (!hideQuickAction) {\n <div class=\"quick-actions\">\n <monkey-date-range-quick-actions (onChange)=\"onHandleQuickAction($event)\">\n </monkey-date-range-quick-actions>\n </div>\n }\n\n <div class=\"container\">\n @if (!hideHeader) {\n <div class=\"header\" [class.no-quick-action]=\"hideQuickAction\">\n @if (allowFastActionOnHeader) {\n <div class=\"quick-actions\">\n <monkey-date-range-quick-actions (onChange)=\"onHandleQuickAction($event)\">\n </monkey-date-range-quick-actions>\n </div>\n } @else {\n <div class=\"inputs\">\n <monkey-form-field hideAction enableClear size=\"sm\">\n <monkey-label>{{ i18n?.['START-DATE'] }}</monkey-label>\n <input\n type=\"date\"\n monkey-input\n id=\"startDate\"\n [(ngModel)]=\"handledStartDate\"\n (ngModelChange)=\"onDataChange($event, true)\"\n [min]=\"handledMinDate\"\n [max]=\"handledEndDate ? handledEndDate : handledMaxDate\"\n (change)=\"onChangeInputStartDate($event)\"\n />\n </monkey-form-field>\n <monkey-form-field hideAction enableClear size=\"sm\">\n <monkey-label>{{ i18n?.['END-DATE'] }}</monkey-label>\n <input\n type=\"date\"\n monkey-input\n id=\"endDate\"\n [(ngModel)]=\"handledEndDate\"\n (ngModelChange)=\"onDataChange($event, false)\"\n [min]=\"handledStartDate ? handledStartDate : ''\"\n [max]=\"handledMaxDate\"\n (change)=\"onChangeInputEndDate($event)\"\n />\n </monkey-form-field>\n </div>\n @if (isInvalidInterval) {\n <monkey-error>{{ i18n?.['INVALID'] }}</monkey-error>\n }\n }\n </div>\n }\n\n <div class=\"body\">\n <div class=\"calendars\">\n <monkey-date-range-month\n [month]=\"firstCalendar.month\"\n [year]=\"firstCalendar.year\"\n [startDate]=\"handledStartDate\"\n [endDate]=\"handledEndDate\"\n (onDate)=\"onHandleDate($event)\"\n (onNavigate)=\"onHandleNavigate($event)\"\n [hideNext]=\"!hideSecondCalendar\"\n [minDate]=\"handledMinDate\"\n [maxDate]=\"handledMaxDate\"\n >\n </monkey-date-range-month>\n\n @if (!hideSecondCalendar) {\n <monkey-date-range-month\n [month]=\"secondCalendar.month\"\n [year]=\"secondCalendar.year\"\n [startDate]=\"handledStartDate\"\n [endDate]=\"handledEndDate\"\n (onDate)=\"onHandleDate($event)\"\n (onNavigate)=\"onHandleNavigate($event)\"\n hidePrevious\n [minDate]=\"handledMinDate\"\n [maxDate]=\"handledMaxDate\"\n >\n </monkey-date-range-month>\n }\n </div>\n </div>\n\n @if (!hideActions) {\n <div class=\"actions\">\n <monkey-button size=\"md\" type=\"secondary\" (click)=\"onCancel.next(null)\">\n {{ i18n?.ACTIONS?.CANCEL }}\n </monkey-button>\n <monkey-button\n size=\"md\"\n (click)=\"onSubmit()\"\n [disabled]=\"!this.handledStartDate || !this.handledEndDate\"\n >\n {{ i18n?.ACTIONS?.APPLY }}\n </monkey-button>\n </div>\n }\n </div>\n </div>\n</ng-container>\n", styles: [":host{display:block;border:2px solid var(--mecx-color-gray-200);border-radius:16px}:host .container-group{width:100%;display:inline-flex}:host .container-group .quick-actions{width:100%;max-width:172px;border-top-left-radius:16px;border-bottom-left-radius:16px;border-right:2px solid var(--mecx-color-gray-200);background:var(--mecx-color-white)}:host .container-group .container{width:100%;display:inline-flex;flex-direction:column}:host .header{padding:16px 24px;border-radius:1px 16px 1px 1px;border-bottom:1px solid var(--mecx-color-gray-200);background:var(--mecx-color-gray-50)}:host .header .quick-actions{max-width:unset;border:unset}:host .header .quick-actions monkey-date-range-quick-actions{flex-flow:row wrap;padding:unset;justify-content:space-between;background:var(--mecx-color-gray-50)}:host .header.no-quick-action{border-top-left-radius:16px}:host .header .inputs{max-width:400px;display:flex;gap:16px}:host .header monkey-error{margin-top:2px}:host .body{padding:16px 24px}:host .body .calendars{display:inline-flex;width:100%;gap:48px}:host .actions{border-top:1px solid var(--mecx-color-gray-200);padding:16px 24px;display:flex;justify-content:flex-end;align-items:center;gap:16px}\n"] }]
|
|
206
|
-
}], ctorParameters: () => [], propDecorators: { startDate: [{
|
|
207
|
-
type: Input
|
|
208
|
-
}], endDate: [{
|
|
209
|
-
type: Input
|
|
210
|
-
}], hideQuickAction: [{
|
|
211
|
-
type: Input,
|
|
212
|
-
args: [{ transform: booleanAttribute }]
|
|
213
|
-
}], hideHeader: [{
|
|
214
|
-
type: Input,
|
|
215
|
-
args: [{ transform: booleanAttribute }]
|
|
216
|
-
}], hideActions: [{
|
|
217
|
-
type: Input,
|
|
218
|
-
args: [{ transform: booleanAttribute }]
|
|
219
|
-
}], hideSecondCalendar: [{
|
|
220
|
-
type: Input,
|
|
221
|
-
args: [{ transform: booleanAttribute }]
|
|
222
|
-
}], allowFastActionOnHeader: [{
|
|
223
|
-
type: Input,
|
|
224
|
-
args: [{ transform: booleanAttribute }]
|
|
225
|
-
}], minDate: [{
|
|
226
|
-
type: Input
|
|
227
|
-
}], maxDate: [{
|
|
228
|
-
type: Input
|
|
229
|
-
}], onCancel: [{
|
|
230
|
-
type: Output
|
|
231
|
-
}], onDate: [{
|
|
232
|
-
type: Output
|
|
233
|
-
}], id: [{
|
|
234
|
-
type: Input
|
|
235
|
-
}], onResize: [{
|
|
236
|
-
type: HostListener,
|
|
237
|
-
args: ['window:resize', ['$event']]
|
|
238
|
-
}] } });
|
|
239
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1yYW5nZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tb25rZXktc3R5bGUtZ3VpZGUtdjIvc3JjL2xpYi9jb21wb25lbnRzL2RhdGUtcmFuZ2UvZGF0ZS1yYW5nZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tb25rZXktc3R5bGUtZ3VpZGUtdjIvc3JjL2xpYi9jb21wb25lbnRzL2RhdGUtcmFuZ2UvZGF0ZS1yYW5nZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs2QkFJNkI7QUFDN0IsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFDTCxnQkFBZ0IsRUFDaEIsU0FBUyxFQUNULFlBQVksRUFDWixZQUFZLEVBQ1osTUFBTSxFQUNOLEtBQUssRUFFTCxNQUFNLEVBQ1AsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDL0QsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQzFELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQzVFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUNsRCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDdEQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQzdDLE9BQU8sRUFBRSw2QkFBNkIsRUFBRSxNQUFNLFNBQVMsQ0FBQztBQUN4RCxPQUFP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QkFBd0I7a0JBckJwQyxTQUFTOytCQUNFLG1CQUFtQixjQUNqQixJQUFJLFdBQ1A7d0JBQ1AsWUFBWTt3QkFDWixXQUFXO3dCQUNYLGlCQUFpQjt3QkFDakIscUJBQXFCO3dCQUNyQixzQkFBc0I7d0JBQ3RCLHFCQUFxQjt3QkFDckIsNkJBQTZCO3dCQUM3QixvQ0FBb0M7cUJBQ3JDLFFBR0s7d0JBQ0osYUFBYSxFQUFFLG1CQUFtQjt3QkFDbEMsV0FBVyxFQUFFLElBQUk7d0JBQ2pCLE1BQU0sRUFBRSxJQUFJO3FCQUNiO3dEQUdZLFNBQVM7c0JBQXJCLEtBQUs7Z0JBSU8sT0FBTztzQkFBbkIsS0FBSztnQkFLTixlQUFlO3NCQURkLEtBQUs7dUJBQUMsRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUU7Z0JBSXRDLFVBQVU7c0JBRFQsS0FBSzt1QkFBQyxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRTtnQkFJdEMsV0FBVztzQkFEVixLQUFLO3VCQUFDLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFO2dCQUl0QyxrQkFBa0I7c0JBRGpCLEtBQUs7dUJBQUMsRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUU7Z0JBSXRDLHVCQUF1QjtzQkFEdEIsS0FBSzt1QkFBQyxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRTtnQkFHekIsT0FBTztzQkFBbkIsS0FBSztnQkFJTyxPQUFPO3NCQUFuQixLQUFLO2dCQUlJLFFBQVE7c0JBQWpCLE1BQU07Z0JBRUcsTUFBTTtzQkFBZixNQUFNO2dCQU9ILEVBQUU7c0JBREwsS0FBSztnQkEyRk4sUUFBUTtzQkFEUCxZQUFZO3VCQUFDLGVBQWUsRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKiAqKioqKioqKioqKioqKioqKioqKioqKipcbiAqIENvcHlyaWdodCBNb25rZXkgRXhjaGFuZ2UuIEFsbCBSaWdodHMgUmVzZXJ2ZWRcbiAqIFRoaXMgc3R5bGUgZ3VpZGUgd2FzIGRldmVsb3BlZCBieSBNb25rZXkgRXhjaGFuZ2UgVGVhbVxuICogTUlUIExpY2VuY2VcbiAqKioqKioqKioqKioqKioqKioqKioqKioqICovXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHtcbiAgYm9vbGVhbkF0dHJpYnV0ZSxcbiAgQ29tcG9uZW50LFxuICBFdmVudEVtaXR0ZXIsXG4gIEhvc3RMaXN0ZW5lcixcbiAgaW5qZWN0LFxuICBJbnB1dCxcbiAgT25Jbml0LFxuICBPdXRwdXRcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IGFkZERheXMsIGlzQWZ0ZXIsIGlzQmVmb3JlLCBzdWJEYXlzIH0gZnJvbSAnZGF0ZS1mbnMnO1xuaW1wb3J0IHsgSWRHZW5lcmF0b3IgfSBmcm9tICcuLi8uLi8uLi91dGlscyc7XG5pbXBvcnQgeyBNb25rZXlEaXJlY3RpdmVzTW9kdWxlIH0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlcyc7XG5pbXBvcnQgeyBNb25rZXlEaWN0aW9uYXJ5U2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2RpY3Rpb25hcnkuc2VydmljZSc7XG5pbXBvcnQgeyBNb25rZXlCdXR0b25Db21wb25lbnQgfSBmcm9tICcuLi9idXR0b24nO1xuaW1wb3J0IHsgTW9ua2V5Rm9ybUZpZWxkTW9kdWxlIH0gZnJvbSAnLi4vZm9ybS1maWVsZCc7XG5pbXBvcnQgeyBNb25rZXlJbnB1dE1vZHVsZSB9IGZyb20gJy4uL2lucHV0JztcbmltcG9ydCB7IE1vbmtleURhdGVSYW5nZU1vbnRoQ29tcG9uZW50IH0gZnJvbSAnLi9tb250aCc7XG5pbXBvcnQgeyBNb25rZXlEYXRlUmFuZ2VRdWlja0FjdGlvbnNDb21wb25lbnQgfSBmcm9tICcuL3F1aWNrLWFjdGlvbnMnO1xuaW1wb3J0ICogYXMgVXRpbHMgZnJvbSAnLi91dGlscyc7XG5cbmludGVyZmFjZSBDYWxlbmRhciB7XG4gIG1vbnRoOiBudW1iZXI7XG4gIHllYXI6IG51bWJlcjtcbn1cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbW9ua2V5LWRhdGUtcmFuZ2UnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIEZvcm1zTW9kdWxlLFxuICAgIE1vbmtleUlucHV0TW9kdWxlLFxuICAgIE1vbmtleUZvcm1GaWVsZE1vZHVsZSxcbiAgICBNb25rZXlEaXJlY3RpdmVzTW9kdWxlLFxuICAgIE1vbmtleUJ1dHRvbkNvbXBvbmVudCxcbiAgICBNb25rZXlEYXRlUmFuZ2VNb250aENvbXBvbmVudCxcbiAgICBNb25rZXlEYXRlUmFuZ2VRdWlja0FjdGlvbnNDb21wb25lbnRcbiAgXSxcbiAgdGVtcGxhdGVVcmw6ICcuL2RhdGUtcmFuZ2UuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybDogJy4vZGF0ZS1yYW5nZS5jb21wb25lbnQuc2NzcycsXG4gIGhvc3Q6IHtcbiAgICAnZGF0YS10ZXN0aWQnOiAnbW9ua2V5LWRhdGUtcmFuZ2UnLFxuICAgICdbYXR0ci5pZF0nOiAnaWQnLFxuICAgICdbaWRdJzogJ2lkJ1xuICB9XG59KVxuZXhwb3J0IGNsYXNzIE1vbmtleURhdGVSYW5nZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIEBJbnB1dCgpIHNldCBzdGFydERhdGUodmFsOiBzdHJpbmcpIHtcbiAgICB0aGlzLmhhbmRsZWRTdGFydERhdGUgPSB2YWw7XG4gIH1cblxuICBASW5wdXQoKSBzZXQgZW5kRGF0ZSh2YWw6IHN0cmluZykge1xuICAgIHRoaXMuaGFuZGxlZEVuZERhdGUgPSB2YWw7XG4gIH1cblxuICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSlcbiAgaGlkZVF1aWNrQWN0aW9uITogYm9vbGVhbjtcblxuICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSlcbiAgaGlkZUhlYWRlciE6IGJvb2xlYW47XG5cbiAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pXG4gIGhpZGVBY3Rpb25zITogYm9vbGVhbjtcblxuICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSlcbiAgaGlkZVNlY29uZENhbGVuZGFyITogYm9vbGVhbjtcblxuICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSlcbiAgYWxsb3dGYXN0QWN0aW9uT25IZWFkZXIhOiBib29sZWFuO1xuXG4gIEBJbnB1dCgpIHNldCBtaW5EYXRlKHZhbDogRGF0ZSB8IHN0cmluZykge1xuICAgIHRoaXMuaGFuZGxlZE1pbkRhdGUgPSBVdGlscy5wYXJzZVN0cmluZ0RhdGUodmFsKTtcbiAgfVxuXG4gIEBJbnB1dCgpIHNldCBtYXhEYXRlKHZhbDogRGF0ZSB8IHN0cmluZykge1xuICAgIHRoaXMuaGFuZGxlZE1heERhdGUgPSBVdGlscy5wYXJzZVN0cmluZ0RhdGUodmFsKTtcbiAgfVxuXG4gIEBPdXRwdXQoKSBvbkNhbmNlbCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICBAT3V0cHV0KCkgb25EYXRlID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIHByb3RlY3RlZCBfdWlkID0gaW5qZWN0KElkR2VuZXJhdG9yKS5nZXRJZCgnbW9ua2V5LWRhdGUtcmFuZ2UtJyk7XG5cbiAgcHJvdGVjdGVkIF9pZCE6IHN0cmluZztcblxuICBASW5wdXQoKVxuICBnZXQgaWQoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5faWQ7XG4gIH1cblxuICBzZXQgaWQodmFsdWU6IHN0cmluZykge1xuICAgIHRoaXMuX2lkID0gdmFsdWUgfHwgdGhpcy5fdWlkO1xuICB9XG5cbiAgcHJpdmF0ZSBfc2NyZWVuV2lkdGg6IG51bWJlciA9IHdpbmRvdy5pbm5lcldpZHRoO1xuXG4gIHByaXZhdGUgX2FsbG93Q2hhbmdlRmFzdEFjdGlvbiA9IHRydWU7XG5cbiAgcHJpdmF0ZSBfYWxsb3dDaGFuZ2VTZWNvbmRDYWxlbmRhciA9IHRydWU7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBfdG9kYXkgPSBuZXcgRGF0ZSgpO1xuXG4gIHJlYWRvbmx5IGkxOG5EaWN0aW9uYXJ5ID0gaW5qZWN0KE1vbmtleURpY3Rpb25hcnlTZXJ2aWNlKS5nZXQoJ0RBVEUtUkFOR0UnKTtcblxuICBoYW5kbGVkU3RhcnREYXRlITogc3RyaW5nO1xuXG4gIGhhbmRsZWRFbmREYXRlITogc3RyaW5nO1xuXG4gIGZpcnN0Q2FsZW5kYXIhOiBDYWxlbmRhcjtcblxuICBzZWNvbmRDYWxlbmRhciE6IENhbGVuZGFyO1xuXG4gIGlzSW52YWxpZEludGVydmFsID0gZmFsc2U7XG5cbiAgaGFuZGxlZE1pbkRhdGU6IHN0cmluZyA9IFV0aWxzLmdldERlZmF1bHRkYXRlcygpLm1pbkRhdGU7XG5cbiAgaGFuZGxlZE1heERhdGU6IHN0cmluZyA9IFV0aWxzLmdldERlZmF1bHRkYXRlcygpLm1heERhdGU7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXNlbGYtYXNzaWduXG4gICAgdGhpcy5pZCA9IHRoaXMuaWQ7XG4gIH1cblxuICBwcml2YXRlIGhhbmRsZUluaXRpYWxWYWx1ZXMoKSB7XG4gICAgY29uc3QgY2FsZW5kYXJzID0gVXRpbHMuYnVpbGRDYWxlbmRhcnModGhpcy5oYW5kbGVkU3RhcnREYXRlIHx8IG5ldyBEYXRlKCkpO1xuICAgIHRoaXMuZmlyc3RDYWxlbmRhciA9IGNhbGVuZGFycy5maXJzdENhbGVuZGFyO1xuICAgIHRoaXMuc2Vjb25kQ2FsZW5kYXIgPSBjYWxlbmRhcnMuc2Vjb25kQ2FsZW5kYXI7XG4gIH1cblxuICBwcml2YXRlIGhhbmRsZVByb3BlcnRpZXMoKSB7XG4gICAgaWYgKHRoaXMuX3NjcmVlbldpZHRoIDwgOTUwKSB7XG4gICAgICBpZiAodGhpcy5fYWxsb3dDaGFuZ2VGYXN0QWN0aW9uKSB7XG4gICAgICAgIHRoaXMuaGlkZVF1aWNrQWN0aW9uID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5hbGxvd0Zhc3RBY3Rpb25PbkhlYWRlciA9IGZhbHNlO1xuICAgICAgfVxuICAgICAgaWYgKHRoaXMuX2FsbG93Q2hhbmdlU2Vjb25kQ2FsZW5kYXIpIHtcbiAgICAgICAgdGhpcy5oaWRlU2Vjb25kQ2FsZW5kYXIgPSB0cnVlO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBpZiAodGhpcy5fYWxsb3dDaGFuZ2VGYXN0QWN0aW9uKSB7XG4gICAgICAgIHRoaXMuaGlkZVF1aWNrQWN0aW9uID0gZmFsc2U7XG4gICAgICAgIHRoaXMuYWxsb3dGYXN0QWN0aW9uT25IZWFkZXIgPSBmYWxzZTtcbiAgICAgIH1cbiAgICAgIGlmICh0aGlzLl9hbGxvd0NoYW5nZVNlY29uZENhbGVuZGFyKSB7XG4gICAgICAgIHRoaXMuaGlkZVNlY29uZENhbGVuZGFyID0gZmFsc2U7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBoYW5kbGVJbnB1dENoYW5nZShldmVudDogRXZlbnQsIGlzU3RhcnQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICBjb25zdCBpbnB1dCA9IGV2ZW50LnRhcmdldCBhcyBIVE1MSW5wdXRFbGVtZW50O1xuICAgIGNvbnN0IHsgdmFsdWUgfSA9IGlucHV0O1xuICAgIGNvbnN0IFt5ZWFyXSA9IHZhbHVlLnNwbGl0KCctJyk7XG4gICAgaWYgKGAke051bWJlcih5ZWFyKX1gLmxlbmd0aCA8IDQpIHJldHVybjtcblxuICAgIGlmICghaW5wdXQuY2hlY2tWYWxpZGl0eSgpKSB7XG4gICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuICAgICAgaW5wdXQudmFsdWUgPSAnJztcbiAgICAgIHRoaXMuaXNJbnZhbGlkSW50ZXJ2YWwgPSB0cnVlO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuaXNJbnZhbGlkSW50ZXJ2YWwgPSBmYWxzZTtcblxuICAgIGlmIChpc1N0YXJ0KSB7XG4gICAgICB0aGlzLmhhbmRsZWRTdGFydERhdGUgPSB2YWx1ZTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5oYW5kbGVkRW5kRGF0ZSA9IHZhbHVlO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmhpZGVBY3Rpb25zKSB7XG4gICAgICB0aGlzLm9uU3VibWl0KCk7XG4gICAgfVxuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcignd2luZG93OnJlc2l6ZScsIFsnJGV2ZW50J10pXG4gIG9uUmVzaXplKGV2ZW50OiBhbnkpIHtcbiAgICB0aGlzLl9zY3JlZW5XaWR0aCA9IChldmVudC50YXJnZXQgYXMgV2luZG93KS5pbm5lcldpZHRoO1xuICAgIHRoaXMuaGFuZGxlUHJvcGVydGllcygpO1xuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuaGlkZVF1aWNrQWN0aW9uKSB7XG4gICAgICB0aGlzLl9hbGxvd0NoYW5nZUZhc3RBY3Rpb24gPSBmYWxzZTtcbiAgICB9XG4gICAgaWYgKHRoaXMuaGlkZVNlY29uZENhbGVuZGFyKSB7XG4gICAgICB0aGlzLl9hbGxvd0NoYW5nZVNlY29uZENhbGVuZGFyID0gZmFsc2U7XG4gICAgfVxuICAgIGlmICh0aGlzLmFsbG93RmFzdEFjdGlvbk9uSGVhZGVyKSB7XG4gICAgICB0aGlzLl9hbGxvd0NoYW5nZUZhc3RBY3Rpb24gPSBmYWxzZTtcbiAgICAgIHRoaXMuaGlkZVF1aWNrQWN0aW9uID0gdHJ1ZTtcbiAgICB9XG5cbiAgICB0aGlzLmhhbmRsZUluaXRpYWxWYWx1ZXMoKTtcbiAgICB0aGlzLmhhbmRsZVByb3BlcnRpZXMoKTtcbiAgfVxuXG4gIG9uSGFuZGxlRGF0ZSh7IHN0YXJ0RGF0ZSwgZW5kRGF0ZSB9OiB7IHN0YXJ0RGF0ZTogc3RyaW5nOyBlbmREYXRlOiBzdHJpbmcgfSkge1xuICAgIHRoaXMuaGFuZGxlZFN0YXJ0RGF0ZSA9IHN0YXJ0RGF0ZTtcbiAgICB0aGlzLmhhbmRsZWRFbmREYXRlID0gZW5kRGF0ZTtcblxuICAgIGlmICh0aGlzLmhpZGVBY3Rpb25zKSB7XG4gICAgICB0aGlzLm9uU3VibWl0KCk7XG4gICAgfVxuICB9XG5cbiAgb25TdWJtaXQoKSB7XG4gICAgdGhpcy5vbkRhdGUubmV4dCh7XG4gICAgICBzdGFydERhdGU6IHRoaXMuaGFuZGxlZFN0YXJ0RGF0ZSA/PyAnJyxcbiAgICAgIGVuZERhdGU6IHRoaXMuaGFuZGxlZEVuZERhdGUgPz8gJydcbiAgICB9KTtcbiAgfVxuXG4gIG9uSGFuZGxlUXVpY2tBY3Rpb24oZXZlbnQ6IG51bWJlcikge1xuICAgIGNvbnN0IGlzQmFja3dhcmQgPSBldmVudCA8IDA7XG4gICAgY29uc3QgZGF5cyA9IE1hdGguYWJzKGV2ZW50KTtcblxuICAgIGlmIChpc0JhY2t3YXJkKSB7XG4gICAgICBjb25zdCBiYXNlRGF0ZSA9IFV0aWxzLnBhcnNlU3RyaW5nRGF0ZShcbiAgICAgICAgdGhpcy5oYW5kbGVkRW5kRGF0ZSB8fCB0aGlzLmhhbmRsZWRTdGFydERhdGUgfHwgdGhpcy5fdG9kYXlcbiAgICAgICk7XG5cbiAgICAgIGxldCBzdGFydERhdGU6IHN0cmluZyB8IERhdGUgPSBzdWJEYXlzKGJhc2VEYXRlLCBkYXlzKTtcblxuICAgICAgaWYgKGlzQmVmb3JlKHN0YXJ0RGF0ZSwgdGhpcy5oYW5kbGVkTWluRGF0ZSkpIHtcbiAgICAgICAgc3RhcnREYXRlID0gdGhpcy5oYW5kbGVkTWluRGF0ZTtcbiAgICAgIH1cblxuICAgICAgdGhpcy5oYW5kbGVkU3RhcnREYXRlID0gVXRpbHMucGFyc2VTdHJpbmdEYXRlKHN0YXJ0RGF0ZSk7XG4gICAgICB0aGlzLmhhbmRsZWRFbmREYXRlID0gVXRpbHMucGFyc2VTdHJpbmdEYXRlKGJhc2VEYXRlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgY29uc3QgYmFzZURhdGUgPSBVdGlscy5wYXJzZVN0cmluZ0RhdGUoXG4gICAgICAgIHRoaXMuaGFuZGxlZFN0YXJ0RGF0ZSB8fCB0aGlzLmhhbmRsZWRFbmREYXRlIHx8IHRoaXMuX3RvZGF5XG4gICAgICApO1xuXG4gICAgICBsZXQgZW5kRGF0ZTogc3RyaW5nIHwgRGF0ZSA9IGFkZERheXMoYmFzZURhdGUsIGRheXMpO1xuXG4gICAgICBpZiAoaXNBZnRlcihlbmREYXRlLCB0aGlzLmhhbmRsZWRNYXhEYXRlKSkge1xuICAgICAgICBlbmREYXRlID0gdGhpcy5oYW5kbGVkTWF4RGF0ZTtcbiAgICAgIH1cblxuICAgICAgdGhpcy5oYW5kbGVkU3RhcnREYXRlID0gVXRpbHMucGFyc2VTdHJpbmdEYXRlKGJhc2VEYXRlKTtcbiAgICAgIHRoaXMuaGFuZGxlZEVuZERhdGUgPSBVdGlscy5wYXJzZVN0cmluZ0RhdGUoZW5kRGF0ZSk7XG4gICAgfVxuICB9XG5cbiAgb25DaGFuZ2VJbnB1dFN0YXJ0RGF0ZShldmVudDogRXZlbnQpIHtcbiAgICB0aGlzLmhhbmRsZUlucHV0Q2hhbmdlKGV2ZW50LCB0cnVlKTtcbiAgfVxuXG4gIG9uQ2hhbmdlSW5wdXRFbmREYXRlKGV2ZW50OiBFdmVudCkge1xuICAgIHRoaXMuaGFuZGxlSW5wdXRDaGFuZ2UoZXZlbnQsIGZhbHNlKTtcbiAgfVxuXG4gIG9uRGF0YUNoYW5nZShldmVudDogc3RyaW5nLCBpc1N0YXJ0OiBib29sZWFuKSB7XG4gICAgaWYgKGlzU3RhcnQpIHtcbiAgICAgIHRoaXMuaGFuZGxlZFN0YXJ0RGF0ZSA9IGV2ZW50O1xuICAgICAgdGhpcy5oYW5kbGVkRW5kRGF0ZSA9ICcnO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmhhbmRsZWRFbmREYXRlID0gZXZlbnQ7XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuaGlkZUFjdGlvbnMpIHtcbiAgICAgIHRoaXMub25TdWJtaXQoKTtcbiAgICB9XG4gIH1cblxuICBvbkhhbmRsZU5hdmlnYXRlKGFjdGlvbjogJ3ByZXZpb3VzJyB8ICduZXh0Jykge1xuICAgIGlmICghYWN0aW9uKSByZXR1cm47XG4gICAgY29uc3QgZGF0ZSA9IG5ldyBEYXRlKHRoaXMuZmlyc3RDYWxlbmRhci55ZWFyLCB0aGlzLmZpcnN0Q2FsZW5kYXIubW9udGgsIDEpO1xuICAgIGNvbnN0IGNhbGVuZGFycyA9IFV0aWxzLmJ1aWxkQ2FsZW5kYXJzKGRhdGUsIGFjdGlvbik7XG4gICAgdGhpcy5maXJzdENhbGVuZGFyID0gY2FsZW5kYXJzLmZpcnN0Q2FsZW5kYXI7XG4gICAgdGhpcy5zZWNvbmRDYWxlbmRhciA9IGNhbGVuZGFycy5zZWNvbmRDYWxlbmRhcjtcbiAgfVxufVxuIiwiPG5nLWNvbnRhaW5lciAqbmdJZj1cImkxOG5EaWN0aW9uYXJ5IHwgYXN5bmMgYXMgaTE4blwiPlxuICA8ZGl2IGNsYXNzPVwiY29udGFpbmVyLWdyb3VwXCI+XG4gICAgQGlmICghaGlkZVF1aWNrQWN0aW9uKSB7XG4gICAgICA8ZGl2IGNsYXNzPVwicXVpY2stYWN0aW9uc1wiPlxuICAgICAgICA8bW9ua2V5LWRhdGUtcmFuZ2UtcXVpY2stYWN0aW9ucyAob25DaGFuZ2UpPVwib25IYW5kbGVRdWlja0FjdGlvbigkZXZlbnQpXCI+XG4gICAgICAgIDwvbW9ua2V5LWRhdGUtcmFuZ2UtcXVpY2stYWN0aW9ucz5cbiAgICAgIDwvZGl2PlxuICAgIH1cblxuICAgIDxkaXYgY2xhc3M9XCJjb250YWluZXJcIj5cbiAgICAgIEBpZiAoIWhpZGVIZWFkZXIpIHtcbiAgICAgICAgPGRpdiBjbGFzcz1cImhlYWRlclwiIFtjbGFzcy5uby1xdWljay1hY3Rpb25dPVwiaGlkZVF1aWNrQWN0aW9uXCI+XG4gICAgICAgICAgQGlmIChhbGxvd0Zhc3RBY3Rpb25PbkhlYWRlcikge1xuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInF1aWNrLWFjdGlvbnNcIj5cbiAgICAgICAgICAgICAgPG1vbmtleS1kYXRlLXJhbmdlLXF1aWNrLWFjdGlvbnMgKG9uQ2hhbmdlKT1cIm9uSGFuZGxlUXVpY2tBY3Rpb24oJGV2ZW50KVwiPlxuICAgICAgICAgICAgICA8L21vbmtleS1kYXRlLXJhbmdlLXF1aWNrLWFjdGlvbnM+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICB9IEBlbHNlIHtcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbnB1dHNcIj5cbiAgICAgICAgICAgICAgPG1vbmtleS1mb3JtLWZpZWxkIGhpZGVBY3Rpb24gZW5hYmxlQ2xlYXIgc2l6ZT1cInNtXCI+XG4gICAgICAgICAgICAgICAgPG1vbmtleS1sYWJlbD57eyBpMThuPy5bJ1NUQVJULURBVEUnXSB9fTwvbW9ua2V5LWxhYmVsPlxuICAgICAgICAgICAgICAgIDxpbnB1dFxuICAgICAgICAgICAgICAgICAgdHlwZT1cImRhdGVcIlxuICAgICAgICAgICAgICAgICAgbW9ua2V5LWlucHV0XG4gICAgICAgICAgICAgICAgICBpZD1cInN0YXJ0RGF0ZVwiXG4gICAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cImhhbmRsZWRTdGFydERhdGVcIlxuICAgICAgICAgICAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwib25EYXRhQ2hhbmdlKCRldmVudCwgdHJ1ZSlcIlxuICAgICAgICAgICAgICAgICAgW21pbl09XCJoYW5kbGVkTWluRGF0ZVwiXG4gICAgICAgICAgICAgICAgICBbbWF4XT1cImhhbmRsZWRFbmREYXRlID8gaGFuZGxlZEVuZERhdGUgOiBoYW5kbGVkTWF4RGF0ZVwiXG4gICAgICAgICAgICAgICAgICAoY2hhbmdlKT1cIm9uQ2hhbmdlSW5wdXRTdGFydERhdGUoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgPC9tb25rZXktZm9ybS1maWVsZD5cbiAgICAgICAgICAgICAgPG1vbmtleS1mb3JtLWZpZWxkIGhpZGVBY3Rpb24gZW5hYmxlQ2xlYXIgc2l6ZT1cInNtXCI+XG4gICAgICAgICAgICAgICAgPG1vbmtleS1sYWJlbD57eyBpMThuPy5bJ0VORC1EQVRFJ10gfX08L21vbmtleS1sYWJlbD5cbiAgICAgICAgICAgICAgICA8aW5wdXRcbiAgICAgICAgICAgICAgICAgIHR5cGU9XCJkYXRlXCJcbiAgICAgICAgICAgICAgICAgIG1vbmtleS1pbnB1dFxuICAgICAgICAgICAgICAgICAgaWQ9XCJlbmREYXRlXCJcbiAgICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwiaGFuZGxlZEVuZERhdGVcIlxuICAgICAgICAgICAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwib25EYXRhQ2hhbmdlKCRldmVudCwgZmFsc2UpXCJcbiAgICAgICAgICAgICAgICAgIFttaW5dPVwiaGFuZGxlZFN0YXJ0RGF0ZSA/IGhhbmRsZWRTdGFydERhdGUgOiAnJ1wiXG4gICAgICAgICAgICAgICAgICBbbWF4XT1cImhhbmRsZWRNYXhEYXRlXCJcbiAgICAgICAgICAgICAgICAgIChjaGFuZ2UpPVwib25DaGFuZ2VJbnB1dEVuZERhdGUoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgPC9tb25rZXktZm9ybS1maWVsZD5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgQGlmIChpc0ludmFsaWRJbnRlcnZhbCkge1xuICAgICAgICAgICAgICA8bW9ua2V5LWVycm9yPnt7IGkxOG4/LlsnSU5WQUxJRCddIH19PC9tb25rZXktZXJyb3I+XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICA8L2Rpdj5cbiAgICAgIH1cblxuICAgICAgPGRpdiBjbGFzcz1cImJvZHlcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImNhbGVuZGFyc1wiPlxuICAgICAgICAgIDxtb25rZXktZGF0ZS1yYW5nZS1tb250aFxuICAgICAgICAgICAgW21vbnRoXT1cImZpcnN0Q2FsZW5kYXIubW9udGhcIlxuICAgICAgICAgICAgW3llYXJdPVwiZmlyc3RDYWxlbmRhci55ZWFyXCJcbiAgICAgICAgICAgIFtzdGFydERhdGVdPVwiaGFuZGxlZFN0YXJ0RGF0ZVwiXG4gICAgICAgICAgICBbZW5kRGF0ZV09XCJoYW5kbGVkRW5kRGF0ZVwiXG4gICAgICAgICAgICAob25EYXRlKT1cIm9uSGFuZGxlRGF0ZSgkZXZlbnQpXCJcbiAgICAgICAgICAgIChvbk5hdmlnYXRlKT1cIm9uSGFuZGxlTmF2aWdhdGUoJGV2ZW50KVwiXG4gICAgICAgICAgICBbaGlkZU5leHRdPVwiIWhpZGVTZWNvbmRDYWxlbmRhclwiXG4gICAgICAgICAgICBbbWluRGF0ZV09XCJoYW5kbGVkTWluRGF0ZVwiXG4gICAgICAgICAgICBbbWF4RGF0ZV09XCJoYW5kbGVkTWF4RGF0ZVwiXG4gICAgICAgICAgPlxuICAgICAgICAgIDwvbW9ua2V5LWRhdGUtcmFuZ2UtbW9udGg+XG5cbiAgICAgICAgICBAaWYgKCFoaWRlU2Vjb25kQ2FsZW5kYXIpIHtcbiAgICAgICAgICAgIDxtb25rZXktZGF0ZS1yYW5nZS1tb250aFxuICAgICAgICAgICAgICBbbW9udGhdPVwic2Vjb25kQ2FsZW5kYXIubW9udGhcIlxuICAgICAgICAgICAgICBbeWVhcl09XCJzZWNvbmRDYWxlbmRhci55ZWFyXCJcbiAgICAgICAgICAgICAgW3N0YXJ0RGF0ZV09XCJoYW5kbGVkU3RhcnREYXRlXCJcbiAgICAgICAgICAgICAgW2VuZERhdGVdPVwiaGFuZGxlZEVuZERhdGVcIlxuICAgICAgICAgICAgICAob25EYXRlKT1cIm9uSGFuZGxlRGF0ZSgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgKG9uTmF2aWdhdGUpPVwib25IYW5kbGVOYXZpZ2F0ZSgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgaGlkZVByZXZpb3VzXG4gICAgICAgICAgICAgIFttaW5EYXRlXT1cImhhbmRsZWRNaW5EYXRlXCJcbiAgICAgICAgICAgICAgW21heERhdGVdPVwiaGFuZGxlZE1heERhdGVcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgPC9tb25rZXktZGF0ZS1yYW5nZS1tb250aD5cbiAgICAgICAgICB9XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG5cbiAgICAgIEBpZiAoIWhpZGVBY3Rpb25zKSB7XG4gICAgICAgIDxkaXYgY2xhc3M9XCJhY3Rpb25zXCI+XG4gICAgICAgICAgPG1vbmtleS1idXR0b24gc2l6ZT1cIm1kXCIgdHlwZT1cInNlY29uZGFyeVwiIChjbGljayk9XCJvbkNhbmNlbC5uZXh0KG51bGwpXCI+XG4gICAgICAgICAgICB7eyBpMThuPy5BQ1RJT05TPy5DQU5DRUwgfX1cbiAgICAgICAgICA8L21vbmtleS1idXR0b24+XG4gICAgICAgICAgPG1vbmtleS1idXR0b25cbiAgICAgICAgICAgIHNpemU9XCJtZFwiXG4gICAgICAgICAgICAoY2xpY2spPVwib25TdWJtaXQoKVwiXG4gICAgICAgICAgICBbZGlzYWJsZWRdPVwiIXRoaXMuaGFuZGxlZFN0YXJ0RGF0ZSB8fCAhdGhpcy5oYW5kbGVkRW5kRGF0ZVwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAge3sgaTE4bj8uQUNUSU9OUz8uQVBQTFkgfX1cbiAgICAgICAgICA8L21vbmtleS1idXR0b24+XG4gICAgICAgIDwvZGl2PlxuICAgICAgfVxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvbmctY29udGFpbmVyPlxuIl19
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
/** ************************
|
|
2
|
-
* Copyright Monkey Exchange. All Rights Reserved
|
|
3
|
-
* This style guide was developed by Monkey Exchange Team
|
|
4
|
-
* MIT Licence
|
|
5
|
-
************************* */
|
|
6
|
-
export * from './date-range.component';
|
|
7
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tb25rZXktc3R5bGUtZ3VpZGUtdjIvc3JjL2xpYi9jb21wb25lbnRzL2RhdGUtcmFuZ2UvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7NkJBSTZCO0FBQzdCLGNBQWMsd0JBQXdCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKiogKioqKioqKioqKioqKioqKioqKioqKioqXG4gKiBDb3B5cmlnaHQgTW9ua2V5IEV4Y2hhbmdlLiBBbGwgUmlnaHRzIFJlc2VydmVkXG4gKiBUaGlzIHN0eWxlIGd1aWRlIHdhcyBkZXZlbG9wZWQgYnkgTW9ua2V5IEV4Y2hhbmdlIFRlYW1cbiAqIE1JVCBMaWNlbmNlXG4gKioqKioqKioqKioqKioqKioqKioqKioqKiAqL1xuZXhwb3J0ICogZnJvbSAnLi9kYXRlLXJhbmdlLmNvbXBvbmVudCc7XG4iXX0=
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
/** ************************
|
|
2
|
-
* Copyright Monkey Exchange. All Rights Reserved
|
|
3
|
-
* This style guide was developed by Monkey Exchange Team
|
|
4
|
-
* MIT Licence
|
|
5
|
-
************************* */
|
|
6
|
-
export * from './month.component';
|
|
7
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tb25rZXktc3R5bGUtZ3VpZGUtdjIvc3JjL2xpYi9jb21wb25lbnRzL2RhdGUtcmFuZ2UvbW9udGgvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7NkJBSTZCO0FBQzdCLGNBQWMsbUJBQW1CLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKiogKioqKioqKioqKioqKioqKioqKioqKioqXG4gKiBDb3B5cmlnaHQgTW9ua2V5IEV4Y2hhbmdlLiBBbGwgUmlnaHRzIFJlc2VydmVkXG4gKiBUaGlzIHN0eWxlIGd1aWRlIHdhcyBkZXZlbG9wZWQgYnkgTW9ua2V5IEV4Y2hhbmdlIFRlYW1cbiAqIE1JVCBMaWNlbmNlXG4gKioqKioqKioqKioqKioqKioqKioqKioqKiAqL1xuZXhwb3J0ICogZnJvbSAnLi9tb250aC5jb21wb25lbnQnO1xuIl19
|
|
@@ -1,148 +0,0 @@
|
|
|
1
|
-
/** ************************
|
|
2
|
-
* Copyright Monkey Exchange. All Rights Reserved
|
|
3
|
-
* This style guide was developed by Monkey Exchange Team
|
|
4
|
-
* MIT Licence
|
|
5
|
-
************************* */
|
|
6
|
-
import { CommonModule } from '@angular/common';
|
|
7
|
-
import { booleanAttribute, Component, EventEmitter, inject, Input, Output } from '@angular/core';
|
|
8
|
-
import { format, isAfter, isWithinInterval } from 'date-fns';
|
|
9
|
-
import { IdGenerator } from '../../../../utils';
|
|
10
|
-
import { MonkeyDictionaryService } from '../../../services/dictionary.service';
|
|
11
|
-
import { MonkeyIconButtonComponent } from '../../icon-button';
|
|
12
|
-
import * as Utils from '../utils';
|
|
13
|
-
import * as i0 from "@angular/core";
|
|
14
|
-
import * as i1 from "@angular/common";
|
|
15
|
-
export class MonkeyDateRangeMonthComponent {
|
|
16
|
-
set startDate(val) {
|
|
17
|
-
this._handledStartDate = val;
|
|
18
|
-
}
|
|
19
|
-
set endDate(val) {
|
|
20
|
-
this._handledEndDate = val;
|
|
21
|
-
}
|
|
22
|
-
get id() {
|
|
23
|
-
return this._id;
|
|
24
|
-
}
|
|
25
|
-
set id(value) {
|
|
26
|
-
this._id = value || this._uid;
|
|
27
|
-
}
|
|
28
|
-
constructor() {
|
|
29
|
-
this.onNavigate = new EventEmitter();
|
|
30
|
-
this.onDate = new EventEmitter();
|
|
31
|
-
this._uid = inject(IdGenerator).getId('monkey-date-range-month-');
|
|
32
|
-
this._today = new Date();
|
|
33
|
-
this.i18nDictionary = inject(MonkeyDictionaryService).get('DATE-RANGE');
|
|
34
|
-
// eslint-disable-next-line no-self-assign
|
|
35
|
-
this.id = this.id;
|
|
36
|
-
}
|
|
37
|
-
ngOnChanges() {
|
|
38
|
-
this.daysInMonth = Utils.buildMonthByDays(this.year, this.month, this.minDate, this.maxDate);
|
|
39
|
-
}
|
|
40
|
-
isFirst(param) {
|
|
41
|
-
const date = format(param.date, 'yyyy-MM-dd');
|
|
42
|
-
return (this._handledStartDate && this._handledStartDate === date) || false;
|
|
43
|
-
}
|
|
44
|
-
isLast(param) {
|
|
45
|
-
const date = format(param.date, 'yyyy-MM-dd');
|
|
46
|
-
return (this._handledEndDate && this._handledEndDate === date) || false;
|
|
47
|
-
}
|
|
48
|
-
isSelected(param) {
|
|
49
|
-
const date = format(param.date, 'yyyy-MM-dd');
|
|
50
|
-
return ((this._handledStartDate && this._handledStartDate === date) ||
|
|
51
|
-
(this._handledEndDate && this._handledEndDate === date) ||
|
|
52
|
-
false);
|
|
53
|
-
}
|
|
54
|
-
isInRange(param) {
|
|
55
|
-
if (!this._handledStartDate || !this._handledEndDate || !param.date)
|
|
56
|
-
return false;
|
|
57
|
-
const date = format(param.date, 'yyyy-MM-dd');
|
|
58
|
-
return isWithinInterval(new Date(date), {
|
|
59
|
-
start: new Date(this._handledStartDate),
|
|
60
|
-
end: new Date(this._handledEndDate)
|
|
61
|
-
});
|
|
62
|
-
}
|
|
63
|
-
isInRangeTemporary(param) {
|
|
64
|
-
if (!this._handledStartDate ||
|
|
65
|
-
!this.temporaryEndDate?.date ||
|
|
66
|
-
!param.date ||
|
|
67
|
-
param.isDisabled ||
|
|
68
|
-
(this._handledStartDate && this._handledEndDate))
|
|
69
|
-
return false;
|
|
70
|
-
const date = format(param.date, 'yyyy-MM-dd');
|
|
71
|
-
return isWithinInterval(new Date(date), {
|
|
72
|
-
start: new Date(this._handledStartDate),
|
|
73
|
-
end: new Date(this.temporaryEndDate.date)
|
|
74
|
-
});
|
|
75
|
-
}
|
|
76
|
-
isInLastTemporary(param) {
|
|
77
|
-
if (!this.temporaryEndDate?.date || !param.date || this._handledEndDate)
|
|
78
|
-
return false;
|
|
79
|
-
const date = format(param.date, 'yyyy-MM-dd');
|
|
80
|
-
const cmp = format(this.temporaryEndDate?.date, 'yyyy-MM-dd');
|
|
81
|
-
return (this.temporaryEndDate?.date && cmp === date) || false;
|
|
82
|
-
}
|
|
83
|
-
onSelectDate(event, param) {
|
|
84
|
-
if (param?.isDisabled || !param.date) {
|
|
85
|
-
event.preventDefault();
|
|
86
|
-
return;
|
|
87
|
-
}
|
|
88
|
-
const date = format(param.date, 'yyyy-MM-dd');
|
|
89
|
-
if (this._handledStartDate && this._handledEndDate) {
|
|
90
|
-
this._handledStartDate = '';
|
|
91
|
-
this._handledEndDate = '';
|
|
92
|
-
}
|
|
93
|
-
if (!this._handledStartDate) {
|
|
94
|
-
this._handledStartDate = date;
|
|
95
|
-
}
|
|
96
|
-
else {
|
|
97
|
-
this._handledEndDate = date;
|
|
98
|
-
}
|
|
99
|
-
const cmp = isAfter(this._handledStartDate, this._handledEndDate);
|
|
100
|
-
if (this._handledStartDate && this._handledEndDate && cmp) {
|
|
101
|
-
const start = this._handledStartDate;
|
|
102
|
-
const end = this._handledEndDate;
|
|
103
|
-
this._handledStartDate = end;
|
|
104
|
-
this._handledEndDate = start;
|
|
105
|
-
}
|
|
106
|
-
this.onDate.next({
|
|
107
|
-
startDate: this._handledStartDate,
|
|
108
|
-
endDate: this._handledEndDate
|
|
109
|
-
});
|
|
110
|
-
}
|
|
111
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: MonkeyDateRangeMonthComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
112
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: MonkeyDateRangeMonthComponent, isStandalone: true, selector: "monkey-date-range-month", inputs: { month: "month", year: "year", startDate: "startDate", endDate: "endDate", hidePrevious: ["hidePrevious", "hidePrevious", booleanAttribute], hideNext: ["hideNext", "hideNext", booleanAttribute], minDate: "minDate", maxDate: "maxDate", id: "id" }, outputs: { onNavigate: "onNavigate", onDate: "onDate" }, host: { attributes: { "data-testid": "month" }, properties: { "attr.id": "id", "id": "id" } }, usesOnChanges: true, ngImport: i0, template: "<ng-container *ngIf=\"i18nDictionary | async as i18n\">\n <div class=\"header\">\n @if (!hidePrevious) {\n <monkey-icon-button\n size=\"sm\"\n icon=\"arrow-left\"\n type=\"secondary\"\n class=\"previous\"\n [disabled]=\"daysInMonth.blockPrev\"\n (click)=\"onNavigate.next('previous')\"\n >\n </monkey-icon-button>\n }\n\n {{ i18n?.['MONTHS']?.[month] }} {{ year }}\n\n @if (!hideNext) {\n <monkey-icon-button\n size=\"sm\"\n icon=\"arrow-right\"\n type=\"secondary\"\n class=\"next\"\n [disabled]=\"daysInMonth.blockNext\"\n (click)=\"onNavigate.next('next')\"\n >\n </monkey-icon-button>\n }\n </div>\n\n <div class=\"week-labels\">\n @for (day of i18n?.['WEEK-DAYS']; track day) {\n <span class=\"day\">{{ day }}</span>\n }\n </div>\n\n <div class=\"dates\">\n @for (day of daysInMonth.days; track $index) {\n <div\n class=\"day\"\n [class.disabled]=\"day!.isDisabled\"\n [class.in-range]=\"isInRange(day!)\"\n [class.selected]=\"isSelected(day!)\"\n [class.first]=\"isFirst(day!)\"\n [class.last]=\"isLast(day!)\"\n [class.in-range-temporary]=\"isInRangeTemporary(day!)\"\n [class.temporary-last]=\"isInLastTemporary(day!)\"\n (click)=\"onSelectDate($event, day!)\"\n (mouseenter)=\"temporaryEndDate = day!\"\n (mouseleave)=\"temporaryEndDate = null\"\n >\n {{ day!.date | date: 'd' }}\n @if (day?.isToday) {\n <span class=\"today\"></span>\n }\n </div>\n }\n </div>\n</ng-container>\n", styles: [":host{width:100%}:host .header{display:flex;align-items:center;justify-content:center;position:relative;margin-bottom:12px}:host .header monkey-icon-button{max-width:32px;background:transparent}:host .header monkey-icon-button.previous{position:absolute;left:0}:host .header monkey-icon-button.next{position:absolute;right:0}:host .week-labels{display:grid;grid-template-columns:repeat(7,1fr);text-align:center;font-weight:700;font-size:.9rem;margin-bottom:4px;gap:12px 0}:host .week-labels .day{height:24px;border:none;background:transparent;text-align:center;display:flex;align-items:center;justify-content:center;font-size:14px;font-style:normal;font-weight:400;line-height:24px;letter-spacing:.14px}:host .dates{display:grid;grid-template-columns:repeat(7,1fr);gap:12px 0}:host .dates .day{height:24px;display:flex;flex-direction:column;align-items:center;justify-content:center;cursor:pointer;color:var(--mecx-color-gray-700);text-align:center;font-size:14px;font-style:normal;font-weight:400;line-height:24px;letter-spacing:.14px;position:relative;border:1px solid transparent;-webkit-user-select:none;user-select:none}:host .dates .day .today{position:absolute;width:60%;bottom:1px;font-size:36px;letter-spacing:1.48!important}:host .dates .day .today:not(.selected){border-bottom:2px solid var(--mecx-color-theme-main)}:host .dates .day.disabled{color:var(--mecx-color-gray-400);font-weight:400;cursor:not-allowed}:host .dates .day.selected{background-color:var(--mecx-color-theme-main)!important;color:var(--mecx-color-white)!important}:host .dates .day.in-range{background-color:var(--mecx-color-gray-100);color:var(--mecx-color-theme-main)}:host .dates .day.in-range-temporary{background-color:var(--mecx-color-gray-100);color:var(--mecx-color-theme-main)}:host .dates .day.first,:host .dates .day.last{background-color:var(--mecx-color-theme-main);color:var(--mecx-color-white)}:host .dates .day.first{border-top-left-radius:8px;border-bottom-left-radius:8px}:host .dates .day.last,:host .dates .day.temporary-last{border-top-right-radius:8px;border-bottom-right-radius:8px}:host .dates .day:hover:not(.disabled,.in-range):before{content:\"\";border:1px solid var(--mecx-color-theme-main);border-radius:8px;height:100%;width:100%;position:absolute}:host .dates .day:hover:not(.disabled,.in-range).selected{background:var(--mecx-color-gray-100);color:var(--mecx-color-theme-main)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "pipe", type: i1.DatePipe, name: "date" }, { kind: "component", type: MonkeyIconButtonComponent, selector: "monkey-icon-button", inputs: ["type", "size", "disabled", "icon", "id"] }] }); }
|
|
113
|
-
}
|
|
114
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: MonkeyDateRangeMonthComponent, decorators: [{
|
|
115
|
-
type: Component,
|
|
116
|
-
args: [{ selector: 'monkey-date-range-month', standalone: true, imports: [CommonModule, MonkeyIconButtonComponent], host: {
|
|
117
|
-
'data-testid': 'month',
|
|
118
|
-
'[attr.id]': 'id',
|
|
119
|
-
'[id]': 'id'
|
|
120
|
-
}, template: "<ng-container *ngIf=\"i18nDictionary | async as i18n\">\n <div class=\"header\">\n @if (!hidePrevious) {\n <monkey-icon-button\n size=\"sm\"\n icon=\"arrow-left\"\n type=\"secondary\"\n class=\"previous\"\n [disabled]=\"daysInMonth.blockPrev\"\n (click)=\"onNavigate.next('previous')\"\n >\n </monkey-icon-button>\n }\n\n {{ i18n?.['MONTHS']?.[month] }} {{ year }}\n\n @if (!hideNext) {\n <monkey-icon-button\n size=\"sm\"\n icon=\"arrow-right\"\n type=\"secondary\"\n class=\"next\"\n [disabled]=\"daysInMonth.blockNext\"\n (click)=\"onNavigate.next('next')\"\n >\n </monkey-icon-button>\n }\n </div>\n\n <div class=\"week-labels\">\n @for (day of i18n?.['WEEK-DAYS']; track day) {\n <span class=\"day\">{{ day }}</span>\n }\n </div>\n\n <div class=\"dates\">\n @for (day of daysInMonth.days; track $index) {\n <div\n class=\"day\"\n [class.disabled]=\"day!.isDisabled\"\n [class.in-range]=\"isInRange(day!)\"\n [class.selected]=\"isSelected(day!)\"\n [class.first]=\"isFirst(day!)\"\n [class.last]=\"isLast(day!)\"\n [class.in-range-temporary]=\"isInRangeTemporary(day!)\"\n [class.temporary-last]=\"isInLastTemporary(day!)\"\n (click)=\"onSelectDate($event, day!)\"\n (mouseenter)=\"temporaryEndDate = day!\"\n (mouseleave)=\"temporaryEndDate = null\"\n >\n {{ day!.date | date: 'd' }}\n @if (day?.isToday) {\n <span class=\"today\"></span>\n }\n </div>\n }\n </div>\n</ng-container>\n", styles: [":host{width:100%}:host .header{display:flex;align-items:center;justify-content:center;position:relative;margin-bottom:12px}:host .header monkey-icon-button{max-width:32px;background:transparent}:host .header monkey-icon-button.previous{position:absolute;left:0}:host .header monkey-icon-button.next{position:absolute;right:0}:host .week-labels{display:grid;grid-template-columns:repeat(7,1fr);text-align:center;font-weight:700;font-size:.9rem;margin-bottom:4px;gap:12px 0}:host .week-labels .day{height:24px;border:none;background:transparent;text-align:center;display:flex;align-items:center;justify-content:center;font-size:14px;font-style:normal;font-weight:400;line-height:24px;letter-spacing:.14px}:host .dates{display:grid;grid-template-columns:repeat(7,1fr);gap:12px 0}:host .dates .day{height:24px;display:flex;flex-direction:column;align-items:center;justify-content:center;cursor:pointer;color:var(--mecx-color-gray-700);text-align:center;font-size:14px;font-style:normal;font-weight:400;line-height:24px;letter-spacing:.14px;position:relative;border:1px solid transparent;-webkit-user-select:none;user-select:none}:host .dates .day .today{position:absolute;width:60%;bottom:1px;font-size:36px;letter-spacing:1.48!important}:host .dates .day .today:not(.selected){border-bottom:2px solid var(--mecx-color-theme-main)}:host .dates .day.disabled{color:var(--mecx-color-gray-400);font-weight:400;cursor:not-allowed}:host .dates .day.selected{background-color:var(--mecx-color-theme-main)!important;color:var(--mecx-color-white)!important}:host .dates .day.in-range{background-color:var(--mecx-color-gray-100);color:var(--mecx-color-theme-main)}:host .dates .day.in-range-temporary{background-color:var(--mecx-color-gray-100);color:var(--mecx-color-theme-main)}:host .dates .day.first,:host .dates .day.last{background-color:var(--mecx-color-theme-main);color:var(--mecx-color-white)}:host .dates .day.first{border-top-left-radius:8px;border-bottom-left-radius:8px}:host .dates .day.last,:host .dates .day.temporary-last{border-top-right-radius:8px;border-bottom-right-radius:8px}:host .dates .day:hover:not(.disabled,.in-range):before{content:\"\";border:1px solid var(--mecx-color-theme-main);border-radius:8px;height:100%;width:100%;position:absolute}:host .dates .day:hover:not(.disabled,.in-range).selected{background:var(--mecx-color-gray-100);color:var(--mecx-color-theme-main)}\n"] }]
|
|
121
|
-
}], ctorParameters: () => [], propDecorators: { month: [{
|
|
122
|
-
type: Input,
|
|
123
|
-
args: [{ required: true }]
|
|
124
|
-
}], year: [{
|
|
125
|
-
type: Input,
|
|
126
|
-
args: [{ required: true }]
|
|
127
|
-
}], startDate: [{
|
|
128
|
-
type: Input
|
|
129
|
-
}], endDate: [{
|
|
130
|
-
type: Input
|
|
131
|
-
}], hidePrevious: [{
|
|
132
|
-
type: Input,
|
|
133
|
-
args: [{ transform: booleanAttribute }]
|
|
134
|
-
}], hideNext: [{
|
|
135
|
-
type: Input,
|
|
136
|
-
args: [{ transform: booleanAttribute }]
|
|
137
|
-
}], minDate: [{
|
|
138
|
-
type: Input
|
|
139
|
-
}], maxDate: [{
|
|
140
|
-
type: Input
|
|
141
|
-
}], onNavigate: [{
|
|
142
|
-
type: Output
|
|
143
|
-
}], onDate: [{
|
|
144
|
-
type: Output
|
|
145
|
-
}], id: [{
|
|
146
|
-
type: Input
|
|
147
|
-
}] } });
|
|
148
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9udGguY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbW9ua2V5LXN0eWxlLWd1aWRlLXYyL3NyYy9saWIvY29tcG9uZW50cy9kYXRlLXJhbmdlL21vbnRoL21vbnRoLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21vbmtleS1zdHlsZS1ndWlkZS12Mi9zcmMvbGliL2NvbXBvbmVudHMvZGF0ZS1yYW5nZS9tb250aC9tb250aC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs2QkFJNkI7QUFDN0IsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFDTCxnQkFBZ0IsRUFDaEIsU0FBUyxFQUNULFlBQVksRUFDWixNQUFNLEVBQ04sS0FBSyxFQUVMLE1BQU0sRUFDUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUM3RCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDaEQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDL0UsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDOUQsT0FBTyxLQUFLLEtBQUssTUFBTSxVQUFVLENBQUM7OztBQWNsQyxNQUFNLE9BQU8sNkJBQTZCO0lBS3hDLElBQWEsU0FBUyxDQUFDLEdBQVc7UUFDaEMsSUFBSSxDQUFDLGlCQUFpQixHQUFHLEdBQUcsQ0FBQztJQUMvQixDQUFDO0lBRUQsSUFBYSxPQUFPLENBQUMsR0FBVztRQUM5QixJQUFJLENBQUMsZUFBZSxHQUFHLEdBQUcsQ0FBQztJQUM3QixDQUFDO0lBZ0NELElBQ0ksRUFBRTtRQUNKLE9BQU8sSUFBSSxD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TSxFQUFFLElBQUk7cUJBQ2I7d0RBRzBCLEtBQUs7c0JBQS9CLEtBQUs7dUJBQUMsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFO2dCQUVFLElBQUk7c0JBQTlCLEtBQUs7dUJBQUMsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFO2dCQUVaLFNBQVM7c0JBQXJCLEtBQUs7Z0JBSU8sT0FBTztzQkFBbkIsS0FBSztnQkFLTixZQUFZO3NCQURYLEtBQUs7dUJBQUMsRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUU7Z0JBSXRDLFFBQVE7c0JBRFAsS0FBSzt1QkFBQyxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRTtnQkFHN0IsT0FBTztzQkFBZixLQUFLO2dCQUVHLE9BQU87c0JBQWYsS0FBSztnQkFFSSxVQUFVO3NCQUFuQixNQUFNO2dCQUVHLE1BQU07c0JBQWYsTUFBTTtnQkFtQkgsRUFBRTtzQkFETCxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiLyoqICoqKioqKioqKioqKioqKioqKioqKioqKlxuICogQ29weXJpZ2h0IE1vbmtleSBFeGNoYW5nZS4gQWxsIFJpZ2h0cyBSZXNlcnZlZFxuICogVGhpcyBzdHlsZSBndWlkZSB3YXMgZGV2ZWxvcGVkIGJ5IE1vbmtleSBFeGNoYW5nZSBUZWFtXG4gKiBNSVQgTGljZW5jZVxuICoqKioqKioqKioqKioqKioqKioqKioqKiogKi9cbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICBib29sZWFuQXR0cmlidXRlLFxuICBDb21wb25lbnQsXG4gIEV2ZW50RW1pdHRlcixcbiAgaW5qZWN0LFxuICBJbnB1dCxcbiAgT25DaGFuZ2VzLFxuICBPdXRwdXRcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBmb3JtYXQsIGlzQWZ0ZXIsIGlzV2l0aGluSW50ZXJ2YWwgfSBmcm9tICdkYXRlLWZucyc7XG5pbXBvcnQgeyBJZEdlbmVyYXRvciB9IGZyb20gJy4uLy4uLy4uLy4uL3V0aWxzJztcbmltcG9ydCB7IE1vbmtleURpY3Rpb25hcnlTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvZGljdGlvbmFyeS5zZXJ2aWNlJztcbmltcG9ydCB7IE1vbmtleUljb25CdXR0b25Db21wb25lbnQgfSBmcm9tICcuLi8uLi9pY29uLWJ1dHRvbic7XG5pbXBvcnQgKiBhcyBVdGlscyBmcm9tICcuLi91dGlscyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ21vbmtleS1kYXRlLXJhbmdlLW1vbnRoJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgTW9ua2V5SWNvbkJ1dHRvbkNvbXBvbmVudF0sXG4gIHRlbXBsYXRlVXJsOiAnLi9tb250aC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsOiAnLi9tb250aC5jb21wb25lbnQuc2NzcycsXG4gIGhvc3Q6IHtcbiAgICAnZGF0YS10ZXN0aWQnOiAnbW9udGgnLFxuICAgICdbYXR0ci5pZF0nOiAnaWQnLFxuICAgICdbaWRdJzogJ2lkJ1xuICB9XG59KVxuZXhwb3J0IGNsYXNzIE1vbmtleURhdGVSYW5nZU1vbnRoQ29tcG9uZW50IGltcGxlbWVudHMgT25DaGFuZ2VzIHtcbiAgQElucHV0KHsgcmVxdWlyZWQ6IHRydWUgfSkgbW9udGghOiBudW1iZXI7XG5cbiAgQElucHV0KHsgcmVxdWlyZWQ6IHRydWUgfSkgeWVhciE6IG51bWJlcjtcblxuICBASW5wdXQoKSBzZXQgc3RhcnREYXRlKHZhbDogc3RyaW5nKSB7XG4gICAgdGhpcy5faGFuZGxlZFN0YXJ0RGF0ZSA9IHZhbDtcbiAgfVxuXG4gIEBJbnB1dCgpIHNldCBlbmREYXRlKHZhbDogc3RyaW5nKSB7XG4gICAgdGhpcy5faGFuZGxlZEVuZERhdGUgPSB2YWw7XG4gIH1cblxuICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSlcbiAgaGlkZVByZXZpb3VzITogYm9vbGVhbjtcblxuICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSlcbiAgaGlkZU5leHQhOiBib29sZWFuO1xuXG4gIEBJbnB1dCgpIG1pbkRhdGUhOiBzdHJpbmc7XG5cbiAgQElucHV0KCkgbWF4RGF0ZSE6IHN0cmluZztcblxuICBAT3V0cHV0KCkgb25OYXZpZ2F0ZSA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICBAT3V0cHV0KCkgb25EYXRlID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIHByb3RlY3RlZCBfdWlkID0gaW5qZWN0KElkR2VuZXJhdG9yKS5nZXRJZCgnbW9ua2V5LWRhdGUtcmFuZ2UtbW9udGgtJyk7XG5cbiAgcHJvdGVjdGVkIF9pZCE6IHN0cmluZztcblxuICBwcml2YXRlIHJlYWRvbmx5IF90b2RheSA9IG5ldyBEYXRlKCk7XG5cbiAgcHJpdmF0ZSBfaGFuZGxlZFN0YXJ0RGF0ZSE6IHN0cmluZztcblxuICBwcml2YXRlIF9oYW5kbGVkRW5kRGF0ZSE6IHN0cmluZztcblxuICByZWFkb25seSBpMThuRGljdGlvbmFyeSA9IGluamVjdChNb25rZXlEaWN0aW9uYXJ5U2VydmljZSkuZ2V0KCdEQVRFLVJBTkdFJyk7XG5cbiAgZGF5c0luTW9udGghOiBVdGlscy5DYWxlbmRhcldlZWtEYXk7XG5cbiAgdGVtcG9yYXJ5RW5kRGF0ZSE6IFV0aWxzLldlZWtEYXkgfCBudWxsO1xuXG4gIEBJbnB1dCgpXG4gIGdldCBpZCgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLl9pZDtcbiAgfVxuXG4gIHNldCBpZCh2YWx1ZTogc3RyaW5nKSB7XG4gICAgdGhpcy5faWQgPSB2YWx1ZSB8fCB0aGlzLl91aWQ7XG4gIH1cblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tc2VsZi1hc3NpZ25cbiAgICB0aGlzLmlkID0gdGhpcy5pZDtcbiAgfVxuXG4gIG5nT25DaGFuZ2VzKCk6IHZvaWQge1xuICAgIHRoaXMuZGF5c0luTW9udGggPSBVdGlscy5idWlsZE1vbnRoQnlEYXlzKHRoaXMueWVhciwgdGhpcy5tb250aCwgdGhpcy5taW5EYXRlLCB0aGlzLm1heERhdGUpO1xuICB9XG5cbiAgaXNGaXJzdChwYXJhbTogVXRpbHMuV2Vla0RheSk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IGRhdGUgPSBmb3JtYXQocGFyYW0uZGF0ZSEsICd5eXl5LU1NLWRkJyk7XG4gICAgcmV0dXJuICh0aGlzLl9oYW5kbGVkU3RhcnREYXRlICYmIHRoaXMuX2hhbmRsZWRTdGFydERhdGUgPT09IGRhdGUpIHx8IGZhbHNlO1xuICB9XG5cbiAgaXNMYXN0KHBhcmFtOiBVdGlscy5XZWVrRGF5KTogYm9vbGVhbiB7XG4gICAgY29uc3QgZGF0ZSA9IGZvcm1hdChwYXJhbS5kYXRlISwgJ3l5eXktTU0tZGQnKTtcbiAgICByZXR1cm4gKHRoaXMuX2hhbmRsZWRFbmREYXRlICYmIHRoaXMuX2hhbmRsZWRFbmREYXRlID09PSBkYXRlKSB8fCBmYWxzZTtcbiAgfVxuXG4gIGlzU2VsZWN0ZWQocGFyYW06IFV0aWxzLldlZWtEYXkpOiBib29sZWFuIHtcbiAgICBjb25zdCBkYXRlID0gZm9ybWF0KHBhcmFtLmRhdGUhLCAneXl5eS1NTS1kZCcpO1xuICAgIHJldHVybiAoXG4gICAgICAodGhpcy5faGFuZGxlZFN0YXJ0RGF0ZSAmJiB0aGlzLl9oYW5kbGVkU3RhcnREYXRlID09PSBkYXRlKSB8fFxuICAgICAgKHRoaXMuX2hhbmRsZWRFbmREYXRlICYmIHRoaXMuX2hhbmRsZWRFbmREYXRlID09PSBkYXRlKSB8fFxuICAgICAgZmFsc2VcbiAgICApO1xuICB9XG5cbiAgaXNJblJhbmdlKHBhcmFtOiBVdGlscy5XZWVrRGF5KTogYm9vbGVhbiB7XG4gICAgaWYgKCF0aGlzLl9oYW5kbGVkU3RhcnREYXRlIHx8ICF0aGlzLl9oYW5kbGVkRW5kRGF0ZSB8fCAhcGFyYW0uZGF0ZSkgcmV0dXJuIGZhbHNlO1xuICAgIGNvbnN0IGRhdGUgPSBmb3JtYXQocGFyYW0uZGF0ZSEsICd5eXl5LU1NLWRkJyk7XG5cbiAgICByZXR1cm4gaXNXaXRoaW5JbnRlcnZhbChuZXcgRGF0ZShkYXRlKSwge1xuICAgICAgc3RhcnQ6IG5ldyBEYXRlKHRoaXMuX2hhbmRsZWRTdGFydERhdGUpLFxuICAgICAgZW5kOiBuZXcgRGF0ZSh0aGlzLl9oYW5kbGVkRW5kRGF0ZSlcbiAgICB9KTtcbiAgfVxuXG4gIGlzSW5SYW5nZVRlbXBvcmFyeShwYXJhbTogVXRpbHMuV2Vla0RheSk6IGJvb2xlYW4ge1xuICAgIGlmIChcbiAgICAgICF0aGlzLl9oYW5kbGVkU3RhcnREYXRlIHx8XG4gICAgICAhdGhpcy50ZW1wb3JhcnlFbmREYXRlPy5kYXRlIHx8XG4gICAgICAhcGFyYW0uZGF0ZSB8fFxuICAgICAgcGFyYW0uaXNEaXNhYmxlZCB8fFxuICAgICAgKHRoaXMuX2hhbmRsZWRTdGFydERhdGUgJiYgdGhpcy5faGFuZGxlZEVuZERhdGUpXG4gICAgKVxuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIGNvbnN0IGRhdGUgPSBmb3JtYXQocGFyYW0uZGF0ZSEsICd5eXl5LU1NLWRkJyk7XG5cbiAgICByZXR1cm4gaXNXaXRoaW5JbnRlcnZhbChuZXcgRGF0ZShkYXRlKSwge1xuICAgICAgc3RhcnQ6IG5ldyBEYXRlKHRoaXMuX2hhbmRsZWRTdGFydERhdGUpLFxuICAgICAgZW5kOiBuZXcgRGF0ZSh0aGlzLnRlbXBvcmFyeUVuZERhdGUuZGF0ZSlcbiAgICB9KTtcbiAgfVxuXG4gIGlzSW5MYXN0VGVtcG9yYXJ5KHBhcmFtOiBVdGlscy5XZWVrRGF5KTogYm9vbGVhbiB7XG4gICAgaWYgKCF0aGlzLnRlbXBvcmFyeUVuZERhdGU/LmRhdGUgfHwgIXBhcmFtLmRhdGUgfHwgdGhpcy5faGFuZGxlZEVuZERhdGUpIHJldHVybiBmYWxzZTtcbiAgICBjb25zdCBkYXRlID0gZm9ybWF0KHBhcmFtLmRhdGUhLCAneXl5eS1NTS1kZCcpO1xuICAgIGNvbnN0IGNtcCA9IGZvcm1hdCh0aGlzLnRlbXBvcmFyeUVuZERhdGU/LmRhdGUhLCAneXl5eS1NTS1kZCcpO1xuICAgIHJldHVybiAodGhpcy50ZW1wb3JhcnlFbmREYXRlPy5kYXRlICYmIGNtcCA9PT0gZGF0ZSkgfHwgZmFsc2U7XG4gIH1cblxuICBvblNlbGVjdERhdGUoZXZlbnQ6IEV2ZW50LCBwYXJhbTogVXRpbHMuV2Vla0RheSkge1xuICAgIGlmIChwYXJhbT8uaXNEaXNhYmxlZCB8fCAhcGFyYW0uZGF0ZSkge1xuICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBjb25zdCBkYXRlID0gZm9ybWF0KHBhcmFtLmRhdGUsICd5eXl5LU1NLWRkJyk7XG4gICAgaWYgKHRoaXMuX2hhbmRsZWRTdGFydERhdGUgJiYgdGhpcy5faGFuZGxlZEVuZERhdGUpIHtcbiAgICAgIHRoaXMuX2hhbmRsZWRTdGFydERhdGUgPSAnJztcbiAgICAgIHRoaXMuX2hhbmRsZWRFbmREYXRlID0gJyc7XG4gICAgfVxuXG4gICAgaWYgKCF0aGlzLl9oYW5kbGVkU3RhcnREYXRlKSB7XG4gICAgICB0aGlzLl9oYW5kbGVkU3RhcnREYXRlID0gZGF0ZTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5faGFuZGxlZEVuZERhdGUgPSBkYXRlO1xuICAgIH1cblxuICAgIGNvbnN0IGNtcCA9IGlzQWZ0ZXIodGhpcy5faGFuZGxlZFN0YXJ0RGF0ZSwgdGhpcy5faGFuZGxlZEVuZERhdGUpO1xuXG4gICAgaWYgKHRoaXMuX2hhbmRsZWRTdGFydERhdGUgJiYgdGhpcy5faGFuZGxlZEVuZERhdGUgJiYgY21wKSB7XG4gICAgICBjb25zdCBzdGFydCA9IHRoaXMuX2hhbmRsZWRTdGFydERhdGU7XG4gICAgICBjb25zdCBlbmQgPSB0aGlzLl9oYW5kbGVkRW5kRGF0ZTtcbiAgICAgIHRoaXMuX2hhbmRsZWRTdGFydERhdGUgPSBlbmQ7XG4gICAgICB0aGlzLl9oYW5kbGVkRW5kRGF0ZSA9IHN0YXJ0O1xuICAgIH1cblxuICAgIHRoaXMub25EYXRlLm5leHQoe1xuICAgICAgc3RhcnREYXRlOiB0aGlzLl9oYW5kbGVkU3RhcnREYXRlLFxuICAgICAgZW5kRGF0ZTogdGhpcy5faGFuZGxlZEVuZERhdGVcbiAgICB9KTtcbiAgfVxufVxuIiwiPG5nLWNvbnRhaW5lciAqbmdJZj1cImkxOG5EaWN0aW9uYXJ5IHwgYXN5bmMgYXMgaTE4blwiPlxuICA8ZGl2IGNsYXNzPVwiaGVhZGVyXCI+XG4gICAgQGlmICghaGlkZVByZXZpb3VzKSB7XG4gICAgICA8bW9ua2V5LWljb24tYnV0dG9uXG4gICAgICAgIHNpemU9XCJzbVwiXG4gICAgICAgIGljb249XCJhcnJvdy1sZWZ0XCJcbiAgICAgICAgdHlwZT1cInNlY29uZGFyeVwiXG4gICAgICAgIGNsYXNzPVwicHJldmlvdXNcIlxuICAgICAgICBbZGlzYWJsZWRdPVwiZGF5c0luTW9udGguYmxvY2tQcmV2XCJcbiAgICAgICAgKGNsaWNrKT1cIm9uTmF2aWdhdGUubmV4dCgncHJldmlvdXMnKVwiXG4gICAgICA+XG4gICAgICA8L21vbmtleS1pY29uLWJ1dHRvbj5cbiAgICB9XG5cbiAgICB7eyBpMThuPy5bJ01PTlRIUyddPy5bbW9udGhdIH19IHt7IHllYXIgfX1cblxuICAgIEBpZiAoIWhpZGVOZXh0KSB7XG4gICAgICA8bW9ua2V5LWljb24tYnV0dG9uXG4gICAgICAgIHNpemU9XCJzbVwiXG4gICAgICAgIGljb249XCJhcnJvdy1yaWdodFwiXG4gICAgICAgIHR5cGU9XCJzZWNvbmRhcnlcIlxuICAgICAgICBjbGFzcz1cIm5leHRcIlxuICAgICAgICBbZGlzYWJsZWRdPVwiZGF5c0luTW9udGguYmxvY2tOZXh0XCJcbiAgICAgICAgKGNsaWNrKT1cIm9uTmF2aWdhdGUubmV4dCgnbmV4dCcpXCJcbiAgICAgID5cbiAgICAgIDwvbW9ua2V5LWljb24tYnV0dG9uPlxuICAgIH1cbiAgPC9kaXY+XG5cbiAgPGRpdiBjbGFzcz1cIndlZWstbGFiZWxzXCI+XG4gICAgQGZvciAoZGF5IG9mIGkxOG4/LlsnV0VFSy1EQVlTJ107IHRyYWNrIGRheSkge1xuICAgICAgPHNwYW4gY2xhc3M9XCJkYXlcIj57eyBkYXkgfX08L3NwYW4+XG4gICAgfVxuICA8L2Rpdj5cblxuICA8ZGl2IGNsYXNzPVwiZGF0ZXNcIj5cbiAgICBAZm9yIChkYXkgb2YgZGF5c0luTW9udGguZGF5czsgdHJhY2sgJGluZGV4KSB7XG4gICAgICA8ZGl2XG4gICAgICAgIGNsYXNzPVwiZGF5XCJcbiAgICAgICAgW2NsYXNzLmRpc2FibGVkXT1cImRheSEuaXNEaXNhYmxlZFwiXG4gICAgICAgIFtjbGFzcy5pbi1yYW5nZV09XCJpc0luUmFuZ2UoZGF5ISlcIlxuICAgICAgICBbY2xhc3Muc2VsZWN0ZWRdPVwiaXNTZWxlY3RlZChkYXkhKVwiXG4gICAgICAgIFtjbGFzcy5maXJzdF09XCJpc0ZpcnN0KGRheSEpXCJcbiAgICAgICAgW2NsYXNzLmxhc3RdPVwiaXNMYXN0KGRheSEpXCJcbiAgICAgICAgW2NsYXNzLmluLXJhbmdlLXRlbXBvcmFyeV09XCJpc0luUmFuZ2VUZW1wb3JhcnkoZGF5ISlcIlxuICAgICAgICBbY2xhc3MudGVtcG9yYXJ5LWxhc3RdPVwiaXNJbkxhc3RUZW1wb3JhcnkoZGF5ISlcIlxuICAgICAgICAoY2xpY2spPVwib25TZWxlY3REYXRlKCRldmVudCwgZGF5ISlcIlxuICAgICAgICAobW91c2VlbnRlcik9XCJ0ZW1wb3JhcnlFbmREYXRlID0gZGF5IVwiXG4gICAgICAgIChtb3VzZWxlYXZlKT1cInRlbXBvcmFyeUVuZERhdGUgPSBudWxsXCJcbiAgICAgID5cbiAgICAgICAge3sgZGF5IS5kYXRlIHwgZGF0ZTogJ2QnIH19XG4gICAgICAgIEBpZiAoZGF5Py5pc1RvZGF5KSB7XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0b2RheVwiPjwvc3Bhbj5cbiAgICAgICAgfVxuICAgICAgPC9kaXY+XG4gICAgfVxuICA8L2Rpdj5cbjwvbmctY29udGFpbmVyPlxuIl19
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
/** ************************
|
|
2
|
-
* Copyright Monkey Exchange. All Rights Reserved
|
|
3
|
-
* This style guide was developed by Monkey Exchange Team
|
|
4
|
-
* MIT Licence
|
|
5
|
-
************************* */
|
|
6
|
-
export * from './quick-actions.component';
|
|
7
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tb25rZXktc3R5bGUtZ3VpZGUtdjIvc3JjL2xpYi9jb21wb25lbnRzL2RhdGUtcmFuZ2UvcXVpY2stYWN0aW9ucy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs2QkFJNkI7QUFDN0IsY0FBYywyQkFBMkIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKiAqKioqKioqKioqKioqKioqKioqKioqKipcbiAqIENvcHlyaWdodCBNb25rZXkgRXhjaGFuZ2UuIEFsbCBSaWdodHMgUmVzZXJ2ZWRcbiAqIFRoaXMgc3R5bGUgZ3VpZGUgd2FzIGRldmVsb3BlZCBieSBNb25rZXkgRXhjaGFuZ2UgVGVhbVxuICogTUlUIExpY2VuY2VcbiAqKioqKioqKioqKioqKioqKioqKioqKioqICovXG5leHBvcnQgKiBmcm9tICcuL3F1aWNrLWFjdGlvbnMuY29tcG9uZW50JztcbiJdfQ==
|
|
@@ -1,48 +0,0 @@
|
|
|
1
|
-
/** ************************
|
|
2
|
-
* Copyright Monkey Exchange. All Rights Reserved
|
|
3
|
-
* This style guide was developed by Monkey Exchange Team
|
|
4
|
-
* MIT Licence
|
|
5
|
-
************************* */
|
|
6
|
-
import { CommonModule } from '@angular/common';
|
|
7
|
-
import { Component, EventEmitter, inject, Input, Output } from '@angular/core';
|
|
8
|
-
import { IdGenerator } from '../../../../utils';
|
|
9
|
-
import { MonkeyDictionaryService } from '../../../services/dictionary.service';
|
|
10
|
-
import * as Utils from '../utils';
|
|
11
|
-
import * as i0 from "@angular/core";
|
|
12
|
-
import * as i1 from "@angular/common";
|
|
13
|
-
export class MonkeyDateRangeQuickActionsComponent {
|
|
14
|
-
get id() {
|
|
15
|
-
return this._id;
|
|
16
|
-
}
|
|
17
|
-
set id(value) {
|
|
18
|
-
this._id = value || this._uid;
|
|
19
|
-
}
|
|
20
|
-
constructor() {
|
|
21
|
-
this.onChange = new EventEmitter();
|
|
22
|
-
this._uid = inject(IdGenerator).getId('monkey-date-range-month-quick-actions-');
|
|
23
|
-
this.selectedAction = '';
|
|
24
|
-
this.actions = Utils.getEnumKeys(Utils.QuickActionsEnum);
|
|
25
|
-
this.i18nDictionary = inject(MonkeyDictionaryService).get('DATE-RANGE');
|
|
26
|
-
// eslint-disable-next-line no-self-assign
|
|
27
|
-
this.id = this.id;
|
|
28
|
-
}
|
|
29
|
-
onHandleAction({ key, value }) {
|
|
30
|
-
this.selectedAction = key;
|
|
31
|
-
this.onChange.next(value);
|
|
32
|
-
}
|
|
33
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: MonkeyDateRangeQuickActionsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
34
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: MonkeyDateRangeQuickActionsComponent, isStandalone: true, selector: "monkey-date-range-quick-actions", inputs: { id: "id" }, outputs: { onChange: "onChange" }, host: { attributes: { "data-testid": "quick-actions" }, properties: { "attr.id": "id", "id": "id" } }, ngImport: i0, template: "<ng-container *ngIf=\"i18nDictionary | async as i18n\">\n @for (item of actions; track item.key) {\n <div\n class=\"item\"\n [class.selected]=\"item.key === selectedAction\"\n (click)=\"onHandleAction(item)\"\n [attr.tabindex]=\"$index\"\n >\n {{ i18n?.['QUICK-ACTIONS']?.[item.key] }}\n </div>\n }\n</ng-container>\n", styles: [":host{display:inline-flex;flex-direction:column;padding:24px 8px 12px 12px;gap:4px}:host .item{color:var(--mecx-color-gray-900);font-size:13px;font-style:normal;font-weight:400;line-height:16px;letter-spacing:.26px;padding:4px 12px;cursor:pointer;display:flex;align-items:center;-webkit-user-select:none;user-select:none;border-radius:4px}:host .item.selected{border-radius:4px;background:var(--mecx-color-gray-100)}:host .item:hover{border-radius:4px;background:var(--mecx-color-gray-100)}:host .item:focus{outline:2px solid var(--mecx-color-theme-main);outline-offset:1px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }] }); }
|
|
35
|
-
}
|
|
36
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: MonkeyDateRangeQuickActionsComponent, decorators: [{
|
|
37
|
-
type: Component,
|
|
38
|
-
args: [{ selector: 'monkey-date-range-quick-actions', standalone: true, imports: [CommonModule], host: {
|
|
39
|
-
'data-testid': 'quick-actions',
|
|
40
|
-
'[attr.id]': 'id',
|
|
41
|
-
'[id]': 'id'
|
|
42
|
-
}, template: "<ng-container *ngIf=\"i18nDictionary | async as i18n\">\n @for (item of actions; track item.key) {\n <div\n class=\"item\"\n [class.selected]=\"item.key === selectedAction\"\n (click)=\"onHandleAction(item)\"\n [attr.tabindex]=\"$index\"\n >\n {{ i18n?.['QUICK-ACTIONS']?.[item.key] }}\n </div>\n }\n</ng-container>\n", styles: [":host{display:inline-flex;flex-direction:column;padding:24px 8px 12px 12px;gap:4px}:host .item{color:var(--mecx-color-gray-900);font-size:13px;font-style:normal;font-weight:400;line-height:16px;letter-spacing:.26px;padding:4px 12px;cursor:pointer;display:flex;align-items:center;-webkit-user-select:none;user-select:none;border-radius:4px}:host .item.selected{border-radius:4px;background:var(--mecx-color-gray-100)}:host .item:hover{border-radius:4px;background:var(--mecx-color-gray-100)}:host .item:focus{outline:2px solid var(--mecx-color-theme-main);outline-offset:1px}\n"] }]
|
|
43
|
-
}], ctorParameters: () => [], propDecorators: { onChange: [{
|
|
44
|
-
type: Output
|
|
45
|
-
}], id: [{
|
|
46
|
-
type: Input
|
|
47
|
-
}] } });
|
|
48
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVpY2stYWN0aW9ucy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tb25rZXktc3R5bGUtZ3VpZGUtdjIvc3JjL2xpYi9jb21wb25lbnRzL2RhdGUtcmFuZ2UvcXVpY2stYWN0aW9ucy9xdWljay1hY3Rpb25zLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21vbmtleS1zdHlsZS1ndWlkZS12Mi9zcmMvbGliL2NvbXBvbmVudHMvZGF0ZS1yYW5nZS9xdWljay1hY3Rpb25zL3F1aWNrLWFjdGlvbnMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7NkJBSTZCO0FBQzdCLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMvRSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDaEQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDL0UsT0FBTyxLQUFLLEtBQUssTUFBTSxVQUFVLENBQUM7OztBQWNsQyxNQUFNLE9BQU8sb0NBQW9DO0lBTy9DLElBQ0ksRUFBRTtRQUNKLE9BQU8sSUFBSSxDQUFDLEdBQUcsQ0FBQztJQUNsQixDQUFDO0lBRUQsSUFBSSxFQUFFLENBQUMsS0FBYTtRQUNsQixJQUFJLENBQUMsR0FBRyxHQUFHLEtBQUssSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDO0lBQ2hDLENBQUM7SUFRRDtRQXJCVSxhQUFRLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUU5QixTQUFJLEdBQUcsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDLEtBQUssQ0FBQyx3Q0FBd0MsQ0FBQyxDQUFDO1FBYXJGLG1CQUFjLEdBQUcsRUFBRSxDQUFDO1FBRVgsWUFBTyxHQUFHLEtBQUssQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFFcEQsbUJBQWMsR0FBRyxNQUFNLENBQUMsdUJBQXVCLENBQUMsQ0FBQyxHQUFHLENBQUMsWUFBWSxDQUFDLENBQUM7UUFHMUUsMENBQTBDO1FBQzFDLElBQUksQ0FBQyxFQUFFLEdBQUcsSUFBSSxDQUFDLEVBQUUsQ0FBQztJQUNwQixDQUFDO0lBRUQsY0FBYyxDQUFDLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBa0M7UUFDM0QsSUFBSSxDQUFDLGNBQWMsR0FBRyxHQUFHLENBQUM7UUFDMUIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDNUIsQ0FBQzsrR0E5QlUsb0NBQW9DO21HQUFwQyxvQ0FBb0MsMlBDdkJqRCxtV0FZQSx5bkJERVksWUFBWTs7NEZBU1gsb0NBQW9DO2tCQVpoRCxTQUFTOytCQUNFLGlDQUFpQyxjQUMvQixJQUFJLFdBQ1AsQ0FBQyxZQUFZLENBQUMsUUFHakI7d0JBQ0osYUFBYSxFQUFFLGVBQWU7d0JBQzlCLFdBQVcsRUFBRSxJQUFJO3dCQUNqQixNQUFNLEVBQUUsSUFBSTtxQkFDYjt3REFHUyxRQUFRO3NCQUFqQixNQUFNO2dCQU9ILEVBQUU7c0JBREwsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbIi8qKiAqKioqKioqKioqKioqKioqKioqKioqKipcbiAqIENvcHlyaWdodCBNb25rZXkgRXhjaGFuZ2UuIEFsbCBSaWdodHMgUmVzZXJ2ZWRcbiAqIFRoaXMgc3R5bGUgZ3VpZGUgd2FzIGRldmVsb3BlZCBieSBNb25rZXkgRXhjaGFuZ2UgVGVhbVxuICogTUlUIExpY2VuY2VcbiAqKioqKioqKioqKioqKioqKioqKioqKioqICovXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIGluamVjdCwgSW5wdXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSWRHZW5lcmF0b3IgfSBmcm9tICcuLi8uLi8uLi8uLi91dGlscyc7XG5pbXBvcnQgeyBNb25rZXlEaWN0aW9uYXJ5U2VydmljZSB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2VzL2RpY3Rpb25hcnkuc2VydmljZSc7XG5pbXBvcnQgKiBhcyBVdGlscyBmcm9tICcuLi91dGlscyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ21vbmtleS1kYXRlLXJhbmdlLXF1aWNrLWFjdGlvbnMnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlXSxcbiAgdGVtcGxhdGVVcmw6ICcuL3F1aWNrLWFjdGlvbnMuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybDogJy4vcXVpY2stYWN0aW9ucy5jb21wb25lbnQuc2NzcycsXG4gIGhvc3Q6IHtcbiAgICAnZGF0YS10ZXN0aWQnOiAncXVpY2stYWN0aW9ucycsXG4gICAgJ1thdHRyLmlkXSc6ICdpZCcsXG4gICAgJ1tpZF0nOiAnaWQnXG4gIH1cbn0pXG5leHBvcnQgY2xhc3MgTW9ua2V5RGF0ZVJhbmdlUXVpY2tBY3Rpb25zQ29tcG9uZW50IHtcbiAgQE91dHB1dCgpIG9uQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIHByb3RlY3RlZCBfdWlkID0gaW5qZWN0KElkR2VuZXJhdG9yKS5nZXRJZCgnbW9ua2V5LWRhdGUtcmFuZ2UtbW9udGgtcXVpY2stYWN0aW9ucy0nKTtcblxuICBwcm90ZWN0ZWQgX2lkITogc3RyaW5nO1xuXG4gIEBJbnB1dCgpXG4gIGdldCBpZCgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLl9pZDtcbiAgfVxuXG4gIHNldCBpZCh2YWx1ZTogc3RyaW5nKSB7XG4gICAgdGhpcy5faWQgPSB2YWx1ZSB8fCB0aGlzLl91aWQ7XG4gIH1cblxuICBzZWxlY3RlZEFjdGlvbiA9ICcnO1xuXG4gIHJlYWRvbmx5IGFjdGlvbnMgPSBVdGlscy5nZXRFbnVtS2V5cyhVdGlscy5RdWlja0FjdGlvbnNFbnVtKTtcblxuICByZWFkb25seSBpMThuRGljdGlvbmFyeSA9IGluamVjdChNb25rZXlEaWN0aW9uYXJ5U2VydmljZSkuZ2V0KCdEQVRFLVJBTkdFJyk7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLXNlbGYtYXNzaWduXG4gICAgdGhpcy5pZCA9IHRoaXMuaWQ7XG4gIH1cblxuICBvbkhhbmRsZUFjdGlvbih7IGtleSwgdmFsdWUgfTogeyBrZXk6IHN0cmluZzsgdmFsdWU6IG51bWJlciB9KSB7XG4gICAgdGhpcy5zZWxlY3RlZEFjdGlvbiA9IGtleTtcbiAgICB0aGlzLm9uQ2hhbmdlLm5leHQodmFsdWUpO1xuICB9XG59XG4iLCI8bmctY29udGFpbmVyICpuZ0lmPVwiaTE4bkRpY3Rpb25hcnkgfCBhc3luYyBhcyBpMThuXCI+XG4gIEBmb3IgKGl0ZW0gb2YgYWN0aW9uczsgdHJhY2sgaXRlbS5rZXkpIHtcbiAgICA8ZGl2XG4gICAgICBjbGFzcz1cIml0ZW1cIlxuICAgICAgW2NsYXNzLnNlbGVjdGVkXT1cIml0ZW0ua2V5ID09PSBzZWxlY3RlZEFjdGlvblwiXG4gICAgICAoY2xpY2spPVwib25IYW5kbGVBY3Rpb24oaXRlbSlcIlxuICAgICAgW2F0dHIudGFiaW5kZXhdPVwiJGluZGV4XCJcbiAgICA+XG4gICAgICB7eyBpMThuPy5bJ1FVSUNLLUFDVElPTlMnXT8uW2l0ZW0ua2V5XSB9fVxuICAgIDwvZGl2PlxuICB9XG48L25nLWNvbnRhaW5lcj5cbiJdfQ==
|