(function () { "use strict"; angular.module('shared') .component('classroomListItem', { templateUrl: '/shared/js/angular/classroom-list/classroom-list-item.html', controller: 'ClassroomListItem', bindings: { classroom: '<', onClassroomSelected: '&', chunkedStudents: '<', buttonClass: '@', isFirstClassroom: '<' } }) .controller('ClassroomListItem', ['SITE_ID', 'SiteHelper', 'memberInfo', 'AuthGo', 'classroomListItemAmbassador', 'responsiveSiteService', '$window', function ClassroomListItem(SITE_ID, SiteHelper, memberInfo, AuthGo, classroomListItemAmbassador, responsiveSiteService, $window) { var ctrl = this; ctrl.isKaz = parseInt(SITE_ID) === SiteHelper.KAZ_SITE_ID; ctrl.isVaz = parseInt(SITE_ID) === SiteHelper.VAZ_SITE_ID; ctrl.memberInfo = memberInfo; ctrl.responsiveWidthLimit = responsiveSiteService.getResponsiveWidthLimit(); ctrl.$onInit = function() { ctrl.classroomNameClass = 'js-' + ctrl.classroom.classroom_alias.replace(/ /g, '-'); ctrl.isResponsiveMainNavEnabled = responsiveSiteService.isMainNavigationResponsive(); }; ctrl.setPopover = function(popoverCtrl) { ctrl.popoverCtrl = popoverCtrl; if (shouldInitializeOpen()) { ctrl.popoverCtrl.open(true); } }; ctrl.close = function() { ctrl.popoverCtrl.close(); }; ctrl.onOpenChanged = function(open) { if (open) { ctrl.onClassroomSelected({classroom: ctrl.classroom}); } }; ctrl.getButtonClass = function() { if (shouldAddClass()) { return ctrl.classroomNameClass + ' ' + ctrl.buttonClass; } return ctrl.classroomNameClass; }; ctrl.contentKeyDown = function(event) { if (typeof modalKeyDown == 'function') { modalKeyDown( event, ctrl.close, ctrl.classroomNameClass, 'js-first-classroom-item', 'js-last-classroom-item'); event.stopPropagation(); } }; ctrl.getKazUrl = function(url) { return ctrl.isKaz ? url : AuthGo.getUrl('kaz', url); }; function shouldAddClass() { if (ctrl.popoverCtrl.isOpen()) { return ctrl.buttonClass && ctrl.buttonClass.indexOf('js-last-item') === -1; } return ctrl.buttonClass; } function shouldInitializeOpen() { var initOpen = ctrl.isFirstClassroom && classroomListItemAmbassador.getInitFirstClassroomOpen(); if (ctrl.isResponsiveMainNavEnabled) { return initOpen && ($window.innerWidth > ctrl.responsiveWidthLimit); } return initOpen; } } ]) })();