@idea-ionic/agenda 8.2.3 → 8.2.5
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/esm2022/src/agenda.component.mjs +3 -3
- package/esm2022/src/agenda.module.mjs +13 -12
- package/esm2022/src/calendar.component.mjs +8 -6
- package/esm2022/src/calendarCreation.component.mjs +6 -5
- package/esm2022/src/calendarItem.component.mjs +3 -3
- package/esm2022/src/calendars.service.mjs +6 -5
- package/esm2022/src/dateFormatter.provider.mjs +3 -3
- package/fesm2022/idea-ionic-agenda.mjs +31 -29
- package/fesm2022/idea-ionic-agenda.mjs.map +1 -1
- package/package.json +11 -10
- package/src/agenda.module.d.ts +3 -2
|
@@ -250,10 +250,10 @@ export class IDEAAgendaComponent {
|
|
|
250
250
|
fixedEnd.setMinutes(agendaBooking.start.getMinutes() + segmentSizeInMinutes);
|
|
251
251
|
return fixedEnd;
|
|
252
252
|
}
|
|
253
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.
|
|
254
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.1.1", type: IDEAAgendaComponent, selector: "idea-agenda", inputs: { events: "events", excludeDays: "excludeDays", dayStartHour: "dayStartHour", dayEndHour: "dayEndHour", hourSegments: "hourSegments", activeDayIsOpen: "activeDayIsOpen", view: "view", allowedViews: "allowedViews", onlyFuture: "onlyFuture", titleNotes: "titleNotes", newEventTemplate: "newEventTemplate", allowDragToCreate: "allowDragToCreate", parentContent: "parentContent" }, outputs: { selectEvent: "selectEvent", selectDay: "selectDay", selectSlot: "selectSlot", newEventByDrag: "newEventByDrag", changeEvent: "changeEvent", changeDate: "changeDate", beforeWeekOrDayViewRenderEmitter: "beforeWeekOrDayViewRenderEmitter", beforeMonthViewRenderEmitter: "beforeMonthViewRenderEmitter" }, ngImport: i0, template: "<div class=\"agenda\">\n <!-- TOOLBAR -->\n <ion-row class=\"ion-align-items-center\">\n <ion-col\n class=\"ion-align-self-center ion-text-right\"\n [size]=\"5\"\n [sizeSm]=\"3\"\n [pushSm]=\"5\"\n [sizeLg]=\"2\"\n [pushLg]=\"8\"\n >\n @if (allowedViews.length > 1) {\n <ion-item lines=\"none\" class=\"calendarViewSelector\">\n <ion-select\n interface=\"popover\"\n [value]=\"view\"\n (ionChange)=\"$event?.detail ? setView($event.detail.value) : null\"\n >\n @for (view of allowedViews; track view) {\n <ion-select-option [value]=\"view\">\n {{ 'IDEA_AGENDA.' + view | uppercase | translate }}\n </ion-select-option>\n }\n </ion-select>\n </ion-item>\n }\n </ion-col>\n <ion-col\n class=\"ion-align-self-center ion-text-right\"\n [size]=\"7\"\n [sizeSm]=\"4\"\n [pushSm]=\"5\"\n [sizeLg]=\"2\"\n [pushLg]=\"8\"\n >\n <ion-button\n fill=\"clear\"\n color=\"dark\"\n size=\"small\"\n mwlCalendarPreviousView\n [view]=\"view\"\n [(viewDate)]=\"viewDate\"\n (viewDateChange)=\"viewDateChanged($event)\"\n >\n <ion-icon name=\"chevron-back-outline\" slot=\"icon-only\" />\n </ion-button>\n <ion-button\n fill=\"clear\"\n color=\"dark\"\n size=\"small\"\n mwlCalendarToday\n [(viewDate)]=\"viewDate\"\n (viewDateChange)=\"viewDateChanged($event)\"\n >\n <ion-icon name=\"today-outline\" slot=\"icon-only\" />\n </ion-button>\n <ion-button\n fill=\"clear\"\n color=\"dark\"\n size=\"small\"\n mwlCalendarNextView\n [view]=\"view\"\n [(viewDate)]=\"viewDate\"\n (viewDateChange)=\"viewDateChanged($event)\"\n >\n <ion-icon name=\"chevron-forward-outline\" slot=\"icon-only\" />\n </ion-button>\n </ion-col>\n <ion-col class=\"ion-align-self-center titleCol\" [size]=\"12\" [sizeSm]=\"5\" [pullSm]=\"7\" [sizeLg]=\"8\" [pullLg]=\"4\">\n <h2>{{ viewDate | calendarDate: view + 'ViewTitle' : locale }}</h2>\n @if (titleNotes) {\n <p>{{ titleNotes }}</p>\n }\n </ion-col>\n </ion-row>\n <!-- TEMPLATES (touch only what's necessary and leave everything else as it is) -->\n <ng-template #eventTitleTemplate let-event=\"event\" let-view=\"view\">\n <span\n class=\"cal-event-title\"\n [class.noWrap]=\"event.allDay\"\n [attr.aria-hidden]=\"{} | calendarA11y: 'hideEventTitle'\"\n >\n {{ event.title | calendarEventTitle: view : event }}\n @if (event.target) {\n <p>{{ event.target }}</p>\n } @else {\n @if (event.location) {\n <p>{{ event.location }}</p>\n }\n }\n @if (!event.allDay) {\n <p>{{ getPreviewDescription(event.description) }}</p>\n }\n </span>\n </ng-template>\n <ng-template\n #eventTemplate\n let-weekEvent=\"weekEvent\"\n let-tooltipPlacement=\"tooltipPlacement\"\n let-eventClicked=\"eventClicked\"\n let-tooltipTemplate=\"tooltipTemplate\"\n let-tooltipAppendToBody=\"tooltipAppendToBody\"\n let-tooltipDisabled=\"tooltipDisabled\"\n let-tooltipDelay=\"tooltipDelay\"\n let-column=\"column\"\n let-daysInWeek=\"daysInWeek\"\n >\n <div\n class=\"cal-event\"\n [class.external]=\"weekEvent.event.external\"\n [class.allDay]=\"weekEvent.event.allDay\"\n [class.needsAction]=\"Attendance.NEEDS_ACTION === weekEvent.event.attendance\"\n [class.declined]=\"Attendance.DECLINED === weekEvent.event.attendance\"\n [class.tentative]=\"Attendance.TENTATIVE === weekEvent.event.attendance\"\n [style.border-left-color]=\"weekEvent.event.color?.primary\"\n [style.color]=\"getAlternateColor(weekEvent.event.color?.primary, darkMode ? 80 : -40)\"\n [style.background-color]=\"getAlternateColor(weekEvent.event.color?.primary, darkMode ? 60 : 80, 0.2)\"\n [mwlCalendarTooltip]=\"!tooltipDisabled && !isMobile() ? getTooltipContent(weekEvent.event) : ''\"\n [tooltipPlacement]=\"tooltipPlacement\"\n [tooltipEvent]=\"weekEvent.tempEvent || weekEvent.event\"\n [tooltipTemplate]=\"tooltipTemplate\"\n [tooltipAppendToBody]=\"tooltipAppendToBody\"\n [tooltipDelay]=\"tooltipDelay\"\n (mwlClick)=\"eventClicked.emit({ sourceEvent: $event })\"\n (mwlKeydownEnter)=\"eventClicked.emit({ sourceEvent: $event })\"\n tabindex=\"0\"\n role=\"application\"\n [attr.aria-label]=\"\n { event: weekEvent.tempEvent || weekEvent.event, locale: locale } | calendarA11y: 'eventDescription'\n \"\n >\n <mwl-calendar-event-actions [event]=\"weekEvent.tempEvent || weekEvent.event\" />\n &ngsp;\n <mwl-calendar-event-title\n [event]=\"weekEvent.tempEvent || weekEvent.event\"\n [customTemplate]=\"eventTitleTemplate\"\n [view]=\"daysInWeek === 1 ? 'day' : 'week'\"\n >\n </mwl-calendar-event-title>\n @if (!weekEvent.event.allDay) {\n <div class=\"eventGadgets\">\n @for (icon of weekEvent.event.icons; track icon) {\n <ion-icon [name]=\"icon.name\" [title]=\"icon.title\" />\n }\n @for (avatar of weekEvent.event.avatars; track avatar) {\n <idea-user-avatar size=\"mini\" [src]=\"avatar.url\" [name]=\"avatar.title\" />\n }\n </div>\n }\n </div>\n </ng-template>\n <ng-template\n #hourSegmentTemplate\n let-segment=\"segment\"\n let-locale=\"locale\"\n let-segmentHeight=\"segmentHeight\"\n let-isTimeLabel=\"isTimeLabel\"\n >\n <div\n #segmentElement\n class=\"cal-hour-segment\"\n [style.height.px]=\"segmentHeight\"\n [class.cal-hour-start]=\"segment.isStart\"\n [class.cal-after-hour-start]=\"!segment.isStart\"\n [ngClass]=\"segment.cssClass\"\n (mousedown)=\"allowDragToCreate ? startDragToCreate($event, segment.date, segmentElement) : null\"\n (touchstart)=\"allowDragToCreate ? startDragToCreate($event, segment.date, segmentElement) : null\"\n >\n @if (isTimeLabel) {\n <div class=\"cal-time\">\n {{ segment.date | calendarDate: 'weekViewHour' : locale }}\n </div>\n }\n </div>\n </ng-template>\n <!-- VIEWS -->\n <div>\n @switch (view) {\n @case (CalendarView.Month) {\n <mwl-calendar-month-view\n [viewDate]=\"viewDate\"\n [events]=\"events\"\n [refresh]=\"refresh\"\n [activeDayIsOpen]=\"activeDayIsOpen\"\n [locale]=\"locale\"\n [excludeDays]=\"excludeDays\"\n [weekStartsOn]=\"weekStartsOn\"\n [eventTitleTemplate]=\"eventTitleTemplate\"\n (eventClicked)=\"selectEvent.emit($event.event)\"\n (eventTimesChanged)=\"eventTimesChanged($event)\"\n (dayClicked)=\"changeDay($event.day)\"\n (beforeViewRender)=\"beforeMonthViewRender($event)\"\n >\n </mwl-calendar-month-view>\n }\n @case (CalendarView.Week) {\n <mwl-calendar-week-view\n [viewDate]=\"viewDate\"\n [events]=\"events\"\n [refresh]=\"refresh\"\n [locale]=\"locale\"\n [excludeDays]=\"excludeDays\"\n [weekStartsOn]=\"weekStartsOn\"\n [dayStartHour]=\"dayStartHour\"\n [dayEndHour]=\"dayEndHour\"\n [hourSegments]=\"hourSegments\"\n [eventTemplate]=\"eventTemplate\"\n [hourSegmentTemplate]=\"hourSegmentTemplate\"\n (eventClicked)=\"selectEvent.emit($event.event)\"\n (eventTimesChanged)=\"eventTimesChanged($event)\"\n (dayHeaderClicked)=\"dateIsValid($event.day.date) ? selectDay.emit($event.day.date) : null\"\n (hourSegmentClicked)=\"dateIsValid($event.date) ? selectSlot.emit($event.date) : null\"\n (beforeViewRender)=\"beforeWeekOrDayViewRender($event)\"\n >\n </mwl-calendar-week-view>\n }\n @case (CalendarView.Day) {\n <mwl-calendar-day-view\n [viewDate]=\"viewDate\"\n [events]=\"events\"\n [refresh]=\"refresh\"\n [locale]=\"locale\"\n [dayStartHour]=\"dayStartHour\"\n [dayEndHour]=\"dayEndHour\"\n [hourSegments]=\"hourSegments\"\n [eventTemplate]=\"eventTemplate\"\n [hourSegmentTemplate]=\"hourSegmentTemplate\"\n (eventClicked)=\"selectEvent.emit($event.event)\"\n (eventTimesChanged)=\"eventTimesChanged($event)\"\n (hourSegmentClicked)=\"dateIsValid($event.date) ? selectSlot.emit($event.date) : null\"\n (beforeViewRender)=\"beforeWeekOrDayViewRender($event)\"\n >\n </mwl-calendar-day-view>\n }\n }\n </div>\n</div>\n", styles: [".agenda{margin-top:15px}.agenda ion-col.titleCol{padding-left:8px}.agenda ion-col.titleCol h2,.agenda ion-col.titleCol p{margin:0}.agenda ion-col.titleCol h2{font-size:1.2em}.agenda ion-col.titleCol p{font-size:.8em;font-style:italic}.agenda .calendarViewSelector{background-color:transparent;--ion-background-color: transparent;--background: transparent}.agenda .calendarViewSelector ion-select{max-width:100%;width:100%;padding-left:0;font-weight:500}.agenda .eventGadgets{margin-top:4px;margin-left:5px;text-align:right}.agenda .eventGadgets idea-user-avatar{display:block;float:left;margin:2px 1px}.agenda .eventGadgets ion-icon{padding-right:2px;opacity:.7;font-size:1.15em}@media only screen and (max-width: 575px){.agenda ion-col.titleCol{padding:0 8px 12px;text-align:center}}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: i2.IonButton, selector: "ion-button", inputs: ["buttonType", "color", "disabled", "download", "expand", "fill", "form", "href", "mode", "rel", "routerAnimation", "routerDirection", "shape", "size", "strong", "target", "type"] }, { kind: "component", type: i2.IonCol, selector: "ion-col", inputs: ["offset", "offsetLg", "offsetMd", "offsetSm", "offsetXl", "offsetXs", "pull", "pullLg", "pullMd", "pullSm", "pullXl", "pullXs", "push", "pushLg", "pushMd", "pushSm", "pushXl", "pushXs", "size", "sizeLg", "sizeMd", "sizeSm", "sizeXl", "sizeXs"] }, { kind: "component", type: i2.IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "component", type: i2.IonItem, selector: "ion-item", inputs: ["button", "color", "detail", "detailIcon", "disabled", "download", "href", "lines", "mode", "rel", "routerAnimation", "routerDirection", "target", "type"] }, { kind: "component", type: i2.IonRow, selector: "ion-row" }, { kind: "component", type: i2.IonSelect, selector: "ion-select", inputs: ["cancelText", "color", "compareWith", "disabled", "expandedIcon", "fill", "interface", "interfaceOptions", "justify", "label", "labelPlacement", "mode", "multiple", "name", "okText", "placeholder", "selectedText", "shape", "toggleIcon", "value"] }, { kind: "component", type: i2.IonSelectOption, selector: "ion-select-option", inputs: ["disabled", "value"] }, { kind: "directive", type: i2.SelectValueAccessor, selector: "ion-select, ion-radio-group, ion-segment, ion-datetime" }, { kind: "component", type: i3.IDEAUserAvatarComponent, selector: "idea-user-avatar", inputs: ["src", "name", "size", "color"] }, { kind: "component", type: i4.ɵCalendarEventActionsComponent, selector: "mwl-calendar-event-actions", inputs: ["event", "customTemplate"] }, { kind: "component", type: i4.ɵCalendarEventTitleComponent, selector: "mwl-calendar-event-title", inputs: ["event", "customTemplate", "view"] }, { kind: "directive", type: i4.ɵCalendarTooltipDirective, selector: "[mwlCalendarTooltip]", inputs: ["mwlCalendarTooltip", "tooltipPlacement", "tooltipTemplate", "tooltipEvent", "tooltipAppendToBody", "tooltipDelay"] }, { kind: "directive", type: i4.ɵCalendarPreviousViewDirective, selector: "[mwlCalendarPreviousView]", inputs: ["view", "viewDate", "excludeDays", "daysInWeek"], outputs: ["viewDateChange"] }, { kind: "directive", type: i4.ɵCalendarNextViewDirective, selector: "[mwlCalendarNextView]", inputs: ["view", "viewDate", "excludeDays", "daysInWeek"], outputs: ["viewDateChange"] }, { kind: "directive", type: i4.ɵCalendarTodayDirective, selector: "[mwlCalendarToday]", inputs: ["viewDate"], outputs: ["viewDateChange"] }, { kind: "directive", type: i4.ɵClickDirective, selector: "[mwlClick]", inputs: ["clickListenerDisabled"], outputs: ["mwlClick"] }, { kind: "directive", type: i4.ɵKeydownEnterDirective, selector: "[mwlKeydownEnter]", outputs: ["mwlKeydownEnter"] }, { kind: "component", type: i4.CalendarMonthViewComponent, selector: "mwl-calendar-month-view", inputs: ["viewDate", "events", "excludeDays", "activeDayIsOpen", "activeDay", "refresh", "locale", "tooltipPlacement", "tooltipTemplate", "tooltipAppendToBody", "tooltipDelay", "weekStartsOn", "headerTemplate", "cellTemplate", "openDayEventsTemplate", "eventTitleTemplate", "eventActionsTemplate", "weekendDays"], outputs: ["beforeViewRender", "dayClicked", "eventClicked", "columnHeaderClicked", "eventTimesChanged"] }, { kind: "component", type: i4.CalendarWeekViewComponent, selector: "mwl-calendar-week-view", inputs: ["viewDate", "events", "excludeDays", "refresh", "locale", "tooltipPlacement", "tooltipTemplate", "tooltipAppendToBody", "tooltipDelay", "weekStartsOn", "headerTemplate", "eventTemplate", "eventTitleTemplate", "eventActionsTemplate", "precision", "weekendDays", "snapDraggedEvents", "hourSegments", "hourDuration", "hourSegmentHeight", "minimumEventHeight", "dayStartHour", "dayStartMinute", "dayEndHour", "dayEndMinute", "hourSegmentTemplate", "eventSnapSize", "allDayEventsLabelTemplate", "daysInWeek", "currentTimeMarkerTemplate", "validateEventTimesChanged", "resizeCursors"], outputs: ["dayHeaderClicked", "eventClicked", "eventTimesChanged", "beforeViewRender", "hourSegmentClicked"] }, { kind: "component", type: i4.CalendarDayViewComponent, selector: "mwl-calendar-day-view", inputs: ["viewDate", "events", "hourSegments", "hourSegmentHeight", "hourDuration", "minimumEventHeight", "dayStartHour", "dayStartMinute", "dayEndHour", "dayEndMinute", "refresh", "locale", "eventSnapSize", "tooltipPlacement", "tooltipTemplate", "tooltipAppendToBody", "tooltipDelay", "hourSegmentTemplate", "eventTemplate", "eventTitleTemplate", "eventActionsTemplate", "snapDraggedEvents", "allDayEventsLabelTemplate", "currentTimeMarkerTemplate", "validateEventTimesChanged", "resizeCursors"], outputs: ["eventClicked", "hourSegmentClicked", "eventTimesChanged", "beforeViewRender"] }, { kind: "pipe", type: i1.UpperCasePipe, name: "uppercase" }, { kind: "pipe", type: i3.IDEATranslatePipe, name: "translate" }, { kind: "pipe", type: i4.ɵCalendarDatePipe, name: "calendarDate" }, { kind: "pipe", type: i4.ɵCalendarEventTitlePipe, name: "calendarEventTitle" }, { kind: "pipe", type: i4.ɵCalendarA11yPipe, name: "calendarA11y" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
253
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: IDEAAgendaComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
254
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.9", type: IDEAAgendaComponent, selector: "idea-agenda", inputs: { events: "events", excludeDays: "excludeDays", dayStartHour: "dayStartHour", dayEndHour: "dayEndHour", hourSegments: "hourSegments", activeDayIsOpen: "activeDayIsOpen", view: "view", allowedViews: "allowedViews", onlyFuture: "onlyFuture", titleNotes: "titleNotes", newEventTemplate: "newEventTemplate", allowDragToCreate: "allowDragToCreate", parentContent: "parentContent" }, outputs: { selectEvent: "selectEvent", selectDay: "selectDay", selectSlot: "selectSlot", newEventByDrag: "newEventByDrag", changeEvent: "changeEvent", changeDate: "changeDate", beforeWeekOrDayViewRenderEmitter: "beforeWeekOrDayViewRenderEmitter", beforeMonthViewRenderEmitter: "beforeMonthViewRenderEmitter" }, ngImport: i0, template: "<div class=\"agenda\">\n <!-- TOOLBAR -->\n <ion-row class=\"ion-align-items-center\">\n <ion-col\n class=\"ion-align-self-center ion-text-right\"\n [size]=\"5\"\n [sizeSm]=\"3\"\n [pushSm]=\"5\"\n [sizeLg]=\"2\"\n [pushLg]=\"8\"\n >\n @if (allowedViews.length > 1) {\n <ion-item lines=\"none\" class=\"calendarViewSelector\">\n <ion-select\n interface=\"popover\"\n [value]=\"view\"\n (ionChange)=\"$event?.detail ? setView($event.detail.value) : null\"\n >\n @for (view of allowedViews; track view) {\n <ion-select-option [value]=\"view\">\n {{ 'IDEA_AGENDA.' + view | uppercase | translate }}\n </ion-select-option>\n }\n </ion-select>\n </ion-item>\n }\n </ion-col>\n <ion-col\n class=\"ion-align-self-center ion-text-right\"\n [size]=\"7\"\n [sizeSm]=\"4\"\n [pushSm]=\"5\"\n [sizeLg]=\"2\"\n [pushLg]=\"8\"\n >\n <ion-button\n fill=\"clear\"\n color=\"dark\"\n size=\"small\"\n mwlCalendarPreviousView\n [view]=\"view\"\n [(viewDate)]=\"viewDate\"\n (viewDateChange)=\"viewDateChanged($event)\"\n >\n <ion-icon name=\"chevron-back-outline\" slot=\"icon-only\" />\n </ion-button>\n <ion-button\n fill=\"clear\"\n color=\"dark\"\n size=\"small\"\n mwlCalendarToday\n [(viewDate)]=\"viewDate\"\n (viewDateChange)=\"viewDateChanged($event)\"\n >\n <ion-icon name=\"today-outline\" slot=\"icon-only\" />\n </ion-button>\n <ion-button\n fill=\"clear\"\n color=\"dark\"\n size=\"small\"\n mwlCalendarNextView\n [view]=\"view\"\n [(viewDate)]=\"viewDate\"\n (viewDateChange)=\"viewDateChanged($event)\"\n >\n <ion-icon name=\"chevron-forward-outline\" slot=\"icon-only\" />\n </ion-button>\n </ion-col>\n <ion-col class=\"ion-align-self-center titleCol\" [size]=\"12\" [sizeSm]=\"5\" [pullSm]=\"7\" [sizeLg]=\"8\" [pullLg]=\"4\">\n <h2>{{ viewDate | calendarDate: view + 'ViewTitle' : locale }}</h2>\n @if (titleNotes) {\n <p>{{ titleNotes }}</p>\n }\n </ion-col>\n </ion-row>\n <!-- TEMPLATES (touch only what's necessary and leave everything else as it is) -->\n <ng-template #eventTitleTemplate let-event=\"event\" let-view=\"view\">\n <span\n class=\"cal-event-title\"\n [class.noWrap]=\"event.allDay\"\n [attr.aria-hidden]=\"{} | calendarA11y: 'hideEventTitle'\"\n >\n {{ event.title | calendarEventTitle: view : event }}\n @if (event.target) {\n <p>{{ event.target }}</p>\n } @else {\n @if (event.location) {\n <p>{{ event.location }}</p>\n }\n }\n @if (!event.allDay) {\n <p>{{ getPreviewDescription(event.description) }}</p>\n }\n </span>\n </ng-template>\n <ng-template\n #eventTemplate\n let-weekEvent=\"weekEvent\"\n let-tooltipPlacement=\"tooltipPlacement\"\n let-eventClicked=\"eventClicked\"\n let-tooltipTemplate=\"tooltipTemplate\"\n let-tooltipAppendToBody=\"tooltipAppendToBody\"\n let-tooltipDisabled=\"tooltipDisabled\"\n let-tooltipDelay=\"tooltipDelay\"\n let-column=\"column\"\n let-daysInWeek=\"daysInWeek\"\n >\n <div\n class=\"cal-event\"\n [class.external]=\"weekEvent.event.external\"\n [class.allDay]=\"weekEvent.event.allDay\"\n [class.needsAction]=\"Attendance.NEEDS_ACTION === weekEvent.event.attendance\"\n [class.declined]=\"Attendance.DECLINED === weekEvent.event.attendance\"\n [class.tentative]=\"Attendance.TENTATIVE === weekEvent.event.attendance\"\n [style.border-left-color]=\"weekEvent.event.color?.primary\"\n [style.color]=\"getAlternateColor(weekEvent.event.color?.primary, darkMode ? 80 : -40)\"\n [style.background-color]=\"getAlternateColor(weekEvent.event.color?.primary, darkMode ? 60 : 80, 0.2)\"\n [mwlCalendarTooltip]=\"!tooltipDisabled && !isMobile() ? getTooltipContent(weekEvent.event) : ''\"\n [tooltipPlacement]=\"tooltipPlacement\"\n [tooltipEvent]=\"weekEvent.tempEvent || weekEvent.event\"\n [tooltipTemplate]=\"tooltipTemplate\"\n [tooltipAppendToBody]=\"tooltipAppendToBody\"\n [tooltipDelay]=\"tooltipDelay\"\n (mwlClick)=\"eventClicked.emit({ sourceEvent: $event })\"\n (mwlKeydownEnter)=\"eventClicked.emit({ sourceEvent: $event })\"\n tabindex=\"0\"\n role=\"application\"\n [attr.aria-label]=\"\n { event: weekEvent.tempEvent || weekEvent.event, locale: locale } | calendarA11y: 'eventDescription'\n \"\n >\n <mwl-calendar-event-actions [event]=\"weekEvent.tempEvent || weekEvent.event\" />\n &ngsp;\n <mwl-calendar-event-title\n [event]=\"weekEvent.tempEvent || weekEvent.event\"\n [customTemplate]=\"eventTitleTemplate\"\n [view]=\"daysInWeek === 1 ? 'day' : 'week'\"\n >\n </mwl-calendar-event-title>\n @if (!weekEvent.event.allDay) {\n <div class=\"eventGadgets\">\n @for (icon of weekEvent.event.icons; track icon) {\n <ion-icon [name]=\"icon.name\" [title]=\"icon.title\" />\n }\n @for (avatar of weekEvent.event.avatars; track avatar) {\n <idea-user-avatar size=\"mini\" [src]=\"avatar.url\" [name]=\"avatar.title\" />\n }\n </div>\n }\n </div>\n </ng-template>\n <ng-template\n #hourSegmentTemplate\n let-segment=\"segment\"\n let-locale=\"locale\"\n let-segmentHeight=\"segmentHeight\"\n let-isTimeLabel=\"isTimeLabel\"\n >\n <div\n #segmentElement\n class=\"cal-hour-segment\"\n [style.height.px]=\"segmentHeight\"\n [class.cal-hour-start]=\"segment.isStart\"\n [class.cal-after-hour-start]=\"!segment.isStart\"\n [ngClass]=\"segment.cssClass\"\n (mousedown)=\"allowDragToCreate ? startDragToCreate($event, segment.date, segmentElement) : null\"\n (touchstart)=\"allowDragToCreate ? startDragToCreate($event, segment.date, segmentElement) : null\"\n >\n @if (isTimeLabel) {\n <div class=\"cal-time\">\n {{ segment.date | calendarDate: 'weekViewHour' : locale }}\n </div>\n }\n </div>\n </ng-template>\n <!-- VIEWS -->\n <div>\n @switch (view) {\n @case (CalendarView.Month) {\n <mwl-calendar-month-view\n [viewDate]=\"viewDate\"\n [events]=\"events\"\n [refresh]=\"refresh\"\n [activeDayIsOpen]=\"activeDayIsOpen\"\n [locale]=\"locale\"\n [excludeDays]=\"excludeDays\"\n [weekStartsOn]=\"weekStartsOn\"\n [eventTitleTemplate]=\"eventTitleTemplate\"\n (eventClicked)=\"selectEvent.emit($event.event)\"\n (eventTimesChanged)=\"eventTimesChanged($event)\"\n (dayClicked)=\"changeDay($event.day)\"\n (beforeViewRender)=\"beforeMonthViewRender($event)\"\n >\n </mwl-calendar-month-view>\n }\n @case (CalendarView.Week) {\n <mwl-calendar-week-view\n [viewDate]=\"viewDate\"\n [events]=\"events\"\n [refresh]=\"refresh\"\n [locale]=\"locale\"\n [excludeDays]=\"excludeDays\"\n [weekStartsOn]=\"weekStartsOn\"\n [dayStartHour]=\"dayStartHour\"\n [dayEndHour]=\"dayEndHour\"\n [hourSegments]=\"hourSegments\"\n [eventTemplate]=\"eventTemplate\"\n [hourSegmentTemplate]=\"hourSegmentTemplate\"\n (eventClicked)=\"selectEvent.emit($event.event)\"\n (eventTimesChanged)=\"eventTimesChanged($event)\"\n (dayHeaderClicked)=\"dateIsValid($event.day.date) ? selectDay.emit($event.day.date) : null\"\n (hourSegmentClicked)=\"dateIsValid($event.date) ? selectSlot.emit($event.date) : null\"\n (beforeViewRender)=\"beforeWeekOrDayViewRender($event)\"\n >\n </mwl-calendar-week-view>\n }\n @case (CalendarView.Day) {\n <mwl-calendar-day-view\n [viewDate]=\"viewDate\"\n [events]=\"events\"\n [refresh]=\"refresh\"\n [locale]=\"locale\"\n [dayStartHour]=\"dayStartHour\"\n [dayEndHour]=\"dayEndHour\"\n [hourSegments]=\"hourSegments\"\n [eventTemplate]=\"eventTemplate\"\n [hourSegmentTemplate]=\"hourSegmentTemplate\"\n (eventClicked)=\"selectEvent.emit($event.event)\"\n (eventTimesChanged)=\"eventTimesChanged($event)\"\n (hourSegmentClicked)=\"dateIsValid($event.date) ? selectSlot.emit($event.date) : null\"\n (beforeViewRender)=\"beforeWeekOrDayViewRender($event)\"\n >\n </mwl-calendar-day-view>\n }\n }\n </div>\n</div>\n", styles: [".agenda{margin-top:15px}.agenda ion-col.titleCol{padding-left:8px}.agenda ion-col.titleCol h2,.agenda ion-col.titleCol p{margin:0}.agenda ion-col.titleCol h2{font-size:1.2em}.agenda ion-col.titleCol p{font-size:.8em;font-style:italic}.agenda .calendarViewSelector{background-color:transparent;--ion-background-color: transparent;--background: transparent}.agenda .calendarViewSelector ion-select{max-width:100%;width:100%;padding-left:0;font-weight:500}.agenda .eventGadgets{margin-top:4px;margin-left:5px;text-align:right}.agenda .eventGadgets idea-user-avatar{display:block;float:left;margin:2px 1px}.agenda .eventGadgets ion-icon{padding-right:2px;opacity:.7;font-size:1.15em}@media only screen and (max-width: 575px){.agenda ion-col.titleCol{padding:0 8px 12px;text-align:center}}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: i2.IonButton, selector: "ion-button", inputs: ["buttonType", "color", "disabled", "download", "expand", "fill", "form", "href", "mode", "rel", "routerAnimation", "routerDirection", "shape", "size", "strong", "target", "type"] }, { kind: "component", type: i2.IonCol, selector: "ion-col", inputs: ["offset", "offsetLg", "offsetMd", "offsetSm", "offsetXl", "offsetXs", "pull", "pullLg", "pullMd", "pullSm", "pullXl", "pullXs", "push", "pushLg", "pushMd", "pushSm", "pushXl", "pushXs", "size", "sizeLg", "sizeMd", "sizeSm", "sizeXl", "sizeXs"] }, { kind: "component", type: i2.IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "component", type: i2.IonItem, selector: "ion-item", inputs: ["button", "color", "detail", "detailIcon", "disabled", "download", "href", "lines", "mode", "rel", "routerAnimation", "routerDirection", "target", "type"] }, { kind: "component", type: i2.IonRow, selector: "ion-row" }, { kind: "component", type: i2.IonSelect, selector: "ion-select", inputs: ["cancelText", "color", "compareWith", "disabled", "expandedIcon", "fill", "interface", "interfaceOptions", "justify", "label", "labelPlacement", "mode", "multiple", "name", "okText", "placeholder", "selectedText", "shape", "toggleIcon", "value"] }, { kind: "component", type: i2.IonSelectOption, selector: "ion-select-option", inputs: ["disabled", "value"] }, { kind: "directive", type: i2.SelectValueAccessor, selector: "ion-select, ion-radio-group, ion-segment, ion-datetime" }, { kind: "component", type: i3.IDEAUserAvatarComponent, selector: "idea-user-avatar", inputs: ["src", "name", "size", "color"] }, { kind: "component", type: i4.ɵCalendarEventActionsComponent, selector: "mwl-calendar-event-actions", inputs: ["event", "customTemplate"] }, { kind: "component", type: i4.ɵCalendarEventTitleComponent, selector: "mwl-calendar-event-title", inputs: ["event", "customTemplate", "view"] }, { kind: "directive", type: i4.ɵCalendarTooltipDirective, selector: "[mwlCalendarTooltip]", inputs: ["mwlCalendarTooltip", "tooltipPlacement", "tooltipTemplate", "tooltipEvent", "tooltipAppendToBody", "tooltipDelay"] }, { kind: "directive", type: i4.ɵCalendarPreviousViewDirective, selector: "[mwlCalendarPreviousView]", inputs: ["view", "viewDate", "excludeDays", "daysInWeek"], outputs: ["viewDateChange"] }, { kind: "directive", type: i4.ɵCalendarNextViewDirective, selector: "[mwlCalendarNextView]", inputs: ["view", "viewDate", "excludeDays", "daysInWeek"], outputs: ["viewDateChange"] }, { kind: "directive", type: i4.ɵCalendarTodayDirective, selector: "[mwlCalendarToday]", inputs: ["viewDate"], outputs: ["viewDateChange"] }, { kind: "directive", type: i4.ɵClickDirective, selector: "[mwlClick]", inputs: ["clickListenerDisabled"], outputs: ["mwlClick"] }, { kind: "directive", type: i4.ɵKeydownEnterDirective, selector: "[mwlKeydownEnter]", outputs: ["mwlKeydownEnter"] }, { kind: "component", type: i4.CalendarMonthViewComponent, selector: "mwl-calendar-month-view", inputs: ["viewDate", "events", "excludeDays", "activeDayIsOpen", "activeDay", "refresh", "locale", "tooltipPlacement", "tooltipTemplate", "tooltipAppendToBody", "tooltipDelay", "weekStartsOn", "headerTemplate", "cellTemplate", "openDayEventsTemplate", "eventTitleTemplate", "eventActionsTemplate", "weekendDays"], outputs: ["beforeViewRender", "dayClicked", "eventClicked", "columnHeaderClicked", "eventTimesChanged"] }, { kind: "component", type: i4.CalendarWeekViewComponent, selector: "mwl-calendar-week-view", inputs: ["viewDate", "events", "excludeDays", "refresh", "locale", "tooltipPlacement", "tooltipTemplate", "tooltipAppendToBody", "tooltipDelay", "weekStartsOn", "headerTemplate", "eventTemplate", "eventTitleTemplate", "eventActionsTemplate", "precision", "weekendDays", "snapDraggedEvents", "hourSegments", "hourDuration", "hourSegmentHeight", "minimumEventHeight", "dayStartHour", "dayStartMinute", "dayEndHour", "dayEndMinute", "hourSegmentTemplate", "eventSnapSize", "allDayEventsLabelTemplate", "daysInWeek", "currentTimeMarkerTemplate", "validateEventTimesChanged", "resizeCursors"], outputs: ["dayHeaderClicked", "eventClicked", "eventTimesChanged", "beforeViewRender", "hourSegmentClicked"] }, { kind: "component", type: i4.CalendarDayViewComponent, selector: "mwl-calendar-day-view", inputs: ["viewDate", "events", "hourSegments", "hourSegmentHeight", "hourDuration", "minimumEventHeight", "dayStartHour", "dayStartMinute", "dayEndHour", "dayEndMinute", "refresh", "locale", "eventSnapSize", "tooltipPlacement", "tooltipTemplate", "tooltipAppendToBody", "tooltipDelay", "hourSegmentTemplate", "eventTemplate", "eventTitleTemplate", "eventActionsTemplate", "snapDraggedEvents", "allDayEventsLabelTemplate", "currentTimeMarkerTemplate", "validateEventTimesChanged", "resizeCursors"], outputs: ["eventClicked", "hourSegmentClicked", "eventTimesChanged", "beforeViewRender"] }, { kind: "pipe", type: i1.UpperCasePipe, name: "uppercase" }, { kind: "pipe", type: i3.IDEATranslatePipe, name: "translate" }, { kind: "pipe", type: i4.ɵCalendarDatePipe, name: "calendarDate" }, { kind: "pipe", type: i4.ɵCalendarEventTitlePipe, name: "calendarEventTitle" }, { kind: "pipe", type: i4.ɵCalendarA11yPipe, name: "calendarA11y" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
255
255
|
}
|
|
256
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.
|
|
256
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: IDEAAgendaComponent, decorators: [{
|
|
257
257
|
type: Component,
|
|
258
258
|
args: [{ selector: 'idea-agenda', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"agenda\">\n <!-- TOOLBAR -->\n <ion-row class=\"ion-align-items-center\">\n <ion-col\n class=\"ion-align-self-center ion-text-right\"\n [size]=\"5\"\n [sizeSm]=\"3\"\n [pushSm]=\"5\"\n [sizeLg]=\"2\"\n [pushLg]=\"8\"\n >\n @if (allowedViews.length > 1) {\n <ion-item lines=\"none\" class=\"calendarViewSelector\">\n <ion-select\n interface=\"popover\"\n [value]=\"view\"\n (ionChange)=\"$event?.detail ? setView($event.detail.value) : null\"\n >\n @for (view of allowedViews; track view) {\n <ion-select-option [value]=\"view\">\n {{ 'IDEA_AGENDA.' + view | uppercase | translate }}\n </ion-select-option>\n }\n </ion-select>\n </ion-item>\n }\n </ion-col>\n <ion-col\n class=\"ion-align-self-center ion-text-right\"\n [size]=\"7\"\n [sizeSm]=\"4\"\n [pushSm]=\"5\"\n [sizeLg]=\"2\"\n [pushLg]=\"8\"\n >\n <ion-button\n fill=\"clear\"\n color=\"dark\"\n size=\"small\"\n mwlCalendarPreviousView\n [view]=\"view\"\n [(viewDate)]=\"viewDate\"\n (viewDateChange)=\"viewDateChanged($event)\"\n >\n <ion-icon name=\"chevron-back-outline\" slot=\"icon-only\" />\n </ion-button>\n <ion-button\n fill=\"clear\"\n color=\"dark\"\n size=\"small\"\n mwlCalendarToday\n [(viewDate)]=\"viewDate\"\n (viewDateChange)=\"viewDateChanged($event)\"\n >\n <ion-icon name=\"today-outline\" slot=\"icon-only\" />\n </ion-button>\n <ion-button\n fill=\"clear\"\n color=\"dark\"\n size=\"small\"\n mwlCalendarNextView\n [view]=\"view\"\n [(viewDate)]=\"viewDate\"\n (viewDateChange)=\"viewDateChanged($event)\"\n >\n <ion-icon name=\"chevron-forward-outline\" slot=\"icon-only\" />\n </ion-button>\n </ion-col>\n <ion-col class=\"ion-align-self-center titleCol\" [size]=\"12\" [sizeSm]=\"5\" [pullSm]=\"7\" [sizeLg]=\"8\" [pullLg]=\"4\">\n <h2>{{ viewDate | calendarDate: view + 'ViewTitle' : locale }}</h2>\n @if (titleNotes) {\n <p>{{ titleNotes }}</p>\n }\n </ion-col>\n </ion-row>\n <!-- TEMPLATES (touch only what's necessary and leave everything else as it is) -->\n <ng-template #eventTitleTemplate let-event=\"event\" let-view=\"view\">\n <span\n class=\"cal-event-title\"\n [class.noWrap]=\"event.allDay\"\n [attr.aria-hidden]=\"{} | calendarA11y: 'hideEventTitle'\"\n >\n {{ event.title | calendarEventTitle: view : event }}\n @if (event.target) {\n <p>{{ event.target }}</p>\n } @else {\n @if (event.location) {\n <p>{{ event.location }}</p>\n }\n }\n @if (!event.allDay) {\n <p>{{ getPreviewDescription(event.description) }}</p>\n }\n </span>\n </ng-template>\n <ng-template\n #eventTemplate\n let-weekEvent=\"weekEvent\"\n let-tooltipPlacement=\"tooltipPlacement\"\n let-eventClicked=\"eventClicked\"\n let-tooltipTemplate=\"tooltipTemplate\"\n let-tooltipAppendToBody=\"tooltipAppendToBody\"\n let-tooltipDisabled=\"tooltipDisabled\"\n let-tooltipDelay=\"tooltipDelay\"\n let-column=\"column\"\n let-daysInWeek=\"daysInWeek\"\n >\n <div\n class=\"cal-event\"\n [class.external]=\"weekEvent.event.external\"\n [class.allDay]=\"weekEvent.event.allDay\"\n [class.needsAction]=\"Attendance.NEEDS_ACTION === weekEvent.event.attendance\"\n [class.declined]=\"Attendance.DECLINED === weekEvent.event.attendance\"\n [class.tentative]=\"Attendance.TENTATIVE === weekEvent.event.attendance\"\n [style.border-left-color]=\"weekEvent.event.color?.primary\"\n [style.color]=\"getAlternateColor(weekEvent.event.color?.primary, darkMode ? 80 : -40)\"\n [style.background-color]=\"getAlternateColor(weekEvent.event.color?.primary, darkMode ? 60 : 80, 0.2)\"\n [mwlCalendarTooltip]=\"!tooltipDisabled && !isMobile() ? getTooltipContent(weekEvent.event) : ''\"\n [tooltipPlacement]=\"tooltipPlacement\"\n [tooltipEvent]=\"weekEvent.tempEvent || weekEvent.event\"\n [tooltipTemplate]=\"tooltipTemplate\"\n [tooltipAppendToBody]=\"tooltipAppendToBody\"\n [tooltipDelay]=\"tooltipDelay\"\n (mwlClick)=\"eventClicked.emit({ sourceEvent: $event })\"\n (mwlKeydownEnter)=\"eventClicked.emit({ sourceEvent: $event })\"\n tabindex=\"0\"\n role=\"application\"\n [attr.aria-label]=\"\n { event: weekEvent.tempEvent || weekEvent.event, locale: locale } | calendarA11y: 'eventDescription'\n \"\n >\n <mwl-calendar-event-actions [event]=\"weekEvent.tempEvent || weekEvent.event\" />\n &ngsp;\n <mwl-calendar-event-title\n [event]=\"weekEvent.tempEvent || weekEvent.event\"\n [customTemplate]=\"eventTitleTemplate\"\n [view]=\"daysInWeek === 1 ? 'day' : 'week'\"\n >\n </mwl-calendar-event-title>\n @if (!weekEvent.event.allDay) {\n <div class=\"eventGadgets\">\n @for (icon of weekEvent.event.icons; track icon) {\n <ion-icon [name]=\"icon.name\" [title]=\"icon.title\" />\n }\n @for (avatar of weekEvent.event.avatars; track avatar) {\n <idea-user-avatar size=\"mini\" [src]=\"avatar.url\" [name]=\"avatar.title\" />\n }\n </div>\n }\n </div>\n </ng-template>\n <ng-template\n #hourSegmentTemplate\n let-segment=\"segment\"\n let-locale=\"locale\"\n let-segmentHeight=\"segmentHeight\"\n let-isTimeLabel=\"isTimeLabel\"\n >\n <div\n #segmentElement\n class=\"cal-hour-segment\"\n [style.height.px]=\"segmentHeight\"\n [class.cal-hour-start]=\"segment.isStart\"\n [class.cal-after-hour-start]=\"!segment.isStart\"\n [ngClass]=\"segment.cssClass\"\n (mousedown)=\"allowDragToCreate ? startDragToCreate($event, segment.date, segmentElement) : null\"\n (touchstart)=\"allowDragToCreate ? startDragToCreate($event, segment.date, segmentElement) : null\"\n >\n @if (isTimeLabel) {\n <div class=\"cal-time\">\n {{ segment.date | calendarDate: 'weekViewHour' : locale }}\n </div>\n }\n </div>\n </ng-template>\n <!-- VIEWS -->\n <div>\n @switch (view) {\n @case (CalendarView.Month) {\n <mwl-calendar-month-view\n [viewDate]=\"viewDate\"\n [events]=\"events\"\n [refresh]=\"refresh\"\n [activeDayIsOpen]=\"activeDayIsOpen\"\n [locale]=\"locale\"\n [excludeDays]=\"excludeDays\"\n [weekStartsOn]=\"weekStartsOn\"\n [eventTitleTemplate]=\"eventTitleTemplate\"\n (eventClicked)=\"selectEvent.emit($event.event)\"\n (eventTimesChanged)=\"eventTimesChanged($event)\"\n (dayClicked)=\"changeDay($event.day)\"\n (beforeViewRender)=\"beforeMonthViewRender($event)\"\n >\n </mwl-calendar-month-view>\n }\n @case (CalendarView.Week) {\n <mwl-calendar-week-view\n [viewDate]=\"viewDate\"\n [events]=\"events\"\n [refresh]=\"refresh\"\n [locale]=\"locale\"\n [excludeDays]=\"excludeDays\"\n [weekStartsOn]=\"weekStartsOn\"\n [dayStartHour]=\"dayStartHour\"\n [dayEndHour]=\"dayEndHour\"\n [hourSegments]=\"hourSegments\"\n [eventTemplate]=\"eventTemplate\"\n [hourSegmentTemplate]=\"hourSegmentTemplate\"\n (eventClicked)=\"selectEvent.emit($event.event)\"\n (eventTimesChanged)=\"eventTimesChanged($event)\"\n (dayHeaderClicked)=\"dateIsValid($event.day.date) ? selectDay.emit($event.day.date) : null\"\n (hourSegmentClicked)=\"dateIsValid($event.date) ? selectSlot.emit($event.date) : null\"\n (beforeViewRender)=\"beforeWeekOrDayViewRender($event)\"\n >\n </mwl-calendar-week-view>\n }\n @case (CalendarView.Day) {\n <mwl-calendar-day-view\n [viewDate]=\"viewDate\"\n [events]=\"events\"\n [refresh]=\"refresh\"\n [locale]=\"locale\"\n [dayStartHour]=\"dayStartHour\"\n [dayEndHour]=\"dayEndHour\"\n [hourSegments]=\"hourSegments\"\n [eventTemplate]=\"eventTemplate\"\n [hourSegmentTemplate]=\"hourSegmentTemplate\"\n (eventClicked)=\"selectEvent.emit($event.event)\"\n (eventTimesChanged)=\"eventTimesChanged($event)\"\n (hourSegmentClicked)=\"dateIsValid($event.date) ? selectSlot.emit($event.date) : null\"\n (beforeViewRender)=\"beforeWeekOrDayViewRender($event)\"\n >\n </mwl-calendar-day-view>\n }\n }\n </div>\n</div>\n", styles: [".agenda{margin-top:15px}.agenda ion-col.titleCol{padding-left:8px}.agenda ion-col.titleCol h2,.agenda ion-col.titleCol p{margin:0}.agenda ion-col.titleCol h2{font-size:1.2em}.agenda ion-col.titleCol p{font-size:.8em;font-style:italic}.agenda .calendarViewSelector{background-color:transparent;--ion-background-color: transparent;--background: transparent}.agenda .calendarViewSelector ion-select{max-width:100%;width:100%;padding-left:0;font-weight:500}.agenda .eventGadgets{margin-top:4px;margin-left:5px;text-align:right}.agenda .eventGadgets idea-user-avatar{display:block;float:left;margin:2px 1px}.agenda .eventGadgets ion-icon{padding-right:2px;opacity:.7;font-size:1.15em}@media only screen and (max-width: 575px){.agenda ion-col.titleCol{padding:0 8px 12px;text-align:center}}\n"] }]
|
|
259
259
|
}], propDecorators: { events: [{
|
|
@@ -5,7 +5,8 @@ import { IonicModule } from '@ionic/angular';
|
|
|
5
5
|
import { CalendarDateFormatter, CalendarModule, DateAdapter } from 'angular-calendar';
|
|
6
6
|
import { adapterFactory } from 'angular-calendar/date-adapters/date-fns';
|
|
7
7
|
import { CustomDateFormatter } from './dateFormatter.provider';
|
|
8
|
-
import {
|
|
8
|
+
import { IDEACheckerComponent, IDEATranslationsModule, IDEAUserAvatarComponent } from '@idea-ionic/common';
|
|
9
|
+
import { IDEAColorPickerModule } from '@idea-ionic/uncommon';
|
|
9
10
|
import { IDEAAgendaComponent } from './agenda.component';
|
|
10
11
|
import { IDEACalendarComponent } from './calendar.component';
|
|
11
12
|
import { IDEACalendarItemComponent } from './calendarItem.component';
|
|
@@ -14,24 +15,24 @@ import { IDEACalendarsService } from './calendars.service';
|
|
|
14
15
|
import * as i0 from "@angular/core";
|
|
15
16
|
import * as i1 from "angular-calendar";
|
|
16
17
|
export class IDEAAgendaModule {
|
|
17
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.
|
|
18
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.
|
|
18
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: IDEAAgendaModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
19
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.9", ngImport: i0, type: IDEAAgendaModule, declarations: [IDEAAgendaComponent, IDEACalendarComponent, IDEACalendarItemComponent, IDEACalendarCreationComponent], imports: [CommonModule,
|
|
19
20
|
FormsModule,
|
|
20
21
|
IonicModule,
|
|
21
22
|
IDEATranslationsModule,
|
|
22
23
|
IDEAColorPickerModule,
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.
|
|
24
|
+
IDEACheckerComponent,
|
|
25
|
+
IDEAUserAvatarComponent, i1.CalendarModule], exports: [IDEAAgendaComponent, IDEACalendarComponent, IDEACalendarItemComponent, IDEACalendarCreationComponent] }); }
|
|
26
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: IDEAAgendaModule, providers: [{ provide: CalendarDateFormatter, useClass: CustomDateFormatter }, IDEACalendarsService], imports: [CommonModule,
|
|
26
27
|
FormsModule,
|
|
27
28
|
IonicModule,
|
|
28
29
|
IDEATranslationsModule,
|
|
29
30
|
IDEAColorPickerModule,
|
|
30
|
-
|
|
31
|
-
|
|
31
|
+
IDEACheckerComponent,
|
|
32
|
+
IDEAUserAvatarComponent,
|
|
32
33
|
CalendarModule.forRoot({ provide: DateAdapter, useFactory: adapterFactory })] }); }
|
|
33
34
|
}
|
|
34
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.
|
|
35
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: IDEAAgendaModule, decorators: [{
|
|
35
36
|
type: NgModule,
|
|
36
37
|
args: [{
|
|
37
38
|
imports: [
|
|
@@ -40,8 +41,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.1", ngImpor
|
|
|
40
41
|
IonicModule,
|
|
41
42
|
IDEATranslationsModule,
|
|
42
43
|
IDEAColorPickerModule,
|
|
43
|
-
|
|
44
|
-
|
|
44
|
+
IDEACheckerComponent,
|
|
45
|
+
IDEAUserAvatarComponent,
|
|
45
46
|
CalendarModule.forRoot({ provide: DateAdapter, useFactory: adapterFactory })
|
|
46
47
|
],
|
|
47
48
|
declarations: [IDEAAgendaComponent, IDEACalendarComponent, IDEACalendarItemComponent, IDEACalendarCreationComponent],
|
|
@@ -49,4 +50,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.1", ngImpor
|
|
|
49
50
|
providers: [{ provide: CalendarDateFormatter, useClass: CustomDateFormatter }, IDEACalendarsService]
|
|
50
51
|
}]
|
|
51
52
|
}] });
|
|
52
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
53
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWdlbmRhLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL21vZHVsZXMvYWdlbmRhL3NyYy9hZ2VuZGEubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFN0MsT0FBTyxFQUFFLHFCQUFxQixFQUFFLGNBQWMsRUFBRSxXQUFXLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUN0RixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFDekUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFFL0QsT0FBTyxFQUFFLG9CQUFvQixFQUFFLHNCQUFzQixFQUFFLHVCQUF1QixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDM0csT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFFN0QsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDekQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDN0QsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDckUsT0FBTyxFQUFFLDZCQUE2QixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFFN0UsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0scUJBQXFCLENBQUM7OztBQWlCM0QsTUFBTSxPQUFPLGdCQUFnQjs4R0FBaEIsZ0JBQWdCOytHQUFoQixnQkFBZ0IsaUJBSlosbUJBQW1CLEVBQUUscUJBQXFCLEVBQUUseUJBQXlCLEVBQUUsNkJBQTZCLGFBVGpILFlBQVk7WUFDWixXQUFXO1lBQ1gsV0FBVztZQUNYLHNCQUFzQjtZQUN0QixxQkFBcUI7WUFDckIsb0JBQW9CO1lBQ3BCLHVCQUF1QixnQ0FJZixtQkFBbUIsRUFBRSxxQkFBcUIsRUFBRSx5QkFBeUIsRUFBRSw2QkFBNkI7K0dBR25HLGdCQUFnQixhQUZoQixDQUFDLEVBQUUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLFFBQVEsRUFBRSxtQkFBbUIsRUFBRSxFQUFFLG9CQUFvQixDQUFDLFlBWGxHLFlBQVk7WUFDWixXQUFXO1lBQ1gsV0FBVztZQUNYLHNCQUFzQjtZQUN0QixxQkFBcUI7WUFDckIsb0JBQW9CO1lBQ3BCLHVCQUF1QjtZQUN2QixjQUFjLENBQUMsT0FBTyxDQUFDLEVBQUUsT0FBTyxFQUFFLFdBQVcsRUFBRSxVQUFVLEVBQUUsY0FBYyxFQUFFLENBQUM7OzJGQU1uRSxnQkFBZ0I7a0JBZjVCLFFBQVE7bUJBQUM7b0JBQ1IsT0FBTyxFQUFFO3dCQUNQLFlBQVk7d0JBQ1osV0FBVzt3QkFDWCxXQUFXO3dCQUNYLHNCQUFzQjt3QkFDdEIscUJBQXFCO3dCQUNyQixvQkFBb0I7d0JBQ3BCLHVCQUF1Qjt3QkFDdkIsY0FBYyxDQUFDLE9BQU8sQ0FBQyxFQUFFLE9BQU8sRUFBRSxXQUFXLEVBQUUsVUFBVSxFQUFFLGNBQWMsRUFBRSxDQUFDO3FCQUM3RTtvQkFDRCxZQUFZLEVBQUUsQ0FBQyxtQkFBbUIsRUFBRSxxQkFBcUIsRUFBRSx5QkFBeUIsRUFBRSw2QkFBNkIsQ0FBQztvQkFDcEgsT0FBTyxFQUFFLENBQUMsbUJBQW1CLEVBQUUscUJBQXFCLEVBQUUseUJBQXlCLEVBQUUsNkJBQTZCLENBQUM7b0JBQy9HLFNBQVMsRUFBRSxDQUFDLEVBQUUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLFFBQVEsRUFBRSxtQkFBbUIsRUFBRSxFQUFFLG9CQUFvQixDQUFDO2lCQUNyRyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBJb25pY01vZHVsZSB9IGZyb20gJ0Bpb25pYy9hbmd1bGFyJztcblxuaW1wb3J0IHsgQ2FsZW5kYXJEYXRlRm9ybWF0dGVyLCBDYWxlbmRhck1vZHVsZSwgRGF0ZUFkYXB0ZXIgfSBmcm9tICdhbmd1bGFyLWNhbGVuZGFyJztcbmltcG9ydCB7IGFkYXB0ZXJGYWN0b3J5IH0gZnJvbSAnYW5ndWxhci1jYWxlbmRhci9kYXRlLWFkYXB0ZXJzL2RhdGUtZm5zJztcbmltcG9ydCB7IEN1c3RvbURhdGVGb3JtYXR0ZXIgfSBmcm9tICcuL2RhdGVGb3JtYXR0ZXIucHJvdmlkZXInO1xuXG5pbXBvcnQgeyBJREVBQ2hlY2tlckNvbXBvbmVudCwgSURFQVRyYW5zbGF0aW9uc01vZHVsZSwgSURFQVVzZXJBdmF0YXJDb21wb25lbnQgfSBmcm9tICdAaWRlYS1pb25pYy9jb21tb24nO1xuaW1wb3J0IHsgSURFQUNvbG9yUGlja2VyTW9kdWxlIH0gZnJvbSAnQGlkZWEtaW9uaWMvdW5jb21tb24nO1xuXG5pbXBvcnQgeyBJREVBQWdlbmRhQ29tcG9uZW50IH0gZnJvbSAnLi9hZ2VuZGEuY29tcG9uZW50JztcbmltcG9ydCB7IElERUFDYWxlbmRhckNvbXBvbmVudCB9IGZyb20gJy4vY2FsZW5kYXIuY29tcG9uZW50JztcbmltcG9ydCB7IElERUFDYWxlbmRhckl0ZW1Db21wb25lbnQgfSBmcm9tICcuL2NhbGVuZGFySXRlbS5jb21wb25lbnQnO1xuaW1wb3J0IHsgSURFQUNhbGVuZGFyQ3JlYXRpb25Db21wb25lbnQgfSBmcm9tICcuL2NhbGVuZGFyQ3JlYXRpb24uY29tcG9uZW50JztcblxuaW1wb3J0IHsgSURFQUNhbGVuZGFyc1NlcnZpY2UgfSBmcm9tICcuL2NhbGVuZGFycy5zZXJ2aWNlJztcblxuQE5nTW9kdWxlKHtcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBGb3Jtc01vZHVsZSxcbiAgICBJb25pY01vZHVsZSxcbiAgICBJREVBVHJhbnNsYXRpb25zTW9kdWxlLFxuICAgIElERUFDb2xvclBpY2tlck1vZHVsZSxcbiAgICBJREVBQ2hlY2tlckNvbXBvbmVudCxcbiAgICBJREVBVXNlckF2YXRhckNvbXBvbmVudCxcbiAgICBDYWxlbmRhck1vZHVsZS5mb3JSb290KHsgcHJvdmlkZTogRGF0ZUFkYXB0ZXIsIHVzZUZhY3Rvcnk6IGFkYXB0ZXJGYWN0b3J5IH0pXG4gIF0sXG4gIGRlY2xhcmF0aW9uczogW0lERUFBZ2VuZGFDb21wb25lbnQsIElERUFDYWxlbmRhckNvbXBvbmVudCwgSURFQUNhbGVuZGFySXRlbUNvbXBvbmVudCwgSURFQUNhbGVuZGFyQ3JlYXRpb25Db21wb25lbnRdLFxuICBleHBvcnRzOiBbSURFQUFnZW5kYUNvbXBvbmVudCwgSURFQUNhbGVuZGFyQ29tcG9uZW50LCBJREVBQ2FsZW5kYXJJdGVtQ29tcG9uZW50LCBJREVBQ2FsZW5kYXJDcmVhdGlvbkNvbXBvbmVudF0sXG4gIHByb3ZpZGVyczogW3sgcHJvdmlkZTogQ2FsZW5kYXJEYXRlRm9ybWF0dGVyLCB1c2VDbGFzczogQ3VzdG9tRGF0ZUZvcm1hdHRlciB9LCBJREVBQ2FsZW5kYXJzU2VydmljZV1cbn0pXG5leHBvcnQgY2xhc3MgSURFQUFnZW5kYU1vZHVsZSB7fVxuIl19
|
|
@@ -1,12 +1,14 @@
|
|
|
1
1
|
import { Component, Input, inject } from '@angular/core';
|
|
2
2
|
import { ModalController, AlertController } from '@ionic/angular';
|
|
3
3
|
import { Calendar, Check } from 'idea-toolbox';
|
|
4
|
-
import { IDEALoadingService,
|
|
4
|
+
import { IDEALoadingService, IDEAMessageService, IDEATranslationsService } from '@idea-ionic/common';
|
|
5
|
+
import { IDEAAWSAPIService, IDEATinCanService } from '@idea-ionic/uncommon';
|
|
5
6
|
import { IDEACalendarsService } from './calendars.service';
|
|
6
7
|
import * as i0 from "@angular/core";
|
|
7
8
|
import * as i1 from "@angular/forms";
|
|
8
9
|
import * as i2 from "@ionic/angular";
|
|
9
|
-
import * as i3 from "@idea-ionic/
|
|
10
|
+
import * as i3 from "@idea-ionic/uncommon";
|
|
11
|
+
import * as i4 from "@idea-ionic/common";
|
|
10
12
|
export class IDEACalendarComponent {
|
|
11
13
|
constructor() {
|
|
12
14
|
this._calendars = inject(IDEACalendarsService);
|
|
@@ -92,10 +94,10 @@ export class IDEACalendarComponent {
|
|
|
92
94
|
close() {
|
|
93
95
|
this._modal.dismiss();
|
|
94
96
|
}
|
|
95
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.
|
|
96
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.
|
|
97
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: IDEACalendarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
98
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.9", type: IDEACalendarComponent, selector: "idea-calendar", inputs: { calendar: "calendar", advancedPermissions: "advancedPermissions", hideColor: "hideColor" }, ngImport: i0, template: "<ion-header>\n <ion-toolbar color=\"ideaToolbar\">\n <ion-buttons slot=\"start\">\n <ion-button [title]=\"'COMMON.CLOSE' | translate\" (click)=\"close()\">\n <ion-icon name=\"close-circle\" slot=\"icon-only\" />\n </ion-button>\n </ion-buttons>\n <ion-title>{{ 'IDEA_AGENDA.CALENDARS.EDIT_CALENDAR' | translate }}</ion-title>\n <ion-buttons slot=\"end\">\n <ion-button [title]=\"'COMMON.SAVE' | translate\" (click)=\"save()\">\n <ion-icon name=\"checkmark-circle\" slot=\"icon-only\" />\n </ion-button>\n </ion-buttons>\n </ion-toolbar>\n</ion-header>\n<ion-content>\n @if (calendarWC) {\n <div class=\"maxWidthContainer\">\n <ion-list class=\"aList\">\n <ion-item\n lines=\"inset\"\n [class.fieldHasError]=\"hasFieldAnError('name')\"\n [title]=\"'IDEA_AGENDA.CALENDARS.NAME_HINT' | translate\"\n >\n <ion-input\n labelPlacement=\"stacked\"\n [label]=\"'IDEA_AGENDA.CALENDARS.NAME' | translate\"\n [placeholder]=\"'IDEA_AGENDA.CALENDARS.NAME_HINT' | translate\"\n [(ngModel)]=\"calendarWC.name\"\n />\n </ion-item>\n <ion-item\n lines=\"inset\"\n [class.fieldHasError]=\"hasFieldAnError('description')\"\n [title]=\"'IDEA_AGENDA.CALENDARS.DESCRIPTION_HINT' | translate\"\n >\n <ion-input\n labelPlacement=\"stacked\"\n [label]=\"'IDEA_AGENDA.CALENDARS.DESCRIPTION' | translate\"\n [placeholder]=\"'IDEA_AGENDA.CALENDARS.DESCRIPTION_HINT' | translate\"\n [(ngModel)]=\"calendarWC.description\"\n />\n </ion-item>\n @if (!hideColor) {\n <idea-color-picker\n [lines]=\"'inset'\"\n [current]=\"calendarWC.color\"\n [label]=\"'IDEA_AGENDA.CALENDARS.COLOR' | translate\"\n [class.fieldHasError]=\"hasFieldAnError('color')\"\n (select)=\"$event ? (calendarWC.color = $event) : null\"\n />\n }\n @if (membershipsChecks && calendarWC.isShared() && advancedPermissions) {\n <idea-checker\n [data]=\"membershipsChecks\"\n [label]=\"'IDEA_AGENDA.CALENDARS.USERS_ALLOWED_TO_MANAGE_APPOINTMENTS' | translate\"\n [searchPlaceholder]=\"'IDEA_AGENDA.CALENDARS.WHO_CAN_MANAGE_APPOINTMENTS' | translate\"\n [noneText]=\"'IDEA_AGENDA.CALENDARS.NOBODY' | translate\"\n [allText]=\"'IDEA_AGENDA.CALENDARS.EVERYONE' | translate\"\n [allowSelectDeselectAll]=\"true\"\n [lines]=\"'inset'\"\n />\n }\n </ion-list>\n @if (calendarWC.external?.service) {\n <ion-list class=\"aList\">\n <ion-list-header>\n <ion-label>\n <h2>{{ 'IDEA_AGENDA.CALENDARS.INFO_ON_CALENDAR' | translate }}</h2>\n </ion-label>\n </ion-list-header>\n @if (calendar.userId) {\n <ion-item lines=\"inset\">\n <ion-label>\n {{ 'IDEA_AGENDA.CALENDARS.PRIVATE_CALENDAR' | translate }}\n <p>{{ 'IDEA_AGENDA.CALENDARS.PRIVATE_CALENDAR_HINT' | translate }}</p>\n </ion-label>\n <ion-icon slot=\"end\" name=\"person\" />\n </ion-item>\n }\n @if (calendar.teamId) {\n <ion-item lines=\"inset\">\n <ion-label>\n {{ 'IDEA_AGENDA.CALENDARS.TEAM_CALENDAR' | translate }}\n <p>{{ 'IDEA_AGENDA.CALENDARS.TEAM_CALENDAR_HINT' | translate }}</p>\n </ion-label>\n <ion-icon slot=\"end\" name=\"people\" />\n </ion-item>\n }\n <ion-item lines=\"inset\">\n <ion-label>\n {{ 'IDEA_AGENDA.CALENDARS.LINKED_TO' | translate }}\n {{ 'IDEA_AGENDA.CALENDARS.SERVICES.' + calendarWC.external.service | translate }}\n <p>{{ calendarWC.external.name }} ({{ calendarWC.external.email }})</p>\n </ion-label>\n <ion-icon slot=\"end\" [name]=\"calendars.getServiceIcon(calendarWC.external.service)\" />\n </ion-item>\n <ion-item lines=\"inset\">\n <ion-label>\n {{ 'IDEA_AGENDA.CALENDARS.ACCESS_LEVELS.' + calendarWC.external.userAccess | translate }}\n <p>{{ 'IDEA_AGENDA.CALENDARS.BASED_ON_EXTERNAL_SERVICE_SHARING_PERMISSION' | translate }}</p>\n </ion-label>\n <ion-icon slot=\"end\" name=\"shield\" />\n </ion-item>\n </ion-list>\n }\n <ion-list class=\"aList\">\n <ion-list-header>\n <ion-label color=\"danger\">\n <h2>{{ 'IDEA_AGENDA.CALENDARS.DANGEROUS_ZONE' | translate }}</h2>\n </ion-label>\n </ion-list-header>\n <ion-item lines=\"inset\">\n <ion-label class=\"ion-text-wrap\">\n {{ 'IDEA_AGENDA.CALENDARS.DELETE_CALENDAR' | translate }}\n <p>{{ 'IDEA_AGENDA.CALENDARS.DELETE_CALENDAR_HINT' | translate }}</p>\n </ion-label>\n <ion-button\n color=\"danger\"\n [title]=\"'IDEA_AGENDA.CALENDARS.DELETE_CALENDAR_HINT' | translate\"\n (click)=\"delete()\"\n >\n {{ 'COMMON.DELETE' | translate }}\n </ion-button>\n </ion-item>\n </ion-list>\n </div>\n }\n</ion-content>\n", styles: [".maxWidthContainer{max-width:500px;padding-top:20px}\n"], dependencies: [{ kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i2.IonButton, selector: "ion-button", inputs: ["buttonType", "color", "disabled", "download", "expand", "fill", "form", "href", "mode", "rel", "routerAnimation", "routerDirection", "shape", "size", "strong", "target", "type"] }, { kind: "component", type: i2.IonButtons, selector: "ion-buttons", inputs: ["collapse"] }, { kind: "component", type: i2.IonContent, selector: "ion-content", inputs: ["color", "fixedSlotPlacement", "forceOverscroll", "fullscreen", "scrollEvents", "scrollX", "scrollY"] }, { kind: "component", type: i2.IonHeader, selector: "ion-header", inputs: ["collapse", "mode", "translucent"] }, { kind: "component", type: i2.IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "component", type: i2.IonInput, selector: "ion-input", inputs: ["autocapitalize", "autocomplete", "autocorrect", "autofocus", "clearInput", "clearInputIcon", "clearOnEdit", "color", "counter", "counterFormatter", "debounce", "disabled", "enterkeyhint", "errorText", "fill", "helperText", "inputmode", "label", "labelPlacement", "max", "maxlength", "min", "minlength", "mode", "multiple", "name", "pattern", "placeholder", "readonly", "required", "shape", "spellcheck", "step", "type", "value"] }, { kind: "component", type: i2.IonItem, selector: "ion-item", inputs: ["button", "color", "detail", "detailIcon", "disabled", "download", "href", "lines", "mode", "rel", "routerAnimation", "routerDirection", "target", "type"] }, { kind: "component", type: i2.IonLabel, selector: "ion-label", inputs: ["color", "mode", "position"] }, { kind: "component", type: i2.IonList, selector: "ion-list", inputs: ["inset", "lines", "mode"] }, { kind: "component", type: i2.IonListHeader, selector: "ion-list-header", inputs: ["color", "lines", "mode"] }, { kind: "component", type: i2.IonTitle, selector: "ion-title", inputs: ["color", "size"] }, { kind: "component", type: i2.IonToolbar, selector: "ion-toolbar", inputs: ["color", "mode"] }, { kind: "directive", type: i2.TextValueAccessor, selector: "ion-input:not([type=number]),ion-textarea,ion-searchbar" }, { kind: "component", type: i3.IDEAColorPickerComponent, selector: "idea-color-picker", inputs: ["colors", "current", "label", "placeholder", "icon", "iconColor", "disabled", "obligatory", "lines", "color"], outputs: ["select", "iconSelect"] }, { kind: "component", type: i4.IDEACheckerComponent, selector: "idea-checker", inputs: ["data", "dataProvider", "label", "icon", "iconColor", "searchPlaceholder", "noPreviewText", "noElementsFoundText", "noneEqualsAll", "noneText", "allText", "lines", "color", "disabled", "tappableWhenDisabled", "obligatory", "sortData", "numMaxElementsInPreview", "showAvatars", "limitSelectionToNum", "allowSelectDeselectAll", "category1", "category2", "showCategoriesFilters"], outputs: ["change", "iconSelect"] }, { kind: "pipe", type: i4.IDEATranslatePipe, name: "translate" }] }); }
|
|
97
99
|
}
|
|
98
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.
|
|
100
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: IDEACalendarComponent, decorators: [{
|
|
99
101
|
type: Component,
|
|
100
102
|
args: [{ selector: 'idea-calendar', template: "<ion-header>\n <ion-toolbar color=\"ideaToolbar\">\n <ion-buttons slot=\"start\">\n <ion-button [title]=\"'COMMON.CLOSE' | translate\" (click)=\"close()\">\n <ion-icon name=\"close-circle\" slot=\"icon-only\" />\n </ion-button>\n </ion-buttons>\n <ion-title>{{ 'IDEA_AGENDA.CALENDARS.EDIT_CALENDAR' | translate }}</ion-title>\n <ion-buttons slot=\"end\">\n <ion-button [title]=\"'COMMON.SAVE' | translate\" (click)=\"save()\">\n <ion-icon name=\"checkmark-circle\" slot=\"icon-only\" />\n </ion-button>\n </ion-buttons>\n </ion-toolbar>\n</ion-header>\n<ion-content>\n @if (calendarWC) {\n <div class=\"maxWidthContainer\">\n <ion-list class=\"aList\">\n <ion-item\n lines=\"inset\"\n [class.fieldHasError]=\"hasFieldAnError('name')\"\n [title]=\"'IDEA_AGENDA.CALENDARS.NAME_HINT' | translate\"\n >\n <ion-input\n labelPlacement=\"stacked\"\n [label]=\"'IDEA_AGENDA.CALENDARS.NAME' | translate\"\n [placeholder]=\"'IDEA_AGENDA.CALENDARS.NAME_HINT' | translate\"\n [(ngModel)]=\"calendarWC.name\"\n />\n </ion-item>\n <ion-item\n lines=\"inset\"\n [class.fieldHasError]=\"hasFieldAnError('description')\"\n [title]=\"'IDEA_AGENDA.CALENDARS.DESCRIPTION_HINT' | translate\"\n >\n <ion-input\n labelPlacement=\"stacked\"\n [label]=\"'IDEA_AGENDA.CALENDARS.DESCRIPTION' | translate\"\n [placeholder]=\"'IDEA_AGENDA.CALENDARS.DESCRIPTION_HINT' | translate\"\n [(ngModel)]=\"calendarWC.description\"\n />\n </ion-item>\n @if (!hideColor) {\n <idea-color-picker\n [lines]=\"'inset'\"\n [current]=\"calendarWC.color\"\n [label]=\"'IDEA_AGENDA.CALENDARS.COLOR' | translate\"\n [class.fieldHasError]=\"hasFieldAnError('color')\"\n (select)=\"$event ? (calendarWC.color = $event) : null\"\n />\n }\n @if (membershipsChecks && calendarWC.isShared() && advancedPermissions) {\n <idea-checker\n [data]=\"membershipsChecks\"\n [label]=\"'IDEA_AGENDA.CALENDARS.USERS_ALLOWED_TO_MANAGE_APPOINTMENTS' | translate\"\n [searchPlaceholder]=\"'IDEA_AGENDA.CALENDARS.WHO_CAN_MANAGE_APPOINTMENTS' | translate\"\n [noneText]=\"'IDEA_AGENDA.CALENDARS.NOBODY' | translate\"\n [allText]=\"'IDEA_AGENDA.CALENDARS.EVERYONE' | translate\"\n [allowSelectDeselectAll]=\"true\"\n [lines]=\"'inset'\"\n />\n }\n </ion-list>\n @if (calendarWC.external?.service) {\n <ion-list class=\"aList\">\n <ion-list-header>\n <ion-label>\n <h2>{{ 'IDEA_AGENDA.CALENDARS.INFO_ON_CALENDAR' | translate }}</h2>\n </ion-label>\n </ion-list-header>\n @if (calendar.userId) {\n <ion-item lines=\"inset\">\n <ion-label>\n {{ 'IDEA_AGENDA.CALENDARS.PRIVATE_CALENDAR' | translate }}\n <p>{{ 'IDEA_AGENDA.CALENDARS.PRIVATE_CALENDAR_HINT' | translate }}</p>\n </ion-label>\n <ion-icon slot=\"end\" name=\"person\" />\n </ion-item>\n }\n @if (calendar.teamId) {\n <ion-item lines=\"inset\">\n <ion-label>\n {{ 'IDEA_AGENDA.CALENDARS.TEAM_CALENDAR' | translate }}\n <p>{{ 'IDEA_AGENDA.CALENDARS.TEAM_CALENDAR_HINT' | translate }}</p>\n </ion-label>\n <ion-icon slot=\"end\" name=\"people\" />\n </ion-item>\n }\n <ion-item lines=\"inset\">\n <ion-label>\n {{ 'IDEA_AGENDA.CALENDARS.LINKED_TO' | translate }}\n {{ 'IDEA_AGENDA.CALENDARS.SERVICES.' + calendarWC.external.service | translate }}\n <p>{{ calendarWC.external.name }} ({{ calendarWC.external.email }})</p>\n </ion-label>\n <ion-icon slot=\"end\" [name]=\"calendars.getServiceIcon(calendarWC.external.service)\" />\n </ion-item>\n <ion-item lines=\"inset\">\n <ion-label>\n {{ 'IDEA_AGENDA.CALENDARS.ACCESS_LEVELS.' + calendarWC.external.userAccess | translate }}\n <p>{{ 'IDEA_AGENDA.CALENDARS.BASED_ON_EXTERNAL_SERVICE_SHARING_PERMISSION' | translate }}</p>\n </ion-label>\n <ion-icon slot=\"end\" name=\"shield\" />\n </ion-item>\n </ion-list>\n }\n <ion-list class=\"aList\">\n <ion-list-header>\n <ion-label color=\"danger\">\n <h2>{{ 'IDEA_AGENDA.CALENDARS.DANGEROUS_ZONE' | translate }}</h2>\n </ion-label>\n </ion-list-header>\n <ion-item lines=\"inset\">\n <ion-label class=\"ion-text-wrap\">\n {{ 'IDEA_AGENDA.CALENDARS.DELETE_CALENDAR' | translate }}\n <p>{{ 'IDEA_AGENDA.CALENDARS.DELETE_CALENDAR_HINT' | translate }}</p>\n </ion-label>\n <ion-button\n color=\"danger\"\n [title]=\"'IDEA_AGENDA.CALENDARS.DELETE_CALENDAR_HINT' | translate\"\n (click)=\"delete()\"\n >\n {{ 'COMMON.DELETE' | translate }}\n </ion-button>\n </ion-item>\n </ion-list>\n </div>\n }\n</ion-content>\n", styles: [".maxWidthContainer{max-width:500px;padding-top:20px}\n"] }]
|
|
101
103
|
}], propDecorators: { calendar: [{
|
|
@@ -105,4 +107,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.1", ngImpor
|
|
|
105
107
|
}], hideColor: [{
|
|
106
108
|
type: Input
|
|
107
109
|
}] } });
|
|
108
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsZW5kYXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vbW9kdWxlcy9hZ2VuZGEvc3JjL2NhbGVuZGFyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL21vZHVsZXMvYWdlbmRhL3NyYy9jYWxlbmRhci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDakUsT0FBTyxFQUFFLGVBQWUsRUFBRSxlQUFlLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNsRSxPQUFPLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBYyxNQUFNLGNBQWMsQ0FBQztBQUMzRCxPQUFPLEVBQ0wsa0JBQWtCLEVBQ2xCLGlCQUFpQixFQUNqQixpQkFBaUIsRUFDakIsa0JBQWtCLEVBQ2xCLHVCQUF1QixFQUN4QixNQUFNLG9CQUFvQixDQUFDO0FBRTVCLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDOzs7OztBQU8zRCxNQUFNLE9BQU8scUJBQXFCO0lBTGxDO1FBTVUsZUFBVSxHQUFHLE1BQU0sQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO1FBQzFDLFdBQU0sR0FBRyxNQUFNLENBQUMsZUFBZSxDQUFDLENBQUM7UUFDakMsV0FBTSxHQUFHLE1BQU0sQ0FBQyxlQUFlLENBQUMsQ0FBQztRQUNqQyxRQUFHLEdBQUcsTUFBTSxDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFDaEMsYUFBUSxHQUFHLE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO1FBQ3RDLGFBQVEsR0FBRyxNQUFNLENBQUMsa0JBQWtCLENBQUMsQ0FBQztRQUN0QyxTQUFJLEdBQUcsTUFBTSxDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFDakMsZUFBVSxHQUFHLE1BQU0sQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDO1FBa0JyRCxXQUFNLEdB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QUMsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxFQUFFLE9BQU8sRUFBRSxRQUFRLEVBQUU7U0FDaEUsQ0FBQztRQUNGLE1BQU0sS0FBSyxHQUFHLE1BQU0sSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsQ0FBQyxDQUFDO1FBQ2hGLEtBQUssQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUNsQixDQUFDO0lBRUQsS0FBSztRQUNILElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDeEIsQ0FBQzs4R0F0R1UscUJBQXFCO2tHQUFyQixxQkFBcUIsMkpDbEJsQyx1eUtBaUlBOzsyRkQvR2EscUJBQXFCO2tCQUxqQyxTQUFTOytCQUNFLGVBQWU7OEJBaUJoQixRQUFRO3NCQUFoQixLQUFLO2dCQUlHLG1CQUFtQjtzQkFBM0IsS0FBSztnQkFJRyxTQUFTO3NCQUFqQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT25Jbml0LCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE1vZGFsQ29udHJvbGxlciwgQWxlcnRDb250cm9sbGVyIH0gZnJvbSAnQGlvbmljL2FuZ3VsYXInO1xuaW1wb3J0IHsgQ2FsZW5kYXIsIENoZWNrLCBNZW1iZXJzaGlwIH0gZnJvbSAnaWRlYS10b29sYm94JztcbmltcG9ydCB7XG4gIElERUFMb2FkaW5nU2VydmljZSxcbiAgSURFQUFXU0FQSVNlcnZpY2UsXG4gIElERUFUaW5DYW5TZXJ2aWNlLFxuICBJREVBTWVzc2FnZVNlcnZpY2UsXG4gIElERUFUcmFuc2xhdGlvbnNTZXJ2aWNlXG59IGZyb20gJ0BpZGVhLWlvbmljL2NvbW1vbic7XG5cbmltcG9ydCB7IElERUFDYWxlbmRhcnNTZXJ2aWNlIH0gZnJvbSAnLi9jYWxlbmRhcnMuc2VydmljZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2lkZWEtY2FsZW5kYXInLFxuICB0ZW1wbGF0ZVVybDogJ2NhbGVuZGFyLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJ2NhbGVuZGFyLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgSURFQUNhbGVuZGFyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgcHJpdmF0ZSBfY2FsZW5kYXJzID0gaW5qZWN0KElERUFDYWxlbmRhcnNTZXJ2aWNlKTtcbiAgcHJpdmF0ZSBfbW9kYWwgPSBpbmplY3QoTW9kYWxDb250cm9sbGVyKTtcbiAgcHJpdmF0ZSBfYWxlcnQgPSBpbmplY3QoQWxlcnRDb250cm9sbGVyKTtcbiAgcHJpdmF0ZSBfdGMgPSBpbmplY3QoSURFQVRpbkNhblNlcnZpY2UpO1xuICBwcml2YXRlIF9sb2FkaW5nID0gaW5qZWN0KElERUFMb2FkaW5nU2VydmljZSk7XG4gIHByaXZhdGUgX21lc3NhZ2UgPSBpbmplY3QoSURFQU1lc3NhZ2VTZXJ2aWNlKTtcbiAgcHJpdmF0ZSBfQVBJID0gaW5qZWN0KElERUFBV1NBUElTZXJ2aWNlKTtcbiAgcHJpdmF0ZSBfdHJhbnNsYXRlID0gaW5qZWN0KElERUFUcmFuc2xhdGlvbnNTZXJ2aWNlKTtcblxuICAvKipcbiAgICogVGhlIGNhbGVuZGFyIHRvIG1hbmFnZS5cbiAgICovXG4gIEBJbnB1dCgpIGNhbGVuZGFyOiBDYWxlbmRhcjtcbiAgLyoqXG4gICAqIFdoZXRoZXIgd2Ugd2FudCB0byBlbmFibGUgYWR2YW5jZWQgcGVybWlzc2lvbnMgKGJhc2VkIG9uIHRoZSBtZW1iZXJzaGlwcykgb24gdGhlIGNhbGVuZGFyLlxuICAgKi9cbiAgQElucHV0KCkgYWR2YW5jZWRQZXJtaXNzaW9uczogYm9vbGVhbjtcbiAgLyoqXG4gICAqIFdoZXRoZXIgdGhlIGNhbGVuZGFyIGNvbG9yIGlzIGFuIGltcG9ydGFudCBkZXRhaWwgb3IgaXQgc2hvdWxkbid0IGJlIHNob3duLlxuICAgKi9cbiAgQElucHV0KCkgaGlkZUNvbG9yOiBib29sZWFuO1xuXG4gIGNhbGVuZGFyV0M6IENhbGVuZGFyO1xuICBtZW1iZXJzaGlwc0NoZWNrczogQ2hlY2tbXTtcbiAgbWVtYmVyc2hpcDogTWVtYmVyc2hpcDtcbiAgZXJyb3JzID0gbmV3IFNldDxzdHJpbmc+KCk7XG4gIERFRkFVTFRfQ09MT1IgPSAnIzU1NSc7XG5cbiAgYXN5bmMgbmdPbkluaXQoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgdGhpcy5tZW1iZXJzaGlwID0gdGhpcy5fdGMuZ2V0KCdtZW1iZXJzaGlwJyk7XG4gICAgdGhpcy5jYWxlbmRhcldDID0gbmV3IENhbGVuZGFyKHRoaXMuY2FsZW5kYXIpO1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBtZW1iZXJzaGlwczogTWVtYmVyc2hpcFtdID0gYXdhaXQgdGhpcy5fQVBJLmdldFJlc291cmNlKGB0ZWFtcy8ke3RoaXMubWVtYmVyc2hpcC50ZWFtSWR9L21lbWJlcnNoaXBzYCk7XG4gICAgICB0aGlzLm1lbWJlcnNoaXBzQ2hlY2tzID0gbWVtYmVyc2hpcHMubWFwKFxuICAgICAgICBtID0+XG4gICAgICAgICAgbmV3IENoZWNrKHtcbiAgICAgICAgICAgIHZhbHVlOiBtLnVzZXJJZCxcbiAgICAgICAgICAgIG5hbWU6IG0ubmFtZSxcbiAgICAgICAgICAgIGNoZWNrZWQ6ICh0aGlzLmNhbGVuZGFyV0MudXNlcnNDYW5NYW5hZ2VBcHBvaW50bWVudHMgfHwgW10pLnNvbWUoeCA9PiB4ID09PSBtLnVzZXJJZClcbiAgICAgICAgICB9KVxuICAgICAgKTtcbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgdGhpcy5fbWVzc2FnZS5lcnJvcignQ09NTU9OLkNPVUxETlRfTE9BRF9MSVNUJyk7XG4gICAgfVxuICB9XG5cbiAgaGFzRmllbGRBbkVycm9yKGZpZWxkOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5lcnJvcnMuaGFzKGZpZWxkKTtcbiAgfVxuXG4gIGFzeW5jIHNhdmUoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgaWYgKCF0aGlzLmNhbGVuZGFyV0MuY29sb3IpIHRoaXMuY2FsZW5kYXJXQy5jb2xvciA9IHRoaXMuREVGQVVMVF9DT0xPUjtcbiAgICBpZiAodGhpcy5jYWxlbmRhcldDLmlzU2hhcmVkKCkgJiYgdGhpcy5hZHZhbmNlZFBlcm1pc3Npb25zKVxuICAgICAgdGhpcy5jYWxlbmRhcldDLnVzZXJzQ2FuTWFuYWdlQXBwb2ludG1lbnRzID0gdGhpcy5tZW1iZXJzaGlwc0NoZWNrc1xuICAgICAgICAuZmlsdGVyKHggPT4geC5jaGVja2VkKVxuICAgICAgICAubWFwKHggPT4gU3RyaW5nKHgudmFsdWUpKTtcbiAgICBlbHNlIGRlbGV0ZSB0aGlzLmNhbGVuZGFyV0MudXNlcnNDYW5NYW5hZ2VBcHBvaW50bWVudHM7XG5cbiAgICB0aGlzLmVycm9ycyA9IG5ldyBTZXQodGhpcy5jYWxlbmRhcldDLnZhbGlkYXRlKCkpO1xuICAgIGlmICh0aGlzLmVycm9ycy5zaXplKSByZXR1cm4gdGhpcy5fbWVzc2FnZS5lcnJvcignQ09NTU9OLkZPUk1fSEFTX0VSUk9SX1RPX0NIRUNLJyk7XG5cbiAgICB0cnkge1xuICAgICAgYXdhaXQgdGhpcy5fbG9hZGluZy5zaG93KCk7XG4gICAgICBjb25zdCByZXMgPSBhd2FpdCB0aGlzLl9jYWxlbmRhcnMucHV0Q2FsZW5kYXIodGhpcy5jYWxlbmRhcldDKTtcbiAgICAgIHRoaXMuY2FsZW5kYXIubG9hZChyZXMpO1xuICAgICAgdGhpcy5fbWVzc2FnZS5zdWNjZXNzKCdJREVBX0FHRU5EQS5DQUxFTkRBUlMuQ0FMRU5EQVJfU0FWRUQnKTtcbiAgICAgIHRoaXMuX21vZGFsLmRpc21pc3ModGhpcy5jYWxlbmRhcik7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIHRoaXMuX21lc3NhZ2UuZXJyb3IoJ0NPTU1PTi5PUEVSQVRJT05fRkFJTEVEJyk7XG4gICAgfSBmaW5hbGx5IHtcbiAgICAgIHRoaXMuX2xvYWRpbmcuaGlkZSgpO1xuICAgIH1cbiAgfVxuXG4gIGFzeW5jIGRlbGV0ZSgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCBkb0RlbGV0ZSA9IGFzeW5jICgpOiBQcm9taXNlPHZvaWQ+ID0+IHtcbiAgICAgIHRyeSB7XG4gICAgICAgIGF3YWl0IHRoaXMuX2xvYWRpbmcuc2hvdygpO1xuICAgICAgICBhd2FpdCB0aGlzLl9jYWxlbmRhcnMuZGVsZXRlQ2FsZW5kYXIodGhpcy5jYWxlbmRhcldDKTtcbiAgICAgICAgdGhpcy5fbWVzc2FnZS5zdWNjZXNzKCdJREVBX0FHRU5EQS5DQUxFTkRBUlMuQ0FMRU5EQVJfREVMRVRFRCcpO1xuICAgICAgICB0aGlzLl9tb2RhbC5kaXNtaXNzKHRydWUpO1xuICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgdGhpcy5fbWVzc2FnZS5lcnJvcignQ09NTU9OLk9QRVJBVElPTl9GQUlMRUQnKTtcbiAgICAgIH0gZmluYWxseSB7XG4gICAgICAgIHRoaXMuX2xvYWRpbmcuaGlkZSgpO1xuICAgICAgfVxuICAgIH07XG5cbiAgICBjb25zdCBoZWFkZXIgPSB0aGlzLl90cmFuc2xhdGUuXygnQ09NTU9OLkFSRV9ZT1VfU1VSRScpO1xuICAgIGNvbnN0IHN1YkhlYWRlciA9IHRoaXMuX3RyYW5zbGF0ZS5fKCdJREVBX0FHRU5EQS5DQUxFTkRBUlMuREVMRVRFX0NBTEVOREFSJyk7XG4gICAgY29uc3QgbWVzc2FnZSA9IHRoaXMuX3RyYW5zbGF0ZS5fKCdJREVBX0FHRU5EQS5DQUxFTkRBUlMuREVMRVRFX0NBTEVOREFSX0hJTlQnKTtcbiAgICBjb25zdCBidXR0b25zID0gW1xuICAgICAgeyB0ZXh0OiB0aGlzLl90cmFuc2xhdGUuXygnQ09NTU9OLkNBTkNFTCcpLCByb2xlOiAnY2FuY2VsJyB9LFxuICAgICAgeyB0ZXh0OiB0aGlzLl90cmFuc2xhdGUuXygnQ09NTU9OLkRFTEVURScpLCBoYW5kbGVyOiBkb0RlbGV0ZSB9XG4gICAgXTtcbiAgICBjb25zdCBhbGVydCA9IGF3YWl0IHRoaXMuX2FsZXJ0LmNyZWF0ZSh7IGhlYWRlciwgc3ViSGVhZGVyLCBtZXNzYWdlLCBidXR0b25zIH0pO1xuICAgIGFsZXJ0LnByZXNlbnQoKTtcbiAgfVxuXG4gIGNsb3NlKCk6IHZvaWQge1xuICAgIHRoaXMuX21vZGFsLmRpc21pc3MoKTtcbiAgfVxufVxuIiwiPGlvbi1oZWFkZXI+XG4gIDxpb24tdG9vbGJhciBjb2xvcj1cImlkZWFUb29sYmFyXCI+XG4gICAgPGlvbi1idXR0b25zIHNsb3Q9XCJzdGFydFwiPlxuICAgICAgPGlvbi1idXR0b24gW3RpdGxlXT1cIidDT01NT04uQ0xPU0UnIHwgdHJhbnNsYXRlXCIgKGNsaWNrKT1cImNsb3NlKClcIj5cbiAgICAgICAgPGlvbi1pY29uIG5hbWU9XCJjbG9zZS1jaXJjbGVcIiBzbG90PVwiaWNvbi1vbmx5XCIgLz5cbiAgICAgIDwvaW9uLWJ1dHRvbj5cbiAgICA8L2lvbi1idXR0b25zPlxuICAgIDxpb24tdGl0bGU+e3sgJ0lERUFfQUdFTkRBLkNBTEVOREFSUy5FRElUX0NBTEVOREFSJyB8IHRyYW5zbGF0ZSB9fTwvaW9uLXRpdGxlPlxuICAgIDxpb24tYnV0dG9ucyBzbG90PVwiZW5kXCI+XG4gICAgICA8aW9uLWJ1dHRvbiBbdGl0bGVdPVwiJ0NPTU1PTi5TQVZFJyB8IHRyYW5zbGF0ZVwiIChjbGljayk9XCJzYXZlKClcIj5cbiAgICAgICAgPGlvbi1pY29uIG5hbWU9XCJjaGVja21hcmstY2lyY2xlXCIgc2xvdD1cImljb24tb25seVwiIC8+XG4gICAgICA8L2lvbi1idXR0b24+XG4gICAgPC9pb24tYnV0dG9ucz5cbiAgPC9pb24tdG9vbGJhcj5cbjwvaW9uLWhlYWRlcj5cbjxpb24tY29udGVudD5cbiAgQGlmIChjYWxlbmRhcldDKSB7XG4gICAgPGRpdiBjbGFzcz1cIm1heFdpZHRoQ29udGFpbmVyXCI+XG4gICAgICA8aW9uLWxpc3QgY2xhc3M9XCJhTGlzdFwiPlxuICAgICAgICA8aW9uLWl0ZW1cbiAgICAgICAgICBsaW5lcz1cImluc2V0XCJcbiAgICAgICAgICBbY2xhc3MuZmllbGRIYXNFcnJvcl09XCJoYXNGaWVsZEFuRXJyb3IoJ25hbWUnKVwiXG4gICAgICAgICAgW3RpdGxlXT1cIidJREVBX0FHRU5EQS5DQUxFTkRBUlMuTkFNRV9ISU5UJyB8IHRyYW5zbGF0ZVwiXG4gICAgICAgID5cbiAgICAgICAgICA8aW9uLWlucHV0XG4gICAgICAgICAgICBsYWJlbFBsYWNlbWVudD1cInN0YWNrZWRcIlxuICAgICAgICAgICAgW2xhYmVsXT1cIidJREVBX0FHRU5EQS5DQUxFTkRBUlMuTkFNRScgfCB0cmFuc2xhdGVcIlxuICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cIidJREVBX0FHRU5EQS5DQUxFTkRBUlMuTkFNRV9ISU5UJyB8IHRyYW5zbGF0ZVwiXG4gICAgICAgICAgICBbKG5nTW9kZWwpXT1cImNhbGVuZGFyV0MubmFtZVwiXG4gICAgICAgICAgLz5cbiAgICAgICAgPC9pb24taXRlbT5cbiAgICAgICAgPGlvbi1pdGVtXG4gICAgICAgICAgbGluZXM9XCJpbnNldFwiXG4gICAgICAgICAgW2NsYXNzLmZpZWxkSGFzRXJyb3JdPVwiaGFzRmllbGRBbkVycm9yKCdkZXNjcmlwdGlvbicpXCJcbiAgICAgICAgICBbdGl0bGVdPVwiJ0lERUFfQUdFTkRBLkNBTEVOREFSUy5ERVNDUklQVElPTl9ISU5UJyB8IHRyYW5zbGF0ZVwiXG4gICAgICAgID5cbiAgICAgICAgICA8aW9uLWlucHV0XG4gICAgICAgICAgICBsYWJlbFBsYWNlbWVudD1cInN0YWNrZWRcIlxuICAgICAgICAgICAgW2xhYmVsXT1cIidJREVBX0FHRU5EQS5DQUxFTkRBUlMuREVTQ1JJUFRJT04nIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCInSURFQV9BR0VOREEuQ0FMRU5EQVJTLkRFU0NSSVBUSU9OX0hJTlQnIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgICAgIFsobmdNb2RlbCldPVwiY2FsZW5kYXJXQy5kZXNjcmlwdGlvblwiXG4gICAgICAgICAgLz5cbiAgICAgICAgPC9pb24taXRlbT5cbiAgICAgICAgQGlmICghaGlkZUNvbG9yKSB7XG4gICAgICAgICAgPGlkZWEtY29sb3ItcGlja2VyXG4gICAgICAgICAgICBbbGluZXNdPVwiJ2luc2V0J1wiXG4gICAgICAgICAgICBbY3VycmVudF09XCJjYWxlbmRhcldDLmNvbG9yXCJcbiAgICAgICAgICAgIFtsYWJlbF09XCInSURFQV9BR0VOREEuQ0FMRU5EQVJTLkNPTE9SJyB8IHRyYW5zbGF0ZVwiXG4gICAgICAgICAgICBbY2xhc3MuZmllbGRIYXNFcnJvcl09XCJoYXNGaWVsZEFuRXJyb3IoJ2NvbG9yJylcIlxuICAgICAgICAgICAgKHNlbGVjdCk9XCIkZXZlbnQgPyAoY2FsZW5kYXJXQy5jb2xvciA9ICRldmVudCkgOiBudWxsXCJcbiAgICAgICAgICAvPlxuICAgICAgICB9XG4gICAgICAgIEBpZiAobWVtYmVyc2hpcHNDaGVja3MgJiYgY2FsZW5kYXJXQy5pc1NoYXJlZCgpICYmIGFkdmFuY2VkUGVybWlzc2lvbnMpIHtcbiAgICAgICAgICA8aWRlYS1jaGVja2VyXG4gICAgICAgICAgICBbZGF0YV09XCJtZW1iZXJzaGlwc0NoZWNrc1wiXG4gICAgICAgICAgICBbbGFiZWxdPVwiJ0lERUFfQUdFTkRBLkNBTEVOREFSUy5VU0VSU19BTExPV0VEX1RPX01BTkFHRV9BUFBPSU5UTUVOVFMnIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgICAgIFtzZWFyY2hQbGFjZWhvbGRlcl09XCInSURFQV9BR0VOREEuQ0FMRU5EQVJTLldIT19DQU5fTUFOQUdFX0FQUE9JTlRNRU5UUycgfCB0cmFuc2xhdGVcIlxuICAgICAgICAgICAgW25vbmVUZXh0XT1cIidJREVBX0FHRU5EQS5DQUxFTkRBUlMuTk9CT0RZJyB8IHRyYW5zbGF0ZVwiXG4gICAgICAgICAgICBbYWxsVGV4dF09XCInSURFQV9BR0VOREEuQ0FMRU5EQVJTLkVWRVJZT05FJyB8IHRyYW5zbGF0ZVwiXG4gICAgICAgICAgICBbYWxsb3dTZWxlY3REZXNlbGVjdEFsbF09XCJ0cnVlXCJcbiAgICAgICAgICAgIFtsaW5lc109XCInaW5zZXQnXCJcbiAgICAgICAgICAvPlxuICAgICAgICB9XG4gICAgICA8L2lvbi1saXN0PlxuICAgICAgQGlmIChjYWxlbmRhcldDLmV4dGVybmFsPy5zZXJ2aWNlKSB7XG4gICAgICAgIDxpb24tbGlzdCBjbGFzcz1cImFMaXN0XCI+XG4gICAgICAgICAgPGlvbi1saXN0LWhlYWRlcj5cbiAgICAgICAgICAgIDxpb24tbGFiZWw+XG4gICAgICAgICAgICAgIDxoMj57eyAnSURFQV9BR0VOREEuQ0FMRU5EQVJTLklORk9fT05fQ0FMRU5EQVInIHwgdHJhbnNsYXRlIH19PC9oMj5cbiAgICAgICAgICAgIDwvaW9uLWxhYmVsPlxuICAgICAgICAgIDwvaW9uLWxpc3QtaGVhZGVyPlxuICAgICAgICAgIEBpZiAoY2FsZW5kYXIudXNlcklkKSB7XG4gICAgICAgICAgICA8aW9uLWl0ZW0gbGluZXM9XCJpbnNldFwiPlxuICAgICAgICAgICAgICA8aW9uLWxhYmVsPlxuICAgICAgICAgICAgICAgIHt7ICdJREVBX0FHRU5EQS5DQUxFTkRBUlMuUFJJVkFURV9DQUxFTkRBUicgfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgICAgICAgICA8cD57eyAnSURFQV9BR0VOREEuQ0FMRU5EQVJTLlBSSVZBVEVfQ0FMRU5EQVJfSElOVCcgfCB0cmFuc2xhdGUgfX08L3A+XG4gICAgICAgICAgICAgIDwvaW9uLWxhYmVsPlxuICAgICAgICAgICAgICA8aW9uLWljb24gc2xvdD1cImVuZFwiIG5hbWU9XCJwZXJzb25cIiAvPlxuICAgICAgICAgICAgPC9pb24taXRlbT5cbiAgICAgICAgICB9XG4gICAgICAgICAgQGlmIChjYWxlbmRhci50ZWFtSWQpIHtcbiAgICAgICAgICAgIDxpb24taXRlbSBsaW5lcz1cImluc2V0XCI+XG4gICAgICAgICAgICAgIDxpb24tbGFiZWw+XG4gICAgICAgICAgICAgICAge3sgJ0lERUFfQUdFTkRBLkNBTEVOREFSUy5URUFNX0NBTEVOREFSJyB8IHRyYW5zbGF0ZSB9fVxuICAgICAgICAgICAgICAgIDxwPnt7ICdJREVBX0FHRU5EQS5DQUxFTkRBUlMuVEVBTV9DQUxFTkRBUl9ISU5UJyB8IHRyYW5zbGF0ZSB9fTwvcD5cbiAgICAgICAgICAgICAgPC9pb24tbGFiZWw+XG4gICAgICAgICAgICAgIDxpb24taWNvbiBzbG90PVwiZW5kXCIgbmFtZT1cInBlb3BsZVwiIC8+XG4gICAgICAgICAgICA8L2lvbi1pdGVtPlxuICAgICAgICAgIH1cbiAgICAgICAgICA8aW9uLWl0ZW0gbGluZXM9XCJpbnNldFwiPlxuICAgICAgICAgICAgPGlvbi1sYWJlbD5cbiAgICAgICAgICAgICAge3sgJ0lERUFfQUdFTkRBLkNBTEVOREFSUy5MSU5LRURfVE8nIHwgdHJhbnNsYXRlIH19XG4gICAgICAgICAgICAgIHt7ICdJREVBX0FHRU5EQS5DQUxFTkRBUlMuU0VSVklDRVMuJyArIGNhbGVuZGFyV0MuZXh0ZXJuYWwuc2VydmljZSB8IHRyYW5zbGF0ZSB9fVxuICAgICAgICAgICAgICA8cD57eyBjYWxlbmRhcldDLmV4dGVybmFsLm5hbWUgfX0gKHt7IGNhbGVuZGFyV0MuZXh0ZXJuYWwuZW1haWwgfX0pPC9wPlxuICAgICAgICAgICAgPC9pb24tbGFiZWw+XG4gICAgICAgICAgICA8aW9uLWljb24gc2xvdD1cImVuZFwiIFtuYW1lXT1cImNhbGVuZGFycy5nZXRTZXJ2aWNlSWNvbihjYWxlbmRhcldDLmV4dGVybmFsLnNlcnZpY2UpXCIgLz5cbiAgICAgICAgICA8L2lvbi1pdGVtPlxuICAgICAgICAgIDxpb24taXRlbSBsaW5lcz1cImluc2V0XCI+XG4gICAgICAgICAgICA8aW9uLWxhYmVsPlxuICAgICAgICAgICAgICB7eyAnSURFQV9BR0VOREEuQ0FMRU5EQVJTLkFDQ0VTU19MRVZFTFMuJyArIGNhbGVuZGFyV0MuZXh0ZXJuYWwudXNlckFjY2VzcyB8IHRyYW5zbGF0ZSB9fVxuICAgICAgICAgICAgICA8cD57eyAnSURFQV9BR0VOREEuQ0FMRU5EQVJTLkJBU0VEX09OX0VYVEVSTkFMX1NFUlZJQ0VfU0hBUklOR19QRVJNSVNTSU9OJyB8IHRyYW5zbGF0ZSB9fTwvcD5cbiAgICAgICAgICAgIDwvaW9uLWxhYmVsPlxuICAgICAgICAgICAgPGlvbi1pY29uIHNsb3Q9XCJlbmRcIiBuYW1lPVwic2hpZWxkXCIgLz5cbiAgICAgICAgICA8L2lvbi1pdGVtPlxuICAgICAgICA8L2lvbi1saXN0PlxuICAgICAgfVxuICAgICAgPGlvbi1saXN0IGNsYXNzPVwiYUxpc3RcIj5cbiAgICAgICAgPGlvbi1saXN0LWhlYWRlcj5cbiAgICAgICAgICA8aW9uLWxhYmVsIGNvbG9yPVwiZGFuZ2VyXCI+XG4gICAgICAgICAgICA8aDI+e3sgJ0lERUFfQUdFTkRBLkNBTEVOREFSUy5EQU5HRVJPVVNfWk9ORScgfCB0cmFuc2xhdGUgfX08L2gyPlxuICAgICAgICAgIDwvaW9uLWxhYmVsPlxuICAgICAgICA8L2lvbi1saXN0LWhlYWRlcj5cbiAgICAgICAgPGlvbi1pdGVtIGxpbmVzPVwiaW5zZXRcIj5cbiAgICAgICAgICA8aW9uLWxhYmVsIGNsYXNzPVwiaW9uLXRleHQtd3JhcFwiPlxuICAgICAgICAgICAge3sgJ0lERUFfQUdFTkRBLkNBTEVOREFSUy5ERUxFVEVfQ0FMRU5EQVInIHwgdHJhbnNsYXRlIH19XG4gICAgICAgICAgICA8cD57eyAnSURFQV9BR0VOREEuQ0FMRU5EQVJTLkRFTEVURV9DQUxFTkRBUl9ISU5UJyB8IHRyYW5zbGF0ZSB9fTwvcD5cbiAgICAgICAgICA8L2lvbi1sYWJlbD5cbiAgICAgICAgICA8aW9uLWJ1dHRvblxuICAgICAgICAgICAgY29sb3I9XCJkYW5nZXJcIlxuICAgICAgICAgICAgW3RpdGxlXT1cIidJREVBX0FHRU5EQS5DQUxFTkRBUlMuREVMRVRFX0NBTEVOREFSX0hJTlQnIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgICAgIChjbGljayk9XCJkZWxldGUoKVwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAge3sgJ0NPTU1PTi5ERUxFVEUnIHwgdHJhbnNsYXRlIH19XG4gICAgICAgICAgPC9pb24tYnV0dG9uPlxuICAgICAgICA8L2lvbi1pdGVtPlxuICAgICAgPC9pb24tbGlzdD5cbiAgICA8L2Rpdj5cbiAgfVxuPC9pb24tY29udGVudD5cbiJdfQ==
|
|
110
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsZW5kYXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vbW9kdWxlcy9hZ2VuZGEvc3JjL2NhbGVuZGFyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uL21vZHVsZXMvYWdlbmRhL3NyYy9jYWxlbmRhci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDakUsT0FBTyxFQUFFLGVBQWUsRUFBRSxlQUFlLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNsRSxPQUFPLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBYyxNQUFNLGNBQWMsQ0FBQztBQUMzRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsa0JBQWtCLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUNyRyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUU1RSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQzs7Ozs7O0FBTzNELE1BQU0sT0FBTyxxQkFBcUI7SUFMbEM7UUFNVSxlQUFVLEdBQUcsTUFBTSxDQUFDLG9CQUFvQixDQUFDLENBQUM7UUFDMUMsV0FBTSxHQUFHLE1BQU0sQ0FBQyxlQUFlLENBQUMsQ0FBQztRQUNqQyxXQUFNLEdBQUcsTUFBTSxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBQ2pDLFFBQUcsR0FBRyxNQUFNLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUNoQyxhQUFRLEdBQUcsTUFBTSxDQUFDLGtCQUFrQixDQUFDLENBQUM7UUFDdEMsYUFBUSxHQUFHLE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO1FBQ3RDLFNBQUksR0FBRyxNQUFNLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUNqQyxlQUFVLEdBQUcsTUFBTSxDQUFDLHVC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RSxJQUFJLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsZUFBZSxDQUFDLEVBQUUsT0FBTyxFQUFFLFFBQVEsRUFBRTtTQUNoRSxDQUFDO1FBQ0YsTUFBTSxLQUFLLEdBQUcsTUFBTSxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRSxDQUFDLENBQUM7UUFDaEYsS0FBSyxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQ2xCLENBQUM7SUFFRCxLQUFLO1FBQ0gsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUN4QixDQUFDOzhHQXRHVSxxQkFBcUI7a0dBQXJCLHFCQUFxQiwySkNibEMsdXlLQWlJQTs7MkZEcEhhLHFCQUFxQjtrQkFMakMsU0FBUzsrQkFDRSxlQUFlOzhCQWlCaEIsUUFBUTtzQkFBaEIsS0FBSztnQkFJRyxtQkFBbUI7c0JBQTNCLEtBQUs7Z0JBSUcsU0FBUztzQkFBakIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE9uSW5pdCwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNb2RhbENvbnRyb2xsZXIsIEFsZXJ0Q29udHJvbGxlciB9IGZyb20gJ0Bpb25pYy9hbmd1bGFyJztcbmltcG9ydCB7IENhbGVuZGFyLCBDaGVjaywgTWVtYmVyc2hpcCB9IGZyb20gJ2lkZWEtdG9vbGJveCc7XG5pbXBvcnQgeyBJREVBTG9hZGluZ1NlcnZpY2UsIElERUFNZXNzYWdlU2VydmljZSwgSURFQVRyYW5zbGF0aW9uc1NlcnZpY2UgfSBmcm9tICdAaWRlYS1pb25pYy9jb21tb24nO1xuaW1wb3J0IHsgSURFQUFXU0FQSVNlcnZpY2UsIElERUFUaW5DYW5TZXJ2aWNlIH0gZnJvbSAnQGlkZWEtaW9uaWMvdW5jb21tb24nO1xuXG5pbXBvcnQgeyBJREVBQ2FsZW5kYXJzU2VydmljZSB9IGZyb20gJy4vY2FsZW5kYXJzLnNlcnZpY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdpZGVhLWNhbGVuZGFyJyxcbiAgdGVtcGxhdGVVcmw6ICdjYWxlbmRhci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWydjYWxlbmRhci5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIElERUFDYWxlbmRhckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIHByaXZhdGUgX2NhbGVuZGFycyA9IGluamVjdChJREVBQ2FsZW5kYXJzU2VydmljZSk7XG4gIHByaXZhdGUgX21vZGFsID0gaW5qZWN0KE1vZGFsQ29udHJvbGxlcik7XG4gIHByaXZhdGUgX2FsZXJ0ID0gaW5qZWN0KEFsZXJ0Q29udHJvbGxlcik7XG4gIHByaXZhdGUgX3RjID0gaW5qZWN0KElERUFUaW5DYW5TZXJ2aWNlKTtcbiAgcHJpdmF0ZSBfbG9hZGluZyA9IGluamVjdChJREVBTG9hZGluZ1NlcnZpY2UpO1xuICBwcml2YXRlIF9tZXNzYWdlID0gaW5qZWN0KElERUFNZXNzYWdlU2VydmljZSk7XG4gIHByaXZhdGUgX0FQSSA9IGluamVjdChJREVBQVdTQVBJU2VydmljZSk7XG4gIHByaXZhdGUgX3RyYW5zbGF0ZSA9IGluamVjdChJREVBVHJhbnNsYXRpb25zU2VydmljZSk7XG5cbiAgLyoqXG4gICAqIFRoZSBjYWxlbmRhciB0byBtYW5hZ2UuXG4gICAqL1xuICBASW5wdXQoKSBjYWxlbmRhcjogQ2FsZW5kYXI7XG4gIC8qKlxuICAgKiBXaGV0aGVyIHdlIHdhbnQgdG8gZW5hYmxlIGFkdmFuY2VkIHBlcm1pc3Npb25zIChiYXNlZCBvbiB0aGUgbWVtYmVyc2hpcHMpIG9uIHRoZSBjYWxlbmRhci5cbiAgICovXG4gIEBJbnB1dCgpIGFkdmFuY2VkUGVybWlzc2lvbnM6IGJvb2xlYW47XG4gIC8qKlxuICAgKiBXaGV0aGVyIHRoZSBjYWxlbmRhciBjb2xvciBpcyBhbiBpbXBvcnRhbnQgZGV0YWlsIG9yIGl0IHNob3VsZG4ndCBiZSBzaG93bi5cbiAgICovXG4gIEBJbnB1dCgpIGhpZGVDb2xvcjogYm9vbGVhbjtcblxuICBjYWxlbmRhcldDOiBDYWxlbmRhcjtcbiAgbWVtYmVyc2hpcHNDaGVja3M6IENoZWNrW107XG4gIG1lbWJlcnNoaXA6IE1lbWJlcnNoaXA7XG4gIGVycm9ycyA9IG5ldyBTZXQ8c3RyaW5nPigpO1xuICBERUZBVUxUX0NPTE9SID0gJyM1NTUnO1xuXG4gIGFzeW5jIG5nT25Jbml0KCk6IFByb21pc2U8dm9pZD4ge1xuICAgIHRoaXMubWVtYmVyc2hpcCA9IHRoaXMuX3RjLmdldCgnbWVtYmVyc2hpcCcpO1xuICAgIHRoaXMuY2FsZW5kYXJXQyA9IG5ldyBDYWxlbmRhcih0aGlzLmNhbGVuZGFyKTtcbiAgICB0cnkge1xuICAgICAgY29uc3QgbWVtYmVyc2hpcHM6IE1lbWJlcnNoaXBbXSA9IGF3YWl0IHRoaXMuX0FQSS5nZXRSZXNvdXJjZShgdGVhbXMvJHt0aGlzLm1lbWJlcnNoaXAudGVhbUlkfS9tZW1iZXJzaGlwc2ApO1xuICAgICAgdGhpcy5tZW1iZXJzaGlwc0NoZWNrcyA9IG1lbWJlcnNoaXBzLm1hcChcbiAgICAgICAgbSA9PlxuICAgICAgICAgIG5ldyBDaGVjayh7XG4gICAgICAgICAgICB2YWx1ZTogbS51c2VySWQsXG4gICAgICAgICAgICBuYW1lOiBtLm5hbWUsXG4gICAgICAgICAgICBjaGVja2VkOiAodGhpcy5jYWxlbmRhcldDLnVzZXJzQ2FuTWFuYWdlQXBwb2ludG1lbnRzIHx8IFtdKS5zb21lKHggPT4geCA9PT0gbS51c2VySWQpXG4gICAgICAgICAgfSlcbiAgICAgICk7XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIHRoaXMuX21lc3NhZ2UuZXJyb3IoJ0NPTU1PTi5DT1VMRE5UX0xPQURfTElTVCcpO1xuICAgIH1cbiAgfVxuXG4gIGhhc0ZpZWxkQW5FcnJvcihmaWVsZDogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuZXJyb3JzLmhhcyhmaWVsZCk7XG4gIH1cblxuICBhc3luYyBzYXZlKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGlmICghdGhpcy5jYWxlbmRhcldDLmNvbG9yKSB0aGlzLmNhbGVuZGFyV0MuY29sb3IgPSB0aGlzLkRFRkFVTFRfQ09MT1I7XG4gICAgaWYgKHRoaXMuY2FsZW5kYXJXQy5pc1NoYXJlZCgpICYmIHRoaXMuYWR2YW5jZWRQZXJtaXNzaW9ucylcbiAgICAgIHRoaXMuY2FsZW5kYXJXQy51c2Vyc0Nhbk1hbmFnZUFwcG9pbnRtZW50cyA9IHRoaXMubWVtYmVyc2hpcHNDaGVja3NcbiAgICAgICAgLmZpbHRlcih4ID0+IHguY2hlY2tlZClcbiAgICAgICAgLm1hcCh4ID0+IFN0cmluZyh4LnZhbHVlKSk7XG4gICAgZWxzZSBkZWxldGUgdGhpcy5jYWxlbmRhcldDLnVzZXJzQ2FuTWFuYWdlQXBwb2ludG1lbnRzO1xuXG4gICAgdGhpcy5lcnJvcnMgPSBuZXcgU2V0KHRoaXMuY2FsZW5kYXJXQy52YWxpZGF0ZSgpKTtcbiAgICBpZiAodGhpcy5lcnJvcnMuc2l6ZSkgcmV0dXJuIHRoaXMuX21lc3NhZ2UuZXJyb3IoJ0NPTU1PTi5GT1JNX0hBU19FUlJPUl9UT19DSEVDSycpO1xuXG4gICAgdHJ5IHtcbiAgICAgIGF3YWl0IHRoaXMuX2xvYWRpbmcuc2hvdygpO1xuICAgICAgY29uc3QgcmVzID0gYXdhaXQgdGhpcy5fY2FsZW5kYXJzLnB1dENhbGVuZGFyKHRoaXMuY2FsZW5kYXJXQyk7XG4gICAgICB0aGlzLmNhbGVuZGFyLmxvYWQocmVzKTtcbiAgICAgIHRoaXMuX21lc3NhZ2Uuc3VjY2VzcygnSURFQV9BR0VOREEuQ0FMRU5EQVJTLkNBTEVOREFSX1NBVkVEJyk7XG4gICAgICB0aGlzLl9tb2RhbC5kaXNtaXNzKHRoaXMuY2FsZW5kYXIpO1xuICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICB0aGlzLl9tZXNzYWdlLmVycm9yKCdDT01NT04uT1BFUkFUSU9OX0ZBSUxFRCcpO1xuICAgIH0gZmluYWxseSB7XG4gICAgICB0aGlzLl9sb2FkaW5nLmhpZGUoKTtcbiAgICB9XG4gIH1cblxuICBhc3luYyBkZWxldGUoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgZG9EZWxldGUgPSBhc3luYyAoKTogUHJvbWlzZTx2b2lkPiA9PiB7XG4gICAgICB0cnkge1xuICAgICAgICBhd2FpdCB0aGlzLl9sb2FkaW5nLnNob3coKTtcbiAgICAgICAgYXdhaXQgdGhpcy5fY2FsZW5kYXJzLmRlbGV0ZUNhbGVuZGFyKHRoaXMuY2FsZW5kYXJXQyk7XG4gICAgICAgIHRoaXMuX21lc3NhZ2Uuc3VjY2VzcygnSURFQV9BR0VOREEuQ0FMRU5EQVJTLkNBTEVOREFSX0RFTEVURUQnKTtcbiAgICAgICAgdGhpcy5fbW9kYWwuZGlzbWlzcyh0cnVlKTtcbiAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgIHRoaXMuX21lc3NhZ2UuZXJyb3IoJ0NPTU1PTi5PUEVSQVRJT05fRkFJTEVEJyk7XG4gICAgICB9IGZpbmFsbHkge1xuICAgICAgICB0aGlzLl9sb2FkaW5nLmhpZGUoKTtcbiAgICAgIH1cbiAgICB9O1xuXG4gICAgY29uc3QgaGVhZGVyID0gdGhpcy5fdHJhbnNsYXRlLl8oJ0NPTU1PTi5BUkVfWU9VX1NVUkUnKTtcbiAgICBjb25zdCBzdWJIZWFkZXIgPSB0aGlzLl90cmFuc2xhdGUuXygnSURFQV9BR0VOREEuQ0FMRU5EQVJTLkRFTEVURV9DQUxFTkRBUicpO1xuICAgIGNvbnN0IG1lc3NhZ2UgPSB0aGlzLl90cmFuc2xhdGUuXygnSURFQV9BR0VOREEuQ0FMRU5EQVJTLkRFTEVURV9DQUxFTkRBUl9ISU5UJyk7XG4gICAgY29uc3QgYnV0dG9ucyA9IFtcbiAgICAgIHsgdGV4dDogdGhpcy5fdHJhbnNsYXRlLl8oJ0NPTU1PTi5DQU5DRUwnKSwgcm9sZTogJ2NhbmNlbCcgfSxcbiAgICAgIHsgdGV4dDogdGhpcy5fdHJhbnNsYXRlLl8oJ0NPTU1PTi5ERUxFVEUnKSwgaGFuZGxlcjogZG9EZWxldGUgfVxuICAgIF07XG4gICAgY29uc3QgYWxlcnQgPSBhd2FpdCB0aGlzLl9hbGVydC5jcmVhdGUoeyBoZWFkZXIsIHN1YkhlYWRlciwgbWVzc2FnZSwgYnV0dG9ucyB9KTtcbiAgICBhbGVydC5wcmVzZW50KCk7XG4gIH1cblxuICBjbG9zZSgpOiB2b2lkIHtcbiAgICB0aGlzLl9tb2RhbC5kaXNtaXNzKCk7XG4gIH1cbn1cbiIsIjxpb24taGVhZGVyPlxuICA8aW9uLXRvb2xiYXIgY29sb3I9XCJpZGVhVG9vbGJhclwiPlxuICAgIDxpb24tYnV0dG9ucyBzbG90PVwic3RhcnRcIj5cbiAgICAgIDxpb24tYnV0dG9uIFt0aXRsZV09XCInQ09NTU9OLkNMT1NFJyB8IHRyYW5zbGF0ZVwiIChjbGljayk9XCJjbG9zZSgpXCI+XG4gICAgICAgIDxpb24taWNvbiBuYW1lPVwiY2xvc2UtY2lyY2xlXCIgc2xvdD1cImljb24tb25seVwiIC8+XG4gICAgICA8L2lvbi1idXR0b24+XG4gICAgPC9pb24tYnV0dG9ucz5cbiAgICA8aW9uLXRpdGxlPnt7ICdJREVBX0FHRU5EQS5DQUxFTkRBUlMuRURJVF9DQUxFTkRBUicgfCB0cmFuc2xhdGUgfX08L2lvbi10aXRsZT5cbiAgICA8aW9uLWJ1dHRvbnMgc2xvdD1cImVuZFwiPlxuICAgICAgPGlvbi1idXR0b24gW3RpdGxlXT1cIidDT01NT04uU0FWRScgfCB0cmFuc2xhdGVcIiAoY2xpY2spPVwic2F2ZSgpXCI+XG4gICAgICAgIDxpb24taWNvbiBuYW1lPVwiY2hlY2ttYXJrLWNpcmNsZVwiIHNsb3Q9XCJpY29uLW9ubHlcIiAvPlxuICAgICAgPC9pb24tYnV0dG9uPlxuICAgIDwvaW9uLWJ1dHRvbnM+XG4gIDwvaW9uLXRvb2xiYXI+XG48L2lvbi1oZWFkZXI+XG48aW9uLWNvbnRlbnQ+XG4gIEBpZiAoY2FsZW5kYXJXQykge1xuICAgIDxkaXYgY2xhc3M9XCJtYXhXaWR0aENvbnRhaW5lclwiPlxuICAgICAgPGlvbi1saXN0IGNsYXNzPVwiYUxpc3RcIj5cbiAgICAgICAgPGlvbi1pdGVtXG4gICAgICAgICAgbGluZXM9XCJpbnNldFwiXG4gICAgICAgICAgW2NsYXNzLmZpZWxkSGFzRXJyb3JdPVwiaGFzRmllbGRBbkVycm9yKCduYW1lJylcIlxuICAgICAgICAgIFt0aXRsZV09XCInSURFQV9BR0VOREEuQ0FMRU5EQVJTLk5BTUVfSElOVCcgfCB0cmFuc2xhdGVcIlxuICAgICAgICA+XG4gICAgICAgICAgPGlvbi1pbnB1dFxuICAgICAgICAgICAgbGFiZWxQbGFjZW1lbnQ9XCJzdGFja2VkXCJcbiAgICAgICAgICAgIFtsYWJlbF09XCInSURFQV9BR0VOREEuQ0FMRU5EQVJTLk5BTUUnIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCInSURFQV9BR0VOREEuQ0FMRU5EQVJTLk5BTUVfSElOVCcgfCB0cmFuc2xhdGVcIlxuICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJjYWxlbmRhcldDLm5hbWVcIlxuICAgICAgICAgIC8+XG4gICAgICAgIDwvaW9uLWl0ZW0+XG4gICAgICAgIDxpb24taXRlbVxuICAgICAgICAgIGxpbmVzPVwiaW5zZXRcIlxuICAgICAgICAgIFtjbGFzcy5maWVsZEhhc0Vycm9yXT1cImhhc0ZpZWxkQW5FcnJvcignZGVzY3JpcHRpb24nKVwiXG4gICAgICAgICAgW3RpdGxlXT1cIidJREVBX0FHRU5EQS5DQUxFTkRBUlMuREVTQ1JJUFRJT05fSElOVCcgfCB0cmFuc2xhdGVcIlxuICAgICAgICA+XG4gICAgICAgICAgPGlvbi1pbnB1dFxuICAgICAgICAgICAgbGFiZWxQbGFjZW1lbnQ9XCJzdGFja2VkXCJcbiAgICAgICAgICAgIFtsYWJlbF09XCInSURFQV9BR0VOREEuQ0FMRU5EQVJTLkRFU0NSSVBUSU9OJyB8IHRyYW5zbGF0ZVwiXG4gICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwiJ0lERUFfQUdFTkRBLkNBTEVOREFSUy5ERVNDUklQVElPTl9ISU5UJyB8IHRyYW5zbGF0ZVwiXG4gICAgICAgICAgICBbKG5nTW9kZWwpXT1cImNhbGVuZGFyV0MuZGVzY3JpcHRpb25cIlxuICAgICAgICAgIC8+XG4gICAgICAgIDwvaW9uLWl0ZW0+XG4gICAgICAgIEBpZiAoIWhpZGVDb2xvcikge1xuICAgICAgICAgIDxpZGVhLWNvbG9yLXBpY2tlclxuICAgICAgICAgICAgW2xpbmVzXT1cIidpbnNldCdcIlxuICAgICAgICAgICAgW2N1cnJlbnRdPVwiY2FsZW5kYXJXQy5jb2xvclwiXG4gICAgICAgICAgICBbbGFiZWxdPVwiJ0lERUFfQUdFTkRBLkNBTEVOREFSUy5DT0xPUicgfCB0cmFuc2xhdGVcIlxuICAgICAgICAgICAgW2NsYXNzLmZpZWxkSGFzRXJyb3JdPVwiaGFzRmllbGRBbkVycm9yKCdjb2xvcicpXCJcbiAgICAgICAgICAgIChzZWxlY3QpPVwiJGV2ZW50ID8gKGNhbGVuZGFyV0MuY29sb3IgPSAkZXZlbnQpIDogbnVsbFwiXG4gICAgICAgICAgLz5cbiAgICAgICAgfVxuICAgICAgICBAaWYgKG1lbWJlcnNoaXBzQ2hlY2tzICYmIGNhbGVuZGFyV0MuaXNTaGFyZWQoKSAmJiBhZHZhbmNlZFBlcm1pc3Npb25zKSB7XG4gICAgICAgICAgPGlkZWEtY2hlY2tlclxuICAgICAgICAgICAgW2RhdGFdPVwibWVtYmVyc2hpcHNDaGVja3NcIlxuICAgICAgICAgICAgW2xhYmVsXT1cIidJREVBX0FHRU5EQS5DQUxFTkRBUlMuVVNFUlNfQUxMT1dFRF9UT19NQU5BR0VfQVBQT0lOVE1FTlRTJyB8IHRyYW5zbGF0ZVwiXG4gICAgICAgICAgICBbc2VhcmNoUGxhY2Vob2xkZXJdPVwiJ0lERUFfQUdFTkRBLkNBTEVOREFSUy5XSE9fQ0FOX01BTkFHRV9BUFBPSU5UTUVOVFMnIHwgdHJhbnNsYXRlXCJcbiAgICAgICAgICAgIFtub25lVGV4dF09XCInSURFQV9BR0VOREEuQ0FMRU5EQVJTLk5PQk9EWScgfCB0cmFuc2xhdGVcIlxuICAgICAgICAgICAgW2FsbFRleHRdPVwiJ0lERUFfQUdFTkRBLkNBTEVOREFSUy5FVkVSWU9ORScgfCB0cmFuc2xhdGVcIlxuICAgICAgICAgICAgW2FsbG93U2VsZWN0RGVzZWxlY3RBbGxdPVwidHJ1ZVwiXG4gICAgICAgICAgICBbbGluZXNdPVwiJ2luc2V0J1wiXG4gICAgICAgICAgLz5cbiAgICAgICAgfVxuICAgICAgPC9pb24tbGlzdD5cbiAgICAgIEBpZiAoY2FsZW5kYXJXQy5leHRlcm5hbD8uc2VydmljZSkge1xuICAgICAgICA8aW9uLWxpc3QgY2xhc3M9XCJhTGlzdFwiPlxuICAgICAgICAgIDxpb24tbGlzdC1oZWFkZXI+XG4gICAgICAgICAgICA8aW9uLWxhYmVsPlxuICAgICAgICAgICAgICA8aDI+e3sgJ0lERUFfQUdFTkRBLkNBTEVOREFSUy5JTkZPX09OX0NBTEVOREFSJyB8IHRyYW5zbGF0ZSB9fTwvaDI+XG4gICAgICAgICAgICA8L2lvbi1sYWJlbD5cbiAgICAgICAgICA8L2lvbi1saXN0LWhlYWRlcj5cbiAgICAgICAgICBAaWYgKGNhbGVuZGFyLnVzZXJJZCkge1xuICAgICAgICAgICAgPGlvbi1pdGVtIGxpbmVzPVwiaW5zZXRcIj5cbiAgICAgICAgICAgICAgPGlvbi1sYWJlbD5cbiAgICAgICAgICAgICAgICB7eyAnSURFQV9BR0VOREEuQ0FMRU5EQVJTLlBSSVZBVEVfQ0FMRU5EQVInIHwgdHJhbnNsYXRlIH19XG4gICAgICAgICAgICAgICAgPHA+e3sgJ0lERUFfQUdFTkRBLkNBTEVOREFSUy5QUklWQVRFX0NBTEVOREFSX0hJTlQnIHwgdHJhbnNsYXRlIH19PC9wPlxuICAgICAgICAgICAgICA8L2lvbi1sYWJlbD5cbiAgICAgICAgICAgICAgPGlvbi1pY29uIHNsb3Q9XCJlbmRcIiBuYW1lPVwicGVyc29uXCIgLz5cbiAgICAgICAgICAgIDwvaW9uLWl0ZW0+XG4gICAgICAgICAgfVxuICAgICAgICAgIEBpZiAoY2FsZW5kYXIudGVhbUlkKSB7XG4gICAgICAgICAgICA8aW9uLWl0ZW0gbGluZXM9XCJpbnNldFwiPlxuICAgICAgICAgICAgICA8aW9uLWxhYmVsPlxuICAgICAgICAgICAgICAgIHt7ICdJREVBX0FHRU5EQS5DQUxFTkRBUlMuVEVBTV9DQUxFTkRBUicgfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgICAgICAgICA8cD57eyAnSURFQV9BR0VOREEuQ0FMRU5EQVJTLlRFQU1fQ0FMRU5EQVJfSElOVCcgfCB0cmFuc2xhdGUgfX08L3A+XG4gICAgICAgICAgICAgIDwvaW9uLWxhYmVsPlxuICAgICAgICAgICAgICA8aW9uLWljb24gc2xvdD1cImVuZFwiIG5hbWU9XCJwZW9wbGVcIiAvPlxuICAgICAgICAgICAgPC9pb24taXRlbT5cbiAgICAgICAgICB9XG4gICAgICAgICAgPGlvbi1pdGVtIGxpbmVzPVwiaW5zZXRcIj5cbiAgICAgICAgICAgIDxpb24tbGFiZWw+XG4gICAgICAgICAgICAgIHt7ICdJREVBX0FHRU5EQS5DQUxFTkRBUlMuTElOS0VEX1RPJyB8IHRyYW5zbGF0ZSB9fVxuICAgICAgICAgICAgICB7eyAnSURFQV9BR0VOREEuQ0FMRU5EQVJTLlNFUlZJQ0VTLicgKyBjYWxlbmRhcldDLmV4dGVybmFsLnNlcnZpY2UgfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgICAgICAgPHA+e3sgY2FsZW5kYXJXQy5leHRlcm5hbC5uYW1lIH19ICh7eyBjYWxlbmRhcldDLmV4dGVybmFsLmVtYWlsIH19KTwvcD5cbiAgICAgICAgICAgIDwvaW9uLWxhYmVsPlxuICAgICAgICAgICAgPGlvbi1pY29uIHNsb3Q9XCJlbmRcIiBbbmFtZV09XCJjYWxlbmRhcnMuZ2V0U2VydmljZUljb24oY2FsZW5kYXJXQy5leHRlcm5hbC5zZXJ2aWNlKVwiIC8+XG4gICAgICAgICAgPC9pb24taXRlbT5cbiAgICAgICAgICA8aW9uLWl0ZW0gbGluZXM9XCJpbnNldFwiPlxuICAgICAgICAgICAgPGlvbi1sYWJlbD5cbiAgICAgICAgICAgICAge3sgJ0lERUFfQUdFTkRBLkNBTEVOREFSUy5BQ0NFU1NfTEVWRUxTLicgKyBjYWxlbmRhcldDLmV4dGVybmFsLnVzZXJBY2Nlc3MgfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgICAgICAgPHA+e3sgJ0lERUFfQUdFTkRBLkNBTEVOREFSUy5CQVNFRF9PTl9FWFRFUk5BTF9TRVJWSUNFX1NIQVJJTkdfUEVSTUlTU0lPTicgfCB0cmFuc2xhdGUgfX08L3A+XG4gICAgICAgICAgICA8L2lvbi1sYWJlbD5cbiAgICAgICAgICAgIDxpb24taWNvbiBzbG90PVwiZW5kXCIgbmFtZT1cInNoaWVsZFwiIC8+XG4gICAgICAgICAgPC9pb24taXRlbT5cbiAgICAgICAgPC9pb24tbGlzdD5cbiAgICAgIH1cbiAgICAgIDxpb24tbGlzdCBjbGFzcz1cImFMaXN0XCI+XG4gICAgICAgIDxpb24tbGlzdC1oZWFkZXI+XG4gICAgICAgICAgPGlvbi1sYWJlbCBjb2xvcj1cImRhbmdlclwiPlxuICAgICAgICAgICAgPGgyPnt7ICdJREVBX0FHRU5EQS5DQUxFTkRBUlMuREFOR0VST1VTX1pPTkUnIHwgdHJhbnNsYXRlIH19PC9oMj5cbiAgICAgICAgICA8L2lvbi1sYWJlbD5cbiAgICAgICAgPC9pb24tbGlzdC1oZWFkZXI+XG4gICAgICAgIDxpb24taXRlbSBsaW5lcz1cImluc2V0XCI+XG4gICAgICAgICAgPGlvbi1sYWJlbCBjbGFzcz1cImlvbi10ZXh0LXdyYXBcIj5cbiAgICAgICAgICAgIHt7ICdJREVBX0FHRU5EQS5DQUxFTkRBUlMuREVMRVRFX0NBTEVOREFSJyB8IHRyYW5zbGF0ZSB9fVxuICAgICAgICAgICAgPHA+e3sgJ0lERUFfQUdFTkRBLkNBTEVOREFSUy5ERUxFVEVfQ0FMRU5EQVJfSElOVCcgfCB0cmFuc2xhdGUgfX08L3A+XG4gICAgICAgICAgPC9pb24tbGFiZWw+XG4gICAgICAgICAgPGlvbi1idXR0b25cbiAgICAgICAgICAgIGNvbG9yPVwiZGFuZ2VyXCJcbiAgICAgICAgICAgIFt0aXRsZV09XCInSURFQV9BR0VOREEuQ0FMRU5EQVJTLkRFTEVURV9DQUxFTkRBUl9ISU5UJyB8IHRyYW5zbGF0ZVwiXG4gICAgICAgICAgICAoY2xpY2spPVwiZGVsZXRlKClcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIHt7ICdDT01NT04uREVMRVRFJyB8IHRyYW5zbGF0ZSB9fVxuICAgICAgICAgIDwvaW9uLWJ1dHRvbj5cbiAgICAgICAgPC9pb24taXRlbT5cbiAgICAgIDwvaW9uLWxpc3Q+XG4gICAgPC9kaXY+XG4gIH1cbjwvaW9uLWNvbnRlbnQ+XG4iXX0=
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import { Component, Input, inject } from '@angular/core';
|
|
2
2
|
import { ModalController } from '@ionic/angular';
|
|
3
3
|
import { Calendar, ExternalCalendarInfo, ExternalCalendarSources } from 'idea-toolbox';
|
|
4
|
-
import { IDEALoadingService,
|
|
4
|
+
import { IDEALoadingService, IDEAMessageService, IDEATranslationsService } from '@idea-ionic/common';
|
|
5
|
+
import { IDEATinCanService } from '@idea-ionic/uncommon';
|
|
5
6
|
import { IDEACalendarsService } from './calendars.service';
|
|
6
7
|
import * as i0 from "@angular/core";
|
|
7
8
|
import * as i1 from "@ionic/angular";
|
|
@@ -94,10 +95,10 @@ export class IDEACalendarCreationComponent {
|
|
|
94
95
|
close() {
|
|
95
96
|
this._modal.dismiss();
|
|
96
97
|
}
|
|
97
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.
|
|
98
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.
|
|
98
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: IDEACalendarCreationComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
99
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.9", type: IDEACalendarCreationComponent, selector: "idea-calendar-creation", inputs: { fixScope: "fixScope", onlyExternalCalendars: "onlyExternalCalendars" }, ngImport: i0, template: "<ion-header>\n <ion-toolbar color=\"ideaToolbar\">\n <ion-buttons slot=\"start\">\n @if (!canChangeScope()) {\n <ion-button [title]=\"'COMMON.CLOSE' | translate\" (click)=\"close()\">\n <ion-icon name=\"close\" slot=\"icon-only\" />\n </ion-button>\n }\n @if (canChangeScope()) {\n <ion-button (click)=\"resetScope()\">\n <ion-icon name=\"arrow-back\" slot=\"icon-only\" />\n </ion-button>\n }\n </ion-buttons>\n <ion-title>\n @if (!scopeIsSet()) {\n <span>{{ 'IDEA_AGENDA.CALENDARS.ADD_A_CALENDAR' | translate }}</span>\n }\n @if (calendar.userId) {\n <span>{{ 'IDEA_AGENDA.CALENDARS.PERSONAL_CALENDAR' | translate }}</span>\n }\n @if (calendar.teamId) {\n <span>\n {{ 'IDEA_AGENDA.CALENDARS.TEAM_CALENDAR' | translate: { team: tc.get('team').name } }}\n </span>\n }\n </ion-title>\n </ion-toolbar>\n</ion-header>\n<ion-content>\n <!-- 1st STEP -->\n @if (!scopeIsSet()) {\n <ion-grid class=\"ion-padding choiceGrid\">\n <ion-row>\n <ion-col class=\"ion-text-center\">\n <h1>{{ 'IDEA_AGENDA.CALENDARS.CREATE_PRIVATE_OR_TEAM' | translate }}</h1>\n </ion-col>\n </ion-row>\n <ion-row class=\"ion-align-items-center\">\n <ion-col class=\"ion-text-center\" [size]=\"12\" [sizeSm]=\"6\">\n <ion-card [button]=\"true\" (click)=\"calendar.userId = membership.userId\">\n <ion-card-header>\n <ion-card-title>\n <ion-icon name=\"person\" />\n </ion-card-title>\n </ion-card-header>\n <ion-card-content>\n <h1>{{ 'IDEA_AGENDA.CALENDARS.PERSONAL_CALENDAR' | translate }}</h1>\n <p>{{ 'IDEA_AGENDA.CALENDARS.PERSONAL_CALENDAR_HINT' | translate }}</p>\n </ion-card-content>\n </ion-card>\n </ion-col>\n <ion-col class=\"ion-text-center\" [size]=\"12\" [sizeSm]=\"6\">\n <ion-card [button]=\"true\" (click)=\"calendar.teamId = membership.teamId\">\n <ion-card-header>\n <ion-card-title>\n <ion-icon name=\"people\" />\n </ion-card-title>\n </ion-card-header>\n <ion-card-content>\n <h1>{{ 'IDEA_AGENDA.CALENDARS.TEAM_CALENDAR' | translate }}</h1>\n <p>{{ 'IDEA_AGENDA.CALENDARS.TEAM_CALENDAR_HINT' | translate }}</p>\n </ion-card-content>\n </ion-card>\n </ion-col>\n </ion-row>\n </ion-grid>\n }\n <!-- 2nd STEP -->\n @if (scopeIsSet()) {\n <ion-grid class=\"ion-padding choiceGrid\">\n <ion-row>\n <ion-col class=\"ion-text-center\">\n <h1>{{ 'IDEA_AGENDA.CALENDARS.WHICH_EXTERNAL_SERVICE_TO_LINK' | translate }}</h1>\n <p>{{ 'IDEA_AGENDA.CALENDARS.WHICH_EXTERNAL_SERVICE_TO_LINK_HINT' | translate }}</p>\n </ion-col>\n </ion-row>\n <ion-row class=\"ion-align-items-center\">\n @if (!onlyExternalCalendars) {\n <ion-col class=\"ion-text-center\" [size]=\"12\">\n <ion-card class=\"step2\" [button]=\"true\" (click)=\"saveNewCalendar()\">\n <ion-card-header>\n <ion-card-title>\n <ion-icon name=\"remove\" />\n </ion-card-title>\n </ion-card-header>\n <ion-card-content>\n <h1>{{ 'IDEA_AGENDA.CALENDARS.DONT_LINK' | translate }}</h1>\n <p>{{ 'IDEA_AGENDA.CALENDARS.DONT_LINK_HINT' | translate }}</p>\n </ion-card-content>\n </ion-card>\n </ion-col>\n }\n @for (s of SOURCES; track s) {\n <ion-col class=\"ion-text-center\" [size]=\"12\">\n <ion-card class=\"step2\" [button]=\"true\" (click)=\"saveNewCalendar(s)\">\n <ion-card-header>\n <ion-card-title>\n <ion-icon [name]=\"calendars.getServiceIcon(s)\" />\n </ion-card-title>\n </ion-card-header>\n <ion-card-content>\n <h1>\n {{ 'IDEA_AGENDA.CALENDARS.LINK_TO' | translate }}\n {{ 'IDEA_AGENDA.CALENDARS.SERVICES.' + s | translate }}\n </h1>\n <p>{{ 'IDEA_AGENDA.CALENDARS.LINK_TO_HINT' | translate }}</p>\n </ion-card-content>\n </ion-card>\n </ion-col>\n }\n </ion-row>\n </ion-grid>\n }\n</ion-content>\n", styles: ["ion-content{--background: var(--ion-color-white-shade)}.choiceGrid ion-row ion-col>h1{margin:10px 0 0;font-size:1.1em}.choiceGrid ion-row ion-col>p{margin-top:0;margin-bottom:0;font-size:.9em}.choiceGrid ion-row:first-child ion-col{padding-bottom:25px}.choiceGrid ion-card{--ion-item-background: var(--ion-color-white);--color: var(--ion-color-dark-tint);height:240px;margin:0 auto;text-align:center}.choiceGrid ion-card ion-card-header{padding-bottom:10px}.choiceGrid ion-card ion-card-header ion-card-title{font-size:2.5em}.choiceGrid ion-card ion-card-content h1{font-size:1.4em;height:60px}.choiceGrid ion-card.step2{height:135px}.choiceGrid ion-card.step2 ion-card-header{padding-top:10px;padding-bottom:0}.choiceGrid ion-card.step2 ion-card-content h1{height:auto}\n"], dependencies: [{ kind: "component", type: i1.IonButton, selector: "ion-button", inputs: ["buttonType", "color", "disabled", "download", "expand", "fill", "form", "href", "mode", "rel", "routerAnimation", "routerDirection", "shape", "size", "strong", "target", "type"] }, { kind: "component", type: i1.IonButtons, selector: "ion-buttons", inputs: ["collapse"] }, { kind: "component", type: i1.IonCard, selector: "ion-card", inputs: ["button", "color", "disabled", "download", "href", "mode", "rel", "routerAnimation", "routerDirection", "target", "type"] }, { kind: "component", type: i1.IonCardContent, selector: "ion-card-content", inputs: ["mode"] }, { kind: "component", type: i1.IonCardHeader, selector: "ion-card-header", inputs: ["color", "mode", "translucent"] }, { kind: "component", type: i1.IonCardTitle, selector: "ion-card-title", inputs: ["color", "mode"] }, { kind: "component", type: i1.IonCol, selector: "ion-col", inputs: ["offset", "offsetLg", "offsetMd", "offsetSm", "offsetXl", "offsetXs", "pull", "pullLg", "pullMd", "pullSm", "pullXl", "pullXs", "push", "pushLg", "pushMd", "pushSm", "pushXl", "pushXs", "size", "sizeLg", "sizeMd", "sizeSm", "sizeXl", "sizeXs"] }, { kind: "component", type: i1.IonContent, selector: "ion-content", inputs: ["color", "fixedSlotPlacement", "forceOverscroll", "fullscreen", "scrollEvents", "scrollX", "scrollY"] }, { kind: "component", type: i1.IonGrid, selector: "ion-grid", inputs: ["fixed"] }, { kind: "component", type: i1.IonHeader, selector: "ion-header", inputs: ["collapse", "mode", "translucent"] }, { kind: "component", type: i1.IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "component", type: i1.IonRow, selector: "ion-row" }, { kind: "component", type: i1.IonTitle, selector: "ion-title", inputs: ["color", "size"] }, { kind: "component", type: i1.IonToolbar, selector: "ion-toolbar", inputs: ["color", "mode"] }, { kind: "pipe", type: i2.IDEATranslatePipe, name: "translate" }] }); }
|
|
99
100
|
}
|
|
100
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.
|
|
101
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.9", ngImport: i0, type: IDEACalendarCreationComponent, decorators: [{
|
|
101
102
|
type: Component,
|
|
102
103
|
args: [{ selector: 'idea-calendar-creation', template: "<ion-header>\n <ion-toolbar color=\"ideaToolbar\">\n <ion-buttons slot=\"start\">\n @if (!canChangeScope()) {\n <ion-button [title]=\"'COMMON.CLOSE' | translate\" (click)=\"close()\">\n <ion-icon name=\"close\" slot=\"icon-only\" />\n </ion-button>\n }\n @if (canChangeScope()) {\n <ion-button (click)=\"resetScope()\">\n <ion-icon name=\"arrow-back\" slot=\"icon-only\" />\n </ion-button>\n }\n </ion-buttons>\n <ion-title>\n @if (!scopeIsSet()) {\n <span>{{ 'IDEA_AGENDA.CALENDARS.ADD_A_CALENDAR' | translate }}</span>\n }\n @if (calendar.userId) {\n <span>{{ 'IDEA_AGENDA.CALENDARS.PERSONAL_CALENDAR' | translate }}</span>\n }\n @if (calendar.teamId) {\n <span>\n {{ 'IDEA_AGENDA.CALENDARS.TEAM_CALENDAR' | translate: { team: tc.get('team').name } }}\n </span>\n }\n </ion-title>\n </ion-toolbar>\n</ion-header>\n<ion-content>\n <!-- 1st STEP -->\n @if (!scopeIsSet()) {\n <ion-grid class=\"ion-padding choiceGrid\">\n <ion-row>\n <ion-col class=\"ion-text-center\">\n <h1>{{ 'IDEA_AGENDA.CALENDARS.CREATE_PRIVATE_OR_TEAM' | translate }}</h1>\n </ion-col>\n </ion-row>\n <ion-row class=\"ion-align-items-center\">\n <ion-col class=\"ion-text-center\" [size]=\"12\" [sizeSm]=\"6\">\n <ion-card [button]=\"true\" (click)=\"calendar.userId = membership.userId\">\n <ion-card-header>\n <ion-card-title>\n <ion-icon name=\"person\" />\n </ion-card-title>\n </ion-card-header>\n <ion-card-content>\n <h1>{{ 'IDEA_AGENDA.CALENDARS.PERSONAL_CALENDAR' | translate }}</h1>\n <p>{{ 'IDEA_AGENDA.CALENDARS.PERSONAL_CALENDAR_HINT' | translate }}</p>\n </ion-card-content>\n </ion-card>\n </ion-col>\n <ion-col class=\"ion-text-center\" [size]=\"12\" [sizeSm]=\"6\">\n <ion-card [button]=\"true\" (click)=\"calendar.teamId = membership.teamId\">\n <ion-card-header>\n <ion-card-title>\n <ion-icon name=\"people\" />\n </ion-card-title>\n </ion-card-header>\n <ion-card-content>\n <h1>{{ 'IDEA_AGENDA.CALENDARS.TEAM_CALENDAR' | translate }}</h1>\n <p>{{ 'IDEA_AGENDA.CALENDARS.TEAM_CALENDAR_HINT' | translate }}</p>\n </ion-card-content>\n </ion-card>\n </ion-col>\n </ion-row>\n </ion-grid>\n }\n <!-- 2nd STEP -->\n @if (scopeIsSet()) {\n <ion-grid class=\"ion-padding choiceGrid\">\n <ion-row>\n <ion-col class=\"ion-text-center\">\n <h1>{{ 'IDEA_AGENDA.CALENDARS.WHICH_EXTERNAL_SERVICE_TO_LINK' | translate }}</h1>\n <p>{{ 'IDEA_AGENDA.CALENDARS.WHICH_EXTERNAL_SERVICE_TO_LINK_HINT' | translate }}</p>\n </ion-col>\n </ion-row>\n <ion-row class=\"ion-align-items-center\">\n @if (!onlyExternalCalendars) {\n <ion-col class=\"ion-text-center\" [size]=\"12\">\n <ion-card class=\"step2\" [button]=\"true\" (click)=\"saveNewCalendar()\">\n <ion-card-header>\n <ion-card-title>\n <ion-icon name=\"remove\" />\n </ion-card-title>\n </ion-card-header>\n <ion-card-content>\n <h1>{{ 'IDEA_AGENDA.CALENDARS.DONT_LINK' | translate }}</h1>\n <p>{{ 'IDEA_AGENDA.CALENDARS.DONT_LINK_HINT' | translate }}</p>\n </ion-card-content>\n </ion-card>\n </ion-col>\n }\n @for (s of SOURCES; track s) {\n <ion-col class=\"ion-text-center\" [size]=\"12\">\n <ion-card class=\"step2\" [button]=\"true\" (click)=\"saveNewCalendar(s)\">\n <ion-card-header>\n <ion-card-title>\n <ion-icon [name]=\"calendars.getServiceIcon(s)\" />\n </ion-card-title>\n </ion-card-header>\n <ion-card-content>\n <h1>\n {{ 'IDEA_AGENDA.CALENDARS.LINK_TO' | translate }}\n {{ 'IDEA_AGENDA.CALENDARS.SERVICES.' + s | translate }}\n </h1>\n <p>{{ 'IDEA_AGENDA.CALENDARS.LINK_TO_HINT' | translate }}</p>\n </ion-card-content>\n </ion-card>\n </ion-col>\n }\n </ion-row>\n </ion-grid>\n }\n</ion-content>\n", styles: ["ion-content{--background: var(--ion-color-white-shade)}.choiceGrid ion-row ion-col>h1{margin:10px 0 0;font-size:1.1em}.choiceGrid ion-row ion-col>p{margin-top:0;margin-bottom:0;font-size:.9em}.choiceGrid ion-row:first-child ion-col{padding-bottom:25px}.choiceGrid ion-card{--ion-item-background: var(--ion-color-white);--color: var(--ion-color-dark-tint);height:240px;margin:0 auto;text-align:center}.choiceGrid ion-card ion-card-header{padding-bottom:10px}.choiceGrid ion-card ion-card-header ion-card-title{font-size:2.5em}.choiceGrid ion-card ion-card-content h1{font-size:1.4em;height:60px}.choiceGrid ion-card.step2{height:135px}.choiceGrid ion-card.step2 ion-card-header{padding-top:10px;padding-bottom:0}.choiceGrid ion-card.step2 ion-card-content h1{height:auto}\n"] }]
|
|
103
104
|
}], propDecorators: { fixScope: [{
|
|
@@ -113,4 +114,4 @@ export var CalendarScopes;
|
|
|
113
114
|
CalendarScopes["SHARED"] = "shared";
|
|
114
115
|
CalendarScopes["PRIVATE"] = "private"; // userId
|
|
115
116
|
})(CalendarScopes || (CalendarScopes = {}));
|
|
116
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsZW5kYXJDcmVhdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9tb2R1bGVzL2FnZW5kYS9zcmMvY2FsZW5kYXJDcmVhdGlvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9tb2R1bGVzL2FnZW5kYS9zcmMvY2FsZW5kYXJDcmVhdGlvbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDakUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxRQUFRLEVBQUUsb0JBQW9CLEVBQUUsdUJBQXVCLEVBQWMsTUFBTSxjQUFjLENBQUM7QUFDbkcsT0FBTyxFQUFFLGtCQUFrQixFQUFFLGlCQUFpQixFQUFFLGtCQUFrQixFQUFFLHVCQUF1QixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFFeEgsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0scUJBQXFCLENBQUM7Ozs7QUFPM0QsTUFBTSxPQUFPLDZCQUE2QjtJQUwxQztRQU1VLGVBQVUsR0FBRyxNQUFNLENBQUMsb0JBQW9CLENBQUMsQ0FBQztRQUMxQyxXQUFNLEdBQUcsTUFBTSxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBQ2pDLFFBQUcsR0FBRyxNQUFNLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUNoQyxhQUFRLEdBQUcsTUFBTSxDQUFDLGtCQUFrQixDQUFDLENBQUM7UUFDdEMsYUFBUSxHQUFHLE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO1FBQ3RDLGVBQVUsR0FBRyxNQUFNLENBQUMsdUJBQXVCLENBQUMsQ0FBQztRQWFyRCxrQkFBYSxHQUFHLE1BQU0sQ0FBQztRQUN2QixZQUFPLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDO0tBdUVoRDtJ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SUFFRCxLQUFLO1FBQ0gsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUN4QixDQUFDOzhHQTFGVSw2QkFBNkI7a0dBQTdCLDZCQUE2QixnSkNaMUMsZzZJQW1IQTs7MkZEdkdhLDZCQUE2QjtrQkFMekMsU0FBUzsrQkFDRSx3QkFBd0I7OEJBZXpCLFFBQVE7c0JBQWhCLEtBQUs7Z0JBSUcscUJBQXFCO3NCQUE3QixLQUFLOztBQThFUjs7R0FFRztBQUNILE1BQU0sQ0FBTixJQUFZLGNBR1g7QUFIRCxXQUFZLGNBQWM7SUFDeEIsbUNBQWlCLENBQUE7SUFDakIscUNBQW1CLENBQUEsQ0FBQyxTQUFTO0FBQy9CLENBQUMsRUFIVyxjQUFjLEtBQWQsY0FBYyxRQUd6QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE9uSW5pdCwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNb2RhbENvbnRyb2xsZXIgfSBmcm9tICdAaW9uaWMvYW5ndWxhcic7XG5pbXBvcnQgeyBDYWxlbmRhciwgRXh0ZXJuYWxDYWxlbmRhckluZm8sIEV4dGVybmFsQ2FsZW5kYXJTb3VyY2VzLCBNZW1iZXJzaGlwIH0gZnJvbSAnaWRlYS10b29sYm94JztcbmltcG9ydCB7IElERUFMb2FkaW5nU2VydmljZSwgSURFQVRpbkNhblNlcnZpY2UsIElERUFNZXNzYWdlU2VydmljZSwgSURFQVRyYW5zbGF0aW9uc1NlcnZpY2UgfSBmcm9tICdAaWRlYS1pb25pYy9jb21tb24nO1xuXG5pbXBvcnQgeyBJREVBQ2FsZW5kYXJzU2VydmljZSB9IGZyb20gJy4vY2FsZW5kYXJzLnNlcnZpY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdpZGVhLWNhbGVuZGFyLWNyZWF0aW9uJyxcbiAgdGVtcGxhdGVVcmw6ICdjYWxlbmRhckNyZWF0aW9uLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJ2NhbGVuZGFyQ3JlYXRpb24uY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBJREVBQ2FsZW5kYXJDcmVhdGlvbkNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIHByaXZhdGUgX2NhbGVuZGFycyA9IGluamVjdChJREVBQ2FsZW5kYXJzU2VydmljZSk7XG4gIHByaXZhdGUgX21vZGFsID0gaW5qZWN0KE1vZGFsQ29udHJvbGxlcik7XG4gIHByaXZhdGUgX3RjID0gaW5qZWN0KElERUFUaW5DYW5TZXJ2aWNlKTtcbiAgcHJpdmF0ZSBfbG9hZGluZyA9IGluamVjdChJREVBTG9hZGluZ1NlcnZpY2UpO1xuICBwcml2YXRlIF9tZXNzYWdlID0gaW5qZWN0KElERUFNZXNzYWdlU2VydmljZSk7XG4gIHByaXZhdGUgX3RyYW5zbGF0ZSA9IGluamVjdChJREVBVHJhbnNsYXRpb25zU2VydmljZSk7XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgd2Ugd2FudCB0byBhbGxvdyB0aGUgY3JlYXRpb24gb2Ygb25seSBhIHBhcnRpY3VsYXIgdHlwZSBvZiBjYWxlbmRhciwgYmFzZWQgb24gdGhlIHNjb3BlLlxuICAgKi9cbiAgQElucHV0KCkgZml4U2NvcGU6IENhbGVuZGFyU2NvcGVzO1xuICAvKipcbiAgICogV2hldGhlciB3ZSB3YW50IHRvIGFsbG93IHRoZSBjcmVhdGlvbiBvZiBsb2NhbCBjYWxlbmRhcnMuXG4gICAqL1xuICBASW5wdXQoKSBvbmx5RXh0ZXJuYWxDYWxlbmRhcnM6IGJvb2xlYW47XG5cbiAgbWVtYmVyc2hpcDogTWVtYmVyc2hpcDtcbiAgY2FsZW5kYXI6IENhbGVuZGFyO1xuICBERUZBVUxUX0NPTE9SID0gJyM1NTUnO1xuICBTT1VSQ0VTID0gT2JqZWN0LmtleXMoRXh0ZXJuYWxDYWxlbmRhclNvdXJjZXMpO1xuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuY2FsZW5kYXIgPSBuZXcgQ2FsZW5kYXIoKTtcbiAgICB0aGlzLm1lbWJlcnNoaXAgPSB0aGlzLl90Yy5nZXQoJ21lbWJlcnNoaXAnKTtcbiAgICBpZiAodGhpcy5maXhTY29wZSA9PT0gQ2FsZW5kYXJTY29wZXMuU0hBUkVEKSB0aGlzLmNhbGVuZGFyLnRlYW1JZCA9IHRoaXMubWVtYmVyc2hpcC50ZWFtSWQ7XG4gICAgaWYgKHRoaXMuZml4U2NvcGUgPT09IENhbGVuZGFyU2NvcGVzLlBSSVZBVEUpIHRoaXMuY2FsZW5kYXIudXNlcklkID0gdGhpcy5tZW1iZXJzaGlwLnVzZXJJZDtcbiAgfVxuXG4gIHJlc2V0U2NvcGUoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuY2FuQ2hhbmdlU2NvcGUoKSkgdGhpcy5jYWxlbmRhci50ZWFtSWQgPSB0aGlzLmNhbGVuZGFyLnVzZXJJZCA9IG51bGw7XG4gIH1cbiAgY2FuQ2hhbmdlU2NvcGUoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICF0aGlzLmZpeFNjb3BlICYmIHRoaXMuc2NvcGVJc1NldCgpO1xuICB9XG4gIHNjb3BlSXNTZXQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIEJvb2xlYW4odGhpcy5jYWxlbmRhci51c2VySWQpIHx8IEJvb2xlYW4odGhpcy5jYWxlbmRhci50ZWFtSWQpO1xuICB9XG5cbiAgYXN5bmMgc2F2ZU5ld0NhbGVuZGFyKHNlcnZpY2U/OiBFeHRlcm5hbENhbGVuZGFyU291cmNlcyk6IFByb21pc2U8dm9pZD4ge1xuICAgIGlmICghdGhpcy5zY29wZUlzU2V0KCkpIHJldHVybjtcbiAgICBpZiAoIXNlcnZpY2UgJiYgdGhpcy5vbmx5RXh0ZXJuYWxDYWxlbmRhcnMpIHJldHVybjtcbiAgICBpZiAoc2VydmljZSkge1xuICAgICAgdGhpcy5jYWxlbmRhci5leHRlcm5hbCA9IG5ldyBFeHRlcm5hbENhbGVuZGFySW5mbyh7IHNlcnZpY2UgfSk7XG4gICAgICB0aGlzLmNhbGVuZGFyLm5hbWUgPSAnLSc7IC8vIGl0IHdpbGwgYmUgc3Vic3RpdHV0ZWQgd2l0aCB0aGUgZXh0ZXJuYWwgbmFtZVxuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmNhbGVuZGFyLm5hbWUgPSB0aGlzLmNhbGVuZGFyLnVzZXJJZFxuICAgICAgICA/IHRoaXMuX3RyYW5zbGF0ZS5fKCdJREVBX0FHRU5EQS5DQUxFTkRBUlMuREVGQVVMVF9QRVJTT05BTF9DQUxFTkRBUl9OQU1FJylcbiAgICAgICAgOiB0aGlzLl90cmFuc2xhdGUuXygnSURFQV9BR0VOREEuQ0FMRU5EQVJTLkRFRkFVTFRfVEVBTV9DQUxFTkRBUl9OQU1FJyk7XG4gICAgICB0aGlzLmNhbGVuZGFyLmNvbG9yID0gdGhpcy5ERUZBVUxUX0NPTE9SO1xuICAgIH1cbiAgICB0cnkge1xuICAgICAgYXdhaXQgdGhpcy5fbG9hZGluZy5zaG93KCk7XG4gICAgICBjb25zdCBjYWwgPSBhd2FpdCB0aGlzLl9jYWxlbmRhcnMucG9zdENhbGVuZGFyKHRoaXMuY2FsZW5kYXIpO1xuICAgICAgdGhpcy5jYWxlbmRhci5sb2FkKGNhbCk7XG4gICAgICB0aGlzLl9tZXNzYWdlLnN1Y2Nlc3MoJ0lERUFfQUdFTkRBLkNBTEVOREFSUy5DQUxFTkRBUl9DUkVBVEVEJyk7XG4gICAgICBpZiAoIWNhbC5leHRlcm5hbCkge1xuICAgICAgICB0aGlzLl9tb2RhbC5kaXNtaXNzKHRoaXMuY2FsZW5kYXIpO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgICB0cnkge1xuICAgICAgICBhd2FpdCB0aGlzLl9jYWxlbmRhcnMubGlua0V4dFNlcnZpY2UodGhpcy5jYWxlbmRhcik7XG4gICAgICAgIGNvbnN0IHJlcyA9IGF3YWl0IHRoaXMuX2NhbGVuZGFycy5jaG9vc2VBbmRTZXRFeHRlcm5hbENhbGVuZGFyKHRoaXMuY2FsZW5kYXIpO1xuICAgICAgICBpZiAoIXJlcykge1xuICAgICAgICAgIHRoaXMuX21vZGFsLmRpc21pc3ModGhpcy5jYWxlbmRhcik7XG4gICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuY2FsZW5kYXIubG9hZChyZXMpO1xuICAgICAgICBhd2FpdCB0aGlzLl9sb2FkaW5nLnNob3codGhpcy5fdHJhbnNsYXRlLl8oJ0lERUFfQUdFTkRBLkNBTEVOREFSUy5GSVJTVF9TWU5DX01BWV9UQUtFX0FfV0hJTEUnKSk7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgYXdhaXQgdGhpcy5fY2FsZW5kYXJzLnN5bmNDYWxlbmRhcih0aGlzLmNhbGVuZGFyKTtcbiAgICAgICAgICB0aGlzLl9tZXNzYWdlLnN1Y2Nlc3MoJ0lERUFfQUdFTkRBLkNBTEVOREFSUy5GSVJTVF9TWU5DX0NPTVBMRVRFRCcpO1xuICAgICAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgICAgIHRoaXMuX21lc3NhZ2UuZXJyb3IoJ0NPTU1PTi5PUEVSQVRJT05fRkFJTEVEJyk7XG4gICAgICAgIH0gZmluYWxseSB7XG4gICAgICAgICAgdGhpcy5fbW9kYWwuZGlzbWlzcyh0aGlzLmNhbGVuZGFyKTtcbiAgICAgICAgfVxuICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgdGhpcy5fbWVzc2FnZS5lcnJvcignQ09NTU9OLk9QRVJBVElPTl9GQUlMRUQnKTtcbiAgICAgICAgdGhpcy5fbW9kYWwuZGlzbWlzcyh0aGlzLmNhbGVuZGFyKTtcbiAgICAgIH1cbiAgICB9IGNhdGNoIChlcnJvcikge1xuICAgICAgdGhpcy5fbWVzc2FnZS5lcnJvcignQ09NTU9OLk9QRVJBVElPTl9GQUlMRUQnKTtcbiAgICB9IGZpbmFsbHkge1xuICAgICAgdGhpcy5fbG9hZGluZy5oaWRlKCk7XG4gICAgfVxuICB9XG5cbiAgY2xvc2UoKTogdm9pZCB7XG4gICAgdGhpcy5fbW9kYWwuZGlzbWlzcygpO1xuICB9XG59XG5cbi8qKlxuICogVGhlIHBvc3NpYmxlIHNjb3BlcyBvZiB0aGUgY2FsZW5kYXIuXG4gKi9cbmV4cG9ydCBlbnVtIENhbGVuZGFyU2NvcGVzIHtcbiAgU0hBUkVEID0gJ3NoYXJlZCcsIC8vIHRlYW1JZFxuICBQUklWQVRFID0gJ3ByaXZhdGUnIC8vIHVzZXJJZFxufVxuIiwiPGlvbi1oZWFkZXI+XG4gIDxpb24tdG9vbGJhciBjb2xvcj1cImlkZWFUb29sYmFyXCI+XG4gICAgPGlvbi1idXR0b25zIHNsb3Q9XCJzdGFydFwiPlxuICAgICAgQGlmICghY2FuQ2hhbmdlU2NvcGUoKSkge1xuICAgICAgICA8aW9uLWJ1dHRvbiBbdGl0bGVdPVwiJ0NPTU1PTi5DTE9TRScgfCB0cmFuc2xhdGVcIiAoY2xpY2spPVwiY2xvc2UoKVwiPlxuICAgICAgICAgIDxpb24taWNvbiBuYW1lPVwiY2xvc2VcIiBzbG90PVwiaWNvbi1vbmx5XCIgLz5cbiAgICAgICAgPC9pb24tYnV0dG9uPlxuICAgICAgfVxuICAgICAgQGlmIChjYW5DaGFuZ2VTY29wZSgpKSB7XG4gICAgICAgIDxpb24tYnV0dG9uIChjbGljayk9XCJyZXNldFNjb3BlKClcIj5cbiAgICAgICAgICA8aW9uLWljb24gbmFtZT1cImFycm93LWJhY2tcIiBzbG90PVwiaWNvbi1vbmx5XCIgLz5cbiAgICAgICAgPC9pb24tYnV0dG9uPlxuICAgICAgfVxuICAgIDwvaW9uLWJ1dHRvbnM+XG4gICAgPGlvbi10aXRsZT5cbiAgICAgIEBpZiAoIXNjb3BlSXNTZXQoKSkge1xuICAgICAgICA8c3Bhbj57eyAnSURFQV9BR0VOREEuQ0FMRU5EQVJTLkFERF9BX0NBTEVOREFSJyB8IHRyYW5zbGF0ZSB9fTwvc3Bhbj5cbiAgICAgIH1cbiAgICAgIEBpZiAoY2FsZW5kYXIudXNlcklkKSB7XG4gICAgICAgIDxzcGFuPnt7ICdJREVBX0FHRU5EQS5DQUxFTkRBUlMuUEVSU09OQUxfQ0FMRU5EQVInIHwgdHJhbnNsYXRlIH19PC9zcGFuPlxuICAgICAgfVxuICAgICAgQGlmIChjYWxlbmRhci50ZWFtSWQpIHtcbiAgICAgICAgPHNwYW4+XG4gICAgICAgICAge3sgJ0lERUFfQUdFTkRBLkNBTEVOREFSUy5URUFNX0NBTEVOREFSJyB8IHRyYW5zbGF0ZTogeyB0ZWFtOiB0Yy5nZXQoJ3RlYW0nKS5uYW1lIH0gfX1cbiAgICAgICAgPC9zcGFuPlxuICAgICAgfVxuICAgIDwvaW9uLXRpdGxlPlxuICA8L2lvbi10b29sYmFyPlxuPC9pb24taGVhZGVyPlxuPGlvbi1jb250ZW50PlxuICA8IS0tIDFzdCBTVEVQIC0tPlxuICBAaWYgKCFzY29wZUlzU2V0KCkpIHtcbiAgICA8aW9uLWdyaWQgY2xhc3M9XCJpb24tcGFkZGluZyBjaG9pY2VHcmlkXCI+XG4gICAgICA8aW9uLXJvdz5cbiAgICAgICAgPGlvbi1jb2wgY2xhc3M9XCJpb24tdGV4dC1jZW50ZXJcIj5cbiAgICAgICAgICA8aDE+e3sgJ0lERUFfQUdFTkRBLkNBTEVOREFSUy5DUkVBVEVfUFJJVkFURV9PUl9URUFNJyB8IHRyYW5zbGF0ZSB9fTwvaDE+XG4gICAgICAgIDwvaW9uLWNvbD5cbiAgICAgIDwvaW9uLXJvdz5cbiAgICAgIDxpb24tcm93IGNsYXNzPVwiaW9uLWFsaWduLWl0ZW1zLWNlbnRlclwiPlxuICAgICAgICA8aW9uLWNvbCBjbGFzcz1cImlvbi10ZXh0LWNlbnRlclwiIFtzaXplXT1cIjEyXCIgW3NpemVTbV09XCI2XCI+XG4gICAgICAgICAgPGlvbi1jYXJkIFtidXR0b25dPVwidHJ1ZVwiIChjbGljayk9XCJjYWxlbmRhci51c2VySWQgPSBtZW1iZXJzaGlwLnVzZXJJZFwiPlxuICAgICAgICAgICAgPGlvbi1jYXJkLWhlYWRlcj5cbiAgICAgICAgICAgICAgPGlvbi1jYXJkLXRpdGxlPlxuICAgICAgICAgICAgICAgIDxpb24taWNvbiBuYW1lPVwicGVyc29uXCIgLz5cbiAgICAgICAgICAgICAgPC9pb24tY2FyZC10aXRsZT5cbiAgICAgICAgICAgIDwvaW9uLWNhcmQtaGVhZGVyPlxuICAgICAgICAgICAgPGlvbi1jYXJkLWNvbnRlbnQ+XG4gICAgICAgICAgICAgIDxoMT57eyAnSURFQV9BR0VOREEuQ0FMRU5EQVJTLlBFUlNPTkFMX0NBTEVOREFSJyB8IHRyYW5zbGF0ZSB9fTwvaDE+XG4gICAgICAgICAgICAgIDxwPnt7ICdJREVBX0FHRU5EQS5DQUxFTkRBUlMuUEVSU09OQUxfQ0FMRU5EQVJfSElOVCcgfCB0cmFuc2xhdGUgfX08L3A+XG4gICAgICAgICAgICA8L2lvbi1jYXJkLWNvbnRlbnQ+XG4gICAgICAgICAgPC9pb24tY2FyZD5cbiAgICAgICAgPC9pb24tY29sPlxuICAgICAgICA8aW9uLWNvbCBjbGFzcz1cImlvbi10ZXh0LWNlbnRlclwiIFtzaXplXT1cIjEyXCIgW3NpemVTbV09XCI2XCI+XG4gICAgICAgICAgPGlvbi1jYXJkIFtidXR0b25dPVwidHJ1ZVwiIChjbGljayk9XCJjYWxlbmRhci50ZWFtSWQgPSBtZW1iZXJzaGlwLnRlYW1JZFwiPlxuICAgICAgICAgICAgPGlvbi1jYXJkLWhlYWRlcj5cbiAgICAgICAgICAgICAgPGlvbi1jYXJkLXRpdGxlPlxuICAgICAgICAgICAgICAgIDxpb24taWNvbiBuYW1lPVwicGVvcGxlXCIgLz5cbiAgICAgICAgICAgICAgPC9pb24tY2FyZC10aXRsZT5cbiAgICAgICAgICAgIDwvaW9uLWNhcmQtaGVhZGVyPlxuICAgICAgICAgICAgPGlvbi1jYXJkLWNvbnRlbnQ+XG4gICAgICAgICAgICAgIDxoMT57eyAnSURFQV9BR0VOREEuQ0FMRU5EQVJTLlRFQU1fQ0FMRU5EQVInIHwgdHJhbnNsYXRlIH19PC9oMT5cbiAgICAgICAgICAgICAgPHA+e3sgJ0lERUFfQUdFTkRBLkNBTEVOREFSUy5URUFNX0NBTEVOREFSX0hJTlQnIHwgdHJhbnNsYXRlIH19PC9wPlxuICAgICAgICAgICAgPC9pb24tY2FyZC1jb250ZW50PlxuICAgICAgICAgIDwvaW9uLWNhcmQ+XG4gICAgICAgIDwvaW9uLWNvbD5cbiAgICAgIDwvaW9uLXJvdz5cbiAgICA8L2lvbi1ncmlkPlxuICB9XG4gIDwhLS0gMm5kIFNURVAgLS0+XG4gIEBpZiAoc2NvcGVJc1NldCgpKSB7XG4gICAgPGlvbi1ncmlkIGNsYXNzPVwiaW9uLXBhZGRpbmcgY2hvaWNlR3JpZFwiPlxuICAgICAgPGlvbi1yb3c+XG4gICAgICAgIDxpb24tY29sIGNsYXNzPVwiaW9uLXRleHQtY2VudGVyXCI+XG4gICAgICAgICAgPGgxPnt7ICdJREVBX0FHRU5EQS5DQUxFTkRBUlMuV0hJQ0hfRVhURVJOQUxfU0VSVklDRV9UT19MSU5LJyB8IHRyYW5zbGF0ZSB9fTwvaDE+XG4gICAgICAgICAgPHA+e3sgJ0lERUFfQUdFTkRBLkNBTEVOREFSUy5XSElDSF9FWFRFUk5BTF9TRVJWSUNFX1RPX0xJTktfSElOVCcgfCB0cmFuc2xhdGUgfX08L3A+XG4gICAgICAgIDwvaW9uLWNvbD5cbiAgICAgIDwvaW9uLXJvdz5cbiAgICAgIDxpb24tcm93IGNsYXNzPVwiaW9uLWFsaWduLWl0ZW1zLWNlbnRlclwiPlxuICAgICAgICBAaWYgKCFvbmx5RXh0ZXJuYWxDYWxlbmRhcnMpIHtcbiAgICAgICAgICA8aW9uLWNvbCBjbGFzcz1cImlvbi10ZXh0LWNlbnRlclwiIFtzaXplXT1cIjEyXCI+XG4gICAgICAgICAgICA8aW9uLWNhcmQgY2xhc3M9XCJzdGVwMlwiIFtidXR0b25dPVwidHJ1ZVwiIChjbGljayk9XCJzYXZlTmV3Q2FsZW5kYXIoKVwiPlxuICAgICAgICAgICAgICA8aW9uLWNhcmQtaGVhZGVyPlxuICAgICAgICAgICAgICAgIDxpb24tY2FyZC10aXRsZT5cbiAgICAgICAgICAgICAgICAgIDxpb24taWNvbiBuYW1lPVwicmVtb3ZlXCIgLz5cbiAgICAgICAgICAgICAgICA8L2lvbi1jYXJkLXRpdGxlPlxuICAgICAgICAgICAgICA8L2lvbi1jYXJkLWhlYWRlcj5cbiAgICAgICAgICAgICAgPGlvbi1jYXJkLWNvbnRlbnQ+XG4gICAgICAgICAgICAgICAgPGgxPnt7ICdJREVBX0FHRU5EQS5DQUxFTkRBUlMuRE9OVF9MSU5LJyB8IHRyYW5zbGF0ZSB9fTwvaDE+XG4gICAgICAgICAgICAgICAgPHA+e3sgJ0lERUFfQUdFTkRBLkNBTEVOREFSUy5ET05UX0xJTktfSElOVCcgfCB0cmFuc2xhdGUgfX08L3A+XG4gICAgICAgICAgICAgIDwvaW9uLWNhcmQtY29udGVudD5cbiAgICAgICAgICAgIDwvaW9uLWNhcmQ+XG4gICAgICAgICAgPC9pb24tY29sPlxuICAgICAgICB9XG4gICAgICAgIEBmb3IgKHMgb2YgU09VUkNFUzsgdHJhY2sgcykge1xuICAgICAgICAgIDxpb24tY29sIGNsYXNzPVwiaW9uLXRleHQtY2VudGVyXCIgW3NpemVdPVwiMTJcIj5cbiAgICAgICAgICAgIDxpb24tY2FyZCBjbGFzcz1cInN0ZXAyXCIgW2J1dHRvbl09XCJ0cnVlXCIgKGNsaWNrKT1cInNhdmVOZXdDYWxlbmRhcihzKVwiPlxuICAgICAgICAgICAgICA8aW9uLWNhcmQtaGVhZGVyPlxuICAgICAgICAgICAgICAgIDxpb24tY2FyZC10aXRsZT5cbiAgICAgICAgICAgICAgICAgIDxpb24taWNvbiBbbmFtZV09XCJjYWxlbmRhcnMuZ2V0U2VydmljZUljb24ocylcIiAvPlxuICAgICAgICAgICAgICAgIDwvaW9uLWNhcmQtdGl0bGU+XG4gICAgICAgICAgICAgIDwvaW9uLWNhcmQtaGVhZGVyPlxuICAgICAgICAgICAgICA8aW9uLWNhcmQtY29udGVudD5cbiAgICAgICAgICAgICAgICA8aDE+XG4gICAgICAgICAgICAgICAgICB7eyAnSURFQV9BR0VOREEuQ0FMRU5EQVJTLkxJTktfVE8nIHwgdHJhbnNsYXRlIH19XG4gICAgICAgICAgICAgICAgICB7eyAnSURFQV9BR0VOREEuQ0FMRU5EQVJTLlNFUlZJQ0VTLicgKyBzIHwgdHJhbnNsYXRlIH19XG4gICAgICAgICAgICAgICAgPC9oMT5cbiAgICAgICAgICAgICAgICA8cD57eyAnSURFQV9BR0VOREEuQ0FMRU5EQVJTLkxJTktfVE9fSElOVCcgfCB0cmFuc2xhdGUgfX08L3A+XG4gICAgICAgICAgICAgIDwvaW9uLWNhcmQtY29udGVudD5cbiAgICAgICAgICAgIDwvaW9uLWNhcmQ+XG4gICAgICAgICAgPC9pb24tY29sPlxuICAgICAgICB9XG4gICAgICA8L2lvbi1yb3c+XG4gICAgPC9pb24tZ3JpZD5cbiAgfVxuPC9pb24tY29udGVudD5cbiJdfQ==
|
|
117
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsZW5kYXJDcmVhdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9tb2R1bGVzL2FnZW5kYS9zcmMvY2FsZW5kYXJDcmVhdGlvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9tb2R1bGVzL2FnZW5kYS9zcmMvY2FsZW5kYXJDcmVhdGlvbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDakUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxRQUFRLEVBQUUsb0JBQW9CLEVBQUUsdUJBQXVCLEVBQWMsTUFBTSxjQUFjLENBQUM7QUFDbkcsT0FBTyxFQUFFLGtCQUFrQixFQUFFLGtCQUFrQixFQUFFLHVCQUF1QixFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDckcsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFFekQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0scUJBQXFCLENBQUM7Ozs7QUFPM0QsTUFBTSxPQUFPLDZCQUE2QjtJQUwxQztRQU1VLGVBQVUsR0FBRyxNQUFNLENBQUMsb0JBQW9CLENBQUMsQ0FBQztRQUMxQyxXQUFNLEdBQUcsTUFBTSxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBQ2pDLFFBQUcsR0FBRyxNQUFNLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUNoQyxhQUFRLEdBQUcsTUFBTSxDQUFDLGtCQUFrQixDQUFDLENBQUM7UUFDdEMsYUFBUSxHQUFHLE1BQU0sQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO1FBQ3RDLGVBQVUsR0FBRyxNQUFNLENBQUMsdUJBQXVCLENBQUMsQ0FBQztRQWFyRCxrQkFBYSxHQUFHLE1BQU0sQ0FBQztRQUN2QixZQUFPLEdBQUcsTUFBTSxDQUFDLElB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SSxFQUFFLENBQUM7UUFDdkIsQ0FBQztJQUNILENBQUM7SUFFRCxLQUFLO1FBQ0gsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUN4QixDQUFDOzhHQTFGVSw2QkFBNkI7a0dBQTdCLDZCQUE2QixnSkNiMUMsZzZJQW1IQTs7MkZEdEdhLDZCQUE2QjtrQkFMekMsU0FBUzsrQkFDRSx3QkFBd0I7OEJBZXpCLFFBQVE7c0JBQWhCLEtBQUs7Z0JBSUcscUJBQXFCO3NCQUE3QixLQUFLOztBQThFUjs7R0FFRztBQUNILE1BQU0sQ0FBTixJQUFZLGNBR1g7QUFIRCxXQUFZLGNBQWM7SUFDeEIsbUNBQWlCLENBQUE7SUFDakIscUNBQW1CLENBQUEsQ0FBQyxTQUFTO0FBQy9CLENBQUMsRUFIVyxjQUFjLEtBQWQsY0FBYyxRQUd6QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE9uSW5pdCwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNb2RhbENvbnRyb2xsZXIgfSBmcm9tICdAaW9uaWMvYW5ndWxhcic7XG5pbXBvcnQgeyBDYWxlbmRhciwgRXh0ZXJuYWxDYWxlbmRhckluZm8sIEV4dGVybmFsQ2FsZW5kYXJTb3VyY2VzLCBNZW1iZXJzaGlwIH0gZnJvbSAnaWRlYS10b29sYm94JztcbmltcG9ydCB7IElERUFMb2FkaW5nU2VydmljZSwgSURFQU1lc3NhZ2VTZXJ2aWNlLCBJREVBVHJhbnNsYXRpb25zU2VydmljZSB9IGZyb20gJ0BpZGVhLWlvbmljL2NvbW1vbic7XG5pbXBvcnQgeyBJREVBVGluQ2FuU2VydmljZSB9IGZyb20gJ0BpZGVhLWlvbmljL3VuY29tbW9uJztcblxuaW1wb3J0IHsgSURFQUNhbGVuZGFyc1NlcnZpY2UgfSBmcm9tICcuL2NhbGVuZGFycy5zZXJ2aWNlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnaWRlYS1jYWxlbmRhci1jcmVhdGlvbicsXG4gIHRlbXBsYXRlVXJsOiAnY2FsZW5kYXJDcmVhdGlvbi5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWydjYWxlbmRhckNyZWF0aW9uLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgSURFQUNhbGVuZGFyQ3JlYXRpb25Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBwcml2YXRlIF9jYWxlbmRhcnMgPSBpbmplY3QoSURFQUNhbGVuZGFyc1NlcnZpY2UpO1xuICBwcml2YXRlIF9tb2RhbCA9IGluamVjdChNb2RhbENvbnRyb2xsZXIpO1xuICBwcml2YXRlIF90YyA9IGluamVjdChJREVBVGluQ2FuU2VydmljZSk7XG4gIHByaXZhdGUgX2xvYWRpbmcgPSBpbmplY3QoSURFQUxvYWRpbmdTZXJ2aWNlKTtcbiAgcHJpdmF0ZSBfbWVzc2FnZSA9IGluamVjdChJREVBTWVzc2FnZVNlcnZpY2UpO1xuICBwcml2YXRlIF90cmFuc2xhdGUgPSBpbmplY3QoSURFQVRyYW5zbGF0aW9uc1NlcnZpY2UpO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHdlIHdhbnQgdG8gYWxsb3cgdGhlIGNyZWF0aW9uIG9mIG9ubHkgYSBwYXJ0aWN1bGFyIHR5cGUgb2YgY2FsZW5kYXIsIGJhc2VkIG9uIHRoZSBzY29wZS5cbiAgICovXG4gIEBJbnB1dCgpIGZpeFNjb3BlOiBDYWxlbmRhclNjb3BlcztcbiAgLyoqXG4gICAqIFdoZXRoZXIgd2Ugd2FudCB0byBhbGxvdyB0aGUgY3JlYXRpb24gb2YgbG9jYWwgY2FsZW5kYXJzLlxuICAgKi9cbiAgQElucHV0KCkgb25seUV4dGVybmFsQ2FsZW5kYXJzOiBib29sZWFuO1xuXG4gIG1lbWJlcnNoaXA6IE1lbWJlcnNoaXA7XG4gIGNhbGVuZGFyOiBDYWxlbmRhcjtcbiAgREVGQVVMVF9DT0xPUiA9ICcjNTU1JztcbiAgU09VUkNFUyA9IE9iamVjdC5rZXlzKEV4dGVybmFsQ2FsZW5kYXJTb3VyY2VzKTtcblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmNhbGVuZGFyID0gbmV3IENhbGVuZGFyKCk7XG4gICAgdGhpcy5tZW1iZXJzaGlwID0gdGhpcy5fdGMuZ2V0KCdtZW1iZXJzaGlwJyk7XG4gICAgaWYgKHRoaXMuZml4U2NvcGUgPT09IENhbGVuZGFyU2NvcGVzLlNIQVJFRCkgdGhpcy5jYWxlbmRhci50ZWFtSWQgPSB0aGlzLm1lbWJlcnNoaXAudGVhbUlkO1xuICAgIGlmICh0aGlzLmZpeFNjb3BlID09PSBDYWxlbmRhclNjb3Blcy5QUklWQVRFKSB0aGlzLmNhbGVuZGFyLnVzZXJJZCA9IHRoaXMubWVtYmVyc2hpcC51c2VySWQ7XG4gIH1cblxuICByZXNldFNjb3BlKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmNhbkNoYW5nZVNjb3BlKCkpIHRoaXMuY2FsZW5kYXIudGVhbUlkID0gdGhpcy5jYWxlbmRhci51c2VySWQgPSBudWxsO1xuICB9XG4gIGNhbkNoYW5nZVNjb3BlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhdGhpcy5maXhTY29wZSAmJiB0aGlzLnNjb3BlSXNTZXQoKTtcbiAgfVxuICBzY29wZUlzU2V0KCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBCb29sZWFuKHRoaXMuY2FsZW5kYXIudXNlcklkKSB8fCBCb29sZWFuKHRoaXMuY2FsZW5kYXIudGVhbUlkKTtcbiAgfVxuXG4gIGFzeW5jIHNhdmVOZXdDYWxlbmRhcihzZXJ2aWNlPzogRXh0ZXJuYWxDYWxlbmRhclNvdXJjZXMpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBpZiAoIXRoaXMuc2NvcGVJc1NldCgpKSByZXR1cm47XG4gICAgaWYgKCFzZXJ2aWNlICYmIHRoaXMub25seUV4dGVybmFsQ2FsZW5kYXJzKSByZXR1cm47XG4gICAgaWYgKHNlcnZpY2UpIHtcbiAgICAgIHRoaXMuY2FsZW5kYXIuZXh0ZXJuYWwgPSBuZXcgRXh0ZXJuYWxDYWxlbmRhckluZm8oeyBzZXJ2aWNlIH0pO1xuICAgICAgdGhpcy5jYWxlbmRhci5uYW1lID0gJy0nOyAvLyBpdCB3aWxsIGJlIHN1YnN0aXR1dGVkIHdpdGggdGhlIGV4dGVybmFsIG5hbWVcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5jYWxlbmRhci5uYW1lID0gdGhpcy5jYWxlbmRhci51c2VySWRcbiAgICAgICAgPyB0aGlzLl90cmFuc2xhdGUuXygnSURFQV9BR0VOREEuQ0FMRU5EQVJTLkRFRkFVTFRfUEVSU09OQUxfQ0FMRU5EQVJfTkFNRScpXG4gICAgICAgIDogdGhpcy5fdHJhbnNsYXRlLl8oJ0lERUFfQUdFTkRBLkNBTEVOREFSUy5ERUZBVUxUX1RFQU1fQ0FMRU5EQVJfTkFNRScpO1xuICAgICAgdGhpcy5jYWxlbmRhci5jb2xvciA9IHRoaXMuREVGQVVMVF9DT0xPUjtcbiAgICB9XG4gICAgdHJ5IHtcbiAgICAgIGF3YWl0IHRoaXMuX2xvYWRpbmcuc2hvdygpO1xuICAgICAgY29uc3QgY2FsID0gYXdhaXQgdGhpcy5fY2FsZW5kYXJzLnBvc3RDYWxlbmRhcih0aGlzLmNhbGVuZGFyKTtcbiAgICAgIHRoaXMuY2FsZW5kYXIubG9hZChjYWwpO1xuICAgICAgdGhpcy5fbWVzc2FnZS5zdWNjZXNzKCdJREVBX0FHRU5EQS5DQUxFTkRBUlMuQ0FMRU5EQVJfQ1JFQVRFRCcpO1xuICAgICAgaWYgKCFjYWwuZXh0ZXJuYWwpIHtcbiAgICAgICAgdGhpcy5fbW9kYWwuZGlzbWlzcyh0aGlzLmNhbGVuZGFyKTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgdHJ5IHtcbiAgICAgICAgYXdhaXQgdGhpcy5fY2FsZW5kYXJzLmxpbmtFeHRTZXJ2aWNlKHRoaXMuY2FsZW5kYXIpO1xuICAgICAgICBjb25zdCByZXMgPSBhd2FpdCB0aGlzLl9jYWxlbmRhcnMuY2hvb3NlQW5kU2V0RXh0ZXJuYWxDYWxlbmRhcih0aGlzLmNhbGVuZGFyKTtcbiAgICAgICAgaWYgKCFyZXMpIHtcbiAgICAgICAgICB0aGlzLl9tb2RhbC5kaXNtaXNzKHRoaXMuY2FsZW5kYXIpO1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmNhbGVuZGFyLmxvYWQocmVzKTtcbiAgICAgICAgYXdhaXQgdGhpcy5fbG9hZGluZy5zaG93KHRoaXMuX3RyYW5zbGF0ZS5fKCdJREVBX0FHRU5EQS5DQUxFTkRBUlMuRklSU1RfU1lOQ19NQVlfVEFLRV9BX1dISUxFJykpO1xuICAgICAgICB0cnkge1xuICAgICAgICAgIGF3YWl0IHRoaXMuX2NhbGVuZGFycy5zeW5jQ2FsZW5kYXIodGhpcy5jYWxlbmRhcik7XG4gICAgICAgICAgdGhpcy5fbWVzc2FnZS5zdWNjZXNzKCdJREVBX0FHRU5EQS5DQUxFTkRBUlMuRklSU1RfU1lOQ19DT01QTEVURUQnKTtcbiAgICAgICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgICAgICB0aGlzLl9tZXNzYWdlLmVycm9yKCdDT01NT04uT1BFUkFUSU9OX0ZBSUxFRCcpO1xuICAgICAgICB9IGZpbmFsbHkge1xuICAgICAgICAgIHRoaXMuX21vZGFsLmRpc21pc3ModGhpcy5jYWxlbmRhcik7XG4gICAgICAgIH1cbiAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgIHRoaXMuX21lc3NhZ2UuZXJyb3IoJ0NPTU1PTi5PUEVSQVRJT05fRkFJTEVEJyk7XG4gICAgICAgIHRoaXMuX21vZGFsLmRpc21pc3ModGhpcy5jYWxlbmRhcik7XG4gICAgICB9XG4gICAgfSBjYXRjaCAoZXJyb3IpIHtcbiAgICAgIHRoaXMuX21lc3NhZ2UuZXJyb3IoJ0NPTU1PTi5PUEVSQVRJT05fRkFJTEVEJyk7XG4gICAgfSBmaW5hbGx5IHtcbiAgICAgIHRoaXMuX2xvYWRpbmcuaGlkZSgpO1xuICAgIH1cbiAgfVxuXG4gIGNsb3NlKCk6IHZvaWQge1xuICAgIHRoaXMuX21vZGFsLmRpc21pc3MoKTtcbiAgfVxufVxuXG4vKipcbiAqIFRoZSBwb3NzaWJsZSBzY29wZXMgb2YgdGhlIGNhbGVuZGFyLlxuICovXG5leHBvcnQgZW51bSBDYWxlbmRhclNjb3BlcyB7XG4gIFNIQVJFRCA9ICdzaGFyZWQnLCAvLyB0ZWFtSWRcbiAgUFJJVkFURSA9ICdwcml2YXRlJyAvLyB1c2VySWRcbn1cbiIsIjxpb24taGVhZGVyPlxuICA8aW9uLXRvb2xiYXIgY29sb3I9XCJpZGVhVG9vbGJhclwiPlxuICAgIDxpb24tYnV0dG9ucyBzbG90PVwic3RhcnRcIj5cbiAgICAgIEBpZiAoIWNhbkNoYW5nZVNjb3BlKCkpIHtcbiAgICAgICAgPGlvbi1idXR0b24gW3RpdGxlXT1cIidDT01NT04uQ0xPU0UnIHwgdHJhbnNsYXRlXCIgKGNsaWNrKT1cImNsb3NlKClcIj5cbiAgICAgICAgICA8aW9uLWljb24gbmFtZT1cImNsb3NlXCIgc2xvdD1cImljb24tb25seVwiIC8+XG4gICAgICAgIDwvaW9uLWJ1dHRvbj5cbiAgICAgIH1cbiAgICAgIEBpZiAoY2FuQ2hhbmdlU2NvcGUoKSkge1xuICAgICAgICA8aW9uLWJ1dHRvbiAoY2xpY2spPVwicmVzZXRTY29wZSgpXCI+XG4gICAgICAgICAgPGlvbi1pY29uIG5hbWU9XCJhcnJvdy1iYWNrXCIgc2xvdD1cImljb24tb25seVwiIC8+XG4gICAgICAgIDwvaW9uLWJ1dHRvbj5cbiAgICAgIH1cbiAgICA8L2lvbi1idXR0b25zPlxuICAgIDxpb24tdGl0bGU+XG4gICAgICBAaWYgKCFzY29wZUlzU2V0KCkpIHtcbiAgICAgICAgPHNwYW4+e3sgJ0lERUFfQUdFTkRBLkNBTEVOREFSUy5BRERfQV9DQUxFTkRBUicgfCB0cmFuc2xhdGUgfX08L3NwYW4+XG4gICAgICB9XG4gICAgICBAaWYgKGNhbGVuZGFyLnVzZXJJZCkge1xuICAgICAgICA8c3Bhbj57eyAnSURFQV9BR0VOREEuQ0FMRU5EQVJTLlBFUlNPTkFMX0NBTEVOREFSJyB8IHRyYW5zbGF0ZSB9fTwvc3Bhbj5cbiAgICAgIH1cbiAgICAgIEBpZiAoY2FsZW5kYXIudGVhbUlkKSB7XG4gICAgICAgIDxzcGFuPlxuICAgICAgICAgIHt7ICdJREVBX0FHRU5EQS5DQUxFTkRBUlMuVEVBTV9DQUxFTkRBUicgfCB0cmFuc2xhdGU6IHsgdGVhbTogdGMuZ2V0KCd0ZWFtJykubmFtZSB9IH19XG4gICAgICAgIDwvc3Bhbj5cbiAgICAgIH1cbiAgICA8L2lvbi10aXRsZT5cbiAgPC9pb24tdG9vbGJhcj5cbjwvaW9uLWhlYWRlcj5cbjxpb24tY29udGVudD5cbiAgPCEtLSAxc3QgU1RFUCAtLT5cbiAgQGlmICghc2NvcGVJc1NldCgpKSB7XG4gICAgPGlvbi1ncmlkIGNsYXNzPVwiaW9uLXBhZGRpbmcgY2hvaWNlR3JpZFwiPlxuICAgICAgPGlvbi1yb3c+XG4gICAgICAgIDxpb24tY29sIGNsYXNzPVwiaW9uLXRleHQtY2VudGVyXCI+XG4gICAgICAgICAgPGgxPnt7ICdJREVBX0FHRU5EQS5DQUxFTkRBUlMuQ1JFQVRFX1BSSVZBVEVfT1JfVEVBTScgfCB0cmFuc2xhdGUgfX08L2gxPlxuICAgICAgICA8L2lvbi1jb2w+XG4gICAgICA8L2lvbi1yb3c+XG4gICAgICA8aW9uLXJvdyBjbGFzcz1cImlvbi1hbGlnbi1pdGVtcy1jZW50ZXJcIj5cbiAgICAgICAgPGlvbi1jb2wgY2xhc3M9XCJpb24tdGV4dC1jZW50ZXJcIiBbc2l6ZV09XCIxMlwiIFtzaXplU21dPVwiNlwiPlxuICAgICAgICAgIDxpb24tY2FyZCBbYnV0dG9uXT1cInRydWVcIiAoY2xpY2spPVwiY2FsZW5kYXIudXNlcklkID0gbWVtYmVyc2hpcC51c2VySWRcIj5cbiAgICAgICAgICAgIDxpb24tY2FyZC1oZWFkZXI+XG4gICAgICAgICAgICAgIDxpb24tY2FyZC10aXRsZT5cbiAgICAgICAgICAgICAgICA8aW9uLWljb24gbmFtZT1cInBlcnNvblwiIC8+XG4gICAgICAgICAgICAgIDwvaW9uLWNhcmQtdGl0bGU+XG4gICAgICAgICAgICA8L2lvbi1jYXJkLWhlYWRlcj5cbiAgICAgICAgICAgIDxpb24tY2FyZC1jb250ZW50PlxuICAgICAgICAgICAgICA8aDE+e3sgJ0lERUFfQUdFTkRBLkNBTEVOREFSUy5QRVJTT05BTF9DQUxFTkRBUicgfCB0cmFuc2xhdGUgfX08L2gxPlxuICAgICAgICAgICAgICA8cD57eyAnSURFQV9BR0VOREEuQ0FMRU5EQVJTLlBFUlNPTkFMX0NBTEVOREFSX0hJTlQnIHwgdHJhbnNsYXRlIH19PC9wPlxuICAgICAgICAgICAgPC9pb24tY2FyZC1jb250ZW50PlxuICAgICAgICAgIDwvaW9uLWNhcmQ+XG4gICAgICAgIDwvaW9uLWNvbD5cbiAgICAgICAgPGlvbi1jb2wgY2xhc3M9XCJpb24tdGV4dC1jZW50ZXJcIiBbc2l6ZV09XCIxMlwiIFtzaXplU21dPVwiNlwiPlxuICAgICAgICAgIDxpb24tY2FyZCBbYnV0dG9uXT1cInRydWVcIiAoY2xpY2spPVwiY2FsZW5kYXIudGVhbUlkID0gbWVtYmVyc2hpcC50ZWFtSWRcIj5cbiAgICAgICAgICAgIDxpb24tY2FyZC1oZWFkZXI+XG4gICAgICAgICAgICAgIDxpb24tY2FyZC10aXRsZT5cbiAgICAgICAgICAgICAgICA8aW9uLWljb24gbmFtZT1cInBlb3BsZVwiIC8+XG4gICAgICAgICAgICAgIDwvaW9uLWNhcmQtdGl0bGU+XG4gICAgICAgICAgICA8L2lvbi1jYXJkLWhlYWRlcj5cbiAgICAgICAgICAgIDxpb24tY2FyZC1jb250ZW50PlxuICAgICAgICAgICAgICA8aDE+e3sgJ0lERUFfQUdFTkRBLkNBTEVOREFSUy5URUFNX0NBTEVOREFSJyB8IHRyYW5zbGF0ZSB9fTwvaDE+XG4gICAgICAgICAgICAgIDxwPnt7ICdJREVBX0FHRU5EQS5DQUxFTkRBUlMuVEVBTV9DQUxFTkRBUl9ISU5UJyB8IHRyYW5zbGF0ZSB9fTwvcD5cbiAgICAgICAgICAgIDwvaW9uLWNhcmQtY29udGVudD5cbiAgICAgICAgICA8L2lvbi1jYXJkPlxuICAgICAgICA8L2lvbi1jb2w+XG4gICAgICA8L2lvbi1yb3c+XG4gICAgPC9pb24tZ3JpZD5cbiAgfVxuICA8IS0tIDJuZCBTVEVQIC0tPlxuICBAaWYgKHNjb3BlSXNTZXQoKSkge1xuICAgIDxpb24tZ3JpZCBjbGFzcz1cImlvbi1wYWRkaW5nIGNob2ljZUdyaWRcIj5cbiAgICAgIDxpb24tcm93PlxuICAgICAgICA8aW9uLWNvbCBjbGFzcz1cImlvbi10ZXh0LWNlbnRlclwiPlxuICAgICAgICAgIDxoMT57eyAnSURFQV9BR0VOREEuQ0FMRU5EQVJTLldISUNIX0VYVEVSTkFMX1NFUlZJQ0VfVE9fTElOSycgfCB0cmFuc2xhdGUgfX08L2gxPlxuICAgICAgICAgIDxwPnt7ICdJREVBX0FHRU5EQS5DQUxFTkRBUlMuV0hJQ0hfRVhURVJOQUxfU0VSVklDRV9UT19MSU5LX0hJTlQnIHwgdHJhbnNsYXRlIH19PC9wPlxuICAgICAgICA8L2lvbi1jb2w+XG4gICAgICA8L2lvbi1yb3c+XG4gICAgICA8aW9uLXJvdyBjbGFzcz1cImlvbi1hbGlnbi1pdGVtcy1jZW50ZXJcIj5cbiAgICAgICAgQGlmICghb25seUV4dGVybmFsQ2FsZW5kYXJzKSB7XG4gICAgICAgICAgPGlvbi1jb2wgY2xhc3M9XCJpb24tdGV4dC1jZW50ZXJcIiBbc2l6ZV09XCIxMlwiPlxuICAgICAgICAgICAgPGlvbi1jYXJkIGNsYXNzPVwic3RlcDJcIiBbYnV0dG9uXT1cInRydWVcIiAoY2xpY2spPVwic2F2ZU5ld0NhbGVuZGFyKClcIj5cbiAgICAgICAgICAgICAgPGlvbi1jYXJkLWhlYWRlcj5cbiAgICAgICAgICAgICAgICA8aW9uLWNhcmQtdGl0bGU+XG4gICAgICAgICAgICAgICAgICA8aW9uLWljb24gbmFtZT1cInJlbW92ZVwiIC8+XG4gICAgICAgICAgICAgICAgPC9pb24tY2FyZC10aXRsZT5cbiAgICAgICAgICAgICAgPC9pb24tY2FyZC1oZWFkZXI+XG4gICAgICAgICAgICAgIDxpb24tY2FyZC1jb250ZW50PlxuICAgICAgICAgICAgICAgIDxoMT57eyAnSURFQV9BR0VOREEuQ0FMRU5EQVJTLkRPTlRfTElOSycgfCB0cmFuc2xhdGUgfX08L2gxPlxuICAgICAgICAgICAgICAgIDxwPnt7ICdJREVBX0FHRU5EQS5DQUxFTkRBUlMuRE9OVF9MSU5LX0hJTlQnIHwgdHJhbnNsYXRlIH19PC9wPlxuICAgICAgICAgICAgICA8L2lvbi1jYXJkLWNvbnRlbnQ+XG4gICAgICAgICAgICA8L2lvbi1jYXJkPlxuICAgICAgICAgIDwvaW9uLWNvbD5cbiAgICAgICAgfVxuICAgICAgICBAZm9yIChzIG9mIFNPVVJDRVM7IHRyYWNrIHMpIHtcbiAgICAgICAgICA8aW9uLWNvbCBjbGFzcz1cImlvbi10ZXh0LWNlbnRlclwiIFtzaXplXT1cIjEyXCI+XG4gICAgICAgICAgICA8aW9uLWNhcmQgY2xhc3M9XCJzdGVwMlwiIFtidXR0b25dPVwidHJ1ZVwiIChjbGljayk9XCJzYXZlTmV3Q2FsZW5kYXIocylcIj5cbiAgICAgICAgICAgICAgPGlvbi1jYXJkLWhlYWRlcj5cbiAgICAgICAgICAgICAgICA8aW9uLWNhcmQtdGl0bGU+XG4gICAgICAgICAgICAgICAgICA8aW9uLWljb24gW25hbWVdPVwiY2FsZW5kYXJzLmdldFNlcnZpY2VJY29uKHMpXCIgLz5cbiAgICAgICAgICAgICAgICA8L2lvbi1jYXJkLXRpdGxlPlxuICAgICAgICAgICAgICA8L2lvbi1jYXJkLWhlYWRlcj5cbiAgICAgICAgICAgICAgPGlvbi1jYXJkLWNvbnRlbnQ+XG4gICAgICAgICAgICAgICAgPGgxPlxuICAgICAgICAgICAgICAgICAge3sgJ0lERUFfQUdFTkRBLkNBTEVOREFSUy5MSU5LX1RPJyB8IHRyYW5zbGF0ZSB9fVxuICAgICAgICAgICAgICAgICAge3sgJ0lERUFfQUdFTkRBLkNBTEVOREFSUy5TRVJWSUNFUy4nICsgcyB8IHRyYW5zbGF0ZSB9fVxuICAgICAgICAgICAgICAgIDwvaDE+XG4gICAgICAgICAgICAgICAgPHA+e3sgJ0lERUFfQUdFTkRBLkNBTEVOREFSUy5MSU5LX1RPX0hJTlQnIHwgdHJhbnNsYXRlIH19PC9wPlxuICAgICAgICAgICAgICA8L2lvbi1jYXJkLWNvbnRlbnQ+XG4gICAgICAgICAgICA8L2lvbi1jYXJkPlxuICAgICAgICAgIDwvaW9uLWNvbD5cbiAgICAgICAgfVxuICAgICAgPC9pb24tcm93PlxuICAgIDwvaW9uLWdyaWQ+XG4gIH1cbjwvaW9uLWNvbnRlbnQ+XG4iXX0=
|