@idea-ionic/agenda 5.28.1 → 5.29.2
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/README.md +3 -10
- package/bundles/idea-ionic-agenda.umd.js +39 -24
- package/bundles/idea-ionic-agenda.umd.js.map +1 -1
- package/bundles/idea-ionic-agenda.umd.min.js +2 -2
- package/bundles/idea-ionic-agenda.umd.min.js.map +1 -1
- package/environment.d.ts +16 -0
- package/esm2015/environment.js +17 -0
- package/esm2015/environment.ngsummary.json +1 -0
- package/esm2015/node_modules/idea-toolbox/dist/index.ngsummary.json +1 -1
- package/esm2015/node_modules/idea-toolbox/dist/{APIRequestLog.model.ngsummary.json → src/APIRequestLog.model.ngsummary.json} +0 -0
- package/esm2015/node_modules/idea-toolbox/dist/{RCAttachedResource.model.ngsummary.json → src/RCAttachedResource.model.ngsummary.json} +0 -0
- package/esm2015/node_modules/idea-toolbox/dist/{RCConfiguredFolder.model.ngsummary.json → src/RCConfiguredFolder.model.ngsummary.json} +0 -0
- package/esm2015/node_modules/idea-toolbox/dist/{RCFolder.model.ngsummary.json → src/RCFolder.model.ngsummary.json} +0 -0
- package/esm2015/node_modules/idea-toolbox/dist/{RCResource.model.ngsummary.json → src/RCResource.model.ngsummary.json} +0 -0
- package/esm2015/node_modules/idea-toolbox/dist/{address.model.ngsummary.json → src/address.model.ngsummary.json} +0 -0
- package/esm2015/node_modules/idea-toolbox/dist/{amazonTranslateLanguages.enum.ngsummary.json → src/amazonTranslateLanguages.enum.ngsummary.json} +0 -0
- package/esm2015/node_modules/idea-toolbox/dist/{announcement.model.ngsummary.json → src/announcement.model.ngsummary.json} +0 -0
- package/esm2015/node_modules/idea-toolbox/dist/{appointment.model.ngsummary.json → src/appointment.model.ngsummary.json} +0 -0
- package/esm2015/node_modules/idea-toolbox/dist/{attachment.model.ngsummary.json → src/attachment.model.ngsummary.json} +0 -0
- package/esm2015/node_modules/idea-toolbox/dist/{booleanChoices.enum.ngsummary.json → src/booleanChoices.enum.ngsummary.json} +0 -0
- package/esm2015/node_modules/idea-toolbox/dist/{cacheable.model.ngsummary.json → src/cacheable.model.ngsummary.json} +0 -0
- package/esm2015/node_modules/idea-toolbox/dist/{cacheableResource.model.ngsummary.json → src/cacheableResource.model.ngsummary.json} +0 -0
- package/esm2015/node_modules/idea-toolbox/dist/{calendar.model.ngsummary.json → src/calendar.model.ngsummary.json} +0 -0
- package/esm2015/node_modules/idea-toolbox/dist/{check.model.ngsummary.json → src/check.model.ngsummary.json} +0 -0
- package/esm2015/node_modules/idea-toolbox/dist/{clientInfo.model.ngsummary.json → src/clientInfo.model.ngsummary.json} +0 -0
- package/esm2015/node_modules/idea-toolbox/dist/src/cognitoUser.model.ngsummary.json +1 -0
- package/esm2015/node_modules/idea-toolbox/dist/{contactRequest.model.ngsummary.json → src/contactRequest.model.ngsummary.json} +0 -0
- package/esm2015/node_modules/idea-toolbox/dist/{contacts.model.ngsummary.json → src/contacts.model.ngsummary.json} +0 -0
- package/esm2015/node_modules/idea-toolbox/dist/{countries.enum.ngsummary.json → src/countries.enum.ngsummary.json} +0 -0
- package/esm2015/node_modules/idea-toolbox/dist/{customBlockMeta.model.ngsummary.json → src/customBlockMeta.model.ngsummary.json} +0 -0
- package/esm2015/node_modules/idea-toolbox/dist/{customFieldMeta.model.ngsummary.json → src/customFieldMeta.model.ngsummary.json} +0 -0
- package/esm2015/node_modules/idea-toolbox/dist/{customFieldTypes.enum.ngsummary.json → src/customFieldTypes.enum.ngsummary.json} +0 -0
- package/esm2015/node_modules/idea-toolbox/dist/{customSectionMeta.model.ngsummary.json → src/customSectionMeta.model.ngsummary.json} +0 -0
- package/esm2015/node_modules/idea-toolbox/dist/{delta.model.ngsummary.json → src/delta.model.ngsummary.json} +0 -0
- package/esm2015/node_modules/idea-toolbox/dist/{emailChangeRequest.model.ngsummary.json → src/emailChangeRequest.model.ngsummary.json} +0 -0
- package/esm2015/node_modules/idea-toolbox/dist/{emailData.model.ngsummary.json → src/emailData.model.ngsummary.json} +0 -0
- package/esm2015/node_modules/idea-toolbox/dist/{epoch.ngsummary.json → src/epoch.ngsummary.json} +0 -0
- package/esm2015/node_modules/idea-toolbox/dist/{errorReport.model.ngsummary.json → src/errorReport.model.ngsummary.json} +0 -0
- package/esm2015/node_modules/idea-toolbox/dist/{errorWhitelisted.model.ngsummary.json → src/errorWhitelisted.model.ngsummary.json} +0 -0
- package/esm2015/node_modules/idea-toolbox/dist/src/excelRow.model.ngsummary.json +1 -0
- package/esm2015/node_modules/idea-toolbox/dist/{invitation.model.ngsummary.json → src/invitation.model.ngsummary.json} +0 -0
- package/esm2015/node_modules/idea-toolbox/dist/{ionicons.enum.ngsummary.json → src/ionicons.enum.ngsummary.json} +0 -0
- package/esm2015/node_modules/idea-toolbox/dist/{label.model.ngsummary.json → src/label.model.ngsummary.json} +0 -0
- package/esm2015/node_modules/idea-toolbox/dist/{labelVariable.model.ngsummary.json → src/labelVariable.model.ngsummary.json} +0 -0
- package/esm2015/node_modules/idea-toolbox/dist/{languages.enum.ngsummary.json → src/languages.enum.ngsummary.json} +0 -0
- package/esm2015/node_modules/idea-toolbox/dist/{languages.model.ngsummary.json → src/languages.model.ngsummary.json} +0 -0
- package/esm2015/node_modules/idea-toolbox/dist/{limitCounter.model.ngsummary.json → src/limitCounter.model.ngsummary.json} +0 -0
- package/esm2015/node_modules/idea-toolbox/dist/{markdown.ngsummary.json → src/markdown.ngsummary.json} +0 -0
- package/esm2015/node_modules/idea-toolbox/dist/{membership.model.ngsummary.json → src/membership.model.ngsummary.json} +0 -0
- package/esm2015/node_modules/idea-toolbox/dist/{notification.model.ngsummary.json → src/notification.model.ngsummary.json} +0 -0
- package/esm2015/node_modules/idea-toolbox/dist/{pdfTemplate.model.ngsummary.json → src/pdfTemplate.model.ngsummary.json} +0 -0
- package/esm2015/node_modules/idea-toolbox/dist/{projectPlan.model.ngsummary.json → src/projectPlan.model.ngsummary.json} +0 -0
- package/esm2015/node_modules/idea-toolbox/dist/{projectSubscription.model.ngsummary.json → src/projectSubscription.model.ngsummary.json} +0 -0
- package/esm2015/node_modules/idea-toolbox/dist/{pushNotificationsDevice.model.ngsummary.json → src/pushNotificationsDevice.model.ngsummary.json} +0 -0
- package/esm2015/node_modules/idea-toolbox/dist/{pushNotificationsPlatforms.enum.ngsummary.json → src/pushNotificationsPlatforms.enum.ngsummary.json} +0 -0
- package/esm2015/node_modules/idea-toolbox/dist/{resource.model.ngsummary.json → src/resource.model.ngsummary.json} +0 -0
- package/esm2015/node_modules/idea-toolbox/dist/{sentiment.enum.ngsummary.json → src/sentiment.enum.ngsummary.json} +0 -0
- package/esm2015/node_modules/idea-toolbox/dist/{signature.model.ngsummary.json → src/signature.model.ngsummary.json} +0 -0
- package/esm2015/node_modules/idea-toolbox/dist/{signedURL.model.ngsummary.json → src/signedURL.model.ngsummary.json} +0 -0
- package/esm2015/node_modules/idea-toolbox/dist/{stringVariable.model.ngsummary.json → src/stringVariable.model.ngsummary.json} +0 -0
- package/esm2015/node_modules/idea-toolbox/dist/{suggestion.model.ngsummary.json → src/suggestion.model.ngsummary.json} +0 -0
- package/esm2015/node_modules/idea-toolbox/dist/{team.model.ngsummary.json → src/team.model.ngsummary.json} +0 -0
- package/esm2015/node_modules/idea-toolbox/dist/{teamModules.model.ngsummary.json → src/teamModules.model.ngsummary.json} +0 -0
- package/esm2015/node_modules/idea-toolbox/dist/{timeInterval.model.ngsummary.json → src/timeInterval.model.ngsummary.json} +0 -0
- package/esm2015/node_modules/idea-toolbox/dist/{user.model.ngsummary.json → src/user.model.ngsummary.json} +0 -0
- package/esm2015/node_modules/idea-toolbox/dist/{utils.ngsummary.json → src/utils.ngsummary.json} +0 -0
- package/esm2015/src/calendars.service.js +8 -7
- package/fesm2015/idea-ionic-agenda.js +7 -6
- package/fesm2015/idea-ionic-agenda.js.map +1 -1
- package/idea-ionic-agenda.metadata.json +1 -1
- package/package.json +2 -2
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
!function(e,n){"object"==typeof exports&&"undefined"!=typeof module?n(exports,require("@angular/core"),require("@angular/common"),require("@angular/forms"),require("@ionic/angular"),require("angular-calendar"),require("angular-calendar/date-adapters/date-fns"),require("@idea-ionic/common"),require("rxjs"),require("date-fns"),require("color-parse"),require("idea-toolbox"),require("@capacitor/core")):"function"==typeof define&&define.amd?define("@idea-ionic/agenda",["exports","@angular/core","@angular/common","@angular/forms","@ionic/angular","angular-calendar","angular-calendar/date-adapters/date-fns","@idea-ionic/common","rxjs","date-fns","color-parse","idea-toolbox","@capacitor/core"],n):n(((e="undefined"!=typeof globalThis?globalThis:e||self)["idea-ionic"]=e["idea-ionic"]||{},e["idea-ionic"].agenda={}),e.ng.core,e.ng.common,e.ng.forms,e["@ionic/angular"],e["angular-calendar"],e["angular-calendar/date-adapters/date-fns"],e["@idea-ionic/common"],e.rxjs,e["date-fns"],e["color-parse"],e["idea-toolbox"],e["@capacitor/core"])}(this,(function(e,n,t,a,o,r,i,l,c,s,d,u,E){"use strict";function
|
|
1
|
+
!function(e,n){"object"==typeof exports&&"undefined"!=typeof module?n(exports,require("@angular/core"),require("@angular/common"),require("@angular/forms"),require("@ionic/angular"),require("angular-calendar"),require("angular-calendar/date-adapters/date-fns"),require("@idea-ionic/common"),require("rxjs"),require("date-fns"),require("color-parse"),require("idea-toolbox"),require("@capacitor/core"),require("@env")):"function"==typeof define&&define.amd?define("@idea-ionic/agenda",["exports","@angular/core","@angular/common","@angular/forms","@ionic/angular","angular-calendar","angular-calendar/date-adapters/date-fns","@idea-ionic/common","rxjs","date-fns","color-parse","idea-toolbox","@capacitor/core","@env"],n):n(((e="undefined"!=typeof globalThis?globalThis:e||self)["idea-ionic"]=e["idea-ionic"]||{},e["idea-ionic"].agenda={}),e.ng.core,e.ng.common,e.ng.forms,e["@ionic/angular"],e["angular-calendar"],e["angular-calendar/date-adapters/date-fns"],e["@idea-ionic/common"],e.rxjs,e["date-fns"],e["color-parse"],e["idea-toolbox"],e["@capacitor/core"],e["@env"])}(this,(function(e,n,t,a,o,r,i,l,c,s,d,u,E,A){"use strict";function p(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var h=p(d),m=function(e,n){return(m=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,n){e.__proto__=n}||function(e,n){for(var t in n)Object.prototype.hasOwnProperty.call(n,t)&&(e[t]=n[t])})(e,n)};
|
|
2
2
|
/*! *****************************************************************************
|
|
3
3
|
Copyright (c) Microsoft Corporation.
|
|
4
4
|
|
|
@@ -12,5 +12,5 @@
|
|
|
12
12
|
LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
|
|
13
13
|
OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
|
|
14
14
|
PERFORMANCE OF THIS SOFTWARE.
|
|
15
|
-
***************************************************************************** */function D(e,n,t,a){return new(t||(t=Promise))((function(o,r){function i(e){try{c(a.next(e))}catch(e){r(e)}}function l(e){try{c(a.throw(e))}catch(e){r(e)}}function c(e){var n;e.done?o(e.value):(n=e.value,n instanceof t?n:new t((function(e){e(n)}))).then(i,l)}c((a=a.apply(e,n||[])).next())}))}function m(e,n){var t,a,o,r,i={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return r={next:l(0),throw:l(1),return:l(2)},"function"==typeof Symbol&&(r[Symbol.iterator]=function(){return this}),r;function l(r){return function(l){return function(r){if(t)throw new TypeError("Generator is already executing.");for(;i;)try{if(t=1,a&&(o=2&r[0]?a.return:r[0]?a.throw||((o=a.return)&&o.call(a),0):a.next)&&!(o=o.call(a,r[1])).done)return o;switch(a=0,o&&(r=[2&r[0],o.value]),r[0]){case 0:case 1:o=r;break;case 4:return i.label++,{value:r[1],done:!1};case 5:i.label++,a=r[1],r=[0];continue;case 7:r=i.ops.pop(),i.trys.pop();continue;default:if(!(o=i.trys,(o=o.length>0&&o[o.length-1])||6!==r[0]&&2!==r[0])){i=0;continue}if(3===r[0]&&(!o||r[1]>o[0]&&r[1]<o[3])){i.label=r[1];break}if(6===r[0]&&i.label<o[1]){i.label=o[1],o=r;break}if(o&&i.label<o[2]){i.label=o[2],i.ops.push(r);break}o[2]&&i.ops.pop(),i.trys.pop();continue}r=n.call(e,i)}catch(e){r=[6,e],a=0}finally{t=o=0}if(5&r[0])throw r[1];return{value:r[0]?r[1]:void 0,done:!0}}([r,l])}}}Object.create;Object.create;var v=function(e){function n(){return null!==e&&e.apply(this,arguments)||this}return function(e,n){function t(){this.constructor=e}p(e,n),e.prototype=null===n?Object.create(n):(t.prototype=n.prototype,new t)}(n,e),n.prototype.monthViewColumnHeader=function(e){var n=e.date,a=e.locale;return t.formatDate(n,"EEE",a)},n.prototype.monthViewTitle=function(e){var n=e.date,a=e.locale;return t.formatDate(n,"MMMM y",a)},n.prototype.weekViewHour=function(e){var n=e.date,a=e.locale;return"it"===a?t.formatDate(n,"HH:mm",a):t.formatDate(n,"h aa",a)},n.prototype.weekViewColumnHeader=function(e){var n=e.date,a=e.locale;return t.formatDate(n,"EEE",a)},n.prototype.weekViewTitle=function(e){var n=e.date,a=e.locale;return t.formatDate(n,"MMMM yyyy",a)},n.prototype.dayViewHour=function(e){var n=e.date,a=e.locale;return"it"===a?t.formatDate(n,"HH:mm",a):t.formatDate(n,"h aa",a)},n.prototype.dayViewTitle=function(e){var n=e.date,a=e.locale;return"it"===a?t.formatDate(n,"EEEE, dd MMM yyyy",a):t.formatDate(n,"EEEE, MMM dd, yyyy",a)},n}(r.CalendarDateFormatter);v.decorators=[{type:n.Injectable}];var C,I=function(){function t(t,a,o){this.platform=t,this.tc=a,this.t=o,this.events=[],this.excludeDays=[],this.dayStartHour=0,this.dayEndHour=23,this.hourSegments=2,this.activeDayIsOpen=!1,this.view=r.CalendarView.Week,this.onlyFuture=!1,this.selectEvent=new n.EventEmitter,this.selectDay=new n.EventEmitter,this.selectSlot=new n.EventEmitter,this.changeEvent=new n.EventEmitter,this.changeDate=new n.EventEmitter,this.CalendarView=r.CalendarView,this.viewDate=new Date,this.refresh=new c.Subject,this.Attendance=e.EventAttendance}return t.prototype.ngOnInit=function(){this.locale=this.t.getCurrentLang(),this.weekStartsOn="it"===this.locale?1:0},t.prototype.beforeMonthViewRender=function(e){var n=this;e.body.forEach((function(e){n.dateIsValid(e.date,!0)||(e.cssClass="cal-disabled")}))},t.prototype.beforeWeekOrDayViewRender=function(e){var n=this;e.header.forEach((function(e){n.dateIsValid(e.date,!0)||(e.cssClass="cal-disabled")}))},t.prototype.dateIsValid=function(e,n){return!this.onlyFuture||(s.isFuture(e)||!!n&&s.isToday(e))},t.prototype.setView=function(e){this.view=e},t.prototype.viewDateChanged=function(e){this.view===r.CalendarView.Month&&(this.activeDayIsOpen=!1),this.changeDate.emit(e)},t.prototype.changeDay=function(e){var n=e.date,t=e.events;this.dateIsValid(n,!0)&&(s.isSameDay(this.viewDate,n)&&!0===this.activeDayIsOpen||!t||0===t.length?this.activeDayIsOpen=!1:this.activeDayIsOpen=!0,this.viewDate=n)},t.prototype.eventTimesChanged=function(e){var n=e.event,t=e.newStart,a=e.newEnd;n.start=t,n.end=a,this.events=this.events.slice(),this.changeEvent.emit(n)},t.prototype.getAlternateColor=function(e,n,t){var a=h.default(e);return"rgba("+Math.max(Math.min(255,Number(a.values[0])+n),0)+", "+Math.max(Math.min(255,Number(a.values[1])+n),0)+", "+Math.max(Math.min(255,Number(a.values[2])+n),0)+", "+(t||1)+")"},t.prototype.getTooltipContent=function(e){if(!e)return"";var n=e.title?"<b>"+e.title+"</b>":"";return e.description&&(n=n.concat("<br>",e.description)),e.icons&&e.icons.forEach((function(e){return n=n.concat("<br>","<i>",e.title,"</i>")})),e.avatars&&e.avatars.length&&(n=n.concat("<br><br>~"),e.avatars.forEach((function(e){return n=n.concat("<br>",e.title)}))),n},t.prototype.getPreviewDescription=function(e){return e&&e.length>100?e.slice(0,100).concat("..."):e},t.prototype.loadFallbackAvatar=function(e){var n=this.fallbackAvatar||"./assets/imgs/no-avatar.jpg";e&&e.src!==n&&(e.src=n)},t}();I.decorators=[{type:n.Component,args:[{selector:"idea-agenda",changeDetection:n.ChangeDetectionStrategy.OnPush,template:'<div class="agenda">\n \x3c!-- TOOLBAR --\x3e\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 <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 <ion-select-option [value]="CalendarView.Month">{{ \'IDEA_AGENDA.MONTH\' | translate }}</ion-select-option>\n <ion-select-option [value]="CalendarView.Week">{{ \'IDEA_AGENDA.WEEK\' | translate }}</ion-select-option>\n <ion-select-option [value]="CalendarView.Day">{{ \'IDEA_AGENDA.DAY\' | translate }}</ion-select-option>\n </ion-select>\n </ion-item>\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"></ion-icon>\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"></ion-icon>\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"></ion-icon>\n </ion-button>\n </ion-col>\n <ion-col class="ion-align-self-center" [size]="12" [sizeSm]="5" [pullSm]="7" [sizeLg]="8" [pullLg]="4">\n <h2>{{ viewDate | calendarDate: view + \'ViewTitle\':t.getCurrentLang() }}</h2>\n </ion-col>\n </ion-row>\n \x3c!-- TEMPLATES (touch only what\'s necessary and leave everything else as it is) --\x3e\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 <p *ngIf="!event.allDay">{{ getPreviewDescription(event.description) }}</p>\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.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, tc.get(\'darkMode\') ? 80 : -40)"\n [style.background-color]="getAlternateColor(weekEvent.event.color.primary, tc.get(\'darkMode\') ? 60 : 80, 0.2)"\n [mwlCalendarTooltip]="!tooltipDisabled && !platform.is(\'mobile\') ? 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"> </mwl-calendar-event-actions>\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 <div class="eventGadgets" *ngIf="!weekEvent.event.allDay">\n <ion-icon *ngFor="let icon of weekEvent.event.icons" [name]="icon.name" [title]="icon.title"></ion-icon>\n <ion-avatar *ngFor="let avatar of weekEvent.event.avatars" [title]="avatar.title">\n <ion-img [src]="avatar.url" (ionError)="loadFallbackAvatar($event?.target)"></ion-img>\n </ion-avatar>\n </div>\n </div>\n </ng-template>\n \x3c!-- VIEWS --\x3e\n <div [ngSwitch]="view">\n <mwl-calendar-month-view\n *ngSwitchCase="CalendarView.Month"\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 <mwl-calendar-week-view\n *ngSwitchCase="CalendarView.Week"\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 (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 <mwl-calendar-day-view\n *ngSwitchCase="CalendarView.Day"\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 (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 </div>\n</div>\n',styles:[".agenda{margin-top:15px}.agenda h2{margin:6px 10px;font-size:1.2em}.agenda .calendarViewSelector{--ion-item-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 ion-avatar{display:block;float:left;margin:2px 1px;width:14px;height:14px}.agenda .eventGadgets ion-icon{padding-right:2px;opacity:.7;font-size:1.15em}@media only screen and (max-width:575px){.agenda h2{margin:0 8px 12px;text-align:center}}"]}]}],I.ctorParameters=function(){return[{type:o.Platform},{type:l.IDEATinCanService},{type:l.IDEATranslationsService}]},I.propDecorators={events:[{type:n.Input}],excludeDays:[{type:n.Input}],dayStartHour:[{type:n.Input}],dayEndHour:[{type:n.Input}],hourSegments:[{type:n.Input}],activeDayIsOpen:[{type:n.Input}],view:[{type:n.Input}],onlyFuture:[{type:n.Input}],fallbackAvatar:[{type:n.Input}],selectEvent:[{type:n.Output}],selectDay:[{type:n.Output}],selectSlot:[{type:n.Output}],changeEvent:[{type:n.Output}],changeDate:[{type:n.Output}]},e.EventAttendance=void 0,(C=e.EventAttendance||(e.EventAttendance={}))[C.DECLINED=-1]="DECLINED",C[C.NEEDS_ACTION=0]="NEEDS_ACTION",C[C.TENTATIVE=1]="TENTATIVE",C[C.ACCEPTED=2]="ACCEPTED";var f=E.Plugins.Browser,_=function(){function e(e,n,t,a,o,r){this.modalCtrl=e,this.alertCtrl=n,this.message=t,this.loading=a,this.API=o,this.t=r}return e.prototype.getServiceIcon=function(e){switch(e){case u.ExternalCalendarSources.GOOGLE:return"logo-google";case u.ExternalCalendarSources.MICROSOFT:return"logo-windows";default:return"help"}},e.prototype.getRequestURL=function(e){return(e.teamId?"teams/"+e.teamId+"/":"").concat("calendars")},e.prototype.postCalendar=function(e){var n=this;return new Promise((function(t,a){n.API.postResource(n.getRequestURL(e),{idea:!0,body:e}).then((function(e){return t(new u.Calendar(e))})).catch((function(e){return a(e)}))}))},e.prototype.putCalendar=function(e){var n=this;return new Promise((function(t,a){n.API.putResource(n.getRequestURL(e),{idea:!0,resourceId:e.calendarId,body:e}).then((function(e){return t(new u.Calendar(e))})).catch((function(e){return a(e)}))}))},e.prototype.deleteCalendar=function(e){var n=this;return new Promise((function(t,a){n.API.deleteResource(n.getRequestURL(e),{idea:!0,resourceId:e.calendarId}).then((function(){return t()})).catch((function(e){return a(e)}))}))},e.prototype.setExternalCalendar=function(e,n){var t=this;return new Promise((function(a,o){t.API.patchResource(t.getRequestURL(e),{idea:!0,resourceId:e.calendarId,body:{action:"SET_EXTERNAL_CALENDAR",externalId:n}}).then((function(e){return a(new u.Calendar(e))})).catch((function(e){return o(e)}))}))},e.prototype.linkExtService=function(e){var n=this;return new Promise((function(t,a){if(!e.external)return a(new Error("NOT_EXTERNAL"));var o;switch(e.external.service){case u.ExternalCalendarSources.GOOGLE:o="https://accounts.google.com/o/oauth2/v2/auth?client_id="+encodeURIComponent(IDEA_GOOGLE_API_CLIENT_ID)+"&response_type=code&redirect_uri="+encodeURIComponent(IDEA_APP_URL.concat("/echo/google-calendars-integration"))+"&include_granted_scopes=true&access_type=offline&prompt=consent&scope="+encodeURIComponent(IDEA_GOOGLE_API_SCOPE)+"&state="+encodeURIComponent(e.calendarId);break;case u.ExternalCalendarSources.MICROSOFT:o="https://login.microsoftonline.com/common/oauth2/v2.0/authorize?client_id="+encodeURIComponent(IDEA_MICROSOFT_API_CLIENT_ID)+"&response_type=code&redirect_uri="+encodeURIComponent(IDEA_APP_URL.concat("/echo/microsoft-calendars-integration"))+"&response_mode=query&scope="+encodeURIComponent(IDEA_MICROSOFT_API_SCOPE)+"&state="+encodeURIComponent(e.calendarId)}if(!o)return a(new Error("INVALID_SERVICE"));f.open({url:o}).then((function(){n.alertCtrl.create({header:n.t._("IDEA_AGENDA.CALENDARS.LINKING_CALENDAR"),message:n.t._("IDEA_AGENDA.CALENDARS.LINKING_CALENDAR_CONFIRM_ONCE_DONE"),backdropDismiss:!1,buttons:[{text:n.t._("COMMON.DONE"),handler:function(){return t()}}]}).then((function(e){return e.present()}))}))}))},e.prototype.getExternalCalendars=function(e){var n=this;return new Promise((function(t,a){if(!e.external)return a(new Error("NOT_EXTERNAL"));n.API.patchResource(n.getRequestURL(e),{idea:!0,resourceId:e.calendarId,body:{action:"GET_ACCESS_TOKEN"}}).then((function(o){var r={Authorization:"Bearer ".concat(o.token)};switch(e.external.service){case u.ExternalCalendarSources.GOOGLE:n.API.rawRequest().get("https://www.googleapis.com/calendar/v3/users/me/calendarList",{headers:r}).toPromise().then((function(e){return t(e.items.map((function(e){return{name:e.summary,id:e.id}})))})).catch((function(e){return a(e)}));break;case u.ExternalCalendarSources.MICROSOFT:n.API.rawRequest().get("https://graph.microsoft.com/v1.0/me/calendars",{headers:r}).toPromise().then((function(e){return t(e.value.map((function(e){return{name:e.name,id:e.id}})))})).catch((function(e){return a(e)}))}})).catch((function(e){return a(e)}))}))},e.prototype.chooseAndSetExternalCalendar=function(e){var n=this;return new Promise((function(t,a){n.openModalAndPickExternalCalendar(e).then((function(o){if(!o)return t(null);n.setExternalCalendar(e,o).then((function(e){return t(e)})).catch((function(e){return a(e)}))})).catch((function(e){return a(e)}))}))},e.prototype.openModalAndPickExternalCalendar=function(e){return D(this,void 0,void 0,(function(){var n=this;return m(this,(function(t){switch(t.label){case 0:return[4,this.loading.show()];case 1:return t.sent(),[2,new Promise((function(t,a){n.getExternalCalendars(e).then((function(e){if(!e.length)return a(new Error("NO_EXTERNAL_CALENDARS"));n.modalCtrl.create({component:l.IDEASuggestionsComponent,componentProps:{data:e.map((function(e){return new u.Suggestion({value:e.id,name:e.name})})),searchPlaceholder:n.t._("IDEA_AGENDA.CALENDARS.CHOOSE_AN_EXTERNAL_CALENDAR_TO_LINK"),sortData:!0,hideIdFromUI:!0,hideClearButton:!0,mustChoose:!0},backdropDismiss:!1}).then((function(e){e.onDidDismiss().then((function(e){return t(e.data?e.data.value:null)})),e.present()}))})).catch((function(e){return a(e)})).finally((function(){return n.loading.hide()}))}))]}}))}))},e.prototype.syncCalendar=function(e){var n=this;return new Promise((function(t,a){return n.syncCalendarHelper(e,(function(e){return e?a(e):t()}))}))},e.prototype.syncCalendarHelper=function(e,n){var t=this;this.API.patchResource(this.getRequestURL(e),{idea:!0,resourceId:e.calendarId,body:{action:"SYNC_EXTERNAL_CALENDAR",firstSync:!0}}).then((function(a){a.moreData?t.syncCalendarHelper(e,n):n()})).catch((function(e){return n(e)}))},e}();_.decorators=[{type:n.Injectable}],_.ctorParameters=function(){return[{type:o.ModalController},{type:o.AlertController},{type:l.IDEAMessageService},{type:l.IDEALoadingService},{type:l.IDEAAWSAPIService},{type:l.IDEATranslationsService}]};var g=function(){function e(e,n,t,a,o,r,i,l){this.calendars=e,this.modalCtrl=n,this.alertCtrl=t,this.tc=a,this.loading=o,this.message=r,this.API=i,this.t=l,this.errors=new Set,this.DEFAULT_COLOR="#555"}return e.prototype.ngOnInit=function(){var e=this;this.membership=this.tc.get("membership"),this._calendar=new u.Calendar(this.calendar),this.API.getResource("teams/"+this.membership.teamId+"/memberships").then((function(n){return e.membershipsChecks=n.map((function(n){return new u.Check({value:n.userId,name:n.name,checked:(e._calendar.usersCanManageAppointments||[]).some((function(e){return e===n.userId}))})}))})).catch((function(){}))},e.prototype.hasFieldAnError=function(e){return this.errors.has(e)},e.prototype.save=function(){return D(this,void 0,void 0,(function(){var e=this;return m(this,(function(n){switch(n.label){case 0:return this._calendar.color||(this._calendar.color=this.DEFAULT_COLOR),this._calendar.isShared()&&this.advancedPermissions?this._calendar.usersCanManageAppointments=this.membershipsChecks.filter((function(e){return e.checked})).map((function(e){return String(e.value)})):delete this._calendar.usersCanManageAppointments,this.errors=new Set(this._calendar.validate()),this.errors.size?[2,this.message.error("COMMON.FORM_HAS_ERROR_TO_CHECK")]:[4,this.loading.show()];case 1:return n.sent(),this.calendars.putCalendar(this._calendar).then((function(n){e.calendar.load(n),e.message.success("IDEA_AGENDA.CALENDARS.CALENDAR_SAVED"),e.modalCtrl.dismiss(e.calendar)})).catch((function(){return e.message.error("COMMON.OPERATION_FAILED")})).finally((function(){return e.loading.hide()})),[2]}}))}))},e.prototype.delete=function(){var e=this;this.alertCtrl.create({header:this.t._("COMMON.ARE_YOU_SURE"),subHeader:this.t._("IDEA_AGENDA.CALENDARS.DELETE_CALENDAR"),message:this.t._("IDEA_AGENDA.CALENDARS.DELETE_CALENDAR_HINT"),buttons:[{text:this.t._("COMMON.CANCEL"),role:"cancel"},{text:this.t._("COMMON.DELETE"),handler:function(){return D(e,void 0,void 0,(function(){var e=this;return m(this,(function(n){switch(n.label){case 0:return[4,this.loading.show()];case 1:return n.sent(),this.calendars.deleteCalendar(this._calendar).then((function(){e.message.success("IDEA_AGENDA.CALENDARS.CALENDAR_DELETED"),e.modalCtrl.dismiss(!0)})).catch((function(){return e.message.error("COMMON.OPERATION_FAILED")})).finally((function(){return e.loading.hide()})),[2]}}))}))}}]}).then((function(e){return e.present()}))},e.prototype.close=function(){this.modalCtrl.dismiss()},e}();g.decorators=[{type:n.Component,args:[{selector:"idea-calendar",template:'<ion-header>\n <ion-toolbar color="ideaToolbar">\n <ion-buttons slot="start">\n <ion-button [title]="t._(\'COMMON.CLOSE\')" (click)="close()">\n <ion-icon name="close-circle" slot="icon-only"></ion-icon>\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]="t._(\'COMMON.SAVE\')" (click)="save()">\n <ion-icon name="checkmark-circle" slot="icon-only"></ion-icon>\n </ion-button>\n </ion-buttons>\n </ion-toolbar>\n</ion-header>\n<ion-content>\n <div class="maxWidthContainer" *ngIf="_calendar">\n <ion-list class="aList">\n <ion-item\n lines="inset"\n [class.fieldHasError]="hasFieldAnError(\'name\')"\n [title]="t._(\'IDEA_AGENDA.CALENDARS.NAME_HINT\')"\n >\n <ion-label position="stacked">{{ \'IDEA_AGENDA.CALENDARS.NAME\' | translate }} </ion-label>\n <ion-input [placeholder]="t._(\'IDEA_AGENDA.CALENDARS.NAME_HINT\')" [(ngModel)]="_calendar.name"></ion-input>\n </ion-item>\n <ion-item\n lines="inset"\n [class.fieldHasError]="hasFieldAnError(\'description\')"\n [title]="t._(\'IDEA_AGENDA.CALENDARS.DESCRIPTION_HINT\')"\n >\n <ion-label position="stacked">{{ \'IDEA_AGENDA.CALENDARS.DESCRIPTION\' | translate }} </ion-label>\n <ion-input\n [placeholder]="t._(\'IDEA_AGENDA.CALENDARS.DESCRIPTION_HINT\')"\n [(ngModel)]="_calendar.description"\n ></ion-input>\n </ion-item>\n <idea-color-picker\n *ngIf="!hideColor"\n [lines]="\'inset\'"\n [current]="_calendar.color"\n [label]="t._(\'IDEA_AGENDA.CALENDARS.COLOR\')"\n [class.fieldHasError]="hasFieldAnError(\'color\')"\n (select)="$event ? (_calendar.color = $event) : null"\n ></idea-color-picker>\n <idea-checker\n *ngIf="membershipsChecks && _calendar.isShared() && advancedPermissions"\n [data]="membershipsChecks"\n [label]="t._(\'IDEA_AGENDA.CALENDARS.USERS_ALLOWED_TO_MANAGE_APPOINTMENTS\')"\n [searchPlaceholder]="t._(\'IDEA_AGENDA.CALENDARS.WHO_CAN_MANAGE_APPOINTMENTS\')"\n [noneText]="t._(\'IDEA_AGENDA.CALENDARS.NOBODY\')"\n [allText]="t._(\'IDEA_AGENDA.CALENDARS.EVERYONE\')"\n [allowSelectDeselectAll]="true"\n [lines]="\'inset\'"\n ></idea-checker>\n </ion-list>\n <ion-list class="aList" *ngIf="_calendar.external?.service">\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 <ion-item lines="inset" *ngIf="calendar.userId">\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"></ion-icon>\n </ion-item>\n <ion-item lines="inset" *ngIf="calendar.teamId">\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"></ion-icon>\n </ion-item>\n <ion-item lines="inset">\n <ion-label>\n {{ \'IDEA_AGENDA.CALENDARS.LINKED_TO\' | translate }}\n {{ \'IDEA_AGENDA.CALENDARS.SERVICES.\' + _calendar.external.service | translate }}\n <p>{{ _calendar.external.name }} ({{ _calendar.external.email }})</p>\n </ion-label>\n <ion-icon slot="end" [name]="calendars.getServiceIcon(_calendar.external.service)"></ion-icon>\n </ion-item>\n <ion-item lines="inset">\n <ion-label>\n {{ \'IDEA_AGENDA.CALENDARS.ACCESS_LEVELS.\' + _calendar.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"></ion-icon>\n </ion-item>\n </ion-list>\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 color="danger" [title]="t._(\'IDEA_AGENDA.CALENDARS.DELETE_CALENDAR_HINT\')" (click)="delete()">\n {{ \'COMMON.DELETE\' | translate }}\n </ion-button>\n </ion-item>\n </ion-list>\n </div>\n</ion-content>\n',styles:[".maxWidthContainer{max-width:500px;padding-top:20px}"]}]}],g.ctorParameters=function(){return[{type:_},{type:o.ModalController},{type:o.AlertController},{type:l.IDEATinCanService},{type:l.IDEALoadingService},{type:l.IDEAMessageService},{type:l.IDEAAWSAPIService},{type:l.IDEATranslationsService}]},g.propDecorators={calendar:[{type:n.Input}],advancedPermissions:[{type:n.Input}],hideColor:[{type:n.Input}]};var N=function(){function e(e,t,a,o,r,i){this.calendars=e,this.alertCtrl=t,this.modalCtrl=a,this.message=o,this.loading=r,this.t=i,this.somethingChanged=new n.EventEmitter}return e.prototype.manageCalendar=function(){var e=this;this.disabled||this.modalCtrl.create({component:g,componentProps:{calendar:this.calendar,advancedPermissions:this.advancedPermissions,hideColor:this.hideColor}}).then((function(n){n.onDidDismiss().then((function(n){var t=n.data;void 0!==t&&(null===t?e.calendar=null:e.calendar.load(t),e.somethingChanged.emit())})),n.present()}))},e.prototype.linkExtCalendarOrDelete=function(){var e=this;this.disabled||this.calendars.chooseAndSetExternalCalendar(this.calendar).then((function(n){return D(e,void 0,void 0,(function(){var e=this;return m(this,(function(t){switch(t.label){case 0:return n?(this.calendar.load(n),this.message.success("IDEA_AGENDA.CALENDARS.CALENDAR_LINKED"),[4,this.loading.show(this.t._("IDEA_AGENDA.CALENDARS.FIRST_SYNC_MAY_TAKE_A_WHILE"))]):[2,new Error("NO_EXTERNAL_CALENDAR_CHOSEN")];case 1:return t.sent(),this.calendars.syncCalendar(this.calendar).then((function(){return e.message.success("IDEA_AGENDA.CALENDARS.FIRST_SYNC_COMPLETED")})).catch((function(){return e.message.error("COMMON.OPERATION_FAILED")})).finally((function(){e.loading.hide(),e.somethingChanged.emit()})),[2]}}))}))})).catch((function(){e.alertCtrl.create({header:e.t._("IDEA_AGENDA.CALENDARS.CALENDAR_NOT_YET_LINKED"),message:e.t._("IDEA_AGENDA.CALENDARS.DO_YOU_WANT_PROCEED_LINKING_OR_DELETE"),buttons:[{text:e.t._("COMMON.DELETE"),handler:function(){return D(e,void 0,void 0,(function(){var e=this;return m(this,(function(n){switch(n.label){case 0:return[4,this.loading.show()];case 1:return n.sent(),this.calendars.deleteCalendar(this.calendar).then((function(){e.message.success("COMMON.OPERATION_COMPLETED"),e.somethingChanged.emit()})).catch((function(){return e.message.error("COMMON.OPERATION_FAILED")})).finally((function(){return e.loading.hide()})),[2]}}))}))}},{text:e.t._("IDEA_AGENDA.CALENDARS.LINK"),handler:function(){return e.calendars.linkExtService(e.calendar).then((function(){return e.linkExtCalendarOrDelete()})).catch((function(){return e.message.error("COMMON.OPERATION_FAILED")}))}}]}).then((function(e){return e.present()}))}))},e}();N.decorators=[{type:n.Component,args:[{selector:"idea-calendar-item",template:'<ion-item\n class="calendarItem"\n *ngIf="calendar"\n [button]="!disabled"\n [title]="t._(\'IDEA_AGENDA.CALENDARS.EDIT_CALENDAR\')"\n (click)="calendar.external && !calendar.external.calendarId ? linkExtCalendarOrDelete() : manageCalendar()"\n>\n <ion-avatar\n slot="start"\n class="colorCircle"\n *ngIf="!hideColor"\n [style.background-color]="calendar.color"\n ></ion-avatar>\n <ion-label>\n {{ calendar.name }}\n <p>\n <ion-text color="danger" *ngIf="calendar.external && !calendar.external.calendarId">\n {{ \'IDEA_AGENDA.CALENDARS.TAP_TO_CONFIGURE\' | translate }}\n </ion-text>\n {{ calendar.description }}\n </p>\n </ion-label>\n <ion-icon\n slot="end"\n color="danger"\n name="flash-off"\n *ngIf="calendar.external && !calendar.external.calendarId"\n [title]="t._(\'IDEA_AGENDA.CALENDARS.CALENDAR_NOT_YET_LINKED_HINT\')"\n ></ion-icon>\n <ion-icon\n slot="end"\n *ngIf="calendar.external?.service"\n [name]="calendars.getServiceIcon(calendar.external.service)"\n [title]="\n t._(\'IDEA_AGENDA.CALENDARS.LINKED_TO\') + \' \' + t._(\'IDEA_AGENDA.CALENDARS.SERVICES.\' + calendar.external.service)\n "\n ></ion-icon>\n</ion-item>\n',styles:[".calendarItem ion-avatar.colorCircle{width:20px;height:20px;background-color:#555}"]}]}],N.ctorParameters=function(){return[{type:_},{type:o.AlertController},{type:o.ModalController},{type:l.IDEAMessageService},{type:l.IDEALoadingService},{type:l.IDEATranslationsService}]},N.propDecorators={calendar:[{type:n.Input}],disabled:[{type:n.Input}],advancedPermissions:[{type:n.Input}],hideColor:[{type:n.Input}],somethingChanged:[{type:n.Output}]};var y,S=function(){function n(e,n,t,a,o,r,i){this.calendars=e,this.modalCtrl=n,this.tc=t,this.loading=a,this.message=o,this.API=r,this.t=i,this.DEFAULT_COLOR="#555",this.SOURCES=Object.keys(u.ExternalCalendarSources)}return n.prototype.ngOnInit=function(){this.calendar=new u.Calendar,this.membership=this.tc.get("membership"),this.fixScope===e.CalendarScopes.SHARED&&(this.calendar.teamId=this.membership.teamId),this.fixScope===e.CalendarScopes.PRIVATE&&(this.calendar.userId=this.membership.userId)},n.prototype.resetScope=function(){this.canChangeScope()&&(this.calendar.teamId=this.calendar.userId=null)},n.prototype.canChangeScope=function(){return!this.fixScope&&this.scopeIsSet()},n.prototype.scopeIsSet=function(){return Boolean(this.calendar.userId)||Boolean(this.calendar.teamId)},n.prototype.saveNewCalendar=function(e){return D(this,void 0,void 0,(function(){var n=this;return m(this,(function(t){switch(t.label){case 0:return this.scopeIsSet()?!e&&this.onlyExternalCalendars?[2]:(e?(this.calendar.external=new u.ExternalCalendarInfo({service:e}),this.calendar.name="-"):(this.calendar.name=this.calendar.userId?this.t._("IDEA_AGENDA.CALENDARS.DEFAULT_PERSONAL_CALENDAR_NAME"):this.t._("IDEA_AGENDA.CALENDARS.DEFAULT_TEAM_CALENDAR_NAME"),this.calendar.color=this.DEFAULT_COLOR),[4,this.loading.show()]):[2];case 1:return t.sent(),this.calendars.postCalendar(this.calendar).then((function(e){if(n.calendar.load(e),n.message.success("IDEA_AGENDA.CALENDARS.CALENDAR_CREATED"),!e.external)return n.modalCtrl.dismiss(n.calendar);n.calendars.linkExtService(n.calendar).then((function(){return n.calendars.chooseAndSetExternalCalendar(n.calendar)})).then((function(e){return D(n,void 0,void 0,(function(){var n=this;return m(this,(function(t){switch(t.label){case 0:return e?(this.calendar.load(e),[4,this.loading.show(this.t._("IDEA_AGENDA.CALENDARS.FIRST_SYNC_MAY_TAKE_A_WHILE"))]):[2,this.modalCtrl.dismiss(this.calendar)];case 1:return t.sent(),this.calendars.syncCalendar(this.calendar).then((function(){return n.message.success("IDEA_AGENDA.CALENDARS.FIRST_SYNC_COMPLETED")})).catch((function(){return n.message.error("COMMON.OPERATION_FAILED")})).finally((function(){n.loading.hide(),n.modalCtrl.dismiss(n.calendar)})),[2]}}))}))})).catch((function(){n.message.error("COMMON.OPERATION_FAILED"),n.modalCtrl.dismiss(n.calendar)}))})).catch((function(){return n.message.error("COMMON.OPERATION_FAILED")})).finally((function(){return n.loading.hide()})),[2]}}))}))},n.prototype.close=function(){this.modalCtrl.dismiss()},n}();S.decorators=[{type:n.Component,args:[{selector:"idea-calendar-creation",template:'<ion-header>\n <ion-toolbar color="ideaToolbar">\n <ion-buttons slot="start">\n <ion-button *ngIf="!canChangeScope()" [title]="t._(\'COMMON.CLOSE\')" (click)="close()">\n <ion-icon name="close" slot="icon-only"></ion-icon>\n </ion-button>\n <ion-button *ngIf="canChangeScope()" (click)="resetScope()">\n <ion-icon name="arrow-back" slot="icon-only"></ion-icon>\n </ion-button>\n </ion-buttons>\n <ion-title>\n <span *ngIf="!scopeIsSet()">{{ \'IDEA_AGENDA.CALENDARS.ADD_A_CALENDAR\' | translate }}</span>\n <span *ngIf="calendar.userId">{{ \'IDEA_AGENDA.CALENDARS.PERSONAL_CALENDAR\' | translate }}</span>\n <span *ngIf="calendar.teamId">\n {{ \'IDEA_AGENDA.CALENDARS.TEAM_CALENDAR\' | translate: { team: tc.get(\'team\').name } }}\n </span>\n </ion-title>\n </ion-toolbar>\n</ion-header>\n<ion-content>\n \x3c!-- 1st STEP --\x3e\n <ion-grid class="ion-padding choiceGrid" *ngIf="!scopeIsSet()">\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"></ion-icon>\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"></ion-icon>\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 \x3c!-- 2nd STEP --\x3e\n <ion-grid class="ion-padding choiceGrid" *ngIf="scopeIsSet()">\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 <ion-col class="ion-text-center" [size]="12" *ngIf="!onlyExternalCalendars">\n <ion-card class="step2" [button]="true" (click)="saveNewCalendar()">\n <ion-card-header>\n <ion-card-title>\n <ion-icon name="remove"></ion-icon>\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 <ion-col class="ion-text-center" *ngFor="let s of SOURCES" [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)"></ion-icon>\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 </ion-row>\n </ion-grid>\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}"]}]}],S.ctorParameters=function(){return[{type:_},{type:o.ModalController},{type:l.IDEATinCanService},{type:l.IDEALoadingService},{type:l.IDEAMessageService},{type:l.IDEAAWSAPIService},{type:l.IDEATranslationsService}]},S.propDecorators={fixScope:[{type:n.Input}],onlyExternalCalendars:[{type:n.Input}]},e.CalendarScopes=void 0,(y=e.CalendarScopes||(e.CalendarScopes={})).SHARED="shared",y.PRIVATE="private";var w=i.adapterFactory,R=function(){};R.decorators=[{type:n.NgModule,args:[{imports:[t.CommonModule,a.FormsModule,o.IonicModule,l.IDEATranslationsModule,l.IDEAColorPickerModule,l.IDEACheckerModule,r.CalendarModule.forRoot({provide:r.DateAdapter,useFactory:w})],declarations:[I,g,N,S],entryComponents:[I,g,N,S],exports:[I,g,N,S],providers:[{provide:r.CalendarDateFormatter,useClass:v},_]}]}],e.CustomDateFormatter=v,e.IDEAAgendaComponent=I,e.IDEAAgendaModule=R,e.IDEACalendarComponent=g,e.IDEACalendarCreationComponent=S,e.IDEACalendarItemComponent=N,e.IDEACalendarsService=_,e.ɵ0=w,Object.defineProperty(e,"__esModule",{value:!0})}));
|
|
15
|
+
***************************************************************************** */function D(e,n,t,a){return new(t||(t=Promise))((function(o,r){function i(e){try{c(a.next(e))}catch(e){r(e)}}function l(e){try{c(a.throw(e))}catch(e){r(e)}}function c(e){var n;e.done?o(e.value):(n=e.value,n instanceof t?n:new t((function(e){e(n)}))).then(i,l)}c((a=a.apply(e,n||[])).next())}))}function v(e,n){var t,a,o,r,i={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]};return r={next:l(0),throw:l(1),return:l(2)},"function"==typeof Symbol&&(r[Symbol.iterator]=function(){return this}),r;function l(r){return function(l){return function(r){if(t)throw new TypeError("Generator is already executing.");for(;i;)try{if(t=1,a&&(o=2&r[0]?a.return:r[0]?a.throw||((o=a.return)&&o.call(a),0):a.next)&&!(o=o.call(a,r[1])).done)return o;switch(a=0,o&&(r=[2&r[0],o.value]),r[0]){case 0:case 1:o=r;break;case 4:return i.label++,{value:r[1],done:!1};case 5:i.label++,a=r[1],r=[0];continue;case 7:r=i.ops.pop(),i.trys.pop();continue;default:if(!(o=i.trys,(o=o.length>0&&o[o.length-1])||6!==r[0]&&2!==r[0])){i=0;continue}if(3===r[0]&&(!o||r[1]>o[0]&&r[1]<o[3])){i.label=r[1];break}if(6===r[0]&&i.label<o[1]){i.label=o[1],o=r;break}if(o&&i.label<o[2]){i.label=o[2],i.ops.push(r);break}o[2]&&i.ops.pop(),i.trys.pop();continue}r=n.call(e,i)}catch(e){r=[6,e],a=0}finally{t=o=0}if(5&r[0])throw r[1];return{value:r[0]?r[1]:void 0,done:!0}}([r,l])}}}Object.create;Object.create;var C=function(e){function n(){return null!==e&&e.apply(this,arguments)||this}return function(e,n){if("function"!=typeof n&&null!==n)throw new TypeError("Class extends value "+String(n)+" is not a constructor or null");function t(){this.constructor=e}m(e,n),e.prototype=null===n?Object.create(n):(t.prototype=n.prototype,new t)}(n,e),n.prototype.monthViewColumnHeader=function(e){var n=e.date,a=e.locale;return t.formatDate(n,"EEE",a)},n.prototype.monthViewTitle=function(e){var n=e.date,a=e.locale;return t.formatDate(n,"MMMM y",a)},n.prototype.weekViewHour=function(e){var n=e.date,a=e.locale;return"it"===a?t.formatDate(n,"HH:mm",a):t.formatDate(n,"h aa",a)},n.prototype.weekViewColumnHeader=function(e){var n=e.date,a=e.locale;return t.formatDate(n,"EEE",a)},n.prototype.weekViewTitle=function(e){var n=e.date,a=e.locale;return t.formatDate(n,"MMMM yyyy",a)},n.prototype.dayViewHour=function(e){var n=e.date,a=e.locale;return"it"===a?t.formatDate(n,"HH:mm",a):t.formatDate(n,"h aa",a)},n.prototype.dayViewTitle=function(e){var n=e.date,a=e.locale;return"it"===a?t.formatDate(n,"EEEE, dd MMM yyyy",a):t.formatDate(n,"EEEE, MMM dd, yyyy",a)},n}(r.CalendarDateFormatter);C.decorators=[{type:n.Injectable}];var f,I=function(){function t(t,a,o){this.platform=t,this.tc=a,this.t=o,this.events=[],this.excludeDays=[],this.dayStartHour=0,this.dayEndHour=23,this.hourSegments=2,this.activeDayIsOpen=!1,this.view=r.CalendarView.Week,this.onlyFuture=!1,this.selectEvent=new n.EventEmitter,this.selectDay=new n.EventEmitter,this.selectSlot=new n.EventEmitter,this.changeEvent=new n.EventEmitter,this.changeDate=new n.EventEmitter,this.CalendarView=r.CalendarView,this.viewDate=new Date,this.refresh=new c.Subject,this.Attendance=e.EventAttendance}return t.prototype.ngOnInit=function(){this.locale=this.t.getCurrentLang(),this.weekStartsOn="it"===this.locale?1:0},t.prototype.beforeMonthViewRender=function(e){var n=this;e.body.forEach((function(e){n.dateIsValid(e.date,!0)||(e.cssClass="cal-disabled")}))},t.prototype.beforeWeekOrDayViewRender=function(e){var n=this;e.header.forEach((function(e){n.dateIsValid(e.date,!0)||(e.cssClass="cal-disabled")}))},t.prototype.dateIsValid=function(e,n){return!this.onlyFuture||(s.isFuture(e)||!!n&&s.isToday(e))},t.prototype.setView=function(e){this.view=e},t.prototype.viewDateChanged=function(e){this.view===r.CalendarView.Month&&(this.activeDayIsOpen=!1),this.changeDate.emit(e)},t.prototype.changeDay=function(e){var n=e.date,t=e.events;this.dateIsValid(n,!0)&&(s.isSameDay(this.viewDate,n)&&!0===this.activeDayIsOpen||!t||0===t.length?this.activeDayIsOpen=!1:this.activeDayIsOpen=!0,this.viewDate=n)},t.prototype.eventTimesChanged=function(e){var n=e.event,t=e.newStart,a=e.newEnd;n.start=t,n.end=a,this.events=this.events.slice(),this.changeEvent.emit(n)},t.prototype.getAlternateColor=function(e,n,t){var a=h.default(e);return"rgba("+Math.max(Math.min(255,Number(a.values[0])+n),0)+", "+Math.max(Math.min(255,Number(a.values[1])+n),0)+", "+Math.max(Math.min(255,Number(a.values[2])+n),0)+", "+(t||1)+")"},t.prototype.getTooltipContent=function(e){if(!e)return"";var n=e.title?"<b>"+e.title+"</b>":"";return e.description&&(n=n.concat("<br>",e.description)),e.icons&&e.icons.forEach((function(e){return n=n.concat("<br>","<i>",e.title,"</i>")})),e.avatars&&e.avatars.length&&(n=n.concat("<br><br>~"),e.avatars.forEach((function(e){return n=n.concat("<br>",e.title)}))),n},t.prototype.getPreviewDescription=function(e){return e&&e.length>100?e.slice(0,100).concat("..."):e},t.prototype.loadFallbackAvatar=function(e){var n=this.fallbackAvatar||"./assets/imgs/no-avatar.jpg";e&&e.src!==n&&(e.src=n)},t}();I.decorators=[{type:n.Component,args:[{selector:"idea-agenda",changeDetection:n.ChangeDetectionStrategy.OnPush,template:'<div class="agenda">\n \x3c!-- TOOLBAR --\x3e\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 <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 <ion-select-option [value]="CalendarView.Month">{{ \'IDEA_AGENDA.MONTH\' | translate }}</ion-select-option>\n <ion-select-option [value]="CalendarView.Week">{{ \'IDEA_AGENDA.WEEK\' | translate }}</ion-select-option>\n <ion-select-option [value]="CalendarView.Day">{{ \'IDEA_AGENDA.DAY\' | translate }}</ion-select-option>\n </ion-select>\n </ion-item>\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"></ion-icon>\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"></ion-icon>\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"></ion-icon>\n </ion-button>\n </ion-col>\n <ion-col class="ion-align-self-center" [size]="12" [sizeSm]="5" [pullSm]="7" [sizeLg]="8" [pullLg]="4">\n <h2>{{ viewDate | calendarDate: view + \'ViewTitle\':t.getCurrentLang() }}</h2>\n </ion-col>\n </ion-row>\n \x3c!-- TEMPLATES (touch only what\'s necessary and leave everything else as it is) --\x3e\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 <p *ngIf="!event.allDay">{{ getPreviewDescription(event.description) }}</p>\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.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, tc.get(\'darkMode\') ? 80 : -40)"\n [style.background-color]="getAlternateColor(weekEvent.event.color.primary, tc.get(\'darkMode\') ? 60 : 80, 0.2)"\n [mwlCalendarTooltip]="!tooltipDisabled && !platform.is(\'mobile\') ? 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"> </mwl-calendar-event-actions>\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 <div class="eventGadgets" *ngIf="!weekEvent.event.allDay">\n <ion-icon *ngFor="let icon of weekEvent.event.icons" [name]="icon.name" [title]="icon.title"></ion-icon>\n <ion-avatar *ngFor="let avatar of weekEvent.event.avatars" [title]="avatar.title">\n <ion-img [src]="avatar.url" (ionError)="loadFallbackAvatar($event?.target)"></ion-img>\n </ion-avatar>\n </div>\n </div>\n </ng-template>\n \x3c!-- VIEWS --\x3e\n <div [ngSwitch]="view">\n <mwl-calendar-month-view\n *ngSwitchCase="CalendarView.Month"\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 <mwl-calendar-week-view\n *ngSwitchCase="CalendarView.Week"\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 (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 <mwl-calendar-day-view\n *ngSwitchCase="CalendarView.Day"\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 (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 </div>\n</div>\n',styles:[".agenda{margin-top:15px}.agenda h2{margin:6px 10px;font-size:1.2em}.agenda .calendarViewSelector{--ion-item-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 ion-avatar{display:block;float:left;margin:2px 1px;width:14px;height:14px}.agenda .eventGadgets ion-icon{padding-right:2px;opacity:.7;font-size:1.15em}@media only screen and (max-width:575px){.agenda h2{margin:0 8px 12px;text-align:center}}"]}]}],I.ctorParameters=function(){return[{type:o.Platform},{type:l.IDEATinCanService},{type:l.IDEATranslationsService}]},I.propDecorators={events:[{type:n.Input}],excludeDays:[{type:n.Input}],dayStartHour:[{type:n.Input}],dayEndHour:[{type:n.Input}],hourSegments:[{type:n.Input}],activeDayIsOpen:[{type:n.Input}],view:[{type:n.Input}],onlyFuture:[{type:n.Input}],fallbackAvatar:[{type:n.Input}],selectEvent:[{type:n.Output}],selectDay:[{type:n.Output}],selectSlot:[{type:n.Output}],changeEvent:[{type:n.Output}],changeDate:[{type:n.Output}]},(f=e.EventAttendance||(e.EventAttendance={}))[f.DECLINED=-1]="DECLINED",f[f.NEEDS_ACTION=0]="NEEDS_ACTION",f[f.TENTATIVE=1]="TENTATIVE",f[f.ACCEPTED=2]="ACCEPTED";var g=E.Plugins.Browser,N=function(){function e(e,n,t,a,o,r){this.modalCtrl=e,this.alertCtrl=n,this.message=t,this.loading=a,this.API=o,this.t=r}return e.prototype.getServiceIcon=function(e){switch(e){case u.ExternalCalendarSources.GOOGLE:return"logo-google";case u.ExternalCalendarSources.MICROSOFT:return"logo-windows";default:return"help"}},e.prototype.getRequestURL=function(e){return(e.teamId?"teams/"+e.teamId+"/":"").concat("calendars")},e.prototype.postCalendar=function(e){var n=this;return new Promise((function(t,a){n.API.postResource(n.getRequestURL(e),{idea:!0,body:e}).then((function(e){return t(new u.Calendar(e))})).catch((function(e){return a(e)}))}))},e.prototype.putCalendar=function(e){var n=this;return new Promise((function(t,a){n.API.putResource(n.getRequestURL(e),{idea:!0,resourceId:e.calendarId,body:e}).then((function(e){return t(new u.Calendar(e))})).catch((function(e){return a(e)}))}))},e.prototype.deleteCalendar=function(e){var n=this;return new Promise((function(t,a){n.API.deleteResource(n.getRequestURL(e),{idea:!0,resourceId:e.calendarId}).then((function(){return t()})).catch((function(e){return a(e)}))}))},e.prototype.setExternalCalendar=function(e,n){var t=this;return new Promise((function(a,o){t.API.patchResource(t.getRequestURL(e),{idea:!0,resourceId:e.calendarId,body:{action:"SET_EXTERNAL_CALENDAR",externalId:n}}).then((function(e){return a(new u.Calendar(e))})).catch((function(e){return o(e)}))}))},e.prototype.linkExtService=function(e){var n=this;return new Promise((function(t,a){if(!e.external)return a(new Error("NOT_EXTERNAL"));var o;switch(e.external.service){case u.ExternalCalendarSources.GOOGLE:o="https://accounts.google.com/o/oauth2/v2/auth?client_id="+encodeURIComponent(A.environment.google.apiClientId)+"&response_type=code&redirect_uri="+encodeURIComponent(A.environment.idea.app.url.concat("/echo/google-calendars-integration"))+"&include_granted_scopes=true&access_type=offline&prompt=consent&scope="+encodeURIComponent(A.environment.google.apiScope)+"&state="+encodeURIComponent(e.calendarId);break;case u.ExternalCalendarSources.MICROSOFT:o="https://login.microsoftonline.com/common/oauth2/v2.0/authorize?client_id="+encodeURIComponent(A.environment.microsoft.apiClientId)+"&response_type=code&redirect_uri="+encodeURIComponent(A.environment.idea.app.url.concat("/echo/microsoft-calendars-integration"))+"&response_mode=query&scope="+encodeURIComponent(A.environment.microsoft.apiScope)+"&state="+encodeURIComponent(e.calendarId)}if(!o)return a(new Error("INVALID_SERVICE"));g.open({url:o}).then((function(){n.alertCtrl.create({header:n.t._("IDEA_AGENDA.CALENDARS.LINKING_CALENDAR"),message:n.t._("IDEA_AGENDA.CALENDARS.LINKING_CALENDAR_CONFIRM_ONCE_DONE"),backdropDismiss:!1,buttons:[{text:n.t._("COMMON.DONE"),handler:function(){return t()}}]}).then((function(e){return e.present()}))}))}))},e.prototype.getExternalCalendars=function(e){var n=this;return new Promise((function(t,a){if(!e.external)return a(new Error("NOT_EXTERNAL"));n.API.patchResource(n.getRequestURL(e),{idea:!0,resourceId:e.calendarId,body:{action:"GET_ACCESS_TOKEN"}}).then((function(o){var r={Authorization:"Bearer ".concat(o.token)};switch(e.external.service){case u.ExternalCalendarSources.GOOGLE:n.API.rawRequest().get("https://www.googleapis.com/calendar/v3/users/me/calendarList",{headers:r}).toPromise().then((function(e){return t(e.items.map((function(e){return{name:e.summary,id:e.id}})))})).catch((function(e){return a(e)}));break;case u.ExternalCalendarSources.MICROSOFT:n.API.rawRequest().get("https://graph.microsoft.com/v1.0/me/calendars",{headers:r}).toPromise().then((function(e){return t(e.value.map((function(e){return{name:e.name,id:e.id}})))})).catch((function(e){return a(e)}))}})).catch((function(e){return a(e)}))}))},e.prototype.chooseAndSetExternalCalendar=function(e){var n=this;return new Promise((function(t,a){n.openModalAndPickExternalCalendar(e).then((function(o){if(!o)return t(null);n.setExternalCalendar(e,o).then((function(e){return t(e)})).catch((function(e){return a(e)}))})).catch((function(e){return a(e)}))}))},e.prototype.openModalAndPickExternalCalendar=function(e){return D(this,void 0,void 0,(function(){var n=this;return v(this,(function(t){switch(t.label){case 0:return[4,this.loading.show()];case 1:return t.sent(),[2,new Promise((function(t,a){n.getExternalCalendars(e).then((function(e){if(!e.length)return a(new Error("NO_EXTERNAL_CALENDARS"));n.modalCtrl.create({component:l.IDEASuggestionsComponent,componentProps:{data:e.map((function(e){return new u.Suggestion({value:e.id,name:e.name})})),searchPlaceholder:n.t._("IDEA_AGENDA.CALENDARS.CHOOSE_AN_EXTERNAL_CALENDAR_TO_LINK"),sortData:!0,hideIdFromUI:!0,hideClearButton:!0,mustChoose:!0},backdropDismiss:!1}).then((function(e){e.onDidDismiss().then((function(e){return t(e.data?e.data.value:null)})),e.present()}))})).catch((function(e){return a(e)})).finally((function(){return n.loading.hide()}))}))]}}))}))},e.prototype.syncCalendar=function(e){var n=this;return new Promise((function(t,a){return n.syncCalendarHelper(e,(function(e){return e?a(e):t()}))}))},e.prototype.syncCalendarHelper=function(e,n){var t=this;this.API.patchResource(this.getRequestURL(e),{idea:!0,resourceId:e.calendarId,body:{action:"SYNC_EXTERNAL_CALENDAR",firstSync:!0}}).then((function(a){a.moreData?t.syncCalendarHelper(e,n):n()})).catch((function(e){return n(e)}))},e}();N.decorators=[{type:n.Injectable}],N.ctorParameters=function(){return[{type:o.ModalController},{type:o.AlertController},{type:l.IDEAMessageService},{type:l.IDEALoadingService},{type:l.IDEAAWSAPIService},{type:l.IDEATranslationsService}]};var _=function(){function e(e,n,t,a,o,r,i,l){this.calendars=e,this.modalCtrl=n,this.alertCtrl=t,this.tc=a,this.loading=o,this.message=r,this.API=i,this.t=l,this.errors=new Set,this.DEFAULT_COLOR="#555"}return e.prototype.ngOnInit=function(){var e=this;this.membership=this.tc.get("membership"),this._calendar=new u.Calendar(this.calendar),this.API.getResource("teams/"+this.membership.teamId+"/memberships").then((function(n){return e.membershipsChecks=n.map((function(n){return new u.Check({value:n.userId,name:n.name,checked:(e._calendar.usersCanManageAppointments||[]).some((function(e){return e===n.userId}))})}))})).catch((function(){}))},e.prototype.hasFieldAnError=function(e){return this.errors.has(e)},e.prototype.save=function(){return D(this,void 0,void 0,(function(){var e=this;return v(this,(function(n){switch(n.label){case 0:return this._calendar.color||(this._calendar.color=this.DEFAULT_COLOR),this._calendar.isShared()&&this.advancedPermissions?this._calendar.usersCanManageAppointments=this.membershipsChecks.filter((function(e){return e.checked})).map((function(e){return String(e.value)})):delete this._calendar.usersCanManageAppointments,this.errors=new Set(this._calendar.validate()),this.errors.size?[2,this.message.error("COMMON.FORM_HAS_ERROR_TO_CHECK")]:[4,this.loading.show()];case 1:return n.sent(),this.calendars.putCalendar(this._calendar).then((function(n){e.calendar.load(n),e.message.success("IDEA_AGENDA.CALENDARS.CALENDAR_SAVED"),e.modalCtrl.dismiss(e.calendar)})).catch((function(){return e.message.error("COMMON.OPERATION_FAILED")})).finally((function(){return e.loading.hide()})),[2]}}))}))},e.prototype.delete=function(){var e=this;this.alertCtrl.create({header:this.t._("COMMON.ARE_YOU_SURE"),subHeader:this.t._("IDEA_AGENDA.CALENDARS.DELETE_CALENDAR"),message:this.t._("IDEA_AGENDA.CALENDARS.DELETE_CALENDAR_HINT"),buttons:[{text:this.t._("COMMON.CANCEL"),role:"cancel"},{text:this.t._("COMMON.DELETE"),handler:function(){return D(e,void 0,void 0,(function(){var e=this;return v(this,(function(n){switch(n.label){case 0:return[4,this.loading.show()];case 1:return n.sent(),this.calendars.deleteCalendar(this._calendar).then((function(){e.message.success("IDEA_AGENDA.CALENDARS.CALENDAR_DELETED"),e.modalCtrl.dismiss(!0)})).catch((function(){return e.message.error("COMMON.OPERATION_FAILED")})).finally((function(){return e.loading.hide()})),[2]}}))}))}}]}).then((function(e){return e.present()}))},e.prototype.close=function(){this.modalCtrl.dismiss()},e}();_.decorators=[{type:n.Component,args:[{selector:"idea-calendar",template:'<ion-header>\n <ion-toolbar color="ideaToolbar">\n <ion-buttons slot="start">\n <ion-button [title]="t._(\'COMMON.CLOSE\')" (click)="close()">\n <ion-icon name="close-circle" slot="icon-only"></ion-icon>\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]="t._(\'COMMON.SAVE\')" (click)="save()">\n <ion-icon name="checkmark-circle" slot="icon-only"></ion-icon>\n </ion-button>\n </ion-buttons>\n </ion-toolbar>\n</ion-header>\n<ion-content>\n <div class="maxWidthContainer" *ngIf="_calendar">\n <ion-list class="aList">\n <ion-item\n lines="inset"\n [class.fieldHasError]="hasFieldAnError(\'name\')"\n [title]="t._(\'IDEA_AGENDA.CALENDARS.NAME_HINT\')"\n >\n <ion-label position="stacked">{{ \'IDEA_AGENDA.CALENDARS.NAME\' | translate }} </ion-label>\n <ion-input [placeholder]="t._(\'IDEA_AGENDA.CALENDARS.NAME_HINT\')" [(ngModel)]="_calendar.name"></ion-input>\n </ion-item>\n <ion-item\n lines="inset"\n [class.fieldHasError]="hasFieldAnError(\'description\')"\n [title]="t._(\'IDEA_AGENDA.CALENDARS.DESCRIPTION_HINT\')"\n >\n <ion-label position="stacked">{{ \'IDEA_AGENDA.CALENDARS.DESCRIPTION\' | translate }} </ion-label>\n <ion-input\n [placeholder]="t._(\'IDEA_AGENDA.CALENDARS.DESCRIPTION_HINT\')"\n [(ngModel)]="_calendar.description"\n ></ion-input>\n </ion-item>\n <idea-color-picker\n *ngIf="!hideColor"\n [lines]="\'inset\'"\n [current]="_calendar.color"\n [label]="t._(\'IDEA_AGENDA.CALENDARS.COLOR\')"\n [class.fieldHasError]="hasFieldAnError(\'color\')"\n (select)="$event ? (_calendar.color = $event) : null"\n ></idea-color-picker>\n <idea-checker\n *ngIf="membershipsChecks && _calendar.isShared() && advancedPermissions"\n [data]="membershipsChecks"\n [label]="t._(\'IDEA_AGENDA.CALENDARS.USERS_ALLOWED_TO_MANAGE_APPOINTMENTS\')"\n [searchPlaceholder]="t._(\'IDEA_AGENDA.CALENDARS.WHO_CAN_MANAGE_APPOINTMENTS\')"\n [noneText]="t._(\'IDEA_AGENDA.CALENDARS.NOBODY\')"\n [allText]="t._(\'IDEA_AGENDA.CALENDARS.EVERYONE\')"\n [allowSelectDeselectAll]="true"\n [lines]="\'inset\'"\n ></idea-checker>\n </ion-list>\n <ion-list class="aList" *ngIf="_calendar.external?.service">\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 <ion-item lines="inset" *ngIf="calendar.userId">\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"></ion-icon>\n </ion-item>\n <ion-item lines="inset" *ngIf="calendar.teamId">\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"></ion-icon>\n </ion-item>\n <ion-item lines="inset">\n <ion-label>\n {{ \'IDEA_AGENDA.CALENDARS.LINKED_TO\' | translate }}\n {{ \'IDEA_AGENDA.CALENDARS.SERVICES.\' + _calendar.external.service | translate }}\n <p>{{ _calendar.external.name }} ({{ _calendar.external.email }})</p>\n </ion-label>\n <ion-icon slot="end" [name]="calendars.getServiceIcon(_calendar.external.service)"></ion-icon>\n </ion-item>\n <ion-item lines="inset">\n <ion-label>\n {{ \'IDEA_AGENDA.CALENDARS.ACCESS_LEVELS.\' + _calendar.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"></ion-icon>\n </ion-item>\n </ion-list>\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 color="danger" [title]="t._(\'IDEA_AGENDA.CALENDARS.DELETE_CALENDAR_HINT\')" (click)="delete()">\n {{ \'COMMON.DELETE\' | translate }}\n </ion-button>\n </ion-item>\n </ion-list>\n </div>\n</ion-content>\n',styles:[".maxWidthContainer{max-width:500px;padding-top:20px}"]}]}],_.ctorParameters=function(){return[{type:N},{type:o.ModalController},{type:o.AlertController},{type:l.IDEATinCanService},{type:l.IDEALoadingService},{type:l.IDEAMessageService},{type:l.IDEAAWSAPIService},{type:l.IDEATranslationsService}]},_.propDecorators={calendar:[{type:n.Input}],advancedPermissions:[{type:n.Input}],hideColor:[{type:n.Input}]};var y=function(){function e(e,t,a,o,r,i){this.calendars=e,this.alertCtrl=t,this.modalCtrl=a,this.message=o,this.loading=r,this.t=i,this.somethingChanged=new n.EventEmitter}return e.prototype.manageCalendar=function(){var e=this;this.disabled||this.modalCtrl.create({component:_,componentProps:{calendar:this.calendar,advancedPermissions:this.advancedPermissions,hideColor:this.hideColor}}).then((function(n){n.onDidDismiss().then((function(n){var t=n.data;void 0!==t&&(null===t?e.calendar=null:e.calendar.load(t),e.somethingChanged.emit())})),n.present()}))},e.prototype.linkExtCalendarOrDelete=function(){var e=this;this.disabled||this.calendars.chooseAndSetExternalCalendar(this.calendar).then((function(n){return D(e,void 0,void 0,(function(){var e=this;return v(this,(function(t){switch(t.label){case 0:return n?(this.calendar.load(n),this.message.success("IDEA_AGENDA.CALENDARS.CALENDAR_LINKED"),[4,this.loading.show(this.t._("IDEA_AGENDA.CALENDARS.FIRST_SYNC_MAY_TAKE_A_WHILE"))]):[2,new Error("NO_EXTERNAL_CALENDAR_CHOSEN")];case 1:return t.sent(),this.calendars.syncCalendar(this.calendar).then((function(){return e.message.success("IDEA_AGENDA.CALENDARS.FIRST_SYNC_COMPLETED")})).catch((function(){return e.message.error("COMMON.OPERATION_FAILED")})).finally((function(){e.loading.hide(),e.somethingChanged.emit()})),[2]}}))}))})).catch((function(){e.alertCtrl.create({header:e.t._("IDEA_AGENDA.CALENDARS.CALENDAR_NOT_YET_LINKED"),message:e.t._("IDEA_AGENDA.CALENDARS.DO_YOU_WANT_PROCEED_LINKING_OR_DELETE"),buttons:[{text:e.t._("COMMON.DELETE"),handler:function(){return D(e,void 0,void 0,(function(){var e=this;return v(this,(function(n){switch(n.label){case 0:return[4,this.loading.show()];case 1:return n.sent(),this.calendars.deleteCalendar(this.calendar).then((function(){e.message.success("COMMON.OPERATION_COMPLETED"),e.somethingChanged.emit()})).catch((function(){return e.message.error("COMMON.OPERATION_FAILED")})).finally((function(){return e.loading.hide()})),[2]}}))}))}},{text:e.t._("IDEA_AGENDA.CALENDARS.LINK"),handler:function(){return e.calendars.linkExtService(e.calendar).then((function(){return e.linkExtCalendarOrDelete()})).catch((function(){return e.message.error("COMMON.OPERATION_FAILED")}))}}]}).then((function(e){return e.present()}))}))},e}();y.decorators=[{type:n.Component,args:[{selector:"idea-calendar-item",template:'<ion-item\n class="calendarItem"\n *ngIf="calendar"\n [button]="!disabled"\n [title]="t._(\'IDEA_AGENDA.CALENDARS.EDIT_CALENDAR\')"\n (click)="calendar.external && !calendar.external.calendarId ? linkExtCalendarOrDelete() : manageCalendar()"\n>\n <ion-avatar\n slot="start"\n class="colorCircle"\n *ngIf="!hideColor"\n [style.background-color]="calendar.color"\n ></ion-avatar>\n <ion-label>\n {{ calendar.name }}\n <p>\n <ion-text color="danger" *ngIf="calendar.external && !calendar.external.calendarId">\n {{ \'IDEA_AGENDA.CALENDARS.TAP_TO_CONFIGURE\' | translate }}\n </ion-text>\n {{ calendar.description }}\n </p>\n </ion-label>\n <ion-icon\n slot="end"\n color="danger"\n name="flash-off"\n *ngIf="calendar.external && !calendar.external.calendarId"\n [title]="t._(\'IDEA_AGENDA.CALENDARS.CALENDAR_NOT_YET_LINKED_HINT\')"\n ></ion-icon>\n <ion-icon\n slot="end"\n *ngIf="calendar.external?.service"\n [name]="calendars.getServiceIcon(calendar.external.service)"\n [title]="\n t._(\'IDEA_AGENDA.CALENDARS.LINKED_TO\') + \' \' + t._(\'IDEA_AGENDA.CALENDARS.SERVICES.\' + calendar.external.service)\n "\n ></ion-icon>\n</ion-item>\n',styles:[".calendarItem ion-avatar.colorCircle{width:20px;height:20px;background-color:#555}"]}]}],y.ctorParameters=function(){return[{type:N},{type:o.AlertController},{type:o.ModalController},{type:l.IDEAMessageService},{type:l.IDEALoadingService},{type:l.IDEATranslationsService}]},y.propDecorators={calendar:[{type:n.Input}],disabled:[{type:n.Input}],advancedPermissions:[{type:n.Input}],hideColor:[{type:n.Input}],somethingChanged:[{type:n.Output}]};var S,w=function(){function n(e,n,t,a,o,r,i){this.calendars=e,this.modalCtrl=n,this.tc=t,this.loading=a,this.message=o,this.API=r,this.t=i,this.DEFAULT_COLOR="#555",this.SOURCES=Object.keys(u.ExternalCalendarSources)}return n.prototype.ngOnInit=function(){this.calendar=new u.Calendar,this.membership=this.tc.get("membership"),this.fixScope===e.CalendarScopes.SHARED&&(this.calendar.teamId=this.membership.teamId),this.fixScope===e.CalendarScopes.PRIVATE&&(this.calendar.userId=this.membership.userId)},n.prototype.resetScope=function(){this.canChangeScope()&&(this.calendar.teamId=this.calendar.userId=null)},n.prototype.canChangeScope=function(){return!this.fixScope&&this.scopeIsSet()},n.prototype.scopeIsSet=function(){return Boolean(this.calendar.userId)||Boolean(this.calendar.teamId)},n.prototype.saveNewCalendar=function(e){return D(this,void 0,void 0,(function(){var n=this;return v(this,(function(t){switch(t.label){case 0:return this.scopeIsSet()?!e&&this.onlyExternalCalendars?[2]:(e?(this.calendar.external=new u.ExternalCalendarInfo({service:e}),this.calendar.name="-"):(this.calendar.name=this.calendar.userId?this.t._("IDEA_AGENDA.CALENDARS.DEFAULT_PERSONAL_CALENDAR_NAME"):this.t._("IDEA_AGENDA.CALENDARS.DEFAULT_TEAM_CALENDAR_NAME"),this.calendar.color=this.DEFAULT_COLOR),[4,this.loading.show()]):[2];case 1:return t.sent(),this.calendars.postCalendar(this.calendar).then((function(e){if(n.calendar.load(e),n.message.success("IDEA_AGENDA.CALENDARS.CALENDAR_CREATED"),!e.external)return n.modalCtrl.dismiss(n.calendar);n.calendars.linkExtService(n.calendar).then((function(){return n.calendars.chooseAndSetExternalCalendar(n.calendar)})).then((function(e){return D(n,void 0,void 0,(function(){var n=this;return v(this,(function(t){switch(t.label){case 0:return e?(this.calendar.load(e),[4,this.loading.show(this.t._("IDEA_AGENDA.CALENDARS.FIRST_SYNC_MAY_TAKE_A_WHILE"))]):[2,this.modalCtrl.dismiss(this.calendar)];case 1:return t.sent(),this.calendars.syncCalendar(this.calendar).then((function(){return n.message.success("IDEA_AGENDA.CALENDARS.FIRST_SYNC_COMPLETED")})).catch((function(){return n.message.error("COMMON.OPERATION_FAILED")})).finally((function(){n.loading.hide(),n.modalCtrl.dismiss(n.calendar)})),[2]}}))}))})).catch((function(){n.message.error("COMMON.OPERATION_FAILED"),n.modalCtrl.dismiss(n.calendar)}))})).catch((function(){return n.message.error("COMMON.OPERATION_FAILED")})).finally((function(){return n.loading.hide()})),[2]}}))}))},n.prototype.close=function(){this.modalCtrl.dismiss()},n}();w.decorators=[{type:n.Component,args:[{selector:"idea-calendar-creation",template:'<ion-header>\n <ion-toolbar color="ideaToolbar">\n <ion-buttons slot="start">\n <ion-button *ngIf="!canChangeScope()" [title]="t._(\'COMMON.CLOSE\')" (click)="close()">\n <ion-icon name="close" slot="icon-only"></ion-icon>\n </ion-button>\n <ion-button *ngIf="canChangeScope()" (click)="resetScope()">\n <ion-icon name="arrow-back" slot="icon-only"></ion-icon>\n </ion-button>\n </ion-buttons>\n <ion-title>\n <span *ngIf="!scopeIsSet()">{{ \'IDEA_AGENDA.CALENDARS.ADD_A_CALENDAR\' | translate }}</span>\n <span *ngIf="calendar.userId">{{ \'IDEA_AGENDA.CALENDARS.PERSONAL_CALENDAR\' | translate }}</span>\n <span *ngIf="calendar.teamId">\n {{ \'IDEA_AGENDA.CALENDARS.TEAM_CALENDAR\' | translate: { team: tc.get(\'team\').name } }}\n </span>\n </ion-title>\n </ion-toolbar>\n</ion-header>\n<ion-content>\n \x3c!-- 1st STEP --\x3e\n <ion-grid class="ion-padding choiceGrid" *ngIf="!scopeIsSet()">\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"></ion-icon>\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"></ion-icon>\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 \x3c!-- 2nd STEP --\x3e\n <ion-grid class="ion-padding choiceGrid" *ngIf="scopeIsSet()">\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 <ion-col class="ion-text-center" [size]="12" *ngIf="!onlyExternalCalendars">\n <ion-card class="step2" [button]="true" (click)="saveNewCalendar()">\n <ion-card-header>\n <ion-card-title>\n <ion-icon name="remove"></ion-icon>\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 <ion-col class="ion-text-center" *ngFor="let s of SOURCES" [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)"></ion-icon>\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 </ion-row>\n </ion-grid>\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}"]}]}],w.ctorParameters=function(){return[{type:N},{type:o.ModalController},{type:l.IDEATinCanService},{type:l.IDEALoadingService},{type:l.IDEAMessageService},{type:l.IDEAAWSAPIService},{type:l.IDEATranslationsService}]},w.propDecorators={fixScope:[{type:n.Input}],onlyExternalCalendars:[{type:n.Input}]},(S=e.CalendarScopes||(e.CalendarScopes={})).SHARED="shared",S.PRIVATE="private";var R=i.adapterFactory,L=function(){};L.decorators=[{type:n.NgModule,args:[{imports:[t.CommonModule,a.FormsModule,o.IonicModule,l.IDEATranslationsModule,l.IDEAColorPickerModule,l.IDEACheckerModule,r.CalendarModule.forRoot({provide:r.DateAdapter,useFactory:R})],declarations:[I,_,y,w],entryComponents:[I,_,y,w],exports:[I,_,y,w],providers:[{provide:r.CalendarDateFormatter,useClass:C},N]}]}],e.CustomDateFormatter=C,e.IDEAAgendaComponent=I,e.IDEAAgendaModule=L,e.IDEACalendarComponent=_,e.IDEACalendarCreationComponent=w,e.IDEACalendarItemComponent=y,e.IDEACalendarsService=N,e.ɵ0=R,Object.defineProperty(e,"__esModule",{value:!0})}));
|
|
16
16
|
//# sourceMappingURL=idea-ionic-agenda.umd.min.js.map
|