{"version":3,"file":"chunks/f69882d4d5bb35.js","mappings":"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","sources":["webpack:///./resources/js/components/shared/summit-full-schedule.ts"],"sourcesContent":["import * as $ from \"jquery\";\nimport _ from 'underscore';\nimport onThrottled from \"../../utils/event\";\nimport url from '../../utils/url';\nimport Modal from '../../components/generic/modal';\nimport \"waypoints/lib/jquery.waypoints.js\";\n\nconst MOBILE_BREAKPOINT = 800;\n\nexport default class SummitFullSchedule {\n  params: any;\n  scrollFromTop: number;\n  expandText: any;\n  collapseText: any;\n  defaultImgSrc: any;\n  filterHeading: any;\n  disabledTracks: any;\n  dayMap: any;\n  monthMap: any;\n  dateTimeFormat: any;\n  layoutFormat: any;\n  headerAccentColor: any;\n  modalColors: { modalBackground: any; modalLabels: any; modalLink: any; modalActive: any; modalInactive: any; };\n  modalFilters: { class: string; allFilters: any; title: any; }[];\n  sessions?: any[];\n  groupedSessions?: {};\n  speakers: any;\n  trainingButton?: { buttonText: any; buttonUrl: any; };\n  waypoints?: any[];\n  scheduleTemplate?: _.CompiledTemplate;\n  daysTemplate?: _.CompiledTemplate;\n  filtersTemplate?: _.CompiledTemplate;\n  speakerModalTemplate?: _.CompiledTemplate;\n  $days?: JQuery<HTMLElement>;\n  $schedule?: JQuery<HTMLElement>;\n  $dayToggles?: JQuery<HTMLElement>;\n  $expandToggle?: JQuery<HTMLElement>;\n  filters: any;\n  urlParams?: { [key: string]: string; } | null;\n  sessionId: any;\n  dates: any;\n  selectedProductsFilters?: JQuery<HTMLElement>;\n  selectedTracksFilters?: JQuery<HTMLElement>;\n  selectedTypesFilters?: JQuery<HTMLElement>;\n  selectedDeploysFilters?: JQuery<HTMLElement>;\n  selectedAudienceFilters?: JQuery<HTMLElement>;\n\n  constructor(_domRoot: HTMLElement, params: any) {\n    this.params = { ...params };\n    this.scrollFromTop = Number(this.params.scrollFromTop);\n    this.expandText = this.params.expandText;\n    this.collapseText = this.params.collapseText;\n    this.defaultImgSrc = this.params.defaultImgSrc;\n    this.filterHeading = this.params.filterHeading;\n    this.disabledTracks = this.params.disabledTracks;\n    this.dayMap = this.params.dayMap;\n    this.monthMap = this.params.monthMap;\n    this.dateTimeFormat = this.params.dateTimeFormat ? this.params.dateTimeFormat : 'euro';\n    this.layoutFormat = this.params.layoutFormat ? this.params.layoutFormat : 'fullWidth';\n    this.headerAccentColor = this.params.headerAccentColor ? this.params.headerAccentColor : 'r500';\n    this.modalColors = {\n      \"modalBackground\": this.params.modalBackground ? this.params.modalBackground : 'n0',\n      \"modalLabels\": this.params.modalLabels ? this.params.modalLabels : 'n800',\n      \"modalLink\": this.params.modalLink ? this.params.modalLink : 'n900',\n      \"modalActive\": this.params.modalActive ? this.params.modalActive : 'y100',\n      \"modalInactive\": this.params.modalInactive ? this.params.modalInactive : 'n50',\n    };\n    this.modalFilters = [{\n      \"class\": \"function\",\n      \"allFilters\": this.params.functionFilterData,\n      \"title\": this.params.functionFilterTitle\n    }, {\n      \"class\": \"product\",\n      \"allFilters\": this.params.productFilterData,\n      \"title\": this.params.productFilterTitle\n    }, {\n      \"class\": \"track\",\n      \"allFilters\": this.params.trackFilterData,\n      \"title\": this.params.trackFilterTitle\n    }, {\n      \"class\": \"deploy\",\n      \"allFilters\": this.params.deployFilterData,\n      \"title\": this.params.deployFilterTitle\n    }, {\n      \"class\": \"audience\",\n      \"allFilters\": this.params.audienceFilterData,\n      \"title\": this.params.audienceFilterTitle\n    }];\n\n    this.init();\n    return this;\n  }\n\n  init() {\n    this.sessions = _(this.params.sessions).sortBy(\"startHour\");\n    this.groupedSessions = this.groupSessions(this.sessions);\n    this.speakers = this.params.speakers;\n\n    this.trainingButton = {\n      \"buttonText\": this.params.trainingButtonText,\n      \"buttonUrl\": this.params.trainingButtonUrl\n    };\n    this.waypoints = [];\n    this.scheduleTemplate = _.template($(\"script.schedule-template\").html());\n    this.daysTemplate = _.template($(\"script.days-template\").html());\n    this.filtersTemplate = _.template($(\"script.filters-template\").html());\n    this.speakerModalTemplate = _.template($(\"script.speaker-template\").html());\n\n    this.$days = $(\".days\");\n    if (this.params.hideHeader) {\n      $('.day-toggles-wrapper').html(\"\");\n    } else {\n      this.$days.html(this.daysTemplate({ sessionData: this.groupedSessions, dateTimeFormat: this.dateTimeFormat, monthMap: this.monthMap, headerAccentColor: this.headerAccentColor, customDateLabel: this.params.customDateLabel }));\n    }\n    this.$schedule = $(\".schedule-inner\");\n    this.renderSessions();\n    this.$dayToggles = $('.day-toggles');\n    this.$expandToggle = $('.expand-all');\n\n    this.filters = this.filtersTemplate({ modalFilters: this.modalFilters, disabledTracks: this.disabledTracks, modalColors: this.modalColors });\n\n    this.urlParams = url.getUrlParams(window.location.href);\n    if (this.urlParams) {\n      this.sessionId = this.urlParams[\"sessionid\"] || this.urlParams[\"sessionId\"];\n      if (this.sessionId) {\n        if ($(document).find(\"[data-id=\" + this.sessionId + \"]\").length !== 0) {\n          this.scrollToSession(this.sessionId);\n        }\n      }\n    }\n    this.createModals();\n    this.bindEvents();\n    this.setWaypoints();\n  }\n\n  bindEvents() {\n    let self = this;\n\n    onThrottled($(window), \"resize orientationchange\", $.proxy(function () {\n      self.setDayTogglesWrapperHeight();\n      self.setWidthToParentWidth(self.$dayToggles);\n    }, this));\n\n    $(document).on('click keypress', '.modal .filter-list li', function (e) {\n      if (e.type === \"click\" || e.keyCode === 13) {\n        $(this).toggleClass('selected');\n        self.renderSessions();\n        self.setWaypoints();\n        self.configureDayHeaders();\n        self.configureExpandToggle();\n      }\n    });\n\n    $(document).on('click keypress', '.imkt-accordion--heading', function (e) {\n      if (e.type === \"click\" || e.keyCode === 13) {\n        if ($(this).parents('.imkt-accordion').hasClass('closed')) {\n          let sessionId = $(this).parents('.time-block-item').data('id');\n          window.history.replaceState({}, document.title, url.addUrlParams({\n            \"sessionid\": sessionId,\n            \"sessionId\": null\n          }));\n        } else {\n          window.history.replaceState({}, document.title, url.getBareUrl());\n        }\n        $(this).parents('.imkt-accordion').toggleClass('closed');\n      }\n    });\n\n    $(document).on('click keypress', '.modal .filter-list h4', function (e) {\n      if (e.type === \"click\" || e.keyCode === 13) {\n        $(this).toggleClass('collapsed');\n        setTimeout(function () {\n          $(window).trigger('resize');\n          $(window).trigger('orientationchange');\n        }, 50);\n      }\n    });\n\n    $(document).on('click', '.filter-modal-link', function (e) {\n      let modalProperties = {};\n      modalProperties.headerTitle = self.filterHeading;\n      modalProperties.header = \"<h3>\" + self.filterHeading + \"</h3>\";\n      modalProperties.content = self.filters;\n      modalProperties.headerClass = 'filter-modal summit-full-modal ' + self.modalColors.modalBackground;\n      self.showModal(self.filterModal, modalProperties);\n      e.preventDefault();\n    });\n\n    $(document).on('click keypress', '.time-block-item-speaker', function (e) {\n      if (e.type === \"click\" || e.keyCode === 13) {\n        let speakerId = $(this).data('id');\n        let modalProperties = {};\n        modalProperties.content = self.speakerModalTemplate({ speaker: self.speakers[speakerId] });\n        self.showModal(self.speakerModal, modalProperties);\n      }\n    });\n\n    this.$expandToggle.on('click', function (e) {\n      if ($(this).hasClass('disabled')) return;\n\n      let $accordions = $('.imkt-accordion');\n\n      if ($(this).hasClass('expanded')) {\n        $accordions.addClass('closed');\n        $(this).removeClass('expanded');\n        $(this).text(self.expandText);\n      } else {\n        $accordions.removeClass('closed');\n        $(this).addClass('expanded');\n        $(this).text(self.collapseText);\n      }\n      e.preventDefault();\n    });\n\n    $('.day').on('click', function (e) {\n      if ($(this).hasClass('disabled')) return;\n      let id = e.target.getAttribute(\"data-id\");\n      let dayHeader = $(\".day-header[data-id=\" + id + \"]\");\n      let scrollTo = dayHeader.offset().top - self.params.scrollFromTop;\n\n      if (self.isMobileLayout()) {\n        scrollTo -= 15;\n      }\n      $(\"html, body\").animate({ scrollTop: scrollTo }, function () {\n        $('.day').each(function () {\n          $(this).removeClass('active');\n        });\n        $('.day[data-id=\"' + id + '\"]').addClass('active');\n      });\n      e.preventDefault();\n    });\n\n    $(document).on('modal.hide', function () {\n      if (self.filterModal.$modal.hasClass('filter-modal')) {\n        self.filters = self.filterModal.$modal.find('.modal-content').html();\n      }\n    });\n  }\n\n  createModals() {\n    this.filterModal = new Modal({ contentClickToHide: false });\n    this.speakerModal = new Modal({ contentClickToHide: false });\n  }\n\n  showModal(modal, modalProperties) {\n    if (modalProperties.headerTitle && modalProperties.headerTitle.length) {\n      modal.$modal.find('.modal-header').html(modalProperties.header);\n    } else {\n      modal.$modal.find('.modal-header').hide();\n    }\n    modal.$modal.find('.modal-content').html(modalProperties.content);\n    if (modalProperties.headerClass) {\n      modal.$modal.addClass(modalProperties.headerClass);\n    }\n\n    return modal.show();\n  }\n\n  groupSessions(sessions) {\n    let self = this;\n    let sortedSessions = {};\n    let groupedSessionsByDate = this.groupSessionsByDate(sessions);\n\n    if (Object.keys(groupedSessionsByDate).length === 0) {\n      return {};\n    }\n\n    // cache the original dates\n    this.dates = this.dates || Object.keys(groupedSessionsByDate);\n\n    _(this.dates).each(function (date) {\n      if (groupedSessionsByDate[date]) {\n        sortedSessions[date] = groupedSessionsByDate[date];\n      } else {\n        sortedSessions[date] = [];\n      }\n    });\n\n    return _(sortedSessions).mapObject(function (sessions) {\n      return self.groupSessionsByTime(sessions);\n    });\n  }\n\n  groupSessionsByDate(sessions) {\n    let sortedSessions = _(sessions).sortBy(function (session) {\n      return new Date(session.startMonth + \" \" + session.startDay + \", \" + session.startYear + \" \" + session.startHour + \":\" + session.startMinute);\n    });\n    return _(sortedSessions).groupBy(function (session) {\n      return new Date(session.startMonth + \" \" + session.startDay + \", \" + session.startYear);\n    });\n  }\n\n  groupSessionsByTime(sessions) {\n    let self = this;\n    return _(sessions).groupBy(function (session) {\n      let hour = Number(session.startHour);\n      if (self.dateTimeFormat === 'euro') {\n        return hour + \":\" + session.startMinute;\n      } else if (hour > 12) {\n        hour -= 12;\n        return hour + \":\" + session.startMinute + \" p.m.\";\n      } else if (hour === 12) {\n        return hour + \":\" + session.startMinute + \" p.m.\";\n      }\n      return hour + \":\" + session.startMinute + \" a.m.\";\n    });\n  }\n\n  filterSessions() {\n    let filteredSessions = this.sessions;\n\n    this.selectedProductsFilters = $('.filter-product li.selected');\n    this.selectedTracksFilters = $('.filter-track li.selected');\n    this.selectedTypesFilters = $('.filter-function li.selected');\n    this.selectedDeploysFilters = $('.filter-deploy li.selected');\n    this.selectedAudienceFilters = $('.filter-audience li.selected');\n\n    if (this.selectedProductsFilters.length !== 0) {\n      filteredSessions = this.filterByType('product', this.selectedProductsFilters, filteredSessions);\n    }\n    if (this.selectedTracksFilters.length !== 0) {\n      filteredSessions = this.filterByType('track', this.selectedTracksFilters, filteredSessions);\n    }\n    if (this.selectedTypesFilters.length !== 0) {\n      filteredSessions = this.filterByType('type', this.selectedTypesFilters, filteredSessions);\n    }\n    if (this.selectedDeploysFilters.length !== 0) {\n      filteredSessions = this.filterByType('deploy', this.selectedDeploysFilters, filteredSessions);\n    }\n    if (this.selectedAudienceFilters.length !== 0) {\n      filteredSessions = this.filterByType('audience', this.selectedAudienceFilters, filteredSessions);\n    }\n\n    return filteredSessions;\n  }\n\n  filterByType(filterType, selectedFilters, filteredSessions) {\n    let multi = false;\n    let matcher;\n    switch (filterType) {\n      case 'product':\n        multi = true;\n        matcher = 'products';\n        break;\n      case 'track':\n        matcher = 'trackName';\n        break;\n      case 'deploy':\n        multi = true;\n        matcher = 'deployment';\n        break;\n      case 'type':\n        matcher = 'sessionRawType';\n        break;\n      case 'audience':\n        matcher = 'sessionType';\n        break;\n      default:\n        break;\n    }\n\n    return _(filteredSessions).filter(function (session) {\n      let matchedSessions;\n      if (multi) {\n        matchedSessions = _(session[matcher].toLowerCase().split(\",\")).map(function (singleSession) {\n          return singleSession.trim().replace(/\\s+/g, '-');\n        });\n      } else {\n        matchedSessions = session[matcher].toLowerCase().trim().replace(/\\s+/g, '-');\n      }\n\n      let selectedMatchers = _(selectedFilters).map(function (filter) { return $(filter).data('id'); });\n      return _(selectedMatchers).some(function (singleFilter) {\n        return matchedSessions.indexOf(singleFilter) !== -1;\n      });\n    });\n  }\n\n  configureDayHeaders() {\n    $('.day').removeClass('active');\n    if (_(this.groupedSessions).isEmpty()) {\n      $('.day').addClass('disabled');\n    } else {\n      $('.day').removeClass('disabled');\n    }\n  }\n\n  configureExpandToggle() {\n    if (_(this.groupedSessions).isEmpty()) {\n      this.$expandToggle.addClass('disabled');\n    } else {\n      this.$expandToggle.removeClass('disabled');\n    }\n  }\n\n  renderSessions() {\n    let sessions = this.filterSessions();\n    this.groupedSessions = this.groupSessions(sessions);\n    this.$schedule.html(this.scheduleTemplate({ sessionData: this.groupedSessions, headerAccentColor: this.headerAccentColor, layoutFormat: this.layoutFormat, dateTimeFormat: this.dateTimeFormat, dayMap: this.dayMap, monthMap: this.monthMap, trainingButton: this.trainingButton, selectedFilters: this.getSelectedFilters(), defaultImgSrc: this.defaultImgSrc, customDateLabel: this.params.customDateLabel }));\n  }\n\n  isMobileLayout() {\n    return $(window).width() <= MOBILE_BREAKPOINT;\n  }\n\n  setWaypoints() {\n    let self = this;\n    let days;\n\n    this.destroyWaypoints();\n\n    if (_(this.groupedSessions).isEmpty()) {\n      this.$dayToggles.css(\"position\", \"static\");\n      return;\n    }\n\n    days = $('.days').find('.day');\n    days.each(function (day) {\n      let dataId = $(days[day]).attr('data-id');\n      let waypoint = new Waypoint({\n        element: $(\".day-header[data-id=\" + dataId + \"]\"),\n        handler: function () {\n          $(\".days .day\").removeClass('active');\n          $(\".days .day[data-id=\" + dataId + \"]\").addClass('active');\n          self.setDayTogglesWrapperHeight();\n        },\n        offset: '210px'\n      });\n      self.waypoints.push(waypoint);\n    });\n  }\n\n  destroyWaypoints() {\n    _(this.waypoints).map(function (waypoint) {\n      waypoint.destroy();\n    });\n    this.waypoints = [];\n  }\n\n  getSelectedFilters() {\n    let filters = $('.filter-list li.selected');\n    if (filters.length === 0) {\n      return [];\n    } else {\n      let filterText = _(filters).map(function (filter) {\n        return $(filter).text();\n      });\n      if (filterText.length === 1) {\n        return filterText[0];\n      } else if (filterText.length === 2) {\n        return filterText[0] + ' and ' + filterText[1];\n      }\n      return filterText.slice(0, -1).join(', ') + ', and ' + filterText.slice(-1);\n    }\n  }\n\n  setDayTogglesWrapperHeight() {\n    $('.day-toggles-wrapper').css(\"height\", $('.day-toggles').css(\"height\"));\n  }\n\n  setWidthToParentWidth($element) {\n    let parent = $element.parent();\n    $element.css(\"width\", parent.css(\"width\"));\n  }\n\n  scrollToSession(sessionId) {\n    let session = $(\".time-block-item[data-id=\" + sessionId + \"]\");\n    session.find(\".imkt-accordion\").toggleClass('closed');\n    let scrollTo = session.offset().top - 240;\n    if (this.isMobileLayout()) {\n      scrollTo -= 70;\n    }\n    $(\"html, body\").animate({ scrollTop: scrollTo }, 0);\n  }\n}\n"],"names":["SummitFullSchedule","_domRoot","params","_classCallCheck","this","_objectSpread","scrollFromTop","Number","expandText","collapseText","defaultImgSrc","filterHeading","disabledTracks","dayMap","monthMap","dateTimeFormat","layoutFormat","headerAccentColor","modalColors","modalBackground","modalLabels","modalLink","modalActive","modalInactive","modalFilters","functionFilterData","functionFilterTitle","productFilterData","productFilterTitle","trackFilterData","trackFilterTitle","deployFilterData","deployFilterTitle","audienceFilterData","audienceFilterTitle","init","key","value","sessions","_","sortBy","groupedSessions","groupSessions","speakers","trainingButton","trainingButtonText","trainingButtonUrl","waypoints","scheduleTemplate","$","html","daysTemplate","filtersTemplate","speakerModalTemplate","$days","hideHeader","sessionData","customDateLabel","$schedule","renderSessions","$dayToggles","$expandToggle","filters","urlParams","url","window","location","href","sessionId","document","find","length","scrollToSession","createModals","bindEvents","setWaypoints","self","onThrottled","setDayTogglesWrapperHeight","setWidthToParentWidth","on","e","type","keyCode","toggleClass","configureDayHeaders","configureExpandToggle","parents","hasClass","data","history","replaceState","title","setTimeout","trigger","modalProperties","headerTitle","header","content","headerClass","showModal","filterModal","preventDefault","speakerId","speaker","speakerModal","$accordions","addClass","removeClass","text","id","target","getAttribute","scrollTo","offset","top","isMobileLayout","animate","scrollTop","each","$modal","Modal","contentClickToHide","modal","hide","show","sortedSessions","groupedSessionsByDate","groupSessionsByDate","Object","keys","dates","date","mapObject","groupSessionsByTime","session","Date","startMonth","startDay","startYear","startHour","startMinute","groupBy","hour","filteredSessions","selectedProductsFilters","selectedTracksFilters","selectedTypesFilters","selectedDeploysFilters","selectedAudienceFilters","filterByType","filterType","selectedFilters","matcher","multi","filter","matchedSessions","toLowerCase","split","map","singleSession","trim","replace","selectedMatchers","some","singleFilter","indexOf","isEmpty","filterSessions","getSelectedFilters","width","days","destroyWaypoints","css","day","dataId","attr","waypoint","Waypoint","element","handler","push","destroy","filterText","slice","join","$element","parent"],"sourceRoot":""}