{"version":3,"sources":["webpack:///./src/modules/student-teacher-filter-dropdown/template.js","webpack:///./src/modules/student-teacher-filter-dropdown/index.js","webpack:///./src/modules/show-modal/template.css","webpack:///./src/modules/role-crud-block/template.js","webpack:///./src/modules/role-crud-block/index.js","webpack:///./src/modules/permission-check-mark/template.js","webpack:///./src/modules/permission-check-mark/index.js","webpack:///./src/modules/role-view/template.js","webpack:///./src/modules/role-view/index.js","webpack:///./src/modules/admin-form/template.js","webpack:///./src/modules/admin-form/index.js","webpack:///./node_modules/date-fns/esm/subWeeks/index.js","webpack:///./src/modules/auth-panel/images/background.webp","webpack:///./src/routes/rosters/images/number-dot_3.webp","webpack:///./src/modules/inventory-updates-log/template.css","webpack:///./src/modules/bar-graph/template.css","webpack:///./src/routes/parent/modules/parent-layout/template.css","webpack:///./src/modules/group-summaries/template.js","webpack:///./src/modules/group-summaries/sdo.js","webpack:///./src/modules/group-summaries/index.js","webpack:///./src/routes/rosters/modules/carousel-element/template.css","webpack:///./src/modules/date-picker/template.js","webpack:///./node_modules/flatpickr/dist/esm/types/options.js","webpack:///./node_modules/flatpickr/dist/esm/l10n/default.js","webpack:///./node_modules/flatpickr/dist/esm/utils/index.js","webpack:///./node_modules/flatpickr/dist/esm/utils/dom.js","webpack:///./node_modules/flatpickr/dist/esm/utils/formatting.js","webpack:///./node_modules/flatpickr/dist/esm/utils/dates.js","webpack:///./node_modules/flatpickr/dist/esm/index.js","webpack:///./src/modules/date-picker/index.js","webpack:///./src/modules/show-modal/template.js","webpack:///./src/modules/show-modal/index.js","webpack:///./src/modules/aofl-form/template.js","webpack:///./src/modules/aofl-form/index.js","webpack:///./src/modules/auth-panel/template.css","webpack:///./src/routes/licenses/modules/license-info/license-info-row.css","webpack:///./src/modules/object-search-form/template.js","webpack:///./src/modules/object-search-form/index.js","webpack:///./src/routes/teachers/modules/confirm-login-change-modal/template.css","webpack:///./src/modules/progress-filters-view/template.js","webpack:///./src/modules/progress-filters-view/sdo.js","webpack:///./src/modules/progress-filters-view/index.js","webpack:///./src/routes/parent/modules/redeem-code-form/template.js","webpack:///./src/routes/parent/modules/redeem-code-form/index.js","webpack:///./src/modules/multi-classroom-select-group-filter/template.css","webpack:///./node_modules/chart.js/dist/chunks/helpers.segment.js","webpack:///./src/modules/academy-recommended-activity/template.js","webpack:///./src/modules/academy-recommended-activity/index.js","webpack:///./src/routes/upload-roster/modules/roster-validate/template.css","webpack:///./src/routes/rosters/images/dot-orange.webp","webpack:///./src/routes/upload-roster/modules/roster-summary-block/template.css","webpack:///./src/modules/admin-form/template.css","webpack:///./src/assets/images/mathmastery/my-math-academy.webp","webpack:///./src/modules/multivalue-column/index.js","webpack:///./src/modules/license-assign/sdo.js","webpack:///./src/routes/parent/i18n/index.js","webpack:///./src/routes/parent/modules/__config/modals.js","webpack:///./src/routes/teachers/modules/confirm-login-change-modal/template.js","webpack:///./src/routes/teachers/modules/confirm-login-change-modal/index.js","webpack:///./src/modules/license-assign/template.css","webpack:///./src/routes/rosters/images/dot-grey.webp","webpack:///./src/modules/hide-for-level/template.css","webpack:///./src/modules/save-report-form/template.js","webpack:///./src/modules/save-report-form/i18n/index.js","webpack:///./src/modules/save-report-form/index.js","webpack:///./src/modules/group-selector/template.js","webpack:///./src/modules/group-selector/index.js","webpack:///./src/modules/node-status-legend/template.css","webpack:///./src/modules/student-status-list/template.css","webpack:///./src/modules/student-status-list/template.js","webpack:///./src/modules/student-status-list/sdo.js","webpack:///./src/modules/student-status-list/index.js","webpack:///./src/modules/class-selection/template.css","webpack:///./node_modules/date-fns/esm/addDays/index.js","webpack:///./src/routes/parent/modules/redeem-code-modal/template.css","webpack:///./node_modules/date-fns/esm/startOfMonth/index.js","webpack:///./src/routes/licenses/modules/modals.js","webpack:///./src/modules/group-levels-filter.js","webpack:///./src/routes/dashboard/modules/user-initials-button/template.css","webpack:///./src/modules/login-actions.js","webpack:///./src/routes/upload-roster/modules/invalid-column-count/template.js","webpack:///./src/routes/upload-roster/modules/invalid-column-count/index.js","webpack:///./src/modules/node-status-legend/template.js","webpack:///./src/modules/node-status-legend/index.js","webpack:///./src/modules/academy-recommended-activity/assets/activity.svg","webpack:///./src/modules/data-table/template.js","webpack:///./src/modules/data-table/index.js","webpack:///./src/modules/sdo-licenses.js","webpack:///./src/modules/tabs/tab-content/styles.css","webpack:///./src/modules/archive-confirmation/template.css","webpack:///./src/modules/group-filters/template.css","webpack:///./src/modules/student-teacher-filter-dropdown/template.css","webpack:///./src/routes/upload-roster/modules/roster-validate/template.js","webpack:///./src/routes/upload-roster/modules/roster-validate/index.js","webpack:///./src/modules/auth-panel/images/background-mobile.webp","webpack:///./src/modules/user-search-class-assignment-filters/template.css","webpack:///./src/routes/teachers/modules/teacher-edit-form/template.js","webpack:///./src/routes/teachers/modules/teacher-edit-form/index.js","webpack:///./src/modules/action-items/modules/action-item/template.css","webpack:///./src/routes/dashboard/i18n/index.js","webpack:///./src/modules/product-card-info/template.css","webpack:///./src/routes/upload-roster/modules/invalid-row-errors/template.js","webpack:///./src/routes/upload-roster/modules/invalid-row-errors/index.js","webpack:///./src/modules/chartjs-accessibility/index.js","webpack:///./src/routes/upload-roster/modules/invalid-header-errors/template.js","webpack:///./src/routes/upload-roster/modules/invalid-header-errors/index.js","webpack:///./src/modules/bar-graph/template.js","webpack:///./src/modules/bar-graph/index.js","webpack:///./src/routes/upload-roster/modules/roster-summary-block/template.js","webpack:///./src/routes/upload-roster/modules/roster-summary-block/index.js","webpack:///./src/modules/roster-utils.js","webpack:///./src/routes/rosters/modules/carousel-element/images/chevron-blue-prev.webp","webpack:///./src/routes/licenses/modules/inventory-allocation/template.css","webpack:///./src/routes/parent/modules/redeem-code-modal/template.js","webpack:///./src/routes/parent/modules/redeem-code-modal/index.js","webpack:///./src/assets/images/printer-icon.webp","webpack:///./src/modules/date-picker/template.css","webpack:///./src/modules/select/modules/select-list.css","webpack:///./src/modules/inventory-updates-log/template.js","webpack:///./src/modules/inventory-updates-log/index.js","webpack:///./src/modules/action-items/modules/action-item/template.js","webpack:///./src/modules/action-items/modules/action-item/index.js","webpack:///./src/modules/multi-classroom-select-group-filter/template.js","webpack:///./src/modules/multi-classroom-select-group-filter/index.js","webpack:///./src/modules/product-card-info/template.js","webpack:///./src/modules/product-card-info/index.js","webpack:///./node_modules/date-fns/esm/endOfWeek/index.js","webpack:///./node_modules/date-fns/esm/startOfDay/index.js","webpack:///./src/routes/upload-roster/modules/invalid-column-count/template.css","webpack:///./src/routes/licenses/modules/inventory-allocation/datatable-styles.css","webpack:///./src/modules/auth-panel/images/logo.webp","webpack:///./src/modules/permission-check-mark/template.css","webpack:///./src/assets/images/pdf.webp","webpack:///./src/modules/search-filter-actions.js","webpack:///./src/modules/aofl-form/template.css","webpack:///./src/modules/class-selection/ems-dropdown.css","webpack:///./src/routes/upload-roster/modules/roster-export-link/template.js","webpack:///./src/routes/upload-roster/modules/roster-export-link/index.js","webpack:///./src/routes/rosters/images/number-dot_4.webp","webpack:///./src/modules/academy-lesson-details/images/icon-play-btn.webp","webpack:///./src/modules/academy-recommended-activity/assets/vocabulary.svg","webpack:///./src/assets/images/chevron-blue-right.webp","webpack:///./src/routes/parent/modules/parent-layout/images/background.webp","webpack:///./src/modules/sdo-group-search.js","webpack:///./src/modules/bulk-actions-button/template.js","webpack:///./src/modules/bulk-actions-button/index.js","webpack:///./src/assets/images/aofl-logo.webp","webpack:///./src/modules/object-search-form/template.css","webpack:///./src/modules/multivalue-column/template.css","webpack:///./src/modules/progress-filters-view/template.css","webpack:///./src/modules/save-report-form/template.css","webpack:///./src/modules/phone-input/template.css","webpack:///./src/routes/upload-roster/modules/invalid-header-errors/template.css","webpack:///./src/routes/licenses/modules/inventory-allocation/template.js","webpack:///./src/routes/licenses/modules/inventory-allocation/sdo.js","webpack:///./src/routes/licenses/modules/inventory-allocation/index.js","webpack:///./src/routes/licenses/details/template.js","webpack:///./src/routes/licenses/details/index.js","webpack:///./src/modules/academy-recommended-activity/assets/exit_ticket.svg","webpack:///./src/routes/rosters/modules/carousel-element/images/chevron-blue-next.webp","webpack:///./src/modules/role-view/template.css","webpack:///./src/modules/license-filters/template.css","webpack:///./src/modules/pagination-element/template.css","webpack:///./src/modules/auth-panel/template.js","webpack:///./src/modules/auth-panel/index.js","webpack:///./src/routes/licenses/modules/license-info-row/template.css","webpack:///./src/modules/i18n-numbers.js","webpack:///./src/modules/abbr-number.js","webpack:///./src/modules/__config/numbers-config.js","webpack:///./node_modules/date-fns/esm/endOfMonth/index.js","webpack:///./node_modules/date-fns/esm/subYears/index.js","webpack:///./node_modules/date-fns/esm/addYears/index.js","webpack:///./node_modules/date-fns/esm/getUnixTime/index.js","webpack:///./node_modules/date-fns/esm/getTime/index.js","webpack:///./node_modules/date-fns/esm/differenceInCalendarDays/index.js","webpack:///./node_modules/date-fns/esm/compareAsc/index.js","webpack:///./node_modules/date-fns/esm/differenceInDays/index.js","webpack:///./src/modules/dashboard-utils.js","webpack:///./node_modules/date-fns/esm/differenceInWeeks/index.js","webpack:///./src/modules/external-standards/template.js","webpack:///./src/modules/external-standards/index.js","webpack:///./src/modules/academy-lesson-details/template.js","webpack:///./src/modules/videos-handler-instance.js","webpack:///./src/modules/academy-lesson-details/index.js","webpack:///./src/modules/base-search-license-filters/template.css","webpack:///./src/modules/academy-lesson-details/template.css","webpack:///./src/modules/tabs/tab-content/template.js","webpack:///./src/modules/tabs/tab-content/index.js","webpack:///./src/modules/tabs/tab-header/template.js","webpack:///./src/modules/tabs/tab-header/index.js","webpack:///./src/modules/base-search-org-filters/template.css","webpack:///./src/modules/unsaved-changes-confirmation/template.css","webpack:///./src/modules/chart-element/template.js","webpack:///./src/modules/chart-element/index.js","webpack:///./src/modules/search-export-button/template.css","webpack:///./src/modules/multivalue-column/template.js","webpack:///./node_modules/date-fns/esm/startOfWeek/index.js","webpack:///./src/modules/data-table/template.css","webpack:///./src/routes/licenses/details/template.css","webpack:///./src/routes/licenses/modules/license-info/template.js","webpack:///./src/routes/licenses/modules/license-info/index.js","webpack:///./src/modules/unsaved-changes-confirmation/template.js","webpack:///./src/modules/unsaved-changes-confirmation/index.js","webpack:///./src/routes/parent/modules/select-child-modal/template.js","webpack:///./src/routes/parent/modules/select-child-modal/index.js","webpack:///./src/modules/select/modules/select-list.js","webpack:///./src/modules/select/modules/multi-select-list.js","webpack:///./src/modules/select/modules/list-option.js","webpack:///./node_modules/flatpickr/dist/esm/utils/polyfills.js","webpack:///./src/modules/search-form/template.css","webpack:///./node_modules/date-fns/esm/addMonths/index.js","webpack:///./node_modules/date-fns/esm/getDaysInMonth/index.js","webpack:///./src/modules/license-filters/template.js","webpack:///./src/modules/license-filters/index.js","webpack:///./src/modules/base-search-license-filters/template.js","webpack:///./src/modules/base-search-license-filters/index.js","webpack:///./src/modules/user-search-license-filters/index.js","webpack:///./src/modules/search-data-table/template.js","webpack:///./src/modules/search-data-table/index.js","webpack:///./src/routes/upload-roster/i18n/index.js","webpack:///./src/routes/upload-roster/modules/roster-upload-history-list/template.css","webpack:///./src/routes/dashboard/modules/user-initials-button/template.js","webpack:///./src/routes/dashboard/modules/user-initials-button/index.js","webpack:///./src/modules/license-assign/template.js","webpack:///./src/modules/license-assign/index.js","webpack:///./src/modules/group-filters/template.js","webpack:///./src/modules/group-filters/sdo.js","webpack:///./src/modules/group-filters/index.js","webpack:///./src/modules/sdo-user-search.js","webpack:///./src/routes/rosters/modules/carousel-element/template.js","webpack:///./src/routes/rosters/modules/carousel-element/index.js","webpack:///./src/modules/group-selector/template.css","webpack:///./src/routes/parent/modules/parent-layout/template.js","webpack:///./src/routes/parent/modules/parent-layout/index.js","webpack:///./src/modules/search-pagination/template.js","webpack:///./src/modules/search-pagination/index.js","webpack:///./src/routes/admins/i18n/index.js","webpack:///./src/modules/grades-list.js","webpack:///./src/routes/rosters/images/number-dot_2.webp","webpack:///./node_modules/@aofl/form-validate/dist/index.js","webpack:///./src/modules/hide-for-level/template.js","webpack:///./src/modules/hide-for-level/index.js","webpack:///./src/routes/licenses/modules/license-info-row/template.js","webpack:///./src/routes/licenses/modules/license-info-row/index.js","webpack:///./src/routes/teachers/i18n/index.js","webpack:///./src/modules/select/modules/list-option.css","webpack:///./src/modules/group-filters-menu/template.js","webpack:///./src/modules/group-filters-menu/sdo.js","webpack:///./src/modules/group-filters-menu/index.js","webpack:///./node_modules/chart.js/dist/chart.esm.js","webpack:///./src/modules/legend-element/template.css","webpack:///./src/modules/archive-confirmation/template.js","webpack:///./src/modules/archive-confirmation/index.js","webpack:///./src/modules/phone-input/images/flags.png","webpack:///./src/modules/external-standards/template.css","webpack:///./src/assets/images/abcmouse_english/abcmouse-english.webp","webpack:///./src/routes/dashboard/modules/mastery-legacy/mm-teacher-dashboard/sdo.js","webpack:///./src/routes/upload-roster/modules/roster-export-link/template.css","webpack:///./src/modules/group-summaries/template.css","webpack:///./src/modules/custom-form-validators/index.js","webpack:///./src/modules/legend-element/template.js","webpack:///./src/modules/legend-element/index.js","webpack:///./src/modules/search-export-button/template.js","webpack:///./src/modules/search-export-button/index.js","webpack:///./src/modules/academy-recommended-activity/template.css","webpack:///./src/modules/group-filters-menu/template.css","webpack:///./src/modules/search-form/template.js","webpack:///./src/modules/search-form/index.js","webpack:///./src/assets/images/chevron-blue-down.webp","webpack:///./src/routes/licenses/modules/license-info/template.css","webpack:///./src/modules/base-search-org-filters/template.js","webpack:///./src/modules/base-search-org-filters/index.js","webpack:///./src/modules/user-search-org-filters/index.js","webpack:///./node_modules/date-fns/esm/endOfDay/index.js","webpack:///./src/routes/parent/modules/redeem-code-form/template.css","webpack:///./src/modules/phone-input/template.js","webpack:///./src/modules/phone-input/countries.js","webpack:///./src/modules/phone-input/index.js","webpack:///./src/routes/teachers/modules/teacher-edit-form/template.css","webpack:///./node_modules/date-fns/esm/addWeeks/index.js","webpack:///./src/routes/rosters/modules/disconnect-modal/template.css","webpack:///./node_modules/debounce/index.js","webpack:///./node_modules/date-fns/esm/_lib/addLeadingZeros/index.js","webpack:///./node_modules/date-fns/esm/_lib/format/lightFormatters/index.js","webpack:///./node_modules/date-fns/esm/_lib/getUTCDayOfYear/index.js","webpack:///./node_modules/date-fns/esm/_lib/format/formatters/index.js","webpack:///./node_modules/date-fns/esm/format/index.js","webpack:///./node_modules/date-fns/esm/isValid/index.js","webpack:///./node_modules/@aofl/form-validate/modules/validation-function.js","webpack:///./node_modules/@aofl/form-validate/modules/validation-property.js","webpack:///./src/modules/academy-recommended-activity/assets/materials.svg","webpack:///./src/modules/search-pagination/template.css","webpack:///./src/modules/user-search-class-assignment-filters/template.js","webpack:///./src/modules/user-search-class-assignment-filters/index.js","webpack:///./src/modules/chart-element/template.css","webpack:///./src/modules/role-crud-block/template.css","webpack:///./src/routes/rosters/i18n/index.js","webpack:///./src/routes/parent/modules/select-child-modal/template.css","webpack:///./src/modules/date-picker/flatpickr.css","webpack:///./src/modules/class-selection/template.js","webpack:///./src/modules/class-selection/index.js","webpack:///./src/routes/licenses/i18n/index.js","webpack:///./src/routes/rosters/images/number-dot_5.webp","webpack:///./src/modules/bulk-actions-button/template.css","webpack:///./src/modules/tabs/tab-header/styles.css","webpack:///./src/modules/pagination-element/template.js","webpack:///./src/modules/pagination-element/index.js","webpack:///./src/routes/dashboard/modules/teacher-dashboard/sdo.js","webpack:///./src/routes/upload-roster/modules/roster-upload-history-list/template.js","webpack:///./src/routes/upload-roster/modules/roster-upload-history-list/index.js","webpack:///./src/routes/rosters/images/number-dot_1.webp","webpack:///./src/routes/resources/i18n/index.js","webpack:///./src/modules/search-data-table/template.css","webpack:///./src/routes/upload-roster/modules/wizard-steps/template.js","webpack:///./src/routes/upload-roster/modules/wizard-steps/index.js","webpack:///./src/routes/upload-roster/modules/invalid-row-errors/template.css","webpack:///./src/routes/upload-roster/modules/wizard-steps/template.css"],"names":["ctx","html","disabled","single","teacher","until","__","e","stopPropagation","searchInputHandler","i18n","results","length","map","item","selected","indexOf","id","selectHandler","name","DEFAULT_SEARCH","field","query","DEFAULT_FILTER","status","filterStatuses","ACTIVE","DEFAULT_SORT","fields","direction","limit","is_forward","customElement","StudentTeacherFilterDropdown","translations","searchDebounce","debounce","search","property","type","Boolean","Array","this","target","value","a","async","trimQuery","trim","Object","assign","data","ApiService","teacherSearch","studentSearch","dispatchEvent","CustomEvent","composed","bubbles","detail","default","template","styles","i18nMixin","AoflElement","exports","module","getUrl","___CSS_LOADER_URL___0___","___CSS_LOADER_URL___1___","___CSS_LOADER_URL___2___","___CSS_LOADER_URL___3___","___CSS_LOADER_URL___4___","___CSS_LOADER_URL___5___","___CSS_LOADER_URL___6___","___CSS_LOADER_URL___7___","___CSS_LOADER_URL___8___","___CSS_LOADER_URL___9___","___CSS_LOADER_URL___10___","___CSS_LOADER_URL___11___","___CSS_LOADER_URL___12___","___CSS_LOADER_URL___13___","___CSS_LOADER_URL___14___","___CSS_LOADER_URL___15___","___CSS_LOADER_URL___16___","___CSS_LOADER_URL___17___","___CSS_LOADER_URL___18___","push","i","discard","sponsor","hideStudent","groupChangeHandler","selectedGroup","isSponsor","isHideStudent","permissions","permissionGroupKeys","ADMIN_ACCOUNTS","ThreeWayToggle","VALUES","NONE","toggleState","setPermission","MANUAL_ROSTER","rosterChangeHandler","TEACHER_EDIT","STUDENT_EDIT","GROUP_EDIT","EXPORT_ALL","ROSTER_UPLOAD","settings","available_rostering_systems","sftp","SFTP","nothing","LICENSE","roleExists","genericApiError","removeGroupPermission","acc","addGroupPermission","RoleCrudBlock","storeInstance","Number","mapState","sdoNs","SESSION","store","permissionGroups","reduce","lastGroup","groupInfo","selectedGroupLevel","path","split","disableAdminPermission","tiersLevels","save","allCount","ALL","SOME","selection","permissionGroupKey","dataset","state","permission","groupId","checked","parentElement","querySelector","restricted","restrictedPermissions","parseInt","entries","val","permissionKey","permissionValue","group","groupLevel","commit","namespace","ADMIN_UINFO","mutationId","payload","index","error","code","exceptionCodes","INPUT_DUPLICATE","window","Appcues","track","PermissionCheckMark","String","attribute","loggedInUserId","isRootAdmin","role","breadcrumbs","access_data","SPONSOR","HIDE_STUDENT","renderPermissions","roles","RoleView","hasPerms","toastStatus","saveFailTpRosteringConnected","insufficentPermissionsEdit","submit","form","firstName","valid","firstNameUpdated","validateFirstName","isRequired","lastNameUpdated","lastName","generalLabels","loginEmail","showProfile","showContactInfo","email","emailUpdated","validateEmailAndPhone","emailLike","invalidEmailError","loginPhone","phone","phoneUpdated","phoneLike","invalidPhoneError","contact_email","userType","userTypes","TEACHER","contactEmailUpdated","validateContactEmailAndPhone","contactEmail","contactPhone","contactPhoneUpdated","contact_phone","external_id","externalIdUpdated","externalId","externalIdInUseError","userId","mfaRequired","mfaRequiredUpdated","mfaMethod","mfaMethodUpdated","addRole","repeat","pendingRoles","tempId","dismissRole","observed","saving","another","createAnother","AdminForm","getState","ownProfile","ADMIN","inputDisabled","validators","temp","checkLoginFields","bind","conflicting","conflictingEmail","checkContactFields","checkContactEmailField","checkContactPhoneField","validate","profile","preventDefault","SimpleModal","show","modals","UPDATE_LOGIN_EMAIL","mfaEnabled","shadowRoot","UPDATE_LOGIN_PHONE","defaultPermissions","formData","FormData","set","validateComplete","loggedIn","is_third_party_connected","managed_by","is_root_admin","hasOneOfPermissions","USER_EDIT","changedProperties","has","INPUT_CONFLICTING_PRODUCT_CREDENTIALS","errors","INPUT_GENERAL","duplicate","validationComplete","mapStatePropertiesMixin","validationMixin","subWeeks","dirtyDate","dirtyAmount","arguments","amount","___CSS_LOADER_URL___19___","viewText","summary","classMap","cardClasses","loading","qty","summaryLabels","label","isThirdPartyConnected","generalAriaLabels","createLabel","urls","create","viewLabel","manage","sdo","GROUP_SUMMARIES","mutations","init","decorators","nextState","nextSubState","subState","$summary","tier_structure","tiers","labels","classLevel","$classLevel","groups","level","summaryItem","dynamicPages","orgGroupCreate","orgGroupSearch","classrooms","classroomCreate","classroomSearch","students","total","studentCreate","teachers","teacherCreate","deepAssign","addState","BASE_CLASSES","GroupSummaries","loadSummary","commits","keys","subPaths","alreadyInPath","sessionGroupInfo","statsSummary","$isTpRosteringConnected","___CSS_LOADER_URL___20___","inline","HOOKS","_disable","allowInput","allowInvalidPreload","altFormat","altInput","altInputClass","animate","navigator","userAgent","ariaDateFormat","autoFillDefaultTime","clickOpens","closeOnSelect","conjunction","dateFormat","defaultHour","defaultMinute","defaultSeconds","disable","disableMobile","enableSeconds","enableTime","errorHandler","err","console","warn","getWeek","givenDate","date","Date","getTime","setHours","setDate","getDate","getDay","week1","getFullYear","Math","round","hourIncrement","ignoredFocusElements","locale","minuteIncrement","mode","monthSelectorType","nextArrow","noCalendar","now","onChange","onClose","onDayCreate","onDestroy","onKeyDown","onMonthChange","onOpen","onParseConfig","onReady","onValueUpdate","onYearChange","onPreCalendarPosition","plugins","position","positionElement","undefined","prevArrow","shorthandCurrentMonth","showMonths","static","time_24hr","weekNumbers","wrap","english","weekdays","shorthand","longhand","months","daysInMonth","firstDayOfWeek","ordinal","nth","s","rangeSeparator","weekAbbreviation","scrollTitle","toggleTitle","amPM","yearAriaLabel","monthAriaLabel","hourAriaLabel","minuteAriaLabel","pad","number","slice","bool","fn","wait","t","_this","args","clearTimeout","setTimeout","apply","arrayify","obj","toggleClass","elem","className","classList","add","remove","createElement","tag","content","document","textContent","clearNode","node","firstChild","removeChild","createNumberInput","inputClassName","opts","wrapper","numInput","arrowUp","arrowDown","pattern","key","setAttribute","appendChild","getEventTarget","event","composedPath","doNothing","monthToStr","monthNumber","revFormat","D","F","dateObj","monthName","setMonth","G","hour","getHours","parseFloat","H","J","day","K","RegExp","test","M","shortMonth","S","seconds","setSeconds","U","_","unixSeconds","W","weekNum","weekNumber","Y","year","setFullYear","Z","ISODate","d","h","minutes","setMinutes","j","l","m","month","n","u","unixMillSeconds","w","y","tokenRegex","toISOString","options","getMonth","getSeconds","getMinutes","substring","createDateFormatter","_a","_b","config","_c","l10n","_d","isMobile","frmt","overrideLocale","formatDate","c","arr","join","createDateParser","givenFormat","timeless","customLocale","parsedDate","dateOrig","toFixed","format","datestr","parseDate","matched","ops","matchIndex","regexStr","token","isBackSlash","escaped","match","exec","forEach","isNaN","Error","compareDates","date1","date2","isBetween","ts","ts1","ts2","min","max","calculateSecondsSinceMidnight","hours","parseSeconds","secondsSinceMidnight","floor","duration","DAY","getDefaultHours","minDate","minHour","minMinutes","minSeconds","maxDate","maxHr","maxMinutes","__assign","p","prototype","hasOwnProperty","call","__spreadArrays","il","r","k","jl","DEBOUNCED_CHANGE_MS","FlatpickrInstance","element","instanceConfig","self","defaultConfig","getClosestActiveElement","calendarContainer","getRootNode","activeElement","bindToInstance","setCalendarWidth","requestAnimationFrame","style","visibility","display","daysContainer","daysWidth","days","offsetWidth","width","weekWrapper","removeProperty","updateTime","selectedDates","defaultDate","defaults","getMilliseconds","latestSelectedDateObj","isKeyDown","eventTarget","input","getAttribute","step","curValue","delta","which","newValue","isHourElem","hourElement","isMinuteElem","minuteElement","incrementNumInput","abs","timeWrapper","prevValue","_input","setHoursFromInputs","updateValue","_debouncedChange","secondElement","limitMinHours","minTime","minDateHasTime","limitMaxHours","maxTime","maxDateHasTime","minBound","maxBound","currentTime","result","setHoursFromDate","onYearInput","toString","changeYear","handler","ev","el","addEventListener","_handlers","removeEventListener","triggerChange","triggerEvent","jumpToDate","jumpDate","jumpTo","oldYear","currentYear","oldMonth","currentMonth","message","buildMonthSwitch","redraw","timeIncrement","contains","inputElem","parentNode","createEvent","createDay","_dayNumber","dateIsEnabled","isEnabled","dayElement","$i","todayDateElem","tabIndex","isDateSelected","selectedDateElem","isDateInRange","insertAdjacentHTML","focusOnDayElem","targetNode","focus","onMouseOver","getFirstAvailableDay","startMonth","endMonth","children","startIndex","endIndex","focusOnDay","current","offset","dayFocused","isInView","body","startElem","givenMonth","loopDelta","numMonthDays","changeMonth","getNextAvailableDay","buildMonthDays","firstOfMonth","prevMonthDays","utils","getDaysInMonth","createDocumentFragment","isMultiMonth","prevMonthDayClass","nextMonthDayClass","dayNumber","dayIndex","dayNum","dayContainer","buildDays","frag","shouldBuildMonth","monthsDropdownContainer","innerHTML","buildMonth","monthElement","container","monthNavFragment","selectedMonth","yearInput","tabindex","yearElement","getElementsByTagName","buildMonths","monthNav","prevMonthNav","yearElements","monthElements","nextMonthNav","buildWeekdays","weekdayContainer","updateWeekdays","splice","isOffset","_hidePrevMonthArrow","_hideNextMonthArrow","updateNavigationCurrentMonth","isCalendarElem","documentClick","isOpen","eventTarget_1","isCalendarElement","lostFocus","relatedTarget","isIgnored","some","timeContainer","close","clear","newYear","newYearNum","isNewYear","dateToCheck","enable","array","parsed","from","to","onBlur","isInput","valueChanged","trimEnd","getDateStr","allowKeydown","allowInlineKeydown","keyCode","blur","open","isTimeObj","focusAndClose","selectDate","delta_1","ctrlKey","currentYearElement","elems","concat","pluginElements","filter","x","shiftKey","charAt","toLowerCase","cellClass","hoverDate","firstElementChild","initialDate","rangeStartDate","rangeEndDate","containsDisabled","minRange","maxRange","rContainer","querySelectorAll","dayElem","timestamp","outOfRange","onResize","positionCalendar","minMaxDateSetter","inverseDateObj","removeAttribute","getInputElem","setupLocale","l10ns","JSON","parse","stringify","customPositionElement","_positionElement","calendarHeight","child","offsetHeight","calendarWidth","configPos","configPosVertical","configPosHorizontal","inputBounds","getBoundingClientRect","distanceFromBottom","innerHeight","bottom","showOnTop","top","pageYOffset","left","pageXOffset","isCenter","isRight","right","rightMost","centerMost","doc","editableSheet","styleSheets","sheet","cssRules","head","getDocumentStyleSheet","bodyWidth","centerLeft","centerIndex","centerStyle","insertRule","centerBefore","msMaxTouchPoints","findParent","condition","selectedDate","shouldChangeMonth","selectedIndex","sort","b","range","loadedPlugins","_bind","_setHoursFromDate","_positionCalendar","triggerChangeEvent","toInitial","mobileInput","_initialDate","_createElement","destroy","lastChild","insertBefore","_type","click","wasOpen","select","option","CALLBACKS","setSelectedDate","toggle","updatePositionElement","inputDate","dates","parseDateRules","rule","hooks","initEvent","specificFormat","dObj","mobileFormatStr","onMonthNavClick","isPrevMonth","isNextMonth","boolOpts","userConfig","formats","defineProperty","get","_enable","timeMode","defaultDateFormat","defaultAltFormat","_minDate","_maxDate","minMaxTimeSetter","_minTime","_maxTime","hook","pluginConf","parseConfig","nodeName","placeholder","required","nextSibling","setupInputs","preloadedDate","setupDates","yr","fragment","__hidePrevMonthArrow","__hideNextMonthArrow","innerContainer","buildWeeks","separator","hourInput","minuteInput","military2ampm","secondInput","title","buildTime","customAppend","appendTo","nodeType","build","evt","inputType","defaultValue","setupMobile","debouncedResize","ontouchstart","capture","bindEvents","isSafari","_flatpickr","nodeList","nodes","HTMLElement","instances","HTMLCollection","NodeList","flatpickr","selector","Node","en","localize","setDefaults","jQuery","fp_incr","TRANSLATION_CONFIG","resolve","attrMap","converter","convert","v","DatePicker","observer","langListener","MutationObserver","mutationList","lang","observe","documentElement","attributes","l10nOptions","dateStr","picker","elm","updateComplete","slot","assignedElements","renderPicker","langTranslation","then","localeTranslations","rendered","flatpickrCss","disconnect","ShowModal","clickHandler","keyPressHandler","AoflForm","keydownHandler","listChangeHandler","onInput","searchTerm","SEARCH","clearSearch","_r","ObjectSearchForm","queryDebounce","sendSearchEvent","getElementById","getStatusFilter","selectedStatus","setStatusFilter","product","all","values","nodeStatuses","nodeStatusInfo","getSearchInput","standardSets","nameFilterInputDebounce","filters","nameFilter","getGradeFilter","standardSetFilter","grades","gradeFilter","dashboardLabels","SELECT_A_GRADE","setGradeFilter","gradesLabels","ALL_GRADES","grade","dynamicGrade","getStandardSetFilter","selectedStandardSet","SELECT_A_STANDARD_SET","setStandardSetFilter","standardSet","getStandardCategoryFilter","selectedStandardCategory","setStandardCategoryFilter","loParents","standardCategory","getResetButton","resetFilters","setNameFilter","PROGRESS_FILTERS_VIEW","statusFilter","standardCategoryFilter","activeThisWeekFilter","clickedFilters","skillsLoaded","skillInfo","externalStandardSets","loParentsCategory","skillCountsPerGrade","resetFiltersExceptSet","setData","node_codes","external_standards","setGrades","gradesBuckets","setSkillCountsPerGrade","coreGrades","doc_count","includes","setActiveThisWeekFilter","progressFiltersState","progressFiltersNextState","$hasFilter","$standardSets","standard","properties","$selectedStandardSet","$filtersForBI","filterValue","$loParentsSelectedCategory","selectCategory","ProgressFiltersView","nameFilterInput","statuses","INTERVENTION","IN_PROGRESS","PRIOR_KNOWLEDGE","MASTERY_ACHIEVED","intervention","STRUGGLING","in_progress","mastery_achieved","COMPLETED","prior_knowledge","SELECT_A_STATUS","getNodeExternalStandards","searchSkills","resp","updateLOParentsDropdowns","externalStandards","activityMetadataGetKnowledgeComponent","sendFilterChangeEvent","gradesBucket","aggregations","filtered","buckets","updateLOCategories","loParentsBucket","lo_parent_name","lo_parent_type","updateGradesDropdowns","products","MATH_ACADEMY","MY_MATH_ACADEMY","READING_MASTERY","MY_READING_ACADEMY","DashboardUtils","skillsSearchCall","forLoggedInParent","getLabel","updateCode","errorCode","formLabels","INPUT_INVALID_REDEEM_CODE","LOGIC_GENERAL","SessionActions","logout","routerInstance","navigate","pages","HOME","encodeURI","strings","renderErrors","submitting","RedeemCodeForm","validateCode","requestAnimFrame","callback","throttled","thisArg","updateFn","updateArgs","ticking","rest","delay","timeout","_toLeftRightCenter","align","_alignStartEnd","start","end","_textX","rtl","noop","uid","isNullOrUndef","isArray","substr","isObject","isNumberFinite","isFinite","finiteOrDefault","valueOrDefault","toPercentage","dimension","endsWith","toDimension","each","loopable","reverse","len","_elementsEqual","a0","a1","ilen","v0","v1","datasetIndex","clone$1","source","klen","isValidKey","_merger","tval","sval","merge","sources","merger","mergeIf","_mergerIf","emptyString","dot","indexOfDotOrLength","idx","resolveObjectKey","pos","_capitalize","str","toUpperCase","defined","isFunction","setsEqual","size","PI","TAU","PITAU","INFINITY","POSITIVE_INFINITY","RAD_PER_DEG","HALF_PI","QUARTER_PI","TWO_THIRDS_PI","log10","sign","niceNum","roundedRange","almostEquals","niceRange","pow","fraction","_factorize","sqrt","pop","isNumber","epsilon","almostWhole","rounded","_setMinAndMaxByKey","toRadians","degrees","toDegrees","radians","_decimalPlaces","getAngleFromPoint","centrePoint","anglePoint","distanceFromXCenter","distanceFromYCenter","radialDistanceFromCenter","angle","atan2","distance","distanceBetweenPoints","pt1","pt2","_angleDiff","_normalizeAngle","_angleBetween","sameAngleIsFullCircle","angleToStart","angleToEnd","startToAngle","endToAngle","_limitValue","_int16Range","atEdge","elasticIn","sin","elasticOut","effects","linear","easeInQuad","easeOutQuad","easeInOutQuad","easeInCubic","easeOutCubic","easeInOutCubic","easeInQuart","easeOutQuart","easeInOutQuart","easeInQuint","easeOutQuint","easeInOutQuint","easeInSine","cos","easeOutSine","easeInOutSine","easeInExpo","easeOutExpo","easeInOutExpo","easeInCirc","easeOutCirc","easeInOutCirc","easeInElastic","easeOutElastic","easeInOutElastic","easeInBounce","easeOutBounce","easeInOutBounce","0","1","2","3","4","5","6","7","8","9","A","B","C","E","f","hex","h1","h2","eq","hexString","g","isShort","lim","p2b","n2b","b2n","n2p","RGB_RE","HUE_RE","hsl2rgbn","hsv2rgbn","hwb2rgbn","rgb","rgb2hsl","calln","hsl2rgb","hue","hueParse","p1","p2","hwb2rgb","hsv2rgb","map$1","X","V","T","R","Q","P","O","N","L","I","names","OiceXe","antiquewEte","aqua","aquamarRe","azuY","beige","bisque","black","blanKedOmond","Xe","XeviTet","bPwn","burlywood","caMtXe","KartYuse","KocTate","cSO","cSnflowerXe","cSnsilk","crimson","cyan","xXe","xcyan","xgTMnPd","xWay","xgYF","xgYy","xkhaki","xmagFta","xTivegYF","xSange","xScEd","xYd","xsOmon","xsHgYF","xUXe","xUWay","xUgYy","xQe","xviTet","dAppRk","dApskyXe","dimWay","dimgYy","dodgerXe","fiYbrick","flSOwEte","foYstWAn","fuKsia","gaRsbSo","ghostwEte","gTd","gTMnPd","Way","gYF","gYFLw","gYy","honeyMw","hotpRk","RdianYd","Rdigo","ivSy","khaki","lavFMr","lavFMrXsh","lawngYF","NmoncEffon","ZXe","ZcSO","Zcyan","ZgTMnPdLw","ZWay","ZgYF","ZgYy","ZpRk","ZsOmon","ZsHgYF","ZskyXe","ZUWay","ZUgYy","ZstAlXe","ZLw","lime","limegYF","lRF","magFta","maPon","VaquamarRe","VXe","VScEd","VpurpN","VsHgYF","VUXe","VsprRggYF","VQe","VviTetYd","midnightXe","mRtcYam","mistyPse","moccasR","navajowEte","navy","Tdlace","Tive","TivedBb","Sange","SangeYd","ScEd","pOegTMnPd","pOegYF","pOeQe","pOeviTetYd","papayawEp","pHKpuff","peru","pRk","plum","powMrXe","purpN","YbeccapurpN","Yd","Psybrown","PyOXe","saddNbPwn","sOmon","sandybPwn","sHgYF","sHshell","siFna","silver","skyXe","UXe","UWay","UgYy","snow","sprRggYF","stAlXe","tan","teO","tEstN","tomato","Qe","viTet","JHt","wEte","wEtesmoke","Lw","LwgYF","names$1","nameParse","unpacked","tkeys","ok","nk","replace","unpack","transparent","modHSL","ratio","tmp","clone","proto","fromObject","functionParse","rgbParse","Color","ret","_rgb","_valid","hslString","color","weight","me","c1","c2","w2","w1","deg","rotate","index_esm","isPatternOrGradient","CanvasGradient","CanvasPattern","getHoverColor","saturate","darken","overrides","descriptors","getScope$1","root","scope","_descriptors","animation","backgroundColor","borderColor","datasets","devicePixelRatio","context","chart","platform","getDevicePixelRatio","elements","events","font","family","lineHeight","hover","hoverBackgroundColor","hoverBorderColor","hoverColor","indexAxis","interaction","intersect","maintainAspectRatio","onHover","onClick","parsing","responsive","scale","scales","showLine","describe","targetScope","targetName","scopeObject","targetScopeObject","privateName","defineProperties","writable","enumerable","local","_scriptable","startsWith","_indexable","_fallback","_measureText","gc","longest","string","textWidth","measureText","_longestText","arrayOfThings","cache","garbageCollect","jlen","thing","nestedThing","restore","gcLen","_alignPixel","pixel","currentDevicePixelRatio","halfWidth","clearCanvas","canvas","getContext","resetTransform","clearRect","height","drawPoint","xOffset","yOffset","cornerRadius","pointStyle","rotation","radius","rad","translate","drawImage","beginPath","arc","closePath","moveTo","lineTo","SQRT1_2","rect","fill","borderWidth","stroke","_isPointInArea","point","area","margin","clipArea","clip","unclipArea","_steppedLineTo","previous","flip","midpoint","_bezierCurveTo","bezierCurveTo","cp1x","cp2x","cp1y","cp2y","renderText","text","lines","strokeWidth","strokeColor","line","translation","fillStyle","textAlign","textBaseline","setRenderOpts","strokeStyle","lineWidth","strokeText","maxWidth","fillText","decorateText","strikethrough","underline","metrics","actualBoundingBoxLeft","actualBoundingBoxRight","actualBoundingBoxAscent","actualBoundingBoxDescent","yDecoration","decorationWidth","addRoundedRectPath","topLeft","bottomLeft","bottomRight","topRight","LINE_HEIGHT","FONT_STYLE","toLineHeight","matches","numberOrZero","_readValueToProps","props","objProps","read","prop","toTRBL","toTRBLCorners","toPadding","toFont","fallback","toFontString","inputs","info","cacheable","_addGrace","minmax","grace","_lookup","table","cmp","mid","hi","lo","_lookupByKey","_rlookupByKey","_filterBetween","arrayEvents","listenArrayEvents","listener","_chartjs","listeners","configurable","method","base","res","object","unlistenArrayEvents","stub","_arrayUnique","items","Set","_createResolver","scopes","prefixes","rootScopes","getTarget","_resolve","Symbol","toStringTag","_cacheable","_scopes","_rootScopes","_getTarget","override","Proxy","deleteProperty","_keys","_cached","proxy","prefix","readKey","needsSubResolver","createSubResolver","_resolveWithPrefixes","getOwnPropertyDescriptor","Reflect","getPrototypeOf","getKeysFromAllScopes","ownKeys","_storage","_attachContext","subProxy","descriptorDefaults","_proxy","_context","_subProxy","_stack","setContext","receiver","isScriptable","delete","_resolveScriptable","isIndexable","resolver","_resolveArray","_resolveWithContext","allKeys","scriptable","indexable","_allKeys","resolveFallback","getScope","parent","addScopes","parentScopes","parentFallback","allScopes","addScopesFromKey","subGetTarget","resolveKeysFromAllScopes","EPSILON","getPoint","points","skip","getValueAxis","splineCurve","firstPoint","middlePoint","afterPoint","next","d01","d12","s01","s12","fa","fb","splineCurveMonotone","valueAxis","pointsLen","deltaK","mK","pointBefore","pointCurrent","pointAfter","slopeDelta","alphaK","betaK","tauK","squaredMagnitude","monotoneAdjust","iPixel","vPixel","monotoneCompute","capControlPoint","pt","_updateBezierControlPoints","loop","controlPoints","spanGaps","cubicInterpolationMode","prev","tension","capBezierPoints","inArea","inAreaPrev","inAreaNext","_getParentNode","domNode","host","parseMaxStyle","styleValue","parentProperty","valueInPixels","getComputedStyle","positions","getPositionedStyle","suffix","useOffsetPos","getRelativePosition","borderBox","boxSizing","paddings","borders","box","native","touches","offsetX","offsetY","clientX","clientY","getCanvasPosition","round1","getMaximumSize","bbWidth","bbHeight","aspectRatio","margins","maxHeight","containerSize","containerStyle","containerBorder","containerPadding","clientWidth","clientHeight","getContainerSize","retinaScale","forceRatio","forceStyle","pixelRatio","deviceHeight","deviceWidth","setTransform","supportsEventListenerOptions","passiveSupported","readUsedSize","getPropertyValue","getStyle","_pointInLine","_steppedInterpolation","_bezierInterpolation","cp1","cp2","intlCache","Map","formatNumber","num","cacheKey","formatter","Intl","NumberFormat","getNumberFormat","getRightToLeftAdapter","rectX","xPlus","leftForLtr","itemWidth","getLeftToRightAdapter","_itemWidth","getRtlAdapter","overrideTextDirection","original","getPropertyPriority","setProperty","prevTextDirection","restoreTextDirection","propertyFn","between","compare","normalize","normalizeSegment","count","_boundSegment","segment","bounds","startBound","endBound","getSegment","inside","subStart","shouldStart","startIsBefore","shouldStop","endIsBefore","_boundSegments","segments","sub","_computeSegments","segmentOptions","_loop","findStartAndEnd","splitByStyles","last","cur","stop","solidSegments","_fullLoop","prevStyle","p0","styleChanged","borderCapStyle","borderDash","borderDashOffset","borderJoinStyle","doSplitByStyles","iconMap","english_language_supports","social_emotional_supports","english_learner_supports","acscdn","getTranslation","materials","mathematical_practices","try_it","set_up","learner_reflection","purpose","vocabulary","activity","exit_ticket","success_strategies","student","headerIconMapping","Vocabulary","Activity","ExitTicket","getAudienceSelectButtons","recommendedActivityType","ONE_ON_ONE","GROUP","recommendedActivityTypes","activeRecommendedActivity","getField","iconName","enableBorderDash","icon","version","unsafeHTML","getCollapse","collapseHeader","collapseOpen","toggleCollapse","getMaterials","Materials","materials_pdfs","pdf","full_path","filename","require","download","getMaterialsPdfs","version1","version2","getPurpose","success_strategies_teacher","success_strategies_student","getSuccessStrategies","activities","forGroupSupport","recommendedActivityName","activity_name","estimatedTime","estimated_time","INSTRUCTION_TYPES","changeAudience","activity_description","skillName","forStudentView","showPdfButton","generated_pdf","getPrintButton","MY_READING_ACADEMY_ES","AcademyRecommendedActivity","queryAll","activityIds","recommendedActivityIsDownloadable","response","selectedLanguage","supportedLocalesMap","is_downloadable","LOCALE_DD","elsSesImgs","img","MultivalueColumn","LICENSE_ASSIGN","substate","constModals","PARENT_REDEEM_CODE","SYNC_ACCOUNT","SELECT_CHILD","CONFIRM_PARENT_ACCOUNT","LAUNCH_PRODUCT_APP","PARENT_LESSON_DETAILS","PARENT_FIRST_TIME_USER_EXPERIENCE","addModals","saveChanges","ConfirmLoginChangeModal","Function","updateTitle","validateTitle","updateDescription","cancel","SaveReportForm","description","groupIndex","tier","parentId","selectGroup","itemIndex","renderGroup","GroupSelector","group_info","maxLevel","groupLevelsFilter","GroupLevelsFilter","showClasses","loadAllGroupsByParentPath","filterForGroupsAboveLevel","shift","realPath","part","loadSelectedGroups","at","updateGroupAndGetGroups","newGroups","updateGroup","collapsesByStatus","colorMap","header","openStudentDashboard","initials","bubbleTextColor","abbreviated","STUDENT_STATUS_LIST","_subState","_payload","StudentStatusList","_status","cancelBubble","academyLessonModalData","SIMPLE_MODAL","ACADEMY_LESSON_DETAILS_MODAL","STUDENT_DETAILS","first_name","last_name","activeSection","studentDetailSections","DASHBOARD","activeDashTab","addDays","startOfMonth","modalsEnum","LICENSE_DISTRIBUTE","LICENSE_TAKE","arrayIterator","gen","showThirdPartyConnected","allGroups","TypeError","constructor","levels","subGroups","myGroups","levelLabelOverrides","tierStructure","CLASS","_setSelected","$myGroups","groupListNestedByParent","nestedGroups","CLASSES","addGroupLevel","group_id","current_role","groupData","Promise","selectedGroups","reject","selectedGroupsIterator","loadNextGroup","iter","done","findIndex","LoginActions","I18n","localStorage","getItem","localStorageKeys","LANG","subscribe","aoflProducts","username","password","url","mfaRemember","mfaToken","login","handleLogin","LANDING","showLanding","routeToLanding","landingPageProducts","session","aofl_products","has_roster_data","isCurrentMasteryProduct","GETTING_STARTED","mfa_status","MFA_ENTER","mfa_method","mfa_available_methods","MFA_SETUP","user_info","Toast","oops","setItem","PARENT","PARENT_DASHBOARD","redirect_uri","location","href","user_profiles","last_used","group_name","success","rosterErrors","CSV_INVALID_COLUMN_COUNT","rosterErrorLabels","getRosterTemplate","InvalidColumnCount","RosterUtils","useActiveRoster","USER_JOBS","$rosterInvalidColumnCountError","$activeRosterJob","roster","hasInvalidColumnCountError","legend","NodeStatusLegend","struggling","toggleSelectMenu","selectionMode","toggleAll","togglePage","sortable","order","headClassList","sortBy","rowClicked","$selected","rowToggle","render","DataTable","hasChanged","oldVal","selectDropdown","LICENSES","queryObj","persistent_selection","searchTargetUrl","tableConfig","hasMore","licenses","details","currentGroupLicenseCount","childGroupsLicenseCount","loadingDetails","distributionLog","assignmentLog","licenseAllocations","licenseAllocationGroupPathsRetrieved","updateSortOrder","setDetails","license_details","child_group_license_count","current_group_license_count","currState","$licenses","licenseType","expiration_type","DurationLabel","expired","FixedEndDateExpiredLabel","FixedEndDateLabel","license_name","license_type","accessibleProductLabels","home_access_type","licenseHomeAccessTypeLabels","access_type","available","redeemed","assigned","group_total","group_available","group_assigned","transferable","Yes","No","fspk","$orderedLicenseAllocations","allocation","fullPath","group_path","$prevQueryObj","$prev","$next","$sort","$pageNumber","hasOffset","last_values","$numPages","$licensesByProduct","license","licenseTypes","$details","expiration","refundable","activation_start","external_access_type","activation_start_type","auto_license","aofl_product","fixed_duration","fixed_end_date","start_date","toLocaleDateString","nextSessionState","$distributionLog","dateOptions","minute","$toGroupLabel","to_group_level","$assignmentLog","$maxLevel","$licenseAllocations","renderResult","renderSummaries","renderPendingState","renderDoneState","renderFailState","rosterJob","isSameGroupId","jobStatuses","PENDING","teachersLabel","renderSummary","summaries","myLevel","renderGroupSummaries","administrators","section","params_json","current_tier","tierStructureLabels","renderRosterInitiatedByHigherAdminMessage","columnClass","note","actions","cancelJob","has_teacher_email_changes","commitRoster","commitRosterNoEmailChange","job_type","jobTypes","ROSTER_FULL","skipped_count","replaceRosterConfirmationMatches","updateReplaceRosterConfirmation","action","FAILED","ROSTERS_ARCHIVE","rosterUploadUrl","DONE","productError","CONFLICTING_PRODUCT_EMAIL","errorContent","showProductErrors","openLicenseModal","LICENSE_APPLY","RosterValidate","newVal","stage","rosterJobGetList","rosterJobs","jobs","rosterJobStages","ROSTER_VALIDATE_ERRORS","ROSTER_PROCESSING_COMMIT","replaceRosterConfirmation","replaceRosterCompareString","myGroupId","environment","PROD","rosterJobCommit","userJobs","getJobs","getRosterJobs","interval","setInterval","getDelay","skip_emails","CANCEL_ROSTER_JOB_CONFIRMATION_MODAL","rosterJobId","clearInterval","assignMode","licenseAssignMode","SELECTED","rosterId","subsetUrl","STUDENT_SEARCH","LICENSE_ASSIGN_BULK","$rosterUploadUrl","requiredField","renderFormFields","renderClasses","renderProducts","teacherLoginEnabled","isTeacherCreate","isThereEmailOrPhone","preferredCommunicationUpdated","preferredCommunication","validateExternalId","showEmptyClassSelection","dataUpdated","classClicked","classesBySchool","$classesGroupedBySchool","addNewSchool","conditionToShow","showIf","qrEnabled","downloadQRCode","qrCodes","DOWNLOAD_QR_CODES","renderProductCard","TeacherEditForm","emailOrPhone","duplicateExternalId","TEACHER_INFO","reset","requestUpdate","dispatchValidateEvent","classInfo","class","dismissAll","teacherUpdatePreferredCommunication","teacherId","pause","generateQr","object_ids","object_type","objectTypes","USER","emailFromModal","phoneFromModal","classIds","classes","ogEmail","ogPhone","CONFIRM_TEACHER_LOGIN_CHANGE","thirdPartyConnectedGroup","ROW_ERROR_TYPES","DUPLICATE_EMAIL","DUPLICATE_PHONE","EMAIL_IN_USE_BY_ADMIN","ID_MISMATCH","ID_REUSE_MISMATCH","INVALID_EMAIL","INVALID_NAME","INVALID_COUNTRY_CODE","INVALID_EXTERNAL_ID_LENGTH","INVALID_LANGUAGE","INVALID_MONTH","INVALID_PHONE","INVALID_SWAP_OF_GROUP_LEVEL","INVALID_YEAR","NO_EMAIL_OR_PHONE","REPLACEMENT_ID_MISMATCH","REPLACEMENT_ID_USED","REPLACEMENT_ID_ARCHIVED","REQUIRED","CSV_ROW_ERROR","renderError","getProvideUniqueRosterId","buildBadge","buildBadges","other","badges","file","renderCard","footer","badge","column","numberToExcelCol","MISSING_HEADER","NO_SUCH_FIELD_ERROR","NOT_EQUAL_ERROR","compared_value","NO_SUCH_CHOICE_ERROR","choices","MISSING_FIELD_ERROR","ID_MISMATCH_NEW","user_type","INVALID_DATE_FORMAT_ERROR","sample_value","INVALID_USER_ROLE_REFERENCE","invalid_value","reference","msg","INCOMPLETE_DELETION","INVALID_CLASS_PARENT","tierLevels","INVALID_ORG_STATUS","INVALID_ORG_STRUCTURE","IS_BLANK_ERROR","INVALID_PHONE_FORMAT_ERROR","UNKNOWN_HEADER","FILE_NOT_FOUND_ERROR","INVALID_REFERENCE","invalidValue","INVALID_MANAGED_RECORD_STATUS","AMBIGUOUS","infoMessage","matchedObject","ROW_ERRORS","InvalidRowErrors","mod","fromCharCode","$rosterRowError","hasRowError","AoflAccessibilityPlugin","parts","ariaLabel","ariaLabels","CSV_COL_ERROR","CSV_INVALID_PROPERTY","INVALID_TIERS","InvalidHeaderErrors","$rosterInvalidHeaderPropertyError","hasInvalidHeaderPropertyError","chartData","chartOptions","chartPlugins","graphWidth","graphHeight","CHART_OPTIONS","xAxis","grid","offsetGridLines","yAxis","ticks","beginAtZero","usePointStyle","CHART_DATASET_DEFAULTS","CHART_DATA","canvasSizeMap","mql","matchMedia","BarGraph","setGraphSize","addListener","mqlHandler","resizeHandler","passive","promises","chartDatasets","reportLabels","chartLabels","chartAriaLabels","removeListener","rosterSummary","update","no_update","RosterSummaryBlock","rosterExport","getDownloadFileUrl","file_key","userJobGet","jobInfo","data_source","codeSubmitted","RedeemCodeModal","hide","userVerifyActivationCode","parentAddChild","sessionInfo","PARENT_HOMEPAGE","forceReload","renderLog","pagination","pageChanged","currentPage","renderEventInfo","licenseTranslations","event_type","renderQuantity","license_id","toggleOpen","openLicenseIds","$date","licenseDetails","user_name","from_group_name","to_group_name","Students","positiveActions","licenseActions","LICENSE_CREATED","LICENSE_REVOKED","to_group_id","to_student_id","LICENSE_TRANSFERRED","quantity","LICENSE_EXTENDED","InventoryUpdatesLog","INVENTORY_UPDATE_LOG","LICENSE_HISTORY","ORG_GROUP_INFO","t10s","toasts","export_queued","LICENSE_DEACTIVATED","LICENSE_EXPIRED","LICENSE_ASSIGNED","LICENSE_TAKEN","LICENSE_GIVEN","setTranslations","pageNumber","lastValues","performUpdate","searchType","translationResults","filterIds","notSelected","exportSearch","licenseId","isClickable","ActionItem","MultiClassroomSelectGroupFilter","PASSCODE_PRODUCTS","productConsts","ABCMOUSE","productLogos","active","productKeepGrayScale","renderTerminationDate","renderRedeemCode","renderInviteStatus","renderRedeemDate","renderFspk","renderPasscode","renderRevokeAction","activation_status","redeem_code","redeemDate","licenseEndDate","licenseStartDate","invitation_status","LICENSE_REVOKE","passcode","passcodeInfo","passcode_icon_info","passcodeItem","svg","renderIcon","ABCMOUSE_PASSCODE_RESET","successCallback","clearABCmousePassCode","ProductCardInfo","abcmouseGetPasscodeInfo","sendInvites","student_ids","STUDENT_INFO","studentGet","studentInfo","endOfWeek","dirtyOptions","localeWeekStartsOn","weekStartsOn","defaultWeekStartsOn","RangeError","diff","startOfDay","searchNamespace","GROUP_SEARCH","defaultQueryObj","searchState","filters_reset","searchParams","SearchParams","encode","replaceState","maybeApplyFilters","applyFilters","pendingFilters","searchQuery","history","applyHistory","pushState","lowerLevelAdminsPermissions","ROSTER","disableExportLink","exportAll","RosterExportLink","rosterExportJob","DEFAULT_PENDING_FILTERS","selection_mode","not_selected","total_results","allSelected","profileTargetUrl","setQuerySearchQuery","setQuerySearchField","setQuerySortFields","setQueryFilters","setPendingFilters","_pendingFilters","setPendingFiltersGroupPath","setPendingFiltersClassesPath","classes_path","setPendingFiltersClassroomId","classroom_id","setPendingFiltersParentGroupId","parentGroupId","parent_group_id","removeSortLastValues","indexNotSelected","selectAll","newSubState","selectPage","deselect","persistentSelectionIndex","deselectAll","persistentSelection","isSelected","$search","$selectedGroups","$filters","newPath","$filterClassesPath","$filtered","$selectedResults","bulkActions","getQuantity","BulkActionsButton","navThroughBreadcrumbs","currentRole","allocationDrilldown","groupName","activeRow","unassigned","childGroupLicenseCount","LICENSE_INVENTORY_ALLOCATION","tierLabels","onSelect","onSort","datatableCss","LICENSE_INVENTORY","noSearchResults","renderNoResults","addToAllocationDrilldown","row","sliceAllocationDrilldown","DEFAULT_QUERY_OBJ","InventoryAllocation","currentRoute","matchedRoute","decode","group_status","lower_tier_total","lower_tier_quantity","LICENSE_TRANSFER","showModal","assigned_count","lower_tier_assigned_count","redeemed_count","lower_tier_redeemed_count","itemKey","params","searchLicenseAllocations","group_parent_id","rowInfo","group_type","groupLicenseGetGroupAndChildLicenseCounts","licenseCounts","has_more","sortParams","groupPath","groupIds","licenseInfo","scrollTo","LicenseDetails","licenseGetDetails","gId","loadData","scrollIntoView","behavior","backgroundMobile","background","loginLogo","AuthPanel","numberAbbr","translationMap","cached","configValue","random","full","getFormatter","notation","minimumFractionDigits","maximumFractionDigits","maximumSignificantDigits","formatToParts","postfix","abbr","generic","person","12","endOfMonth","requiredArgs","toDate","subYears","toInteger","addMonths","addYears","getUnixTime","MILLISECONDS_IN_DAY","compareAsc","dirtyDateLeft","dirtyDateRight","dateLeft","dateRight","differenceInDays","difference","startOfDayLeft","startOfDayRight","timestampLeft","getTimezoneOffsetInMilliseconds","timestampRight","differenceInCalendarDays","chartType","layout","padding","drawBorder","bar","barPercentage","tooltip","enabled","onComplete","chartInstance","getDatasetMeta","chartLabelAppend","percentageMap","percentageLabelMap","totalPercent","maxPercentage","maxPercentageKey","percent","percentLabel","ranges","rangeKeys","sec","colorKey","rangeLabel","secondsToAverage","ceil","comparate","doughnutValues","borderWidths","borderAligns","_args","language","average","extraLabel","removedInWeek","has_removed_students","has_unlicensed_students","abbreviatedAverage","PROGRESSING","filterVal","masteryActivityBlocks","dashboardAriaLabels","progressing","inactive","INACTIVE","TOTAL_STUDENTS","averageSeconds","footerNotices","getRoundedMinutes","abbreviation","usage","ACTIVITY_TIME_PER_STUDENT","percentage","statsToRetrieve","timeParams","$activeGroupId","statsGetUsage","statsGetActivity","donutValues","usageBlocks","MINUTES_45","MINUTES_31","MINUTES_16","MINUTES_1","USAGE_CHART_DATA","usageColorMapArray","getBorderWidths","borderAlign","getBorderAligns","squareAriaLabels","setTime","getTimezoneOffset","timestampToDate","newTimestamp","YYYYMMDD","newFormat","newDate","labelDate","monthLabelSize","labelStartDate","labelEndDate","dateTimeFormatter","timePeriod","increment","startDate","endDate","timeAggregate","startOfWeek","WEEK","addWeeks","MONTH","ALLTIME","endOfDay","startTimestamp","convertDateToUTC","endTimestamp","getDateByIncrement","targetUsage","legendLabels","low","med","high","percentage_low","percentage_med","percentage_high","targetBlocks","HIGH","MED","LOW","$filteredStudents","$hasUnlicensedOrRemovedStudents","invalidProductStatuses","productStatuses","EXPIRED","UNASSIGNED","link_status","statusConst","product_status","$ret","stats","generatePercentageLabel","minutes45","minutes31","minutes16","minutes1","total_active_students","hasUnlicensedOrRemovedStudents","removed_in_week","colors","supplemental_stats","percentage_in_progress","percentage_struggling","percentage_inactive","total_students","_percentages","_values","percentages","getRoundedPercentage","stat","totalTimeThisWeek","weeklyTimeTargetSeconds","studentName","recommendedSkills","$actionItems","hasStruggling","skill","getActionItemWeeklyStruggling","clickable","$timeSpentActionItems","timeSpentActionItem","actionItems","getActionItemWeeklyTargetNotStarted","getActionItemWeeklyTargetMet","getActionItemWeeklyTargetProgressing","conceptsMastered","studentsCount","nodeInfo","statusCounts","shouldAddNodeToList","formattedTotal","nodeId","objective","game_description","total_formatted","progressFilterState","addToList","recommendedActivity","reformattedLesson","studentId","standardLabels","standardCategories","standardInfo","standard_set_label","parent_taxonomy","timeSpent","roundTimeSpent","time","MINUTES","studentActivity","activityStatuses","mmaActivityMapArray","INACTIVE_TARGET","STUDENTS","aggs","skillsSearch","buildSearchSkillsFilters","buildSkillsSearch","searchFilter","numerator","denominator","convertLessThanOne","getPercentage","timeSpentSeconds","isLandscape","printdiv","printcontent","cz","adaButton","zendesk","main","before","append","print","childNodes","midBlue","targetMed","targetMedOrange","targetHigh","forceUpdate","weeklyMinuteTargetGoals","ABCMOUSE_ENGLISH","DateHelper","weeksToMove","dateDiff","differenceInWeeks","newStartDate","newEndDate","ChartJSHelpers","stacked","tickLength","datalabels","anchor","dataIndex","hasData","displayZero","aofl_accessibility","standardsColors","externalStandard","standard_codes","standardCode","ExternalStandards","getSection","sectionTitles","why_important","getGradeSection","GRADE","list","gradeList","forModal","video","videoWrapper","toggleVideo","recommended_activities","viewRecommendedActivities","printable_worksheets","worksheet","subtitle","viewWorksheet","videosHandlerInstance","videosMap","videoId","AcademyLessonDetails","videosHandler","video_thumbnail","posterDataUrl","toDataURL","addVideoToMap","pauseAllVideosExcept","setVideoImageActive","paused","play","worksheetDetails","view","lessonDetailSections","PDF","isActive","RECOMMENDED_ACTIVITY","recommendedActivities","removeVideoFromMap","drawerState","TabContent","TABS","tabId","tabChanged","TabHeader","reflect","Chart","register","ArcElement","LineElement","BarElement","PointElement","BarController","DoughnutController","LineController","CategoryScale","LinearScale","Filler","Legend","Title","Tooltip","ChartElement","repaintChart","resize","visibleItems","moreHtml","moreText","numMoreItems","wrapUnsafeHtml","renderedItems","licenseTransferPermissions","licenseInfoStyles","fixed_duration_label","TransferableLicense","activationStartTypeLabels","LicenseInfo","licenseDuration","years","durationSplit","term","proceed","back","UnsavedChangesConfirmation","dispatch","currentActivation","nameClass","linked","wrapperClass","radioClass","child_profile_id","profile_id","renderChild","onSubmit","onSkip","SelectChildModal","Event","AoflSelectList","focusIndex","updateSelected","keydownCallback","focusoutCallback","mouseoverCallback","AoflMultiselectList","AoflListOption","listElement","nextIndex","addOption","_i","_loop_1","args_1","desiredMonth","dateWithDesiredMonth","monthIndex","lastDayOfMonth","currentProductLabel","productOptions","selectOption","showLicenses","currentLicenseLabel","licenseOptions","currentLicenseStatusLabel","licenseStatuses","licenseStatus","LicenseFilters","selectLicense","productsForThisGroup","licenseResults","licenseStatusIndex","ASSIGNED_INVITED_REDEEMED","productIndex","buildLicenseDropdownOptions","setLicenseStatusToAssignedInvitedRedeemed","licenseIndex","hide_expired","show_licenses_from_root","showLicensesFromRoot","licenseSearch","productOption","selectProduct","productLabels","filterUpdated","BaseSearchLicenseFilters","aoflProduct","USER_SEARCH","$filterProduct","$filterLicense","$filterLicenseStatus","changeSortHandler","rowClickHandler","rowToggleHandler","allToggleHandler","pageToggleHandler","persistentSelectionToggleHandler","SearchDataTable","isBold","textColor","UserInitialsButton","renderLicenseRow","selectedLicenseInfo","estimating","estimates","total_license_cost","renderEstimate","renderSection","renderLicenseSection","licensesByProduct","renderNoLicensesMessage","renderLicenseSelection","orgHasProducts","READINGIQ","disableAssign","showErrorMsg","confirmation","uploading","renderLicenseAssignFooter","getConfirmMessage","objectType","objectIds","conflictCount","studentLicenseResults","compatible","screen","assignLicenses","renderConfirmation","LicenseAssign","entry","prevSelectedLicenses","changeChange","needsConfirmation","licenseCheckCompatibility","student_id","license_ids","has_incompatibility","estimate","active_license_count","licenseAssignState","studentIds","roster_job_id","errorCodes","hasErrors","newStudent","licenseGetInvoice","getApiArgs","available_license_inventory","linked_student_count","checkEnableAssign","licensesFromApi","renderRegularDropDownFilter","rndId","toggleDropdown","selectedGroupsInfo","adminGroup","getButtonLabel","getSearchBar","groupsAtLevel","renderButton","searchLabels","showingFirstOfAmount","NO_MATCHING_RESULTS","dropdownIndex","triggerSearch","selectedGroupId","itemTemplates","resetFilter","GROUP_FILTERS","sessionNextState","$levelBelowAdminOrg","GroupFilters","_resetSearchQuery","uuid","getGroupInfo","lastGroupId","groupGet","lastGroupInfo","searchGroups","doReset","previouslySelectedGroupId","groupType","groupTypes","CLASSROOM","MANAGEMENT","groupSearch","getSiblings","DROPDOWN","focusSearch","block","statsPath","checkedGroupCheckboxes","setFiltersGroupPath","setPendingFiltersLicenseStatus","license_status","setPendingFiltersProduct","setPendingFiltersLicense","setPendingFiltersGrade","setPendingFiltersProductConflict","productConflict","product_conflict","setPendingFiltersInvitationStatus","setPendingFiltersRosterId","setClassAssignment","assignment","class_assigned","setRoleAssignment","role_assigned","$transferableLicensesSelected","has_transferable_license","sessionPath","$filterGrade","$filterInvitationStatus","$selectedRosterFile","$rosterFiles","find","renderImages","prevItem","renderButtons","nextItem","src","dotOrange","dotGrey","selectIndex","CarouselElement","logo","ParentLayout","numPages","pageChange","SearchPagination","sortedField","paging","lastValue","sortValue","lastPage","gradesList","NOT_SET","PREKINDERGARTEN","KINDERGARTEN","GRADE_1","GRADE_2","GRADE_3","GRADE_4","GRADE_5","OTHER","o","__esModule","setPrototypeOf","__proto__","K4DB","NToG","Qatm","iterator","QfWi","propName","cachedPromise","validateCompletePromise","pending","validatorFn","getKeys","validateCompleteResolved","SDJZ","T1e2","ReferenceError","WI9V","iNmH","kluZ","HideForLevel","disableLevels","currentLevel","disableClasses","topLevel","LicenseInfoRow","GROUP_FILTERS_MENU","GroupFiltersMenu","URL","productInUrl","decodeURIComponent","page","animator","_request","_charts","_running","_lastDate","anims","callbacks","numSteps","initial","currentStep","_update","_refresh","remaining","running","draw","_active","_total","tick","_notify","charts","complete","progress","cb","_getAnims","_duration","interpolators","boolean","factor","c0","mix","Animation","cfg","currentValue","_fn","_easing","easing","_start","_target","_prop","_from","_to","_promises","elapsed","remain","rej","resolved","animationOptions","numbers","animations","visible","Animations","_chart","_properties","configure","animatedProps","getOwnPropertyNames","newOptions","$shared","$animations","resolveTargetOptions","_createAnimations","anim","awaitAll","_animateOptions","scaleClip","allowedOverflow","getSortedDatasetIndices","filterVisible","metasets","_getSortedDatasetMetas","applyStack","stack","dsIndex","singleMode","otherValue","isStacked","meta","getOrCreateStack","stacks","stackKey","indexValue","subStack","getLastIndexInStack","vScale","positive","getMatchingVisibleMetas","updateStacks","controller","_cachedMeta","_stacks","iScale","iAxis","axis","vAxis","indexScale","valueScale","getStackKey","_top","_bottom","getFirstScaleId","clearStacks","_parsed","isDirectUpdateMode","cloneIfNotShared","shared","DatasetController","_ctx","_cachedDataOpts","getMeta","_parsing","_data","_objectData","_sharedOptions","_drawStart","_drawCount","enableOptionSharing","$context","_syncList","initialize","linkScales","_stacked","addElements","getDataset","chooseId","xid","xAxisID","yid","yAxisID","rid","rAxisID","iid","iAxisID","vid","vAxisID","xScale","getScaleForId","yScale","rScale","scaleID","adata","convertObjectDataToArray","isExtensible","_dataCheck","datasetElementType","resetNewElements","stackChanged","oldStacked","_resyncElements","scopeKeys","datasetScopeKeys","getOptionScopes","createResolver","sorted","_sorted","parseArrayData","parseObjectData","parsePrimitiveData","isNotInOrderComparedToPrev","getLabels","singleScale","xAxisKey","yAxisKey","parsedValue","NaN","canStack","otherScale","_getOtherScale","NEGATIVE_INFINITY","otherMin","otherMax","minDefined","maxDefined","getUserBounds","_skip","updateRangeFromParsed","getParsed","getLabelForValue","_clip","toClip","defaultClip","getMaxOverflow","chartArea","resolveDatasetElementOptions","resolveDataElementOptions","raw","createDataContext","createDatasetContext","_resolveElementOptions","dataElementType","elementType","sharing","datasetElementScopeKeys","resolveNamedOptions","freeze","transition","datasetAnimationScopeKeys","sharedOptions","_animationsDisabled","_resolveAnimations","getSharedOptions","_setStyle","arg1","arg2","numMeta","numData","_insertElements","_removeElements","move","updateElements","removed","computeMinSampleSize","_cache","$bar","metas","getAllParsedValues","getAllScaleValues","curr","_length","updateMinAndPrev","getPixelForValue","getPixelForTick","parseValue","startValue","endValue","barStart","barEnd","_custom","parseFloatBar","parseArrayOrPrimitive","isFloatBar","custom","iAxisKey","vAxisKey","super","bars","getBasePixel","horizontal","isHorizontal","ruler","_getRuler","firstOpts","includeOptions","updateSharedOptions","vpixels","_calculateBarValuePixels","ipixels","_calculateBarIndexPixels","enableBorderRadius","center","updateElement","grouped","_getStacks","pixels","barThickness","_startPixel","_endPixel","stackCount","_getStackCount","categoryPercentage","baseValue","minBarLength","floating","getDataVisibility","actualBase","halfGrid","getLineWidthForValue","skipNull","maxBarThickness","Infinity","chunk","computeFlexCategoryTraits","thickness","computeFitCategoryTraits","stackIndex","_getStackIndex","rects","_index_","_value_","BubbleController","getPixelForDecimal","innerRadius","outerRadius","circumference","isDatasetVisible","_getRotation","_getCircumference","arcs","spacing","getMaxBorderWidth","getMaxOffset","maxSize","cutout","chartWeight","_getRingWeight","_getRotationExtents","ratioX","ratioY","startAngle","endAngle","startX","startY","endX","endY","calcMax","calcMin","maxX","maxY","minX","minY","getRatioAndOffset","maxRadius","radiusLength","_getVisibleDatasetWeightTotal","calculateTotal","_getRingWeightOffset","animateRotate","calculateCircumference","animationOpts","centerX","centerY","animateScale","_circumference","metaData","hoverBorderWidth","hoverOffset","ringWeightOffset","hidden","legendItem","toggleDataVisibility","tooltipItem","dataLabel","formattedValue","_dataset","animationsDisabled","pointCount","getStartAndCountOfVisiblePoints","_scaleRanges","newRanges","xmin","xmax","ymin","ymax","changed","scaleRangesChanged","_decimated","animated","maxGapLength","directUpdate","prevParsed","nullData","border","lastPoint","updateControlPoints","PolarAreaController","_updateRadius","minSize","cutoutPercentage","getVisibleDatasetCount","xCenter","yCenter","datasetStartAngle","getIndexAngle","defaultAngle","countVisibleElements","_computeAngle","getDistanceFromCenterForValue","angleLines","circular","pointLabels","PieController","RadarController","pointPosition","getPointPositionForValue","ScatterController","abstract","DateAdapter","unit","weekday","members","adapters","_date","binarySearch","metaset","lookupMethod","_reversePixels","getRange","optimizedEvaluateItems","getSortedVisibleDatasetMetas","getIntersectItems","useFinalPosition","_minPadding","inRange","getNearestItems","distanceMetric","useX","useY","deltaX","deltaY","getDistanceMetricForAxis","minDistance","getCenterPoint","getAxisItems","rangeMethod","intersectsItem","evaluateAllVisibleItems","Interaction","modes","nearest","STATIC_POSITIONS","filterByPosition","filterDynamicPositionByAxis","sortByWeight","getCombinedMax","maxPadding","updateMaxPadding","boxPadding","updateDims","getPadding","newWidth","outerWidth","newHeight","outerHeight","widthChanged","heightChanged","same","getMargins","marginForPositions","fitBoxes","boxes","refitBoxes","refit","fullSize","placeBoxes","userPadding","layouts","_layers","z","layoutItem","minPadding","availableWidth","availableHeight","layoutBoxes","wrapBoxes","centerHorizontal","centerVertical","leftAndTop","rightAndBottom","vertical","buildLayoutBoxes","verticalBoxes","horizontalBoxes","beforeLayout","visibleVerticalBoxCount","vBoxMaxWidth","hBoxMaxHeight","setLayoutDims","updatePos","change","handleMaxPadding","BasePlatform","BasicPlatform","EXPANDO_KEY","EVENT_TYPES","touchstart","touchmove","touchend","pointerenter","pointerdown","pointermove","pointerup","pointerleave","pointerout","isNullOrEmpty","eventListenerOptions","createAttachObserver","addedNodes","added","childList","subtree","createDetachObserver","removedNodes","drpListeningCharts","oldDevicePixelRatio","onWindowResize","dpr","createResizeObserver","ResizeObserver","contentRect","listenDevicePixelRatioChanges","releaseObserver","unlistenDevicePixelRatioChanges","createProxyAndListen","fromNativeEvent","DomPlatform","renderHeight","renderWidth","displayWidth","displayHeight","initCanvas","proxies","$proxies","attach","detach","Element","getProps","final","defaultRoutes","formatters","tickValue","maxTick","calculateDelta","logDelta","numDecimal","numeric","Ticks","autoSkip","tickOpts","ticksLimit","maxTicksLimit","_tickSize","maxScale","maxChart","_maxLength","determineMaxTicks","majorIndices","major","getMajorIndices","numMajorIndices","first","newTicks","skipMajors","evenMajorSpacing","getEvenSpacing","factors","calculateSpacing","avgMajorSpacing","majorStart","majorEnd","drawOnChartArea","drawTicks","tickWidth","tickColor","minRotation","maxRotation","mirror","textStrokeWidth","textStrokeColor","autoSkipPadding","labelOffset","minor","crossAlign","showLabelBackdrop","backdropColor","backdropPadding","route","reverseAlign","offsetFromEdge","edge","sample","numItems","getPixelForGridLine","validIndex","lineValue","getTickMarkLength","getTitleHeight","titleAlign","Scale","_margins","paddingTop","paddingBottom","paddingLeft","paddingRight","labelRotation","_range","_gridLineItems","_labelItems","_labelSizes","_longestTextCache","_userMax","_userMin","_suggestedMax","_suggestedMin","_ticksLength","_borderValue","_dataLimitsCached","suggestedMin","suggestedMax","getMinMax","xLabels","yLabels","beforeUpdate","sampleSize","beforeSetDimensions","setDimensions","afterSetDimensions","beforeDataLimits","determineDataLimits","afterDataLimits","beforeBuildTicks","buildTicks","afterBuildTicks","samplingEnabled","_convertTicksToLabels","beforeCalculateLabelRotation","calculateLabelRotation","afterCalculateLabelRotation","beforeFit","fit","afterFit","afterUpdate","startPixel","endPixel","reversePixels","_alignToPixels","alignToPixels","notifyPlugins","_callHooks","beforeTickToLabelConversion","afterTickToLabelConversion","numTicks","maxLabelDiagonal","_isVisible","labelSizes","_getLabelSizes","maxLabelWidth","widest","maxLabelHeight","highest","asin","titleOpts","gridOpts","titleHeight","tickPadding","angleRadians","labelHeight","labelWidth","_calculatePadding","_handleMargins","isRotated","labelsBelowTicks","offsetLeft","offsetRight","generateTickLabels","_computeLabelSizes","caches","widths","heights","tickFont","fontString","nestedLabel","widestLabelSize","highestLabelSize","_resolveTickFontOptions","valueAt","decimal","getBaseValue","createTickContext","optionTicks","rot","ticksLength","tl","borderOpts","axisWidth","axisHalfWidth","alignBorderValue","borderValue","alignedLineValue","tx1","ty1","tx2","ty2","x1","y1","x2","y2","positionAxisID","optsAtIndex","lineColor","tickBorderDash","tickBorderDashOffset","tickAndPadding","hTickAndPadding","lineCount","textOffset","_getXAxisLabelAlignment","_getYAxisLabelAlignment","halfCount","backdrop","labelPadding","fillRect","_computeGridLineItems","drawLine","setLineDash","lineDashOffset","lastLineWidth","_computeLabelArea","_computeLabelItems","titleX","titleY","titleArgs","drawBackground","drawGrid","drawTitle","drawLabels","tz","gz","axisID","fontSize","TypedRegistry","isPrototypeOf","parentScope","isIChartComponent","itemDefaults","routes","propertyParts","sourceName","sourceScope","routeDefaults","registerDefaults","registry","controllers","_typedRegistries","_each","_get","typedRegistry","arg","reg","_getRegistryForType","isForType","_exec","itemReg","component","camelMethod","PluginService","_init","_createDescriptors","descriptor","plugin","cancelable","_oldCache","_notifyStateChanges","getPlugin","allPlugins","getOpts","pluginOpts","createDescriptors","previousDescriptors","pluginScopeKeys","getIndexAxis","datasetDefaults","determineAxis","scaleOptions","initOptions","chartDefaults","configScales","chartIndexAxis","firstIDs","scaleConf","defaultId","getDefaultScaleIDFromAxis","defaultScaleOptions","defaultID","getAxisFromDefaultScaleID","mergeScaleConfig","initData","keyCache","keysCached","cachedKeys","generate","addIfFound","Config","_config","initConfig","_scopeCache","_resolverCache","clearCache","datasetType","additionalOptionScopes","mainScope","resetCache","keyLists","_cachedScopes","subPrefixes","getResolver","needContext","subResolver","resolverCache","KNOWN_POSITIONS","positionIsHorizontal","compare2Level","l1","l2","onAnimationsComplete","onAnimationProgress","onProgress","isDomSupported","getCanvas","getChart","initialCanvas","existingChart","chartOptionScopes","_initializePlatform","acquireContext","_options","_aspectRatio","_metasets","_lastEvent","_listeners","_responsiveListeners","_sortedMetasets","_plugins","_hiddenIndices","attached","_doResize","resizeDelay","listen","_initialize","OffscreenCanvas","_resizeBeforeDraw","_resize","newSize","newRatio","scalesOptions","axisOptions","scaleOpts","updated","isRadial","dposition","dtype","scaleType","getScale","hasUpdated","addBox","_destroyDatasetMeta","newControllers","_removeUnreferencedMetasets","updateIndex","ControllerClass","getController","getElement","_updateMetasets","_resetElements","removeBox","animsDisabled","ensureScalesHaveIDs","buildOrUpdateScales","existingEvents","newEvents","unbindEvents","invalidate","buildOrUpdateControllers","buildOrUpdateElements","_updateLayout","_updateDatasets","_eventHandler","noArea","_idx","_updateDataset","layers","_drawDatasets","_drawDataset","useClip","setDatasetVisibility","_updateDatasetVisibility","_destroy","releaseContext","bindUserEvents","bindResponsiveEvents","_add","_remove","detached","isAttached","activeElements","lastActive","_updateHoverStyles","notify","replay","hoverOptions","deactivated","activated","updateHoverStyle","eventFilter","_handleEvent","lastEvent","getElementsAtEventForMode","invalidatePlugins","clipArc","pixelMargin","angleMargin","parseBorderRadius$1","angleDelta","borderRadius","halfThickness","innerLimit","computeOuterLimit","outerArcLimit","outerStart","outerEnd","innerStart","innerEnd","rThetaToXY","theta","pathArc","innerR","spacingOffset","alpha","avNogSpacingRadius","angleOffset","outerStartAdjustedRadius","outerEndAdjustedRadius","outerStartAdjustedAngle","outerEndAdjustedAngle","innerStartAdjustedRadius","innerEndAdjustedRadius","innerStartAdjustedAngle","innerEndAdjustedAngle","pCenter","p4","p8","inner","lineJoin","fullCircles","drawFullCircleBorders","unregister","chartX","chartY","rAdjust","halfAngle","halfRadius","radiusOffset","drawArc","setStyle","lineCap","pathVars","paramsStart","paramsEnd","segmentStart","segmentEnd","outside","pathSegment","lineMethod","stepped","getLineMethod","fastPathSegment","prevX","lastY","avgX","countX","pointIndex","drawX","truncX","_getSegmentMethod","usePath2D","Path2D","_path","strokePathWithCache","segmentMethod","strokePathDirect","_points","_segments","_pointsUpdated","_interpolate","_getInterpolationMethod","interpolated","inRange$1","hitRadius","mouseX","mouseY","hoverRadius","getBarBounds","half","parseBorderSkipped","borderSkipped","parseEdge","orig","v2","startEnd","skipOrLimit","boundingRects","maxW","maxH","parseBorderWidth","maxR","enableBorder","parseBorderRadius","outer","skipX","skipY","addNormalRectPath","addRectPath","decodeFill","fillOption","parseFillOption","simpleArc","computeBoundary","computeCircularBoundary","computeLinearBoundary","findSegmentEnd","buildStackLine","sourcePoints","linesBelow","below","isLineAndNotInHideAnimation","unshift","getLinesBelow","createBoundaryLine","addPointsBelow","sourcePoint","postponed","findPoint","interpolate","pointValue","linePoints","firstValue","boundary","pointsFromSegments","resolveTarget","propagate","visited","clipY","getBounds","_getEdge","clipBounds","interpolatedLineTo","interpolatedPoint","_fill","tpoints","targetSegments","tgt","subBounds","fillSources","fillSource","lineLoop","targetLoop","drawfill","getLineByIndex","lineOpts","above","doFill","plugin_filler","$filler","drawTime","getBoxSize","labelOpts","boxHeight","boxWidth","itemHeight","itemsEqual","_added","legendHitBoxes","_hoveredItem","doughnutMode","legendItems","columnSizes","lineWidths","buildLabels","generateLabels","labelFont","_computeTitleHeight","_fitRows","_fitCols","hitboxes","totalHeight","heightLimit","totalWidth","currentColWidth","currentColHeight","col","hitbox","boxMap","newBoxes","_draw","defaultColor","rtlHelper","fontColor","halfFontSize","cursor","textDirection","setWidth","lineDash","drawOptions","SQRT2","yBoxTop","xBoxLeft","drawLegendBox","titleFont","titlePadding","topPaddingPlusHalfFontSize","hitBox","lh","onLeave","isListened","hoveredItem","_getLegendItemAt","sameItem","plugin_legend","_element","adjustHitBoxes","handleEvent","ci","_padding","textSize","fontOpts","_drawArgs","plugin_title","titleBlock","createTitle","WeakMap","positioners","hasValue","tooltipPosition","eventPosition","nearestElement","tp","pushOrConcat","toPush","splitNewlines","createTooltipItem","getLabelAndValue","getTooltipSize","bodyFont","footerFont","titleLineCount","footerLineCount","bodyLineItemCount","combinedBodyLength","bodyItem","after","beforeBody","afterBody","titleSpacing","titleMarginBottom","displayColors","bodySpacing","footerMarginTop","footerSpacing","widthPadding","maxLineWidth","determineXAlign","yAlign","chartWidth","xAlign","caret","caretSize","caretPadding","doesNotFitWithAlign","determineAlignment","determineYAlign","getBackgroundPoint","alignment","paddingAndSize","radiusAndPadding","alignX","alignY","getAlignedX","getBeforeAfterBodyLines","overrideCallbacks","opacity","_eventPosition","_size","_cachedAnimations","_tooltipItems","dataPoints","caretX","caretY","labelColors","labelPointStyles","labelTextColors","tooltipItems","beforeTitle","afterTitle","bodyItems","scoped","beforeLabel","afterLabel","beforeFooter","afterFooter","itemSort","labelColor","labelPointStyle","labelTextColor","_createItems","getTitle","getBeforeBody","getBody","getAfterBody","getFooter","positionAndSize","backgroundPoint","external","tooltipPoint","caretPosition","getCaretPosition","x3","y3","ptX","ptY","titleColor","colorX","rtlColorX","yOffSet","colorY","multiKeyBackground","outerX","innerX","strokeRect","bodyAlign","bodyLineHeight","xLinePadding","fillLineOfText","bodyAlignForCalculation","bodyColor","_drawColorBox","footerAlign","footerColor","tooltipSize","drawCaret","quadraticCurveTo","animX","animY","_updateAnimationTarget","hasTooltipContent","globalAlpha","drawBody","drawFooter","positionChanged","_positionChanged","plugin_tooltip","labelCount","addIfString","_startValue","_valueRange","lastIndexOf","findOrAddLabel","getDecimalForPixel","relativeLabelSize","minSpacing","LinearScaleBase","_endValue","setMin","setMax","minSign","maxSign","maxTicks","stepSize","computeTickLimit","getTickLimit","generationOptions","dataRange","precision","maxDigits","includeBounds","maxSpaces","rmin","rmax","countDefined","niceMin","niceMax","numSpaces","decimalPlaces","generateTicks$1","_maxDigits","handleTickRangeOptions","isMajor","tickVal","LogarithmicScale","_zero","exp","endExp","endSignificand","significand","lastTick","generateTicks","getTickBackdropHeight","determineLimits","fitWithPointLabels","furthestLimits","furthestAngles","valueCount","getPointPosition","drawingArea","plFont","_pointLabels","hLimits","vLimits","_setReductions","_pointLabelItems","tickBackdropHeight","outerDistance","extra","pointLabelPosition","yForAngle","getTextAlignForAngle","leftForTextAlign","buildPointLabelItems","pathRadiusLine","param","logarithmic","RadialLinearScale","setCenterPoint","largestPossibleRadius","radiusReductionLeft","radiusReductionRight","radiusReductionTop","radiusReductionBottom","leftMovement","rightMovement","topMovement","bottomMovement","maxRight","maxLeft","maxTop","maxBottom","angleMultiplier","scalingFactor","scaledDistance","distanceFromCenter","drawPointLabels","gridLineOpts","drawRadiusLine","INTERVALS","millisecond","common","steps","second","week","quarter","UNITS","sorter","adapter","_adapter","parser","isoWeekday","_parseOpts","startOf","determineUnitForAutoTicks","minUnit","capacity","MAX_SAFE_INTEGER","addTick","timestamps","ticksFromTimestamps","majorUnit","setMajorTicks","TimeScale","_unit","_majorUnit","_offsets","_normalized","displayFormats","normalized","_applyBounds","_getLabelBounds","endOf","getLabelTimestamps","timeOpts","_generate","_getLabelCapacity","determineUnitForFormatting","determineMajorUnit","initOffsets","getDecimalForValue","hasWeekday","getDataTimestamps","tooltipFormat","datetime","minorFormat","majorFormat","_tickFormatFunction","offsets","ticksOpts","tickLabelWidth","cosRotation","sinRotation","tickFontSize","exampleTime","exampleLabel","_getLabelSize","prevSource","nextSource","prevTarget","nextTarget","span","TimeSeriesScale","_table","_minPos","_tableRange","_getTimestampsForTable","buildLookupTable","ArchiveConfirmation","MM_TEACHER_DASHBOARD","activeNodeId","setNodeInfo","setTeacherDashData","activityStatus","activity_statuses","student_activity","student_info","activeInWeek","active_in_week","$studentInfo","capsLastNameFirstLetter","EMAIL_REGEX","CHECKABLE_DOMAINS","gmail","hotmail","live","msn","yahoo","ymail","hasUppercaseLetter","hasAtLeastOneNumber","hasSpecialCharacter","doesMatchEmail","emailUser","doesMatchString","caseInsensitiveInput","caseInsensitiveName","hasNoBlankSpace","validEmail","emailParts","LegendElement","SearchExportButton","getDownloadRequestURL","search_type","search_params","filter_ids","searchFilters","biId","filterChangedHandler","inputHandler","searchString","SearchForm","newQueryObj","BaseSearchOrgFilters","UserSearchOrgFilters","phone_code","phoneLocal","showList","flags","toggleList","countries","country","iso","selectCode","updatePhoneLocal","hideList","PhoneInput","groupCountry","localeIso","geoipCountry","foundIso","initialValue","parseInitial","formatLocal","setValue","hasScrolled","findCountry","all_codes","selectionStart","justNumbers","func","immediate","later","debounced","callNow","flush","addLeadingZeros","targetLength","output","signedYear","getUTCFullYear","getUTCMonth","getUTCDate","dayPeriodEnumValue","getUTCHours","getUTCMinutes","getUTCSeconds","numberOfDigits","milliseconds","getUTCMilliseconds","dayPeriodEnum","formatTimezoneShort","dirtyDelimiter","absOffset","delimiter","formatTimezoneWithOptionalMinutes","formatTimezone","era","ordinalNumber","lightFormatters","signedWeekYear","getUTCWeekYear","weekYear","getUTCISOWeekYear","q","getUTCWeek","isoWeek","getUTCISOWeek","dayOfYear","setUTCMonth","setUTCHours","getUTCDayOfYear","dayOfWeek","getUTCDay","localDayOfWeek","isoDayOfWeek","dayPeriod","_localize","timezoneOffset","_originalDate","originalDate","formattingTokensRegExp","longFormattingTokensRegExp","escapedStringRegExp","doubleQuoteRegExp","unescapedLatinCharacterRegExp","dirtyFormatStr","formatStr","localeFirstWeekContainsDate","firstWeekContainsDate","defaultFirstWeekContainsDate","formatLong","isValid","utcDate","subMilliseconds","formatterOptions","firstCharacter","longFormatter","longFormatters","useAdditionalWeekYearTokens","useAdditionalDayOfYearTokens","ValidationFunction","propChain","promise","_propName","checkPendingPromises","currentClassAssignmentSelectionLabel","selections","UserSearchClassAssignmentFilters","labelIndex","withDividers","classSectionHeader","schoolId","breadCrumbs","split_path","isTeacher","emsDropdownStyles","getSiblingClasses","addClasses","returnHtml","classSearchResponse","groupsToHide","addClass","classSearchLimit","getClassDropdownContent","schoolCard","removeClasses","removeClass","pathArray","breadCrumb","itemsByKey","schoolCount","onGroupSelect","selectedGroupIds","ClassSelection","currentUserType","classesBySchoolItems","rolePath","groupPathInfo","lastInfo","pathArr","CLASS_EDIT","renderLi","renderRange","gotoSubmit","PaginationElement","eventOptions","currentTarget","setCurrentPage","selectedPage","TEACHER_DASHBOARD","gotlastSuccessfulRoster","rows","filteredRosters","renderRow","original_filename","$startTime","renderSuccess","renderRosterActions","CLASSES_SEARCH","TEACHER_SEARCH","renderDownloadLink","renderErrorsLink","isLastSuccessfulRoster","data_type","downloadLink","disableDownloadLink","openErrorsModal","RosterUploadHistoryList","rosters","ROSTER_ERRORS_MODAL","WizardSteps"],"mappings":"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","file":"common-355e63acfdd5f33b4e6a.js","sourcesContent":["import {until} from 'lit-html/directives/until';\nimport '../dropdown';\n\nexport default (ctx, html) => html`\n
\n \n \n
!ctx.single && e.stopPropagation()}\">\n
\n \n ', 'Search...'))}\" @click=\"${(e) => e.stopPropagation()}\">\n ${until(ctx.__('', 'Search by name'))}\n
\n
\n
\n ${ctx.results.length? html`\n ${ctx.results.map((item) => html`\n \n `)}\n `: html`\n

${until(ctx.__('', 'No results found...'))}

\n `}\n
\n
\n
\n
\n`;\n","import styles from './template.css';\nimport template from './template';\nimport {AoflElement, customElement, property} from '@aofl/element';\nimport {i18nMixin} from '@aofl/i18n-mixin';\nimport translations from '../i18n';\nimport debounce from 'debounce';\nimport {ApiService} from '../api-service';\nimport {filterStatuses} from '../constants-enumerate';\n\nconst DEFAULT_SEARCH = {\n field: 'name',\n query: ''\n};\n\nconst DEFAULT_FILTER = {\n status: filterStatuses.ACTIVE,\n};\n\nconst DEFAULT_SORT = {\n fields: ['name', 'id'],\n direction: 'asc',\n limit: 15,\n is_forward: true\n};\n\n/**\n * @summary StudentTeacherFilterDropdown\n * @extends {i18nMixin(AoflElement)}\n */\n@customElement('student-teacher-filter-dropdown')\nclass StudentTeacherFilterDropdown extends i18nMixin(AoflElement) {\n /**\n * Creates an instance of StudentTeacherFilterDropdown.\n */\n constructor() {\n super();\n\n this.translations = translations;\n this.searchDebounce = debounce(this.search, 200);\n }\n\n /**\n * @readonly\n */\n static is = 'student-teacher-filter-dropdown';\n\n @property({type: Boolean})\n disabled = false;\n\n @property({type: Boolean})\n teacher = false;\n\n @property({type: Array})\n results = [];\n\n @property({type: Array})\n selected = [];\n\n @property({type: Boolean})\n single = false;\n\n /**\n *\n * @param {Event} e\n */\n searchInputHandler(e) {\n e.stopPropagation();\n this.searchDebounce(e.target.value);\n }\n\n async search(query = '') {\n const trimQuery = query.trim();\n let search = void 0;\n\n if (trimQuery.length) {\n search = Object.assign({}, DEFAULT_SEARCH, {query: trimQuery});\n }\n\n try {\n let data = null;\n if (this.teacher) {\n data = await ApiService.teacherSearch(search, DEFAULT_FILTER, DEFAULT_SORT);\n } else {\n data = await ApiService.studentSearch(search, DEFAULT_FILTER, DEFAULT_SORT);\n }\n this.results = data.results;\n } catch (e) {\n\n }\n }\n\n selectHandler(e, item) {\n if (this.selected.indexOf(item.id) === -1) {\n this.dispatchEvent(new CustomEvent('student-teacher-selected', {\n composed: true,\n bubbles: true,\n detail: item\n }));\n }\n }\n\n connectedCallback() {\n super.connectedCallback();\n\n this.search();\n }\n /**\n *\n * @return {Object}\n */\n render() {\n return super.render({\n default: {template, styles: [styles]}\n });\n }\n}\n\nexport default StudentTeacherFilterDropdown;\n","exports = module.exports = require(\"../../../node_modules/css-loader/dist/runtime/api.js\")(false);\n// Imports\nvar getUrl = require(\"../../../node_modules/css-loader/dist/runtime/getUrl.js\");\nvar ___CSS_LOADER_URL___0___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-light.woff2\"));\nvar ___CSS_LOADER_URL___1___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-lightit.woff2\"));\nvar ___CSS_LOADER_URL___2___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-reg.woff2\"));\nvar ___CSS_LOADER_URL___3___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-regit.woff2\"));\nvar ___CSS_LOADER_URL___4___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-sbold.woff2\"));\nvar ___CSS_LOADER_URL___5___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-sboldit.woff2\"));\nvar ___CSS_LOADER_URL___6___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-bold.woff2\"));\nvar ___CSS_LOADER_URL___7___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-boldit.woff2\"));\nvar ___CSS_LOADER_URL___8___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-Light.woff2\"));\nvar ___CSS_LOADER_URL___9___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-LightIt.woff2\"));\nvar ___CSS_LOADER_URL___10___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-Regular.woff2\"));\nvar ___CSS_LOADER_URL___11___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-RegularIt.woff2\"));\nvar ___CSS_LOADER_URL___12___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-Semibold.woff2\"));\nvar ___CSS_LOADER_URL___13___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-SemiboldIt.woff2\"));\nvar ___CSS_LOADER_URL___14___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-Bold.woff2\"));\nvar ___CSS_LOADER_URL___15___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-BoldIt.woff2\"));\nvar ___CSS_LOADER_URL___16___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-ExtraBold.woff2\"));\nvar ___CSS_LOADER_URL___17___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-ExtraBoldIt.woff2\"));\nvar ___CSS_LOADER_URL___18___ = getUrl(require(\"../../template/main/fonts/aofl-icons/icomoon.woff2?c6f21u\"));\n// Module\nexports.push([module.id, \"/*! @aofl-component */:root{--blue:#0d6efd;--indigo:#6610f2;--purple:#8b42ca;--pink:#e83e8c;--red:#e50b0a;--orange:#e17a05;--yellow:#ffc107;--green:#3c8104;--teal:#20c997;--cyan:#53c9dc;--white:#fff;--gray:#6b6b6b;--gray-dark:#343a40;--light-green:#b1dd53;--table-border-color:#d8d8d8;--gray-100:#f2f2f2;--gray-200:#d9d9d9;--gray-300:#d8d8d8;--gray-400:#ced4da;--gray-500:#adb5bd;--gray-600:#6c757d;--gray-700:#4a4a4a;--gray-800:#343a40;--gray-900:#212529;--gray-accessibility:#6b6b6b;--primary:#0d6efd;--secondary:#adb5bd;--success:#3c8104;--info:#cfe2ff;--warning:#e17a05;--danger:#d20a09;--light:#f8f9fa;--dark:#000;--breakpoint-xxs:0;--breakpoint-xs:375px;--breakpoint-sm:576px;--breakpoint-md:768px;--breakpoint-lg:992px;--breakpoint-xl:1200px;--font-family-sans-serif:aofl-sans,Arial,Helvetica,sans-serif;--font-family-monospace:SFMono-Regular,Menlo,Monaco,Consolas,\\\"Liberation Mono\\\",\\\"Courier New\\\",monospace;--z-index-dropdown:1000;--z-index-sticky:1020;--z-index-fixed:1030;--z-index-modal-backdrop:1040;--z-index-modal:1050;--z-index-popover:1060;--z-index-tooltip:1070;--header-height:6rem;--content-height:calc(100vh - 6rem);--sidepanel-width:20rem;--purple-color:#641da3;--purple-600:#956abc;--purple-400:#c7afdd;--purple-200:#e0d2ed;--struggling:#f6993b;--below-target:#ffcf00;--in_progress:#1280f5;--prior_knowledge:#edf887;--mastery_achieved:#69d112;--inactive:#d8d8d8}route-view{max-width:1200px}@font-face{font-family:aofl-sans;font-style:normal;font-weight:300;src:url(\" + ___CSS_LOADER_URL___0___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:italic;font-weight:300;src:url(\" + ___CSS_LOADER_URL___1___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:normal;font-weight:400;src:url(\" + ___CSS_LOADER_URL___2___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:italic;font-weight:400;src:url(\" + ___CSS_LOADER_URL___3___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:normal;font-weight:600;src:url(\" + ___CSS_LOADER_URL___4___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:italic;font-weight:600;src:url(\" + ___CSS_LOADER_URL___5___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:normal;font-weight:700;src:url(\" + ___CSS_LOADER_URL___6___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:italic;font-weight:700;src:url(\" + ___CSS_LOADER_URL___7___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:normal;font-weight:300;src:url(\" + ___CSS_LOADER_URL___8___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:italic;font-weight:300;src:url(\" + ___CSS_LOADER_URL___9___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:normal;font-weight:400;src:url(\" + ___CSS_LOADER_URL___10___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:italic;font-weight:400;src:url(\" + ___CSS_LOADER_URL___11___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:normal;font-weight:600;src:url(\" + ___CSS_LOADER_URL___12___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:italic;font-weight:600;src:url(\" + ___CSS_LOADER_URL___13___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:normal;font-weight:700;src:url(\" + ___CSS_LOADER_URL___14___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:italic;font-weight:700;src:url(\" + ___CSS_LOADER_URL___15___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:normal;font-weight:800;src:url(\" + ___CSS_LOADER_URL___16___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:italic;font-weight:800;src:url(\" + ___CSS_LOADER_URL___17___ + \") format(\\\"woff2\\\")}@font-face{font-family:icomoon;src:url(\" + ___CSS_LOADER_URL___18___ + \") format(\\\"woff2\\\");font-weight:400;font-style:normal;font-display:block}[class*=\\\" ai-\\\"],[class^=ai-]{font-family:icomoon!important;speak:never;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*,:after,:before{box-sizing:border-box}html{font-family:sans-serif;line-height:1.15;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:rgba(0,0,0,0)}figcaption,main,nav,section{display:block}[tabindex=\\\"-1\\\"]:focus{outline:0!important}strong{font-weight:bolder}caption{padding-top:.75rem;padding-bottom:.75rem;color:#6c757d;text-align:left;caption-side:bottom}button{border-radius:0}button:focus{outline:1px dotted;outline:5px auto -webkit-focus-ring-color}button,input{margin:0;font-family:inherit;font-size:inherit;line-height:inherit;overflow:visible}button{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]:not(:disabled),[type=reset]:not(:disabled),[type=submit]:not(:disabled),button:not(:disabled){cursor:pointer}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{padding:0;border-style:none}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}input[type=date],input[type=datetime-local],input[type=month],input[type=time]{-webkit-appearance:listbox}legend{display:block;width:100%;max-width:100%;padding:0;margin-bottom:.5rem;font-size:1.5rem;line-height:inherit;color:inherit;white-space:normal}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:none}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}summary{display:list-item;cursor:pointer}template{display:none}[hidden]{display:none!important}*{-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important}html{font-size:62.5%;height:100%}link-to{color:#0d6efd;text-decoration:none;background-color:transparent}link-to:hover{color:rgb(0,86.1,178.5);text-decoration:none;cursor:pointer}route-view{display:none;flex:1}site-header{background-color:#fff;display:none;position:-webkit-sticky;position:sticky;top:0;height:var(--header-height)}#main{display:none;flex:1 auto;max-width:100%;overflow:hidden;flex-direction:column;overflow-y:scroll}.loaded #main,.loaded site-header,body.loaded,route-view.loaded{display:flex}route-view.left-panel-active{padding-left:var(--sidepanel-width)}input[type=checkbox],input[type=radio]{cursor:pointer}button,button:active{outline:none}[tabindex=\\\"0\\\"]:focus-visible,aofl-list-option:focus-visible,button[type=button]:focus-visible,collapse-button:focus-visible{outline:1px solid #e50b0a;border:1px solid #e50b0a}@keyframes progress-bar-stripes{0%{background-position:1.6rem 0}to{background-position:0 0}}.modal-container{background-color:rgba(0,0,0,.2);position:fixed;top:0;bottom:0;right:0;left:0;z-index:var(--z-index-modal)}.modal-container :first-child{overflow:auto}.modal{position:relative;display:block;height:100vh}.modal-dialog-centered.modal-dialog-scrollable{height:auto;max-height:calc(100% - 2.8rem);min-height:auto}.modal-body,.modal-content,.modal-footer,.modal-header{border:none}.modal-header{font-size:2rem;padding:2.4rem}.modal-body{padding:0 2.4rem 4.8rem}.colored-header{color:#fff}.modal-body p{text-align:left}.colored-header-primary{background-color:#0d6efd}.colored-header-secondary{background-color:#adb5bd}.colored-header-success{background-color:#3c8104}.colored-header-info{background-color:#cfe2ff}.colored-header-warning{background-color:#e17a05}.colored-header-danger{background-color:#d20a09}.colored-header-light{background-color:#f8f9fa}.colored-header-dark{background-color:#000}@keyframes spinner-border{to{transform:rotate(1turn)}}@keyframes spinner-grow{0%{transform:scale(0)}50%{opacity:1}}[hidden]{visibility:hidden!important;height:0!important;width:0!important;min-height:unset!important}@media print{*,:after,:before{text-shadow:none!important;box-shadow:none!important}@page{size:a3}}@media print{main::-webkit-scrollbar{display:none}main{-ms-overflow-style:none;scrollbar-width:none}}@page{size:A4;margin:20mm 16mm 20mm 16mm}:host{display:inline-block}:host(:hover){cursor:pointer}\", \"\"]);\n","import {until} from 'lit-html/directives/until';\nimport '@modules/group-filters';\nimport '@modules/three-way-toggle';\nimport '@modules/dropdown';\nimport '@modules/select';\nimport '@modules/auth-context';\nimport {permissions, permissionGroupKeys} from '@modules/constants-enumerate';\nimport {ThreeWayToggle} from '@modules/three-way-toggle';\nimport {nothing} from 'lit-html';\n\nexport default (ctx, html) => html`\n
\n \n\n
\n

${until(ctx.__('', 'Select a group'))}

\n
', 'Sponsor Access hides all PII including class names and student names'))}\">\n \n \n
\n
', 'Hide Student PII will show teacher and classroom PII'))}\">\n \n \n
\n \n\n ${ctx.selectedGroup? html`\n ${!ctx.isSponsor && !ctx.isHideStudent? html`\n
\n
\n
\n
\n

${until(ctx.__('', 'Administrator Accounts'))}

\n ${ctx.permissions[permissionGroupKeys.ADMIN_ACCOUNTS].disabled\n ? html``\n : html``}\n
\n
\n

${until(ctx.__('', 'Manual Roster'))}

\n \n \n \n
\n e.stopPropagation()}\" @change=\"${(e) => ctx.rosterChangeHandler(e)}\">\n \n ${until(ctx.__('', 'Teachers Read/Write'))}\n \n \n \n ${until(ctx.__('', 'Students Read/Write'))}\n \n \n \n ${until(ctx.__('', 'Group Read/Write'))}\n \n \n \n ${until(ctx.__('', 'Export All'))}\n \n \n \n
\n
\n
\n
\n

${until(ctx.__('', 'Roster Upload'))}

\n \n
\n ${ctx.settings.available_rostering_systems.sftp ? html`\n
\n

${until(ctx.__('', 'Manage SFTP'))}

\n \n
` : nothing}\n
\n

${until(ctx.__('', 'Licenses'))}

\n \n
\n
\n

${until(ctx.__('', 'Report'))}

\n

${until(ctx.__('', 'Read Only'))}

\n
\n
\n

${until(ctx.__('', 'Resources'))}

\n

${until(ctx.__('', 'Read Only'))}

\n
\n
\n
\n
\n `: ''}\n\n\n ${ctx.roleExists? html`

${until(ctx.__('', 'This user is already assigned to the selected group'))}

`: ''}\n ${ctx.genericApiError? html`

${until(ctx.__('', 'Something went wrong. Please try again later.'))}

`: ''}\n `: ''}\n
\n
\n`;\n","import styles from './template.css';\nimport template from './template';\nimport {storeInstance} from '@aofl/store/dist/legacy';\nimport {AoflElement, customElement, property} from '@aofl/element';\nimport {i18nMixin} from '@aofl/i18n-mixin';\nimport translations from '@modules/i18n';\nimport {sdoNs, permissionGroupKeys, permissionGroups, exceptionCodes} from '@modules/constants-enumerate';\nimport {ThreeWayToggle} from '@modules/three-way-toggle';\nimport {restrictedPermissions} from '@modules/permissions';\n\nconst removeGroupPermission = (acc, item) => {\n acc[item] = false;\n return acc;\n};\n\nconst addGroupPermission = (acc, item) => {\n acc[item] = true;\n return acc;\n};\n\n/**\n * @summary RoleCrudBlock\n * @extends {i18nMixin(AoflElement)}\n */\n@customElement('role-crud-block')\nclass RoleCrudBlock extends i18nMixin(AoflElement) {\n /**\n * Creates an instance of RoleCrudBlock.\n */\n constructor() {\n super();\n this.translations = translations;\n this.storeInstance = storeInstance;\n }\n\n /**\n * @readonly\n */\n static is = 'role-crud-block';\n\n @property({type: Number, mapState: `${sdoNs.SESSION}.group_info.id`, store: storeInstance})\n groupId = 0;\n\n @property({type: Number, mapState: `${sdoNs.SESSION}.settings.tier_structure.levels`, store: storeInstance})\n tiersLevels = 0;\n\n @property({type: Object, mapState: `${sdoNs.SESSION}.settings`, store: storeInstance})\n settings = {};\n\n @property({type: Number})\n selectedGroup = 0;\n\n @property({type: Number})\n selectedGroupLevel = 0;\n\n @property({type: Boolean})\n roleExists = false;\n\n @property({type: Boolean})\n isSponsor = false;\n\n @property({type: Boolean})\n isHideStudent = false;\n\n @property({type: Boolean})\n genericApiError = false;\n\n @property({type: Object})\n permissions = {\n [permissionGroupKeys.ADMIN_ACCOUNTS]: {\n toggleState: ThreeWayToggle.VALUES.NONE,\n permissions: permissionGroups[permissionGroupKeys.ADMIN_ACCOUNTS].reduce(removeGroupPermission, {})\n },\n [permissionGroupKeys.MANUAL_ROSTER]: {\n toggleState: ThreeWayToggle.VALUES.NONE,\n permissions: permissionGroups[permissionGroupKeys.MANUAL_ROSTER]\n .reduce(removeGroupPermission, {})\n },\n [permissionGroupKeys.ROSTER_UPLOAD]: {\n toggleState: ThreeWayToggle.VALUES.NONE,\n permissions: permissionGroups[permissionGroupKeys.ROSTER_UPLOAD]\n .reduce(removeGroupPermission, {})\n },\n [permissionGroupKeys.LICENSE]: {\n toggleState: ThreeWayToggle.VALUES.NONE,\n permissions: permissionGroups[permissionGroupKeys.LICENSE]\n .reduce(removeGroupPermission, {})\n },\n [permissionGroupKeys.SFTP]: {\n toggleState: ThreeWayToggle.VALUES.NONE,\n permissions: permissionGroups[permissionGroupKeys.SFTP]\n .reduce(removeGroupPermission, {})\n },\n };\n\n @property({type: Number})\n index = 0;\n\n @property({type: Object})\n role = null;\n\n groupChangeHandler(e) {\n const lastGroup = e.detail.groupInfo;\n this.selectedGroupLevel = lastGroup.path.split('.').length;\n this.selectedGroup = lastGroup.id;\n\n const disableAdminPermission = this.selectedGroupLevel >= this.tiersLevels;\n this.permissions[permissionGroupKeys.ADMIN_ACCOUNTS].disabled = disableAdminPermission;\n if (disableAdminPermission) {\n this.permissions[permissionGroupKeys.ADMIN_ACCOUNTS].toggleState = ThreeWayToggle.VALUES.NONE;\n this.permissions[permissionGroupKeys.ADMIN_ACCOUNTS].permissions['user.update'] = false;\n }\n this.save();\n }\n\n dismiss(e) {\n this.dispatchEvent(new CustomEvent('dismiss-role'));\n this.save();\n }\n\n rosterChangeHandler(e) {\n const selected = e.target.selected;\n const allCount = permissionGroups[permissionGroupKeys.MANUAL_ROSTER].length;\n const toggleState = selected.length === allCount?\n ThreeWayToggle.VALUES.ALL: selected.length === 0?\n ThreeWayToggle.NONE: ThreeWayToggle.VALUES.SOME;\n const permissions = {\n toggleState,\n permissions: permissionGroups[permissionGroupKeys.MANUAL_ROSTER]\n .reduce(removeGroupPermission, {})\n };\n\n for (let i = 0; i < selected.length; i++) {\n const selection = selected[i];\n if (typeof permissions.permissions[selection] !== 'undefined') {\n permissions.permissions[selection] = true;\n }\n }\n\n this.permissions = Object.assign({}, this.permissions, {\n [permissionGroupKeys.MANUAL_ROSTER]: permissions\n });\n this.save();\n }\n\n setPermission(e) {\n const permissionGroupKey = e.target.dataset.permissionGroupKey;\n const state = e.target.value;\n\n let permission = {};\n\n if (state === ThreeWayToggle.VALUES.ALL) {\n // if turning on SFTP, also turn on ROSTER_UPLOAD\n if (permissionGroupKey === permissionGroupKeys.SFTP) {\n permission = {\n toggleState: ThreeWayToggle.VALUES.ALL,\n permissions: permissionGroups[permissionGroupKeys.ROSTER_UPLOAD]\n .reduce(addGroupPermission, {})\n };\n // toggle the Roster Upload toggle on because this permission is required with SFTP\n this.permissions = Object.assign({}, this.permissions, {\n [permissionGroupKeys.ROSTER_UPLOAD]: permission\n });\n this.save();\n }\n\n permission = {\n toggleState: ThreeWayToggle.VALUES.ALL,\n permissions: permissionGroups[permissionGroupKey]\n .reduce(addGroupPermission, {})\n };\n }\n else if (state === ThreeWayToggle.VALUES.NONE) {\n permission = {\n toggleState: ThreeWayToggle.VALUES.NONE,\n permissions: permissionGroups[permissionGroupKey]\n .reduce(removeGroupPermission, {})\n };\n }\n this.permissions = Object.assign({}, this.permissions, {\n [permissionGroupKey]: permission\n });\n this.save();\n }\n\n sponsor(e) {\n const groupId = this.selectedGroup > 0 ? this.selectedGroup : this.groupId;\n\n this.isSponsor = e.target.checked;\n if (this.isSponsor) {\n this.selectedGroup = groupId;\n if (this.selectedGroup === 0) {\n this.selectedGroup = this.groupId;\n }\n e.target.parentElement.parentElement.querySelector('#hide-student-toggle').checked = false;\n this.isHideStudent = false;\n } else if (this.selectedGroupLevel === 0) {\n this.selectedGroup = 0;\n }\n this.save();\n }\n\n hideStudent(e) {\n const groupId = this.selectedGroup > 0 ? this.selectedGroup : this.groupId;\n\n this.isHideStudent = e.target.checked;\n if (this.isHideStudent) {\n this.selectedGroup = groupId;\n if (this.selectedGroup === 0) {\n this.selectedGroup = this.groupId;\n }\n e.target.parentElement.parentElement.querySelector('#sponsor-toggle').checked = false;\n this.isSponsor = false;\n } else if (this.selectedGroupLevel === 0) {\n this.selectedGroup = 0;\n }\n this.save();\n }\n\n save() {\n this.roleExists = false;\n this.genericApiError = false;\n\n const permissions = {};\n const restricted = restrictedPermissions(this.selectedGroupLevel, parseInt(this.tiersLevels, 10) + 1);\n\n if (this.isSponsor) {\n permissions.sponsor = true;\n } else if (this.isHideStudent) {\n permissions.hideStudent = true;\n } else {\n for (const [key, val] of Object.entries(this.permissions)) {\n if (typeof(val.permissions) !== 'undefined') {\n for (const [permissionKey, permissionValue] of Object.entries(val.permissions)) {\n // if this permissionKey is not restricted, go ahead and set it\n if (restricted.indexOf(permissionKey) === -1) {\n permissions[permissionKey] = permissionValue;\n }\n }\n }\n }\n }\n\n try {\n this.permissions.group = this.selectedGroup;\n this.permissions.sponsor = this.isSponsor;\n this.permissions.hideStudent = this.isHideStudent;\n this.permissions.tiersLevels = this.tiersLevels;\n this.permissions.groupLevel = this.selectedGroupLevel;\n\n storeInstance.commit({namespace: sdoNs.ADMIN_UINFO, mutationId: 'createRoles', payload: {permissions: this.permissions, index: this.index}});\n } catch (e) {\n if (e.error.code === exceptionCodes.INPUT_DUPLICATE) {\n this.roleExists = true;\n } else {\n this.genericApiError = true;\n }\n /** @todo handle role create error */\n }\n\n window.Appcues && window.Appcues.track('adminRoleCreated');\n }\n\n discard() {\n storeInstance.commit({\n namespace: sdoNs.ADMIN_UINFO,\n mutationId: 'removeNewRole',\n payload: this.index\n });\n }\n /**\n *\n * @return {Object}\n */\n render() {\n return super.render({\n default: {\n template,\n styles: [styles]\n }\n });\n }\n}\n\nexport default RoleCrudBlock;\n","import {ThreeWayToggle} from '@modules/three-way-toggle';\n\nexport default (ctx, html) => html`\n ${ctx.state === ThreeWayToggle.VALUES.ALL? html`\n \n `: ''}\n\n ${ctx.state === ThreeWayToggle.VALUES.SOME? html`\n \n `: ''}\n\n ${ctx.state === ThreeWayToggle.VALUES.NONE? html`\n \n `: ''}\n\n ${typeof ctx.state === 'undefined'? html`\n \n `: ''}\n`;\n","import styles from './template.css';\nimport template from './template';\nimport {AoflElement, customElement, property} from '@aofl/element';\n\n/**\n * @summary PermissionCheckMark\n * @extends {AoflElement}\n */\n@customElement('permission-check-mark')\nclass PermissionCheckMark extends AoflElement {\n /**\n * Creates an instance of PermissionCheckMark.\n */\n constructor() {\n super();\n }\n /**\n * @readonly\n */\n static is = 'permission-check-mark';\n\n @property({type: String, attribute: false})\n state = '';\n /**\n *\n * @return {Object}\n */\n render() {\n return super.render(template, [styles]);\n }\n}\n\nexport default PermissionCheckMark;\n","import {until} from 'lit-html/directives/until';\nimport '@modules/dropdown';\nimport '@modules/select';\nimport {permissionGroupKeys, permissions} from '@modules/constants-enumerate';\nimport '../permission-check-mark';\nimport '@modules/show-modal';\nimport {nothing} from 'lit-html';\nimport {ThreeWayToggle} from '@modules/three-way-toggle';\n\nexport default (ctx, html) => html`\n
\n ${ctx.loggedInUserId !== ctx['user-id'] && !ctx.isRootAdmin ? html`\n\n \n\n `: ''}\n\n
\n

${ctx.role.breadcrumbs}

\n\n
\n
\n\n ${ctx.role.access_data[permissions.SPONSOR] ?\n until(ctx.__('', 'Sponsor Access')) :\n ctx.role.access_data[permissions.HIDE_STUDENT] ?\n until(ctx.__('', 'Hide Student')) :\n renderPermissions(ctx, html)}\n
\n
\n
\n`;\n\nconst renderPermissions = (ctx, html) => html`\n
\n
\n

${until(ctx.__('', 'Administrator Accounts'))}

\n \n
\n\n
\n

${until(ctx.__('', 'Manual Roster'))}

\n \n \n \n
\n
\n
\n ${until(ctx.__('', 'Teachers Create and Update'))}\n ${ctx.role.access_data[permissions.TEACHER_EDIT]? html``: ''}\n
\n\n
\n ${until(ctx.__('', 'Students Create and Update'))}\n ${ctx.role.access_data[permissions.STUDENT_EDIT]? html``: ''}\n
\n\n
\n ${until(ctx.__('', 'Groups Create and Update'))}\n ${ctx.role.access_data[permissions.GROUP_EDIT]? html``: ''}\n
\n\n
\n ${until(ctx.__('', 'Export All'))}\n ${ctx.role.access_data[permissions.EXPORT_ALL]? html``: ''}\n
\n
\n
\n
\n
\n\n
\n

${until(ctx.__('', 'Upload Rosters'))}

\n \n
\n\n ${ctx.settings.available_rostering_systems.sftp === true ? html`\n
\n

${until(ctx.__('', 'Manage SFTP'))}

\n \n
`: nothing}\n\n
\n

${until(ctx.__('', 'Licenses'))}

\n \n
\n\n
\n

${until(ctx.__('', 'Reports'))}

\n

${until(ctx.__('', 'Read Only'))}

\n
\n\n
\n

${until(ctx.__('', 'Resources'))}

\n

${until(ctx.__('', 'Read Only'))}

\n
\n\n ${ctx.isRootAdmin === true ? html`\n
\n

${until(ctx.__('', 'Term Management'))}

\n \n
` : nothing}\n\n
\n`;\n","import styles from './template.css';\nimport template from './template';\nimport {storeInstance} from '@aofl/store/dist/legacy';\nimport {AoflElement, customElement, property} from '@aofl/element';\nimport {i18nMixin} from '@aofl/i18n-mixin';\n\nimport translations from '@modules/i18n';\nimport {sdoNs} from '@modules/constants-enumerate';\n\n/**\n * @summary RoleView\n * @extends {i18nMixin(AoflElement)}\n */\n@customElement('role-view')\nclass RoleView extends i18nMixin(AoflElement) {\n /**\n * Creates an instance of RoleView.\n */\n constructor() {\n super();\n this.translations = translations;\n this.storeInstance = storeInstance;\n }\n\n /**\n * @readonly\n */\n static is = 'role-view';\n\n @property({type: Object})\n role = null;\n\n @property({type: Object})\n modalData = {};\n\n @property({type: Number})\n ['user-id'] = 0;\n\n @property({type: Boolean})\n isRootAdmin = false;\n\n @property({type: Number, mapState: `${sdoNs.SESSION}.id`, store: storeInstance})\n loggedInUserId;\n\n @property({type: Object, mapState: `${sdoNs.SESSION}.settings`, store: storeInstance})\n settings;\n\n connectedCallback() {\n super.connectedCallback();\n }\n\n discard() {\n storeInstance.commit({\n namespace: sdoNs.ADMIN_UINFO,\n mutationId: 'removeRole',\n payload: this.role.id\n });\n this.dispatchEvent(new CustomEvent('on-dismiss'));\n }\n\n /**\n *\n * @return {Object}\n */\n render() {\n return super.render({\n default: {\n template,\n styles: [styles]\n }\n });\n }\n}\n\nexport default RoleView;\n","import {until} from 'lit-html/directives/until';\nimport {repeat} from 'lit-html/directives/repeat';\nimport '@modules/role-crud-block';\nimport '@modules/role-view';\nimport '@modules/aofl-form';\nimport {generalLabels, toastStatus} from '@modules/i18n-labels';\nexport default (ctx, html) => html`\n${ctx.disabled && !ctx.isRootAdmin\n ? html`
${ctx.hasPerms ? until(toastStatus.saveFailTpRosteringConnected) : until(toastStatus.insufficentPermissionsEdit)}
`\n : ''}\n\n
\n
\n
\n
\n \n
\n \n
\n ${!ctx.form.firstName.isRequired.valid? html`

${until(ctx.__('', 'First name is required.'))}

`: ''}\n
\n
\n
\n
\n \n
\n \n
\n
\n
\n
\n
\n \n
\n \n
\n ${!ctx.form.email.valid? html`

${until(ctx.__('', 'An email address or a phone number is required.'))}

`: ''}\n ${(!ctx.form.email.emailLike.valid)? html`

${until(generalLabels.invalidEmailError)}

`: ''}\n
\n
\n
\n
\n \n
\n \n
\n ${!ctx.form.phone.phoneLike.valid? html`

${until(generalLabels.invalidPhoneError)}

`: ''}\n
\n
\n ${ctx.showContactInfo ? html`\n
\n
\n \n
\n \n
\n ${!ctx.form.contact_email.valid? html`

${until(ctx.__('', 'An email address or a phone number is required.'))}

`: ''}\n ${(!ctx.form.contact_email.emailLike.valid)? html`

${until(generalLabels.invalidEmailError)}

`: ''}\n
\n
\n
\n
\n \n
\n \n
\n ${!ctx.form.contact_phone.phoneLike.valid? html`

${until(generalLabels.invalidPhoneError)}

`: ''}\n
\n
\n ` : ''}\n
\n
\n \n
\n \n
\n ${!ctx.form.external_id.valid? html`

${until(generalLabels.externalIdInUseError)}

`: ''}\n
\n
\n
\n ${ctx.loggedInUserId === ctx.userId ? html`\n
\n
\n \n
\n ${ctx.mfaRequired === 'required' || ctx.mfaRequired === 'required-not-configured'\n ? html`\n ${until(ctx.__('', 'Required by your Organization'))}\n \n `\n : html`\n
\n \n
\n `}\n
\n
\n
\n
\n
\n

${until(ctx.__('', 'Preferred method for two-factor authentication will be sent to the \"Login\" email/phone (above):'))}

\n
\n
\n
\n \n \n
\n
\n \n \n
\n
\n
`\n : html``}\n\n \n
\n\n
\n

${until(ctx.__('', 'Roles'))}

\n ${ctx.loggedInUserId !== ctx.userId && !ctx.isRootAdmin ? html`\n
\n \n
`\n : html``}\n
\n\n ${repeat(ctx.pendingRoles, (role) => role.tempId, (role, index) => html`\n
\n
\n \n
\n
\n
\n `)}\n\n ${repeat(ctx.roles, (role) => role.id, (role) => html`\n \n `)}\n\n
\n
\n \n
\n ${!ctx.userId ? html`\n
\n \n \n
`\n : html``}\n
\n
\n
\n`;\n\nimport {userTypes} from '@modules/constants-enumerate';\n","import styles from './template.css';\nimport template from './template';\nimport {AoflElement, customElement, property} from '@aofl/element';\nimport {i18nMixin} from '@aofl/i18n-mixin';\nimport {validationMixin, isRequired} from '@aofl/form-validate';\nimport {mapStatePropertiesMixin} from '@aofl/map-state-properties-mixin';\nimport {storeInstance} from '@aofl/store/dist/legacy';\nimport translations from '../i18n';\nimport {\n permissionGroupKeys,\n permissionGroups,\n sdoNs,\n userTypes,\n exceptionCodes,\n modals, permissions\n} from '@modules/constants-enumerate';\nimport {emailLike, phoneLike} from '@modules/custom-form-validators';\nimport '@modules/sdo-user-info';\nimport '@modules/phone-input';\nimport {ThreeWayToggle} from '@modules/three-way-toggle';\nimport {SimpleModal} from '@modules/simple-modal';\nimport {hasOneOfPermissions} from '@modules/permissions';\n\nconst removeGroupPermission = (acc, item) => {\n acc[item] = false;\n return acc;\n};\n\n/**\n * @summary EditForm\n * @extends {mapStatePropertiesMixin(validationMixin(i18nMixin(AoflElement)))}\n */\n@customElement('admin-form')\nclass AdminForm extends mapStatePropertiesMixin(validationMixin(i18nMixin(AoflElement))) {\n /**\n * Creates an instance of EditForm.\n */\n constructor() {\n super();\n this.translations = translations;\n this.storeInstance = storeInstance;\n\n const state = storeInstance.getState();\n this.data = state[sdoNs.ADMIN_UINFO];\n this.ownProfile = (this.data.id === this.loggedInUserId);\n this.showProfile = (state[sdoNs.ADMIN_UINFO].type === userTypes.ADMIN);\n this.inputDisabled = (this.showProfile) ? '' : 'disabled';\n this.showContactInfo = (this.userId > 0);\n\n this.validators = {\n firstName: {isRequired},\n lastName: {temp: () => true},\n email: {\n emailLike,\n checkLoginFields: this.checkLoginFields.bind(this),\n conflicting: (value) => {\n return !value || !this.conflictingEmail || value !== this.conflictingEmail;\n }\n },\n phone: {\n checkLoginFields: this.checkLoginFields.bind(this),\n phoneLike\n },\n contact_email: {\n checkContactFields: this.checkContactFields.bind(this),\n emailLike: this.checkContactEmailField.bind(this),\n },\n contact_phone: {\n checkContactFields: this.checkContactFields.bind(this),\n phoneLike: this.checkContactPhoneField.bind(this),\n },\n external_id: {temp: () => true},\n };\n this.validateEmailAndPhone();\n this.validateContactEmailAndPhone();\n }\n\n checkLoginFields() {\n return isRequired(this.phone) ||\n isRequired(this.email) ||\n this.email !== this.conflictingEmail;\n }\n\n checkContactFields() {\n if (typeof this.contactPhone === 'object') {\n this.contactPhone = '';\n }\n return (this.showProfile) ? isRequired(this.contactPhone) || isRequired(this.contactEmail) : true;\n }\n\n checkContactEmailField() {\n return (this.showProfile) ? emailLike(this.contactEmail) : true;\n }\n\n checkContactPhoneField() {\n // Doing !this.contactPhone because value comes in as null from server, but if user deletes it comes in as empty string\n return (this.showProfile) ? !this.contactPhone || phoneLike(this.contactPhone) : true;\n }\n\n /**\n * @readonly\n */\n static get is() {\n return 'admin-form';\n }\n\n @property({type: Boolean})\n ['require-password'] = false;\n\n @property({type: String, mapState: `${sdoNs.ADMIN_UINFO}.external_id`, store: storeInstance})\n externalId = '';\n\n @property({type: String, mapState: `${sdoNs.ADMIN_UINFO}.first_name`, store: storeInstance})\n firstName = '';\n\n @property({type: String, mapState: `${sdoNs.ADMIN_UINFO}.last_name`, store: storeInstance})\n lastName = '';\n\n @property({type: String, mapState: `${sdoNs.ADMIN_UINFO}.email`, store: storeInstance})\n email = '';\n\n @property({type: Boolean, attribute: true})\n loginEmailUpdated = false;\n\n @property({type: String, mapState: `${sdoNs.ADMIN_UINFO}.profile.contact_email`, store: storeInstance})\n contactEmail = '';\n\n @property({type: String, mapState: `${sdoNs.ADMIN_UINFO}.phone`, store: storeInstance})\n phone = '';\n\n @property({type: String, mapState: `${sdoNs.ADMIN_UINFO}.profile.contact_phone`, store: storeInstance})\n contactPhone = '';\n\n @property({type: Boolean, attribute: true})\n saving = false;\n\n @property({type: Object, attribute: true})\n error = {};\n\n @property({type: Number, mapState: `${sdoNs.ADMIN_UINFO}.id`, store: storeInstance})\n userId = 0;\n\n @property({type: String, mapState: `${sdoNs.ADMIN_UINFO}.mfa_required`, store: storeInstance})\n mfaRequired = null;\n\n @property({type: String, mapState: `${sdoNs.ADMIN_UINFO}.mfa_method`, store: storeInstance})\n mfaMethod = null;\n\n @property({type: Array, mapState: `${sdoNs.ADMIN_UINFO}.mfa_available_methods`, store: storeInstance})\n mfaAvailableMethods = null;\n\n @property({type: Array, mapState: `${sdoNs.ADMIN_UINFO}.$roles`, store: storeInstance})\n roles = [];\n\n @property({type: Array, mapState: `${sdoNs.ADMIN_UINFO}.pendingRoles`, store: storeInstance})\n pendingRoles = [];\n\n @property({type: Number, mapState: `${sdoNs.SESSION}.id`, store: storeInstance})\n loggedInUserId;\n\n @property({type: String, mapState: `${sdoNs.ADMIN_UINFO}.type`, store: storeInstance})\n userType = '';\n\n @property({type: Boolean, mapState: `${sdoNs.ADMIN_UINFO}.is_root_admin`, store: storeInstance})\n isRootAdmin = false;\n\n @property({type: Boolean, attribute: true})\n ownProfile = false;\n\n conflictingEmail = '';\n\n @property({type: Boolean})\n disabled = false;\n\n @property({type: Boolean})\n hasPerm = false;\n\n @property({type: Object})\n defaultPermissions = {\n [permissionGroupKeys.ADMIN_ACCOUNTS]: {\n toggleState: ThreeWayToggle.VALUES.NONE,\n permissions: permissionGroups[permissionGroupKeys.ADMIN_ACCOUNTS].reduce(removeGroupPermission, {})\n },\n [permissionGroupKeys.MANUAL_ROSTER]: {\n toggleState: ThreeWayToggle.VALUES.NONE,\n permissions: permissionGroups[permissionGroupKeys.MANUAL_ROSTER]\n .reduce(removeGroupPermission, {})\n },\n [permissionGroupKeys.ROSTER_UPLOAD]: {\n toggleState: ThreeWayToggle.VALUES.NONE,\n permissions: permissionGroups[permissionGroupKeys.ROSTER_UPLOAD]\n .reduce(removeGroupPermission, {})\n },\n [permissionGroupKeys.LICENSE]: {\n toggleState: ThreeWayToggle.VALUES.NONE,\n permissions: permissionGroups[permissionGroupKeys.LICENSE]\n .reduce(removeGroupPermission, {})\n }\n };\n\n @property({type: Boolean, attribute: true})\n showProfile = false;\n\n @property({type: String})\n inputDisabled = '';\n\n @property({type: Boolean, attribute: true})\n showContactInfo = false;\n\n firstNameUpdated(e) {\n this.firstName = e.target.value.trim();\n this.storeInstance.commit({namespace: sdoNs.ADMIN_UINFO, mutationId: 'setFirst_name', payload: this.firstName});\n this.form.firstName.validate();\n }\n\n lastNameUpdated(e) {\n this.lastName = e.target.value.trim();\n this.storeInstance.commit({namespace: sdoNs.ADMIN_UINFO, mutationId: 'setLast_name', payload: this.lastName});\n this.form.lastName.validate();\n }\n\n validateFirstName(e) {\n this.form.firstName.validate();\n }\n\n emailUpdated(e) {\n if (e.target.value.trim() !== this.email) {\n this.error = {};\n }\n\n this.email = e.target.value.trim();\n this.storeInstance.commit({namespace: sdoNs.ADMIN_UINFO, mutationId: 'setEmail', payload: this.email});\n this.form.email.validate();\n }\n\n phoneUpdated(e) {\n this.phone = e.target.value.trim();\n this.storeInstance.commit({namespace: sdoNs.ADMIN_UINFO, mutationId: 'setPhone', payload: this.phone});\n this.form.phone.validate();\n }\n\n externalIdUpdated(e) {\n if (e.target.value.trim() !== this.contactEmail) {\n this.error = {};\n }\n\n this.externalId = e.target.value.trim();\n this.storeInstance.commit({namespace: sdoNs.ADMIN_UINFO, mutationId: 'setExternalId', payload: this.externalId});\n this.form.external_id.validate();\n }\n\n contactEmailUpdated(e) {\n if (e.target.value.trim() !== this.contactEmail) {\n this.error = {};\n }\n\n this.contactEmail = e.target.value.trim();\n const profile = {...this.data.profile, contact_email: this.contactEmail};\n this.storeInstance.commit({namespace: sdoNs.ADMIN_UINFO, mutationId: 'setProfile', payload: profile});\n this.form.contact_email.validate();\n }\n\n contactPhoneUpdated(e) {\n this.contactPhone = e.target.value;\n this.contactPhone = typeof this.contactPhone === 'string' ? this.contactPhone.trim() : '';\n const profile = {...this.data.profile, contact_phone: this.contactPhone};\n this.storeInstance.commit({namespace: sdoNs.ADMIN_UINFO, mutationId: 'setProfile', payload: profile});\n this.form.contact_phone.validate();\n }\n\n validateEmailAndPhone(e) {\n this.form.email.validate();\n this.form.phone.validate();\n }\n\n validateContactEmailAndPhone() {\n this.form.contact_phone.validate();\n this.form.contact_email.validate();\n }\n\n mfaRequiredUpdated(e) {\n this.mfaRequired = e.target.checked ? 'active' : 'disabled';\n const data = {\n 'mfa_required': this.mfaRequired,\n 'mfa_method': this.mfaMethod,\n };\n this.storeInstance.commit({namespace: sdoNs.ADMIN_UINFO, mutationId: 'setMfaInfo', payload: data});\n }\n\n mfaMethodUpdated(e) {\n if (e.target.value === 'email') {\n if (typeof this.email === 'string' && this.email.trim() !== '' && this.email !== this.conflictingEmail) {\n this.mfaMethod = 'email';\n } else {\n e.preventDefault();\n SimpleModal.show(modals.UPDATE_LOGIN_EMAIL, {\n userId: this.userId,\n email: this.email,\n mfaEnabled: this.mfaRequired,\n mfaMethod: 'email'\n }, e);\n this.mfaMethod = null;\n this.shadowRoot.querySelector('#mfa-email').checked = false;\n }\n }\n\n if (e.target.value === 'sms' || e.target.value === 'phone') {\n if (typeof this.phone === 'string' && this.phone.trim() !== '') {\n this.mfaMethod = e.target.value;\n } else {\n e.preventDefault();\n SimpleModal.show(modals.UPDATE_LOGIN_PHONE, {\n userId: this.userId,\n phone: this.phone,\n mfaEnabled: this.mfaRequired,\n mfaMethod: 'sms'\n }, e);\n this.mfaMethod = null;\n this.shadowRoot.querySelector('#mfa-sms').checked = false;\n }\n }\n\n const data = {\n 'mfa_required': this.mfaRequired,\n 'mfa_method': this.mfaMethod,\n };\n this.storeInstance.commit({namespace: sdoNs.ADMIN_UINFO, mutationId: 'setMfaInfo', payload: data});\n\n e.preventDefault();\n }\n\n tempId = 0;\n\n addRole() {\n storeInstance.commit({\n namespace: sdoNs.ADMIN_UINFO,\n mutationId: 'createRoles',\n payload: {tempId: this.tempId++, permissions: this.defaultPermissions}\n });\n this.form.validate();\n }\n\n dismissRole() {\n this.form.validate();\n }\n\n async submit(e) {\n e.preventDefault();\n e.stopPropagation();\n const form = e.target;\n const formData = new FormData(form);\n formData.set('phone', this.phone);\n formData.set('contact-phone', this.contactPhone);\n\n this.form.validate();\n await this.form.validateComplete;\n\n if (this.form.valid) {\n this.dispatchEvent(new CustomEvent('admin-form-submit', {\n detail: {formData},\n composed: true\n }));\n }\n }\n\n mapStateProperties() {\n const state = storeInstance.getState();\n if (!state[sdoNs.SESSION].loggedIn) return;\n this.data = state[sdoNs.ADMIN_UINFO];\n // this.data = state[sdoNs.SIMPLE_MODAL].modals[modals.ADMIN_DETAIL].data;\n this.another = (this.data?.another);\n\n if (\n (this.data.is_third_party_connected && this.data.managed_by) ||\n this.data.is_root_admin\n ) {\n this.disabled = true;\n this.hasPerms = (hasOneOfPermissions([permissions.USER_EDIT]));\n }\n }\n\n shouldUpdate(changedProperties) {\n if (changedProperties.has('error')) {\n if (this.error?.code === exceptionCodes.INPUT_CONFLICTING_PRODUCT_CREDENTIALS) {\n this.conflictingEmail = this.email;\n this.form.email.conflicting.validate();\n }\n }\n\n return true;\n }\n\n async setErrors(errors) {\n this.saving = false;\n\n if (!errors) {\n return;\n }\n\n if (\n errors.code === exceptionCodes.INPUT_CONFLICTING_PRODUCT_CREDENTIALS ||\n (errors.code === exceptionCodes.INPUT_GENERAL && typeof errors.payload[0]?.email?.duplicate !== 'undefined')\n ) {\n this.conflictingEmail = this.email;\n }\n\n this.form.validate();\n await this.form.validationComplete;\n }\n\n /**\n *\n * @return {Object}\n */\n render() {\n return super.render({\n default: {\n template,\n styles: [styles]\n }\n });\n }\n}\n\nexport default AdminForm;\n","import toInteger from '../_lib/toInteger/index.js';\nimport addWeeks from '../addWeeks/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name subWeeks\n * @category Week Helpers\n * @summary Subtract the specified number of weeks from the given date.\n *\n * @description\n * Subtract the specified number of weeks from the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of weeks to be subtracted\n * @returns {Date} the new date with the weeks subtracted\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Subtract 4 weeks from 1 September 2014:\n * var result = subWeeks(new Date(2014, 8, 1), 4)\n * //=> Mon Aug 04 2014 00:00:00\n */\n\nexport default function subWeeks(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var amount = toInteger(dirtyAmount);\n return addWeeks(dirtyDate, -amount);\n}","module.exports = __webpack_public_path__ + \"c35c4c7803529d298d88c805d2ff0f87.webp\";","module.exports = __webpack_public_path__ + \"1821583b85d15854000f5416ac28e800.webp\";","exports = module.exports = require(\"../../../node_modules/css-loader/dist/runtime/api.js\")(false);\n// Imports\nvar getUrl = require(\"../../../node_modules/css-loader/dist/runtime/getUrl.js\");\nvar ___CSS_LOADER_URL___0___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-light.woff2\"));\nvar ___CSS_LOADER_URL___1___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-lightit.woff2\"));\nvar ___CSS_LOADER_URL___2___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-reg.woff2\"));\nvar ___CSS_LOADER_URL___3___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-regit.woff2\"));\nvar ___CSS_LOADER_URL___4___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-sbold.woff2\"));\nvar ___CSS_LOADER_URL___5___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-sboldit.woff2\"));\nvar ___CSS_LOADER_URL___6___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-bold.woff2\"));\nvar ___CSS_LOADER_URL___7___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-boldit.woff2\"));\nvar ___CSS_LOADER_URL___8___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-Light.woff2\"));\nvar ___CSS_LOADER_URL___9___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-LightIt.woff2\"));\nvar ___CSS_LOADER_URL___10___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-Regular.woff2\"));\nvar ___CSS_LOADER_URL___11___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-RegularIt.woff2\"));\nvar ___CSS_LOADER_URL___12___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-Semibold.woff2\"));\nvar ___CSS_LOADER_URL___13___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-SemiboldIt.woff2\"));\nvar ___CSS_LOADER_URL___14___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-Bold.woff2\"));\nvar ___CSS_LOADER_URL___15___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-BoldIt.woff2\"));\nvar ___CSS_LOADER_URL___16___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-ExtraBold.woff2\"));\nvar ___CSS_LOADER_URL___17___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-ExtraBoldIt.woff2\"));\nvar ___CSS_LOADER_URL___18___ = getUrl(require(\"../../template/main/fonts/aofl-icons/icomoon.woff2?c6f21u\"));\n// Module\nexports.push([module.id, \"/*! @aofl-component */:root{--blue:#0d6efd;--indigo:#6610f2;--purple:#8b42ca;--pink:#e83e8c;--red:#e50b0a;--orange:#e17a05;--yellow:#ffc107;--green:#3c8104;--teal:#20c997;--cyan:#53c9dc;--white:#fff;--gray:#6b6b6b;--gray-dark:#343a40;--light-green:#b1dd53;--table-border-color:#d8d8d8;--gray-100:#f2f2f2;--gray-200:#d9d9d9;--gray-300:#d8d8d8;--gray-400:#ced4da;--gray-500:#adb5bd;--gray-600:#6c757d;--gray-700:#4a4a4a;--gray-800:#343a40;--gray-900:#212529;--gray-accessibility:#6b6b6b;--primary:#0d6efd;--secondary:#adb5bd;--success:#3c8104;--info:#cfe2ff;--warning:#e17a05;--danger:#d20a09;--light:#f8f9fa;--dark:#000;--breakpoint-xxs:0;--breakpoint-xs:375px;--breakpoint-sm:576px;--breakpoint-md:768px;--breakpoint-lg:992px;--breakpoint-xl:1200px;--font-family-sans-serif:aofl-sans,Arial,Helvetica,sans-serif;--font-family-monospace:SFMono-Regular,Menlo,Monaco,Consolas,\\\"Liberation Mono\\\",\\\"Courier New\\\",monospace;--z-index-dropdown:1000;--z-index-sticky:1020;--z-index-fixed:1030;--z-index-modal-backdrop:1040;--z-index-modal:1050;--z-index-popover:1060;--z-index-tooltip:1070;--header-height:6rem;--content-height:calc(100vh - 6rem);--sidepanel-width:20rem;--purple-color:#641da3;--purple-600:#956abc;--purple-400:#c7afdd;--purple-200:#e0d2ed;--struggling:#f6993b;--below-target:#ffcf00;--in_progress:#1280f5;--prior_knowledge:#edf887;--mastery_achieved:#69d112;--inactive:#d8d8d8}route-view{max-width:1200px}@font-face{font-family:aofl-sans;font-style:normal;font-weight:300;src:url(\" + ___CSS_LOADER_URL___0___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:italic;font-weight:300;src:url(\" + ___CSS_LOADER_URL___1___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:normal;font-weight:400;src:url(\" + ___CSS_LOADER_URL___2___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:italic;font-weight:400;src:url(\" + ___CSS_LOADER_URL___3___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:normal;font-weight:600;src:url(\" + ___CSS_LOADER_URL___4___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:italic;font-weight:600;src:url(\" + ___CSS_LOADER_URL___5___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:normal;font-weight:700;src:url(\" + ___CSS_LOADER_URL___6___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:italic;font-weight:700;src:url(\" + ___CSS_LOADER_URL___7___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:normal;font-weight:300;src:url(\" + ___CSS_LOADER_URL___8___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:italic;font-weight:300;src:url(\" + ___CSS_LOADER_URL___9___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:normal;font-weight:400;src:url(\" + ___CSS_LOADER_URL___10___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:italic;font-weight:400;src:url(\" + ___CSS_LOADER_URL___11___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:normal;font-weight:600;src:url(\" + ___CSS_LOADER_URL___12___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:italic;font-weight:600;src:url(\" + ___CSS_LOADER_URL___13___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:normal;font-weight:700;src:url(\" + ___CSS_LOADER_URL___14___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:italic;font-weight:700;src:url(\" + ___CSS_LOADER_URL___15___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:normal;font-weight:800;src:url(\" + ___CSS_LOADER_URL___16___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:italic;font-weight:800;src:url(\" + ___CSS_LOADER_URL___17___ + \") format(\\\"woff2\\\")}@font-face{font-family:icomoon;src:url(\" + ___CSS_LOADER_URL___18___ + \") format(\\\"woff2\\\");font-weight:400;font-style:normal;font-display:block}[class*=\\\" ai-\\\"],[class^=ai-]{font-family:icomoon!important;speak:never;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.ai-chevron-down:before{content:\\\"\\\\e90d\\\"}*,:after,:before{box-sizing:border-box}html{font-family:sans-serif;line-height:1.15;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:rgba(0,0,0,0)}figcaption,main,nav,section{display:block}[tabindex=\\\"-1\\\"]:focus{outline:0!important}h2,h4{margin-top:0;margin-bottom:1rem}strong{font-weight:bolder}a{color:#0d6efd;background-color:transparent}a,a:hover{text-decoration:none}a:hover{color:rgb(0,86.1,178.5)}a:not([href]):not([tabindex]),a:not([href]):not([tabindex]):focus,a:not([href]):not([tabindex]):hover{color:inherit;text-decoration:none}a:not([href]):not([tabindex]):focus{outline:0}caption{padding-top:.75rem;padding-bottom:.75rem;color:#6c757d;text-align:left;caption-side:bottom}label{display:inline-block;margin-bottom:.8rem}button{border-radius:0}button:focus{outline:1px dotted;outline:5px auto -webkit-focus-ring-color}button,input{margin:0;font-family:inherit;font-size:inherit;line-height:inherit;overflow:visible}button{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]:not(:disabled),[type=reset]:not(:disabled),[type=submit]:not(:disabled),button:not(:disabled){cursor:pointer}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{padding:0;border-style:none}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}input[type=date],input[type=datetime-local],input[type=month],input[type=time]{-webkit-appearance:listbox}legend{display:block;width:100%;max-width:100%;padding:0;margin-bottom:.5rem;font-size:1.5rem;line-height:inherit;color:inherit;white-space:normal}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:none}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}summary{display:list-item;cursor:pointer}template{display:none}[hidden]{display:none!important}*{-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important}html{font-size:62.5%;height:100%}link-to{color:#0d6efd;text-decoration:none;background-color:transparent}link-to:hover{color:rgb(0,86.1,178.5);text-decoration:none;cursor:pointer}route-view{display:none;flex:1}site-header{background-color:#fff;display:none;position:-webkit-sticky;position:sticky;top:0;height:var(--header-height)}#main{display:none;flex:1 auto;max-width:100%;overflow:hidden;flex-direction:column;overflow-y:scroll}.loaded #main,.loaded site-header,body.loaded,route-view.loaded{display:flex}route-view.left-panel-active{padding-left:var(--sidepanel-width)}@media (max-width:767.98px){#content{padding-left:0!important}}.h2,.h4,h2,h4{margin-bottom:1rem;font-weight:500;line-height:1.2}.h2,h2{font-size:2rem}.h4,h4{font-size:1.6rem}.row{display:flex;flex-wrap:wrap;margin-right:-15px;margin-left:-15px}.col-12,.col-sm-3,.col-sm-4,.col-sm-5{position:relative;width:100%;padding-right:15px;padding-left:15px}.col-12{flex:0 0 100%;max-width:100%}@media (min-width:576px){.col-sm-3{flex:0 0 25%;max-width:25%}.col-sm-4{flex:0 0 33.3333333333%;max-width:33.3333333333%}.col-sm-5{flex:0 0 41.6666666667%;max-width:41.6666666667%}}input[type=checkbox],input[type=radio]{cursor:pointer}input[type=checkbox]+label,input[type=radio]+label{cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}button,button:active{outline:none}[tabindex=\\\"0\\\"]:focus-visible,a:focus-visible,aofl-list-option:focus-visible,button[type=button]:focus-visible,collapse-button:focus-visible{outline:1px solid #e50b0a;border:1px solid #e50b0a}collapse-button .ai.ai-chevron-down:before{transform:rotate(-90deg);display:inline-block}collapse-button[open] .ai.ai-chevron-down:before{transform:rotate(180deg)}collapse-button .ai.ai-chevron-down,ems-dropdown .ai.ai-chevron-down{font-size:.8rem}collapse-button .ai-chevron-down:before,ems-dropdown .ai-chevron-down:before{content:\\\"\\\\e90d\\\"}collapse-button[open] .ai-chevron-down:before,ems-dropdown[open] .ai-chevron-down:before{content:\\\"\\\\e90f\\\"}.pagination{display:flex;padding-left:0;list-style:none;border-radius:.4rem}@keyframes progress-bar-stripes{0%{background-position:1.6rem 0}to{background-position:0 0}}.toast{max-width:350px;overflow:hidden;font-size:1.4rem;background-color:hsla(0,0%,100%,.85);background-clip:padding-box;border:1px solid rgba(0,0,0,.1);box-shadow:0 .4rem 1.2rem #d8d8d8;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);opacity:0;border-radius:.4rem}.toast:not(:last-child){margin-bottom:1.2rem}.modal-container{background-color:rgba(0,0,0,.2);position:fixed;top:0;bottom:0;right:0;left:0;z-index:var(--z-index-modal)}.modal-container :first-child{overflow:auto}.modal{position:relative;display:block;height:100vh}.modal-dialog-centered.modal-dialog-scrollable{height:auto;max-height:calc(100% - 2.8rem);min-height:auto}.modal-body,.modal-content,.modal-footer,.modal-header{border:none}.modal-header{font-size:2rem;padding:2.4rem}.modal-body{padding:0 2.4rem 4.8rem}.colored-header{color:#fff}.modal-body p{text-align:left}.colored-header-primary{background-color:#0d6efd}.colored-header-secondary{background-color:#adb5bd}.colored-header-success{background-color:#3c8104}.colored-header-info{background-color:#cfe2ff}.colored-header-warning{background-color:#e17a05}.colored-header-danger{background-color:#d20a09}.colored-header-light{background-color:#f8f9fa}.colored-header-dark{background-color:#000}@keyframes spinner-border{to{transform:rotate(1turn)}}@keyframes spinner-grow{0%{transform:scale(0)}50%{opacity:1}}.border-bottom{border-bottom:1px solid #d8d8d8!important}.d-none{display:none!important}.d-flex{display:flex!important}.flex-column{flex-direction:column!important}.justify-content-center{justify-content:center!important}.align-items-center{align-items:center!important}.w-100{width:100%!important}.mb-3{margin-bottom:1rem!important}.m-5{margin:3rem!important}.pt-0{padding-top:0!important}.pb-0{padding-bottom:0!important}.pb-2{padding-bottom:.5rem!important}.pl-2{padding-left:.5rem!important}.pt-3{padding-top:1rem!important}.px-3{padding-right:1rem!important}.pb-3{padding-bottom:1rem!important}.px-3{padding-left:1rem!important}.p-5{padding:3rem!important}.mx-auto{margin-right:auto!important;margin-left:auto!important}@media (min-width:375px){.pb-xs-0{padding-bottom:0!important}.pt-xs-3{padding-top:1rem!important}.pb-xs-3{padding-bottom:1rem!important}}.text-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.text-center{text-align:center!important}.text-success{color:#3c8104!important}a.text-success:focus,a.text-success:hover{color:rgb(25.4887218045,54.8007518797,1.6992481203)!important}.text-danger{color:#d20a09!important}a.text-danger:focus,a.text-danger:hover{color:rgb(136.6438356164,6.5068493151,5.8561643836)!important}.text-muted{color:#6c757d!important}.text-underline{text-decoration:underline!important}.h2{font-weight:600}[hidden]{visibility:hidden!important;height:0!important;width:0!important;min-height:unset!important}@media print{*,:after,:before{text-shadow:none!important;box-shadow:none!important}a:not(.btn){text-decoration:underline}h2{orphans:3;widows:3;page-break-after:avoid}@page{size:a3}}@media print{main::-webkit-scrollbar{display:none}main{-ms-overflow-style:none;scrollbar-width:none}}@page{size:A4;margin:20mm 16mm 20mm 16mm}:host{display:block}\", \"\"]);\n","exports = module.exports = require(\"../../../node_modules/css-loader/dist/runtime/api.js\")(false);\n// Imports\nvar getUrl = require(\"../../../node_modules/css-loader/dist/runtime/getUrl.js\");\nvar ___CSS_LOADER_URL___0___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-light.woff2\"));\nvar ___CSS_LOADER_URL___1___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-lightit.woff2\"));\nvar ___CSS_LOADER_URL___2___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-reg.woff2\"));\nvar ___CSS_LOADER_URL___3___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-regit.woff2\"));\nvar ___CSS_LOADER_URL___4___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-sbold.woff2\"));\nvar ___CSS_LOADER_URL___5___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-sboldit.woff2\"));\nvar ___CSS_LOADER_URL___6___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-bold.woff2\"));\nvar ___CSS_LOADER_URL___7___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-boldit.woff2\"));\nvar ___CSS_LOADER_URL___8___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-Light.woff2\"));\nvar ___CSS_LOADER_URL___9___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-LightIt.woff2\"));\nvar ___CSS_LOADER_URL___10___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-Regular.woff2\"));\nvar ___CSS_LOADER_URL___11___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-RegularIt.woff2\"));\nvar ___CSS_LOADER_URL___12___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-Semibold.woff2\"));\nvar ___CSS_LOADER_URL___13___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-SemiboldIt.woff2\"));\nvar ___CSS_LOADER_URL___14___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-Bold.woff2\"));\nvar ___CSS_LOADER_URL___15___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-BoldIt.woff2\"));\nvar ___CSS_LOADER_URL___16___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-ExtraBold.woff2\"));\nvar ___CSS_LOADER_URL___17___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-ExtraBoldIt.woff2\"));\nvar ___CSS_LOADER_URL___18___ = getUrl(require(\"../../template/main/fonts/aofl-icons/icomoon.woff2?c6f21u\"));\n// Module\nexports.push([module.id, \"/*! @aofl-component */:root{--blue:#0d6efd;--indigo:#6610f2;--purple:#8b42ca;--pink:#e83e8c;--red:#e50b0a;--orange:#e17a05;--yellow:#ffc107;--green:#3c8104;--teal:#20c997;--cyan:#53c9dc;--white:#fff;--gray:#6b6b6b;--gray-dark:#343a40;--light-green:#b1dd53;--table-border-color:#d8d8d8;--gray-100:#f2f2f2;--gray-200:#d9d9d9;--gray-300:#d8d8d8;--gray-400:#ced4da;--gray-500:#adb5bd;--gray-600:#6c757d;--gray-700:#4a4a4a;--gray-800:#343a40;--gray-900:#212529;--gray-accessibility:#6b6b6b;--primary:#0d6efd;--secondary:#adb5bd;--success:#3c8104;--info:#cfe2ff;--warning:#e17a05;--danger:#d20a09;--light:#f8f9fa;--dark:#000;--breakpoint-xxs:0;--breakpoint-xs:375px;--breakpoint-sm:576px;--breakpoint-md:768px;--breakpoint-lg:992px;--breakpoint-xl:1200px;--font-family-sans-serif:aofl-sans,Arial,Helvetica,sans-serif;--font-family-monospace:SFMono-Regular,Menlo,Monaco,Consolas,\\\"Liberation Mono\\\",\\\"Courier New\\\",monospace;--z-index-dropdown:1000;--z-index-sticky:1020;--z-index-fixed:1030;--z-index-modal-backdrop:1040;--z-index-modal:1050;--z-index-popover:1060;--z-index-tooltip:1070;--header-height:6rem;--content-height:calc(100vh - 6rem);--sidepanel-width:20rem;--purple-color:#641da3;--purple-600:#956abc;--purple-400:#c7afdd;--purple-200:#e0d2ed;--struggling:#f6993b;--below-target:#ffcf00;--in_progress:#1280f5;--prior_knowledge:#edf887;--mastery_achieved:#69d112;--inactive:#d8d8d8}route-view{max-width:1200px}@font-face{font-family:aofl-sans;font-style:normal;font-weight:300;src:url(\" + ___CSS_LOADER_URL___0___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:italic;font-weight:300;src:url(\" + ___CSS_LOADER_URL___1___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:normal;font-weight:400;src:url(\" + ___CSS_LOADER_URL___2___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:italic;font-weight:400;src:url(\" + ___CSS_LOADER_URL___3___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:normal;font-weight:600;src:url(\" + ___CSS_LOADER_URL___4___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:italic;font-weight:600;src:url(\" + ___CSS_LOADER_URL___5___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:normal;font-weight:700;src:url(\" + ___CSS_LOADER_URL___6___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:italic;font-weight:700;src:url(\" + ___CSS_LOADER_URL___7___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:normal;font-weight:300;src:url(\" + ___CSS_LOADER_URL___8___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:italic;font-weight:300;src:url(\" + ___CSS_LOADER_URL___9___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:normal;font-weight:400;src:url(\" + ___CSS_LOADER_URL___10___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:italic;font-weight:400;src:url(\" + ___CSS_LOADER_URL___11___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:normal;font-weight:600;src:url(\" + ___CSS_LOADER_URL___12___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:italic;font-weight:600;src:url(\" + ___CSS_LOADER_URL___13___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:normal;font-weight:700;src:url(\" + ___CSS_LOADER_URL___14___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:italic;font-weight:700;src:url(\" + ___CSS_LOADER_URL___15___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:normal;font-weight:800;src:url(\" + ___CSS_LOADER_URL___16___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:italic;font-weight:800;src:url(\" + ___CSS_LOADER_URL___17___ + \") format(\\\"woff2\\\")}@font-face{font-family:icomoon;src:url(\" + ___CSS_LOADER_URL___18___ + \") format(\\\"woff2\\\");font-weight:400;font-style:normal;font-display:block}[class*=\\\" ai-\\\"],[class^=ai-]{font-family:icomoon!important;speak:never;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*,:after,:before{box-sizing:border-box}html{font-family:sans-serif;line-height:1.15;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:rgba(0,0,0,0)}figcaption,main,nav,section{display:block}[tabindex=\\\"-1\\\"]:focus{outline:0!important}strong{font-weight:bolder}caption{padding-top:.75rem;padding-bottom:.75rem;color:#6c757d;text-align:left;caption-side:bottom}label{display:inline-block;margin-bottom:.8rem}button{border-radius:0}button:focus{outline:1px dotted;outline:5px auto -webkit-focus-ring-color}button,input{margin:0;font-family:inherit;font-size:inherit;line-height:inherit;overflow:visible}button{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]:not(:disabled),[type=reset]:not(:disabled),[type=submit]:not(:disabled),button:not(:disabled){cursor:pointer}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{padding:0;border-style:none}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}input[type=date],input[type=datetime-local],input[type=month],input[type=time]{-webkit-appearance:listbox}legend{display:block;width:100%;max-width:100%;padding:0;margin-bottom:.5rem;font-size:1.5rem;line-height:inherit;color:inherit;white-space:normal}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:none}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}summary{display:list-item;cursor:pointer}template{display:none}[hidden]{display:none!important}*{-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important}html{font-size:62.5%;height:100%}link-to{color:#0d6efd;text-decoration:none;background-color:transparent}link-to:hover{color:rgb(0,86.1,178.5);text-decoration:none;cursor:pointer}route-view{display:none;flex:1}site-header{background-color:#fff;display:none;position:-webkit-sticky;position:sticky;top:0;height:var(--header-height)}#main{display:none;flex:1 auto;max-width:100%;overflow:hidden;flex-direction:column;overflow-y:scroll}.loaded #main,.loaded site-header,body.loaded,route-view.loaded{display:flex}route-view.left-panel-active{padding-left:var(--sidepanel-width)}input[type=checkbox],input[type=radio]{cursor:pointer}input[type=checkbox]+label,input[type=radio]+label{cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}button,button:active{outline:none}[tabindex=\\\"0\\\"]:focus-visible,aofl-list-option:focus-visible,button[type=button]:focus-visible,collapse-button:focus-visible{outline:1px solid #e50b0a;border:1px solid #e50b0a}@keyframes progress-bar-stripes{0%{background-position:1.6rem 0}to{background-position:0 0}}.modal-container{background-color:rgba(0,0,0,.2);position:fixed;top:0;bottom:0;right:0;left:0;z-index:var(--z-index-modal)}.modal-container :first-child{overflow:auto}.modal{position:relative;display:block;height:100vh}.modal-dialog-centered.modal-dialog-scrollable{height:auto;max-height:calc(100% - 2.8rem);min-height:auto}.modal-body,.modal-content,.modal-footer,.modal-header{border:none}.modal-header{font-size:2rem;padding:2.4rem}.modal-body{padding:0 2.4rem 4.8rem}.colored-header{color:#fff}.modal-body p{text-align:left}.colored-header-primary{background-color:#0d6efd}.colored-header-secondary{background-color:#adb5bd}.colored-header-success{background-color:#3c8104}.colored-header-info{background-color:#cfe2ff}.colored-header-warning{background-color:#e17a05}.colored-header-danger{background-color:#d20a09}.colored-header-light{background-color:#f8f9fa}.colored-header-dark{background-color:#000}@keyframes spinner-border{to{transform:rotate(1turn)}}@keyframes spinner-grow{0%{transform:scale(0)}50%{opacity:1}}[hidden]{visibility:hidden!important;height:0!important;width:0!important;min-height:unset!important}@media print{*,:after,:before{text-shadow:none!important;box-shadow:none!important}@page{size:a3}}@media print{main::-webkit-scrollbar{display:none}main{-ms-overflow-style:none;scrollbar-width:none}}@page{size:A4;margin:20mm 16mm 20mm 16mm}:host{display:block}chart-element{position:relative;width:100%}\", \"\"]);\n","exports = module.exports = require(\"../../../../../node_modules/css-loader/dist/runtime/api.js\")(false);\n// Imports\nvar getUrl = require(\"../../../../../node_modules/css-loader/dist/runtime/getUrl.js\");\nvar ___CSS_LOADER_URL___0___ = getUrl(require(\"../../../../template/main/fonts/aofl-sans/aoflsans-light.woff2\"));\nvar ___CSS_LOADER_URL___1___ = getUrl(require(\"../../../../template/main/fonts/aofl-sans/aoflsans-lightit.woff2\"));\nvar ___CSS_LOADER_URL___2___ = getUrl(require(\"../../../../template/main/fonts/aofl-sans/aoflsans-reg.woff2\"));\nvar ___CSS_LOADER_URL___3___ = getUrl(require(\"../../../../template/main/fonts/aofl-sans/aoflsans-regit.woff2\"));\nvar ___CSS_LOADER_URL___4___ = getUrl(require(\"../../../../template/main/fonts/aofl-sans/aoflsans-sbold.woff2\"));\nvar ___CSS_LOADER_URL___5___ = getUrl(require(\"../../../../template/main/fonts/aofl-sans/aoflsans-sboldit.woff2\"));\nvar ___CSS_LOADER_URL___6___ = getUrl(require(\"../../../../template/main/fonts/aofl-sans/aoflsans-bold.woff2\"));\nvar ___CSS_LOADER_URL___7___ = getUrl(require(\"../../../../template/main/fonts/aofl-sans/aoflsans-boldit.woff2\"));\nvar ___CSS_LOADER_URL___8___ = getUrl(require(\"../../../../template/main/fonts/abcmouse-sans/ABCmouseSans-Light.woff2\"));\nvar ___CSS_LOADER_URL___9___ = getUrl(require(\"../../../../template/main/fonts/abcmouse-sans/ABCmouseSans-LightIt.woff2\"));\nvar ___CSS_LOADER_URL___10___ = getUrl(require(\"../../../../template/main/fonts/abcmouse-sans/ABCmouseSans-Regular.woff2\"));\nvar ___CSS_LOADER_URL___11___ = getUrl(require(\"../../../../template/main/fonts/abcmouse-sans/ABCmouseSans-RegularIt.woff2\"));\nvar ___CSS_LOADER_URL___12___ = getUrl(require(\"../../../../template/main/fonts/abcmouse-sans/ABCmouseSans-Semibold.woff2\"));\nvar ___CSS_LOADER_URL___13___ = getUrl(require(\"../../../../template/main/fonts/abcmouse-sans/ABCmouseSans-SemiboldIt.woff2\"));\nvar ___CSS_LOADER_URL___14___ = getUrl(require(\"../../../../template/main/fonts/abcmouse-sans/ABCmouseSans-Bold.woff2\"));\nvar ___CSS_LOADER_URL___15___ = getUrl(require(\"../../../../template/main/fonts/abcmouse-sans/ABCmouseSans-BoldIt.woff2\"));\nvar ___CSS_LOADER_URL___16___ = getUrl(require(\"../../../../template/main/fonts/abcmouse-sans/ABCmouseSans-ExtraBold.woff2\"));\nvar ___CSS_LOADER_URL___17___ = getUrl(require(\"../../../../template/main/fonts/abcmouse-sans/ABCmouseSans-ExtraBoldIt.woff2\"));\nvar ___CSS_LOADER_URL___18___ = getUrl(require(\"../../../../template/main/fonts/aofl-icons/icomoon.woff2?c6f21u\"));\nvar ___CSS_LOADER_URL___19___ = getUrl(require(\"./images/background.webp\"));\n// Module\nexports.push([module.id, \"/*! @aofl-component */:root{--blue:#0d6efd;--indigo:#6610f2;--purple:#8b42ca;--pink:#e83e8c;--red:#e50b0a;--orange:#e17a05;--yellow:#ffc107;--green:#3c8104;--teal:#20c997;--cyan:#53c9dc;--white:#fff;--gray:#6b6b6b;--gray-dark:#343a40;--light-green:#b1dd53;--table-border-color:#d8d8d8;--gray-100:#f2f2f2;--gray-200:#d9d9d9;--gray-300:#d8d8d8;--gray-400:#ced4da;--gray-500:#adb5bd;--gray-600:#6c757d;--gray-700:#4a4a4a;--gray-800:#343a40;--gray-900:#212529;--gray-accessibility:#6b6b6b;--primary:#0d6efd;--secondary:#adb5bd;--success:#3c8104;--info:#cfe2ff;--warning:#e17a05;--danger:#d20a09;--light:#f8f9fa;--dark:#000;--breakpoint-xxs:0;--breakpoint-xs:375px;--breakpoint-sm:576px;--breakpoint-md:768px;--breakpoint-lg:992px;--breakpoint-xl:1200px;--font-family-sans-serif:aofl-sans,Arial,Helvetica,sans-serif;--font-family-monospace:SFMono-Regular,Menlo,Monaco,Consolas,\\\"Liberation Mono\\\",\\\"Courier New\\\",monospace;--z-index-dropdown:1000;--z-index-sticky:1020;--z-index-fixed:1030;--z-index-modal-backdrop:1040;--z-index-modal:1050;--z-index-popover:1060;--z-index-tooltip:1070;--header-height:6rem;--content-height:calc(100vh - 6rem);--sidepanel-width:20rem;--purple-color:#641da3;--purple-600:#956abc;--purple-400:#c7afdd;--purple-200:#e0d2ed;--struggling:#f6993b;--below-target:#ffcf00;--in_progress:#1280f5;--prior_knowledge:#edf887;--mastery_achieved:#69d112;--inactive:#d8d8d8}route-view{max-width:1200px}@font-face{font-family:aofl-sans;font-style:normal;font-weight:300;src:url(\" + ___CSS_LOADER_URL___0___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:italic;font-weight:300;src:url(\" + ___CSS_LOADER_URL___1___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:normal;font-weight:400;src:url(\" + ___CSS_LOADER_URL___2___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:italic;font-weight:400;src:url(\" + ___CSS_LOADER_URL___3___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:normal;font-weight:600;src:url(\" + ___CSS_LOADER_URL___4___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:italic;font-weight:600;src:url(\" + ___CSS_LOADER_URL___5___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:normal;font-weight:700;src:url(\" + ___CSS_LOADER_URL___6___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:italic;font-weight:700;src:url(\" + ___CSS_LOADER_URL___7___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:normal;font-weight:300;src:url(\" + ___CSS_LOADER_URL___8___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:italic;font-weight:300;src:url(\" + ___CSS_LOADER_URL___9___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:normal;font-weight:400;src:url(\" + ___CSS_LOADER_URL___10___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:italic;font-weight:400;src:url(\" + ___CSS_LOADER_URL___11___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:normal;font-weight:600;src:url(\" + ___CSS_LOADER_URL___12___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:italic;font-weight:600;src:url(\" + ___CSS_LOADER_URL___13___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:normal;font-weight:700;src:url(\" + ___CSS_LOADER_URL___14___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:italic;font-weight:700;src:url(\" + ___CSS_LOADER_URL___15___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:normal;font-weight:800;src:url(\" + ___CSS_LOADER_URL___16___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:italic;font-weight:800;src:url(\" + ___CSS_LOADER_URL___17___ + \") format(\\\"woff2\\\")}@font-face{font-family:icomoon;src:url(\" + ___CSS_LOADER_URL___18___ + \") format(\\\"woff2\\\");font-weight:400;font-style:normal;font-display:block}[class*=\\\" ai-\\\"],[class^=ai-]{font-family:icomoon!important;speak:never;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*,:after,:before{box-sizing:border-box}html{font-family:sans-serif;line-height:1.15;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:rgba(0,0,0,0)}figcaption,footer,main,nav,section{display:block}[tabindex=\\\"-1\\\"]:focus{outline:0!important}strong{font-weight:bolder}caption{padding-top:.75rem;padding-bottom:.75rem;color:#6c757d;text-align:left;caption-side:bottom}button{border-radius:0}button:focus{outline:1px dotted;outline:5px auto -webkit-focus-ring-color}button,input{margin:0;font-family:inherit;font-size:inherit;line-height:inherit;overflow:visible}button{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]:not(:disabled),[type=reset]:not(:disabled),[type=submit]:not(:disabled),button:not(:disabled){cursor:pointer}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{padding:0;border-style:none}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}input[type=date],input[type=datetime-local],input[type=month],input[type=time]{-webkit-appearance:listbox}legend{display:block;width:100%;max-width:100%;padding:0;margin-bottom:.5rem;font-size:1.5rem;line-height:inherit;color:inherit;white-space:normal}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:none}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}summary{display:list-item;cursor:pointer}template{display:none}[hidden]{display:none!important}*{-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important}html{font-size:62.5%;height:100%}link-to{color:#0d6efd;text-decoration:none;background-color:transparent}link-to:hover{color:rgb(0,86.1,178.5);text-decoration:none;cursor:pointer}route-view{display:none;flex:1}site-header{background-color:#fff;display:none;position:-webkit-sticky;position:sticky;top:0;height:var(--header-height)}#main{display:none;flex:1 auto;max-width:100%;overflow:hidden;flex-direction:column;overflow-y:scroll}.loaded #main,.loaded site-header,body.loaded,route-view.loaded{display:flex}route-view.left-panel-active{padding-left:var(--sidepanel-width)}@media (max-width:767.98px){#content{padding-left:0!important}}input[type=checkbox],input[type=radio]{cursor:pointer}button,button:active{outline:none}[tabindex=\\\"0\\\"]:focus-visible,aofl-list-option:focus-visible,button[type=button]:focus-visible,collapse-button:focus-visible{outline:1px solid #e50b0a;border:1px solid #e50b0a}@keyframes progress-bar-stripes{0%{background-position:1.6rem 0}to{background-position:0 0}}.media{display:flex;align-items:flex-start}.modal-container{background-color:rgba(0,0,0,.2);position:fixed;top:0;bottom:0;right:0;left:0;z-index:var(--z-index-modal)}.modal-container :first-child{overflow:auto}.modal{position:relative;display:block;height:100vh}.modal-dialog-centered.modal-dialog-scrollable{height:auto;max-height:calc(100% - 2.8rem);min-height:auto}.modal-body,.modal-content,.modal-footer,.modal-header{border:none}.modal-header{font-size:2rem;padding:2.4rem}.modal-body{padding:0 2.4rem 4.8rem}.colored-header{color:#fff}.modal-body p{text-align:left}.colored-header-primary{background-color:#0d6efd}.colored-header-secondary{background-color:#adb5bd}.colored-header-success{background-color:#3c8104}.colored-header-info{background-color:#cfe2ff}.colored-header-warning{background-color:#e17a05}.colored-header-danger{background-color:#d20a09}.colored-header-light{background-color:#f8f9fa}.colored-header-dark{background-color:#000}@keyframes spinner-border{to{transform:rotate(1turn)}}@keyframes spinner-grow{0%{transform:scale(0)}50%{opacity:1}}.bg-white{background-color:#fff!important}.w-75{width:75%!important}.h-100{height:100%!important}.mb-5{margin-bottom:3rem!important}.pt-5{padding-top:3rem!important}.mx-auto{margin-right:auto!important;margin-left:auto!important}.text-center{text-align:center!important}[hidden]{visibility:hidden!important;height:0!important;width:0!important;min-height:unset!important}@media print{*,:after,:before{text-shadow:none!important;box-shadow:none!important}@page{size:a3}}@media print{main::-webkit-scrollbar{display:none}main{-ms-overflow-style:none;scrollbar-width:none}}@page{size:A4;margin:20mm 16mm 20mm 16mm}:host{display:block;background:url(\" + ___CSS_LOADER_URL___19___ + \") repeat;height:100%}\", \"\"]);\n","import {classMap} from 'lit-html/directives/class-map';\nimport {until} from 'lit-html/directives/until';\nimport '@modules/auth-context';\nimport {summaryLabels, generalLabels, generalAriaLabels} from '@modules/i18n-labels';\nimport {permissions} from '../constants-enumerate';\nimport {hasOneOfPermissions} from '@modules/permissions';\nimport {repeat} from 'lit-html/directives/repeat.js';\n\nexport default (ctx, html) => {\n const viewText = ctx.__('', 'View');\n return html`\n
\n ${repeat(ctx.summary, (item) => item.type, (item, index) => html`\n
\n
\n
\n
\n ${ctx.loading ? html`
${until(generalLabels.loading)}
` : html`

${item.qty}

`}\n

${summaryLabels[item.label] ? until(summaryLabels[item.label]) : item.label}

\n
\n
\n ${!ctx.isThirdPartyConnected ? html`\n \n \n \n `: html`\n \n \n \n `}\n ${!hasOneOfPermissions([permissions.SPONSOR, permissions.HIDE_STUDENT]) && ctx.userType === 'teacher' ? html`\n ${item.label !== 'teachers' ? html`\n \n ` : ``}\n `: html`\n \n `}\n
\n
\n
\n
\n `)}\n
\n`};\n","import {storeInstance} from '@aofl/store/dist/legacy';\nimport {deepAssign} from '@aofl/object-utils';\nimport {\n sdoNs,\n dynamicPages,\n permissions,\n} from '@modules/constants-enumerate';\n\nconst sdo = {\n namespace: sdoNs.GROUP_SUMMARIES,\n mutations: {\n\n /**\n *\n * @param {Object} payload\n * @return {Object}\n */\n init(payload) {\n return Object.assign({\n loading: true,\n summary: {},\n groupInfo: {},\n }, payload);\n },\n },\n decorators: [\n (nextState) => { // $summary\n const nextSubState = nextState[sdoNs.GROUP_SUMMARIES];\n const state = storeInstance.getState();\n const subState = state[sdoNs.GROUP_SUMMARIES];\n\n if (typeof nextSubState.$summary === 'undefined' ||\n nextSubState.summary !== subState.summary ||\n nextSubState.groupInfo !== subState.groupInfo ||\n nextState[sdoNs.SESSION].settings.tier_structure !== state[sdoNs.SESSION].settings.tier_structure) {\n const tiers = nextState[sdoNs.SESSION].settings.tier_structure.labels;\n const classLevel = nextState[sdoNs.SESSION].$classLevel;\n const $summary = [];\n const path = nextSubState.groupInfo.path + nextSubState.groupInfo.id + '.';\n if (nextSubState.summary?.groups) {\n for (let i = nextSubState.groupInfo.level + 1; i < nextState[sdoNs.SESSION].$classLevel; i++) {\n const tierLabel = tiers[i - 2];\n const summaryItem = {\n type: 'group-' + i,\n label: tierLabel,\n qty: nextSubState.summary.groups[i] || 0,\n urls: {\n create: dynamicPages.orgGroupCreate(i, path),\n manage: dynamicPages.orgGroupSearch(i, path),\n },\n permissions: [permissions.GROUP_EDIT],\n };\n if (typeof nextSubState?.summary?.groups?.[i] !== 'undefined') {\n summaryItem.qty = nextSubState.summary.groups[i];\n }\n $summary.push(summaryItem);\n }\n }\n if (nextSubState.groupInfo.level !== classLevel) {\n $summary.push({\n type: 'class',\n label: 'classrooms',\n qty: nextSubState.summary.classrooms || 0,\n urls: {\n create: dynamicPages.classroomCreate(path),\n manage: dynamicPages.classroomSearch(path),\n },\n permissions: [permissions.GROUP_EDIT],\n });\n }\n\n $summary.push({\n type: 'student',\n label: 'students',\n qty: nextSubState.summary.students?.total,\n urls: {\n create: dynamicPages.studentCreate(path),\n manage: dynamicPages.studentSearch(path),\n },\n permissions: [permissions.STUDENT_EDIT],\n });\n\n $summary.push({\n type: 'teacher',\n label: 'teachers',\n qty: nextSubState.summary.teachers,\n urls: {\n create: dynamicPages.teacherCreate(path),\n manage: dynamicPages.teacherSearch(path),\n },\n permissions: [permissions.TEACHER_EDIT],\n });\n nextState = deepAssign(nextState, sdoNs.GROUP_SUMMARIES, {$summary});\n }\n return nextState;\n },\n ],\n};\n\nstoreInstance.addState(sdo);\n","import styles from './template.css';\nimport template from './template';\nimport {AoflElement, customElement, property} from '@aofl/element';\nimport {storeInstance} from '@aofl/store/dist/legacy';\nimport {i18nMixin} from '@aofl/i18n-mixin';\nimport {ApiService} from '@modules/api-service';\nimport {sdoNs} from '@modules/constants-enumerate';\nimport '@modules/group-summaries/sdo';\nimport {mapStatePropertiesMixin} from '@aofl/map-state-properties-mixin';\nimport translations from '@modules/i18n';\n\nconst BASE_CLASSES = {\n 'dashboard-tile': true,\n 'card': true,\n 'border-top-0': true,\n 'border-right-0': true,\n 'card-border-color-left': true\n};\n\n/**\n * @summary GroupSummaries\n * @extends {AoflElement}\n */\n@customElement('group-summaries')\nclass GroupSummaries extends mapStatePropertiesMixin(i18nMixin(AoflElement)) {\n /**\n * Creates an instance of GroupSummaries.\n */\n constructor() {\n super();\n this.storeInstance = storeInstance;\n this.translations = translations;\n }\n /**\n * @readonly\n */\n static is = 'group-summaries';\n\n @property({type: Array, mapState: `${sdoNs.GROUP_SUMMARIES}.$summary`, store: storeInstance})\n summary = [];\n\n @property({type: Object, mapState: `${sdoNs.GROUP_SUMMARIES}.groupInfo`, store: storeInstance})\n groupInfo = {};\n\n @property({type: Boolean, mapState: `${sdoNs.GROUP_SUMMARIES}.loading`, store: storeInstance})\n loading = true;\n\n @property({type: Object, mapState: `${sdoNs.SESSION}.group_info`, store: storeInstance})\n sessionGroupInfo = {};\n\n @property({type: Boolean})\n isThirdPartyConnected = false;\n\n @property({type: String, attribute: false, mapState: `${sdoNs.SESSION}.type`, store: storeInstance})\n userType = '';\n\n cardClasses = [\n {\n ...BASE_CLASSES,\n 'card-border-color-primary': true\n },\n {\n ...BASE_CLASSES,\n 'card-border-color-warning': true\n },\n {\n ...BASE_CLASSES,\n 'card-border-color-danger': true\n },\n {\n ...BASE_CLASSES,\n 'card-border-color-success': true\n },\n {\n ...BASE_CLASSES,\n 'card-border-color-purple': true\n },\n {\n ...BASE_CLASSES,\n 'card-border-color-yellow': true\n },\n {\n ...BASE_CLASSES,\n 'card-border-color-info': true\n }\n ];\n\n connectedCallback() {\n super.connectedCallback();\n const state = this.storeInstance.getState();\n\n this.loadSummary();\n }\n\n async loadSummary() {\n const payload = {};\n const commits = [];\n\n if (this.groupInfo && Object.keys(this.groupInfo).length) {\n let path = this.groupInfo.path;\n let subPaths = path.split(\".\");\n let alreadyInPath = false;\n\n for (let i = 0; i < subPaths.length; i++) {\n if (subPaths[i] == this.groupInfo.id) {\n alreadyInPath = true;\n }\n }\n\n if (this.groupInfo.id && !alreadyInPath) {\n path += this.groupInfo.id + '.';\n }\n payload.path = path;\n } else {\n commits.push({\n namespace: sdoNs.GROUP_SUMMARIES,\n mutationId: 'setGroupInfo',\n payload: this.sessionGroupInfo\n });\n }\n\n const summary = await ApiService.statsSummary(payload);\n commits.push({\n namespace: sdoNs.GROUP_SUMMARIES,\n mutationId: 'setSummary',\n payload: summary\n });\n commits.push({\n namespace: sdoNs.GROUP_SUMMARIES,\n mutationId: 'setLoading',\n payload: false\n });\n this.storeInstance.commit(...commits);\n }\n\n mapStateProperties() {\n const state = this.storeInstance.getState();\n this.isThirdPartyConnected = (state[sdoNs.SESSION].$isTpRosteringConnected || this.groupInfo.is_third_party_connected);\n }\n\n disconnectedCallback() {\n super.disconnectedCallback();\n this.storeInstance.commit({namespace: sdoNs.GROUP_SUMMARIES, mutationId: 'setGroupInfo', payload: {}});\n }\n\n /**\n * @return {Object}\n */\n render() {\n return super.render({\n default: {template, styles: [styles]}\n });\n }\n}\n\nexport default GroupSummaries;\n","exports = module.exports = require(\"../../../../../node_modules/css-loader/dist/runtime/api.js\")(false);\n// Imports\nvar getUrl = require(\"../../../../../node_modules/css-loader/dist/runtime/getUrl.js\");\nvar ___CSS_LOADER_URL___0___ = getUrl(require(\"../../../../template/main/fonts/aofl-sans/aoflsans-light.woff2\"));\nvar ___CSS_LOADER_URL___1___ = getUrl(require(\"../../../../template/main/fonts/aofl-sans/aoflsans-lightit.woff2\"));\nvar ___CSS_LOADER_URL___2___ = getUrl(require(\"../../../../template/main/fonts/aofl-sans/aoflsans-reg.woff2\"));\nvar ___CSS_LOADER_URL___3___ = getUrl(require(\"../../../../template/main/fonts/aofl-sans/aoflsans-regit.woff2\"));\nvar ___CSS_LOADER_URL___4___ = getUrl(require(\"../../../../template/main/fonts/aofl-sans/aoflsans-sbold.woff2\"));\nvar ___CSS_LOADER_URL___5___ = getUrl(require(\"../../../../template/main/fonts/aofl-sans/aoflsans-sboldit.woff2\"));\nvar ___CSS_LOADER_URL___6___ = getUrl(require(\"../../../../template/main/fonts/aofl-sans/aoflsans-bold.woff2\"));\nvar ___CSS_LOADER_URL___7___ = getUrl(require(\"../../../../template/main/fonts/aofl-sans/aoflsans-boldit.woff2\"));\nvar ___CSS_LOADER_URL___8___ = getUrl(require(\"../../../../template/main/fonts/abcmouse-sans/ABCmouseSans-Light.woff2\"));\nvar ___CSS_LOADER_URL___9___ = getUrl(require(\"../../../../template/main/fonts/abcmouse-sans/ABCmouseSans-LightIt.woff2\"));\nvar ___CSS_LOADER_URL___10___ = getUrl(require(\"../../../../template/main/fonts/abcmouse-sans/ABCmouseSans-Regular.woff2\"));\nvar ___CSS_LOADER_URL___11___ = getUrl(require(\"../../../../template/main/fonts/abcmouse-sans/ABCmouseSans-RegularIt.woff2\"));\nvar ___CSS_LOADER_URL___12___ = getUrl(require(\"../../../../template/main/fonts/abcmouse-sans/ABCmouseSans-Semibold.woff2\"));\nvar ___CSS_LOADER_URL___13___ = getUrl(require(\"../../../../template/main/fonts/abcmouse-sans/ABCmouseSans-SemiboldIt.woff2\"));\nvar ___CSS_LOADER_URL___14___ = getUrl(require(\"../../../../template/main/fonts/abcmouse-sans/ABCmouseSans-Bold.woff2\"));\nvar ___CSS_LOADER_URL___15___ = getUrl(require(\"../../../../template/main/fonts/abcmouse-sans/ABCmouseSans-BoldIt.woff2\"));\nvar ___CSS_LOADER_URL___16___ = getUrl(require(\"../../../../template/main/fonts/abcmouse-sans/ABCmouseSans-ExtraBold.woff2\"));\nvar ___CSS_LOADER_URL___17___ = getUrl(require(\"../../../../template/main/fonts/abcmouse-sans/ABCmouseSans-ExtraBoldIt.woff2\"));\nvar ___CSS_LOADER_URL___18___ = getUrl(require(\"../../../../template/main/fonts/aofl-icons/icomoon.woff2?c6f21u\"));\nvar ___CSS_LOADER_URL___19___ = getUrl(require(\"./images/chevron-blue-next.webp\"));\nvar ___CSS_LOADER_URL___20___ = getUrl(require(\"./images/chevron-blue-prev.webp\"));\n// Module\nexports.push([module.id, \"/*! @aofl-component */:root{--blue:#0d6efd;--indigo:#6610f2;--purple:#8b42ca;--pink:#e83e8c;--red:#e50b0a;--orange:#e17a05;--yellow:#ffc107;--green:#3c8104;--teal:#20c997;--cyan:#53c9dc;--white:#fff;--gray:#6b6b6b;--gray-dark:#343a40;--light-green:#b1dd53;--table-border-color:#d8d8d8;--gray-100:#f2f2f2;--gray-200:#d9d9d9;--gray-300:#d8d8d8;--gray-400:#ced4da;--gray-500:#adb5bd;--gray-600:#6c757d;--gray-700:#4a4a4a;--gray-800:#343a40;--gray-900:#212529;--gray-accessibility:#6b6b6b;--primary:#0d6efd;--secondary:#adb5bd;--success:#3c8104;--info:#cfe2ff;--warning:#e17a05;--danger:#d20a09;--light:#f8f9fa;--dark:#000;--breakpoint-xxs:0;--breakpoint-xs:375px;--breakpoint-sm:576px;--breakpoint-md:768px;--breakpoint-lg:992px;--breakpoint-xl:1200px;--font-family-sans-serif:aofl-sans,Arial,Helvetica,sans-serif;--font-family-monospace:SFMono-Regular,Menlo,Monaco,Consolas,\\\"Liberation Mono\\\",\\\"Courier New\\\",monospace;--z-index-dropdown:1000;--z-index-sticky:1020;--z-index-fixed:1030;--z-index-modal-backdrop:1040;--z-index-modal:1050;--z-index-popover:1060;--z-index-tooltip:1070;--header-height:6rem;--content-height:calc(100vh - 6rem);--sidepanel-width:20rem;--purple-color:#641da3;--purple-600:#956abc;--purple-400:#c7afdd;--purple-200:#e0d2ed;--struggling:#f6993b;--below-target:#ffcf00;--in_progress:#1280f5;--prior_knowledge:#edf887;--mastery_achieved:#69d112;--inactive:#d8d8d8}route-view{max-width:1200px}@font-face{font-family:aofl-sans;font-style:normal;font-weight:300;src:url(\" + ___CSS_LOADER_URL___0___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:italic;font-weight:300;src:url(\" + ___CSS_LOADER_URL___1___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:normal;font-weight:400;src:url(\" + ___CSS_LOADER_URL___2___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:italic;font-weight:400;src:url(\" + ___CSS_LOADER_URL___3___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:normal;font-weight:600;src:url(\" + ___CSS_LOADER_URL___4___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:italic;font-weight:600;src:url(\" + ___CSS_LOADER_URL___5___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:normal;font-weight:700;src:url(\" + ___CSS_LOADER_URL___6___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:italic;font-weight:700;src:url(\" + ___CSS_LOADER_URL___7___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:normal;font-weight:300;src:url(\" + ___CSS_LOADER_URL___8___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:italic;font-weight:300;src:url(\" + ___CSS_LOADER_URL___9___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:normal;font-weight:400;src:url(\" + ___CSS_LOADER_URL___10___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:italic;font-weight:400;src:url(\" + ___CSS_LOADER_URL___11___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:normal;font-weight:600;src:url(\" + ___CSS_LOADER_URL___12___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:italic;font-weight:600;src:url(\" + ___CSS_LOADER_URL___13___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:normal;font-weight:700;src:url(\" + ___CSS_LOADER_URL___14___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:italic;font-weight:700;src:url(\" + ___CSS_LOADER_URL___15___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:normal;font-weight:800;src:url(\" + ___CSS_LOADER_URL___16___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:italic;font-weight:800;src:url(\" + ___CSS_LOADER_URL___17___ + \") format(\\\"woff2\\\")}@font-face{font-family:icomoon;src:url(\" + ___CSS_LOADER_URL___18___ + \") format(\\\"woff2\\\");font-weight:400;font-style:normal;font-display:block}[class*=\\\" ai-\\\"],[class^=ai-]{font-family:icomoon!important;speak:never;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*,:after,:before{box-sizing:border-box}html{font-family:sans-serif;line-height:1.15;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:rgba(0,0,0,0)}figcaption,main,nav,section{display:block}[tabindex=\\\"-1\\\"]:focus{outline:0!important}strong{font-weight:bolder}a{color:#0d6efd;background-color:transparent}a,a:hover{text-decoration:none}a:hover{color:rgb(0,86.1,178.5)}a:not([href]):not([tabindex]),a:not([href]):not([tabindex]):focus,a:not([href]):not([tabindex]):hover{color:inherit;text-decoration:none}a:not([href]):not([tabindex]):focus{outline:0}img{vertical-align:middle;border-style:none}caption{padding-top:.75rem;padding-bottom:.75rem;color:#6c757d;text-align:left;caption-side:bottom}button{border-radius:0}button:focus{outline:1px dotted;outline:5px auto -webkit-focus-ring-color}button,input{margin:0;font-family:inherit;font-size:inherit;line-height:inherit;overflow:visible}button{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]:not(:disabled),[type=reset]:not(:disabled),[type=submit]:not(:disabled),button:not(:disabled){cursor:pointer}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{padding:0;border-style:none}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}input[type=date],input[type=datetime-local],input[type=month],input[type=time]{-webkit-appearance:listbox}legend{display:block;width:100%;max-width:100%;padding:0;margin-bottom:.5rem;font-size:1.5rem;line-height:inherit;color:inherit;white-space:normal}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:none}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}summary{display:list-item;cursor:pointer}template{display:none}[hidden]{display:none!important}*{-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important}html{font-size:62.5%;height:100%}link-to{color:#0d6efd;text-decoration:none;background-color:transparent}link-to:hover{color:rgb(0,86.1,178.5);text-decoration:none;cursor:pointer}route-view{display:none;flex:1}site-header{background-color:#fff;display:none;position:-webkit-sticky;position:sticky;top:0;height:var(--header-height)}#main{display:none;flex:1 auto;max-width:100%;overflow:hidden;flex-direction:column;overflow-y:scroll}.loaded #main,.loaded site-header,body.loaded,route-view.loaded{display:flex}route-view.left-panel-active{padding-left:var(--sidepanel-width)}input[type=checkbox],input[type=radio]{cursor:pointer}button,button:active{outline:none}[tabindex=\\\"0\\\"]:focus-visible,a:focus-visible,aofl-list-option:focus-visible,button[type=button]:focus-visible,collapse-button:focus-visible{outline:1px solid #e50b0a;border:1px solid #e50b0a}.fade{transition:opacity .15s linear}@media (prefers-reduced-motion:reduce){.fade{transition:none}}.fade:not(.show){opacity:0}@keyframes progress-bar-stripes{0%{background-position:1.6rem 0}to{background-position:0 0}}.modal-container{background-color:rgba(0,0,0,.2);position:fixed;top:0;bottom:0;right:0;left:0;z-index:var(--z-index-modal)}.modal-container :first-child{overflow:auto}.modal{position:relative;display:block;height:100vh}.modal-dialog-centered.modal-dialog-scrollable{height:auto;max-height:calc(100% - 2.8rem);min-height:auto}.modal-body,.modal-content,.modal-footer,.modal-header{border:none}.modal-header{font-size:2rem;padding:2.4rem}.modal-body{padding:0 2.4rem 4.8rem}.colored-header{color:#fff}.modal-body p{text-align:left}.colored-header-primary{background-color:#0d6efd}.colored-header-secondary{background-color:#adb5bd}.colored-header-success{background-color:#3c8104}.colored-header-info{background-color:#cfe2ff}.colored-header-warning{background-color:#e17a05}.colored-header-danger{background-color:#d20a09}.colored-header-light{background-color:#f8f9fa}.colored-header-dark{background-color:#000}@keyframes spinner-border{to{transform:rotate(1turn)}}@keyframes spinner-grow{0%{transform:scale(0)}50%{opacity:1}}.my-2{margin-top:.5rem!important;margin-bottom:.5rem!important}.mx-3{margin-right:1rem!important;margin-left:1rem!important}.mr-4{margin-right:1.5rem!important}.ml-4{margin-left:1.5rem!important}.visible{visibility:visible!important}.invisible,[hidden]{visibility:hidden!important}[hidden]{height:0!important;width:0!important;min-height:unset!important}@media print{*,:after,:before{text-shadow:none!important;box-shadow:none!important}a:not(.btn){text-decoration:underline}img{page-break-inside:avoid}@page{size:a3}}@media print{main::-webkit-scrollbar{display:none}main{-ms-overflow-style:none;scrollbar-width:none}}@page{size:A4;margin:20mm 16mm 20mm 16mm}:host{display:block}:host img{width:100%}.carousel-image{position:relative;height:380px}.carousel-image img{position:absolute;left:0;top:0}.fade{opacity:0;transition:opacity .3s linear}.fade.in{opacity:1}.carousel-btns{display:flex;justify-content:center}.carousel-dot-btn{display:inline-block;width:2rem;height:2rem;cursor:pointer}.carousel-next{background-image:url(\" + ___CSS_LOADER_URL___19___ + \")}.carousel-next,.carousel-prev{background-repeat:no-repeat;background-position:bottom;width:2rem;height:2rem;cursor:pointer}.carousel-prev{background-image:url(\" + ___CSS_LOADER_URL___20___ + \")}.disable-user-select{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}\", \"\"]);\n","const dynamicCss = [\n '.flatpickr-calendar',\n '.open',\n '.inline',\n '.animate',\n '.static',\n '.multiMonth',\n '.flatpickr-days',\n '.flatpickr-day',\n '.dayContainer',\n '.inRange',\n '.hasWeeks ',\n '.hasTime',\n '.showTimeInput',\n '.flatpickr-time',\n '.rightMost',\n '.arrowTop',\n '.arrowBottom',\n '.flatpickr-wrapper',\n '.flatpickr-months',\n '.flatpickr-month',\n '.flatpickr-prev-month',\n '.flatpickr-next-month',\n '.numInputWrapper',\n '.arrowUp',\n '.arrowDown',\n '.flatpickr-current-month',\n '.cur-month',\n '.cur-year',\n '.flatpickr-monthDropdown-months',\n '.flatpickr-monthDropdown-month',\n '.flatpickr-weekdays',\n '.flatpickr-weekdaycontainer',\n '.flatpickr-weekday',\n '.dayContainer',\n '.flatpickr-weeks',\n '.dayContainer',\n '.prevMonthDay',\n '.nextMonthDay',\n '.today',\n '.selected',\n '.startRange',\n '.endRange',\n '.rangeMode',\n '.flatpickr-disabled',\n '.notAllowed',\n '.week',\n '.flatpickr-weekwrapper',\n '.flatpickr-innerContainer',\n '.flatpickr-rContainer',\n '.hasSeconds',\n '.time24hr',\n '.hidden',\n '.flatpickr-hour',\n '.flatpickr-minute',\n '.flatpickr-second',\n '.flatpickr-time-separator',\n '.flatpickr-am-pm',\n '.flatpickr-input',\n];\n\nexport default (ctx, html) => {\n if (ctx.inline) {\n return html``;\n }\n\n return html`\n \n
\n \n
\n \n \n \n
\n
\n
\n `;\n};\n","export var HOOKS = [\n \"onChange\",\n \"onClose\",\n \"onDayCreate\",\n \"onDestroy\",\n \"onKeyDown\",\n \"onMonthChange\",\n \"onOpen\",\n \"onParseConfig\",\n \"onReady\",\n \"onValueUpdate\",\n \"onYearChange\",\n \"onPreCalendarPosition\",\n];\nexport var defaults = {\n _disable: [],\n allowInput: false,\n allowInvalidPreload: false,\n altFormat: \"F j, Y\",\n altInput: false,\n altInputClass: \"form-control input\",\n animate: typeof window === \"object\" &&\n window.navigator.userAgent.indexOf(\"MSIE\") === -1,\n ariaDateFormat: \"F j, Y\",\n autoFillDefaultTime: true,\n clickOpens: true,\n closeOnSelect: true,\n conjunction: \", \",\n dateFormat: \"Y-m-d\",\n defaultHour: 12,\n defaultMinute: 0,\n defaultSeconds: 0,\n disable: [],\n disableMobile: false,\n enableSeconds: false,\n enableTime: false,\n errorHandler: function (err) {\n return typeof console !== \"undefined\" && console.warn(err);\n },\n getWeek: function (givenDate) {\n var date = new Date(givenDate.getTime());\n date.setHours(0, 0, 0, 0);\n date.setDate(date.getDate() + 3 - ((date.getDay() + 6) % 7));\n var week1 = new Date(date.getFullYear(), 0, 4);\n return (1 +\n Math.round(((date.getTime() - week1.getTime()) / 86400000 -\n 3 +\n ((week1.getDay() + 6) % 7)) /\n 7));\n },\n hourIncrement: 1,\n ignoredFocusElements: [],\n inline: false,\n locale: \"default\",\n minuteIncrement: 5,\n mode: \"single\",\n monthSelectorType: \"dropdown\",\n nextArrow: \"\",\n noCalendar: false,\n now: new Date(),\n onChange: [],\n onClose: [],\n onDayCreate: [],\n onDestroy: [],\n onKeyDown: [],\n onMonthChange: [],\n onOpen: [],\n onParseConfig: [],\n onReady: [],\n onValueUpdate: [],\n onYearChange: [],\n onPreCalendarPosition: [],\n plugins: [],\n position: \"auto\",\n positionElement: undefined,\n prevArrow: \"\",\n shorthandCurrentMonth: false,\n showMonths: 1,\n static: false,\n time_24hr: false,\n weekNumbers: false,\n wrap: false,\n};\n","export var english = {\n weekdays: {\n shorthand: [\"Sun\", \"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", \"Sat\"],\n longhand: [\n \"Sunday\",\n \"Monday\",\n \"Tuesday\",\n \"Wednesday\",\n \"Thursday\",\n \"Friday\",\n \"Saturday\",\n ],\n },\n months: {\n shorthand: [\n \"Jan\",\n \"Feb\",\n \"Mar\",\n \"Apr\",\n \"May\",\n \"Jun\",\n \"Jul\",\n \"Aug\",\n \"Sep\",\n \"Oct\",\n \"Nov\",\n \"Dec\",\n ],\n longhand: [\n \"January\",\n \"February\",\n \"March\",\n \"April\",\n \"May\",\n \"June\",\n \"July\",\n \"August\",\n \"September\",\n \"October\",\n \"November\",\n \"December\",\n ],\n },\n daysInMonth: [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31],\n firstDayOfWeek: 0,\n ordinal: function (nth) {\n var s = nth % 100;\n if (s > 3 && s < 21)\n return \"th\";\n switch (s % 10) {\n case 1:\n return \"st\";\n case 2:\n return \"nd\";\n case 3:\n return \"rd\";\n default:\n return \"th\";\n }\n },\n rangeSeparator: \" to \",\n weekAbbreviation: \"Wk\",\n scrollTitle: \"Scroll to increment\",\n toggleTitle: \"Click to toggle\",\n amPM: [\"AM\", \"PM\"],\n yearAriaLabel: \"Year\",\n monthAriaLabel: \"Month\",\n hourAriaLabel: \"Hour\",\n minuteAriaLabel: \"Minute\",\n time_24hr: false,\n};\nexport default english;\n","export var pad = function (number, length) {\n if (length === void 0) { length = 2; }\n return (\"000\" + number).slice(length * -1);\n};\nexport var int = function (bool) { return (bool === true ? 1 : 0); };\nexport function debounce(fn, wait) {\n var t;\n return function () {\n var _this = this;\n var args = arguments;\n clearTimeout(t);\n t = setTimeout(function () { return fn.apply(_this, args); }, wait);\n };\n}\nexport var arrayify = function (obj) {\n return obj instanceof Array ? obj : [obj];\n};\n","export function toggleClass(elem, className, bool) {\n if (bool === true)\n return elem.classList.add(className);\n elem.classList.remove(className);\n}\nexport function createElement(tag, className, content) {\n var e = window.document.createElement(tag);\n className = className || \"\";\n content = content || \"\";\n e.className = className;\n if (content !== undefined)\n e.textContent = content;\n return e;\n}\nexport function clearNode(node) {\n while (node.firstChild)\n node.removeChild(node.firstChild);\n}\nexport function findParent(node, condition) {\n if (condition(node))\n return node;\n else if (node.parentNode)\n return findParent(node.parentNode, condition);\n return undefined;\n}\nexport function createNumberInput(inputClassName, opts) {\n var wrapper = createElement(\"div\", \"numInputWrapper\"), numInput = createElement(\"input\", \"numInput \" + inputClassName), arrowUp = createElement(\"span\", \"arrowUp\"), arrowDown = createElement(\"span\", \"arrowDown\");\n if (navigator.userAgent.indexOf(\"MSIE 9.0\") === -1) {\n numInput.type = \"number\";\n }\n else {\n numInput.type = \"text\";\n numInput.pattern = \"\\\\d*\";\n }\n if (opts !== undefined)\n for (var key in opts)\n numInput.setAttribute(key, opts[key]);\n wrapper.appendChild(numInput);\n wrapper.appendChild(arrowUp);\n wrapper.appendChild(arrowDown);\n return wrapper;\n}\nexport function getEventTarget(event) {\n try {\n if (typeof event.composedPath === \"function\") {\n var path = event.composedPath();\n return path[0];\n }\n return event.target;\n }\n catch (error) {\n return event.target;\n }\n}\n","import { int, pad } from \"../utils\";\nvar doNothing = function () { return undefined; };\nexport var monthToStr = function (monthNumber, shorthand, locale) { return locale.months[shorthand ? \"shorthand\" : \"longhand\"][monthNumber]; };\nexport var revFormat = {\n D: doNothing,\n F: function (dateObj, monthName, locale) {\n dateObj.setMonth(locale.months.longhand.indexOf(monthName));\n },\n G: function (dateObj, hour) {\n dateObj.setHours((dateObj.getHours() >= 12 ? 12 : 0) + parseFloat(hour));\n },\n H: function (dateObj, hour) {\n dateObj.setHours(parseFloat(hour));\n },\n J: function (dateObj, day) {\n dateObj.setDate(parseFloat(day));\n },\n K: function (dateObj, amPM, locale) {\n dateObj.setHours((dateObj.getHours() % 12) +\n 12 * int(new RegExp(locale.amPM[1], \"i\").test(amPM)));\n },\n M: function (dateObj, shortMonth, locale) {\n dateObj.setMonth(locale.months.shorthand.indexOf(shortMonth));\n },\n S: function (dateObj, seconds) {\n dateObj.setSeconds(parseFloat(seconds));\n },\n U: function (_, unixSeconds) { return new Date(parseFloat(unixSeconds) * 1000); },\n W: function (dateObj, weekNum, locale) {\n var weekNumber = parseInt(weekNum);\n var date = new Date(dateObj.getFullYear(), 0, 2 + (weekNumber - 1) * 7, 0, 0, 0, 0);\n date.setDate(date.getDate() - date.getDay() + locale.firstDayOfWeek);\n return date;\n },\n Y: function (dateObj, year) {\n dateObj.setFullYear(parseFloat(year));\n },\n Z: function (_, ISODate) { return new Date(ISODate); },\n d: function (dateObj, day) {\n dateObj.setDate(parseFloat(day));\n },\n h: function (dateObj, hour) {\n dateObj.setHours((dateObj.getHours() >= 12 ? 12 : 0) + parseFloat(hour));\n },\n i: function (dateObj, minutes) {\n dateObj.setMinutes(parseFloat(minutes));\n },\n j: function (dateObj, day) {\n dateObj.setDate(parseFloat(day));\n },\n l: doNothing,\n m: function (dateObj, month) {\n dateObj.setMonth(parseFloat(month) - 1);\n },\n n: function (dateObj, month) {\n dateObj.setMonth(parseFloat(month) - 1);\n },\n s: function (dateObj, seconds) {\n dateObj.setSeconds(parseFloat(seconds));\n },\n u: function (_, unixMillSeconds) {\n return new Date(parseFloat(unixMillSeconds));\n },\n w: doNothing,\n y: function (dateObj, year) {\n dateObj.setFullYear(2000 + parseFloat(year));\n },\n};\nexport var tokenRegex = {\n D: \"\",\n F: \"\",\n G: \"(\\\\d\\\\d|\\\\d)\",\n H: \"(\\\\d\\\\d|\\\\d)\",\n J: \"(\\\\d\\\\d|\\\\d)\\\\w+\",\n K: \"\",\n M: \"\",\n S: \"(\\\\d\\\\d|\\\\d)\",\n U: \"(.+)\",\n W: \"(\\\\d\\\\d|\\\\d)\",\n Y: \"(\\\\d{4})\",\n Z: \"(.+)\",\n d: \"(\\\\d\\\\d|\\\\d)\",\n h: \"(\\\\d\\\\d|\\\\d)\",\n i: \"(\\\\d\\\\d|\\\\d)\",\n j: \"(\\\\d\\\\d|\\\\d)\",\n l: \"\",\n m: \"(\\\\d\\\\d|\\\\d)\",\n n: \"(\\\\d\\\\d|\\\\d)\",\n s: \"(\\\\d\\\\d|\\\\d)\",\n u: \"(.+)\",\n w: \"(\\\\d\\\\d|\\\\d)\",\n y: \"(\\\\d{2})\",\n};\nexport var formats = {\n Z: function (date) { return date.toISOString(); },\n D: function (date, locale, options) {\n return locale.weekdays.shorthand[formats.w(date, locale, options)];\n },\n F: function (date, locale, options) {\n return monthToStr(formats.n(date, locale, options) - 1, false, locale);\n },\n G: function (date, locale, options) {\n return pad(formats.h(date, locale, options));\n },\n H: function (date) { return pad(date.getHours()); },\n J: function (date, locale) {\n return locale.ordinal !== undefined\n ? date.getDate() + locale.ordinal(date.getDate())\n : date.getDate();\n },\n K: function (date, locale) { return locale.amPM[int(date.getHours() > 11)]; },\n M: function (date, locale) {\n return monthToStr(date.getMonth(), true, locale);\n },\n S: function (date) { return pad(date.getSeconds()); },\n U: function (date) { return date.getTime() / 1000; },\n W: function (date, _, options) {\n return options.getWeek(date);\n },\n Y: function (date) { return pad(date.getFullYear(), 4); },\n d: function (date) { return pad(date.getDate()); },\n h: function (date) { return (date.getHours() % 12 ? date.getHours() % 12 : 12); },\n i: function (date) { return pad(date.getMinutes()); },\n j: function (date) { return date.getDate(); },\n l: function (date, locale) {\n return locale.weekdays.longhand[date.getDay()];\n },\n m: function (date) { return pad(date.getMonth() + 1); },\n n: function (date) { return date.getMonth() + 1; },\n s: function (date) { return date.getSeconds(); },\n u: function (date) { return date.getTime(); },\n w: function (date) { return date.getDay(); },\n y: function (date) { return String(date.getFullYear()).substring(2); },\n};\n","import { tokenRegex, revFormat, formats, } from \"./formatting\";\nimport { defaults } from \"../types/options\";\nimport { english } from \"../l10n/default\";\nexport var createDateFormatter = function (_a) {\n var _b = _a.config, config = _b === void 0 ? defaults : _b, _c = _a.l10n, l10n = _c === void 0 ? english : _c, _d = _a.isMobile, isMobile = _d === void 0 ? false : _d;\n return function (dateObj, frmt, overrideLocale) {\n var locale = overrideLocale || l10n;\n if (config.formatDate !== undefined && !isMobile) {\n return config.formatDate(dateObj, frmt, locale);\n }\n return frmt\n .split(\"\")\n .map(function (c, i, arr) {\n return formats[c] && arr[i - 1] !== \"\\\\\"\n ? formats[c](dateObj, locale, config)\n : c !== \"\\\\\"\n ? c\n : \"\";\n })\n .join(\"\");\n };\n};\nexport var createDateParser = function (_a) {\n var _b = _a.config, config = _b === void 0 ? defaults : _b, _c = _a.l10n, l10n = _c === void 0 ? english : _c;\n return function (date, givenFormat, timeless, customLocale) {\n if (date !== 0 && !date)\n return undefined;\n var locale = customLocale || l10n;\n var parsedDate;\n var dateOrig = date;\n if (date instanceof Date)\n parsedDate = new Date(date.getTime());\n else if (typeof date !== \"string\" &&\n date.toFixed !== undefined)\n parsedDate = new Date(date);\n else if (typeof date === \"string\") {\n var format = givenFormat || (config || defaults).dateFormat;\n var datestr = String(date).trim();\n if (datestr === \"today\") {\n parsedDate = new Date();\n timeless = true;\n }\n else if (config && config.parseDate) {\n parsedDate = config.parseDate(date, format);\n }\n else if (/Z$/.test(datestr) ||\n /GMT$/.test(datestr)) {\n parsedDate = new Date(date);\n }\n else {\n var matched = void 0, ops = [];\n for (var i = 0, matchIndex = 0, regexStr = \"\"; i < format.length; i++) {\n var token = format[i];\n var isBackSlash = token === \"\\\\\";\n var escaped = format[i - 1] === \"\\\\\" || isBackSlash;\n if (tokenRegex[token] && !escaped) {\n regexStr += tokenRegex[token];\n var match = new RegExp(regexStr).exec(date);\n if (match && (matched = true)) {\n ops[token !== \"Y\" ? \"push\" : \"unshift\"]({\n fn: revFormat[token],\n val: match[++matchIndex],\n });\n }\n }\n else if (!isBackSlash)\n regexStr += \".\";\n }\n parsedDate =\n !config || !config.noCalendar\n ? new Date(new Date().getFullYear(), 0, 1, 0, 0, 0, 0)\n : new Date(new Date().setHours(0, 0, 0, 0));\n ops.forEach(function (_a) {\n var fn = _a.fn, val = _a.val;\n return (parsedDate = fn(parsedDate, val, locale) || parsedDate);\n });\n parsedDate = matched ? parsedDate : undefined;\n }\n }\n if (!(parsedDate instanceof Date && !isNaN(parsedDate.getTime()))) {\n config.errorHandler(new Error(\"Invalid date provided: \" + dateOrig));\n return undefined;\n }\n if (timeless === true)\n parsedDate.setHours(0, 0, 0, 0);\n return parsedDate;\n };\n};\nexport function compareDates(date1, date2, timeless) {\n if (timeless === void 0) { timeless = true; }\n if (timeless !== false) {\n return (new Date(date1.getTime()).setHours(0, 0, 0, 0) -\n new Date(date2.getTime()).setHours(0, 0, 0, 0));\n }\n return date1.getTime() - date2.getTime();\n}\nexport function compareTimes(date1, date2) {\n return (3600 * (date1.getHours() - date2.getHours()) +\n 60 * (date1.getMinutes() - date2.getMinutes()) +\n date1.getSeconds() -\n date2.getSeconds());\n}\nexport var isBetween = function (ts, ts1, ts2) {\n return ts > Math.min(ts1, ts2) && ts < Math.max(ts1, ts2);\n};\nexport var calculateSecondsSinceMidnight = function (hours, minutes, seconds) {\n return hours * 3600 + minutes * 60 + seconds;\n};\nexport var parseSeconds = function (secondsSinceMidnight) {\n var hours = Math.floor(secondsSinceMidnight / 3600), minutes = (secondsSinceMidnight - hours * 3600) / 60;\n return [hours, minutes, secondsSinceMidnight - hours * 3600 - minutes * 60];\n};\nexport var duration = {\n DAY: 86400000,\n};\nexport function getDefaultHours(config) {\n var hours = config.defaultHour;\n var minutes = config.defaultMinute;\n var seconds = config.defaultSeconds;\n if (config.minDate !== undefined) {\n var minHour = config.minDate.getHours();\n var minMinutes = config.minDate.getMinutes();\n var minSeconds = config.minDate.getSeconds();\n if (hours < minHour) {\n hours = minHour;\n }\n if (hours === minHour && minutes < minMinutes) {\n minutes = minMinutes;\n }\n if (hours === minHour && minutes === minMinutes && seconds < minSeconds)\n seconds = config.minDate.getSeconds();\n }\n if (config.maxDate !== undefined) {\n var maxHr = config.maxDate.getHours();\n var maxMinutes = config.maxDate.getMinutes();\n hours = Math.min(hours, maxHr);\n if (hours === maxHr)\n minutes = Math.min(maxMinutes, minutes);\n if (hours === maxHr && minutes === maxMinutes)\n seconds = config.maxDate.getSeconds();\n }\n return { hours: hours, minutes: minutes, seconds: seconds };\n}\n","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __spreadArrays = (this && this.__spreadArrays) || function () {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\n r[k] = a[j];\n return r;\n};\nimport { defaults as defaultOptions, HOOKS, } from \"./types/options\";\nimport English from \"./l10n/default\";\nimport { arrayify, debounce, int, pad } from \"./utils\";\nimport { clearNode, createElement, createNumberInput, findParent, toggleClass, getEventTarget, } from \"./utils/dom\";\nimport { compareDates, createDateParser, createDateFormatter, duration, isBetween, getDefaultHours, calculateSecondsSinceMidnight, parseSeconds, } from \"./utils/dates\";\nimport { tokenRegex, monthToStr } from \"./utils/formatting\";\nimport \"./utils/polyfills\";\nvar DEBOUNCED_CHANGE_MS = 300;\nfunction FlatpickrInstance(element, instanceConfig) {\n var self = {\n config: __assign(__assign({}, defaultOptions), flatpickr.defaultConfig),\n l10n: English,\n };\n self.parseDate = createDateParser({ config: self.config, l10n: self.l10n });\n self._handlers = [];\n self.pluginElements = [];\n self.loadedPlugins = [];\n self._bind = bind;\n self._setHoursFromDate = setHoursFromDate;\n self._positionCalendar = positionCalendar;\n self.changeMonth = changeMonth;\n self.changeYear = changeYear;\n self.clear = clear;\n self.close = close;\n self.onMouseOver = onMouseOver;\n self._createElement = createElement;\n self.createDay = createDay;\n self.destroy = destroy;\n self.isEnabled = isEnabled;\n self.jumpToDate = jumpToDate;\n self.updateValue = updateValue;\n self.open = open;\n self.redraw = redraw;\n self.set = set;\n self.setDate = setDate;\n self.toggle = toggle;\n function setupHelperFunctions() {\n self.utils = {\n getDaysInMonth: function (month, yr) {\n if (month === void 0) { month = self.currentMonth; }\n if (yr === void 0) { yr = self.currentYear; }\n if (month === 1 && ((yr % 4 === 0 && yr % 100 !== 0) || yr % 400 === 0))\n return 29;\n return self.l10n.daysInMonth[month];\n },\n };\n }\n function init() {\n self.element = self.input = element;\n self.isOpen = false;\n parseConfig();\n setupLocale();\n setupInputs();\n setupDates();\n setupHelperFunctions();\n if (!self.isMobile)\n build();\n bindEvents();\n if (self.selectedDates.length || self.config.noCalendar) {\n if (self.config.enableTime) {\n setHoursFromDate(self.config.noCalendar ? self.latestSelectedDateObj : undefined);\n }\n updateValue(false);\n }\n setCalendarWidth();\n var isSafari = /^((?!chrome|android).)*safari/i.test(navigator.userAgent);\n if (!self.isMobile && isSafari) {\n positionCalendar();\n }\n triggerEvent(\"onReady\");\n }\n function getClosestActiveElement() {\n var _a;\n return (((_a = self.calendarContainer) === null || _a === void 0 ? void 0 : _a.getRootNode())\n .activeElement || document.activeElement);\n }\n function bindToInstance(fn) {\n return fn.bind(self);\n }\n function setCalendarWidth() {\n var config = self.config;\n if (config.weekNumbers === false && config.showMonths === 1) {\n return;\n }\n else if (config.noCalendar !== true) {\n window.requestAnimationFrame(function () {\n if (self.calendarContainer !== undefined) {\n self.calendarContainer.style.visibility = \"hidden\";\n self.calendarContainer.style.display = \"block\";\n }\n if (self.daysContainer !== undefined) {\n var daysWidth = (self.days.offsetWidth + 1) * config.showMonths;\n self.daysContainer.style.width = daysWidth + \"px\";\n self.calendarContainer.style.width =\n daysWidth +\n (self.weekWrapper !== undefined\n ? self.weekWrapper.offsetWidth\n : 0) +\n \"px\";\n self.calendarContainer.style.removeProperty(\"visibility\");\n self.calendarContainer.style.removeProperty(\"display\");\n }\n });\n }\n }\n function updateTime(e) {\n if (self.selectedDates.length === 0) {\n var defaultDate = self.config.minDate === undefined ||\n compareDates(new Date(), self.config.minDate) >= 0\n ? new Date()\n : new Date(self.config.minDate.getTime());\n var defaults = getDefaultHours(self.config);\n defaultDate.setHours(defaults.hours, defaults.minutes, defaults.seconds, defaultDate.getMilliseconds());\n self.selectedDates = [defaultDate];\n self.latestSelectedDateObj = defaultDate;\n }\n if (e !== undefined && e.type !== \"blur\") {\n timeWrapper(e);\n }\n var prevValue = self._input.value;\n setHoursFromInputs();\n updateValue();\n if (self._input.value !== prevValue) {\n self._debouncedChange();\n }\n }\n function ampm2military(hour, amPM) {\n return (hour % 12) + 12 * int(amPM === self.l10n.amPM[1]);\n }\n function military2ampm(hour) {\n switch (hour % 24) {\n case 0:\n case 12:\n return 12;\n default:\n return hour % 12;\n }\n }\n function setHoursFromInputs() {\n if (self.hourElement === undefined || self.minuteElement === undefined)\n return;\n var hours = (parseInt(self.hourElement.value.slice(-2), 10) || 0) % 24, minutes = (parseInt(self.minuteElement.value, 10) || 0) % 60, seconds = self.secondElement !== undefined\n ? (parseInt(self.secondElement.value, 10) || 0) % 60\n : 0;\n if (self.amPM !== undefined) {\n hours = ampm2military(hours, self.amPM.textContent);\n }\n var limitMinHours = self.config.minTime !== undefined ||\n (self.config.minDate &&\n self.minDateHasTime &&\n self.latestSelectedDateObj &&\n compareDates(self.latestSelectedDateObj, self.config.minDate, true) ===\n 0);\n var limitMaxHours = self.config.maxTime !== undefined ||\n (self.config.maxDate &&\n self.maxDateHasTime &&\n self.latestSelectedDateObj &&\n compareDates(self.latestSelectedDateObj, self.config.maxDate, true) ===\n 0);\n if (self.config.maxTime !== undefined &&\n self.config.minTime !== undefined &&\n self.config.minTime > self.config.maxTime) {\n var minBound = calculateSecondsSinceMidnight(self.config.minTime.getHours(), self.config.minTime.getMinutes(), self.config.minTime.getSeconds());\n var maxBound = calculateSecondsSinceMidnight(self.config.maxTime.getHours(), self.config.maxTime.getMinutes(), self.config.maxTime.getSeconds());\n var currentTime = calculateSecondsSinceMidnight(hours, minutes, seconds);\n if (currentTime > maxBound && currentTime < minBound) {\n var result = parseSeconds(minBound);\n hours = result[0];\n minutes = result[1];\n seconds = result[2];\n }\n }\n else {\n if (limitMaxHours) {\n var maxTime = self.config.maxTime !== undefined\n ? self.config.maxTime\n : self.config.maxDate;\n hours = Math.min(hours, maxTime.getHours());\n if (hours === maxTime.getHours())\n minutes = Math.min(minutes, maxTime.getMinutes());\n if (minutes === maxTime.getMinutes())\n seconds = Math.min(seconds, maxTime.getSeconds());\n }\n if (limitMinHours) {\n var minTime = self.config.minTime !== undefined\n ? self.config.minTime\n : self.config.minDate;\n hours = Math.max(hours, minTime.getHours());\n if (hours === minTime.getHours() && minutes < minTime.getMinutes())\n minutes = minTime.getMinutes();\n if (minutes === minTime.getMinutes())\n seconds = Math.max(seconds, minTime.getSeconds());\n }\n }\n setHours(hours, minutes, seconds);\n }\n function setHoursFromDate(dateObj) {\n var date = dateObj || self.latestSelectedDateObj;\n if (date && date instanceof Date) {\n setHours(date.getHours(), date.getMinutes(), date.getSeconds());\n }\n }\n function setHours(hours, minutes, seconds) {\n if (self.latestSelectedDateObj !== undefined) {\n self.latestSelectedDateObj.setHours(hours % 24, minutes, seconds || 0, 0);\n }\n if (!self.hourElement || !self.minuteElement || self.isMobile)\n return;\n self.hourElement.value = pad(!self.config.time_24hr\n ? ((12 + hours) % 12) + 12 * int(hours % 12 === 0)\n : hours);\n self.minuteElement.value = pad(minutes);\n if (self.amPM !== undefined)\n self.amPM.textContent = self.l10n.amPM[int(hours >= 12)];\n if (self.secondElement !== undefined)\n self.secondElement.value = pad(seconds);\n }\n function onYearInput(event) {\n var eventTarget = getEventTarget(event);\n var year = parseInt(eventTarget.value) + (event.delta || 0);\n if (year / 1000 > 1 ||\n (event.key === \"Enter\" && !/[^\\d]/.test(year.toString()))) {\n changeYear(year);\n }\n }\n function bind(element, event, handler, options) {\n if (event instanceof Array)\n return event.forEach(function (ev) { return bind(element, ev, handler, options); });\n if (element instanceof Array)\n return element.forEach(function (el) { return bind(el, event, handler, options); });\n element.addEventListener(event, handler, options);\n self._handlers.push({\n remove: function () { return element.removeEventListener(event, handler, options); },\n });\n }\n function triggerChange() {\n triggerEvent(\"onChange\");\n }\n function bindEvents() {\n if (self.config.wrap) {\n [\"open\", \"close\", \"toggle\", \"clear\"].forEach(function (evt) {\n Array.prototype.forEach.call(self.element.querySelectorAll(\"[data-\" + evt + \"]\"), function (el) {\n return bind(el, \"click\", self[evt]);\n });\n });\n }\n if (self.isMobile) {\n setupMobile();\n return;\n }\n var debouncedResize = debounce(onResize, 50);\n self._debouncedChange = debounce(triggerChange, DEBOUNCED_CHANGE_MS);\n if (self.daysContainer && !/iPhone|iPad|iPod/i.test(navigator.userAgent))\n bind(self.daysContainer, \"mouseover\", function (e) {\n if (self.config.mode === \"range\")\n onMouseOver(getEventTarget(e));\n });\n bind(self._input, \"keydown\", onKeyDown);\n if (self.calendarContainer !== undefined) {\n bind(self.calendarContainer, \"keydown\", onKeyDown);\n }\n if (!self.config.inline && !self.config.static)\n bind(window, \"resize\", debouncedResize);\n if (window.ontouchstart !== undefined)\n bind(window.document, \"touchstart\", documentClick);\n else\n bind(window.document, \"mousedown\", documentClick);\n bind(window.document, \"focus\", documentClick, { capture: true });\n if (self.config.clickOpens === true) {\n bind(self._input, \"focus\", self.open);\n bind(self._input, \"click\", self.open);\n }\n if (self.daysContainer !== undefined) {\n bind(self.monthNav, \"click\", onMonthNavClick);\n bind(self.monthNav, [\"keyup\", \"increment\"], onYearInput);\n bind(self.daysContainer, \"click\", selectDate);\n }\n if (self.timeContainer !== undefined &&\n self.minuteElement !== undefined &&\n self.hourElement !== undefined) {\n var selText = function (e) {\n return getEventTarget(e).select();\n };\n bind(self.timeContainer, [\"increment\"], updateTime);\n bind(self.timeContainer, \"blur\", updateTime, { capture: true });\n bind(self.timeContainer, \"click\", timeIncrement);\n bind([self.hourElement, self.minuteElement], [\"focus\", \"click\"], selText);\n if (self.secondElement !== undefined)\n bind(self.secondElement, \"focus\", function () { return self.secondElement && self.secondElement.select(); });\n if (self.amPM !== undefined) {\n bind(self.amPM, \"click\", function (e) {\n updateTime(e);\n });\n }\n }\n if (self.config.allowInput) {\n bind(self._input, \"blur\", onBlur);\n }\n }\n function jumpToDate(jumpDate, triggerChange) {\n var jumpTo = jumpDate !== undefined\n ? self.parseDate(jumpDate)\n : self.latestSelectedDateObj ||\n (self.config.minDate && self.config.minDate > self.now\n ? self.config.minDate\n : self.config.maxDate && self.config.maxDate < self.now\n ? self.config.maxDate\n : self.now);\n var oldYear = self.currentYear;\n var oldMonth = self.currentMonth;\n try {\n if (jumpTo !== undefined) {\n self.currentYear = jumpTo.getFullYear();\n self.currentMonth = jumpTo.getMonth();\n }\n }\n catch (e) {\n e.message = \"Invalid date supplied: \" + jumpTo;\n self.config.errorHandler(e);\n }\n if (triggerChange && self.currentYear !== oldYear) {\n triggerEvent(\"onYearChange\");\n buildMonthSwitch();\n }\n if (triggerChange &&\n (self.currentYear !== oldYear || self.currentMonth !== oldMonth)) {\n triggerEvent(\"onMonthChange\");\n }\n self.redraw();\n }\n function timeIncrement(e) {\n var eventTarget = getEventTarget(e);\n if (~eventTarget.className.indexOf(\"arrow\"))\n incrementNumInput(e, eventTarget.classList.contains(\"arrowUp\") ? 1 : -1);\n }\n function incrementNumInput(e, delta, inputElem) {\n var target = e && getEventTarget(e);\n var input = inputElem ||\n (target && target.parentNode && target.parentNode.firstChild);\n var event = createEvent(\"increment\");\n event.delta = delta;\n input && input.dispatchEvent(event);\n }\n function build() {\n var fragment = window.document.createDocumentFragment();\n self.calendarContainer = createElement(\"div\", \"flatpickr-calendar\");\n self.calendarContainer.tabIndex = -1;\n if (!self.config.noCalendar) {\n fragment.appendChild(buildMonthNav());\n self.innerContainer = createElement(\"div\", \"flatpickr-innerContainer\");\n if (self.config.weekNumbers) {\n var _a = buildWeeks(), weekWrapper = _a.weekWrapper, weekNumbers = _a.weekNumbers;\n self.innerContainer.appendChild(weekWrapper);\n self.weekNumbers = weekNumbers;\n self.weekWrapper = weekWrapper;\n }\n self.rContainer = createElement(\"div\", \"flatpickr-rContainer\");\n self.rContainer.appendChild(buildWeekdays());\n if (!self.daysContainer) {\n self.daysContainer = createElement(\"div\", \"flatpickr-days\");\n self.daysContainer.tabIndex = -1;\n }\n buildDays();\n self.rContainer.appendChild(self.daysContainer);\n self.innerContainer.appendChild(self.rContainer);\n fragment.appendChild(self.innerContainer);\n }\n if (self.config.enableTime) {\n fragment.appendChild(buildTime());\n }\n toggleClass(self.calendarContainer, \"rangeMode\", self.config.mode === \"range\");\n toggleClass(self.calendarContainer, \"animate\", self.config.animate === true);\n toggleClass(self.calendarContainer, \"multiMonth\", self.config.showMonths > 1);\n self.calendarContainer.appendChild(fragment);\n var customAppend = self.config.appendTo !== undefined &&\n self.config.appendTo.nodeType !== undefined;\n if (self.config.inline || self.config.static) {\n self.calendarContainer.classList.add(self.config.inline ? \"inline\" : \"static\");\n if (self.config.inline) {\n if (!customAppend && self.element.parentNode)\n self.element.parentNode.insertBefore(self.calendarContainer, self._input.nextSibling);\n else if (self.config.appendTo !== undefined)\n self.config.appendTo.appendChild(self.calendarContainer);\n }\n if (self.config.static) {\n var wrapper = createElement(\"div\", \"flatpickr-wrapper\");\n if (self.element.parentNode)\n self.element.parentNode.insertBefore(wrapper, self.element);\n wrapper.appendChild(self.element);\n if (self.altInput)\n wrapper.appendChild(self.altInput);\n wrapper.appendChild(self.calendarContainer);\n }\n }\n if (!self.config.static && !self.config.inline)\n (self.config.appendTo !== undefined\n ? self.config.appendTo\n : window.document.body).appendChild(self.calendarContainer);\n }\n function createDay(className, date, _dayNumber, i) {\n var dateIsEnabled = isEnabled(date, true), dayElement = createElement(\"span\", className, date.getDate().toString());\n dayElement.dateObj = date;\n dayElement.$i = i;\n dayElement.setAttribute(\"aria-label\", self.formatDate(date, self.config.ariaDateFormat));\n if (className.indexOf(\"hidden\") === -1 &&\n compareDates(date, self.now) === 0) {\n self.todayDateElem = dayElement;\n dayElement.classList.add(\"today\");\n dayElement.setAttribute(\"aria-current\", \"date\");\n }\n if (dateIsEnabled) {\n dayElement.tabIndex = -1;\n if (isDateSelected(date)) {\n dayElement.classList.add(\"selected\");\n self.selectedDateElem = dayElement;\n if (self.config.mode === \"range\") {\n toggleClass(dayElement, \"startRange\", self.selectedDates[0] &&\n compareDates(date, self.selectedDates[0], true) === 0);\n toggleClass(dayElement, \"endRange\", self.selectedDates[1] &&\n compareDates(date, self.selectedDates[1], true) === 0);\n if (className === \"nextMonthDay\")\n dayElement.classList.add(\"inRange\");\n }\n }\n }\n else {\n dayElement.classList.add(\"flatpickr-disabled\");\n }\n if (self.config.mode === \"range\") {\n if (isDateInRange(date) && !isDateSelected(date))\n dayElement.classList.add(\"inRange\");\n }\n if (self.weekNumbers &&\n self.config.showMonths === 1 &&\n className !== \"prevMonthDay\" &&\n i % 7 === 6) {\n self.weekNumbers.insertAdjacentHTML(\"beforeend\", \"\" + self.config.getWeek(date) + \"\");\n }\n triggerEvent(\"onDayCreate\", dayElement);\n return dayElement;\n }\n function focusOnDayElem(targetNode) {\n targetNode.focus();\n if (self.config.mode === \"range\")\n onMouseOver(targetNode);\n }\n function getFirstAvailableDay(delta) {\n var startMonth = delta > 0 ? 0 : self.config.showMonths - 1;\n var endMonth = delta > 0 ? self.config.showMonths : -1;\n for (var m = startMonth; m != endMonth; m += delta) {\n var month = self.daysContainer.children[m];\n var startIndex = delta > 0 ? 0 : month.children.length - 1;\n var endIndex = delta > 0 ? month.children.length : -1;\n for (var i = startIndex; i != endIndex; i += delta) {\n var c = month.children[i];\n if (c.className.indexOf(\"hidden\") === -1 && isEnabled(c.dateObj))\n return c;\n }\n }\n return undefined;\n }\n function getNextAvailableDay(current, delta) {\n var givenMonth = current.className.indexOf(\"Month\") === -1\n ? current.dateObj.getMonth()\n : self.currentMonth;\n var endMonth = delta > 0 ? self.config.showMonths : -1;\n var loopDelta = delta > 0 ? 1 : -1;\n for (var m = givenMonth - self.currentMonth; m != endMonth; m += loopDelta) {\n var month = self.daysContainer.children[m];\n var startIndex = givenMonth - self.currentMonth === m\n ? current.$i + delta\n : delta < 0\n ? month.children.length - 1\n : 0;\n var numMonthDays = month.children.length;\n for (var i = startIndex; i >= 0 && i < numMonthDays && i != (delta > 0 ? numMonthDays : -1); i += loopDelta) {\n var c = month.children[i];\n if (c.className.indexOf(\"hidden\") === -1 &&\n isEnabled(c.dateObj) &&\n Math.abs(current.$i - i) >= Math.abs(delta))\n return focusOnDayElem(c);\n }\n }\n self.changeMonth(loopDelta);\n focusOnDay(getFirstAvailableDay(loopDelta), 0);\n return undefined;\n }\n function focusOnDay(current, offset) {\n var activeElement = getClosestActiveElement();\n var dayFocused = isInView(activeElement || document.body);\n var startElem = current !== undefined\n ? current\n : dayFocused\n ? activeElement\n : self.selectedDateElem !== undefined && isInView(self.selectedDateElem)\n ? self.selectedDateElem\n : self.todayDateElem !== undefined && isInView(self.todayDateElem)\n ? self.todayDateElem\n : getFirstAvailableDay(offset > 0 ? 1 : -1);\n if (startElem === undefined) {\n self._input.focus();\n }\n else if (!dayFocused) {\n focusOnDayElem(startElem);\n }\n else {\n getNextAvailableDay(startElem, offset);\n }\n }\n function buildMonthDays(year, month) {\n var firstOfMonth = (new Date(year, month, 1).getDay() - self.l10n.firstDayOfWeek + 7) % 7;\n var prevMonthDays = self.utils.getDaysInMonth((month - 1 + 12) % 12, year);\n var daysInMonth = self.utils.getDaysInMonth(month, year), days = window.document.createDocumentFragment(), isMultiMonth = self.config.showMonths > 1, prevMonthDayClass = isMultiMonth ? \"prevMonthDay hidden\" : \"prevMonthDay\", nextMonthDayClass = isMultiMonth ? \"nextMonthDay hidden\" : \"nextMonthDay\";\n var dayNumber = prevMonthDays + 1 - firstOfMonth, dayIndex = 0;\n for (; dayNumber <= prevMonthDays; dayNumber++, dayIndex++) {\n days.appendChild(createDay(\"flatpickr-day \" + prevMonthDayClass, new Date(year, month - 1, dayNumber), dayNumber, dayIndex));\n }\n for (dayNumber = 1; dayNumber <= daysInMonth; dayNumber++, dayIndex++) {\n days.appendChild(createDay(\"flatpickr-day\", new Date(year, month, dayNumber), dayNumber, dayIndex));\n }\n for (var dayNum = daysInMonth + 1; dayNum <= 42 - firstOfMonth &&\n (self.config.showMonths === 1 || dayIndex % 7 !== 0); dayNum++, dayIndex++) {\n days.appendChild(createDay(\"flatpickr-day \" + nextMonthDayClass, new Date(year, month + 1, dayNum % daysInMonth), dayNum, dayIndex));\n }\n var dayContainer = createElement(\"div\", \"dayContainer\");\n dayContainer.appendChild(days);\n return dayContainer;\n }\n function buildDays() {\n if (self.daysContainer === undefined) {\n return;\n }\n clearNode(self.daysContainer);\n if (self.weekNumbers)\n clearNode(self.weekNumbers);\n var frag = document.createDocumentFragment();\n for (var i = 0; i < self.config.showMonths; i++) {\n var d = new Date(self.currentYear, self.currentMonth, 1);\n d.setMonth(self.currentMonth + i);\n frag.appendChild(buildMonthDays(d.getFullYear(), d.getMonth()));\n }\n self.daysContainer.appendChild(frag);\n self.days = self.daysContainer.firstChild;\n if (self.config.mode === \"range\" && self.selectedDates.length === 1) {\n onMouseOver();\n }\n }\n function buildMonthSwitch() {\n if (self.config.showMonths > 1 ||\n self.config.monthSelectorType !== \"dropdown\")\n return;\n var shouldBuildMonth = function (month) {\n if (self.config.minDate !== undefined &&\n self.currentYear === self.config.minDate.getFullYear() &&\n month < self.config.minDate.getMonth()) {\n return false;\n }\n return !(self.config.maxDate !== undefined &&\n self.currentYear === self.config.maxDate.getFullYear() &&\n month > self.config.maxDate.getMonth());\n };\n self.monthsDropdownContainer.tabIndex = -1;\n self.monthsDropdownContainer.innerHTML = \"\";\n for (var i = 0; i < 12; i++) {\n if (!shouldBuildMonth(i))\n continue;\n var month = createElement(\"option\", \"flatpickr-monthDropdown-month\");\n month.value = new Date(self.currentYear, i).getMonth().toString();\n month.textContent = monthToStr(i, self.config.shorthandCurrentMonth, self.l10n);\n month.tabIndex = -1;\n if (self.currentMonth === i) {\n month.selected = true;\n }\n self.monthsDropdownContainer.appendChild(month);\n }\n }\n function buildMonth() {\n var container = createElement(\"div\", \"flatpickr-month\");\n var monthNavFragment = window.document.createDocumentFragment();\n var monthElement;\n if (self.config.showMonths > 1 ||\n self.config.monthSelectorType === \"static\") {\n monthElement = createElement(\"span\", \"cur-month\");\n }\n else {\n self.monthsDropdownContainer = createElement(\"select\", \"flatpickr-monthDropdown-months\");\n self.monthsDropdownContainer.setAttribute(\"aria-label\", self.l10n.monthAriaLabel);\n bind(self.monthsDropdownContainer, \"change\", function (e) {\n var target = getEventTarget(e);\n var selectedMonth = parseInt(target.value, 10);\n self.changeMonth(selectedMonth - self.currentMonth);\n triggerEvent(\"onMonthChange\");\n });\n buildMonthSwitch();\n monthElement = self.monthsDropdownContainer;\n }\n var yearInput = createNumberInput(\"cur-year\", { tabindex: \"-1\" });\n var yearElement = yearInput.getElementsByTagName(\"input\")[0];\n yearElement.setAttribute(\"aria-label\", self.l10n.yearAriaLabel);\n if (self.config.minDate) {\n yearElement.setAttribute(\"min\", self.config.minDate.getFullYear().toString());\n }\n if (self.config.maxDate) {\n yearElement.setAttribute(\"max\", self.config.maxDate.getFullYear().toString());\n yearElement.disabled =\n !!self.config.minDate &&\n self.config.minDate.getFullYear() === self.config.maxDate.getFullYear();\n }\n var currentMonth = createElement(\"div\", \"flatpickr-current-month\");\n currentMonth.appendChild(monthElement);\n currentMonth.appendChild(yearInput);\n monthNavFragment.appendChild(currentMonth);\n container.appendChild(monthNavFragment);\n return {\n container: container,\n yearElement: yearElement,\n monthElement: monthElement,\n };\n }\n function buildMonths() {\n clearNode(self.monthNav);\n self.monthNav.appendChild(self.prevMonthNav);\n if (self.config.showMonths) {\n self.yearElements = [];\n self.monthElements = [];\n }\n for (var m = self.config.showMonths; m--;) {\n var month = buildMonth();\n self.yearElements.push(month.yearElement);\n self.monthElements.push(month.monthElement);\n self.monthNav.appendChild(month.container);\n }\n self.monthNav.appendChild(self.nextMonthNav);\n }\n function buildMonthNav() {\n self.monthNav = createElement(\"div\", \"flatpickr-months\");\n self.yearElements = [];\n self.monthElements = [];\n self.prevMonthNav = createElement(\"span\", \"flatpickr-prev-month\");\n self.prevMonthNav.innerHTML = self.config.prevArrow;\n self.nextMonthNav = createElement(\"span\", \"flatpickr-next-month\");\n self.nextMonthNav.innerHTML = self.config.nextArrow;\n buildMonths();\n Object.defineProperty(self, \"_hidePrevMonthArrow\", {\n get: function () { return self.__hidePrevMonthArrow; },\n set: function (bool) {\n if (self.__hidePrevMonthArrow !== bool) {\n toggleClass(self.prevMonthNav, \"flatpickr-disabled\", bool);\n self.__hidePrevMonthArrow = bool;\n }\n },\n });\n Object.defineProperty(self, \"_hideNextMonthArrow\", {\n get: function () { return self.__hideNextMonthArrow; },\n set: function (bool) {\n if (self.__hideNextMonthArrow !== bool) {\n toggleClass(self.nextMonthNav, \"flatpickr-disabled\", bool);\n self.__hideNextMonthArrow = bool;\n }\n },\n });\n self.currentYearElement = self.yearElements[0];\n updateNavigationCurrentMonth();\n return self.monthNav;\n }\n function buildTime() {\n self.calendarContainer.classList.add(\"hasTime\");\n if (self.config.noCalendar)\n self.calendarContainer.classList.add(\"noCalendar\");\n var defaults = getDefaultHours(self.config);\n self.timeContainer = createElement(\"div\", \"flatpickr-time\");\n self.timeContainer.tabIndex = -1;\n var separator = createElement(\"span\", \"flatpickr-time-separator\", \":\");\n var hourInput = createNumberInput(\"flatpickr-hour\", {\n \"aria-label\": self.l10n.hourAriaLabel,\n });\n self.hourElement = hourInput.getElementsByTagName(\"input\")[0];\n var minuteInput = createNumberInput(\"flatpickr-minute\", {\n \"aria-label\": self.l10n.minuteAriaLabel,\n });\n self.minuteElement = minuteInput.getElementsByTagName(\"input\")[0];\n self.hourElement.tabIndex = self.minuteElement.tabIndex = -1;\n self.hourElement.value = pad(self.latestSelectedDateObj\n ? self.latestSelectedDateObj.getHours()\n : self.config.time_24hr\n ? defaults.hours\n : military2ampm(defaults.hours));\n self.minuteElement.value = pad(self.latestSelectedDateObj\n ? self.latestSelectedDateObj.getMinutes()\n : defaults.minutes);\n self.hourElement.setAttribute(\"step\", self.config.hourIncrement.toString());\n self.minuteElement.setAttribute(\"step\", self.config.minuteIncrement.toString());\n self.hourElement.setAttribute(\"min\", self.config.time_24hr ? \"0\" : \"1\");\n self.hourElement.setAttribute(\"max\", self.config.time_24hr ? \"23\" : \"12\");\n self.hourElement.setAttribute(\"maxlength\", \"2\");\n self.minuteElement.setAttribute(\"min\", \"0\");\n self.minuteElement.setAttribute(\"max\", \"59\");\n self.minuteElement.setAttribute(\"maxlength\", \"2\");\n self.timeContainer.appendChild(hourInput);\n self.timeContainer.appendChild(separator);\n self.timeContainer.appendChild(minuteInput);\n if (self.config.time_24hr)\n self.timeContainer.classList.add(\"time24hr\");\n if (self.config.enableSeconds) {\n self.timeContainer.classList.add(\"hasSeconds\");\n var secondInput = createNumberInput(\"flatpickr-second\");\n self.secondElement = secondInput.getElementsByTagName(\"input\")[0];\n self.secondElement.value = pad(self.latestSelectedDateObj\n ? self.latestSelectedDateObj.getSeconds()\n : defaults.seconds);\n self.secondElement.setAttribute(\"step\", self.minuteElement.getAttribute(\"step\"));\n self.secondElement.setAttribute(\"min\", \"0\");\n self.secondElement.setAttribute(\"max\", \"59\");\n self.secondElement.setAttribute(\"maxlength\", \"2\");\n self.timeContainer.appendChild(createElement(\"span\", \"flatpickr-time-separator\", \":\"));\n self.timeContainer.appendChild(secondInput);\n }\n if (!self.config.time_24hr) {\n self.amPM = createElement(\"span\", \"flatpickr-am-pm\", self.l10n.amPM[int((self.latestSelectedDateObj\n ? self.hourElement.value\n : self.config.defaultHour) > 11)]);\n self.amPM.title = self.l10n.toggleTitle;\n self.amPM.tabIndex = -1;\n self.timeContainer.appendChild(self.amPM);\n }\n return self.timeContainer;\n }\n function buildWeekdays() {\n if (!self.weekdayContainer)\n self.weekdayContainer = createElement(\"div\", \"flatpickr-weekdays\");\n else\n clearNode(self.weekdayContainer);\n for (var i = self.config.showMonths; i--;) {\n var container = createElement(\"div\", \"flatpickr-weekdaycontainer\");\n self.weekdayContainer.appendChild(container);\n }\n updateWeekdays();\n return self.weekdayContainer;\n }\n function updateWeekdays() {\n if (!self.weekdayContainer) {\n return;\n }\n var firstDayOfWeek = self.l10n.firstDayOfWeek;\n var weekdays = __spreadArrays(self.l10n.weekdays.shorthand);\n if (firstDayOfWeek > 0 && firstDayOfWeek < weekdays.length) {\n weekdays = __spreadArrays(weekdays.splice(firstDayOfWeek, weekdays.length), weekdays.splice(0, firstDayOfWeek));\n }\n for (var i = self.config.showMonths; i--;) {\n self.weekdayContainer.children[i].innerHTML = \"\\n \\n \" + weekdays.join(\"\") + \"\\n \\n \";\n }\n }\n function buildWeeks() {\n self.calendarContainer.classList.add(\"hasWeeks\");\n var weekWrapper = createElement(\"div\", \"flatpickr-weekwrapper\");\n weekWrapper.appendChild(createElement(\"span\", \"flatpickr-weekday\", self.l10n.weekAbbreviation));\n var weekNumbers = createElement(\"div\", \"flatpickr-weeks\");\n weekWrapper.appendChild(weekNumbers);\n return {\n weekWrapper: weekWrapper,\n weekNumbers: weekNumbers,\n };\n }\n function changeMonth(value, isOffset) {\n if (isOffset === void 0) { isOffset = true; }\n var delta = isOffset ? value : value - self.currentMonth;\n if ((delta < 0 && self._hidePrevMonthArrow === true) ||\n (delta > 0 && self._hideNextMonthArrow === true))\n return;\n self.currentMonth += delta;\n if (self.currentMonth < 0 || self.currentMonth > 11) {\n self.currentYear += self.currentMonth > 11 ? 1 : -1;\n self.currentMonth = (self.currentMonth + 12) % 12;\n triggerEvent(\"onYearChange\");\n buildMonthSwitch();\n }\n buildDays();\n triggerEvent(\"onMonthChange\");\n updateNavigationCurrentMonth();\n }\n function clear(triggerChangeEvent, toInitial) {\n if (triggerChangeEvent === void 0) { triggerChangeEvent = true; }\n if (toInitial === void 0) { toInitial = true; }\n self.input.value = \"\";\n if (self.altInput !== undefined)\n self.altInput.value = \"\";\n if (self.mobileInput !== undefined)\n self.mobileInput.value = \"\";\n self.selectedDates = [];\n self.latestSelectedDateObj = undefined;\n if (toInitial === true) {\n self.currentYear = self._initialDate.getFullYear();\n self.currentMonth = self._initialDate.getMonth();\n }\n if (self.config.enableTime === true) {\n var _a = getDefaultHours(self.config), hours = _a.hours, minutes = _a.minutes, seconds = _a.seconds;\n setHours(hours, minutes, seconds);\n }\n self.redraw();\n if (triggerChangeEvent)\n triggerEvent(\"onChange\");\n }\n function close() {\n self.isOpen = false;\n if (!self.isMobile) {\n if (self.calendarContainer !== undefined) {\n self.calendarContainer.classList.remove(\"open\");\n }\n if (self._input !== undefined) {\n self._input.classList.remove(\"active\");\n }\n }\n triggerEvent(\"onClose\");\n }\n function destroy() {\n if (self.config !== undefined)\n triggerEvent(\"onDestroy\");\n for (var i = self._handlers.length; i--;) {\n self._handlers[i].remove();\n }\n self._handlers = [];\n if (self.mobileInput) {\n if (self.mobileInput.parentNode)\n self.mobileInput.parentNode.removeChild(self.mobileInput);\n self.mobileInput = undefined;\n }\n else if (self.calendarContainer && self.calendarContainer.parentNode) {\n if (self.config.static && self.calendarContainer.parentNode) {\n var wrapper = self.calendarContainer.parentNode;\n wrapper.lastChild && wrapper.removeChild(wrapper.lastChild);\n if (wrapper.parentNode) {\n while (wrapper.firstChild)\n wrapper.parentNode.insertBefore(wrapper.firstChild, wrapper);\n wrapper.parentNode.removeChild(wrapper);\n }\n }\n else\n self.calendarContainer.parentNode.removeChild(self.calendarContainer);\n }\n if (self.altInput) {\n self.input.type = \"text\";\n if (self.altInput.parentNode)\n self.altInput.parentNode.removeChild(self.altInput);\n delete self.altInput;\n }\n if (self.input) {\n self.input.type = self.input._type;\n self.input.classList.remove(\"flatpickr-input\");\n self.input.removeAttribute(\"readonly\");\n }\n [\n \"_showTimeInput\",\n \"latestSelectedDateObj\",\n \"_hideNextMonthArrow\",\n \"_hidePrevMonthArrow\",\n \"__hideNextMonthArrow\",\n \"__hidePrevMonthArrow\",\n \"isMobile\",\n \"isOpen\",\n \"selectedDateElem\",\n \"minDateHasTime\",\n \"maxDateHasTime\",\n \"days\",\n \"daysContainer\",\n \"_input\",\n \"_positionElement\",\n \"innerContainer\",\n \"rContainer\",\n \"monthNav\",\n \"todayDateElem\",\n \"calendarContainer\",\n \"weekdayContainer\",\n \"prevMonthNav\",\n \"nextMonthNav\",\n \"monthsDropdownContainer\",\n \"currentMonthElement\",\n \"currentYearElement\",\n \"navigationCurrentMonth\",\n \"selectedDateElem\",\n \"config\",\n ].forEach(function (k) {\n try {\n delete self[k];\n }\n catch (_) { }\n });\n }\n function isCalendarElem(elem) {\n return self.calendarContainer.contains(elem);\n }\n function documentClick(e) {\n if (self.isOpen && !self.config.inline) {\n var eventTarget_1 = getEventTarget(e);\n var isCalendarElement = isCalendarElem(eventTarget_1);\n var isInput = eventTarget_1 === self.input ||\n eventTarget_1 === self.altInput ||\n self.element.contains(eventTarget_1) ||\n (e.path &&\n e.path.indexOf &&\n (~e.path.indexOf(self.input) ||\n ~e.path.indexOf(self.altInput)));\n var lostFocus = !isInput &&\n !isCalendarElement &&\n !isCalendarElem(e.relatedTarget);\n var isIgnored = !self.config.ignoredFocusElements.some(function (elem) {\n return elem.contains(eventTarget_1);\n });\n if (lostFocus && isIgnored) {\n if (self.config.allowInput) {\n self.setDate(self._input.value, false, self.config.altInput\n ? self.config.altFormat\n : self.config.dateFormat);\n }\n if (self.timeContainer !== undefined &&\n self.minuteElement !== undefined &&\n self.hourElement !== undefined &&\n self.input.value !== \"\" &&\n self.input.value !== undefined) {\n updateTime();\n }\n self.close();\n if (self.config &&\n self.config.mode === \"range\" &&\n self.selectedDates.length === 1)\n self.clear(false);\n }\n }\n }\n function changeYear(newYear) {\n if (!newYear ||\n (self.config.minDate && newYear < self.config.minDate.getFullYear()) ||\n (self.config.maxDate && newYear > self.config.maxDate.getFullYear()))\n return;\n var newYearNum = newYear, isNewYear = self.currentYear !== newYearNum;\n self.currentYear = newYearNum || self.currentYear;\n if (self.config.maxDate &&\n self.currentYear === self.config.maxDate.getFullYear()) {\n self.currentMonth = Math.min(self.config.maxDate.getMonth(), self.currentMonth);\n }\n else if (self.config.minDate &&\n self.currentYear === self.config.minDate.getFullYear()) {\n self.currentMonth = Math.max(self.config.minDate.getMonth(), self.currentMonth);\n }\n if (isNewYear) {\n self.redraw();\n triggerEvent(\"onYearChange\");\n buildMonthSwitch();\n }\n }\n function isEnabled(date, timeless) {\n var _a;\n if (timeless === void 0) { timeless = true; }\n var dateToCheck = self.parseDate(date, undefined, timeless);\n if ((self.config.minDate &&\n dateToCheck &&\n compareDates(dateToCheck, self.config.minDate, timeless !== undefined ? timeless : !self.minDateHasTime) < 0) ||\n (self.config.maxDate &&\n dateToCheck &&\n compareDates(dateToCheck, self.config.maxDate, timeless !== undefined ? timeless : !self.maxDateHasTime) > 0))\n return false;\n if (!self.config.enable && self.config.disable.length === 0)\n return true;\n if (dateToCheck === undefined)\n return false;\n var bool = !!self.config.enable, array = (_a = self.config.enable) !== null && _a !== void 0 ? _a : self.config.disable;\n for (var i = 0, d = void 0; i < array.length; i++) {\n d = array[i];\n if (typeof d === \"function\" &&\n d(dateToCheck))\n return bool;\n else if (d instanceof Date &&\n dateToCheck !== undefined &&\n d.getTime() === dateToCheck.getTime())\n return bool;\n else if (typeof d === \"string\") {\n var parsed = self.parseDate(d, undefined, true);\n return parsed && parsed.getTime() === dateToCheck.getTime()\n ? bool\n : !bool;\n }\n else if (typeof d === \"object\" &&\n dateToCheck !== undefined &&\n d.from &&\n d.to &&\n dateToCheck.getTime() >= d.from.getTime() &&\n dateToCheck.getTime() <= d.to.getTime())\n return bool;\n }\n return !bool;\n }\n function isInView(elem) {\n if (self.daysContainer !== undefined)\n return (elem.className.indexOf(\"hidden\") === -1 &&\n elem.className.indexOf(\"flatpickr-disabled\") === -1 &&\n self.daysContainer.contains(elem));\n return false;\n }\n function onBlur(e) {\n var isInput = e.target === self._input;\n var valueChanged = self._input.value.trimEnd() !== getDateStr();\n if (isInput &&\n valueChanged &&\n !(e.relatedTarget && isCalendarElem(e.relatedTarget))) {\n self.setDate(self._input.value, true, e.target === self.altInput\n ? self.config.altFormat\n : self.config.dateFormat);\n }\n }\n function onKeyDown(e) {\n var eventTarget = getEventTarget(e);\n var isInput = self.config.wrap\n ? element.contains(eventTarget)\n : eventTarget === self._input;\n var allowInput = self.config.allowInput;\n var allowKeydown = self.isOpen && (!allowInput || !isInput);\n var allowInlineKeydown = self.config.inline && isInput && !allowInput;\n if (e.keyCode === 13 && isInput) {\n if (allowInput) {\n self.setDate(self._input.value, true, eventTarget === self.altInput\n ? self.config.altFormat\n : self.config.dateFormat);\n self.close();\n return eventTarget.blur();\n }\n else {\n self.open();\n }\n }\n else if (isCalendarElem(eventTarget) ||\n allowKeydown ||\n allowInlineKeydown) {\n var isTimeObj = !!self.timeContainer &&\n self.timeContainer.contains(eventTarget);\n switch (e.keyCode) {\n case 13:\n if (isTimeObj) {\n e.preventDefault();\n updateTime();\n focusAndClose();\n }\n else\n selectDate(e);\n break;\n case 27:\n e.preventDefault();\n focusAndClose();\n break;\n case 8:\n case 46:\n if (isInput && !self.config.allowInput) {\n e.preventDefault();\n self.clear();\n }\n break;\n case 37:\n case 39:\n if (!isTimeObj && !isInput) {\n e.preventDefault();\n var activeElement = getClosestActiveElement();\n if (self.daysContainer !== undefined &&\n (allowInput === false ||\n (activeElement && isInView(activeElement)))) {\n var delta_1 = e.keyCode === 39 ? 1 : -1;\n if (!e.ctrlKey)\n focusOnDay(undefined, delta_1);\n else {\n e.stopPropagation();\n changeMonth(delta_1);\n focusOnDay(getFirstAvailableDay(1), 0);\n }\n }\n }\n else if (self.hourElement)\n self.hourElement.focus();\n break;\n case 38:\n case 40:\n e.preventDefault();\n var delta = e.keyCode === 40 ? 1 : -1;\n if ((self.daysContainer &&\n eventTarget.$i !== undefined) ||\n eventTarget === self.input ||\n eventTarget === self.altInput) {\n if (e.ctrlKey) {\n e.stopPropagation();\n changeYear(self.currentYear - delta);\n focusOnDay(getFirstAvailableDay(1), 0);\n }\n else if (!isTimeObj)\n focusOnDay(undefined, delta * 7);\n }\n else if (eventTarget === self.currentYearElement) {\n changeYear(self.currentYear - delta);\n }\n else if (self.config.enableTime) {\n if (!isTimeObj && self.hourElement)\n self.hourElement.focus();\n updateTime(e);\n self._debouncedChange();\n }\n break;\n case 9:\n if (isTimeObj) {\n var elems = [\n self.hourElement,\n self.minuteElement,\n self.secondElement,\n self.amPM,\n ]\n .concat(self.pluginElements)\n .filter(function (x) { return x; });\n var i = elems.indexOf(eventTarget);\n if (i !== -1) {\n var target = elems[i + (e.shiftKey ? -1 : 1)];\n e.preventDefault();\n (target || self._input).focus();\n }\n }\n else if (!self.config.noCalendar &&\n self.daysContainer &&\n self.daysContainer.contains(eventTarget) &&\n e.shiftKey) {\n e.preventDefault();\n self._input.focus();\n }\n break;\n default:\n break;\n }\n }\n if (self.amPM !== undefined && eventTarget === self.amPM) {\n switch (e.key) {\n case self.l10n.amPM[0].charAt(0):\n case self.l10n.amPM[0].charAt(0).toLowerCase():\n self.amPM.textContent = self.l10n.amPM[0];\n setHoursFromInputs();\n updateValue();\n break;\n case self.l10n.amPM[1].charAt(0):\n case self.l10n.amPM[1].charAt(0).toLowerCase():\n self.amPM.textContent = self.l10n.amPM[1];\n setHoursFromInputs();\n updateValue();\n break;\n }\n }\n if (isInput || isCalendarElem(eventTarget)) {\n triggerEvent(\"onKeyDown\", e);\n }\n }\n function onMouseOver(elem, cellClass) {\n if (cellClass === void 0) { cellClass = \"flatpickr-day\"; }\n if (self.selectedDates.length !== 1 ||\n (elem &&\n (!elem.classList.contains(cellClass) ||\n elem.classList.contains(\"flatpickr-disabled\"))))\n return;\n var hoverDate = elem\n ? elem.dateObj.getTime()\n : self.days.firstElementChild.dateObj.getTime(), initialDate = self.parseDate(self.selectedDates[0], undefined, true).getTime(), rangeStartDate = Math.min(hoverDate, self.selectedDates[0].getTime()), rangeEndDate = Math.max(hoverDate, self.selectedDates[0].getTime());\n var containsDisabled = false;\n var minRange = 0, maxRange = 0;\n for (var t = rangeStartDate; t < rangeEndDate; t += duration.DAY) {\n if (!isEnabled(new Date(t), true)) {\n containsDisabled =\n containsDisabled || (t > rangeStartDate && t < rangeEndDate);\n if (t < initialDate && (!minRange || t > minRange))\n minRange = t;\n else if (t > initialDate && (!maxRange || t < maxRange))\n maxRange = t;\n }\n }\n var hoverableCells = Array.from(self.rContainer.querySelectorAll(\"*:nth-child(-n+\" + self.config.showMonths + \") > .\" + cellClass));\n hoverableCells.forEach(function (dayElem) {\n var date = dayElem.dateObj;\n var timestamp = date.getTime();\n var outOfRange = (minRange > 0 && timestamp < minRange) ||\n (maxRange > 0 && timestamp > maxRange);\n if (outOfRange) {\n dayElem.classList.add(\"notAllowed\");\n [\"inRange\", \"startRange\", \"endRange\"].forEach(function (c) {\n dayElem.classList.remove(c);\n });\n return;\n }\n else if (containsDisabled && !outOfRange)\n return;\n [\"startRange\", \"inRange\", \"endRange\", \"notAllowed\"].forEach(function (c) {\n dayElem.classList.remove(c);\n });\n if (elem !== undefined) {\n elem.classList.add(hoverDate <= self.selectedDates[0].getTime()\n ? \"startRange\"\n : \"endRange\");\n if (initialDate < hoverDate && timestamp === initialDate)\n dayElem.classList.add(\"startRange\");\n else if (initialDate > hoverDate && timestamp === initialDate)\n dayElem.classList.add(\"endRange\");\n if (timestamp >= minRange &&\n (maxRange === 0 || timestamp <= maxRange) &&\n isBetween(timestamp, initialDate, hoverDate))\n dayElem.classList.add(\"inRange\");\n }\n });\n }\n function onResize() {\n if (self.isOpen && !self.config.static && !self.config.inline)\n positionCalendar();\n }\n function open(e, positionElement) {\n if (positionElement === void 0) { positionElement = self._positionElement; }\n if (self.isMobile === true) {\n if (e) {\n e.preventDefault();\n var eventTarget = getEventTarget(e);\n if (eventTarget) {\n eventTarget.blur();\n }\n }\n if (self.mobileInput !== undefined) {\n self.mobileInput.focus();\n self.mobileInput.click();\n }\n triggerEvent(\"onOpen\");\n return;\n }\n else if (self._input.disabled || self.config.inline) {\n return;\n }\n var wasOpen = self.isOpen;\n self.isOpen = true;\n if (!wasOpen) {\n self.calendarContainer.classList.add(\"open\");\n self._input.classList.add(\"active\");\n triggerEvent(\"onOpen\");\n positionCalendar(positionElement);\n }\n if (self.config.enableTime === true && self.config.noCalendar === true) {\n if (self.config.allowInput === false &&\n (e === undefined ||\n !self.timeContainer.contains(e.relatedTarget))) {\n setTimeout(function () { return self.hourElement.select(); }, 50);\n }\n }\n }\n function minMaxDateSetter(type) {\n return function (date) {\n var dateObj = (self.config[\"_\" + type + \"Date\"] = self.parseDate(date, self.config.dateFormat));\n var inverseDateObj = self.config[\"_\" + (type === \"min\" ? \"max\" : \"min\") + \"Date\"];\n if (dateObj !== undefined) {\n self[type === \"min\" ? \"minDateHasTime\" : \"maxDateHasTime\"] =\n dateObj.getHours() > 0 ||\n dateObj.getMinutes() > 0 ||\n dateObj.getSeconds() > 0;\n }\n if (self.selectedDates) {\n self.selectedDates = self.selectedDates.filter(function (d) { return isEnabled(d); });\n if (!self.selectedDates.length && type === \"min\")\n setHoursFromDate(dateObj);\n updateValue();\n }\n if (self.daysContainer) {\n redraw();\n if (dateObj !== undefined)\n self.currentYearElement[type] = dateObj.getFullYear().toString();\n else\n self.currentYearElement.removeAttribute(type);\n self.currentYearElement.disabled =\n !!inverseDateObj &&\n dateObj !== undefined &&\n inverseDateObj.getFullYear() === dateObj.getFullYear();\n }\n };\n }\n function parseConfig() {\n var boolOpts = [\n \"wrap\",\n \"weekNumbers\",\n \"allowInput\",\n \"allowInvalidPreload\",\n \"clickOpens\",\n \"time_24hr\",\n \"enableTime\",\n \"noCalendar\",\n \"altInput\",\n \"shorthandCurrentMonth\",\n \"inline\",\n \"static\",\n \"enableSeconds\",\n \"disableMobile\",\n ];\n var userConfig = __assign(__assign({}, JSON.parse(JSON.stringify(element.dataset || {}))), instanceConfig);\n var formats = {};\n self.config.parseDate = userConfig.parseDate;\n self.config.formatDate = userConfig.formatDate;\n Object.defineProperty(self.config, \"enable\", {\n get: function () { return self.config._enable; },\n set: function (dates) {\n self.config._enable = parseDateRules(dates);\n },\n });\n Object.defineProperty(self.config, \"disable\", {\n get: function () { return self.config._disable; },\n set: function (dates) {\n self.config._disable = parseDateRules(dates);\n },\n });\n var timeMode = userConfig.mode === \"time\";\n if (!userConfig.dateFormat && (userConfig.enableTime || timeMode)) {\n var defaultDateFormat = flatpickr.defaultConfig.dateFormat || defaultOptions.dateFormat;\n formats.dateFormat =\n userConfig.noCalendar || timeMode\n ? \"H:i\" + (userConfig.enableSeconds ? \":S\" : \"\")\n : defaultDateFormat + \" H:i\" + (userConfig.enableSeconds ? \":S\" : \"\");\n }\n if (userConfig.altInput &&\n (userConfig.enableTime || timeMode) &&\n !userConfig.altFormat) {\n var defaultAltFormat = flatpickr.defaultConfig.altFormat || defaultOptions.altFormat;\n formats.altFormat =\n userConfig.noCalendar || timeMode\n ? \"h:i\" + (userConfig.enableSeconds ? \":S K\" : \" K\")\n : defaultAltFormat + (\" h:i\" + (userConfig.enableSeconds ? \":S\" : \"\") + \" K\");\n }\n Object.defineProperty(self.config, \"minDate\", {\n get: function () { return self.config._minDate; },\n set: minMaxDateSetter(\"min\"),\n });\n Object.defineProperty(self.config, \"maxDate\", {\n get: function () { return self.config._maxDate; },\n set: minMaxDateSetter(\"max\"),\n });\n var minMaxTimeSetter = function (type) { return function (val) {\n self.config[type === \"min\" ? \"_minTime\" : \"_maxTime\"] = self.parseDate(val, \"H:i:S\");\n }; };\n Object.defineProperty(self.config, \"minTime\", {\n get: function () { return self.config._minTime; },\n set: minMaxTimeSetter(\"min\"),\n });\n Object.defineProperty(self.config, \"maxTime\", {\n get: function () { return self.config._maxTime; },\n set: minMaxTimeSetter(\"max\"),\n });\n if (userConfig.mode === \"time\") {\n self.config.noCalendar = true;\n self.config.enableTime = true;\n }\n Object.assign(self.config, formats, userConfig);\n for (var i = 0; i < boolOpts.length; i++)\n self.config[boolOpts[i]] =\n self.config[boolOpts[i]] === true ||\n self.config[boolOpts[i]] === \"true\";\n HOOKS.filter(function (hook) { return self.config[hook] !== undefined; }).forEach(function (hook) {\n self.config[hook] = arrayify(self.config[hook] || []).map(bindToInstance);\n });\n self.isMobile =\n !self.config.disableMobile &&\n !self.config.inline &&\n self.config.mode === \"single\" &&\n !self.config.disable.length &&\n !self.config.enable &&\n !self.config.weekNumbers &&\n /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent);\n for (var i = 0; i < self.config.plugins.length; i++) {\n var pluginConf = self.config.plugins[i](self) || {};\n for (var key in pluginConf) {\n if (HOOKS.indexOf(key) > -1) {\n self.config[key] = arrayify(pluginConf[key])\n .map(bindToInstance)\n .concat(self.config[key]);\n }\n else if (typeof userConfig[key] === \"undefined\")\n self.config[key] = pluginConf[key];\n }\n }\n if (!userConfig.altInputClass) {\n self.config.altInputClass =\n getInputElem().className + \" \" + self.config.altInputClass;\n }\n triggerEvent(\"onParseConfig\");\n }\n function getInputElem() {\n return self.config.wrap\n ? element.querySelector(\"[data-input]\")\n : element;\n }\n function setupLocale() {\n if (typeof self.config.locale !== \"object\" &&\n typeof flatpickr.l10ns[self.config.locale] === \"undefined\")\n self.config.errorHandler(new Error(\"flatpickr: invalid locale \" + self.config.locale));\n self.l10n = __assign(__assign({}, flatpickr.l10ns.default), (typeof self.config.locale === \"object\"\n ? self.config.locale\n : self.config.locale !== \"default\"\n ? flatpickr.l10ns[self.config.locale]\n : undefined));\n tokenRegex.D = \"(\" + self.l10n.weekdays.shorthand.join(\"|\") + \")\";\n tokenRegex.l = \"(\" + self.l10n.weekdays.longhand.join(\"|\") + \")\";\n tokenRegex.M = \"(\" + self.l10n.months.shorthand.join(\"|\") + \")\";\n tokenRegex.F = \"(\" + self.l10n.months.longhand.join(\"|\") + \")\";\n tokenRegex.K = \"(\" + self.l10n.amPM[0] + \"|\" + self.l10n.amPM[1] + \"|\" + self.l10n.amPM[0].toLowerCase() + \"|\" + self.l10n.amPM[1].toLowerCase() + \")\";\n var userConfig = __assign(__assign({}, instanceConfig), JSON.parse(JSON.stringify(element.dataset || {})));\n if (userConfig.time_24hr === undefined &&\n flatpickr.defaultConfig.time_24hr === undefined) {\n self.config.time_24hr = self.l10n.time_24hr;\n }\n self.formatDate = createDateFormatter(self);\n self.parseDate = createDateParser({ config: self.config, l10n: self.l10n });\n }\n function positionCalendar(customPositionElement) {\n if (typeof self.config.position === \"function\") {\n return void self.config.position(self, customPositionElement);\n }\n if (self.calendarContainer === undefined)\n return;\n triggerEvent(\"onPreCalendarPosition\");\n var positionElement = customPositionElement || self._positionElement;\n var calendarHeight = Array.prototype.reduce.call(self.calendarContainer.children, (function (acc, child) { return acc + child.offsetHeight; }), 0), calendarWidth = self.calendarContainer.offsetWidth, configPos = self.config.position.split(\" \"), configPosVertical = configPos[0], configPosHorizontal = configPos.length > 1 ? configPos[1] : null, inputBounds = positionElement.getBoundingClientRect(), distanceFromBottom = window.innerHeight - inputBounds.bottom, showOnTop = configPosVertical === \"above\" ||\n (configPosVertical !== \"below\" &&\n distanceFromBottom < calendarHeight &&\n inputBounds.top > calendarHeight);\n var top = window.pageYOffset +\n inputBounds.top +\n (!showOnTop ? positionElement.offsetHeight + 2 : -calendarHeight - 2);\n toggleClass(self.calendarContainer, \"arrowTop\", !showOnTop);\n toggleClass(self.calendarContainer, \"arrowBottom\", showOnTop);\n if (self.config.inline)\n return;\n var left = window.pageXOffset + inputBounds.left;\n var isCenter = false;\n var isRight = false;\n if (configPosHorizontal === \"center\") {\n left -= (calendarWidth - inputBounds.width) / 2;\n isCenter = true;\n }\n else if (configPosHorizontal === \"right\") {\n left -= calendarWidth - inputBounds.width;\n isRight = true;\n }\n toggleClass(self.calendarContainer, \"arrowLeft\", !isCenter && !isRight);\n toggleClass(self.calendarContainer, \"arrowCenter\", isCenter);\n toggleClass(self.calendarContainer, \"arrowRight\", isRight);\n var right = window.document.body.offsetWidth -\n (window.pageXOffset + inputBounds.right);\n var rightMost = left + calendarWidth > window.document.body.offsetWidth;\n var centerMost = right + calendarWidth > window.document.body.offsetWidth;\n toggleClass(self.calendarContainer, \"rightMost\", rightMost);\n if (self.config.static)\n return;\n self.calendarContainer.style.top = top + \"px\";\n if (!rightMost) {\n self.calendarContainer.style.left = left + \"px\";\n self.calendarContainer.style.right = \"auto\";\n }\n else if (!centerMost) {\n self.calendarContainer.style.left = \"auto\";\n self.calendarContainer.style.right = right + \"px\";\n }\n else {\n var doc = getDocumentStyleSheet();\n if (doc === undefined)\n return;\n var bodyWidth = window.document.body.offsetWidth;\n var centerLeft = Math.max(0, bodyWidth / 2 - calendarWidth / 2);\n var centerBefore = \".flatpickr-calendar.centerMost:before\";\n var centerAfter = \".flatpickr-calendar.centerMost:after\";\n var centerIndex = doc.cssRules.length;\n var centerStyle = \"{left:\" + inputBounds.left + \"px;right:auto;}\";\n toggleClass(self.calendarContainer, \"rightMost\", false);\n toggleClass(self.calendarContainer, \"centerMost\", true);\n doc.insertRule(centerBefore + \",\" + centerAfter + centerStyle, centerIndex);\n self.calendarContainer.style.left = centerLeft + \"px\";\n self.calendarContainer.style.right = \"auto\";\n }\n }\n function getDocumentStyleSheet() {\n var editableSheet = null;\n for (var i = 0; i < document.styleSheets.length; i++) {\n var sheet = document.styleSheets[i];\n if (!sheet.cssRules)\n continue;\n try {\n sheet.cssRules;\n }\n catch (err) {\n continue;\n }\n editableSheet = sheet;\n break;\n }\n return editableSheet != null ? editableSheet : createStyleSheet();\n }\n function createStyleSheet() {\n var style = document.createElement(\"style\");\n document.head.appendChild(style);\n return style.sheet;\n }\n function redraw() {\n if (self.config.noCalendar || self.isMobile)\n return;\n buildMonthSwitch();\n updateNavigationCurrentMonth();\n buildDays();\n }\n function focusAndClose() {\n self._input.focus();\n if (window.navigator.userAgent.indexOf(\"MSIE\") !== -1 ||\n navigator.msMaxTouchPoints !== undefined) {\n setTimeout(self.close, 0);\n }\n else {\n self.close();\n }\n }\n function selectDate(e) {\n e.preventDefault();\n e.stopPropagation();\n var isSelectable = function (day) {\n return day.classList &&\n day.classList.contains(\"flatpickr-day\") &&\n !day.classList.contains(\"flatpickr-disabled\") &&\n !day.classList.contains(\"notAllowed\");\n };\n var t = findParent(getEventTarget(e), isSelectable);\n if (t === undefined)\n return;\n var target = t;\n var selectedDate = (self.latestSelectedDateObj = new Date(target.dateObj.getTime()));\n var shouldChangeMonth = (selectedDate.getMonth() < self.currentMonth ||\n selectedDate.getMonth() >\n self.currentMonth + self.config.showMonths - 1) &&\n self.config.mode !== \"range\";\n self.selectedDateElem = target;\n if (self.config.mode === \"single\")\n self.selectedDates = [selectedDate];\n else if (self.config.mode === \"multiple\") {\n var selectedIndex = isDateSelected(selectedDate);\n if (selectedIndex)\n self.selectedDates.splice(parseInt(selectedIndex), 1);\n else\n self.selectedDates.push(selectedDate);\n }\n else if (self.config.mode === \"range\") {\n if (self.selectedDates.length === 2) {\n self.clear(false, false);\n }\n self.latestSelectedDateObj = selectedDate;\n self.selectedDates.push(selectedDate);\n if (compareDates(selectedDate, self.selectedDates[0], true) !== 0)\n self.selectedDates.sort(function (a, b) { return a.getTime() - b.getTime(); });\n }\n setHoursFromInputs();\n if (shouldChangeMonth) {\n var isNewYear = self.currentYear !== selectedDate.getFullYear();\n self.currentYear = selectedDate.getFullYear();\n self.currentMonth = selectedDate.getMonth();\n if (isNewYear) {\n triggerEvent(\"onYearChange\");\n buildMonthSwitch();\n }\n triggerEvent(\"onMonthChange\");\n }\n updateNavigationCurrentMonth();\n buildDays();\n updateValue();\n if (!shouldChangeMonth &&\n self.config.mode !== \"range\" &&\n self.config.showMonths === 1)\n focusOnDayElem(target);\n else if (self.selectedDateElem !== undefined &&\n self.hourElement === undefined) {\n self.selectedDateElem && self.selectedDateElem.focus();\n }\n if (self.hourElement !== undefined)\n self.hourElement !== undefined && self.hourElement.focus();\n if (self.config.closeOnSelect) {\n var single = self.config.mode === \"single\" && !self.config.enableTime;\n var range = self.config.mode === \"range\" &&\n self.selectedDates.length === 2 &&\n !self.config.enableTime;\n if (single || range) {\n focusAndClose();\n }\n }\n triggerChange();\n }\n var CALLBACKS = {\n locale: [setupLocale, updateWeekdays],\n showMonths: [buildMonths, setCalendarWidth, buildWeekdays],\n minDate: [jumpToDate],\n maxDate: [jumpToDate],\n positionElement: [updatePositionElement],\n clickOpens: [\n function () {\n if (self.config.clickOpens === true) {\n bind(self._input, \"focus\", self.open);\n bind(self._input, \"click\", self.open);\n }\n else {\n self._input.removeEventListener(\"focus\", self.open);\n self._input.removeEventListener(\"click\", self.open);\n }\n },\n ],\n };\n function set(option, value) {\n if (option !== null && typeof option === \"object\") {\n Object.assign(self.config, option);\n for (var key in option) {\n if (CALLBACKS[key] !== undefined)\n CALLBACKS[key].forEach(function (x) { return x(); });\n }\n }\n else {\n self.config[option] = value;\n if (CALLBACKS[option] !== undefined)\n CALLBACKS[option].forEach(function (x) { return x(); });\n else if (HOOKS.indexOf(option) > -1)\n self.config[option] = arrayify(value);\n }\n self.redraw();\n updateValue(true);\n }\n function setSelectedDate(inputDate, format) {\n var dates = [];\n if (inputDate instanceof Array)\n dates = inputDate.map(function (d) { return self.parseDate(d, format); });\n else if (inputDate instanceof Date || typeof inputDate === \"number\")\n dates = [self.parseDate(inputDate, format)];\n else if (typeof inputDate === \"string\") {\n switch (self.config.mode) {\n case \"single\":\n case \"time\":\n dates = [self.parseDate(inputDate, format)];\n break;\n case \"multiple\":\n dates = inputDate\n .split(self.config.conjunction)\n .map(function (date) { return self.parseDate(date, format); });\n break;\n case \"range\":\n dates = inputDate\n .split(self.l10n.rangeSeparator)\n .map(function (date) { return self.parseDate(date, format); });\n break;\n default:\n break;\n }\n }\n else\n self.config.errorHandler(new Error(\"Invalid date supplied: \" + JSON.stringify(inputDate)));\n self.selectedDates = (self.config.allowInvalidPreload\n ? dates\n : dates.filter(function (d) { return d instanceof Date && isEnabled(d, false); }));\n if (self.config.mode === \"range\")\n self.selectedDates.sort(function (a, b) { return a.getTime() - b.getTime(); });\n }\n function setDate(date, triggerChange, format) {\n if (triggerChange === void 0) { triggerChange = false; }\n if (format === void 0) { format = self.config.dateFormat; }\n if ((date !== 0 && !date) || (date instanceof Array && date.length === 0))\n return self.clear(triggerChange);\n setSelectedDate(date, format);\n self.latestSelectedDateObj =\n self.selectedDates[self.selectedDates.length - 1];\n self.redraw();\n jumpToDate(undefined, triggerChange);\n setHoursFromDate();\n if (self.selectedDates.length === 0) {\n self.clear(false);\n }\n updateValue(triggerChange);\n if (triggerChange)\n triggerEvent(\"onChange\");\n }\n function parseDateRules(arr) {\n return arr\n .slice()\n .map(function (rule) {\n if (typeof rule === \"string\" ||\n typeof rule === \"number\" ||\n rule instanceof Date) {\n return self.parseDate(rule, undefined, true);\n }\n else if (rule &&\n typeof rule === \"object\" &&\n rule.from &&\n rule.to)\n return {\n from: self.parseDate(rule.from, undefined),\n to: self.parseDate(rule.to, undefined),\n };\n return rule;\n })\n .filter(function (x) { return x; });\n }\n function setupDates() {\n self.selectedDates = [];\n self.now = self.parseDate(self.config.now) || new Date();\n var preloadedDate = self.config.defaultDate ||\n ((self.input.nodeName === \"INPUT\" ||\n self.input.nodeName === \"TEXTAREA\") &&\n self.input.placeholder &&\n self.input.value === self.input.placeholder\n ? null\n : self.input.value);\n if (preloadedDate)\n setSelectedDate(preloadedDate, self.config.dateFormat);\n self._initialDate =\n self.selectedDates.length > 0\n ? self.selectedDates[0]\n : self.config.minDate &&\n self.config.minDate.getTime() > self.now.getTime()\n ? self.config.minDate\n : self.config.maxDate &&\n self.config.maxDate.getTime() < self.now.getTime()\n ? self.config.maxDate\n : self.now;\n self.currentYear = self._initialDate.getFullYear();\n self.currentMonth = self._initialDate.getMonth();\n if (self.selectedDates.length > 0)\n self.latestSelectedDateObj = self.selectedDates[0];\n if (self.config.minTime !== undefined)\n self.config.minTime = self.parseDate(self.config.minTime, \"H:i\");\n if (self.config.maxTime !== undefined)\n self.config.maxTime = self.parseDate(self.config.maxTime, \"H:i\");\n self.minDateHasTime =\n !!self.config.minDate &&\n (self.config.minDate.getHours() > 0 ||\n self.config.minDate.getMinutes() > 0 ||\n self.config.minDate.getSeconds() > 0);\n self.maxDateHasTime =\n !!self.config.maxDate &&\n (self.config.maxDate.getHours() > 0 ||\n self.config.maxDate.getMinutes() > 0 ||\n self.config.maxDate.getSeconds() > 0);\n }\n function setupInputs() {\n self.input = getInputElem();\n if (!self.input) {\n self.config.errorHandler(new Error(\"Invalid input element specified\"));\n return;\n }\n self.input._type = self.input.type;\n self.input.type = \"text\";\n self.input.classList.add(\"flatpickr-input\");\n self._input = self.input;\n if (self.config.altInput) {\n self.altInput = createElement(self.input.nodeName, self.config.altInputClass);\n self._input = self.altInput;\n self.altInput.placeholder = self.input.placeholder;\n self.altInput.disabled = self.input.disabled;\n self.altInput.required = self.input.required;\n self.altInput.tabIndex = self.input.tabIndex;\n self.altInput.type = \"text\";\n self.input.setAttribute(\"type\", \"hidden\");\n if (!self.config.static && self.input.parentNode)\n self.input.parentNode.insertBefore(self.altInput, self.input.nextSibling);\n }\n if (!self.config.allowInput)\n self._input.setAttribute(\"readonly\", \"readonly\");\n updatePositionElement();\n }\n function updatePositionElement() {\n self._positionElement = self.config.positionElement || self._input;\n }\n function setupMobile() {\n var inputType = self.config.enableTime\n ? self.config.noCalendar\n ? \"time\"\n : \"datetime-local\"\n : \"date\";\n self.mobileInput = createElement(\"input\", self.input.className + \" flatpickr-mobile\");\n self.mobileInput.tabIndex = 1;\n self.mobileInput.type = inputType;\n self.mobileInput.disabled = self.input.disabled;\n self.mobileInput.required = self.input.required;\n self.mobileInput.placeholder = self.input.placeholder;\n self.mobileFormatStr =\n inputType === \"datetime-local\"\n ? \"Y-m-d\\\\TH:i:S\"\n : inputType === \"date\"\n ? \"Y-m-d\"\n : \"H:i:S\";\n if (self.selectedDates.length > 0) {\n self.mobileInput.defaultValue = self.mobileInput.value = self.formatDate(self.selectedDates[0], self.mobileFormatStr);\n }\n if (self.config.minDate)\n self.mobileInput.min = self.formatDate(self.config.minDate, \"Y-m-d\");\n if (self.config.maxDate)\n self.mobileInput.max = self.formatDate(self.config.maxDate, \"Y-m-d\");\n if (self.input.getAttribute(\"step\"))\n self.mobileInput.step = String(self.input.getAttribute(\"step\"));\n self.input.type = \"hidden\";\n if (self.altInput !== undefined)\n self.altInput.type = \"hidden\";\n try {\n if (self.input.parentNode)\n self.input.parentNode.insertBefore(self.mobileInput, self.input.nextSibling);\n }\n catch (_a) { }\n bind(self.mobileInput, \"change\", function (e) {\n self.setDate(getEventTarget(e).value, false, self.mobileFormatStr);\n triggerEvent(\"onChange\");\n triggerEvent(\"onClose\");\n });\n }\n function toggle(e) {\n if (self.isOpen === true)\n return self.close();\n self.open(e);\n }\n function triggerEvent(event, data) {\n if (self.config === undefined)\n return;\n var hooks = self.config[event];\n if (hooks !== undefined && hooks.length > 0) {\n for (var i = 0; hooks[i] && i < hooks.length; i++)\n hooks[i](self.selectedDates, self.input.value, self, data);\n }\n if (event === \"onChange\") {\n self.input.dispatchEvent(createEvent(\"change\"));\n self.input.dispatchEvent(createEvent(\"input\"));\n }\n }\n function createEvent(name) {\n var e = document.createEvent(\"Event\");\n e.initEvent(name, true, true);\n return e;\n }\n function isDateSelected(date) {\n for (var i = 0; i < self.selectedDates.length; i++) {\n var selectedDate = self.selectedDates[i];\n if (selectedDate instanceof Date &&\n compareDates(selectedDate, date) === 0)\n return \"\" + i;\n }\n return false;\n }\n function isDateInRange(date) {\n if (self.config.mode !== \"range\" || self.selectedDates.length < 2)\n return false;\n return (compareDates(date, self.selectedDates[0]) >= 0 &&\n compareDates(date, self.selectedDates[1]) <= 0);\n }\n function updateNavigationCurrentMonth() {\n if (self.config.noCalendar || self.isMobile || !self.monthNav)\n return;\n self.yearElements.forEach(function (yearElement, i) {\n var d = new Date(self.currentYear, self.currentMonth, 1);\n d.setMonth(self.currentMonth + i);\n if (self.config.showMonths > 1 ||\n self.config.monthSelectorType === \"static\") {\n self.monthElements[i].textContent =\n monthToStr(d.getMonth(), self.config.shorthandCurrentMonth, self.l10n) + \" \";\n }\n else {\n self.monthsDropdownContainer.value = d.getMonth().toString();\n }\n yearElement.value = d.getFullYear().toString();\n });\n self._hidePrevMonthArrow =\n self.config.minDate !== undefined &&\n (self.currentYear === self.config.minDate.getFullYear()\n ? self.currentMonth <= self.config.minDate.getMonth()\n : self.currentYear < self.config.minDate.getFullYear());\n self._hideNextMonthArrow =\n self.config.maxDate !== undefined &&\n (self.currentYear === self.config.maxDate.getFullYear()\n ? self.currentMonth + 1 > self.config.maxDate.getMonth()\n : self.currentYear > self.config.maxDate.getFullYear());\n }\n function getDateStr(specificFormat) {\n var format = specificFormat ||\n (self.config.altInput ? self.config.altFormat : self.config.dateFormat);\n return self.selectedDates\n .map(function (dObj) { return self.formatDate(dObj, format); })\n .filter(function (d, i, arr) {\n return self.config.mode !== \"range\" ||\n self.config.enableTime ||\n arr.indexOf(d) === i;\n })\n .join(self.config.mode !== \"range\"\n ? self.config.conjunction\n : self.l10n.rangeSeparator);\n }\n function updateValue(triggerChange) {\n if (triggerChange === void 0) { triggerChange = true; }\n if (self.mobileInput !== undefined && self.mobileFormatStr) {\n self.mobileInput.value =\n self.latestSelectedDateObj !== undefined\n ? self.formatDate(self.latestSelectedDateObj, self.mobileFormatStr)\n : \"\";\n }\n self.input.value = getDateStr(self.config.dateFormat);\n if (self.altInput !== undefined) {\n self.altInput.value = getDateStr(self.config.altFormat);\n }\n if (triggerChange !== false)\n triggerEvent(\"onValueUpdate\");\n }\n function onMonthNavClick(e) {\n var eventTarget = getEventTarget(e);\n var isPrevMonth = self.prevMonthNav.contains(eventTarget);\n var isNextMonth = self.nextMonthNav.contains(eventTarget);\n if (isPrevMonth || isNextMonth) {\n changeMonth(isPrevMonth ? -1 : 1);\n }\n else if (self.yearElements.indexOf(eventTarget) >= 0) {\n eventTarget.select();\n }\n else if (eventTarget.classList.contains(\"arrowUp\")) {\n self.changeYear(self.currentYear + 1);\n }\n else if (eventTarget.classList.contains(\"arrowDown\")) {\n self.changeYear(self.currentYear - 1);\n }\n }\n function timeWrapper(e) {\n e.preventDefault();\n var isKeyDown = e.type === \"keydown\", eventTarget = getEventTarget(e), input = eventTarget;\n if (self.amPM !== undefined && eventTarget === self.amPM) {\n self.amPM.textContent =\n self.l10n.amPM[int(self.amPM.textContent === self.l10n.amPM[0])];\n }\n var min = parseFloat(input.getAttribute(\"min\")), max = parseFloat(input.getAttribute(\"max\")), step = parseFloat(input.getAttribute(\"step\")), curValue = parseInt(input.value, 10), delta = e.delta ||\n (isKeyDown ? (e.which === 38 ? 1 : -1) : 0);\n var newValue = curValue + step * delta;\n if (typeof input.value !== \"undefined\" && input.value.length === 2) {\n var isHourElem = input === self.hourElement, isMinuteElem = input === self.minuteElement;\n if (newValue < min) {\n newValue =\n max +\n newValue +\n int(!isHourElem) +\n (int(isHourElem) && int(!self.amPM));\n if (isMinuteElem)\n incrementNumInput(undefined, -1, self.hourElement);\n }\n else if (newValue > max) {\n newValue =\n input === self.hourElement ? newValue - max - int(!self.amPM) : min;\n if (isMinuteElem)\n incrementNumInput(undefined, 1, self.hourElement);\n }\n if (self.amPM &&\n isHourElem &&\n (step === 1\n ? newValue + curValue === 23\n : Math.abs(newValue - curValue) > step)) {\n self.amPM.textContent =\n self.l10n.amPM[int(self.amPM.textContent === self.l10n.amPM[0])];\n }\n input.value = pad(newValue);\n }\n }\n init();\n return self;\n}\nfunction _flatpickr(nodeList, config) {\n var nodes = Array.prototype.slice\n .call(nodeList)\n .filter(function (x) { return x instanceof HTMLElement; });\n var instances = [];\n for (var i = 0; i < nodes.length; i++) {\n var node = nodes[i];\n try {\n if (node.getAttribute(\"data-fp-omit\") !== null)\n continue;\n if (node._flatpickr !== undefined) {\n node._flatpickr.destroy();\n node._flatpickr = undefined;\n }\n node._flatpickr = FlatpickrInstance(node, config || {});\n instances.push(node._flatpickr);\n }\n catch (e) {\n console.error(e);\n }\n }\n return instances.length === 1 ? instances[0] : instances;\n}\nif (typeof HTMLElement !== \"undefined\" &&\n typeof HTMLCollection !== \"undefined\" &&\n typeof NodeList !== \"undefined\") {\n HTMLCollection.prototype.flatpickr = NodeList.prototype.flatpickr = function (config) {\n return _flatpickr(this, config);\n };\n HTMLElement.prototype.flatpickr = function (config) {\n return _flatpickr([this], config);\n };\n}\nvar flatpickr = function (selector, config) {\n if (typeof selector === \"string\") {\n return _flatpickr(window.document.querySelectorAll(selector), config);\n }\n else if (selector instanceof Node) {\n return _flatpickr([selector], config);\n }\n else {\n return _flatpickr(selector, config);\n }\n};\nflatpickr.defaultConfig = {};\nflatpickr.l10ns = {\n en: __assign({}, English),\n default: __assign({}, English),\n};\nflatpickr.localize = function (l10n) {\n flatpickr.l10ns.default = __assign(__assign({}, flatpickr.l10ns.default), l10n);\n};\nflatpickr.setDefaults = function (config) {\n flatpickr.defaultConfig = __assign(__assign({}, flatpickr.defaultConfig), config);\n};\nflatpickr.parseDate = createDateParser({});\nflatpickr.formatDate = createDateFormatter({});\nflatpickr.compareDates = compareDates;\nif (typeof jQuery !== \"undefined\" && typeof jQuery.fn !== \"undefined\") {\n jQuery.fn.flatpickr = function (config) {\n return _flatpickr(this, config);\n };\n}\nDate.prototype.fp_incr = function (days) {\n return new Date(this.getFullYear(), this.getMonth(), this.getDate() + (typeof days === \"string\" ? parseInt(days, 10) : days));\n};\nif (typeof window !== \"undefined\") {\n window.flatpickr = flatpickr;\n}\nexport default flatpickr;\n","import styles from './template.css';\nimport flatpickrCss from './flatpickr.css';\nimport template from './template';\nimport {AoflElement, customElement, property} from '@aofl/element';\nimport flatpickr from 'flatpickr';\n\nconst TRANSLATION_CONFIG = {\n 'default': flatpickr.l10ns.default,\n 'zh-CN': {\n key: 'Mandarin',\n resolve: () => import('flatpickr/dist/l10n/zh')\n },\n 'zh-TW': {\n key: 'MandarinTraditional',\n resolve: () => import('flatpickr/dist/l10n/zh-tw')\n },\n 'ja-JP': {\n key: 'Japanese',\n resolve: () => import('flatpickr/dist/l10n/ja')\n },\n 'es-US': {\n key: 'Spanish',\n resolve: () => import('flatpickr/dist/l10n/es')\n },\n};\n\nconst attrMap = {\n 'default-date': 'defaultDate',\n 'default-hour': 'defaultHour',\n 'default-minute': 'defaultMinute',\n 'disable-dates': 'disable',\n 'enables-dates': 'enable',\n 'enable-time': 'enableTime',\n 'enable-seconds': 'enableSeconds',\n 'hour-increment': 'hourIncrement',\n 'inline': 'inline',\n 'max-date': 'maxDate',\n 'min-date': 'minDate',\n 'minute-increment': 'minuteIncrement',\n 'mode': 'mode',\n 'no-calendar': 'noCalendar',\n 'week-numbers': 'weekNumbers',\n};\n\nconst converter = (value) => {\n const convert = (v) => {\n if (isNaN(v)) {\n return new Date(v);\n }\n return new Date(Number(v));\n };\n\n try {\n const dateArr = JSON.parse(value);\n return dateArr.map(convert);\n } catch (e) {\n return convert(value);\n }\n};\n\n/**\n * @summary DatePicker\n * @extends {AoflElement}\n */\n@customElement('date-picker')\nclass DatePicker extends AoflElement {\n /**\n * Creates an instance of DatePicker.\n */\n constructor() {\n super();\n this.observer = this.langListener();\n }\n\n /**\n * @readonly\n */\n static get is() {\n return 'date-picker';\n }\n @property({attribute: false})\n value;\n @property({type: Boolean})\n static = false;\n @property({converter})\n ['default-date'] = null;\n @property({type: Number})\n ['default-hour'] = 12;\n @property({type: Number})\n ['default-minute'] = 0;\n @property({converter})\n ['disable-dates'] = [];\n @property({converter})\n ['enable-dates'] = [];\n @property({type: Boolean})\n ['enable-time'] = false;\n @property({type: Boolean})\n ['enable-seconds'] = false;\n @property({type: Number})\n ['hour-increment'] = 1;\n @property({type: Boolean})\n inline = false;\n @property({converter})\n ['max-date'] = null;\n @property({converter})\n ['min-date'] = null;\n @property({type: Number})\n ['minute-increment'] = 5;\n @property({type: String})\n mode = 'single';\n @property({type: Boolean})\n ['no-calendar'] = false;\n @property({type: Boolean})\n ['week-numbers'] = false;\n @property({type: String})\n lang;\n @property({type: Boolean})\n wrap = false;\n @property({type: Array})\n plugins = []\n l10nOptions = TRANSLATION_CONFIG.default;\n rendered = false;\n\n /**\n * Listens for html lang mutations\n * @return {MutationObserver}\n */\n langListener() {\n const observer = new MutationObserver((mutationList) => {\n if (this.getAttribute('lang')) { return; }\n this.lang = mutationList[0].target.lang;\n });\n observer.observe(document.documentElement, {attributes: true});\n return observer;\n }\n\n renderPicker() {\n const config = {\n plugins: this.plugins,\n wrap: this.wrap,\n static: this.static,\n appendTo: this.shadowRoot,\n allowInput: false,\n defaultDate: this['default-date'],\n defaultHour: this['default-hour'],\n defaultMinute: this['default-minute'],\n disable: this['disable-dates'],\n enableTime: this['enable-time'],\n enableSeconds: this['enable-seconds'],\n hourIncrement: this['hour-increment'],\n inline: this.inline,\n maxDate: this['max-date'],\n minDate: this['min-date'],\n minuteIncrement: this['minute-increment'],\n mode: this.mode,\n noCalendar: this['no-calendar'],\n weekNumbers: this['week-numbers'],\n locale: this.l10nOptions,\n onChange: (selectedDates, dateStr) => {\n this.value = selectedDates;\n this.dispatchEvent(new CustomEvent('change', {\n composed: true,\n detail: {selectedDates, dateStr}\n }));\n },\n onClose: (selectedDates, dateStr) => {\n this.dispatchEvent(new CustomEvent('close', {\n composed: true,\n detail: {selectedDates, dateStr}\n }));\n },\n onOpen: (selectedDates, dateStr) => {\n this.dispatchEvent(new CustomEvent('open', {\n composed: true,\n detail: {selectedDates, dateStr}\n }));\n }\n };\n\n if (this['enable-dates'].length > 0) {\n config.enable = this['enable-dates'];\n } else {\n // WORKAROUND: bug in flatpickr not accepting empty array\n config.enable = [() => true];\n }\n\n this.picker = flatpickr(this.elm, config);\n\n if (this.value) {\n this.picker.setDate(this.value);\n }\n }\n\n async connectedCallback() {\n this.lang = this.getAttribute('lang') || document.documentElement.getAttribute('lang');\n super.connectedCallback();\n await this.updateComplete;\n\n const slot = this.shadowRoot.querySelector('slot');\n const container = slot?.assignedElements()[0] || this.shadowRoot;\n\n this.elm = container.querySelector('input');\n if (this.wrap) {\n this.elm = this.elm.parentElement;\n }\n\n this.renderPicker();\n }\n\n shouldUpdate(changedProperties) {\n if (changedProperties.has('lang')) {\n if (name === 'lang') {\n if (!this.lang) {\n this.lang = document.documentElement.lang;\n }\n }\n\n const langTranslation = TRANSLATION_CONFIG[this.lang];\n if (typeof langTranslation !== 'undefined' && typeof langTranslation.resolve === 'function') {\n langTranslation.resolve().then((localeTranslations) => {\n this.l10nOptions = localeTranslations[langTranslation.key];\n if (this.picker) {\n this.picker.set('locale', this.l10nOptions);\n this.picker.destroy();\n this.renderPicker();\n }\n });\n } else {\n this.l10nOptions = TRANSLATION_CONFIG.default;\n if (this.picker) {\n this.picker.set('locale', this.l10nOptions);\n this.picker.destroy();\n this.renderPicker();\n }\n }\n }\n if (this.picker) {\n changedProperties.forEach((item, key) => {\n if (typeof attrMap[key] !== 'undefined') {\n this.picker.set(attrMap[key], this[key]);\n } else if (key === 'value') {\n this.picker.setDate(this[key], true);\n }\n });\n this.picker.redraw();\n }\n\n\n return !this.rendered;\n }\n firstUpdated() {\n this.rendered = true;\n }\n /**\n *\n * @return {Object}\n */\n render() {\n return super.render(template, [styles, flatpickrCss]);\n }\n\n disconnectedCallback() {\n this.observer.disconnect();\n super.disconnectedCallback();\n }\n}\n\nexport {DatePicker};\n","export default (ctx, html) => html`\n\n`;\n","import styles from './template.css';\nimport template from './template';\nimport {AoflElement, customElement, property} from '@aofl/element';\nimport {SimpleModal} from '@modules/simple-modal';\n\n/**\n * @summary ShowModal\n * @extends {AoflElement}\n */\n@customElement('show-modal')\nclass ShowModal extends AoflElement {\n /**\n * Creates an instance of ShowModal.\n */\n constructor() {\n super();\n }\n\n /**\n * @readonly\n */\n static is = 'show-modal';\n\n @property({type: String})\n ['modal-id'] = '';\n\n @property({type: Object})\n ['modal-data'] = {};\n\n clickHandler = (e) => {\n SimpleModal.show(this['modal-id'], this['modal-data'], e); // eslint-disable-line\n };\n\n keyPressHandler = (e) => {\n if (e.key === 'Enter') {\n this.clickHandler(e);\n }\n };\n\n connectedCallback() {\n super.connectedCallback();\n\n this.addEventListener('click', this.clickHandler);\n this.addEventListener('keypress', this.keyPressHandler);\n }\n\n /**\n *\n * @return {Object}\n */\n render() {\n return super.render(template, [styles]);\n }\n\n disconnectedCallback() {\n this.removeEventListener('click', this.clickHandler);\n super.disconnectedCallback();\n }\n}\n\nexport default ShowModal;\n","export default (ctx, html) => html`\n \n`;\n","import template from './template';\nimport styles from './template.css';\nimport {AoflElement, customElement, property} from '@aofl/element';\n\n/**\n * @summary AoflForm\n * @extends {AoflElement}\n */\n@customElement('aofl-form')\nclass AoflForm extends AoflElement {\n /**\n *\n * @readonly\n */\n static is = 'aofl-form';\n\n connectedCallback() {\n super.connectedCallback();\n this.addEventListener('mousedown', function() {\n this.classList.remove('using-keyboard');\n });\n\n // Re-enable focus styling when Tab is pressed\n this.addEventListener('keyup', function(event) {\n if (event.code === 'Tab') {\n this.classList.add('using-keyboard');\n }\n });\n }\n\n disconnectedCallback() {\n this.removeEventListener('mousedown', this.keydownHandler);\n this.removeEventListener('keyup', this.listChangeHandler);\n super.disconnectedCallback();\n }\n\n /**\n *\n * @return {Object}\n */\n render() {\n return super.render(template, [styles]);\n }\n}\n\nexport default AoflForm;\n","exports = module.exports = require(\"../../../node_modules/css-loader/dist/runtime/api.js\")(false);\n// Imports\nvar getUrl = require(\"../../../node_modules/css-loader/dist/runtime/getUrl.js\");\nvar ___CSS_LOADER_URL___0___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-light.woff2\"));\nvar ___CSS_LOADER_URL___1___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-lightit.woff2\"));\nvar ___CSS_LOADER_URL___2___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-reg.woff2\"));\nvar ___CSS_LOADER_URL___3___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-regit.woff2\"));\nvar ___CSS_LOADER_URL___4___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-sbold.woff2\"));\nvar ___CSS_LOADER_URL___5___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-sboldit.woff2\"));\nvar ___CSS_LOADER_URL___6___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-bold.woff2\"));\nvar ___CSS_LOADER_URL___7___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-boldit.woff2\"));\nvar ___CSS_LOADER_URL___8___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-Light.woff2\"));\nvar ___CSS_LOADER_URL___9___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-LightIt.woff2\"));\nvar ___CSS_LOADER_URL___10___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-Regular.woff2\"));\nvar ___CSS_LOADER_URL___11___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-RegularIt.woff2\"));\nvar ___CSS_LOADER_URL___12___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-Semibold.woff2\"));\nvar ___CSS_LOADER_URL___13___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-SemiboldIt.woff2\"));\nvar ___CSS_LOADER_URL___14___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-Bold.woff2\"));\nvar ___CSS_LOADER_URL___15___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-BoldIt.woff2\"));\nvar ___CSS_LOADER_URL___16___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-ExtraBold.woff2\"));\nvar ___CSS_LOADER_URL___17___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-ExtraBoldIt.woff2\"));\nvar ___CSS_LOADER_URL___18___ = getUrl(require(\"../../template/main/fonts/aofl-icons/icomoon.woff2?c6f21u\"));\n// Module\nexports.push([module.id, \"/*! @aofl-component */:root{--blue:#0d6efd;--indigo:#6610f2;--purple:#8b42ca;--pink:#e83e8c;--red:#e50b0a;--orange:#e17a05;--yellow:#ffc107;--green:#3c8104;--teal:#20c997;--cyan:#53c9dc;--white:#fff;--gray:#6b6b6b;--gray-dark:#343a40;--light-green:#b1dd53;--table-border-color:#d8d8d8;--gray-100:#f2f2f2;--gray-200:#d9d9d9;--gray-300:#d8d8d8;--gray-400:#ced4da;--gray-500:#adb5bd;--gray-600:#6c757d;--gray-700:#4a4a4a;--gray-800:#343a40;--gray-900:#212529;--gray-accessibility:#6b6b6b;--primary:#0d6efd;--secondary:#adb5bd;--success:#3c8104;--info:#cfe2ff;--warning:#e17a05;--danger:#d20a09;--light:#f8f9fa;--dark:#000;--breakpoint-xxs:0;--breakpoint-xs:375px;--breakpoint-sm:576px;--breakpoint-md:768px;--breakpoint-lg:992px;--breakpoint-xl:1200px;--font-family-sans-serif:aofl-sans,Arial,Helvetica,sans-serif;--font-family-monospace:SFMono-Regular,Menlo,Monaco,Consolas,\\\"Liberation Mono\\\",\\\"Courier New\\\",monospace;--z-index-dropdown:1000;--z-index-sticky:1020;--z-index-fixed:1030;--z-index-modal-backdrop:1040;--z-index-modal:1050;--z-index-popover:1060;--z-index-tooltip:1070;--header-height:6rem;--content-height:calc(100vh - 6rem);--sidepanel-width:20rem;--purple-color:#641da3;--purple-600:#956abc;--purple-400:#c7afdd;--purple-200:#e0d2ed;--struggling:#f6993b;--below-target:#ffcf00;--in_progress:#1280f5;--prior_knowledge:#edf887;--mastery_achieved:#69d112;--inactive:#d8d8d8}route-view{max-width:1200px}@font-face{font-family:aofl-sans;font-style:normal;font-weight:300;src:url(\" + ___CSS_LOADER_URL___0___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:italic;font-weight:300;src:url(\" + ___CSS_LOADER_URL___1___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:normal;font-weight:400;src:url(\" + ___CSS_LOADER_URL___2___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:italic;font-weight:400;src:url(\" + ___CSS_LOADER_URL___3___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:normal;font-weight:600;src:url(\" + ___CSS_LOADER_URL___4___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:italic;font-weight:600;src:url(\" + ___CSS_LOADER_URL___5___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:normal;font-weight:700;src:url(\" + ___CSS_LOADER_URL___6___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:italic;font-weight:700;src:url(\" + ___CSS_LOADER_URL___7___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:normal;font-weight:300;src:url(\" + ___CSS_LOADER_URL___8___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:italic;font-weight:300;src:url(\" + ___CSS_LOADER_URL___9___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:normal;font-weight:400;src:url(\" + ___CSS_LOADER_URL___10___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:italic;font-weight:400;src:url(\" + ___CSS_LOADER_URL___11___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:normal;font-weight:600;src:url(\" + ___CSS_LOADER_URL___12___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:italic;font-weight:600;src:url(\" + ___CSS_LOADER_URL___13___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:normal;font-weight:700;src:url(\" + ___CSS_LOADER_URL___14___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:italic;font-weight:700;src:url(\" + ___CSS_LOADER_URL___15___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:normal;font-weight:800;src:url(\" + ___CSS_LOADER_URL___16___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:italic;font-weight:800;src:url(\" + ___CSS_LOADER_URL___17___ + \") format(\\\"woff2\\\")}@font-face{font-family:icomoon;src:url(\" + ___CSS_LOADER_URL___18___ + \") format(\\\"woff2\\\");font-weight:400;font-style:normal;font-display:block}[class*=\\\" ai-\\\"],[class^=ai-]{font-family:icomoon!important;speak:never;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*,:after,:before{box-sizing:border-box}html{font-family:sans-serif;line-height:1.15;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:rgba(0,0,0,0)}figcaption,footer,main,nav,section{display:block}[tabindex=\\\"-1\\\"]:focus{outline:0!important}strong{font-weight:bolder}caption{padding-top:.75rem;padding-bottom:.75rem;color:#6c757d;text-align:left;caption-side:bottom}button{border-radius:0}button:focus{outline:1px dotted;outline:5px auto -webkit-focus-ring-color}button,input{margin:0;font-family:inherit;font-size:inherit;line-height:inherit;overflow:visible}button{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]:not(:disabled),[type=reset]:not(:disabled),[type=submit]:not(:disabled),button:not(:disabled){cursor:pointer}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{padding:0;border-style:none}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}input[type=date],input[type=datetime-local],input[type=month],input[type=time]{-webkit-appearance:listbox}legend{display:block;width:100%;max-width:100%;padding:0;margin-bottom:.5rem;font-size:1.5rem;line-height:inherit;color:inherit;white-space:normal}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:none}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}summary{display:list-item;cursor:pointer}template{display:none}[hidden]{display:none!important}*{-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important}html{font-size:62.5%;height:100%}link-to{color:#0d6efd;text-decoration:none;background-color:transparent}link-to:hover{color:rgb(0,86.1,178.5);text-decoration:none;cursor:pointer}route-view{display:none;flex:1}site-header{background-color:#fff;display:none;position:-webkit-sticky;position:sticky;top:0;height:var(--header-height)}#main{display:none;flex:1 auto;max-width:100%;overflow:hidden;flex-direction:column;overflow-y:scroll}.loaded #main,.loaded site-header,body.loaded,route-view.loaded{display:flex}route-view.left-panel-active{padding-left:var(--sidepanel-width)}@media (max-width:767.98px){#content{padding-left:0!important}}input[type=checkbox],input[type=radio]{cursor:pointer}button,button:active{outline:none}[tabindex=\\\"0\\\"]:focus-visible,aofl-list-option:focus-visible,button[type=button]:focus-visible,collapse-button:focus-visible{outline:1px solid #e50b0a;border:1px solid #e50b0a}.card{position:relative;display:flex;flex-direction:column;min-width:0;word-wrap:break-word;background-color:#fff;background-clip:border-box;border:1px solid rgba(0,0,0,.125);border-radius:.25rem}.card-body{flex:1 1 auto;padding:2rem}.card.rounded{border-radius:.8rem!important}@keyframes progress-bar-stripes{0%{background-position:1.6rem 0}to{background-position:0 0}}.media{display:flex;align-items:flex-start}.modal-container{background-color:rgba(0,0,0,.2);position:fixed;top:0;bottom:0;right:0;left:0;z-index:var(--z-index-modal)}.modal-container :first-child{overflow:auto}.modal{position:relative;display:block;height:100vh}.modal-dialog-centered.modal-dialog-scrollable{height:auto;max-height:calc(100% - 2.8rem);min-height:auto}.modal-body,.modal-content,.modal-footer,.modal-header{border:none}.modal-header{font-size:2rem;padding:2.4rem}.modal-body{padding:0 2.4rem 4.8rem}.colored-header{color:#fff}.modal-body p{text-align:left}.colored-header-primary{background-color:#0d6efd}.colored-header-secondary{background-color:#adb5bd}.colored-header-success{background-color:#3c8104}.colored-header-info{background-color:#cfe2ff}.colored-header-warning{background-color:#e17a05}.colored-header-danger{background-color:#d20a09}.colored-header-light{background-color:#f8f9fa}.colored-header-dark{background-color:#000}@keyframes spinner-border{to{transform:rotate(1turn)}}@keyframes spinner-grow{0%{transform:scale(0)}50%{opacity:1}}.border-0{border:0!important}.rounded{border-radius:.4rem!important}.d-flex{display:flex!important}.flex-column{flex-direction:column!important}.justify-content-center{justify-content:center!important}.align-items-center{align-items:center!important}@media (min-width:768px){.flex-md-row{flex-direction:row!important}}.w-100{width:100%!important}.mb-2{margin-bottom:.5rem!important}.mb-4{margin-bottom:1.5rem!important}.mb-5{margin-bottom:3rem!important}@media (min-width:768px){.mb-md-1{margin-bottom:.25rem!important}.pt-md-3{padding-top:1rem!important}.pb-md-4{padding-bottom:1.5rem!important}}@media (min-width:992px){.mb-lg-3{margin-bottom:1rem!important}}.text-muted{color:#6c757d!important}[hidden]{visibility:hidden!important;height:0!important;width:0!important;min-height:unset!important}@media print{*,:after,:before{text-shadow:none!important;box-shadow:none!important}@page{size:a3}}@media print{main::-webkit-scrollbar{display:none}main{-ms-overflow-style:none;scrollbar-width:none}}@page{size:A4;margin:20mm 16mm 20mm 16mm}:host{display:flex;flex:1 auto;flex-direction:column;position:relative;background:#f4faff}@keyframes revolve-colors{0%,29%,to{background:#ffad19}33%,62%{background:#008510}66%,96%{background:#d24428}}#content{padding:2rem 1rem}.card{margin:0 auto;width:100%}@media (min-width:375px){#content{padding-top:6rem}.card{margin:0 auto;max-width:35.9rem}}@media (min-width:768px){#content{padding-top:12rem}.card{margin:0 auto;max-width:73.6rem}#aofl-banner{width:62rem}#login-box{width:28rem}.card-body{min-width:30rem}}@media (min-width:992px){.card{max-width:90rem}#aofl-banner{width:62rem}#login-box{width:28rem}}@media (min-width:1200px){.card{max-width:100.4rem}#aofl-banner{width:64.5rem}#login-box{width:35.9rem}}\", \"\"]);\n","exports = module.exports = require(\"../../../../../node_modules/css-loader/dist/runtime/api.js\")(false);\n// Imports\nexports.i(require(\"-!../../../../../node_modules/css-loader/dist/cjs.js??ref--5-1!../../../../../node_modules/postcss-loader/src/index.js??ref--5-2!../../../../../node_modules/@aofl/webcomponent-css-loader/index.js??ref--5-3!../../../../template/main/css/index.css\"), \"\");\n// Module\nexports.push([module.id, \".row>div .font-weight-bold{color:var(--blue)}.row>div .font-weight-bold:hover{cursor:pointer}\", \"\"]);\n","import {until} from 'lit-html/directives/until';\nimport {wrapUnsafeHtml} from \"@modules/wrap-unsafe-html\";\nimport {generalAriaLabels} from '@modules/i18n-labels';\nimport '@modules/aofl-form';\n\nexport default (ctx, html) => html`\n \n
\n
\n
\n \n
\n \n
\n
\n
\n \n
\n
\n`;\n","import {AoflElement, customElement, property} from '@aofl/element';\nimport {i18nMixin} from '@aofl/i18n-mixin';\nimport translations from '@routes/dashboard/i18n';\nimport debounce from 'debounce';\nimport styles from './template.css';\nimport template from './template';\n\n/**\n * @summary ItemSearchForm\n * @extends {AoflElement}\n */\n@customElement('object-search-form')\nclass ObjectSearchForm extends i18nMixin(AoflElement) {\n /**\n * Creates an instance of ObjectSearchForm.\n */\n constructor() {\n super();\n this.translations = translations;\n this.queryDebounce = debounce((e) => {\n this.sendSearchEvent();\n }, 200);\n }\n /**\n * @readonly\n */\n static is = 'object-search-form';\n\n @property({type: String})\n placeholder = '';\n\n @property({type: String, attribute: true})\n searchTerm = '';\n\n @property({type: String, attribute: true})\n ['reset-text'] = 'Clear';\n\n @property({type: Boolean, attribute: false})\n ['column-layout'] = false;\n\n search(e) {\n e.preventDefault();\n const formData = new FormData(e.target);\n this.searchTerm = formData.get('search_term');\n this.sendSearchEvent();\n }\n\n sendSearchEvent() {\n this.dispatchEvent(new CustomEvent('on-search', {\n detail: {\n field: 'name',\n query: this.searchTerm\n },\n composed: true\n }));\n }\n\n clearSearch() {\n this.searchTerm = '';\n this.sendSearchEvent();\n }\n\n onInput(e) {\n this.searchTerm = e.target.value;\n this.queryDebounce();\n }\n\n disconnectedCallback() {\n this.searchTerm = '';\n super.disconnectedCallback();\n }\n\n focusSearch() {\n this.shadowRoot.getElementById('query').focus();\n }\n\n /**\n * @return {Object}\n */\n render() {\n return super.render({\n default: {template, styles: [styles]}\n });\n }\n}\n\nexport default ObjectSearchForm;\n","exports = module.exports = require(\"../../../../../node_modules/css-loader/dist/runtime/api.js\")(false);\n// Imports\nvar getUrl = require(\"../../../../../node_modules/css-loader/dist/runtime/getUrl.js\");\nvar ___CSS_LOADER_URL___0___ = getUrl(require(\"../../../../template/main/fonts/aofl-sans/aoflsans-light.woff2\"));\nvar ___CSS_LOADER_URL___1___ = getUrl(require(\"../../../../template/main/fonts/aofl-sans/aoflsans-lightit.woff2\"));\nvar ___CSS_LOADER_URL___2___ = getUrl(require(\"../../../../template/main/fonts/aofl-sans/aoflsans-reg.woff2\"));\nvar ___CSS_LOADER_URL___3___ = getUrl(require(\"../../../../template/main/fonts/aofl-sans/aoflsans-regit.woff2\"));\nvar ___CSS_LOADER_URL___4___ = getUrl(require(\"../../../../template/main/fonts/aofl-sans/aoflsans-sbold.woff2\"));\nvar ___CSS_LOADER_URL___5___ = getUrl(require(\"../../../../template/main/fonts/aofl-sans/aoflsans-sboldit.woff2\"));\nvar ___CSS_LOADER_URL___6___ = getUrl(require(\"../../../../template/main/fonts/aofl-sans/aoflsans-bold.woff2\"));\nvar ___CSS_LOADER_URL___7___ = getUrl(require(\"../../../../template/main/fonts/aofl-sans/aoflsans-boldit.woff2\"));\nvar ___CSS_LOADER_URL___8___ = getUrl(require(\"../../../../template/main/fonts/abcmouse-sans/ABCmouseSans-Light.woff2\"));\nvar ___CSS_LOADER_URL___9___ = getUrl(require(\"../../../../template/main/fonts/abcmouse-sans/ABCmouseSans-LightIt.woff2\"));\nvar ___CSS_LOADER_URL___10___ = getUrl(require(\"../../../../template/main/fonts/abcmouse-sans/ABCmouseSans-Regular.woff2\"));\nvar ___CSS_LOADER_URL___11___ = getUrl(require(\"../../../../template/main/fonts/abcmouse-sans/ABCmouseSans-RegularIt.woff2\"));\nvar ___CSS_LOADER_URL___12___ = getUrl(require(\"../../../../template/main/fonts/abcmouse-sans/ABCmouseSans-Semibold.woff2\"));\nvar ___CSS_LOADER_URL___13___ = getUrl(require(\"../../../../template/main/fonts/abcmouse-sans/ABCmouseSans-SemiboldIt.woff2\"));\nvar ___CSS_LOADER_URL___14___ = getUrl(require(\"../../../../template/main/fonts/abcmouse-sans/ABCmouseSans-Bold.woff2\"));\nvar ___CSS_LOADER_URL___15___ = getUrl(require(\"../../../../template/main/fonts/abcmouse-sans/ABCmouseSans-BoldIt.woff2\"));\nvar ___CSS_LOADER_URL___16___ = getUrl(require(\"../../../../template/main/fonts/abcmouse-sans/ABCmouseSans-ExtraBold.woff2\"));\nvar ___CSS_LOADER_URL___17___ = getUrl(require(\"../../../../template/main/fonts/abcmouse-sans/ABCmouseSans-ExtraBoldIt.woff2\"));\nvar ___CSS_LOADER_URL___18___ = getUrl(require(\"../../../../template/main/fonts/aofl-icons/icomoon.woff2?c6f21u\"));\n// Module\nexports.push([module.id, \"/*! @aofl-component */:root{--blue:#0d6efd;--indigo:#6610f2;--purple:#8b42ca;--pink:#e83e8c;--red:#e50b0a;--orange:#e17a05;--yellow:#ffc107;--green:#3c8104;--teal:#20c997;--cyan:#53c9dc;--white:#fff;--gray:#6b6b6b;--gray-dark:#343a40;--light-green:#b1dd53;--table-border-color:#d8d8d8;--gray-100:#f2f2f2;--gray-200:#d9d9d9;--gray-300:#d8d8d8;--gray-400:#ced4da;--gray-500:#adb5bd;--gray-600:#6c757d;--gray-700:#4a4a4a;--gray-800:#343a40;--gray-900:#212529;--gray-accessibility:#6b6b6b;--primary:#0d6efd;--secondary:#adb5bd;--success:#3c8104;--info:#cfe2ff;--warning:#e17a05;--danger:#d20a09;--light:#f8f9fa;--dark:#000;--breakpoint-xxs:0;--breakpoint-xs:375px;--breakpoint-sm:576px;--breakpoint-md:768px;--breakpoint-lg:992px;--breakpoint-xl:1200px;--font-family-sans-serif:aofl-sans,Arial,Helvetica,sans-serif;--font-family-monospace:SFMono-Regular,Menlo,Monaco,Consolas,\\\"Liberation Mono\\\",\\\"Courier New\\\",monospace;--z-index-dropdown:1000;--z-index-sticky:1020;--z-index-fixed:1030;--z-index-modal-backdrop:1040;--z-index-modal:1050;--z-index-popover:1060;--z-index-tooltip:1070;--header-height:6rem;--content-height:calc(100vh - 6rem);--sidepanel-width:20rem;--purple-color:#641da3;--purple-600:#956abc;--purple-400:#c7afdd;--purple-200:#e0d2ed;--struggling:#f6993b;--below-target:#ffcf00;--in_progress:#1280f5;--prior_knowledge:#edf887;--mastery_achieved:#69d112;--inactive:#d8d8d8}route-view{max-width:1200px}@font-face{font-family:aofl-sans;font-style:normal;font-weight:300;src:url(\" + ___CSS_LOADER_URL___0___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:italic;font-weight:300;src:url(\" + ___CSS_LOADER_URL___1___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:normal;font-weight:400;src:url(\" + ___CSS_LOADER_URL___2___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:italic;font-weight:400;src:url(\" + ___CSS_LOADER_URL___3___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:normal;font-weight:600;src:url(\" + ___CSS_LOADER_URL___4___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:italic;font-weight:600;src:url(\" + ___CSS_LOADER_URL___5___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:normal;font-weight:700;src:url(\" + ___CSS_LOADER_URL___6___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:italic;font-weight:700;src:url(\" + ___CSS_LOADER_URL___7___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:normal;font-weight:300;src:url(\" + ___CSS_LOADER_URL___8___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:italic;font-weight:300;src:url(\" + ___CSS_LOADER_URL___9___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:normal;font-weight:400;src:url(\" + ___CSS_LOADER_URL___10___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:italic;font-weight:400;src:url(\" + ___CSS_LOADER_URL___11___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:normal;font-weight:600;src:url(\" + ___CSS_LOADER_URL___12___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:italic;font-weight:600;src:url(\" + ___CSS_LOADER_URL___13___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:normal;font-weight:700;src:url(\" + ___CSS_LOADER_URL___14___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:italic;font-weight:700;src:url(\" + ___CSS_LOADER_URL___15___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:normal;font-weight:800;src:url(\" + ___CSS_LOADER_URL___16___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:italic;font-weight:800;src:url(\" + ___CSS_LOADER_URL___17___ + \") format(\\\"woff2\\\")}@font-face{font-family:icomoon;src:url(\" + ___CSS_LOADER_URL___18___ + \") format(\\\"woff2\\\");font-weight:400;font-style:normal;font-display:block}[class*=\\\" ai-\\\"],[class^=ai-]{font-family:icomoon!important;speak:never;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.ai-close-icon:before{content:\\\"\\\\e912\\\"}*,:after,:before{box-sizing:border-box}html{font-family:sans-serif;line-height:1.15;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:rgba(0,0,0,0)}figcaption,main,nav,section{display:block}[tabindex=\\\"-1\\\"]:focus{outline:0!important}h4{margin-bottom:1rem}h4,p{margin-top:0}p{margin-bottom:1.6rem}strong{font-weight:bolder}caption{padding-top:.75rem;padding-bottom:.75rem;color:#6c757d;text-align:left;caption-side:bottom}button{border-radius:0}button:focus{outline:1px dotted;outline:5px auto -webkit-focus-ring-color}button,input{margin:0;font-family:inherit;font-size:inherit;line-height:inherit;overflow:visible}button{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]:not(:disabled),[type=reset]:not(:disabled),[type=submit]:not(:disabled),button:not(:disabled){cursor:pointer}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{padding:0;border-style:none}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}input[type=date],input[type=datetime-local],input[type=month],input[type=time]{-webkit-appearance:listbox}legend{display:block;width:100%;max-width:100%;padding:0;margin-bottom:.5rem;font-size:1.5rem;line-height:inherit;color:inherit;white-space:normal}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:none}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}summary{display:list-item;cursor:pointer}template{display:none}[hidden]{display:none!important}*{-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important}html{font-size:62.5%;height:100%}link-to{color:#0d6efd;text-decoration:none;background-color:transparent}link-to:hover{color:rgb(0,86.1,178.5);text-decoration:none;cursor:pointer}route-view{display:none;flex:1}site-header{background-color:#fff;display:none;position:-webkit-sticky;position:sticky;top:0;height:var(--header-height)}#main{display:none;flex:1 auto;max-width:100%;overflow:hidden;flex-direction:column;overflow-y:scroll}.loaded #main,.loaded site-header,body.loaded,route-view.loaded{display:flex}route-view.left-panel-active{padding-left:var(--sidepanel-width)}.h4,h4{margin-bottom:1rem;font-weight:500;line-height:1.2;font-size:1.6rem}.row{display:flex;flex-wrap:wrap;margin-right:-15px;margin-left:-15px}.col-lg-4,.col-md-6,.col-sm-6,.col-xl-4{position:relative;width:100%;padding-right:15px;padding-left:15px}@media (min-width:576px){.col-sm-6{flex:0 0 50%;max-width:50%}}@media (min-width:768px){.col-md-6{flex:0 0 50%;max-width:50%}}@media (min-width:992px){.col-lg-4{flex:0 0 33.3333333333%;max-width:33.3333333333%}}@media (min-width:1200px){.col-xl-4{flex:0 0 33.3333333333%;max-width:33.3333333333%}}input[type=checkbox],input[type=radio]{cursor:pointer}.btn{display:inline-block;font-weight:400;color:#000;text-align:center;vertical-align:middle;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;background-color:transparent;border:1px solid transparent;padding:.375rem .75rem;font-size:1.6rem;line-height:1.5;border-radius:.25rem;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.btn{transition:none}}.btn:hover{color:#000;text-decoration:none}.btn.focus,.btn:focus{outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.btn:disabled{opacity:.65}.btn-primary{color:#fff;background-color:#0d6efd;border-color:#0d6efd}.btn-primary:hover{color:#fff;background-color:rgb(1.8668032787,92.4067622951,225.8831967213);border-color:rgb(1.762295082,87.2336065574,213.237704918)}.btn-primary.focus,.btn-primary:focus{box-shadow:0 0 0 .2rem rgba(49.3,131.75,253.3,.5)}.btn-primary:disabled{color:#fff;background-color:#0d6efd;border-color:#0d6efd}.btn-primary:not(:disabled):not(.disabled):active{color:#fff;background-color:rgb(1.762295082,87.2336065574,213.237704918);border-color:rgb(1.6577868852,82.0604508197,200.5922131148)}.btn-primary:not(:disabled):not(.disabled):active:focus{box-shadow:0 0 0 .2rem rgba(49.3,131.75,253.3,.5)}.btn-outline-primary{color:#0d6efd;border-color:#0d6efd}.btn-outline-primary:hover{color:#fff;background-color:#0d6efd;border-color:#0d6efd}.btn-outline-primary.focus,.btn-outline-primary:focus{box-shadow:0 0 0 .2rem rgba(13,110,253,.5)}.btn-outline-primary:disabled{color:#0d6efd;background-color:transparent}.btn-outline-primary:not(:disabled):not(.disabled):active{color:#fff;background-color:#0d6efd;border-color:#0d6efd}.btn-outline-primary:not(:disabled):not(.disabled):active:focus{box-shadow:0 0 0 .2rem rgba(13,110,253,.5)}.btn-block{display:block;width:100%}.btn-block+.btn-block{margin-top:.8rem}input[type=button].btn-block,input[type=reset].btn-block,input[type=submit].btn-block{width:100%}.btn:disabled{cursor:not-allowed}link-to.btn:disabled,link-to.btn[disabled]{pointer-events:none}button,button:active{outline:none}.btn:focus-visible,[tabindex=\\\"0\\\"]:focus-visible,aofl-list-option:focus-visible,button[type=button]:focus-visible,collapse-button:focus-visible{outline:1px solid #e50b0a;border:1px solid #e50b0a}.btn-primary:focus-visible .btn-outline-primary:focus-visible{outline-offset:2px;outline:2px solid #e50b0a}.btn-outline-primary,.btn-primary{font-weight:600;border-width:2px}.btn:disabled{background:#cfe2ff;border-color:#cfe2ff;color:#0d6efd;opacity:1}ems-dropdown>button.btn{display:flex;align-items:center;border:1px solid var(--gray)}@keyframes progress-bar-stripes{0%{background-position:1.6rem 0}to{background-position:0 0}}.close{float:right;font-size:1rem;font-weight:700;line-height:1;color:#000;text-shadow:0 1px 0 #fff;opacity:.5}.close:hover{color:#000;text-decoration:none}.close:not(:disabled):not(.disabled):focus,.close:not(:disabled):not(.disabled):hover{opacity:.75}button.close{padding:0;background-color:transparent;border:0;-webkit-appearance:none;-moz-appearance:none;appearance:none}.close,.close:not(:disabled):not(.disabled):focus,.close:not(:disabled):not(.disabled):hover{opacity:1}.modal-header{display:flex;align-items:flex-start;justify-content:space-between;padding:1rem;border-bottom:1px solid #dee2e6;border-top-left-radius:.3rem;border-top-right-radius:.3rem}.modal-header .close{padding:1rem;margin:-2.4rem -2.4rem -2.4rem auto}.modal-body{position:relative;flex:1 1 auto;padding:2.4rem}.modal-footer{display:flex;align-items:center;justify-content:flex-end;padding:2.4rem;border-top:1px solid #dee2e6;border-bottom-right-radius:.3rem;border-bottom-left-radius:.3rem}.modal-footer>:not(:first-child){margin-left:.25rem}.modal-footer>:not(:last-child){margin-right:.25rem}.modal-container{background-color:rgba(0,0,0,.2);position:fixed;top:0;bottom:0;right:0;left:0;z-index:var(--z-index-modal)}.modal-container :first-child{overflow:auto}.modal{position:relative;display:block;height:100vh}.modal-dialog-centered.modal-dialog-scrollable{height:auto;max-height:calc(100% - 2.8rem);min-height:auto}.modal-body,.modal-content,.modal-footer,.modal-header{border:none}.modal-header{font-size:2rem;padding:2.4rem}.modal-body{padding:0 2.4rem 4.8rem}.colored-header{color:#fff}.modal-body p{text-align:left}.colored-header-primary{background-color:#0d6efd}.colored-header-secondary{background-color:#adb5bd}.colored-header-success{background-color:#3c8104}.colored-header-info{background-color:#cfe2ff}.colored-header-warning{background-color:#e17a05}.colored-header-danger{background-color:#d20a09}.colored-header-light{background-color:#f8f9fa}.colored-header-dark{background-color:#000}@keyframes spinner-border{to{transform:rotate(1turn)}}@keyframes spinner-grow{0%{transform:scale(0)}50%{opacity:1}}.rounded-pill{border-radius:80rem!important}.justify-content-start{justify-content:flex-start!important}.justify-content-center{justify-content:center!important}.w-100{width:100%!important}.m-0{margin:0!important}.mt-5{margin-top:3rem!important}.pt-5{padding-top:3rem!important}[hidden]{visibility:hidden!important;height:0!important;width:0!important;min-height:unset!important}@media print{*,:after,:before{text-shadow:none!important;box-shadow:none!important}p{orphans:3;widows:3}@page{size:a3}}@media print{main::-webkit-scrollbar{display:none}main{-ms-overflow-style:none;scrollbar-width:none}}@page{size:A4;margin:20mm 16mm 20mm 16mm}:host{display:block;font-size:.9em}\", \"\"]);\n","import {until} from 'lit-html/directives/until';\nimport '@modules/dropdown';\nimport {dashboardLabels, generalLabels, gradesLabels} from '@modules/i18n-labels';\nimport {generalAriaLabels} from '@modules/i18n-labels';\nimport '@modules/aofl-form';\n\n/**\n * I had to include this because the styles are getting stripped out on build otherwise\n */\nconst cssClasses = ['bg-prior_knowledge', 'bg-in_progress', 'bg-mastery_achieved', 'bg-intervention'];\n\nconst getStatusFilter = (ctx, html) => html`\n \n \n
\n \n ${Object.values(ctx.nodeStatuses).map((item) => html`\n \n `)}\n
\n
`;\n\nconst getSearchInput = (ctx, html) => html`\n
\n 0) ? until(ctx.i18n.__('', 'Search for a Skill or Standard Code')) : until(ctx.i18n.__('', 'Search for a Skill'))}\"\n @input=\"${ctx.nameFilterInputDebounce}\"\n title=\"Search for a Skill\"\n value=\"${ctx.filters.nameFilter}\">\n
\n \n
\n
\n`;\nconst getGradeFilter = (ctx, html) => {\n if (ctx['for-student-view']) {\n return;\n }\n\n if (ctx.filters.standardSetFilter || (ctx.standardSets.length === 0 && ctx.grades.length)) {\n return html`\n \n \n
\n \n ${ctx.grades.map((grade) => html`\n \n `)}\n
\n
`;\n }\n};\n\nconst getStandardSetFilter = (ctx, html) => {\n if (!ctx['for-student-view'] && ctx.standardSets.length > 0) {\n return html `\n \n \n
\n ctx.setStandardSetFilter(null)}}\"\n data-bi-id=\"standard_set_filter_all_${ctx.product}\">\n ${until(ctx.__('', 'All Standard Sets'))}\n \n ${ctx.standardSets.map((standardSet) => html`\n ctx.setStandardSetFilter(standardSet.value)}\"\n data-bi-id=\"standard_set_filter_${standardSet.label}_${ctx.product}\">\n ${until(standardSet.label)}\n \n `)}\n
\n
`;\n }\n};\nconst getStandardCategoryFilter = (ctx, html) => {\n if ((ctx.filters.gradeFilter || ctx['for-student-view']) && ctx.standardSets.length > 0) {\n return html`\n \n \n
\n ctx.setStandardCategoryFilter(null)}}\"\n data-bi-id=\"standard_category_filter_all_${ctx.product}\">\n ${until(generalLabels.all)}\n \n ${ctx.loParents.map((standardCategory) => html`\n \n `)}\n
\n
`;\n }\n};\n\nconst getResetButton = (ctx, html) => html`\n \n`;\n\nexport default (ctx, html) => html`\n\n ${ctx['for-student-view'] ?\n html`\n ${getStandardSetFilter(ctx, html)}\n
\n ${getSearchInput(ctx, html)}\n ${getStatusFilter(ctx, html)}\n ${getGradeFilter(ctx, html)}\n ${getStandardCategoryFilter(ctx, html)}\n
\n ${getResetButton(ctx, html)}\n ` :\n html`\n
\n
\n ${getSearchInput(ctx, html)}\n ${getStandardSetFilter(ctx, html)}\n ${getGradeFilter(ctx, html)}\n ${getStandardCategoryFilter(ctx, html)}\n
\n ${getStatusFilter(ctx, html)}\n ${getResetButton(ctx, html)}\n
\n
\n \n
\n `}\n \n
\n`;\n","import {storeInstance} from '@aofl/store/dist/legacy';\nimport {sdoNs} from '@modules/constants-enumerate';\nimport {deepAssign} from '@aofl/object-utils';\nimport {dashboardLabels} from '@modules/i18n-labels';\n\nconst sdo = {\n namespace: sdoNs.PROGRESS_FILTERS_VIEW,\n mutations: {\n init() {\n return {\n filters: {\n nameFilter: '',\n statusFilter: '',\n gradeFilter: '',\n standardSetFilter: '',\n standardCategoryFilter: '',\n activeThisWeekFilter: false,\n },\n clickedFilters: {\n nameFilter: false,\n statusFilter: false,\n gradeFilter: false,\n standardSetFilter: false,\n standardCategoryFilter: false,\n activeThisWeekFilter: false,\n },\n skillsLoaded: false,\n skillInfo: [],\n grades: [],\n externalStandardSets: [],\n loParents: [],\n loParentsCategory: '',\n skillCountsPerGrade: {}\n };\n },\n resetFiltersExceptSet(subState) {\n return {\n ...subState,\n filters: {\n ...subState.filters,\n nameFilter: '',\n statusFilter: '',\n gradeFilter: '',\n standardCategoryFilter: '',\n activeThisWeekFilter: false\n }\n };\n },\n setData(subState, payload) {\n return {\n ...subState,\n data: {\n node_codes: payload.node_codes,\n external_standards: payload.external_standards\n }\n };\n },\n setGrades(subState, gradesBuckets) {\n const grades = gradesBuckets.map((item) => item.key);\n return {\n ...subState,\n grades\n };\n },\n setGradeFilter(subState, payload) {\n const filters = {\n ...subState.filters,\n };\n filters.gradeFilter = payload;\n filters.standardCategoryFilter = '';\n const nextState = {\n ...subState,\n filters,\n clickedFilters: {\n ...subState.clickedFilters,\n gradeFilter: true,\n standardCategoryFilter: false,\n }\n };\n return nextState;\n },\n setStandardSetFilter(subState, payload) {\n return {\n ...subState,\n filters: {\n ...subState.filters,\n standardSetFilter: payload,\n gradeFilter: '',\n standardCategoryFilter: '',\n },\n clickedFilters: {\n ...subState.clickedFilters,\n standardSetFilter: true,\n gradeFilter: false,\n standardCategoryFilter: false,\n }\n };\n },\n setStandardCategoryFilter(subState, payload) {\n return {\n ...subState,\n filters: {\n ...subState.filters,\n standardCategoryFilter: payload,\n },\n clickedFilters: {\n ...subState.clickedFilters,\n standardCategoryFilter: true,\n }\n };\n },\n setNameFilter(subState, payload) {\n return {\n ...subState,\n filters: {\n ...subState.filters,\n nameFilter: payload\n },\n clickedFilters: {\n ...subState.clickedFilters,\n nameFilter: true,\n }\n };\n },\n setStatusFilter(subState, payload) {\n return {\n ...subState,\n filters: {\n ...subState.filters,\n statusFilter: payload\n },\n clickedFilters: {\n ...subState.clickedFilters,\n statusFilter: true\n }\n };\n },\n setSkillCountsPerGrade(subState, payload) {\n const skillCountsPerGrade = {};\n let grades = [];\n const coreGrades = [\n 'Pre-K',\n 'Kindergarten',\n '1st Grade',\n '2nd Grade'\n ];\n payload.map((item) => {\n skillCountsPerGrade[item.key] = item.doc_count;\n if (coreGrades.includes(item.key)) {\n grades.push(item.key);\n }\n });\n // To sort grades\n grades = coreGrades.filter(value => grades.includes(value));\n return {\n ...subState,\n grades,\n skillCountsPerGrade,\n };\n },\n setActiveThisWeekFilter(subState, payload) {\n return {\n ...subState,\n filters: {\n ...subState.filters,\n activeThisWeekFilter: payload\n },\n clickedFilters: {\n ...subState.clickedFilters,\n activeThisWeekFilter: true,\n }\n };\n },\n resetFilters(subState) {\n return {\n ...subState,\n filters: {\n nameFilter: '',\n statusFilter: '',\n standardSetFilter: '',\n gradeFilter: '',\n standardCategoryFilter: '',\n activeThisWeekFilter: false\n },\n clickedFilters: {\n nameFilter: false,\n statusFilter: false,\n gradeFilter: false,\n standardSetFilter: false,\n standardCategoryFilter: false,\n activeThisWeekFilter: false,\n }\n };\n }\n },\n decorators: [\n (nextState) => { // $hasFilter\n const state = storeInstance.getState();\n const progressFiltersState = state[sdoNs.PROGRESS_FILTERS_VIEW];\n const progressFiltersNextState = nextState[sdoNs.PROGRESS_FILTERS_VIEW];\n let $hasFilter = false;\n\n if (progressFiltersNextState.filters !== progressFiltersState.filters) {\n // Check if any are not empty\n if (progressFiltersNextState.filters.nameFilter ||\n progressFiltersNextState.filters.statusFilter ||\n progressFiltersNextState.filters.gradeFilter ||\n progressFiltersNextState.filters.standardSetFilter ||\n progressFiltersNextState.filters.standardCategoryFilter ||\n progressFiltersNextState.filters.activeThisWeekFilter) {\n $hasFilter = true;\n }\n\n nextState = deepAssign(nextState, sdoNs.PROGRESS_FILTERS_VIEW, {\n $hasFilter,\n });\n }\n return nextState;\n },\n (nextState) => { // $standardSets\n const state = storeInstance.getState();\n const subState = state[sdoNs.PROGRESS_FILTERS_VIEW];\n const nextSubState = nextState[sdoNs.PROGRESS_FILTERS_VIEW];\n const $standardSets = [];\n\n if (\n typeof nextSubState.$standardSets === 'undefined' ||\n nextSubState.externalStandardSets !== subState.externalStandardSets\n ) {\n if (\n nextSubState.externalStandardSets &&\n Object.values(nextSubState.externalStandardSets).length > 0\n ) {\n for (const [id, standard] of Object.entries(nextSubState.externalStandardSets)) {\n $standardSets.push({\n value: standard.id,\n label: standard.properties.name\n });\n }\n }\n nextState = deepAssign(nextState, sdoNs.PROGRESS_FILTERS_VIEW, {\n $standardSets,\n });\n }\n return nextState;\n },\n (nextState) => { // $selectedStandardSet\n const state = storeInstance.getState();\n const subState = state[sdoNs.PROGRESS_FILTERS_VIEW];\n const nextSubState = nextState[sdoNs.PROGRESS_FILTERS_VIEW];\n let $selectedStandardSet = {};\n\n if (\n typeof nextSubState.$selectedStandardSet === 'undefined' ||\n nextSubState.$standardSets !== subState.$standardSets ||\n nextSubState.filters.standardSetFilter !== subState.filters.standardSetFilter\n ) {\n nextSubState.$standardSets.map((standardSet) => {\n if (standardSet.value === nextSubState.filters.standardSetFilter) {\n $selectedStandardSet = {\n ...standardSet\n };\n }\n });\n nextState = deepAssign(nextState, sdoNs.PROGRESS_FILTERS_VIEW, {\n $selectedStandardSet,\n });\n }\n return nextState;\n },\n (nextState) => { // $filtersForBI\n const state = storeInstance.getState();\n const subState = state[sdoNs.PROGRESS_FILTERS_VIEW];\n const nextSubState = nextState[sdoNs.PROGRESS_FILTERS_VIEW];\n const $filtersForBI = [];\n\n if (typeof nextSubState.$filtersForBI === 'undefined' || subState.clickedFilters !== nextSubState.clickedFilters) {\n for (const [key, clicked] of Object.entries(nextSubState.clickedFilters)) {\n if (clicked) {\n let filterValue = nextSubState.filters[key];\n if (filterValue === '') {\n filterValue = 'all';\n }\n $filtersForBI.push({key, value: filterValue});\n }\n }\n nextState = deepAssign(nextState, sdoNs.PROGRESS_FILTERS_VIEW, {\n $filtersForBI\n });\n }\n return nextState;\n },\n (nextState) => { // $loParentsSelectedCategory\n const state = storeInstance.getState();\n const subState = state[sdoNs.PROGRESS_FILTERS_VIEW];\n const nextSubState = nextState[sdoNs.PROGRESS_FILTERS_VIEW];\n let $loParentsSelectedCategory = '';\n\n if (\n typeof nextSubState.$selectedStandardSet === 'undefined' ||\n nextSubState.filters.grade !== subState.filters.grade ||\n nextSubState.filters.standardCategoryFilter !== subState.filters.standardCategoryFilter ||\n nextSubState.loParentsCategory !== subState.loParentsCategory\n ) {\n\n if (nextSubState.filters.standardCategoryFilter === '') {\n $loParentsSelectedCategory = dashboardLabels.selectCategory(nextSubState.loParentsCategory);\n } else {\n $loParentsSelectedCategory = nextSubState.filters.standardCategoryFilter;\n }\n nextState = deepAssign(nextState, sdoNs.PROGRESS_FILTERS_VIEW, {\n $loParentsSelectedCategory,\n });\n }\n return nextState;\n },\n ]\n};\n\nstoreInstance.addState(sdo);\n","import styles from './template.css';\nimport template from './template';\nimport {AoflElement, customElement, property} from '@aofl/element';\nimport {storeInstance} from '@aofl/store/dist/legacy';\nimport {i18nMixin} from '@aofl/i18n-mixin';\nimport {\n sdoNs,\n nodeStatuses as statuses,\n products\n} from '@modules/constants-enumerate';\nimport '@routes/dashboard/modules/mastery-legacy/mm-teacher-dashboard/sdo';\nimport '@modules/session-sdo';\nimport '@modules/simple-modal/sdo';\nimport {dashboardLabels, generalLabels} from '@modules/i18n-labels';\nimport './sdo';\nimport translations from '@modules/i18n';\nimport {ApiService} from '@modules/api-service';\nimport debounce from 'debounce';\nimport {DashboardUtils} from '@modules/dashboard-utils';\n\n/**\n * @summary ProgressFiltersView\n * @extends {AoflElement}\n */\n@customElement('progress-filters-view')\nclass ProgressFiltersView extends i18nMixin(AoflElement) {\n /**\n * Creates an instance of ProgressFiltersView.\n */\n constructor() {\n super();\n this.storeInstance = storeInstance;\n this.translations = translations;\n this.searchDebounce = debounce(this.nameFilterInput, 250);\n }\n\n // Things are this order to prioritize the important things a teacher sees at\n // the top\n @property({type: Array})\n nodeStatuses = [\n statuses.INTERVENTION,\n statuses.IN_PROGRESS,\n statuses.PRIOR_KNOWLEDGE,\n statuses.MASTERY_ACHIEVED\n ];\n\n @property({type: Object})\n nodeStatusInfo = {\n intervention: dashboardLabels.STRUGGLING,\n in_progress: dashboardLabels.IN_PROGRESS,\n mastery_achieved: dashboardLabels.COMPLETED,\n prior_knowledge: dashboardLabels.PRIOR_KNOWLEDGE,\n };\n\n @property({type: Object, mapState: `${sdoNs.PROGRESS_FILTERS_VIEW}.filters`, store: storeInstance})\n filters = {};\n\n @property({type: Array, mapState: `${sdoNs.PROGRESS_FILTERS_VIEW}.$standardSets`, store: storeInstance})\n standardSets = [];\n\n @property({type: Array, mapState: `${sdoNs.PROGRESS_FILTERS_VIEW}.loParents`, store: storeInstance})\n loParents = [];\n\n @property({type: Array, mapState: `${sdoNs.PROGRESS_FILTERS_VIEW}.grades`, store: storeInstance})\n grades = [];\n\n @property({type: String})\n selectedStatus = dashboardLabels.SELECT_A_STATUS;\n\n @property({type: Object, mapState: `${sdoNs.PROGRESS_FILTERS_VIEW}.$selectedStandardSet`, store: storeInstance})\n selectedStandardSet = {};\n\n @property({type: Array, mapState: `${sdoNs.PROGRESS_FILTERS_VIEW}.$loParentsSelectedCategory`, store: storeInstance})\n selectedStandardCategory = '';\n\n @property({type: Boolean, attribute: true})\n ['for-student-view'] = false;\n\n @property({type: Boolean, attribute: true})\n ['autoselect-standard-set'] = false;\n\n @property({type: String, attribute: true})\n product = '';\n\n @property({type: Boolean, attribute: true})\n ['prevent-reset'] = false;\n\n async connectedCallback() {\n super.connectedCallback();\n\n let standardSetFilter = null;\n\n await this.getNodeExternalStandards();\n if (this['for-student-view']) {\n const resp = await this.searchSkills();\n this.updateLOParentsDropdowns(resp);\n } else {\n if (this['autoselect-standard-set']) {\n const state = storeInstance.getState();\n const externalStandards = state[sdoNs.SESSION].settings?.external_standards || [];\n standardSetFilter = externalStandards[0] || null;\n }\n await this.setStandardSetFilter(standardSetFilter);\n }\n }\n\n async getNodeExternalStandards() {\n const state = storeInstance.getState();\n const externalStandards = state[sdoNs.SESSION].settings?.external_standards || [];\n if (externalStandards.length) {\n const resp = await ApiService.activityMetadataGetKnowledgeComponent(externalStandards, this.product);\n storeInstance.commit(\n {\n namespace: sdoNs.PROGRESS_FILTERS_VIEW,\n mutationId: 'setExternalStandardSets',\n payload: resp.results\n },\n );\n }\n }\n\n setNameFilter(e) {\n e.preventDefault();\n const formData = new FormData(e.target);\n const name = (formData.get('name') || '').trim();\n this.storeInstance.commit({\n namespace: sdoNs.PROGRESS_FILTERS_VIEW,\n mutationId: 'setNameFilter',\n payload: name\n });\n this.sendFilterChangeEvent('name', name);\n }\n\n nameFilterInputDebounce(e) {\n this.searchDebounce(e.target.value);\n }\n\n nameFilterInput(value) {\n const name = (value).trim();\n this.storeInstance.commit({\n namespace: sdoNs.PROGRESS_FILTERS_VIEW,\n mutationId: 'setNameFilter',\n payload: name\n });\n this.searchSkills();\n this.sendFilterChangeEvent('name', name);\n }\n\n setStatusFilter(filter) {\n const status = (filter || '').trim().toLowerCase();\n this.selectedStatus = this.nodeStatusInfo[filter] || generalLabels.all;\n this.storeInstance.commit({\n namespace: sdoNs.PROGRESS_FILTERS_VIEW,\n mutationId: 'setStatusFilter',\n payload: status\n });\n this.sendFilterChangeEvent('status', status);\n }\n\n async setGradeFilter(filter) {\n this.storeInstance.commit(\n {namespace: sdoNs.PROGRESS_FILTERS_VIEW, mutationId: 'setGradeFilter', payload: filter},\n );\n const resp = await this.searchSkills();\n this.updateLOParentsDropdowns(resp);\n this.sendFilterChangeEvent('grade', filter);\n }\n\n updateGradesDropdowns(resp) {\n this.setStandardCategoryFilter(null);\n let gradesBucket = [];\n\n // check if org has external standards\n // if exists, then read from external standards filtered grades\n if (resp?.aggregations?.external_standards?.doc_count > 0) {\n gradesBucket = resp?.aggregations?.external_standards?.filtered?.grade?.buckets || [];\n } else {\n // else read from grades\n gradesBucket = resp?.aggregations?.grades?.buckets || [];\n }\n storeInstance.commit({\n namespace: sdoNs.PROGRESS_FILTERS_VIEW,\n mutationId: 'setSkillCountsPerGrade',\n payload: gradesBucket\n });\n\n this.updateLOParentsDropdowns(resp);\n }\n\n updateLOParentsDropdowns(resp, updateLOCategories = true) {\n if (this.standardSets.length > 0) {\n const loParentsBucket = resp?.aggregations?.external_standards?.filtered?.lo_parent_name?.buckets || [];\n const loParents = loParentsBucket.map((item) => item.key);\n const loParentsCategory = resp?.aggregations?.external_standards?.filtered?.lo_parent_type?.buckets[0]?.key.trim() || '';\n const commits = [{namespace: sdoNs.PROGRESS_FILTERS_VIEW, mutationId: 'setLoParentsCategory', payload: loParentsCategory}];\n if (updateLOCategories) {\n commits.push({namespace: sdoNs.PROGRESS_FILTERS_VIEW, mutationId: 'setLoParents', payload: loParents});\n }\n this.storeInstance.commit(...commits);\n }\n }\n\n async setStandardSetFilter(filter) {\n const standardSetFilter = filter || '';\n this.storeInstance.commit(\n {namespace: sdoNs.PROGRESS_FILTERS_VIEW, mutationId: 'setStandardSetFilter', payload: standardSetFilter},\n );\n const resp = await this.searchSkills();\n this.updateGradesDropdowns(resp);\n\n this.sendFilterChangeEvent('standardSet', filter);\n }\n\n async searchSkills() {\n this.storeInstance.commit(\n {namespace: sdoNs.PROGRESS_FILTERS_VIEW, mutationId: 'setSkillsLoaded', payload: false},\n );\n let product = this.product;\n // Skills on db are stored as my_reading_academy and my_math_academy.\n // for the legacy products, we point to these but have to hardcode\n // like so\n if (this.product === products.MATH_ACADEMY) {\n product = products.MY_MATH_ACADEMY;\n } else if (this.product === products.READING_MASTERY) {\n product = products.MY_READING_ACADEMY;\n }\n const resp = await DashboardUtils.skillsSearchCall(product, ['id', 'name', 'grades']);\n this.storeInstance.commit(\n {namespace: sdoNs.PROGRESS_FILTERS_VIEW, mutationId: 'setSkillInfo', payload: resp.results},\n {namespace: sdoNs.PROGRESS_FILTERS_VIEW, mutationId: 'setSkillsLoaded', payload: true}\n );\n return resp;\n }\n\n async setStandardCategoryFilter(filter) {\n this.selectedStandardCategory = (filter === null) ? generalLabels.all : filter;\n this.storeInstance.commit({\n namespace: sdoNs.PROGRESS_FILTERS_VIEW,\n mutationId: 'setStandardCategoryFilter',\n payload: (filter === null) ? '' : filter\n });\n const resp = await this.searchSkills();\n this.updateLOParentsDropdowns(resp, false);\n this.sendFilterChangeEvent('standardSetCategory', filter);\n }\n\n setActiveThisWeek(e) {\n const checked = e.target.checked;\n this.storeInstance.commit({\n namespace: sdoNs.PROGRESS_FILTERS_VIEW,\n mutationId: 'setActiveThisWeekFilter',\n payload: checked\n });\n this.sendFilterChangeEvent('activeThisWeek', checked);\n }\n\n resetFilters() {\n this.selectedStatus = dashboardLabels.SELECT_A_STATUS;\n if (this.standardSets.length > 1) {\n this.selectedStandardSet = dashboardLabels.SELECT_A_STANDARD_SET;\n this.selectedStandardCategory = '';\n }\n\n if (this['for-student-view']) {\n this.storeInstance.commit(\n {namespace: sdoNs.PROGRESS_FILTERS_VIEW, mutationId: 'resetFiltersExceptSet'},\n );\n } else {\n this.storeInstance.commit(\n {namespace: sdoNs.PROGRESS_FILTERS_VIEW, mutationId: 'resetFilters'},\n );\n }\n this.setStandardSetFilter(this.filters.standardSetFilter);\n }\n\n sendFilterChangeEvent(key, value) {\n this.dispatchEvent(new CustomEvent('filter-change', {\n detail: {\n key,\n value\n },\n composed: true\n }));\n }\n\n disconnectedCallback() {\n if (!this['prevent-reset']) {\n this.resetFilters();\n }\n super.disconnectedCallback();\n }\n\n /**\n * @readonly\n */\n static is = 'progress-filters-view';\n\n /**\n * @return {Object}\n */\n render() {\n return super.render({\n default: {\n template,\n styles: [styles]\n }\n });\n }\n}\n\nexport default ProgressFiltersView;\n","import {until} from 'lit-html/directives/until';\nimport {formLabels} from '@modules/i18n-labels';\nimport {exceptionCodes, pages} from '@modules/constants-enumerate';\nimport {routerInstance} from '@aofl/router';\nimport SessionActions from '@modules/session-sdo';\n\nconst renderErrors = (ctx, html) => {\n if (!ctx.errorCode) {\n return '';\n }\n\n let message;\n if (!ctx.form.code.isRequired.valid) {\n message = formLabels.required;\n }\n\n if (ctx.errorCode === exceptionCodes.INPUT_INVALID_REDEEM_CODE) {\n message = ctx.__('', 'The code you entered is not valid. Please check your code and try again.');\n }\n\n if (ctx.errorCode === exceptionCodes.LOGIC_GENERAL) {\n message = ctx.__('', 'Looks like you already have the maximum number of children in your ABC​mouse Aprende Inglés account. You cannot add a new child.');\n }\n\n if (ctx.errorCode === 114109) {\n message = ctx.__('', 'Your redeem code has expired.');\n }\n\n if (ctx.errorCode === 114112) {\n message = ctx.__('', 'This code has already been redeemed and is connected to an existing family account. Log in to your account to sync any new products assigned to your child.');\n if (!ctx.loggedIn) {\n message.then((val) => {\n setTimeout(() => {\n SessionActions.logout().then(() => {\n routerInstance.navigate(pages.HOME + '?message=' + encodeURI(val.strings[0]), {});\n });\n }, 150); /** @todo temporary hack - wait for drawer to close */\n });\n }\n }\n\n return html`\n
\n

\n ${until(message)}\n

\n
`;\n};\nconst getLabel = (ctx) => {\n if (ctx.forLoggedInParent) {\n return ctx.__('', 'Please enter your access code');\n }\n return ctx.__('', 'Please enter your redeem code');\n};\n\nconst getBtnLabel = (ctx) => {\n if (ctx.forLoggedInParent) {\n return ctx.__('', 'Redeem');\n }\n return formLabels.submit;\n};\n\nexport default (ctx, html) => html`\n
\n
\n \n \n ${renderErrors(ctx, html)}\n
\n ${until(formLabels.submit)}\n \n`;\n","import styles from './template.css';\nimport template from './template';\nimport {AoflElement, customElement, property} from '@aofl/element';\nimport {isRequired, validationMixin} from '@aofl/form-validate';\nimport {i18nMixin} from '@aofl/i18n-mixin';\nimport translations from '../../i18n';\nimport {sdoNs} from '@modules/constants-enumerate';\nimport {storeInstance} from '@aofl/store/dist/legacy';\n\n/**\n * @summary RedeemCodeForm\n * @extends {AoflElement}\n */\n@customElement('redeem-code-form')\nclass RedeemCodeForm extends validationMixin(i18nMixin(AoflElement)) {\n @property({type: Boolean})\n submitting = false;\n\n @property({type: String})\n code = '';\n\n @property({type: Number})\n errorCode;\n\n @property({type: Boolean, attribute: 'for-logged-in-parent'})\n forLoggedInParent = false;\n\n @property({type: Boolean, attribute: false, mapState: `${sdoNs.SESSION}.loggedIn`, store: storeInstance})\n loggedIn = false;\n\n /**\n * Creates an instance of RedeemCodeForm.\n */\n constructor() {\n super();\n this.translations = translations;\n\n this.validators = {\n code: {\n isRequired\n },\n };\n }\n\n connectedCallback() {\n super.connectedCallback();\n if (this.code) {\n this.form.validate();\n }\n }\n\n /**\n * @readonly\n */\n static is = 'redeem-code-form';\n\n updateCode(e) {\n this.code = e.target.value.trim();\n this.form.code.validate();\n }\n\n async submit(e) {\n e.preventDefault();\n this.form.validate();\n await this.form.validateComplete;\n\n if (this.form.valid) {\n this.validateCode(this.code);\n }\n }\n\n validateCode(code) {\n this.errorCode = 0;\n this.dispatchEvent(new CustomEvent('submit', {detail: {code}}));\n }\n\n setErrors(error) {\n this.errorCode = error.code;\n }\n\n /**\n * @return {Object}\n */\n render() {\n return super.render({\n default: {\n template,\n styles: [styles]\n }\n });\n }\n}\n\nexport default RedeemCodeForm;\n","exports = module.exports = require(\"../../../node_modules/css-loader/dist/runtime/api.js\")(false);\n// Imports\nvar getUrl = require(\"../../../node_modules/css-loader/dist/runtime/getUrl.js\");\nvar ___CSS_LOADER_URL___0___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-light.woff2\"));\nvar ___CSS_LOADER_URL___1___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-lightit.woff2\"));\nvar ___CSS_LOADER_URL___2___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-reg.woff2\"));\nvar ___CSS_LOADER_URL___3___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-regit.woff2\"));\nvar ___CSS_LOADER_URL___4___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-sbold.woff2\"));\nvar ___CSS_LOADER_URL___5___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-sboldit.woff2\"));\nvar ___CSS_LOADER_URL___6___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-bold.woff2\"));\nvar ___CSS_LOADER_URL___7___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-boldit.woff2\"));\nvar ___CSS_LOADER_URL___8___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-Light.woff2\"));\nvar ___CSS_LOADER_URL___9___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-LightIt.woff2\"));\nvar ___CSS_LOADER_URL___10___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-Regular.woff2\"));\nvar ___CSS_LOADER_URL___11___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-RegularIt.woff2\"));\nvar ___CSS_LOADER_URL___12___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-Semibold.woff2\"));\nvar ___CSS_LOADER_URL___13___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-SemiboldIt.woff2\"));\nvar ___CSS_LOADER_URL___14___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-Bold.woff2\"));\nvar ___CSS_LOADER_URL___15___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-BoldIt.woff2\"));\nvar ___CSS_LOADER_URL___16___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-ExtraBold.woff2\"));\nvar ___CSS_LOADER_URL___17___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-ExtraBoldIt.woff2\"));\nvar ___CSS_LOADER_URL___18___ = getUrl(require(\"../../template/main/fonts/aofl-icons/icomoon.woff2?c6f21u\"));\n// Module\nexports.push([module.id, \"/*! @aofl-component */:root{--blue:#0d6efd;--indigo:#6610f2;--purple:#8b42ca;--pink:#e83e8c;--red:#e50b0a;--orange:#e17a05;--yellow:#ffc107;--green:#3c8104;--teal:#20c997;--cyan:#53c9dc;--white:#fff;--gray:#6b6b6b;--gray-dark:#343a40;--light-green:#b1dd53;--table-border-color:#d8d8d8;--gray-100:#f2f2f2;--gray-200:#d9d9d9;--gray-300:#d8d8d8;--gray-400:#ced4da;--gray-500:#adb5bd;--gray-600:#6c757d;--gray-700:#4a4a4a;--gray-800:#343a40;--gray-900:#212529;--gray-accessibility:#6b6b6b;--primary:#0d6efd;--secondary:#adb5bd;--success:#3c8104;--info:#cfe2ff;--warning:#e17a05;--danger:#d20a09;--light:#f8f9fa;--dark:#000;--breakpoint-xxs:0;--breakpoint-xs:375px;--breakpoint-sm:576px;--breakpoint-md:768px;--breakpoint-lg:992px;--breakpoint-xl:1200px;--font-family-sans-serif:aofl-sans,Arial,Helvetica,sans-serif;--font-family-monospace:SFMono-Regular,Menlo,Monaco,Consolas,\\\"Liberation Mono\\\",\\\"Courier New\\\",monospace;--z-index-dropdown:1000;--z-index-sticky:1020;--z-index-fixed:1030;--z-index-modal-backdrop:1040;--z-index-modal:1050;--z-index-popover:1060;--z-index-tooltip:1070;--header-height:6rem;--content-height:calc(100vh - 6rem);--sidepanel-width:20rem;--purple-color:#641da3;--purple-600:#956abc;--purple-400:#c7afdd;--purple-200:#e0d2ed;--struggling:#f6993b;--below-target:#ffcf00;--in_progress:#1280f5;--prior_knowledge:#edf887;--mastery_achieved:#69d112;--inactive:#d8d8d8}route-view{max-width:1200px}@font-face{font-family:aofl-sans;font-style:normal;font-weight:300;src:url(\" + ___CSS_LOADER_URL___0___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:italic;font-weight:300;src:url(\" + ___CSS_LOADER_URL___1___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:normal;font-weight:400;src:url(\" + ___CSS_LOADER_URL___2___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:italic;font-weight:400;src:url(\" + ___CSS_LOADER_URL___3___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:normal;font-weight:600;src:url(\" + ___CSS_LOADER_URL___4___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:italic;font-weight:600;src:url(\" + ___CSS_LOADER_URL___5___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:normal;font-weight:700;src:url(\" + ___CSS_LOADER_URL___6___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:italic;font-weight:700;src:url(\" + ___CSS_LOADER_URL___7___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:normal;font-weight:300;src:url(\" + ___CSS_LOADER_URL___8___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:italic;font-weight:300;src:url(\" + ___CSS_LOADER_URL___9___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:normal;font-weight:400;src:url(\" + ___CSS_LOADER_URL___10___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:italic;font-weight:400;src:url(\" + ___CSS_LOADER_URL___11___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:normal;font-weight:600;src:url(\" + ___CSS_LOADER_URL___12___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:italic;font-weight:600;src:url(\" + ___CSS_LOADER_URL___13___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:normal;font-weight:700;src:url(\" + ___CSS_LOADER_URL___14___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:italic;font-weight:700;src:url(\" + ___CSS_LOADER_URL___15___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:normal;font-weight:800;src:url(\" + ___CSS_LOADER_URL___16___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:italic;font-weight:800;src:url(\" + ___CSS_LOADER_URL___17___ + \") format(\\\"woff2\\\")}@font-face{font-family:icomoon;src:url(\" + ___CSS_LOADER_URL___18___ + \") format(\\\"woff2\\\");font-weight:400;font-style:normal;font-display:block}[class*=\\\" ai-\\\"],[class^=ai-]{font-family:icomoon!important;speak:never;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.ai-chevron-down:before{content:\\\"\\\\e90d\\\"}*,:after,:before{box-sizing:border-box}html{font-family:sans-serif;line-height:1.15;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:rgba(0,0,0,0)}figcaption,main,nav,section{display:block}[tabindex=\\\"-1\\\"]:focus{outline:0!important}strong{font-weight:bolder}caption{padding-top:.75rem;padding-bottom:.75rem;color:#6c757d;text-align:left;caption-side:bottom}label{display:inline-block;margin-bottom:.8rem}button{border-radius:0}button:focus{outline:1px dotted;outline:5px auto -webkit-focus-ring-color}button,input{margin:0;font-family:inherit;font-size:inherit;line-height:inherit;overflow:visible}button{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]:not(:disabled),[type=reset]:not(:disabled),[type=submit]:not(:disabled),button:not(:disabled){cursor:pointer}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{padding:0;border-style:none}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}input[type=date],input[type=datetime-local],input[type=month],input[type=time]{-webkit-appearance:listbox}legend{display:block;width:100%;max-width:100%;padding:0;margin-bottom:.5rem;font-size:1.5rem;line-height:inherit;color:inherit;white-space:normal}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:none}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}summary{display:list-item;cursor:pointer}template{display:none}[hidden]{display:none!important}*{-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important}html{font-size:62.5%;height:100%}link-to{color:#0d6efd;text-decoration:none;background-color:transparent}link-to:hover{color:rgb(0,86.1,178.5);text-decoration:none;cursor:pointer}route-view{display:none;flex:1}site-header{background-color:#fff;display:none;position:-webkit-sticky;position:sticky;top:0;height:var(--header-height)}#main{display:none;flex:1 auto;max-width:100%;overflow:hidden;flex-direction:column;overflow-y:scroll}.loaded #main,.loaded site-header,body.loaded,route-view.loaded{display:flex}route-view.left-panel-active{padding-left:var(--sidepanel-width)}.form-control{display:block;width:100%;height:calc(1.5em + .75rem + 2px);padding:.375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:#495057;background-color:#fff;background-clip:padding-box;border:1px solid #ced4da;border-radius:.25rem;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.form-control{transition:none}}.form-control::-ms-expand{background-color:transparent;border:0}.form-control:focus{color:#495057;background-color:#fff;border-color:rgb(127.5,189,255);outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.form-control::-webkit-input-placeholder{color:#6c757d;opacity:1}.form-control::-moz-placeholder{color:#6c757d;opacity:1}.form-control:-ms-input-placeholder{color:#6c757d;opacity:1}.form-control::-ms-input-placeholder{color:#6c757d;opacity:1}.form-control::placeholder{color:#6c757d;opacity:1}.form-control:disabled,.form-control[readonly]{background-color:#e9ecef;opacity:1}.form-control{font-size:1.5rem;height:4.8rem;padding:1.2rem 1rem}.form-control[multiple]{padding:0}.form-control[multiple] option{padding:.8rem 1.2rem}input[type=checkbox],input[type=radio]{cursor:pointer}input[type=checkbox]+label,input[type=radio]+label{cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.form-control{border:1px solid #6b6b6b}.form-control:focus{border-color:#0d6efd}.btn{display:inline-block;font-weight:400;color:#000;text-align:center;vertical-align:middle;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;background-color:transparent;border:1px solid transparent;padding:.375rem .75rem;font-size:1.6rem;line-height:1.5;border-radius:.25rem;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.btn{transition:none}}.btn:hover{color:#000;text-decoration:none}.btn:focus{outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.btn.disabled,.btn:disabled{opacity:.65}.btn-outline-light{color:#f8f9fa;border-color:#f8f9fa}.btn-outline-light:hover{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-outline-light:focus{box-shadow:0 0 0 .2rem rgba(248,249,250,.5)}.btn-outline-light.disabled,.btn-outline-light:disabled{color:#f8f9fa;background-color:transparent}.btn-outline-light:not(:disabled):not(.disabled):active{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-outline-light:not(:disabled):not(.disabled):active:focus{box-shadow:0 0 0 .2rem rgba(248,249,250,.5)}.btn:disabled{cursor:not-allowed}.btn.disabled,link-to.btn.disabled,link-to.btn:disabled,link-to.btn[disabled]{pointer-events:none}.btn-outline-light{color:#000;border-color:#ced4da;background:#fff}.btn-outline-light:disabled{color:#000}.btn-outline-light:hover{border-color:#ced4da}button,button:active{outline:none}.btn:focus-visible,[tabindex=\\\"0\\\"]:focus-visible,aofl-list-option:focus-visible,button[type=button]:focus-visible,collapse-button:focus-visible{outline:1px solid #e50b0a;border:1px solid #e50b0a}.btn.disabled,.btn:disabled{background:#cfe2ff;border-color:#cfe2ff;color:#0d6efd;opacity:1}.dropdown{position:relative}.dropdown-toggle{white-space:nowrap}.dropdown-toggle:after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:\\\"\\\";border-top:.3em solid;border-right:.3em solid transparent;border-bottom:0;border-left:.3em solid transparent}.dropdown-toggle:empty:after{margin-left:0}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:16rem;padding:.8rem 0;margin:.2rem 0 0;font-size:1.3rem;color:#212529;text-align:left;list-style:none;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.15);border-radius:.25rem}.dropdown-menu[x-placement^=bottom],.dropdown-menu[x-placement^=left],.dropdown-menu[x-placement^=right],.dropdown-menu[x-placement^=top]{right:auto;bottom:auto}.dropdown-item{display:block;width:100%;padding:.8rem 2rem;clear:both;font-weight:400;color:#212529;text-align:inherit;white-space:nowrap;background-color:transparent;border:0}.dropdown-item:focus,.dropdown-item:hover{color:rgb(21.6283783784,24.25,26.8716216216);text-decoration:none;background-color:#d8d8d8}.dropdown-item:active{color:#fff;text-decoration:none;background-color:#0d6efd}.dropdown-item.disabled,.dropdown-item:disabled{color:#6c757d;pointer-events:none;background-color:transparent}.dropdown,.dropdown-menu{display:inline-block}.dropdown-menu{box-shadow:0 0 .6rem 0 #d8d8d8;float:none;position:relative;margin:.2rem .4rem .4rem 0;min-width:1rem}bulk-actions-button+.dropdown-menu{max-width:270px;width:100%}bulk-actions-button+.dropdown-menu .btn{font-size:1.2rem;font-weight:600}collapse-button .ai.ai-chevron-down:before{transform:rotate(-90deg);display:inline-block}ems-dropdown>button.btn{display:flex;align-items:center;border:1px solid var(--gray)}collapse-button[open] .ai.ai-chevron-down:before{transform:rotate(180deg)}collapse-button .ai.ai-chevron-down,ems-dropdown .ai.ai-chevron-down{font-size:.8rem}collapse-button .ai-chevron-down:before,ems-dropdown .ai-chevron-down:before{content:\\\"\\\\e90d\\\"}collapse-button[open] .ai-chevron-down:before,ems-dropdown[open] .ai-chevron-down:before{content:\\\"\\\\e90f\\\"}@keyframes progress-bar-stripes{0%{background-position:1.6rem 0}to{background-position:0 0}}.modal-container{background-color:rgba(0,0,0,.2);position:fixed;top:0;bottom:0;right:0;left:0;z-index:var(--z-index-modal)}.modal-container :first-child{overflow:auto}.modal{position:relative;display:block;height:100vh}.modal-dialog-centered.modal-dialog-scrollable{height:auto;max-height:calc(100% - 2.8rem);min-height:auto}.modal-body,.modal-content,.modal-footer,.modal-header{border:none}.modal-header{font-size:2rem;padding:2.4rem}.modal-body{padding:0 2.4rem 4.8rem}.colored-header{color:#fff}.modal-body p{text-align:left}.colored-header-primary{background-color:#0d6efd}.colored-header-secondary{background-color:#adb5bd}.colored-header-success{background-color:#3c8104}.colored-header-info{background-color:#cfe2ff}.colored-header-warning{background-color:#e17a05}.colored-header-danger{background-color:#d20a09}.colored-header-light{background-color:#f8f9fa}.colored-header-dark{background-color:#000}@keyframes spinner-border{to{transform:rotate(1turn)}}@keyframes spinner-grow{0%{transform:scale(0)}50%{opacity:1}}.d-flex{display:flex!important}.justify-content-between{justify-content:space-between!important}.w-100{width:100%!important}.m-0{margin:0!important}.mb-3{margin-bottom:1rem!important}.mr-4{margin-right:1.5rem!important}.text-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}[hidden]{visibility:hidden!important;height:0!important;width:0!important;min-height:unset!important}@media print{*,:after,:before{text-shadow:none!important;box-shadow:none!important}@page{size:a3}}@media print{main::-webkit-scrollbar{display:none}main{-ms-overflow-style:none;scrollbar-width:none}}@page{size:A4;margin:20mm 16mm 20mm 16mm}:host{display:inline-block}\", \"\"]);\n","/*!\n * Chart.js v3.4.1\n * https://www.chartjs.org\n * (c) 2021 Chart.js Contributors\n * Released under the MIT License\n */\nfunction fontString(pixelSize, fontStyle, fontFamily) {\n return fontStyle + ' ' + pixelSize + 'px ' + fontFamily;\n}\nconst requestAnimFrame = (function() {\n if (typeof window === 'undefined') {\n return function(callback) {\n return callback();\n };\n }\n return window.requestAnimationFrame;\n}());\nfunction throttled(fn, thisArg, updateFn) {\n const updateArgs = updateFn || ((args) => Array.prototype.slice.call(args));\n let ticking = false;\n let args = [];\n return function(...rest) {\n args = updateArgs(rest);\n if (!ticking) {\n ticking = true;\n requestAnimFrame.call(window, () => {\n ticking = false;\n fn.apply(thisArg, args);\n });\n }\n };\n}\nfunction debounce(fn, delay) {\n let timeout;\n return function() {\n if (delay) {\n clearTimeout(timeout);\n timeout = setTimeout(fn, delay);\n } else {\n fn();\n }\n return delay;\n };\n}\nconst _toLeftRightCenter = (align) => align === 'start' ? 'left' : align === 'end' ? 'right' : 'center';\nconst _alignStartEnd = (align, start, end) => align === 'start' ? start : align === 'end' ? end : (start + end) / 2;\nconst _textX = (align, left, right, rtl) => {\n const check = rtl ? 'left' : 'right';\n return align === check ? right : align === 'center' ? (left + right) / 2 : left;\n};\n\nfunction noop() {}\nconst uid = (function() {\n let id = 0;\n return function() {\n return id++;\n };\n}());\nfunction isNullOrUndef(value) {\n return value === null || typeof value === 'undefined';\n}\nfunction isArray(value) {\n if (Array.isArray && Array.isArray(value)) {\n return true;\n }\n const type = Object.prototype.toString.call(value);\n if (type.substr(0, 7) === '[object' && type.substr(-6) === 'Array]') {\n return true;\n }\n return false;\n}\nfunction isObject(value) {\n return value !== null && Object.prototype.toString.call(value) === '[object Object]';\n}\nconst isNumberFinite = (value) => (typeof value === 'number' || value instanceof Number) && isFinite(+value);\nfunction finiteOrDefault(value, defaultValue) {\n return isNumberFinite(value) ? value : defaultValue;\n}\nfunction valueOrDefault(value, defaultValue) {\n return typeof value === 'undefined' ? defaultValue : value;\n}\nconst toPercentage = (value, dimension) =>\n typeof value === 'string' && value.endsWith('%') ?\n parseFloat(value) / 100\n : value / dimension;\nconst toDimension = (value, dimension) =>\n typeof value === 'string' && value.endsWith('%') ?\n parseFloat(value) / 100 * dimension\n : +value;\nfunction callback(fn, args, thisArg) {\n if (fn && typeof fn.call === 'function') {\n return fn.apply(thisArg, args);\n }\n}\nfunction each(loopable, fn, thisArg, reverse) {\n let i, len, keys;\n if (isArray(loopable)) {\n len = loopable.length;\n if (reverse) {\n for (i = len - 1; i >= 0; i--) {\n fn.call(thisArg, loopable[i], i);\n }\n } else {\n for (i = 0; i < len; i++) {\n fn.call(thisArg, loopable[i], i);\n }\n }\n } else if (isObject(loopable)) {\n keys = Object.keys(loopable);\n len = keys.length;\n for (i = 0; i < len; i++) {\n fn.call(thisArg, loopable[keys[i]], keys[i]);\n }\n }\n}\nfunction _elementsEqual(a0, a1) {\n let i, ilen, v0, v1;\n if (!a0 || !a1 || a0.length !== a1.length) {\n return false;\n }\n for (i = 0, ilen = a0.length; i < ilen; ++i) {\n v0 = a0[i];\n v1 = a1[i];\n if (v0.datasetIndex !== v1.datasetIndex || v0.index !== v1.index) {\n return false;\n }\n }\n return true;\n}\nfunction clone$1(source) {\n if (isArray(source)) {\n return source.map(clone$1);\n }\n if (isObject(source)) {\n const target = Object.create(null);\n const keys = Object.keys(source);\n const klen = keys.length;\n let k = 0;\n for (; k < klen; ++k) {\n target[keys[k]] = clone$1(source[keys[k]]);\n }\n return target;\n }\n return source;\n}\nfunction isValidKey(key) {\n return ['__proto__', 'prototype', 'constructor'].indexOf(key) === -1;\n}\nfunction _merger(key, target, source, options) {\n if (!isValidKey(key)) {\n return;\n }\n const tval = target[key];\n const sval = source[key];\n if (isObject(tval) && isObject(sval)) {\n merge(tval, sval, options);\n } else {\n target[key] = clone$1(sval);\n }\n}\nfunction merge(target, source, options) {\n const sources = isArray(source) ? source : [source];\n const ilen = sources.length;\n if (!isObject(target)) {\n return target;\n }\n options = options || {};\n const merger = options.merger || _merger;\n for (let i = 0; i < ilen; ++i) {\n source = sources[i];\n if (!isObject(source)) {\n continue;\n }\n const keys = Object.keys(source);\n for (let k = 0, klen = keys.length; k < klen; ++k) {\n merger(keys[k], target, source, options);\n }\n }\n return target;\n}\nfunction mergeIf(target, source) {\n return merge(target, source, {merger: _mergerIf});\n}\nfunction _mergerIf(key, target, source) {\n if (!isValidKey(key)) {\n return;\n }\n const tval = target[key];\n const sval = source[key];\n if (isObject(tval) && isObject(sval)) {\n mergeIf(tval, sval);\n } else if (!Object.prototype.hasOwnProperty.call(target, key)) {\n target[key] = clone$1(sval);\n }\n}\nfunction _deprecated(scope, value, previous, current) {\n if (value !== undefined) {\n console.warn(scope + ': \"' + previous +\n\t\t\t'\" is deprecated. Please use \"' + current + '\" instead');\n }\n}\nconst emptyString = '';\nconst dot = '.';\nfunction indexOfDotOrLength(key, start) {\n const idx = key.indexOf(dot, start);\n return idx === -1 ? key.length : idx;\n}\nfunction resolveObjectKey(obj, key) {\n if (key === emptyString) {\n return obj;\n }\n let pos = 0;\n let idx = indexOfDotOrLength(key, pos);\n while (obj && idx > pos) {\n obj = obj[key.substr(pos, idx - pos)];\n pos = idx + 1;\n idx = indexOfDotOrLength(key, pos);\n }\n return obj;\n}\nfunction _capitalize(str) {\n return str.charAt(0).toUpperCase() + str.slice(1);\n}\nconst defined = (value) => typeof value !== 'undefined';\nconst isFunction = (value) => typeof value === 'function';\nconst setsEqual = (a, b) => {\n if (a.size !== b.size) {\n return false;\n }\n for (const item of a) {\n if (!b.has(item)) {\n return false;\n }\n }\n return true;\n};\n\nconst PI = Math.PI;\nconst TAU = 2 * PI;\nconst PITAU = TAU + PI;\nconst INFINITY = Number.POSITIVE_INFINITY;\nconst RAD_PER_DEG = PI / 180;\nconst HALF_PI = PI / 2;\nconst QUARTER_PI = PI / 4;\nconst TWO_THIRDS_PI = PI * 2 / 3;\nconst log10 = Math.log10;\nconst sign = Math.sign;\nfunction niceNum(range) {\n const roundedRange = Math.round(range);\n range = almostEquals(range, roundedRange, range / 1000) ? roundedRange : range;\n const niceRange = Math.pow(10, Math.floor(log10(range)));\n const fraction = range / niceRange;\n const niceFraction = fraction <= 1 ? 1 : fraction <= 2 ? 2 : fraction <= 5 ? 5 : 10;\n return niceFraction * niceRange;\n}\nfunction _factorize(value) {\n const result = [];\n const sqrt = Math.sqrt(value);\n let i;\n for (i = 1; i < sqrt; i++) {\n if (value % i === 0) {\n result.push(i);\n result.push(value / i);\n }\n }\n if (sqrt === (sqrt | 0)) {\n result.push(sqrt);\n }\n result.sort((a, b) => a - b).pop();\n return result;\n}\nfunction isNumber(n) {\n return !isNaN(parseFloat(n)) && isFinite(n);\n}\nfunction almostEquals(x, y, epsilon) {\n return Math.abs(x - y) < epsilon;\n}\nfunction almostWhole(x, epsilon) {\n const rounded = Math.round(x);\n return ((rounded - epsilon) <= x) && ((rounded + epsilon) >= x);\n}\nfunction _setMinAndMaxByKey(array, target, property) {\n let i, ilen, value;\n for (i = 0, ilen = array.length; i < ilen; i++) {\n value = array[i][property];\n if (!isNaN(value)) {\n target.min = Math.min(target.min, value);\n target.max = Math.max(target.max, value);\n }\n }\n}\nfunction toRadians(degrees) {\n return degrees * (PI / 180);\n}\nfunction toDegrees(radians) {\n return radians * (180 / PI);\n}\nfunction _decimalPlaces(x) {\n if (!isNumberFinite(x)) {\n return;\n }\n let e = 1;\n let p = 0;\n while (Math.round(x * e) / e !== x) {\n e *= 10;\n p++;\n }\n return p;\n}\nfunction getAngleFromPoint(centrePoint, anglePoint) {\n const distanceFromXCenter = anglePoint.x - centrePoint.x;\n const distanceFromYCenter = anglePoint.y - centrePoint.y;\n const radialDistanceFromCenter = Math.sqrt(distanceFromXCenter * distanceFromXCenter + distanceFromYCenter * distanceFromYCenter);\n let angle = Math.atan2(distanceFromYCenter, distanceFromXCenter);\n if (angle < (-0.5 * PI)) {\n angle += TAU;\n }\n return {\n angle,\n distance: radialDistanceFromCenter\n };\n}\nfunction distanceBetweenPoints(pt1, pt2) {\n return Math.sqrt(Math.pow(pt2.x - pt1.x, 2) + Math.pow(pt2.y - pt1.y, 2));\n}\nfunction _angleDiff(a, b) {\n return (a - b + PITAU) % TAU - PI;\n}\nfunction _normalizeAngle(a) {\n return (a % TAU + TAU) % TAU;\n}\nfunction _angleBetween(angle, start, end, sameAngleIsFullCircle) {\n const a = _normalizeAngle(angle);\n const s = _normalizeAngle(start);\n const e = _normalizeAngle(end);\n const angleToStart = _normalizeAngle(s - a);\n const angleToEnd = _normalizeAngle(e - a);\n const startToAngle = _normalizeAngle(a - s);\n const endToAngle = _normalizeAngle(a - e);\n return a === s || a === e || (sameAngleIsFullCircle && s === e)\n || (angleToStart > angleToEnd && startToAngle < endToAngle);\n}\nfunction _limitValue(value, min, max) {\n return Math.max(min, Math.min(max, value));\n}\nfunction _int16Range(value) {\n return _limitValue(value, -32768, 32767);\n}\n\nconst atEdge = (t) => t === 0 || t === 1;\nconst elasticIn = (t, s, p) => -(Math.pow(2, 10 * (t -= 1)) * Math.sin((t - s) * TAU / p));\nconst elasticOut = (t, s, p) => Math.pow(2, -10 * t) * Math.sin((t - s) * TAU / p) + 1;\nconst effects = {\n linear: t => t,\n easeInQuad: t => t * t,\n easeOutQuad: t => -t * (t - 2),\n easeInOutQuad: t => ((t /= 0.5) < 1)\n ? 0.5 * t * t\n : -0.5 * ((--t) * (t - 2) - 1),\n easeInCubic: t => t * t * t,\n easeOutCubic: t => (t -= 1) * t * t + 1,\n easeInOutCubic: t => ((t /= 0.5) < 1)\n ? 0.5 * t * t * t\n : 0.5 * ((t -= 2) * t * t + 2),\n easeInQuart: t => t * t * t * t,\n easeOutQuart: t => -((t -= 1) * t * t * t - 1),\n easeInOutQuart: t => ((t /= 0.5) < 1)\n ? 0.5 * t * t * t * t\n : -0.5 * ((t -= 2) * t * t * t - 2),\n easeInQuint: t => t * t * t * t * t,\n easeOutQuint: t => (t -= 1) * t * t * t * t + 1,\n easeInOutQuint: t => ((t /= 0.5) < 1)\n ? 0.5 * t * t * t * t * t\n : 0.5 * ((t -= 2) * t * t * t * t + 2),\n easeInSine: t => -Math.cos(t * HALF_PI) + 1,\n easeOutSine: t => Math.sin(t * HALF_PI),\n easeInOutSine: t => -0.5 * (Math.cos(PI * t) - 1),\n easeInExpo: t => (t === 0) ? 0 : Math.pow(2, 10 * (t - 1)),\n easeOutExpo: t => (t === 1) ? 1 : -Math.pow(2, -10 * t) + 1,\n easeInOutExpo: t => atEdge(t) ? t : t < 0.5\n ? 0.5 * Math.pow(2, 10 * (t * 2 - 1))\n : 0.5 * (-Math.pow(2, -10 * (t * 2 - 1)) + 2),\n easeInCirc: t => (t >= 1) ? t : -(Math.sqrt(1 - t * t) - 1),\n easeOutCirc: t => Math.sqrt(1 - (t -= 1) * t),\n easeInOutCirc: t => ((t /= 0.5) < 1)\n ? -0.5 * (Math.sqrt(1 - t * t) - 1)\n : 0.5 * (Math.sqrt(1 - (t -= 2) * t) + 1),\n easeInElastic: t => atEdge(t) ? t : elasticIn(t, 0.075, 0.3),\n easeOutElastic: t => atEdge(t) ? t : elasticOut(t, 0.075, 0.3),\n easeInOutElastic(t) {\n const s = 0.1125;\n const p = 0.45;\n return atEdge(t) ? t :\n t < 0.5\n ? 0.5 * elasticIn(t * 2, s, p)\n : 0.5 + 0.5 * elasticOut(t * 2 - 1, s, p);\n },\n easeInBack(t) {\n const s = 1.70158;\n return t * t * ((s + 1) * t - s);\n },\n easeOutBack(t) {\n const s = 1.70158;\n return (t -= 1) * t * ((s + 1) * t + s) + 1;\n },\n easeInOutBack(t) {\n let s = 1.70158;\n if ((t /= 0.5) < 1) {\n return 0.5 * (t * t * (((s *= (1.525)) + 1) * t - s));\n }\n return 0.5 * ((t -= 2) * t * (((s *= (1.525)) + 1) * t + s) + 2);\n },\n easeInBounce: t => 1 - effects.easeOutBounce(1 - t),\n easeOutBounce(t) {\n const m = 7.5625;\n const d = 2.75;\n if (t < (1 / d)) {\n return m * t * t;\n }\n if (t < (2 / d)) {\n return m * (t -= (1.5 / d)) * t + 0.75;\n }\n if (t < (2.5 / d)) {\n return m * (t -= (2.25 / d)) * t + 0.9375;\n }\n return m * (t -= (2.625 / d)) * t + 0.984375;\n },\n easeInOutBounce: t => (t < 0.5)\n ? effects.easeInBounce(t * 2) * 0.5\n : effects.easeOutBounce(t * 2 - 1) * 0.5 + 0.5,\n};\n\n/*!\n * @kurkle/color v0.1.9\n * https://github.com/kurkle/color#readme\n * (c) 2020 Jukka Kurkela\n * Released under the MIT License\n */\nconst map = {0: 0, 1: 1, 2: 2, 3: 3, 4: 4, 5: 5, 6: 6, 7: 7, 8: 8, 9: 9, A: 10, B: 11, C: 12, D: 13, E: 14, F: 15, a: 10, b: 11, c: 12, d: 13, e: 14, f: 15};\nconst hex = '0123456789ABCDEF';\nconst h1 = (b) => hex[b & 0xF];\nconst h2 = (b) => hex[(b & 0xF0) >> 4] + hex[b & 0xF];\nconst eq = (b) => (((b & 0xF0) >> 4) === (b & 0xF));\nfunction isShort(v) {\n\treturn eq(v.r) && eq(v.g) && eq(v.b) && eq(v.a);\n}\nfunction hexParse(str) {\n\tvar len = str.length;\n\tvar ret;\n\tif (str[0] === '#') {\n\t\tif (len === 4 || len === 5) {\n\t\t\tret = {\n\t\t\t\tr: 255 & map[str[1]] * 17,\n\t\t\t\tg: 255 & map[str[2]] * 17,\n\t\t\t\tb: 255 & map[str[3]] * 17,\n\t\t\t\ta: len === 5 ? map[str[4]] * 17 : 255\n\t\t\t};\n\t\t} else if (len === 7 || len === 9) {\n\t\t\tret = {\n\t\t\t\tr: map[str[1]] << 4 | map[str[2]],\n\t\t\t\tg: map[str[3]] << 4 | map[str[4]],\n\t\t\t\tb: map[str[5]] << 4 | map[str[6]],\n\t\t\t\ta: len === 9 ? (map[str[7]] << 4 | map[str[8]]) : 255\n\t\t\t};\n\t\t}\n\t}\n\treturn ret;\n}\nfunction hexString(v) {\n\tvar f = isShort(v) ? h1 : h2;\n\treturn v\n\t\t? '#' + f(v.r) + f(v.g) + f(v.b) + (v.a < 255 ? f(v.a) : '')\n\t\t: v;\n}\nfunction round(v) {\n\treturn v + 0.5 | 0;\n}\nconst lim = (v, l, h) => Math.max(Math.min(v, h), l);\nfunction p2b(v) {\n\treturn lim(round(v * 2.55), 0, 255);\n}\nfunction n2b(v) {\n\treturn lim(round(v * 255), 0, 255);\n}\nfunction b2n(v) {\n\treturn lim(round(v / 2.55) / 100, 0, 1);\n}\nfunction n2p(v) {\n\treturn lim(round(v * 100), 0, 100);\n}\nconst RGB_RE = /^rgba?\\(\\s*([-+.\\d]+)(%)?[\\s,]+([-+.e\\d]+)(%)?[\\s,]+([-+.e\\d]+)(%)?(?:[\\s,/]+([-+.e\\d]+)(%)?)?\\s*\\)$/;\nfunction rgbParse(str) {\n\tconst m = RGB_RE.exec(str);\n\tlet a = 255;\n\tlet r, g, b;\n\tif (!m) {\n\t\treturn;\n\t}\n\tif (m[7] !== r) {\n\t\tconst v = +m[7];\n\t\ta = 255 & (m[8] ? p2b(v) : v * 255);\n\t}\n\tr = +m[1];\n\tg = +m[3];\n\tb = +m[5];\n\tr = 255 & (m[2] ? p2b(r) : r);\n\tg = 255 & (m[4] ? p2b(g) : g);\n\tb = 255 & (m[6] ? p2b(b) : b);\n\treturn {\n\t\tr: r,\n\t\tg: g,\n\t\tb: b,\n\t\ta: a\n\t};\n}\nfunction rgbString(v) {\n\treturn v && (\n\t\tv.a < 255\n\t\t\t? `rgba(${v.r}, ${v.g}, ${v.b}, ${b2n(v.a)})`\n\t\t\t: `rgb(${v.r}, ${v.g}, ${v.b})`\n\t);\n}\nconst HUE_RE = /^(hsla?|hwb|hsv)\\(\\s*([-+.e\\d]+)(?:deg)?[\\s,]+([-+.e\\d]+)%[\\s,]+([-+.e\\d]+)%(?:[\\s,]+([-+.e\\d]+)(%)?)?\\s*\\)$/;\nfunction hsl2rgbn(h, s, l) {\n\tconst a = s * Math.min(l, 1 - l);\n\tconst f = (n, k = (n + h / 30) % 12) => l - a * Math.max(Math.min(k - 3, 9 - k, 1), -1);\n\treturn [f(0), f(8), f(4)];\n}\nfunction hsv2rgbn(h, s, v) {\n\tconst f = (n, k = (n + h / 60) % 6) => v - v * s * Math.max(Math.min(k, 4 - k, 1), 0);\n\treturn [f(5), f(3), f(1)];\n}\nfunction hwb2rgbn(h, w, b) {\n\tconst rgb = hsl2rgbn(h, 1, 0.5);\n\tlet i;\n\tif (w + b > 1) {\n\t\ti = 1 / (w + b);\n\t\tw *= i;\n\t\tb *= i;\n\t}\n\tfor (i = 0; i < 3; i++) {\n\t\trgb[i] *= 1 - w - b;\n\t\trgb[i] += w;\n\t}\n\treturn rgb;\n}\nfunction rgb2hsl(v) {\n\tconst range = 255;\n\tconst r = v.r / range;\n\tconst g = v.g / range;\n\tconst b = v.b / range;\n\tconst max = Math.max(r, g, b);\n\tconst min = Math.min(r, g, b);\n\tconst l = (max + min) / 2;\n\tlet h, s, d;\n\tif (max !== min) {\n\t\td = max - min;\n\t\ts = l > 0.5 ? d / (2 - max - min) : d / (max + min);\n\t\th = max === r\n\t\t\t? ((g - b) / d) + (g < b ? 6 : 0)\n\t\t\t: max === g\n\t\t\t\t? (b - r) / d + 2\n\t\t\t\t: (r - g) / d + 4;\n\t\th = h * 60 + 0.5;\n\t}\n\treturn [h | 0, s || 0, l];\n}\nfunction calln(f, a, b, c) {\n\treturn (\n\t\tArray.isArray(a)\n\t\t\t? f(a[0], a[1], a[2])\n\t\t\t: f(a, b, c)\n\t).map(n2b);\n}\nfunction hsl2rgb(h, s, l) {\n\treturn calln(hsl2rgbn, h, s, l);\n}\nfunction hwb2rgb(h, w, b) {\n\treturn calln(hwb2rgbn, h, w, b);\n}\nfunction hsv2rgb(h, s, v) {\n\treturn calln(hsv2rgbn, h, s, v);\n}\nfunction hue(h) {\n\treturn (h % 360 + 360) % 360;\n}\nfunction hueParse(str) {\n\tconst m = HUE_RE.exec(str);\n\tlet a = 255;\n\tlet v;\n\tif (!m) {\n\t\treturn;\n\t}\n\tif (m[5] !== v) {\n\t\ta = m[6] ? p2b(+m[5]) : n2b(+m[5]);\n\t}\n\tconst h = hue(+m[2]);\n\tconst p1 = +m[3] / 100;\n\tconst p2 = +m[4] / 100;\n\tif (m[1] === 'hwb') {\n\t\tv = hwb2rgb(h, p1, p2);\n\t} else if (m[1] === 'hsv') {\n\t\tv = hsv2rgb(h, p1, p2);\n\t} else {\n\t\tv = hsl2rgb(h, p1, p2);\n\t}\n\treturn {\n\t\tr: v[0],\n\t\tg: v[1],\n\t\tb: v[2],\n\t\ta: a\n\t};\n}\nfunction rotate(v, deg) {\n\tvar h = rgb2hsl(v);\n\th[0] = hue(h[0] + deg);\n\th = hsl2rgb(h);\n\tv.r = h[0];\n\tv.g = h[1];\n\tv.b = h[2];\n}\nfunction hslString(v) {\n\tif (!v) {\n\t\treturn;\n\t}\n\tconst a = rgb2hsl(v);\n\tconst h = a[0];\n\tconst s = n2p(a[1]);\n\tconst l = n2p(a[2]);\n\treturn v.a < 255\n\t\t? `hsla(${h}, ${s}%, ${l}%, ${b2n(v.a)})`\n\t\t: `hsl(${h}, ${s}%, ${l}%)`;\n}\nconst map$1 = {\n\tx: 'dark',\n\tZ: 'light',\n\tY: 're',\n\tX: 'blu',\n\tW: 'gr',\n\tV: 'medium',\n\tU: 'slate',\n\tA: 'ee',\n\tT: 'ol',\n\tS: 'or',\n\tB: 'ra',\n\tC: 'lateg',\n\tD: 'ights',\n\tR: 'in',\n\tQ: 'turquois',\n\tE: 'hi',\n\tP: 'ro',\n\tO: 'al',\n\tN: 'le',\n\tM: 'de',\n\tL: 'yello',\n\tF: 'en',\n\tK: 'ch',\n\tG: 'arks',\n\tH: 'ea',\n\tI: 'ightg',\n\tJ: 'wh'\n};\nconst names = {\n\tOiceXe: 'f0f8ff',\n\tantiquewEte: 'faebd7',\n\taqua: 'ffff',\n\taquamarRe: '7fffd4',\n\tazuY: 'f0ffff',\n\tbeige: 'f5f5dc',\n\tbisque: 'ffe4c4',\n\tblack: '0',\n\tblanKedOmond: 'ffebcd',\n\tXe: 'ff',\n\tXeviTet: '8a2be2',\n\tbPwn: 'a52a2a',\n\tburlywood: 'deb887',\n\tcaMtXe: '5f9ea0',\n\tKartYuse: '7fff00',\n\tKocTate: 'd2691e',\n\tcSO: 'ff7f50',\n\tcSnflowerXe: '6495ed',\n\tcSnsilk: 'fff8dc',\n\tcrimson: 'dc143c',\n\tcyan: 'ffff',\n\txXe: '8b',\n\txcyan: '8b8b',\n\txgTMnPd: 'b8860b',\n\txWay: 'a9a9a9',\n\txgYF: '6400',\n\txgYy: 'a9a9a9',\n\txkhaki: 'bdb76b',\n\txmagFta: '8b008b',\n\txTivegYF: '556b2f',\n\txSange: 'ff8c00',\n\txScEd: '9932cc',\n\txYd: '8b0000',\n\txsOmon: 'e9967a',\n\txsHgYF: '8fbc8f',\n\txUXe: '483d8b',\n\txUWay: '2f4f4f',\n\txUgYy: '2f4f4f',\n\txQe: 'ced1',\n\txviTet: '9400d3',\n\tdAppRk: 'ff1493',\n\tdApskyXe: 'bfff',\n\tdimWay: '696969',\n\tdimgYy: '696969',\n\tdodgerXe: '1e90ff',\n\tfiYbrick: 'b22222',\n\tflSOwEte: 'fffaf0',\n\tfoYstWAn: '228b22',\n\tfuKsia: 'ff00ff',\n\tgaRsbSo: 'dcdcdc',\n\tghostwEte: 'f8f8ff',\n\tgTd: 'ffd700',\n\tgTMnPd: 'daa520',\n\tWay: '808080',\n\tgYF: '8000',\n\tgYFLw: 'adff2f',\n\tgYy: '808080',\n\thoneyMw: 'f0fff0',\n\thotpRk: 'ff69b4',\n\tRdianYd: 'cd5c5c',\n\tRdigo: '4b0082',\n\tivSy: 'fffff0',\n\tkhaki: 'f0e68c',\n\tlavFMr: 'e6e6fa',\n\tlavFMrXsh: 'fff0f5',\n\tlawngYF: '7cfc00',\n\tNmoncEffon: 'fffacd',\n\tZXe: 'add8e6',\n\tZcSO: 'f08080',\n\tZcyan: 'e0ffff',\n\tZgTMnPdLw: 'fafad2',\n\tZWay: 'd3d3d3',\n\tZgYF: '90ee90',\n\tZgYy: 'd3d3d3',\n\tZpRk: 'ffb6c1',\n\tZsOmon: 'ffa07a',\n\tZsHgYF: '20b2aa',\n\tZskyXe: '87cefa',\n\tZUWay: '778899',\n\tZUgYy: '778899',\n\tZstAlXe: 'b0c4de',\n\tZLw: 'ffffe0',\n\tlime: 'ff00',\n\tlimegYF: '32cd32',\n\tlRF: 'faf0e6',\n\tmagFta: 'ff00ff',\n\tmaPon: '800000',\n\tVaquamarRe: '66cdaa',\n\tVXe: 'cd',\n\tVScEd: 'ba55d3',\n\tVpurpN: '9370db',\n\tVsHgYF: '3cb371',\n\tVUXe: '7b68ee',\n\tVsprRggYF: 'fa9a',\n\tVQe: '48d1cc',\n\tVviTetYd: 'c71585',\n\tmidnightXe: '191970',\n\tmRtcYam: 'f5fffa',\n\tmistyPse: 'ffe4e1',\n\tmoccasR: 'ffe4b5',\n\tnavajowEte: 'ffdead',\n\tnavy: '80',\n\tTdlace: 'fdf5e6',\n\tTive: '808000',\n\tTivedBb: '6b8e23',\n\tSange: 'ffa500',\n\tSangeYd: 'ff4500',\n\tScEd: 'da70d6',\n\tpOegTMnPd: 'eee8aa',\n\tpOegYF: '98fb98',\n\tpOeQe: 'afeeee',\n\tpOeviTetYd: 'db7093',\n\tpapayawEp: 'ffefd5',\n\tpHKpuff: 'ffdab9',\n\tperu: 'cd853f',\n\tpRk: 'ffc0cb',\n\tplum: 'dda0dd',\n\tpowMrXe: 'b0e0e6',\n\tpurpN: '800080',\n\tYbeccapurpN: '663399',\n\tYd: 'ff0000',\n\tPsybrown: 'bc8f8f',\n\tPyOXe: '4169e1',\n\tsaddNbPwn: '8b4513',\n\tsOmon: 'fa8072',\n\tsandybPwn: 'f4a460',\n\tsHgYF: '2e8b57',\n\tsHshell: 'fff5ee',\n\tsiFna: 'a0522d',\n\tsilver: 'c0c0c0',\n\tskyXe: '87ceeb',\n\tUXe: '6a5acd',\n\tUWay: '708090',\n\tUgYy: '708090',\n\tsnow: 'fffafa',\n\tsprRggYF: 'ff7f',\n\tstAlXe: '4682b4',\n\ttan: 'd2b48c',\n\tteO: '8080',\n\ttEstN: 'd8bfd8',\n\ttomato: 'ff6347',\n\tQe: '40e0d0',\n\tviTet: 'ee82ee',\n\tJHt: 'f5deb3',\n\twEte: 'ffffff',\n\twEtesmoke: 'f5f5f5',\n\tLw: 'ffff00',\n\tLwgYF: '9acd32'\n};\nfunction unpack() {\n\tconst unpacked = {};\n\tconst keys = Object.keys(names);\n\tconst tkeys = Object.keys(map$1);\n\tlet i, j, k, ok, nk;\n\tfor (i = 0; i < keys.length; i++) {\n\t\tok = nk = keys[i];\n\t\tfor (j = 0; j < tkeys.length; j++) {\n\t\t\tk = tkeys[j];\n\t\t\tnk = nk.replace(k, map$1[k]);\n\t\t}\n\t\tk = parseInt(names[ok], 16);\n\t\tunpacked[nk] = [k >> 16 & 0xFF, k >> 8 & 0xFF, k & 0xFF];\n\t}\n\treturn unpacked;\n}\nlet names$1;\nfunction nameParse(str) {\n\tif (!names$1) {\n\t\tnames$1 = unpack();\n\t\tnames$1.transparent = [0, 0, 0, 0];\n\t}\n\tconst a = names$1[str.toLowerCase()];\n\treturn a && {\n\t\tr: a[0],\n\t\tg: a[1],\n\t\tb: a[2],\n\t\ta: a.length === 4 ? a[3] : 255\n\t};\n}\nfunction modHSL(v, i, ratio) {\n\tif (v) {\n\t\tlet tmp = rgb2hsl(v);\n\t\ttmp[i] = Math.max(0, Math.min(tmp[i] + tmp[i] * ratio, i === 0 ? 360 : 1));\n\t\ttmp = hsl2rgb(tmp);\n\t\tv.r = tmp[0];\n\t\tv.g = tmp[1];\n\t\tv.b = tmp[2];\n\t}\n}\nfunction clone(v, proto) {\n\treturn v ? Object.assign(proto || {}, v) : v;\n}\nfunction fromObject(input) {\n\tvar v = {r: 0, g: 0, b: 0, a: 255};\n\tif (Array.isArray(input)) {\n\t\tif (input.length >= 3) {\n\t\t\tv = {r: input[0], g: input[1], b: input[2], a: 255};\n\t\t\tif (input.length > 3) {\n\t\t\t\tv.a = n2b(input[3]);\n\t\t\t}\n\t\t}\n\t} else {\n\t\tv = clone(input, {r: 0, g: 0, b: 0, a: 1});\n\t\tv.a = n2b(v.a);\n\t}\n\treturn v;\n}\nfunction functionParse(str) {\n\tif (str.charAt(0) === 'r') {\n\t\treturn rgbParse(str);\n\t}\n\treturn hueParse(str);\n}\nclass Color {\n\tconstructor(input) {\n\t\tif (input instanceof Color) {\n\t\t\treturn input;\n\t\t}\n\t\tconst type = typeof input;\n\t\tlet v;\n\t\tif (type === 'object') {\n\t\t\tv = fromObject(input);\n\t\t} else if (type === 'string') {\n\t\t\tv = hexParse(input) || nameParse(input) || functionParse(input);\n\t\t}\n\t\tthis._rgb = v;\n\t\tthis._valid = !!v;\n\t}\n\tget valid() {\n\t\treturn this._valid;\n\t}\n\tget rgb() {\n\t\tvar v = clone(this._rgb);\n\t\tif (v) {\n\t\t\tv.a = b2n(v.a);\n\t\t}\n\t\treturn v;\n\t}\n\tset rgb(obj) {\n\t\tthis._rgb = fromObject(obj);\n\t}\n\trgbString() {\n\t\treturn this._valid ? rgbString(this._rgb) : this._rgb;\n\t}\n\thexString() {\n\t\treturn this._valid ? hexString(this._rgb) : this._rgb;\n\t}\n\thslString() {\n\t\treturn this._valid ? hslString(this._rgb) : this._rgb;\n\t}\n\tmix(color, weight) {\n\t\tconst me = this;\n\t\tif (color) {\n\t\t\tconst c1 = me.rgb;\n\t\t\tconst c2 = color.rgb;\n\t\t\tlet w2;\n\t\t\tconst p = weight === w2 ? 0.5 : weight;\n\t\t\tconst w = 2 * p - 1;\n\t\t\tconst a = c1.a - c2.a;\n\t\t\tconst w1 = ((w * a === -1 ? w : (w + a) / (1 + w * a)) + 1) / 2.0;\n\t\t\tw2 = 1 - w1;\n\t\t\tc1.r = 0xFF & w1 * c1.r + w2 * c2.r + 0.5;\n\t\t\tc1.g = 0xFF & w1 * c1.g + w2 * c2.g + 0.5;\n\t\t\tc1.b = 0xFF & w1 * c1.b + w2 * c2.b + 0.5;\n\t\t\tc1.a = p * c1.a + (1 - p) * c2.a;\n\t\t\tme.rgb = c1;\n\t\t}\n\t\treturn me;\n\t}\n\tclone() {\n\t\treturn new Color(this.rgb);\n\t}\n\talpha(a) {\n\t\tthis._rgb.a = n2b(a);\n\t\treturn this;\n\t}\n\tclearer(ratio) {\n\t\tconst rgb = this._rgb;\n\t\trgb.a *= 1 - ratio;\n\t\treturn this;\n\t}\n\tgreyscale() {\n\t\tconst rgb = this._rgb;\n\t\tconst val = round(rgb.r * 0.3 + rgb.g * 0.59 + rgb.b * 0.11);\n\t\trgb.r = rgb.g = rgb.b = val;\n\t\treturn this;\n\t}\n\topaquer(ratio) {\n\t\tconst rgb = this._rgb;\n\t\trgb.a *= 1 + ratio;\n\t\treturn this;\n\t}\n\tnegate() {\n\t\tconst v = this._rgb;\n\t\tv.r = 255 - v.r;\n\t\tv.g = 255 - v.g;\n\t\tv.b = 255 - v.b;\n\t\treturn this;\n\t}\n\tlighten(ratio) {\n\t\tmodHSL(this._rgb, 2, ratio);\n\t\treturn this;\n\t}\n\tdarken(ratio) {\n\t\tmodHSL(this._rgb, 2, -ratio);\n\t\treturn this;\n\t}\n\tsaturate(ratio) {\n\t\tmodHSL(this._rgb, 1, ratio);\n\t\treturn this;\n\t}\n\tdesaturate(ratio) {\n\t\tmodHSL(this._rgb, 1, -ratio);\n\t\treturn this;\n\t}\n\trotate(deg) {\n\t\trotate(this._rgb, deg);\n\t\treturn this;\n\t}\n}\nfunction index_esm(input) {\n\treturn new Color(input);\n}\n\nconst isPatternOrGradient = (value) => value instanceof CanvasGradient || value instanceof CanvasPattern;\nfunction color(value) {\n return isPatternOrGradient(value) ? value : index_esm(value);\n}\nfunction getHoverColor(value) {\n return isPatternOrGradient(value)\n ? value\n : index_esm(value).saturate(0.5).darken(0.1).hexString();\n}\n\nconst overrides = Object.create(null);\nconst descriptors = Object.create(null);\nfunction getScope$1(node, key) {\n if (!key) {\n return node;\n }\n const keys = key.split('.');\n for (let i = 0, n = keys.length; i < n; ++i) {\n const k = keys[i];\n node = node[k] || (node[k] = Object.create(null));\n }\n return node;\n}\nfunction set(root, scope, values) {\n if (typeof scope === 'string') {\n return merge(getScope$1(root, scope), values);\n }\n return merge(getScope$1(root, ''), scope);\n}\nclass Defaults {\n constructor(_descriptors) {\n this.animation = undefined;\n this.backgroundColor = 'rgba(0,0,0,0.1)';\n this.borderColor = 'rgba(0,0,0,0.1)';\n this.color = '#666';\n this.datasets = {};\n this.devicePixelRatio = (context) => context.chart.platform.getDevicePixelRatio();\n this.elements = {};\n this.events = [\n 'mousemove',\n 'mouseout',\n 'click',\n 'touchstart',\n 'touchmove'\n ];\n this.font = {\n family: \"'Helvetica Neue', 'Helvetica', 'Arial', sans-serif\",\n size: 12,\n style: 'normal',\n lineHeight: 1.2,\n weight: null\n };\n this.hover = {};\n this.hoverBackgroundColor = (ctx, options) => getHoverColor(options.backgroundColor);\n this.hoverBorderColor = (ctx, options) => getHoverColor(options.borderColor);\n this.hoverColor = (ctx, options) => getHoverColor(options.color);\n this.indexAxis = 'x';\n this.interaction = {\n mode: 'nearest',\n intersect: true\n };\n this.maintainAspectRatio = true;\n this.onHover = null;\n this.onClick = null;\n this.parsing = true;\n this.plugins = {};\n this.responsive = true;\n this.scale = undefined;\n this.scales = {};\n this.showLine = true;\n this.describe(_descriptors);\n }\n set(scope, values) {\n return set(this, scope, values);\n }\n get(scope) {\n return getScope$1(this, scope);\n }\n describe(scope, values) {\n return set(descriptors, scope, values);\n }\n override(scope, values) {\n return set(overrides, scope, values);\n }\n route(scope, name, targetScope, targetName) {\n const scopeObject = getScope$1(this, scope);\n const targetScopeObject = getScope$1(this, targetScope);\n const privateName = '_' + name;\n Object.defineProperties(scopeObject, {\n [privateName]: {\n value: scopeObject[name],\n writable: true\n },\n [name]: {\n enumerable: true,\n get() {\n const local = this[privateName];\n const target = targetScopeObject[targetName];\n if (isObject(local)) {\n return Object.assign({}, target, local);\n }\n return valueOrDefault(local, target);\n },\n set(value) {\n this[privateName] = value;\n }\n }\n });\n }\n}\nvar defaults = new Defaults({\n _scriptable: (name) => !name.startsWith('on'),\n _indexable: (name) => name !== 'events',\n hover: {\n _fallback: 'interaction'\n },\n interaction: {\n _scriptable: false,\n _indexable: false,\n }\n});\n\nfunction toFontString(font) {\n if (!font || isNullOrUndef(font.size) || isNullOrUndef(font.family)) {\n return null;\n }\n return (font.style ? font.style + ' ' : '')\n\t\t+ (font.weight ? font.weight + ' ' : '')\n\t\t+ font.size + 'px '\n\t\t+ font.family;\n}\nfunction _measureText(ctx, data, gc, longest, string) {\n let textWidth = data[string];\n if (!textWidth) {\n textWidth = data[string] = ctx.measureText(string).width;\n gc.push(string);\n }\n if (textWidth > longest) {\n longest = textWidth;\n }\n return longest;\n}\nfunction _longestText(ctx, font, arrayOfThings, cache) {\n cache = cache || {};\n let data = cache.data = cache.data || {};\n let gc = cache.garbageCollect = cache.garbageCollect || [];\n if (cache.font !== font) {\n data = cache.data = {};\n gc = cache.garbageCollect = [];\n cache.font = font;\n }\n ctx.save();\n ctx.font = font;\n let longest = 0;\n const ilen = arrayOfThings.length;\n let i, j, jlen, thing, nestedThing;\n for (i = 0; i < ilen; i++) {\n thing = arrayOfThings[i];\n if (thing !== undefined && thing !== null && isArray(thing) !== true) {\n longest = _measureText(ctx, data, gc, longest, thing);\n } else if (isArray(thing)) {\n for (j = 0, jlen = thing.length; j < jlen; j++) {\n nestedThing = thing[j];\n if (nestedThing !== undefined && nestedThing !== null && !isArray(nestedThing)) {\n longest = _measureText(ctx, data, gc, longest, nestedThing);\n }\n }\n }\n }\n ctx.restore();\n const gcLen = gc.length / 2;\n if (gcLen > arrayOfThings.length) {\n for (i = 0; i < gcLen; i++) {\n delete data[gc[i]];\n }\n gc.splice(0, gcLen);\n }\n return longest;\n}\nfunction _alignPixel(chart, pixel, width) {\n const devicePixelRatio = chart.currentDevicePixelRatio;\n const halfWidth = width !== 0 ? Math.max(width / 2, 0.5) : 0;\n return Math.round((pixel - halfWidth) * devicePixelRatio) / devicePixelRatio + halfWidth;\n}\nfunction clearCanvas(canvas, ctx) {\n ctx = ctx || canvas.getContext('2d');\n ctx.save();\n ctx.resetTransform();\n ctx.clearRect(0, 0, canvas.width, canvas.height);\n ctx.restore();\n}\nfunction drawPoint(ctx, options, x, y) {\n let type, xOffset, yOffset, size, cornerRadius;\n const style = options.pointStyle;\n const rotation = options.rotation;\n const radius = options.radius;\n let rad = (rotation || 0) * RAD_PER_DEG;\n if (style && typeof style === 'object') {\n type = style.toString();\n if (type === '[object HTMLImageElement]' || type === '[object HTMLCanvasElement]') {\n ctx.save();\n ctx.translate(x, y);\n ctx.rotate(rad);\n ctx.drawImage(style, -style.width / 2, -style.height / 2, style.width, style.height);\n ctx.restore();\n return;\n }\n }\n if (isNaN(radius) || radius <= 0) {\n return;\n }\n ctx.beginPath();\n switch (style) {\n default:\n ctx.arc(x, y, radius, 0, TAU);\n ctx.closePath();\n break;\n case 'triangle':\n ctx.moveTo(x + Math.sin(rad) * radius, y - Math.cos(rad) * radius);\n rad += TWO_THIRDS_PI;\n ctx.lineTo(x + Math.sin(rad) * radius, y - Math.cos(rad) * radius);\n rad += TWO_THIRDS_PI;\n ctx.lineTo(x + Math.sin(rad) * radius, y - Math.cos(rad) * radius);\n ctx.closePath();\n break;\n case 'rectRounded':\n cornerRadius = radius * 0.516;\n size = radius - cornerRadius;\n xOffset = Math.cos(rad + QUARTER_PI) * size;\n yOffset = Math.sin(rad + QUARTER_PI) * size;\n ctx.arc(x - xOffset, y - yOffset, cornerRadius, rad - PI, rad - HALF_PI);\n ctx.arc(x + yOffset, y - xOffset, cornerRadius, rad - HALF_PI, rad);\n ctx.arc(x + xOffset, y + yOffset, cornerRadius, rad, rad + HALF_PI);\n ctx.arc(x - yOffset, y + xOffset, cornerRadius, rad + HALF_PI, rad + PI);\n ctx.closePath();\n break;\n case 'rect':\n if (!rotation) {\n size = Math.SQRT1_2 * radius;\n ctx.rect(x - size, y - size, 2 * size, 2 * size);\n break;\n }\n rad += QUARTER_PI;\n case 'rectRot':\n xOffset = Math.cos(rad) * radius;\n yOffset = Math.sin(rad) * radius;\n ctx.moveTo(x - xOffset, y - yOffset);\n ctx.lineTo(x + yOffset, y - xOffset);\n ctx.lineTo(x + xOffset, y + yOffset);\n ctx.lineTo(x - yOffset, y + xOffset);\n ctx.closePath();\n break;\n case 'crossRot':\n rad += QUARTER_PI;\n case 'cross':\n xOffset = Math.cos(rad) * radius;\n yOffset = Math.sin(rad) * radius;\n ctx.moveTo(x - xOffset, y - yOffset);\n ctx.lineTo(x + xOffset, y + yOffset);\n ctx.moveTo(x + yOffset, y - xOffset);\n ctx.lineTo(x - yOffset, y + xOffset);\n break;\n case 'star':\n xOffset = Math.cos(rad) * radius;\n yOffset = Math.sin(rad) * radius;\n ctx.moveTo(x - xOffset, y - yOffset);\n ctx.lineTo(x + xOffset, y + yOffset);\n ctx.moveTo(x + yOffset, y - xOffset);\n ctx.lineTo(x - yOffset, y + xOffset);\n rad += QUARTER_PI;\n xOffset = Math.cos(rad) * radius;\n yOffset = Math.sin(rad) * radius;\n ctx.moveTo(x - xOffset, y - yOffset);\n ctx.lineTo(x + xOffset, y + yOffset);\n ctx.moveTo(x + yOffset, y - xOffset);\n ctx.lineTo(x - yOffset, y + xOffset);\n break;\n case 'line':\n xOffset = Math.cos(rad) * radius;\n yOffset = Math.sin(rad) * radius;\n ctx.moveTo(x - xOffset, y - yOffset);\n ctx.lineTo(x + xOffset, y + yOffset);\n break;\n case 'dash':\n ctx.moveTo(x, y);\n ctx.lineTo(x + Math.cos(rad) * radius, y + Math.sin(rad) * radius);\n break;\n }\n ctx.fill();\n if (options.borderWidth > 0) {\n ctx.stroke();\n }\n}\nfunction _isPointInArea(point, area, margin) {\n margin = margin || 0.5;\n return point && point.x > area.left - margin && point.x < area.right + margin &&\n\t\tpoint.y > area.top - margin && point.y < area.bottom + margin;\n}\nfunction clipArea(ctx, area) {\n ctx.save();\n ctx.beginPath();\n ctx.rect(area.left, area.top, area.right - area.left, area.bottom - area.top);\n ctx.clip();\n}\nfunction unclipArea(ctx) {\n ctx.restore();\n}\nfunction _steppedLineTo(ctx, previous, target, flip, mode) {\n if (!previous) {\n return ctx.lineTo(target.x, target.y);\n }\n if (mode === 'middle') {\n const midpoint = (previous.x + target.x) / 2.0;\n ctx.lineTo(midpoint, previous.y);\n ctx.lineTo(midpoint, target.y);\n } else if (mode === 'after' !== !!flip) {\n ctx.lineTo(previous.x, target.y);\n } else {\n ctx.lineTo(target.x, previous.y);\n }\n ctx.lineTo(target.x, target.y);\n}\nfunction _bezierCurveTo(ctx, previous, target, flip) {\n if (!previous) {\n return ctx.lineTo(target.x, target.y);\n }\n ctx.bezierCurveTo(\n flip ? previous.cp1x : previous.cp2x,\n flip ? previous.cp1y : previous.cp2y,\n flip ? target.cp2x : target.cp1x,\n flip ? target.cp2y : target.cp1y,\n target.x,\n target.y);\n}\nfunction renderText(ctx, text, x, y, font, opts = {}) {\n const lines = isArray(text) ? text : [text];\n const stroke = opts.strokeWidth > 0 && opts.strokeColor !== '';\n let i, line;\n ctx.save();\n ctx.font = font.string;\n setRenderOpts(ctx, opts);\n for (i = 0; i < lines.length; ++i) {\n line = lines[i];\n if (stroke) {\n if (opts.strokeColor) {\n ctx.strokeStyle = opts.strokeColor;\n }\n if (!isNullOrUndef(opts.strokeWidth)) {\n ctx.lineWidth = opts.strokeWidth;\n }\n ctx.strokeText(line, x, y, opts.maxWidth);\n }\n ctx.fillText(line, x, y, opts.maxWidth);\n decorateText(ctx, x, y, line, opts);\n y += font.lineHeight;\n }\n ctx.restore();\n}\nfunction setRenderOpts(ctx, opts) {\n if (opts.translation) {\n ctx.translate(opts.translation[0], opts.translation[1]);\n }\n if (!isNullOrUndef(opts.rotation)) {\n ctx.rotate(opts.rotation);\n }\n if (opts.color) {\n ctx.fillStyle = opts.color;\n }\n if (opts.textAlign) {\n ctx.textAlign = opts.textAlign;\n }\n if (opts.textBaseline) {\n ctx.textBaseline = opts.textBaseline;\n }\n}\nfunction decorateText(ctx, x, y, line, opts) {\n if (opts.strikethrough || opts.underline) {\n const metrics = ctx.measureText(line);\n const left = x - metrics.actualBoundingBoxLeft;\n const right = x + metrics.actualBoundingBoxRight;\n const top = y - metrics.actualBoundingBoxAscent;\n const bottom = y + metrics.actualBoundingBoxDescent;\n const yDecoration = opts.strikethrough ? (top + bottom) / 2 : bottom;\n ctx.strokeStyle = ctx.fillStyle;\n ctx.beginPath();\n ctx.lineWidth = opts.decorationWidth || 2;\n ctx.moveTo(left, yDecoration);\n ctx.lineTo(right, yDecoration);\n ctx.stroke();\n }\n}\nfunction addRoundedRectPath(ctx, rect) {\n const {x, y, w, h, radius} = rect;\n ctx.arc(x + radius.topLeft, y + radius.topLeft, radius.topLeft, -HALF_PI, PI, true);\n ctx.lineTo(x, y + h - radius.bottomLeft);\n ctx.arc(x + radius.bottomLeft, y + h - radius.bottomLeft, radius.bottomLeft, PI, HALF_PI, true);\n ctx.lineTo(x + w - radius.bottomRight, y + h);\n ctx.arc(x + w - radius.bottomRight, y + h - radius.bottomRight, radius.bottomRight, HALF_PI, 0, true);\n ctx.lineTo(x + w, y + radius.topRight);\n ctx.arc(x + w - radius.topRight, y + radius.topRight, radius.topRight, 0, -HALF_PI, true);\n ctx.lineTo(x + radius.topLeft, y);\n}\n\nconst LINE_HEIGHT = new RegExp(/^(normal|(\\d+(?:\\.\\d+)?)(px|em|%)?)$/);\nconst FONT_STYLE = new RegExp(/^(normal|italic|initial|inherit|unset|(oblique( -?[0-9]?[0-9]deg)?))$/);\nfunction toLineHeight(value, size) {\n const matches = ('' + value).match(LINE_HEIGHT);\n if (!matches || matches[1] === 'normal') {\n return size * 1.2;\n }\n value = +matches[2];\n switch (matches[3]) {\n case 'px':\n return value;\n case '%':\n value /= 100;\n break;\n }\n return size * value;\n}\nconst numberOrZero = v => +v || 0;\nfunction _readValueToProps(value, props) {\n const ret = {};\n const objProps = isObject(props);\n const keys = objProps ? Object.keys(props) : props;\n const read = isObject(value)\n ? objProps\n ? prop => valueOrDefault(value[prop], value[props[prop]])\n : prop => value[prop]\n : () => value;\n for (const prop of keys) {\n ret[prop] = numberOrZero(read(prop));\n }\n return ret;\n}\nfunction toTRBL(value) {\n return _readValueToProps(value, {top: 'y', right: 'x', bottom: 'y', left: 'x'});\n}\nfunction toTRBLCorners(value) {\n return _readValueToProps(value, ['topLeft', 'topRight', 'bottomLeft', 'bottomRight']);\n}\nfunction toPadding(value) {\n const obj = toTRBL(value);\n obj.width = obj.left + obj.right;\n obj.height = obj.top + obj.bottom;\n return obj;\n}\nfunction toFont(options, fallback) {\n options = options || {};\n fallback = fallback || defaults.font;\n let size = valueOrDefault(options.size, fallback.size);\n if (typeof size === 'string') {\n size = parseInt(size, 10);\n }\n let style = valueOrDefault(options.style, fallback.style);\n if (style && !('' + style).match(FONT_STYLE)) {\n console.warn('Invalid font style specified: \"' + style + '\"');\n style = '';\n }\n const font = {\n family: valueOrDefault(options.family, fallback.family),\n lineHeight: toLineHeight(valueOrDefault(options.lineHeight, fallback.lineHeight), size),\n size,\n style,\n weight: valueOrDefault(options.weight, fallback.weight),\n string: ''\n };\n font.string = toFontString(font);\n return font;\n}\nfunction resolve(inputs, context, index, info) {\n let cacheable = true;\n let i, ilen, value;\n for (i = 0, ilen = inputs.length; i < ilen; ++i) {\n value = inputs[i];\n if (value === undefined) {\n continue;\n }\n if (context !== undefined && typeof value === 'function') {\n value = value(context);\n cacheable = false;\n }\n if (index !== undefined && isArray(value)) {\n value = value[index % value.length];\n cacheable = false;\n }\n if (value !== undefined) {\n if (info && !cacheable) {\n info.cacheable = false;\n }\n return value;\n }\n }\n}\nfunction _addGrace(minmax, grace) {\n const {min, max} = minmax;\n return {\n min: min - Math.abs(toDimension(grace, min)),\n max: max + toDimension(grace, max)\n };\n}\n\nfunction _lookup(table, value, cmp) {\n cmp = cmp || ((index) => table[index] < value);\n let hi = table.length - 1;\n let lo = 0;\n let mid;\n while (hi - lo > 1) {\n mid = (lo + hi) >> 1;\n if (cmp(mid)) {\n lo = mid;\n } else {\n hi = mid;\n }\n }\n return {lo, hi};\n}\nconst _lookupByKey = (table, key, value) =>\n _lookup(table, value, index => table[index][key] < value);\nconst _rlookupByKey = (table, key, value) =>\n _lookup(table, value, index => table[index][key] >= value);\nfunction _filterBetween(values, min, max) {\n let start = 0;\n let end = values.length;\n while (start < end && values[start] < min) {\n start++;\n }\n while (end > start && values[end - 1] > max) {\n end--;\n }\n return start > 0 || end < values.length\n ? values.slice(start, end)\n : values;\n}\nconst arrayEvents = ['push', 'pop', 'shift', 'splice', 'unshift'];\nfunction listenArrayEvents(array, listener) {\n if (array._chartjs) {\n array._chartjs.listeners.push(listener);\n return;\n }\n Object.defineProperty(array, '_chartjs', {\n configurable: true,\n enumerable: false,\n value: {\n listeners: [listener]\n }\n });\n arrayEvents.forEach((key) => {\n const method = '_onData' + _capitalize(key);\n const base = array[key];\n Object.defineProperty(array, key, {\n configurable: true,\n enumerable: false,\n value(...args) {\n const res = base.apply(this, args);\n array._chartjs.listeners.forEach((object) => {\n if (typeof object[method] === 'function') {\n object[method](...args);\n }\n });\n return res;\n }\n });\n });\n}\nfunction unlistenArrayEvents(array, listener) {\n const stub = array._chartjs;\n if (!stub) {\n return;\n }\n const listeners = stub.listeners;\n const index = listeners.indexOf(listener);\n if (index !== -1) {\n listeners.splice(index, 1);\n }\n if (listeners.length > 0) {\n return;\n }\n arrayEvents.forEach((key) => {\n delete array[key];\n });\n delete array._chartjs;\n}\nfunction _arrayUnique(items) {\n const set = new Set();\n let i, ilen;\n for (i = 0, ilen = items.length; i < ilen; ++i) {\n set.add(items[i]);\n }\n if (set.size === ilen) {\n return items;\n }\n return Array.from(set);\n}\n\nfunction _createResolver(scopes, prefixes = [''], rootScopes = scopes, fallback, getTarget = () => scopes[0]) {\n if (!defined(fallback)) {\n fallback = _resolve('_fallback', scopes);\n }\n const cache = {\n [Symbol.toStringTag]: 'Object',\n _cacheable: true,\n _scopes: scopes,\n _rootScopes: rootScopes,\n _fallback: fallback,\n _getTarget: getTarget,\n override: (scope) => _createResolver([scope, ...scopes], prefixes, rootScopes, fallback),\n };\n return new Proxy(cache, {\n deleteProperty(target, prop) {\n delete target[prop];\n delete target._keys;\n delete scopes[0][prop];\n return true;\n },\n get(target, prop) {\n return _cached(target, prop,\n () => _resolveWithPrefixes(prop, prefixes, scopes, target));\n },\n getOwnPropertyDescriptor(target, prop) {\n return Reflect.getOwnPropertyDescriptor(target._scopes[0], prop);\n },\n getPrototypeOf() {\n return Reflect.getPrototypeOf(scopes[0]);\n },\n has(target, prop) {\n return getKeysFromAllScopes(target).includes(prop);\n },\n ownKeys(target) {\n return getKeysFromAllScopes(target);\n },\n set(target, prop, value) {\n const storage = target._storage || (target._storage = getTarget());\n storage[prop] = value;\n delete target[prop];\n delete target._keys;\n return true;\n }\n });\n}\nfunction _attachContext(proxy, context, subProxy, descriptorDefaults) {\n const cache = {\n _cacheable: false,\n _proxy: proxy,\n _context: context,\n _subProxy: subProxy,\n _stack: new Set(),\n _descriptors: _descriptors(proxy, descriptorDefaults),\n setContext: (ctx) => _attachContext(proxy, ctx, subProxy, descriptorDefaults),\n override: (scope) => _attachContext(proxy.override(scope), context, subProxy, descriptorDefaults)\n };\n return new Proxy(cache, {\n deleteProperty(target, prop) {\n delete target[prop];\n delete proxy[prop];\n return true;\n },\n get(target, prop, receiver) {\n return _cached(target, prop,\n () => _resolveWithContext(target, prop, receiver));\n },\n getOwnPropertyDescriptor(target, prop) {\n return target._descriptors.allKeys\n ? Reflect.has(proxy, prop) ? {enumerable: true, configurable: true} : undefined\n : Reflect.getOwnPropertyDescriptor(proxy, prop);\n },\n getPrototypeOf() {\n return Reflect.getPrototypeOf(proxy);\n },\n has(target, prop) {\n return Reflect.has(proxy, prop);\n },\n ownKeys() {\n return Reflect.ownKeys(proxy);\n },\n set(target, prop, value) {\n proxy[prop] = value;\n delete target[prop];\n return true;\n }\n });\n}\nfunction _descriptors(proxy, defaults = {scriptable: true, indexable: true}) {\n const {_scriptable = defaults.scriptable, _indexable = defaults.indexable, _allKeys = defaults.allKeys} = proxy;\n return {\n allKeys: _allKeys,\n scriptable: _scriptable,\n indexable: _indexable,\n isScriptable: isFunction(_scriptable) ? _scriptable : () => _scriptable,\n isIndexable: isFunction(_indexable) ? _indexable : () => _indexable\n };\n}\nconst readKey = (prefix, name) => prefix ? prefix + _capitalize(name) : name;\nconst needsSubResolver = (prop, value) => isObject(value) && prop !== 'adapters';\nfunction _cached(target, prop, resolve) {\n let value = target[prop];\n if (defined(value)) {\n return value;\n }\n value = resolve();\n if (defined(value)) {\n target[prop] = value;\n }\n return value;\n}\nfunction _resolveWithContext(target, prop, receiver) {\n const {_proxy, _context, _subProxy, _descriptors: descriptors} = target;\n let value = _proxy[prop];\n if (isFunction(value) && descriptors.isScriptable(prop)) {\n value = _resolveScriptable(prop, value, target, receiver);\n }\n if (isArray(value) && value.length) {\n value = _resolveArray(prop, value, target, descriptors.isIndexable);\n }\n if (needsSubResolver(prop, value)) {\n value = _attachContext(value, _context, _subProxy && _subProxy[prop], descriptors);\n }\n return value;\n}\nfunction _resolveScriptable(prop, value, target, receiver) {\n const {_proxy, _context, _subProxy, _stack} = target;\n if (_stack.has(prop)) {\n throw new Error('Recursion detected: ' + Array.from(_stack).join('->') + '->' + prop);\n }\n _stack.add(prop);\n value = value(_context, _subProxy || receiver);\n _stack.delete(prop);\n if (isObject(value)) {\n value = createSubResolver(_proxy._scopes, _proxy, prop, value);\n }\n return value;\n}\nfunction _resolveArray(prop, value, target, isIndexable) {\n const {_proxy, _context, _subProxy, _descriptors: descriptors} = target;\n if (defined(_context.index) && isIndexable(prop)) {\n value = value[_context.index % value.length];\n } else if (isObject(value[0])) {\n const arr = value;\n const scopes = _proxy._scopes.filter(s => s !== arr);\n value = [];\n for (const item of arr) {\n const resolver = createSubResolver(scopes, _proxy, prop, item);\n value.push(_attachContext(resolver, _context, _subProxy && _subProxy[prop], descriptors));\n }\n }\n return value;\n}\nfunction resolveFallback(fallback, prop, value) {\n return isFunction(fallback) ? fallback(prop, value) : fallback;\n}\nconst getScope = (key, parent) => key === true ? parent\n : typeof key === 'string' ? resolveObjectKey(parent, key) : undefined;\nfunction addScopes(set, parentScopes, key, parentFallback) {\n for (const parent of parentScopes) {\n const scope = getScope(key, parent);\n if (scope) {\n set.add(scope);\n const fallback = resolveFallback(scope._fallback, key, scope);\n if (defined(fallback) && fallback !== key && fallback !== parentFallback) {\n return fallback;\n }\n } else if (scope === false && defined(parentFallback) && key !== parentFallback) {\n return null;\n }\n }\n return false;\n}\nfunction createSubResolver(parentScopes, resolver, prop, value) {\n const rootScopes = resolver._rootScopes;\n const fallback = resolveFallback(resolver._fallback, prop, value);\n const allScopes = [...parentScopes, ...rootScopes];\n const set = new Set();\n set.add(value);\n let key = addScopesFromKey(set, allScopes, prop, fallback || prop);\n if (key === null) {\n return false;\n }\n if (defined(fallback) && fallback !== prop) {\n key = addScopesFromKey(set, allScopes, fallback, key);\n if (key === null) {\n return false;\n }\n }\n return _createResolver(Array.from(set), [''], rootScopes, fallback,\n () => subGetTarget(resolver, prop, value));\n}\nfunction addScopesFromKey(set, allScopes, key, fallback) {\n while (key) {\n key = addScopes(set, allScopes, key, fallback);\n }\n return key;\n}\nfunction subGetTarget(resolver, prop, value) {\n const parent = resolver._getTarget();\n if (!(prop in parent)) {\n parent[prop] = {};\n }\n const target = parent[prop];\n if (isArray(target) && isObject(value)) {\n return value;\n }\n return target;\n}\nfunction _resolveWithPrefixes(prop, prefixes, scopes, proxy) {\n let value;\n for (const prefix of prefixes) {\n value = _resolve(readKey(prefix, prop), scopes);\n if (defined(value)) {\n return needsSubResolver(prop, value)\n ? createSubResolver(scopes, proxy, prop, value)\n : value;\n }\n }\n}\nfunction _resolve(key, scopes) {\n for (const scope of scopes) {\n if (!scope) {\n continue;\n }\n const value = scope[key];\n if (defined(value)) {\n return value;\n }\n }\n}\nfunction getKeysFromAllScopes(target) {\n let keys = target._keys;\n if (!keys) {\n keys = target._keys = resolveKeysFromAllScopes(target._scopes);\n }\n return keys;\n}\nfunction resolveKeysFromAllScopes(scopes) {\n const set = new Set();\n for (const scope of scopes) {\n for (const key of Object.keys(scope).filter(k => !k.startsWith('_'))) {\n set.add(key);\n }\n }\n return Array.from(set);\n}\n\nconst EPSILON = Number.EPSILON || 1e-14;\nconst getPoint = (points, i) => i < points.length && !points[i].skip && points[i];\nconst getValueAxis = (indexAxis) => indexAxis === 'x' ? 'y' : 'x';\nfunction splineCurve(firstPoint, middlePoint, afterPoint, t) {\n const previous = firstPoint.skip ? middlePoint : firstPoint;\n const current = middlePoint;\n const next = afterPoint.skip ? middlePoint : afterPoint;\n const d01 = distanceBetweenPoints(current, previous);\n const d12 = distanceBetweenPoints(next, current);\n let s01 = d01 / (d01 + d12);\n let s12 = d12 / (d01 + d12);\n s01 = isNaN(s01) ? 0 : s01;\n s12 = isNaN(s12) ? 0 : s12;\n const fa = t * s01;\n const fb = t * s12;\n return {\n previous: {\n x: current.x - fa * (next.x - previous.x),\n y: current.y - fa * (next.y - previous.y)\n },\n next: {\n x: current.x + fb * (next.x - previous.x),\n y: current.y + fb * (next.y - previous.y)\n }\n };\n}\nfunction monotoneAdjust(points, deltaK, mK) {\n const pointsLen = points.length;\n let alphaK, betaK, tauK, squaredMagnitude, pointCurrent;\n let pointAfter = getPoint(points, 0);\n for (let i = 0; i < pointsLen - 1; ++i) {\n pointCurrent = pointAfter;\n pointAfter = getPoint(points, i + 1);\n if (!pointCurrent || !pointAfter) {\n continue;\n }\n if (almostEquals(deltaK[i], 0, EPSILON)) {\n mK[i] = mK[i + 1] = 0;\n continue;\n }\n alphaK = mK[i] / deltaK[i];\n betaK = mK[i + 1] / deltaK[i];\n squaredMagnitude = Math.pow(alphaK, 2) + Math.pow(betaK, 2);\n if (squaredMagnitude <= 9) {\n continue;\n }\n tauK = 3 / Math.sqrt(squaredMagnitude);\n mK[i] = alphaK * tauK * deltaK[i];\n mK[i + 1] = betaK * tauK * deltaK[i];\n }\n}\nfunction monotoneCompute(points, mK, indexAxis = 'x') {\n const valueAxis = getValueAxis(indexAxis);\n const pointsLen = points.length;\n let delta, pointBefore, pointCurrent;\n let pointAfter = getPoint(points, 0);\n for (let i = 0; i < pointsLen; ++i) {\n pointBefore = pointCurrent;\n pointCurrent = pointAfter;\n pointAfter = getPoint(points, i + 1);\n if (!pointCurrent) {\n continue;\n }\n const iPixel = pointCurrent[indexAxis];\n const vPixel = pointCurrent[valueAxis];\n if (pointBefore) {\n delta = (iPixel - pointBefore[indexAxis]) / 3;\n pointCurrent[`cp1${indexAxis}`] = iPixel - delta;\n pointCurrent[`cp1${valueAxis}`] = vPixel - delta * mK[i];\n }\n if (pointAfter) {\n delta = (pointAfter[indexAxis] - iPixel) / 3;\n pointCurrent[`cp2${indexAxis}`] = iPixel + delta;\n pointCurrent[`cp2${valueAxis}`] = vPixel + delta * mK[i];\n }\n }\n}\nfunction splineCurveMonotone(points, indexAxis = 'x') {\n const valueAxis = getValueAxis(indexAxis);\n const pointsLen = points.length;\n const deltaK = Array(pointsLen).fill(0);\n const mK = Array(pointsLen);\n let i, pointBefore, pointCurrent;\n let pointAfter = getPoint(points, 0);\n for (i = 0; i < pointsLen; ++i) {\n pointBefore = pointCurrent;\n pointCurrent = pointAfter;\n pointAfter = getPoint(points, i + 1);\n if (!pointCurrent) {\n continue;\n }\n if (pointAfter) {\n const slopeDelta = pointAfter[indexAxis] - pointCurrent[indexAxis];\n deltaK[i] = slopeDelta !== 0 ? (pointAfter[valueAxis] - pointCurrent[valueAxis]) / slopeDelta : 0;\n }\n mK[i] = !pointBefore ? deltaK[i]\n : !pointAfter ? deltaK[i - 1]\n : (sign(deltaK[i - 1]) !== sign(deltaK[i])) ? 0\n : (deltaK[i - 1] + deltaK[i]) / 2;\n }\n monotoneAdjust(points, deltaK, mK);\n monotoneCompute(points, mK, indexAxis);\n}\nfunction capControlPoint(pt, min, max) {\n return Math.max(Math.min(pt, max), min);\n}\nfunction capBezierPoints(points, area) {\n let i, ilen, point, inArea, inAreaPrev;\n let inAreaNext = _isPointInArea(points[0], area);\n for (i = 0, ilen = points.length; i < ilen; ++i) {\n inAreaPrev = inArea;\n inArea = inAreaNext;\n inAreaNext = i < ilen - 1 && _isPointInArea(points[i + 1], area);\n if (!inArea) {\n continue;\n }\n point = points[i];\n if (inAreaPrev) {\n point.cp1x = capControlPoint(point.cp1x, area.left, area.right);\n point.cp1y = capControlPoint(point.cp1y, area.top, area.bottom);\n }\n if (inAreaNext) {\n point.cp2x = capControlPoint(point.cp2x, area.left, area.right);\n point.cp2y = capControlPoint(point.cp2y, area.top, area.bottom);\n }\n }\n}\nfunction _updateBezierControlPoints(points, options, area, loop, indexAxis) {\n let i, ilen, point, controlPoints;\n if (options.spanGaps) {\n points = points.filter((pt) => !pt.skip);\n }\n if (options.cubicInterpolationMode === 'monotone') {\n splineCurveMonotone(points, indexAxis);\n } else {\n let prev = loop ? points[points.length - 1] : points[0];\n for (i = 0, ilen = points.length; i < ilen; ++i) {\n point = points[i];\n controlPoints = splineCurve(\n prev,\n point,\n points[Math.min(i + 1, ilen - (loop ? 0 : 1)) % ilen],\n options.tension\n );\n point.cp1x = controlPoints.previous.x;\n point.cp1y = controlPoints.previous.y;\n point.cp2x = controlPoints.next.x;\n point.cp2y = controlPoints.next.y;\n prev = point;\n }\n }\n if (options.capBezierPoints) {\n capBezierPoints(points, area);\n }\n}\n\nfunction _getParentNode(domNode) {\n let parent = domNode.parentNode;\n if (parent && parent.toString() === '[object ShadowRoot]') {\n parent = parent.host;\n }\n return parent;\n}\nfunction parseMaxStyle(styleValue, node, parentProperty) {\n let valueInPixels;\n if (typeof styleValue === 'string') {\n valueInPixels = parseInt(styleValue, 10);\n if (styleValue.indexOf('%') !== -1) {\n valueInPixels = valueInPixels / 100 * node.parentNode[parentProperty];\n }\n } else {\n valueInPixels = styleValue;\n }\n return valueInPixels;\n}\nconst getComputedStyle = (element) => window.getComputedStyle(element, null);\nfunction getStyle(el, property) {\n return getComputedStyle(el).getPropertyValue(property);\n}\nconst positions = ['top', 'right', 'bottom', 'left'];\nfunction getPositionedStyle(styles, style, suffix) {\n const result = {};\n suffix = suffix ? '-' + suffix : '';\n for (let i = 0; i < 4; i++) {\n const pos = positions[i];\n result[pos] = parseFloat(styles[style + '-' + pos + suffix]) || 0;\n }\n result.width = result.left + result.right;\n result.height = result.top + result.bottom;\n return result;\n}\nconst useOffsetPos = (x, y, target) => (x > 0 || y > 0) && (!target || !target.shadowRoot);\nfunction getCanvasPosition(evt, canvas) {\n const e = evt.native || evt;\n const touches = e.touches;\n const source = touches && touches.length ? touches[0] : e;\n const {offsetX, offsetY} = source;\n let box = false;\n let x, y;\n if (useOffsetPos(offsetX, offsetY, e.target)) {\n x = offsetX;\n y = offsetY;\n } else {\n const rect = canvas.getBoundingClientRect();\n x = source.clientX - rect.left;\n y = source.clientY - rect.top;\n box = true;\n }\n return {x, y, box};\n}\nfunction getRelativePosition(evt, chart) {\n const {canvas, currentDevicePixelRatio} = chart;\n const style = getComputedStyle(canvas);\n const borderBox = style.boxSizing === 'border-box';\n const paddings = getPositionedStyle(style, 'padding');\n const borders = getPositionedStyle(style, 'border', 'width');\n const {x, y, box} = getCanvasPosition(evt, canvas);\n const xOffset = paddings.left + (box && borders.left);\n const yOffset = paddings.top + (box && borders.top);\n let {width, height} = chart;\n if (borderBox) {\n width -= paddings.width + borders.width;\n height -= paddings.height + borders.height;\n }\n return {\n x: Math.round((x - xOffset) / width * canvas.width / currentDevicePixelRatio),\n y: Math.round((y - yOffset) / height * canvas.height / currentDevicePixelRatio)\n };\n}\nfunction getContainerSize(canvas, width, height) {\n let maxWidth, maxHeight;\n if (width === undefined || height === undefined) {\n const container = _getParentNode(canvas);\n if (!container) {\n width = canvas.clientWidth;\n height = canvas.clientHeight;\n } else {\n const rect = container.getBoundingClientRect();\n const containerStyle = getComputedStyle(container);\n const containerBorder = getPositionedStyle(containerStyle, 'border', 'width');\n const containerPadding = getPositionedStyle(containerStyle, 'padding');\n width = rect.width - containerPadding.width - containerBorder.width;\n height = rect.height - containerPadding.height - containerBorder.height;\n maxWidth = parseMaxStyle(containerStyle.maxWidth, container, 'clientWidth');\n maxHeight = parseMaxStyle(containerStyle.maxHeight, container, 'clientHeight');\n }\n }\n return {\n width,\n height,\n maxWidth: maxWidth || INFINITY,\n maxHeight: maxHeight || INFINITY\n };\n}\nconst round1 = v => Math.round(v * 10) / 10;\nfunction getMaximumSize(canvas, bbWidth, bbHeight, aspectRatio) {\n const style = getComputedStyle(canvas);\n const margins = getPositionedStyle(style, 'margin');\n const maxWidth = parseMaxStyle(style.maxWidth, canvas, 'clientWidth') || INFINITY;\n const maxHeight = parseMaxStyle(style.maxHeight, canvas, 'clientHeight') || INFINITY;\n const containerSize = getContainerSize(canvas, bbWidth, bbHeight);\n let {width, height} = containerSize;\n if (style.boxSizing === 'content-box') {\n const borders = getPositionedStyle(style, 'border', 'width');\n const paddings = getPositionedStyle(style, 'padding');\n width -= paddings.width + borders.width;\n height -= paddings.height + borders.height;\n }\n width = Math.max(0, width - margins.width);\n height = Math.max(0, aspectRatio ? Math.floor(width / aspectRatio) : height - margins.height);\n width = round1(Math.min(width, maxWidth, containerSize.maxWidth));\n height = round1(Math.min(height, maxHeight, containerSize.maxHeight));\n if (width && !height) {\n height = round1(width / 2);\n }\n return {\n width,\n height\n };\n}\nfunction retinaScale(chart, forceRatio, forceStyle) {\n const pixelRatio = forceRatio || 1;\n const deviceHeight = Math.floor(chart.height * pixelRatio);\n const deviceWidth = Math.floor(chart.width * pixelRatio);\n chart.height = deviceHeight / pixelRatio;\n chart.width = deviceWidth / pixelRatio;\n const canvas = chart.canvas;\n if (canvas.style && (forceStyle || (!canvas.style.height && !canvas.style.width))) {\n canvas.style.height = `${chart.height}px`;\n canvas.style.width = `${chart.width}px`;\n }\n if (chart.currentDevicePixelRatio !== pixelRatio\n || canvas.height !== deviceHeight\n || canvas.width !== deviceWidth) {\n chart.currentDevicePixelRatio = pixelRatio;\n canvas.height = deviceHeight;\n canvas.width = deviceWidth;\n chart.ctx.setTransform(pixelRatio, 0, 0, pixelRatio, 0, 0);\n return true;\n }\n return false;\n}\nconst supportsEventListenerOptions = (function() {\n let passiveSupported = false;\n try {\n const options = {\n get passive() {\n passiveSupported = true;\n return false;\n }\n };\n window.addEventListener('test', null, options);\n window.removeEventListener('test', null, options);\n } catch (e) {\n }\n return passiveSupported;\n}());\nfunction readUsedSize(element, property) {\n const value = getStyle(element, property);\n const matches = value && value.match(/^(\\d+)(\\.\\d+)?px$/);\n return matches ? +matches[1] : undefined;\n}\n\nfunction _pointInLine(p1, p2, t, mode) {\n return {\n x: p1.x + t * (p2.x - p1.x),\n y: p1.y + t * (p2.y - p1.y)\n };\n}\nfunction _steppedInterpolation(p1, p2, t, mode) {\n return {\n x: p1.x + t * (p2.x - p1.x),\n y: mode === 'middle' ? t < 0.5 ? p1.y : p2.y\n : mode === 'after' ? t < 1 ? p1.y : p2.y\n : t > 0 ? p2.y : p1.y\n };\n}\nfunction _bezierInterpolation(p1, p2, t, mode) {\n const cp1 = {x: p1.cp2x, y: p1.cp2y};\n const cp2 = {x: p2.cp1x, y: p2.cp1y};\n const a = _pointInLine(p1, cp1, t);\n const b = _pointInLine(cp1, cp2, t);\n const c = _pointInLine(cp2, p2, t);\n const d = _pointInLine(a, b, t);\n const e = _pointInLine(b, c, t);\n return _pointInLine(d, e, t);\n}\n\nconst intlCache = new Map();\nfunction getNumberFormat(locale, options) {\n options = options || {};\n const cacheKey = locale + JSON.stringify(options);\n let formatter = intlCache.get(cacheKey);\n if (!formatter) {\n formatter = new Intl.NumberFormat(locale, options);\n intlCache.set(cacheKey, formatter);\n }\n return formatter;\n}\nfunction formatNumber(num, locale, options) {\n return getNumberFormat(locale, options).format(num);\n}\n\nconst getRightToLeftAdapter = function(rectX, width) {\n return {\n x(x) {\n return rectX + rectX + width - x;\n },\n setWidth(w) {\n width = w;\n },\n textAlign(align) {\n if (align === 'center') {\n return align;\n }\n return align === 'right' ? 'left' : 'right';\n },\n xPlus(x, value) {\n return x - value;\n },\n leftForLtr(x, itemWidth) {\n return x - itemWidth;\n },\n };\n};\nconst getLeftToRightAdapter = function() {\n return {\n x(x) {\n return x;\n },\n setWidth(w) {\n },\n textAlign(align) {\n return align;\n },\n xPlus(x, value) {\n return x + value;\n },\n leftForLtr(x, _itemWidth) {\n return x;\n },\n };\n};\nfunction getRtlAdapter(rtl, rectX, width) {\n return rtl ? getRightToLeftAdapter(rectX, width) : getLeftToRightAdapter();\n}\nfunction overrideTextDirection(ctx, direction) {\n let style, original;\n if (direction === 'ltr' || direction === 'rtl') {\n style = ctx.canvas.style;\n original = [\n style.getPropertyValue('direction'),\n style.getPropertyPriority('direction'),\n ];\n style.setProperty('direction', direction, 'important');\n ctx.prevTextDirection = original;\n }\n}\nfunction restoreTextDirection(ctx, original) {\n if (original !== undefined) {\n delete ctx.prevTextDirection;\n ctx.canvas.style.setProperty('direction', original[0], original[1]);\n }\n}\n\nfunction propertyFn(property) {\n if (property === 'angle') {\n return {\n between: _angleBetween,\n compare: _angleDiff,\n normalize: _normalizeAngle,\n };\n }\n return {\n between: (n, s, e) => n >= Math.min(s, e) && n <= Math.max(e, s),\n compare: (a, b) => a - b,\n normalize: x => x\n };\n}\nfunction normalizeSegment({start, end, count, loop, style}) {\n return {\n start: start % count,\n end: end % count,\n loop: loop && (end - start + 1) % count === 0,\n style\n };\n}\nfunction getSegment(segment, points, bounds) {\n const {property, start: startBound, end: endBound} = bounds;\n const {between, normalize} = propertyFn(property);\n const count = points.length;\n let {start, end, loop} = segment;\n let i, ilen;\n if (loop) {\n start += count;\n end += count;\n for (i = 0, ilen = count; i < ilen; ++i) {\n if (!between(normalize(points[start % count][property]), startBound, endBound)) {\n break;\n }\n start--;\n end--;\n }\n start %= count;\n end %= count;\n }\n if (end < start) {\n end += count;\n }\n return {start, end, loop, style: segment.style};\n}\nfunction _boundSegment(segment, points, bounds) {\n if (!bounds) {\n return [segment];\n }\n const {property, start: startBound, end: endBound} = bounds;\n const count = points.length;\n const {compare, between, normalize} = propertyFn(property);\n const {start, end, loop, style} = getSegment(segment, points, bounds);\n const result = [];\n let inside = false;\n let subStart = null;\n let value, point, prevValue;\n const startIsBefore = () => between(startBound, prevValue, value) && compare(startBound, prevValue) !== 0;\n const endIsBefore = () => compare(endBound, value) === 0 || between(endBound, prevValue, value);\n const shouldStart = () => inside || startIsBefore();\n const shouldStop = () => !inside || endIsBefore();\n for (let i = start, prev = start; i <= end; ++i) {\n point = points[i % count];\n if (point.skip) {\n continue;\n }\n value = normalize(point[property]);\n if (value === prevValue) {\n continue;\n }\n inside = between(value, startBound, endBound);\n if (subStart === null && shouldStart()) {\n subStart = compare(value, startBound) === 0 ? i : prev;\n }\n if (subStart !== null && shouldStop()) {\n result.push(normalizeSegment({start: subStart, end: i, loop, count, style}));\n subStart = null;\n }\n prev = i;\n prevValue = value;\n }\n if (subStart !== null) {\n result.push(normalizeSegment({start: subStart, end, loop, count, style}));\n }\n return result;\n}\nfunction _boundSegments(line, bounds) {\n const result = [];\n const segments = line.segments;\n for (let i = 0; i < segments.length; i++) {\n const sub = _boundSegment(segments[i], line.points, bounds);\n if (sub.length) {\n result.push(...sub);\n }\n }\n return result;\n}\nfunction findStartAndEnd(points, count, loop, spanGaps) {\n let start = 0;\n let end = count - 1;\n if (loop && !spanGaps) {\n while (start < count && !points[start].skip) {\n start++;\n }\n }\n while (start < count && points[start].skip) {\n start++;\n }\n start %= count;\n if (loop) {\n end += start;\n }\n while (end > start && points[end % count].skip) {\n end--;\n }\n end %= count;\n return {start, end};\n}\nfunction solidSegments(points, start, max, loop) {\n const count = points.length;\n const result = [];\n let last = start;\n let prev = points[start];\n let end;\n for (end = start + 1; end <= max; ++end) {\n const cur = points[end % count];\n if (cur.skip || cur.stop) {\n if (!prev.skip) {\n loop = false;\n result.push({start: start % count, end: (end - 1) % count, loop});\n start = last = cur.stop ? end : null;\n }\n } else {\n last = end;\n if (prev.skip) {\n start = end;\n }\n }\n prev = cur;\n }\n if (last !== null) {\n result.push({start: start % count, end: last % count, loop});\n }\n return result;\n}\nfunction _computeSegments(line, segmentOptions) {\n const points = line.points;\n const spanGaps = line.options.spanGaps;\n const count = points.length;\n if (!count) {\n return [];\n }\n const loop = !!line._loop;\n const {start, end} = findStartAndEnd(points, count, loop, spanGaps);\n if (spanGaps === true) {\n return splitByStyles([{start, end, loop}], points, segmentOptions);\n }\n const max = end < start ? end + count : end;\n const completeLoop = !!line._fullLoop && start === 0 && end === count - 1;\n return splitByStyles(solidSegments(points, start, max, completeLoop), points, segmentOptions);\n}\nfunction splitByStyles(segments, points, segmentOptions) {\n if (!segmentOptions || !segmentOptions.setContext || !points) {\n return segments;\n }\n return doSplitByStyles(segments, points, segmentOptions);\n}\nfunction doSplitByStyles(segments, points, segmentOptions) {\n const count = points.length;\n const result = [];\n let start = segments[0].start;\n let i = start;\n for (const segment of segments) {\n let prevStyle, style;\n let prev = points[start % count];\n for (i = start + 1; i <= segment.end; i++) {\n const pt = points[i % count];\n style = readStyle(segmentOptions.setContext({type: 'segment', p0: prev, p1: pt}));\n if (styleChanged(style, prevStyle)) {\n result.push({start: start, end: i - 1, loop: segment.loop, style: prevStyle});\n prevStyle = style;\n start = i - 1;\n }\n prev = pt;\n prevStyle = style;\n }\n if (start < i - 1) {\n result.push({start, end: i - 1, loop: segment.loop, style});\n start = i - 1;\n }\n }\n return result;\n}\nfunction readStyle(options) {\n return {\n backgroundColor: options.backgroundColor,\n borderCapStyle: options.borderCapStyle,\n borderDash: options.borderDash,\n borderDashOffset: options.borderDashOffset,\n borderJoinStyle: options.borderJoinStyle,\n borderWidth: options.borderWidth,\n borderColor: options.borderColor\n };\n}\nfunction styleChanged(style, prevStyle) {\n return prevStyle && JSON.stringify(style) !== JSON.stringify(prevStyle);\n}\n\nexport { merge as $, toPadding as A, each as B, getMaximumSize as C, _getParentNode as D, readUsedSize as E, throttled as F, supportsEventListenerOptions as G, HALF_PI as H, log10 as I, _factorize as J, finiteOrDefault as K, callback as L, _addGrace as M, toDegrees as N, _measureText as O, PI as P, _int16Range as Q, _alignPixel as R, clipArea as S, TAU as T, renderText as U, unclipArea as V, toFont as W, _toLeftRightCenter as X, _alignStartEnd as Y, overrides as Z, _arrayUnique as _, resolve as a, _capitalize as a0, descriptors as a1, isFunction as a2, _attachContext as a3, _createResolver as a4, _descriptors as a5, mergeIf as a6, uid as a7, debounce as a8, retinaScale as a9, niceNum as aA, almostWhole as aB, almostEquals as aC, _decimalPlaces as aD, _longestText as aE, _filterBetween as aF, _lookup as aG, getHoverColor as aH, clone$1 as aI, _merger as aJ, _mergerIf as aK, _deprecated as aL, toFontString as aM, splineCurve as aN, splineCurveMonotone as aO, getStyle as aP, fontString as aQ, toLineHeight as aR, PITAU as aS, INFINITY as aT, RAD_PER_DEG as aU, QUARTER_PI as aV, TWO_THIRDS_PI as aW, _angleDiff as aX, clearCanvas as aa, setsEqual as ab, _elementsEqual as ac, getAngleFromPoint as ad, _readValueToProps as ae, _updateBezierControlPoints as af, _computeSegments as ag, _boundSegments as ah, _steppedInterpolation as ai, _bezierInterpolation as aj, _pointInLine as ak, _steppedLineTo as al, _bezierCurveTo as am, drawPoint as an, addRoundedRectPath as ao, toTRBL as ap, toTRBLCorners as aq, _boundSegment as ar, _normalizeAngle as as, getRtlAdapter as at, overrideTextDirection as au, _textX as av, restoreTextDirection as aw, noop as ax, distanceBetweenPoints as ay, _setMinAndMaxByKey as az, isArray as b, color as c, defaults as d, effects as e, resolveObjectKey as f, isNumberFinite as g, defined as h, isObject as i, isNullOrUndef as j, toPercentage as k, listenArrayEvents as l, toDimension as m, formatNumber as n, _angleBetween as o, isNumber as p, _limitValue as q, requestAnimFrame as r, sign as s, toRadians as t, unlistenArrayEvents as u, valueOrDefault as v, _lookupByKey as w, getRelativePosition as x, _isPointInArea as y, _rlookupByKey as z };\n","import {until} from 'lit-html/directives/until';\nimport {repeat} from 'lit-html/directives/repeat';\nimport {unsafeHTML} from 'lit-html/directives/unsafe-html';\nimport {recommendedActivityType, products} from '@modules/constants-enumerate';\nimport '@modules/ems-collapse';\nimport {LoadingEllipses} from '@epg/epg-components';\nimport {dashboardLabels, generalLabels} from '@modules/i18n-labels';\nimport Materials from '!svg-inline-loader!./assets/materials.svg';\nimport Vocabulary from '!svg-inline-loader!./assets/vocabulary.svg';\nimport Activity from '!svg-inline-loader!./assets/activity.svg';\nimport ExitTicket from '!svg-inline-loader!./assets/exit_ticket.svg';\n\nconst dynamicCss = [\n '.ai-English-Support',\n '.ai-Social-Emotional',\n '.border-dashed-bottom',\n '.collapse-els',\n '.collapse-ses',\n '.btn-english_language_supports',\n '.btn-social_emotional_supports',\n '.ql-indent-1',\n '.ai-vocabulary',\n ',ai-activity',\n '.ai-exit_ticket',\n '.btn-success_strategies',\n '.btn-english_learner_supports',\n '.field-english_language_supports',\n '.field-english_learner_supports'\n];\n\nconst iconMap = {\n english_language_supports: 'ai-English-Support',\n social_emotional_supports: 'ai-Social-Emotional',\n english_learner_supports: 'ai-English-Support',\n};\nconst acscdn = (path) => 'https://educate.aofl.com/acscdn' + path;\n\nconst getTranslation = (field, ctx) => {\n const translations = {\n materials: ctx.i18n.__('', 'Materials'),\n mathematical_practices: ctx.i18n.__('', 'Mathematical Practices'),\n try_it: ctx.i18n.__('', 'Try It!'),\n set_up: ctx.i18n.__('', 'Set Up'),\n learner_reflection: ctx.i18n.__('', 'Learner Reflection'),\n english_language_supports: ctx.i18n.__('', 'English Language Supports'),\n social_emotional_supports: ctx.i18n.__('', 'Success Skills'),\n purpose: ctx.i18n.__('', 'Purpose'),\n vocabulary: ctx.i18n.__('', 'Vocabulary'),\n activity: ctx.i18n.__('', 'Activity'),\n exit_ticket: ctx.i18n.__('', 'Exit Ticket'),\n success_strategies: ctx.i18n.__('', 'Success Strategies'),\n teacher: ctx.i18n.__('', 'Teacher'),\n student: ctx.i18n.__('', 'Student'),\n english_learner_supports: ctx.i18n.__('', 'English Learner Support'),\n };\n return translations[field];\n};\nconst headerIconMapping = (field) => {\n const mapping = {\n vocabulary: Vocabulary,\n activity: Activity,\n exit_ticket: ExitTicket\n };\n\n return mapping[field];\n};\nconst getImgURL = (product) => {\n const urls = {\n [products.MATH_ACADEMY]: 'https://educate.aofl.com/cdn/images/icon/mathmastery.png',\n [products.MY_MATH_ACADEMY]: 'https://educate.aofl.com/cdn/images/icon/my_math_academy.png',\n [products.MY_READING_ACADEMY]: 'https://educate.aofl.com/cdn/images/icon/my_reading_academy.png',\n [products.MY_READING_ACADEMY_ES]: 'https://educate.aofl.com/cdn/images/icon/my_reading_academy_es.png',\n };\n return urls[product];\n};\nconst getAudienceSelectButtons = (ctx, html) => {\n return [recommendedActivityType.ONE_ON_ONE, recommendedActivityType.GROUP].map((type) => {\n if (ctx.recommendedActivityTypes[type]) {\n return html`\n \n \n ${type === recommendedActivityType.ONE_ON_ONE ? until(ctx.__('', 'One-on-One Activity')) : until(ctx.__('', 'Group Activity'))}\n \n `;\n }\n });\n};\nconst getField = (ctx, html, field, iconName, enableBorderDash = false) => {\n if (ctx.activeRecommendedActivity?.[field]) {\n let icon = html``;\n if (iconName) {\n if (ctx.activeRecommendedActivity?.version === '2') {\n icon = html`${html([headerIconMapping(field)])}`;\n } else {\n icon = html``;\n }\n }\n\n return html`\n
\n
\n ${icon}\n ${until(getTranslation(field, ctx))}\n
\n
\n ${unsafeHTML(ctx.activeRecommendedActivity[field])}\n
\n
\n `;\n }\n};\n\nconst getCollapse = (field, tabIndex, ctx, html) => {\n if (!ctx.activeRecommendedActivity?.[field]) {\n return;\n }\n const collapseHeader = html`\n \n ${until(getTranslation(field, ctx))}\n `;\n return html`\n
\n ctx.toggleCollapse(field)}\"\n tabindex=\"0\"\n aria-expanded=\"${ctx.collapseOpen[field]}\"\n data-bi-id=\"${field}-collapse-${ctx.activeRecommendedActivity.id}\"\n >\n
\n
\n ${collapseHeader}\n
\n \n
\n \n\n
\n
\n ${unsafeHTML(ctx.activeRecommendedActivity[field])}\n
\n
\n
\n `;\n};\nconst getPrintButton = (ctx, html) => {\n if (ctx.showPdfButton[ctx.activeRecommendedActivity.id]) {\n return html`\n `;\n }\n};\n\nconst getMaterialsPdfs = (ctx, html) => {\n if (!ctx.activeRecommendedActivity?.materials_pdfs) {\n return;\n }\n\n if (ctx.activeRecommendedActivity?.version === '2') {\n return html`\n
    \n ${repeat(ctx.activeRecommendedActivity.materials_pdfs, (pdf) => pdf, (pdf) => html`\n ${pdf?.full_path ? html`\n
  • \n ${pdf.filename}\n ${until(ctx.__('', '[PDF]'))}\n
  • \n ` : html``}\n `)}\n
\n `;\n } else {\n return html`\n \n `;\n }\n};\n\nconst getMaterials = (ctx, html) => {\n if (!ctx.activeRecommendedActivity.materials) {\n return;\n }\n return html`\n
\n
\n ${ctx.activeRecommendedActivity?.version === '2' ? html`\n ${html([Materials])}\n ` : html``}\n ${until(getTranslation('materials', ctx))}\n
\n
\n ${unsafeHTML(ctx.activeRecommendedActivity?.materials)}\n ${getMaterialsPdfs(ctx, html)}\n
\n
`;\n};\n\nconst getPurpose = (ctx, html) => {\n if (!ctx.activeRecommendedActivity.purpose) {\n return;\n }\n return html`\n
\n ${until(getTranslation('purpose', ctx))}\n ${unsafeHTML(ctx.activeRecommendedActivity?.purpose)}\n
`;\n};\n\nconst getSuccessStrategies = (ctx, html, field) => {\n if (!ctx.activeRecommendedActivity?.success_strategies_teacher || !ctx.activeRecommendedActivity?.success_strategies_student) {\n return;\n }\n\n const collapseHeader = html`\n \n ${until(getTranslation(field, ctx))}\n `;\n return html`\n
\n ctx.toggleCollapse(field)}\"\n data-bi-id=\"success-strategies-collapse-${ctx.activeRecommendedActivity.id}\"\n aria-expanded=\"${ctx.collapseOpen[field]}\">\n
\n
\n ${collapseHeader}\n
\n \n
\n
\n\n
\n
\n ${ctx.activeRecommendedActivity?.success_strategies_teacher ? html`\n
${until(getTranslation('teacher', ctx))}
\n ${unsafeHTML(ctx.activeRecommendedActivity?.success_strategies_teacher)}\n ` : html``}\n ${ctx.activeRecommendedActivity?.success_strategies_student ? html`\n
${until(getTranslation('student', ctx))}
\n ${unsafeHTML(ctx.activeRecommendedActivity?.success_strategies_student)}\n ` : html``}\n
\n
\n
\n `;\n};\n\nconst version1 = (ctx, html) => html`\n
\n
\n ${getMaterials(ctx, html)}\n ${getField(ctx, html, 'set_up')}\n ${getField(ctx, html, 'try_it', 'ai-Try-It')}\n ${getField(ctx, html, 'learner_reflection', 'ai-Social-Emotional')}\n
\n
\n ${getField(ctx, html, 'mathematical_practices', 'ai-Math-Practices')}\n ${getCollapse('english_language_supports', 1, ctx, html)}\n ${getCollapse('social_emotional_supports', 2, ctx, html)}\n
\n
\n`;\n\nconst version2 = (ctx, html) => html`\n ${getPurpose(ctx, html)}\n
\n
\n ${getMaterials(ctx, html)}\n ${getField(ctx, html, 'vocabulary', 'ai-Try-It', true)}\n ${getField(ctx, html, 'activity', 'ai-Try-It' )}\n
\n
\n ${getField(ctx, html, 'exit_ticket', 'ai-Try-It')}\n ${getSuccessStrategies(ctx, html, 'success_strategies')}\n ${getCollapse('english_learner_supports', 2, ctx, html)}\n
\n
\n`;\n\nexport default (ctx, html) => {\n if (!ctx.activities.length) {\n return html``;\n }\n return html`\n
\n ${(ctx.forGroupSupport) ? html`\n
\n ${until(dashboardLabels.recommendedActivityName(ctx.activeRecommendedActivity?.activity_name))}\n (${until(dashboardLabels.estimatedTime(ctx.activeRecommendedActivity?.estimated_time))})\n
\n
\n
${until(dashboardLabels.INSTRUCTION_TYPES)}:
\n
\n ${getAudienceSelectButtons(ctx, html)}\n
\n
\n
\n
\n ${ctx.activeRecommendedActivity?.version === '2' ? html`` : html`\n
${ctx.activeRecommendedActivity?.activity_description}
`}\n ${ctx.activeRecommendedActivity?.version === '2' ? version2(ctx, html) : version1(ctx, html)}\n
\n ` : html`\n
${ctx.skillName}
\n

${until(ctx.__('', 'Recommended Activity'))}

\n
\n
\n
${until(dashboardLabels.INSTRUCTION_TYPES)}:
\n
\n ${getAudienceSelectButtons(ctx, html)}\n
\n
\n
\n ${getPrintButton(ctx, html)}\n
\n \n
\n
\n \n

${until(dashboardLabels.recommendedActivityName(ctx.activeRecommendedActivity?.activity_name))}
\n (${until(dashboardLabels.estimatedTime(ctx.activeRecommendedActivity?.estimated_time))})\n

\n
\n ${ctx.activeRecommendedActivity?.version === '2' ? html`` : html`\n
${ctx.activeRecommendedActivity?.activity_description}
`}\n ${ctx.activeRecommendedActivity?.version === '2' ? version2(ctx, html) : version1(ctx, html)}\n
\n `}\n`;\n};\n","import styles from './template.css';\nimport template from './template';\nimport {AoflElement, customElement, property} from '@aofl/element';\nimport {queryAll} from 'lit-element';\nimport {i18nMixin} from '@aofl/i18n-mixin';\nimport {recommendedActivityType, sdoNs, supportedLocalesMap} from '@modules/constants-enumerate';\nimport translations from '@modules/i18n';\nimport {storeInstance} from '@aofl/store/dist/legacy';\nimport {ApiService} from '@modules/api-service';\n\n/**\n * @summary AcademyRecommendedActivity\n * @extends {i18nMixin(AoflElement)}\n */\n@customElement('academy-recommended-activity')\nclass AcademyRecommendedActivity extends i18nMixin(AoflElement) {\n /**\n * Creates an instance of AcademyRecommendedActivity.\n */\n constructor() {\n super();\n this.translations = translations;\n }\n\n @property({type: Array})\n activities = []\n\n @property({type: String})\n ['default-type'] = recommendedActivityType.GROUP;\n\n @property({type: Object, attribute: false})\n activeRecommendedActivity = {};\n\n @property({type: Object})\n collapseOpen = {\n english_language_supports: false,\n social_emotional_supports: false,\n success_strategies: false,\n english_learner_supports: false,\n };\n\n @property({type: String})\n skillName = '';\n\n @property({type: Object})\n recommendedActivityTypes = {\n [recommendedActivityType.GROUP]: false,\n [recommendedActivityType.ONE_ON_ONE]: false\n }\n\n @queryAll('.content img')\n elsSesImgs = [];\n\n @property({type: Object})\n showPdfButton = {};\n\n @property({type: Boolean})\n ['for-student-view'] = false;\n\n @property({type: Boolean})\n forGroupSupport = false;\n\n connectedCallback() {\n super.connectedCallback();\n const activityIds = [];\n this.activities?.map((activity) => {\n activityIds.push(activity.id);\n this.recommendedActivityTypes[activity.type] = true;\n if (this['default-type'] && this['default-type'] === activity.type) {\n this.activeRecommendedActivity = activity;\n }\n });\n if (Object.keys(this.activeRecommendedActivity || {}).length === 0) {\n this.activeRecommendedActivity = this.activities[0] || {};\n }\n ApiService.recommendedActivityIsDownloadable(activityIds)\n .then((response) => {\n response.statuses.map((status) => {\n this.showPdfButton = {\n ...this.showPdfButton,\n [status.id]: (selectedLanguage === supportedLocalesMap.en && !this.forGroupSupport && status.is_downloadable)\n };\n });\n });\n const state = storeInstance.getState();\n const selectedLanguage = state[sdoNs.LOCALE_DD].selected.code;\n }\n\n updated(changedProperties) {\n if (changedProperties.has('activeRecommendedActivity')) {\n this.elsSesImgs?.forEach((img) => {\n img.addEventListener('click', () => {\n this.collapseOpen = {\n english_language_supports: true,\n social_emotional_supports: true\n };\n });\n });\n }\n }\n\n changeAudience(e) {\n const type = e.composedPath()[0].value;\n this.activities?.map((activity) => {\n if (type === activity.type) {\n this.activeRecommendedActivity = activity;\n }\n });\n }\n\n toggleCollapse(field) {\n this.collapseOpen = {\n ...this.collapseOpen,\n [field]: !this.collapseOpen[field]\n };\n }\n\n /**\n * @readonly\n */\n static is = 'academy-recommended-activity';\n\n /**\n * @return {Object}\n */\n render() {\n return super.render({\n default: {template, styles: [styles]}\n });\n }\n}\n\nexport default AcademyRecommendedActivity;\n","exports = module.exports = require(\"../../../../../node_modules/css-loader/dist/runtime/api.js\")(false);\n// Imports\nvar getUrl = require(\"../../../../../node_modules/css-loader/dist/runtime/getUrl.js\");\nvar ___CSS_LOADER_URL___0___ = getUrl(require(\"../../../../template/main/fonts/aofl-sans/aoflsans-light.woff2\"));\nvar ___CSS_LOADER_URL___1___ = getUrl(require(\"../../../../template/main/fonts/aofl-sans/aoflsans-lightit.woff2\"));\nvar ___CSS_LOADER_URL___2___ = getUrl(require(\"../../../../template/main/fonts/aofl-sans/aoflsans-reg.woff2\"));\nvar ___CSS_LOADER_URL___3___ = getUrl(require(\"../../../../template/main/fonts/aofl-sans/aoflsans-regit.woff2\"));\nvar ___CSS_LOADER_URL___4___ = getUrl(require(\"../../../../template/main/fonts/aofl-sans/aoflsans-sbold.woff2\"));\nvar ___CSS_LOADER_URL___5___ = getUrl(require(\"../../../../template/main/fonts/aofl-sans/aoflsans-sboldit.woff2\"));\nvar ___CSS_LOADER_URL___6___ = getUrl(require(\"../../../../template/main/fonts/aofl-sans/aoflsans-bold.woff2\"));\nvar ___CSS_LOADER_URL___7___ = getUrl(require(\"../../../../template/main/fonts/aofl-sans/aoflsans-boldit.woff2\"));\nvar ___CSS_LOADER_URL___8___ = getUrl(require(\"../../../../template/main/fonts/abcmouse-sans/ABCmouseSans-Light.woff2\"));\nvar ___CSS_LOADER_URL___9___ = getUrl(require(\"../../../../template/main/fonts/abcmouse-sans/ABCmouseSans-LightIt.woff2\"));\nvar ___CSS_LOADER_URL___10___ = getUrl(require(\"../../../../template/main/fonts/abcmouse-sans/ABCmouseSans-Regular.woff2\"));\nvar ___CSS_LOADER_URL___11___ = getUrl(require(\"../../../../template/main/fonts/abcmouse-sans/ABCmouseSans-RegularIt.woff2\"));\nvar ___CSS_LOADER_URL___12___ = getUrl(require(\"../../../../template/main/fonts/abcmouse-sans/ABCmouseSans-Semibold.woff2\"));\nvar ___CSS_LOADER_URL___13___ = getUrl(require(\"../../../../template/main/fonts/abcmouse-sans/ABCmouseSans-SemiboldIt.woff2\"));\nvar ___CSS_LOADER_URL___14___ = getUrl(require(\"../../../../template/main/fonts/abcmouse-sans/ABCmouseSans-Bold.woff2\"));\nvar ___CSS_LOADER_URL___15___ = getUrl(require(\"../../../../template/main/fonts/abcmouse-sans/ABCmouseSans-BoldIt.woff2\"));\nvar ___CSS_LOADER_URL___16___ = getUrl(require(\"../../../../template/main/fonts/abcmouse-sans/ABCmouseSans-ExtraBold.woff2\"));\nvar ___CSS_LOADER_URL___17___ = getUrl(require(\"../../../../template/main/fonts/abcmouse-sans/ABCmouseSans-ExtraBoldIt.woff2\"));\nvar ___CSS_LOADER_URL___18___ = getUrl(require(\"../../../../template/main/fonts/aofl-icons/icomoon.woff2?c6f21u\"));\n// Module\nexports.push([module.id, \"/*! @aofl-component */:root{--blue:#0d6efd;--indigo:#6610f2;--purple:#8b42ca;--pink:#e83e8c;--red:#e50b0a;--orange:#e17a05;--yellow:#ffc107;--green:#3c8104;--teal:#20c997;--cyan:#53c9dc;--white:#fff;--gray:#6b6b6b;--gray-dark:#343a40;--light-green:#b1dd53;--table-border-color:#d8d8d8;--gray-100:#f2f2f2;--gray-200:#d9d9d9;--gray-300:#d8d8d8;--gray-400:#ced4da;--gray-500:#adb5bd;--gray-600:#6c757d;--gray-700:#4a4a4a;--gray-800:#343a40;--gray-900:#212529;--gray-accessibility:#6b6b6b;--primary:#0d6efd;--secondary:#adb5bd;--success:#3c8104;--info:#cfe2ff;--warning:#e17a05;--danger:#d20a09;--light:#f8f9fa;--dark:#000;--breakpoint-xxs:0;--breakpoint-xs:375px;--breakpoint-sm:576px;--breakpoint-md:768px;--breakpoint-lg:992px;--breakpoint-xl:1200px;--font-family-sans-serif:aofl-sans,Arial,Helvetica,sans-serif;--font-family-monospace:SFMono-Regular,Menlo,Monaco,Consolas,\\\"Liberation Mono\\\",\\\"Courier New\\\",monospace;--z-index-dropdown:1000;--z-index-sticky:1020;--z-index-fixed:1030;--z-index-modal-backdrop:1040;--z-index-modal:1050;--z-index-popover:1060;--z-index-tooltip:1070;--header-height:6rem;--content-height:calc(100vh - 6rem);--sidepanel-width:20rem;--purple-color:#641da3;--purple-600:#956abc;--purple-400:#c7afdd;--purple-200:#e0d2ed;--struggling:#f6993b;--below-target:#ffcf00;--in_progress:#1280f5;--prior_knowledge:#edf887;--mastery_achieved:#69d112;--inactive:#d8d8d8}route-view{max-width:1200px}@font-face{font-family:aofl-sans;font-style:normal;font-weight:300;src:url(\" + ___CSS_LOADER_URL___0___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:italic;font-weight:300;src:url(\" + ___CSS_LOADER_URL___1___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:normal;font-weight:400;src:url(\" + ___CSS_LOADER_URL___2___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:italic;font-weight:400;src:url(\" + ___CSS_LOADER_URL___3___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:normal;font-weight:600;src:url(\" + ___CSS_LOADER_URL___4___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:italic;font-weight:600;src:url(\" + ___CSS_LOADER_URL___5___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:normal;font-weight:700;src:url(\" + ___CSS_LOADER_URL___6___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:italic;font-weight:700;src:url(\" + ___CSS_LOADER_URL___7___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:normal;font-weight:300;src:url(\" + ___CSS_LOADER_URL___8___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:italic;font-weight:300;src:url(\" + ___CSS_LOADER_URL___9___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:normal;font-weight:400;src:url(\" + ___CSS_LOADER_URL___10___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:italic;font-weight:400;src:url(\" + ___CSS_LOADER_URL___11___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:normal;font-weight:600;src:url(\" + ___CSS_LOADER_URL___12___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:italic;font-weight:600;src:url(\" + ___CSS_LOADER_URL___13___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:normal;font-weight:700;src:url(\" + ___CSS_LOADER_URL___14___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:italic;font-weight:700;src:url(\" + ___CSS_LOADER_URL___15___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:normal;font-weight:800;src:url(\" + ___CSS_LOADER_URL___16___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:italic;font-weight:800;src:url(\" + ___CSS_LOADER_URL___17___ + \") format(\\\"woff2\\\")}@font-face{font-family:icomoon;src:url(\" + ___CSS_LOADER_URL___18___ + \") format(\\\"woff2\\\");font-weight:400;font-style:normal;font-display:block}[class*=\\\" ai-\\\"],[class^=ai-]{font-family:icomoon!important;speak:never;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*,:after,:before{box-sizing:border-box}html{font-family:sans-serif;line-height:1.15;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:rgba(0,0,0,0)}figcaption,main,nav,section{display:block}[tabindex=\\\"-1\\\"]:focus{outline:0!important}h2,h3,h4{margin-bottom:1rem}h2,h3,h4,p{margin-top:0}p{margin-bottom:1.6rem}ul{margin-top:0;margin-bottom:1rem}ul ul{margin-bottom:0}strong{font-weight:bolder}a{color:#0d6efd;background-color:transparent}a,a:hover{text-decoration:none}a:hover{color:rgb(0,86.1,178.5)}a:not([href]):not([tabindex]),a:not([href]):not([tabindex]):focus,a:not([href]):not([tabindex]):hover{color:inherit;text-decoration:none}a:not([href]):not([tabindex]):focus{outline:0}caption{padding-top:.75rem;padding-bottom:.75rem;color:#6c757d;text-align:left;caption-side:bottom}label{display:inline-block;margin-bottom:.8rem}button{border-radius:0}button:focus{outline:1px dotted;outline:5px auto -webkit-focus-ring-color}button,input{margin:0;font-family:inherit;font-size:inherit;line-height:inherit;overflow:visible}button{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]:not(:disabled),[type=reset]:not(:disabled),[type=submit]:not(:disabled),button:not(:disabled){cursor:pointer}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{padding:0;border-style:none}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}input[type=date],input[type=datetime-local],input[type=month],input[type=time]{-webkit-appearance:listbox}legend{display:block;width:100%;max-width:100%;padding:0;margin-bottom:.5rem;font-size:1.5rem;line-height:inherit;color:inherit;white-space:normal}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:none}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}summary{display:list-item;cursor:pointer}template{display:none}[hidden]{display:none!important}*{-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important}html{font-size:62.5%;height:100%}link-to{color:#0d6efd;text-decoration:none;background-color:transparent}link-to:hover{color:rgb(0,86.1,178.5);text-decoration:none;cursor:pointer}route-view{display:none;flex:1}site-header{background-color:#fff;display:none;position:-webkit-sticky;position:sticky;top:0;height:var(--header-height)}#main{display:none;flex:1 auto;max-width:100%;overflow:hidden;flex-direction:column;overflow-y:scroll}.loaded #main,.loaded site-header,body.loaded,route-view.loaded{display:flex}route-view.left-panel-active{padding-left:var(--sidepanel-width)}.h2,.h3,.h4,h2,h3,h4{margin-bottom:1rem;font-weight:500;line-height:1.2}.h2,h2{font-size:2rem}.h3,h3{font-size:1.8rem}.h4,h4{font-size:1.6rem}.row{display:flex;flex-wrap:wrap;margin-right:-15px;margin-left:-15px}.col-lg-3,.col-md-4,.col-sm-3,.col-sm-4,.col-sm-6,.col-xs-6,.col-xs-12{position:relative;width:100%;padding-right:15px;padding-left:15px}@media (min-width:375px){.col-xs-6{flex:0 0 50%;max-width:50%}.col-xs-12{flex:0 0 100%;max-width:100%}}@media (min-width:576px){.col-sm-3{flex:0 0 25%;max-width:25%}.col-sm-4{flex:0 0 33.3333333333%;max-width:33.3333333333%}.col-sm-6{flex:0 0 50%;max-width:50%}.offset-sm-3{margin-left:25%}}@media (min-width:768px){.col-md-4{flex:0 0 33.3333333333%;max-width:33.3333333333%}}@media (min-width:992px){.col-lg-3{flex:0 0 25%;max-width:25%}}.invalid-feedback{display:none;width:100%;margin-top:.25rem;font-size:80%;color:#e50b0a}input[type=checkbox],input[type=radio]{cursor:pointer}input[type=checkbox]+label,input[type=radio]+label{cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.invalid-feedback{color:#d20a09}.btn{display:inline-block;font-weight:400;color:#000;text-align:center;vertical-align:middle;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;background-color:transparent;border:1px solid transparent;padding:.375rem .75rem;font-size:1.6rem;line-height:1.5;border-radius:.25rem;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.btn{transition:none}}.btn:hover{color:#000;text-decoration:none}.btn:focus{outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.btn.disabled,.btn:disabled{opacity:.65}a.btn.disabled{pointer-events:none}.btn-primary{color:#fff;background-color:#0d6efd;border-color:#0d6efd}.btn-primary:hover{color:#fff;background-color:rgb(1.8668032787,92.4067622951,225.8831967213);border-color:rgb(1.762295082,87.2336065574,213.237704918)}.btn-primary:focus{box-shadow:0 0 0 .2rem rgba(49.3,131.75,253.3,.5)}.btn-primary.disabled,.btn-primary:disabled{color:#fff;background-color:#0d6efd;border-color:#0d6efd}.btn-primary:not(:disabled):not(.disabled):active{color:#fff;background-color:rgb(1.762295082,87.2336065574,213.237704918);border-color:rgb(1.6577868852,82.0604508197,200.5922131148)}.btn-primary:not(:disabled):not(.disabled):active:focus{box-shadow:0 0 0 .2rem rgba(49.3,131.75,253.3,.5)}.btn-outline-primary{color:#0d6efd;border-color:#0d6efd}.btn-outline-primary:hover{color:#fff;background-color:#0d6efd;border-color:#0d6efd}.btn-outline-primary:focus{box-shadow:0 0 0 .2rem rgba(13,110,253,.5)}.btn-outline-primary.disabled,.btn-outline-primary:disabled{color:#0d6efd;background-color:transparent}.btn-outline-primary:not(:disabled):not(.disabled):active{color:#fff;background-color:#0d6efd;border-color:#0d6efd}.btn-outline-primary:not(:disabled):not(.disabled):active:focus{box-shadow:0 0 0 .2rem rgba(13,110,253,.5)}.btn-link{font-weight:400;color:#0d6efd;text-decoration:none}.btn-link:hover{color:rgb(0,86.1,178.5);text-decoration:none}.btn-link:focus{text-decoration:none;box-shadow:none}.btn-link.disabled,.btn-link:disabled{color:#6c757d;pointer-events:none}.btn-block{display:block;width:100%}.btn-block+.btn-block{margin-top:.8rem}input[type=button].btn-block,input[type=reset].btn-block,input[type=submit].btn-block{width:100%}.btn:disabled{cursor:not-allowed}.btn.disabled,link-to.btn.disabled,link-to.btn:disabled,link-to.btn[disabled]{pointer-events:none}button,button:active{outline:none}.btn:focus-visible,[tabindex=\\\"0\\\"]:focus-visible,a:focus-visible,aofl-list-option:focus-visible,button[type=button]:focus-visible,collapse-button:focus-visible{outline:1px solid #e50b0a;border:1px solid #e50b0a}.btn-link:focus-visible{border:2px solid #e50b0a}.btn-primary:focus-visible .btn-outline-primary:focus-visible{outline-offset:2px;outline:2px solid #e50b0a}.btn-outline-primary,.btn-primary{font-weight:600;border-width:2px}.btn.disabled,.btn:disabled{background:#cfe2ff;border-color:#cfe2ff;color:#0d6efd;opacity:1}ems-dropdown>button.btn{display:flex;align-items:center;border:1px solid var(--gray)}@keyframes progress-bar-stripes{0%{background-position:1.6rem 0}to{background-position:0 0}}.modal-container{background-color:rgba(0,0,0,.2);position:fixed;top:0;bottom:0;right:0;left:0;z-index:var(--z-index-modal)}.modal-container :first-child{overflow:auto}.modal{position:relative;display:block;height:100vh}.modal-dialog-centered.modal-dialog-scrollable{height:auto;max-height:calc(100% - 2.8rem);min-height:auto}.modal-body,.modal-content,.modal-footer,.modal-header{border:none}.modal-header{font-size:2rem;padding:2.4rem}.modal-body{padding:0 2.4rem 4.8rem}.colored-header{color:#fff}.modal-body p{text-align:left}.colored-header-primary{background-color:#0d6efd}.colored-header-secondary{background-color:#adb5bd}.colored-header-success{background-color:#3c8104}.colored-header-info{background-color:#cfe2ff}.colored-header-warning{background-color:#e17a05}.colored-header-danger{background-color:#d20a09}.colored-header-light{background-color:#f8f9fa}.colored-header-dark{background-color:#000}@keyframes spinner-border{to{transform:rotate(1turn)}}@keyframes spinner-grow{0%{transform:scale(0)}50%{opacity:1}}.rounded-pill{border-radius:80rem!important}.d-none{display:none!important}.d-block{display:block!important}.d-flex{display:flex!important}.flex-column{flex-direction:column!important}.justify-content-start{justify-content:flex-start!important}.justify-content-center{justify-content:center!important}.align-items-center{align-items:center!important}@media (min-width:768px){.justify-content-md-center{justify-content:center!important}}.mt-3{margin-top:1rem!important}.mb-3{margin-bottom:1rem!important}.mb-5{margin-bottom:3rem!important}.p-0{padding:0!important}.text-center{text-align:center!important}.font-weight-normal{font-weight:400!important}.font-weight-bold{font-weight:700!important}.text-danger{color:#d20a09!important}a.text-danger:focus,a.text-danger:hover{color:rgb(136.6438356164,6.5068493151,5.8561643836)!important}.font-weight-semibold{font-weight:600!important}.font-size-lg{font-size:1.9rem}.h2{font-weight:600}[hidden]{visibility:hidden!important;height:0!important;width:0!important;min-height:unset!important}@media print{*,:after,:before{text-shadow:none!important;box-shadow:none!important}a:not(.btn){text-decoration:underline}h2,h3,p{orphans:3;widows:3}h2,h3{page-break-after:avoid}@page{size:a3}}@media print{main::-webkit-scrollbar{display:none}main{-ms-overflow-style:none;scrollbar-width:none}}@page{size:A4;margin:20mm 16mm 20mm 16mm}:host{display:flex;padding:2rem;max-width:100rem;flex-direction:column;width:100%;margin:0 auto}\", \"\"]);\n","module.exports = __webpack_public_path__ + \"93ca1dce60d38185ac2c1d724bba09ab.webp\";","exports = module.exports = require(\"../../../../../node_modules/css-loader/dist/runtime/api.js\")(false);\n// Imports\nvar getUrl = require(\"../../../../../node_modules/css-loader/dist/runtime/getUrl.js\");\nvar ___CSS_LOADER_URL___0___ = getUrl(require(\"../../../../template/main/fonts/aofl-sans/aoflsans-light.woff2\"));\nvar ___CSS_LOADER_URL___1___ = getUrl(require(\"../../../../template/main/fonts/aofl-sans/aoflsans-lightit.woff2\"));\nvar ___CSS_LOADER_URL___2___ = getUrl(require(\"../../../../template/main/fonts/aofl-sans/aoflsans-reg.woff2\"));\nvar ___CSS_LOADER_URL___3___ = getUrl(require(\"../../../../template/main/fonts/aofl-sans/aoflsans-regit.woff2\"));\nvar ___CSS_LOADER_URL___4___ = getUrl(require(\"../../../../template/main/fonts/aofl-sans/aoflsans-sbold.woff2\"));\nvar ___CSS_LOADER_URL___5___ = getUrl(require(\"../../../../template/main/fonts/aofl-sans/aoflsans-sboldit.woff2\"));\nvar ___CSS_LOADER_URL___6___ = getUrl(require(\"../../../../template/main/fonts/aofl-sans/aoflsans-bold.woff2\"));\nvar ___CSS_LOADER_URL___7___ = getUrl(require(\"../../../../template/main/fonts/aofl-sans/aoflsans-boldit.woff2\"));\nvar ___CSS_LOADER_URL___8___ = getUrl(require(\"../../../../template/main/fonts/abcmouse-sans/ABCmouseSans-Light.woff2\"));\nvar ___CSS_LOADER_URL___9___ = getUrl(require(\"../../../../template/main/fonts/abcmouse-sans/ABCmouseSans-LightIt.woff2\"));\nvar ___CSS_LOADER_URL___10___ = getUrl(require(\"../../../../template/main/fonts/abcmouse-sans/ABCmouseSans-Regular.woff2\"));\nvar ___CSS_LOADER_URL___11___ = getUrl(require(\"../../../../template/main/fonts/abcmouse-sans/ABCmouseSans-RegularIt.woff2\"));\nvar ___CSS_LOADER_URL___12___ = getUrl(require(\"../../../../template/main/fonts/abcmouse-sans/ABCmouseSans-Semibold.woff2\"));\nvar ___CSS_LOADER_URL___13___ = getUrl(require(\"../../../../template/main/fonts/abcmouse-sans/ABCmouseSans-SemiboldIt.woff2\"));\nvar ___CSS_LOADER_URL___14___ = getUrl(require(\"../../../../template/main/fonts/abcmouse-sans/ABCmouseSans-Bold.woff2\"));\nvar ___CSS_LOADER_URL___15___ = getUrl(require(\"../../../../template/main/fonts/abcmouse-sans/ABCmouseSans-BoldIt.woff2\"));\nvar ___CSS_LOADER_URL___16___ = getUrl(require(\"../../../../template/main/fonts/abcmouse-sans/ABCmouseSans-ExtraBold.woff2\"));\nvar ___CSS_LOADER_URL___17___ = getUrl(require(\"../../../../template/main/fonts/abcmouse-sans/ABCmouseSans-ExtraBoldIt.woff2\"));\nvar ___CSS_LOADER_URL___18___ = getUrl(require(\"../../../../template/main/fonts/aofl-icons/icomoon.woff2?c6f21u\"));\n// Module\nexports.push([module.id, \"/*! @aofl-component */:root{--blue:#0d6efd;--indigo:#6610f2;--purple:#8b42ca;--pink:#e83e8c;--red:#e50b0a;--orange:#e17a05;--yellow:#ffc107;--green:#3c8104;--teal:#20c997;--cyan:#53c9dc;--white:#fff;--gray:#6b6b6b;--gray-dark:#343a40;--light-green:#b1dd53;--table-border-color:#d8d8d8;--gray-100:#f2f2f2;--gray-200:#d9d9d9;--gray-300:#d8d8d8;--gray-400:#ced4da;--gray-500:#adb5bd;--gray-600:#6c757d;--gray-700:#4a4a4a;--gray-800:#343a40;--gray-900:#212529;--gray-accessibility:#6b6b6b;--primary:#0d6efd;--secondary:#adb5bd;--success:#3c8104;--info:#cfe2ff;--warning:#e17a05;--danger:#d20a09;--light:#f8f9fa;--dark:#000;--breakpoint-xxs:0;--breakpoint-xs:375px;--breakpoint-sm:576px;--breakpoint-md:768px;--breakpoint-lg:992px;--breakpoint-xl:1200px;--font-family-sans-serif:aofl-sans,Arial,Helvetica,sans-serif;--font-family-monospace:SFMono-Regular,Menlo,Monaco,Consolas,\\\"Liberation Mono\\\",\\\"Courier New\\\",monospace;--z-index-dropdown:1000;--z-index-sticky:1020;--z-index-fixed:1030;--z-index-modal-backdrop:1040;--z-index-modal:1050;--z-index-popover:1060;--z-index-tooltip:1070;--header-height:6rem;--content-height:calc(100vh - 6rem);--sidepanel-width:20rem;--purple-color:#641da3;--purple-600:#956abc;--purple-400:#c7afdd;--purple-200:#e0d2ed;--struggling:#f6993b;--below-target:#ffcf00;--in_progress:#1280f5;--prior_knowledge:#edf887;--mastery_achieved:#69d112;--inactive:#d8d8d8}route-view{max-width:1200px}@font-face{font-family:aofl-sans;font-style:normal;font-weight:300;src:url(\" + ___CSS_LOADER_URL___0___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:italic;font-weight:300;src:url(\" + ___CSS_LOADER_URL___1___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:normal;font-weight:400;src:url(\" + ___CSS_LOADER_URL___2___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:italic;font-weight:400;src:url(\" + ___CSS_LOADER_URL___3___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:normal;font-weight:600;src:url(\" + ___CSS_LOADER_URL___4___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:italic;font-weight:600;src:url(\" + ___CSS_LOADER_URL___5___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:normal;font-weight:700;src:url(\" + ___CSS_LOADER_URL___6___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:italic;font-weight:700;src:url(\" + ___CSS_LOADER_URL___7___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:normal;font-weight:300;src:url(\" + ___CSS_LOADER_URL___8___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:italic;font-weight:300;src:url(\" + ___CSS_LOADER_URL___9___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:normal;font-weight:400;src:url(\" + ___CSS_LOADER_URL___10___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:italic;font-weight:400;src:url(\" + ___CSS_LOADER_URL___11___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:normal;font-weight:600;src:url(\" + ___CSS_LOADER_URL___12___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:italic;font-weight:600;src:url(\" + ___CSS_LOADER_URL___13___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:normal;font-weight:700;src:url(\" + ___CSS_LOADER_URL___14___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:italic;font-weight:700;src:url(\" + ___CSS_LOADER_URL___15___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:normal;font-weight:800;src:url(\" + ___CSS_LOADER_URL___16___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:italic;font-weight:800;src:url(\" + ___CSS_LOADER_URL___17___ + \") format(\\\"woff2\\\")}@font-face{font-family:icomoon;src:url(\" + ___CSS_LOADER_URL___18___ + \") format(\\\"woff2\\\");font-weight:400;font-style:normal;font-display:block}[class*=\\\" ai-\\\"],[class^=ai-]{font-family:icomoon!important;speak:never;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*,:after,:before{box-sizing:border-box}html{font-family:sans-serif;line-height:1.15;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:rgba(0,0,0,0)}figcaption,main,nav,section{display:block}[tabindex=\\\"-1\\\"]:focus{outline:0!important}h2,h5{margin-bottom:1rem}h2,h5,p{margin-top:0}p{margin-bottom:1.6rem}strong{font-weight:bolder}caption{padding-top:.75rem;padding-bottom:.75rem;color:#6c757d;text-align:left;caption-side:bottom}label{display:inline-block;margin-bottom:.8rem}button{border-radius:0}button:focus{outline:1px dotted;outline:5px auto -webkit-focus-ring-color}button,input{margin:0;font-family:inherit;font-size:inherit;line-height:inherit;overflow:visible}button{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]:not(:disabled),[type=reset]:not(:disabled),[type=submit]:not(:disabled),button:not(:disabled){cursor:pointer}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{padding:0;border-style:none}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}input[type=date],input[type=datetime-local],input[type=month],input[type=time]{-webkit-appearance:listbox}legend{display:block;width:100%;max-width:100%;padding:0;margin-bottom:.5rem;font-size:1.5rem;line-height:inherit;color:inherit;white-space:normal}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:none}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}summary{display:list-item;cursor:pointer}template{display:none}[hidden]{display:none!important}*{-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important}html{font-size:62.5%;height:100%}link-to{color:#0d6efd;text-decoration:none;background-color:transparent}link-to:hover{color:rgb(0,86.1,178.5);text-decoration:none;cursor:pointer}route-view{display:none;flex:1}site-header{background-color:#fff;display:none;position:-webkit-sticky;position:sticky;top:0;height:var(--header-height)}#main{display:none;flex:1 auto;max-width:100%;overflow:hidden;flex-direction:column;overflow-y:scroll}.loaded #main,.loaded site-header,body.loaded,route-view.loaded{display:flex}route-view.left-panel-active{padding-left:var(--sidepanel-width)}.h2,.h5,h2,h5{margin-bottom:1rem;font-weight:500;line-height:1.2}.h2,h2{font-size:2rem}.h5,h5{font-size:1.4rem}input[type=checkbox],input[type=radio]{cursor:pointer}input[type=checkbox]+label,input[type=radio]+label{cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}button,button:active{outline:none}[tabindex=\\\"0\\\"]:focus-visible,aofl-list-option:focus-visible,button[type=button]:focus-visible,collapse-button:focus-visible{outline:1px solid #e50b0a;border:1px solid #e50b0a}.card{position:relative;display:flex;flex-direction:column;min-width:0;word-wrap:break-word;background-color:#fff;background-clip:border-box;border:1px solid rgba(0,0,0,.125);border-radius:.25rem}.card-body{flex:1 1 auto}.card-header{padding:1.2rem 2rem;margin-bottom:0;background-color:rgba(0,0,0,.03);border-bottom:1px solid rgba(0,0,0,.125)}.card-header:first-child{border-radius:calc(.25rem - 1px) calc(.25rem - 1px) 0 0}.card-header{background-color:transparent;border-bottom:none;font-size:2rem;font-weight:300;margin:0 2rem;padding:1.6rem 0 0}.card-body{padding:2rem}.card.shadow-sm{box-shadow:0 0 1.1rem #d8d8d8!important}@keyframes progress-bar-stripes{0%{background-position:1.6rem 0}to{background-position:0 0}}.modal-container{background-color:rgba(0,0,0,.2);position:fixed;top:0;bottom:0;right:0;left:0;z-index:var(--z-index-modal)}.modal-container :first-child{overflow:auto}.modal{position:relative;display:block;height:100vh}.modal-dialog-centered.modal-dialog-scrollable{height:auto;max-height:calc(100% - 2.8rem);min-height:auto}.modal-body,.modal-content,.modal-footer,.modal-header{border:none}.modal-header{font-size:2rem;padding:2.4rem}.modal-body{padding:0 2.4rem 4.8rem}.colored-header{color:#fff}.modal-body p{text-align:left}.colored-header-primary{background-color:#0d6efd}.colored-header-secondary{background-color:#adb5bd}.colored-header-success{background-color:#3c8104}.colored-header-info{background-color:#cfe2ff}.colored-header-warning{background-color:#e17a05}.colored-header-danger{background-color:#d20a09}.colored-header-light{background-color:#f8f9fa}.colored-header-dark{background-color:#000}@keyframes spinner-border{to{transform:rotate(1turn)}}@keyframes spinner-grow{0%{transform:scale(0)}50%{opacity:1}}.shadow-sm{box-shadow:0 .2rem .4rem #d8d8d8!important}.mb-0{margin-bottom:0!important}.text-center{text-align:center!important}.text-success{color:#3c8104!important}.text-danger{color:#d20a09!important}.text-blue{color:#0d6efd}.text-skipped{color:#ff9a0b}.h2{font-weight:600}[hidden]{visibility:hidden!important;height:0!important;width:0!important;min-height:unset!important}@media print{*,:after,:before{text-shadow:none!important;box-shadow:none!important}h2,p{orphans:3;widows:3}h2{page-break-after:avoid}@page{size:a3}}@media print{main::-webkit-scrollbar{display:none}main{-ms-overflow-style:none;scrollbar-width:none}}@page{size:A4;margin:20mm 16mm 20mm 16mm}:host{display:block}\", \"\"]);\n","exports = module.exports = require(\"../../../node_modules/css-loader/dist/runtime/api.js\")(false);\n// Imports\nvar getUrl = require(\"../../../node_modules/css-loader/dist/runtime/getUrl.js\");\nvar ___CSS_LOADER_URL___0___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-light.woff2\"));\nvar ___CSS_LOADER_URL___1___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-lightit.woff2\"));\nvar ___CSS_LOADER_URL___2___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-reg.woff2\"));\nvar ___CSS_LOADER_URL___3___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-regit.woff2\"));\nvar ___CSS_LOADER_URL___4___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-sbold.woff2\"));\nvar ___CSS_LOADER_URL___5___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-sboldit.woff2\"));\nvar ___CSS_LOADER_URL___6___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-bold.woff2\"));\nvar ___CSS_LOADER_URL___7___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-boldit.woff2\"));\nvar ___CSS_LOADER_URL___8___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-Light.woff2\"));\nvar ___CSS_LOADER_URL___9___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-LightIt.woff2\"));\nvar ___CSS_LOADER_URL___10___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-Regular.woff2\"));\nvar ___CSS_LOADER_URL___11___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-RegularIt.woff2\"));\nvar ___CSS_LOADER_URL___12___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-Semibold.woff2\"));\nvar ___CSS_LOADER_URL___13___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-SemiboldIt.woff2\"));\nvar ___CSS_LOADER_URL___14___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-Bold.woff2\"));\nvar ___CSS_LOADER_URL___15___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-BoldIt.woff2\"));\nvar ___CSS_LOADER_URL___16___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-ExtraBold.woff2\"));\nvar ___CSS_LOADER_URL___17___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-ExtraBoldIt.woff2\"));\nvar ___CSS_LOADER_URL___18___ = getUrl(require(\"../../template/main/fonts/aofl-icons/icomoon.woff2?c6f21u\"));\n// Module\nexports.push([module.id, \"/*! @aofl-component */:root{--blue:#0d6efd;--indigo:#6610f2;--purple:#8b42ca;--pink:#e83e8c;--red:#e50b0a;--orange:#e17a05;--yellow:#ffc107;--green:#3c8104;--teal:#20c997;--cyan:#53c9dc;--white:#fff;--gray:#6b6b6b;--gray-dark:#343a40;--light-green:#b1dd53;--table-border-color:#d8d8d8;--gray-100:#f2f2f2;--gray-200:#d9d9d9;--gray-300:#d8d8d8;--gray-400:#ced4da;--gray-500:#adb5bd;--gray-600:#6c757d;--gray-700:#4a4a4a;--gray-800:#343a40;--gray-900:#212529;--gray-accessibility:#6b6b6b;--primary:#0d6efd;--secondary:#adb5bd;--success:#3c8104;--info:#cfe2ff;--warning:#e17a05;--danger:#d20a09;--light:#f8f9fa;--dark:#000;--breakpoint-xxs:0;--breakpoint-xs:375px;--breakpoint-sm:576px;--breakpoint-md:768px;--breakpoint-lg:992px;--breakpoint-xl:1200px;--font-family-sans-serif:aofl-sans,Arial,Helvetica,sans-serif;--font-family-monospace:SFMono-Regular,Menlo,Monaco,Consolas,\\\"Liberation Mono\\\",\\\"Courier New\\\",monospace;--z-index-dropdown:1000;--z-index-sticky:1020;--z-index-fixed:1030;--z-index-modal-backdrop:1040;--z-index-modal:1050;--z-index-popover:1060;--z-index-tooltip:1070;--header-height:6rem;--content-height:calc(100vh - 6rem);--sidepanel-width:20rem;--purple-color:#641da3;--purple-600:#956abc;--purple-400:#c7afdd;--purple-200:#e0d2ed;--struggling:#f6993b;--below-target:#ffcf00;--in_progress:#1280f5;--prior_knowledge:#edf887;--mastery_achieved:#69d112;--inactive:#d8d8d8}route-view{max-width:1200px}@font-face{font-family:aofl-sans;font-style:normal;font-weight:300;src:url(\" + ___CSS_LOADER_URL___0___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:italic;font-weight:300;src:url(\" + ___CSS_LOADER_URL___1___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:normal;font-weight:400;src:url(\" + ___CSS_LOADER_URL___2___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:italic;font-weight:400;src:url(\" + ___CSS_LOADER_URL___3___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:normal;font-weight:600;src:url(\" + ___CSS_LOADER_URL___4___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:italic;font-weight:600;src:url(\" + ___CSS_LOADER_URL___5___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:normal;font-weight:700;src:url(\" + ___CSS_LOADER_URL___6___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:italic;font-weight:700;src:url(\" + ___CSS_LOADER_URL___7___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:normal;font-weight:300;src:url(\" + ___CSS_LOADER_URL___8___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:italic;font-weight:300;src:url(\" + ___CSS_LOADER_URL___9___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:normal;font-weight:400;src:url(\" + ___CSS_LOADER_URL___10___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:italic;font-weight:400;src:url(\" + ___CSS_LOADER_URL___11___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:normal;font-weight:600;src:url(\" + ___CSS_LOADER_URL___12___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:italic;font-weight:600;src:url(\" + ___CSS_LOADER_URL___13___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:normal;font-weight:700;src:url(\" + ___CSS_LOADER_URL___14___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:italic;font-weight:700;src:url(\" + ___CSS_LOADER_URL___15___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:normal;font-weight:800;src:url(\" + ___CSS_LOADER_URL___16___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:italic;font-weight:800;src:url(\" + ___CSS_LOADER_URL___17___ + \") format(\\\"woff2\\\")}@font-face{font-family:icomoon;src:url(\" + ___CSS_LOADER_URL___18___ + \") format(\\\"woff2\\\");font-weight:400;font-style:normal;font-display:block}[class*=\\\" ai-\\\"],[class^=ai-]{font-family:icomoon!important;speak:never;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.ai-create:before{content:\\\"\\\\e913\\\"}*,:after,:before{box-sizing:border-box}html{font-family:sans-serif;line-height:1.15;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:rgba(0,0,0,0)}figcaption,main,nav,section{display:block}[tabindex=\\\"-1\\\"]:focus{outline:0!important}hr{box-sizing:content-box;height:0;overflow:visible}h2,h5{margin-bottom:1rem}h2,h5,p{margin-top:0}p{margin-bottom:1.6rem}address{margin-bottom:1rem;font-style:normal;line-height:inherit}strong{font-weight:bolder}a{color:#0d6efd;background-color:transparent}a,a:hover{text-decoration:none}a:hover{color:rgb(0,86.1,178.5)}a:not([href]):not([tabindex]),a:not([href]):not([tabindex]):focus,a:not([href]):not([tabindex]):hover{color:inherit;text-decoration:none}a:not([href]):not([tabindex]):focus{outline:0}code{font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:1em}caption{padding-top:.75rem;padding-bottom:.75rem;color:#6c757d;text-align:left;caption-side:bottom}label{display:inline-block;margin-bottom:.8rem}button{border-radius:0}button:focus{outline:1px dotted;outline:5px auto -webkit-focus-ring-color}button,input{margin:0;font-family:inherit;font-size:inherit;line-height:inherit;overflow:visible}button{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]:not(:disabled),[type=reset]:not(:disabled),[type=submit]:not(:disabled),button:not(:disabled){cursor:pointer}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{padding:0;border-style:none}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}input[type=date],input[type=datetime-local],input[type=month],input[type=time]{-webkit-appearance:listbox}legend{display:block;width:100%;max-width:100%;padding:0;margin-bottom:.5rem;font-size:1.5rem;line-height:inherit;color:inherit;white-space:normal}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:none}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}summary{display:list-item;cursor:pointer}template{display:none}[hidden]{display:none!important}*{-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important}html{font-size:62.5%;height:100%}link-to{color:#0d6efd;text-decoration:none;background-color:transparent}link-to:hover{color:rgb(0,86.1,178.5);text-decoration:none;cursor:pointer}route-view{display:none;flex:1}site-header{background-color:#fff;display:none;position:-webkit-sticky;position:sticky;top:0;height:var(--header-height)}#main{display:none;flex:1 auto;max-width:100%;overflow:hidden;flex-direction:column;overflow-y:scroll}.loaded #main,.loaded site-header,body.loaded,route-view.loaded{display:flex}route-view.left-panel-active{padding-left:var(--sidepanel-width)}.h2,.h5,h2,h5{margin-bottom:1rem;font-weight:500;line-height:1.2}.h2,h2{font-size:2rem}.h5,h5{font-size:1.4rem}hr{margin-top:1rem;margin-bottom:1rem;border:0;border-top:1px solid rgba(0,0,0,.1)}code{font-size:87.5%;color:#e83e8c;word-break:break-word}a>code{color:inherit}.row{display:flex;flex-wrap:wrap;margin-right:-15px;margin-left:-15px}.no-gutters{margin-right:0;margin-left:0}.no-gutters>[class*=col-]{padding-right:0;padding-left:0}.col-4,.col-6,.col-8,.col-12,.col-lg-6,.col-lg-12,.col-md-12,.col-sm-3,.col-sm-4,.col-sm-8{position:relative;width:100%;padding-right:15px;padding-left:15px}.col-4{flex:0 0 33.3333333333%;max-width:33.3333333333%}.col-6{flex:0 0 50%;max-width:50%}.col-8{flex:0 0 66.6666666667%;max-width:66.6666666667%}.col-12{flex:0 0 100%;max-width:100%}@media (min-width:576px){.col-sm-3{flex:0 0 25%;max-width:25%}.col-sm-4{flex:0 0 33.3333333333%;max-width:33.3333333333%}.col-sm-8{flex:0 0 66.6666666667%;max-width:66.6666666667%}.offset-sm-4{margin-left:33.3333333333%}}@media (min-width:768px){.col-md-12{flex:0 0 100%;max-width:100%}}@media (min-width:992px){.col-lg-6{flex:0 0 50%;max-width:50%}.col-lg-12{flex:0 0 100%;max-width:100%}}.form-control{display:block;width:100%;height:calc(1.5em + .75rem + 2px);padding:.375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:#495057;background-color:#fff;background-clip:padding-box;border:1px solid #ced4da;border-radius:.25rem;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.form-control{transition:none}}.form-control::-ms-expand{background-color:transparent;border:0}.form-control:focus{color:#495057;background-color:#fff;border-color:rgb(127.5,189,255);outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.form-control::-webkit-input-placeholder{color:#6c757d;opacity:1}.form-control::-moz-placeholder{color:#6c757d;opacity:1}.form-control:-ms-input-placeholder{color:#6c757d;opacity:1}.form-control::-ms-input-placeholder{color:#6c757d;opacity:1}.form-control::placeholder{color:#6c757d;opacity:1}.form-control:disabled,.form-control[readonly]{background-color:#e9ecef;opacity:1}.col-form-label{padding-top:calc(.375rem + 1px);padding-bottom:calc(.375rem + 1px);margin-bottom:0;font-size:inherit;line-height:1.5}.form-group{margin-bottom:1.6rem}.form-check{position:relative;display:block;padding-left:2rem}.form-check-input{position:absolute;margin-top:.48rem;margin-left:-2rem}.form-check-input:disabled~.form-check-label{color:#6c757d}.form-check-label{margin-bottom:0}.form-check-inline{display:inline-flex;align-items:center;padding-left:0;margin-right:1.2rem}.form-check-inline .form-check-input{position:static;margin-top:0;margin-right:.5rem;margin-left:0}.invalid-feedback{display:none;width:100%;margin-top:.25rem;font-size:80%;color:#e50b0a}.form-control.is-invalid{border-color:#e50b0a;padding-right:calc(1.5em + .75rem);background-image:url(\\\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23dc3545' viewBox='-2 -2 7 7'%3E%3Cpath stroke='%23dc3545' d='M0 0l3 3m0-3L0 3'/%3E%3Ccircle r='.5'/%3E%3Ccircle cx='3' r='.5'/%3E%3Ccircle cy='3' r='.5'/%3E%3Ccircle cx='3' cy='3' r='.5'/%3E%3C/svg%3E\\\");background-repeat:no-repeat;background-position:100% calc(.375em + .1875rem);background-size:calc(.75em + .375rem) calc(.75em + .375rem)}.form-control.is-invalid:focus{border-color:#e50b0a;box-shadow:0 0 0 .2rem rgba(229,11,10,.25)}.form-control.is-invalid~.invalid-feedback{display:block}.form-check-input.is-invalid~.form-check-label{color:#e50b0a}.form-check-input.is-invalid~.invalid-feedback{display:block}.form-inline{display:flex;flex-flow:row wrap;align-items:center}.form-inline .form-check{width:100%}@media (min-width:576px){.form-inline label{justify-content:center}.form-inline .form-group,.form-inline label{display:flex;align-items:center;margin-bottom:0}.form-inline .form-group{flex:0 0 auto;flex-flow:row wrap}.form-inline .form-control{display:inline-block;width:auto;vertical-align:middle}.form-inline .form-check{display:flex;align-items:center;justify-content:center;width:auto;padding-left:0}.form-inline .form-check-input{position:relative;flex-shrink:0;margin-top:0;margin-right:.4rem;margin-left:0}}.col-form-label{display:flex;align-items:center;font-weight:600}.form-control{font-size:1.5rem;height:4.8rem;padding:1.2rem 1rem}.form-control[multiple]{padding:0}.form-control[multiple] option{padding:.8rem 1.2rem}.form-control.is-invalid{background-position:99%}input[type=checkbox].is-invalid+label{color:#e50b0a}input[type=checkbox],input[type=radio]{cursor:pointer}input[type=checkbox]+label,input[type=radio]+label{cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.invalid-feedback{color:#d20a09}.form-control.is-invalid{border-color:#d20a09;background:none}form .form-control::-webkit-input-placeholder{color:#6b6b6b;border-color:#6b6b6b}form .form-control::-moz-placeholder,form .form-control::-ms-input-placeholder,form .form-control::-webkit-input-placeholder,form .form-control::placeholder{color:#6b6b6b;border-color:#6b6b6b}.form-control{border:1px solid #6b6b6b}.form-control:focus{border-color:#0d6efd}.btn{display:inline-block;font-weight:400;color:#000;text-align:center;vertical-align:middle;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;background-color:transparent;border:1px solid transparent;padding:.375rem .75rem;font-size:1.6rem;line-height:1.5;border-radius:.25rem;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.btn{transition:none}}.btn:hover{color:#000;text-decoration:none}.btn:focus{outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.btn.disabled,.btn:disabled{opacity:.65}a.btn.disabled{pointer-events:none}.btn-primary{color:#fff;background-color:#0d6efd;border-color:#0d6efd}.btn-primary:hover{color:#fff;background-color:rgb(1.8668032787,92.4067622951,225.8831967213);border-color:rgb(1.762295082,87.2336065574,213.237704918)}.btn-primary:focus{box-shadow:0 0 0 .2rem rgba(49.3,131.75,253.3,.5)}.btn-primary.disabled,.btn-primary:disabled{color:#fff;background-color:#0d6efd;border-color:#0d6efd}.btn-primary:not(:disabled):not(.disabled).active,.btn-primary:not(:disabled):not(.disabled):active{color:#fff;background-color:rgb(1.762295082,87.2336065574,213.237704918);border-color:rgb(1.6577868852,82.0604508197,200.5922131148)}.btn-primary:not(:disabled):not(.disabled).active:focus,.btn-primary:not(:disabled):not(.disabled):active:focus{box-shadow:0 0 0 .2rem rgba(49.3,131.75,253.3,.5)}.btn-outline-light{color:#f8f9fa;border-color:#f8f9fa}.btn-outline-light:hover{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-outline-light:focus{box-shadow:0 0 0 .2rem rgba(248,249,250,.5)}.btn-outline-light.disabled,.btn-outline-light:disabled{color:#f8f9fa;background-color:transparent}.btn-outline-light:not(:disabled):not(.disabled).active,.btn-outline-light:not(:disabled):not(.disabled):active{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-outline-light:not(:disabled):not(.disabled).active:focus,.btn-outline-light:not(:disabled):not(.disabled):active:focus{box-shadow:0 0 0 .2rem rgba(248,249,250,.5)}.btn-link{font-weight:400;color:#0d6efd;text-decoration:none}.btn-link:hover{color:rgb(0,86.1,178.5);text-decoration:none}.btn-link:focus{text-decoration:none;box-shadow:none}.btn-link.disabled,.btn-link:disabled{color:#6c757d;pointer-events:none}.btn-lg{padding:.5rem 1rem;font-size:1.9rem;line-height:1.5;border-radius:.3rem}.btn-block{display:block;width:100%}.btn-block+.btn-block{margin-top:.8rem}input[type=button].btn-block,input[type=reset].btn-block,input[type=submit].btn-block{width:100%}.btn:disabled{cursor:not-allowed}.btn.disabled,link-to.btn.disabled,link-to.btn:disabled,link-to.btn[disabled]{pointer-events:none}.btn-outline-light{color:#000;border-color:#ced4da;background:#fff}.btn-outline-light:disabled{color:#000}.btn-outline-light:hover{border-color:#ced4da}button,button:active{outline:none}.btn:focus-visible,[tabindex=\\\"0\\\"]:focus-visible,a:focus-visible,aofl-list-option:focus-visible,button[type=button]:focus-visible,collapse-button:focus-visible{outline:1px solid #e50b0a;border:1px solid #e50b0a}.btn-link:focus-visible{border:2px solid #e50b0a}.btn-primary{font-weight:600;border-width:2px}.btn.disabled,.btn:disabled{background:#cfe2ff;border-color:#cfe2ff;color:#0d6efd;opacity:1}ems-dropdown>button.btn{display:flex;align-items:center;border:1px solid var(--gray)}.alert{position:relative;padding:1.2rem;margin-bottom:1.6rem;border:0 solid transparent;border-radius:.25rem}.alert-warning{color:#fff;background-color:#e17a05;border-color:#e17a05}.alert-warning hr{border-top-color:rgb(200.0543478261,108.4739130435,4.4456521739)}.alert-warning{color:rgba(0,0,0,.7);background-color:#ffde77;border-color:#e4c76a}@keyframes progress-bar-stripes{0%{background-position:1.6rem 0}to{background-position:0 0}}.modal-container{background-color:rgba(0,0,0,.2);position:fixed;top:0;bottom:0;right:0;left:0;z-index:var(--z-index-modal)}.modal-container :first-child{overflow:auto}.modal{position:relative;display:block;height:100vh}.modal-dialog-centered.modal-dialog-scrollable{height:auto;max-height:calc(100% - 2.8rem);min-height:auto}.modal-body,.modal-content,.modal-footer,.modal-header{border:none}.modal-header{font-size:2rem;padding:2.4rem}.modal-body{padding:0 2.4rem 4.8rem}.colored-header{color:#fff}.modal-body p{text-align:left}.colored-header-primary{background-color:#0d6efd}.colored-header-secondary{background-color:#adb5bd}.colored-header-success{background-color:#3c8104}.colored-header-info{background-color:#cfe2ff}.colored-header-warning{background-color:#e17a05}.colored-header-danger{background-color:#d20a09}.colored-header-light{background-color:#f8f9fa}.colored-header-dark{background-color:#000}@keyframes spinner-border{to{transform:rotate(1turn)}}@keyframes spinner-grow{0%{transform:scale(0)}50%{opacity:1}}.rounded-pill{border-radius:80rem!important}.d-none{display:none!important}.d-block{display:block!important}.mb-0{margin-bottom:0!important}.mr-2,.mx-2{margin-right:.5rem!important}.mx-2{margin-left:.5rem!important}.mb-3{margin-bottom:1rem!important}.mb-4{margin-bottom:1.5rem!important}.mr-5{margin-right:3rem!important}.mb-5{margin-bottom:3rem!important}.pt-0{padding-top:0!important}.text-right{text-align:right!important}.h2{font-weight:600}[hidden]{visibility:hidden!important;height:0!important;width:0!important;min-height:unset!important}@media print{*,:after,:before{text-shadow:none!important;box-shadow:none!important}a:not(.btn){text-decoration:underline}h2,p{orphans:3;widows:3}h2{page-break-after:avoid}@page{size:a3}}@media print{main::-webkit-scrollbar{display:none}main{-ms-overflow-style:none;scrollbar-width:none}}@page{size:A4;margin:20mm 16mm 20mm 16mm}:host{display:block}.form-switch{padding-left:2.5em}.form-switch .form-check-input{width:2.5em;height:1.5em;margin-left:-2.5em;background-image:url(\\\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='rgba(0, 0, 0, 0.25)'/%3E%3C/svg%3E\\\");background-position:0;border-radius:2em;transition:background-position .15s ease-in-out;float:left;margin-top:.25em;vertical-align:top;background-color:#fff;background-repeat:no-repeat;background-size:contain;border:1px solid rgba(0,0,0,.25);-webkit-appearance:none;-moz-appearance:none;appearance:none;-webkit-print-color-adjust:exact;color-adjust:exact}.form-switch .form-check-input:checked{background-position:100%;background-image:url(\\\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='%23fff'/%3E%3C/svg%3E\\\");background-color:#218838;border-color:#218838}\", \"\"]);\n","module.exports = __webpack_public_path__ + \"999fd1485aeb83a9a510aa294dacf1fd.webp\";","import styles from './template.css';\nimport template from './template';\nimport {AoflElement, customElement, property} from '@aofl/element';\nimport {i18nMixin} from '@aofl/i18n-mixin';\n\n/**\n * @summary MultivalueColumn\n * @extends {i18nMixin(AoflElement)}\n */\n@customElement('multivalue-column')\nclass MultivalueColumn extends i18nMixin(AoflElement) {\n @property({type: Array, attribute: true})\n values = [];\n\n @property({type: Number, attribute: true})\n visibleItems = 1;\n\n /**\n * Creates an instance of MultivalueColumn.\n */\n constructor() {\n super();\n }\n\n /**\n * @readonly\n */\n\n static is = 'multivalue-column';\n\n /**\n *\n * @return {Object}\n */\n render() {\n return super.render({\n default: {template, styles: [styles]}\n });\n }\n}\n\nexport default MultivalueColumn;\n","import {storeInstance} from '@aofl/store/dist/legacy';\nimport {sdoNs} from '../constants-enumerate';\n\nconst sdo = {\n namespace: sdoNs.LICENSE_ASSIGN,\n mutations: {\n\n /**\n * @return {Object}\n */\n init() {\n return {};\n },\n\n setData(substate, data) {\n return data;\n },\n },\n decorators: [],\n};\n\nstoreInstance.addState(sdo);\n","export default {\n 'es-US': () => import('./translations_es-US.json'),\n\n 'ja-JP': () => import('./translations_ja-JP.json'),\n\n 'zh-CN': () => import('./translations_zh-CN.json'),\n\n 'zh-TW': () => import('./translations_zh-TW.json'),\n}","import {SimpleModal} from '@modules/simple-modal';\nimport {modals as constModals} from '@modules/constants-enumerate';\n\nconst modals = {\n [constModals.PARENT_REDEEM_CODE]: {\n resolve: () => import('../redeem-code-modal')\n },\n [constModals.SYNC_ACCOUNT]: {\n resolve: () => import('../sync-account-modal')\n },\n [constModals.SELECT_CHILD]: {\n resolve: () => import('../select-child-modal')\n },\n [constModals.CONFIRM_PARENT_ACCOUNT]: {\n resolve: () => import('../confirm-account-modal')\n },\n [constModals.LAUNCH_PRODUCT_APP]: {\n resolve: () => import('../launch-product-app-modal')\n },\n [constModals.PARENT_LESSON_DETAILS]: {\n resolve: () => import('../parent-lesson-details-modal')\n },\n [constModals.PARENT_FIRST_TIME_USER_EXPERIENCE]: {\n resolve: () => import('../parent-first-timer-user-experience-modal')\n },\n};\n\nSimpleModal.addModals(modals);\nexport {\n modals\n};\n","import {until} from 'lit-html/directives/until';\n\nexport default (ctx, html) => html`\n
\n

${until(ctx.__('', 'Warning'))}

\n \n
\n\n
\n

${until(ctx.__('', 'By changing this email/phone, you are also changing this teacher\\'s login email/phone. The teacher will be notified of this change, and passwords will remain unchanged. Proceed?'))}

\n\n
\n
\n \n
\n
\n \n
\n
\n
\n\n \n`;\n","import styles from './template.css';\nimport template from './template';\nimport {AoflElement, customElement, property} from '@aofl/element';\nimport {i18nMixin} from '@aofl/i18n-mixin';\nimport translations from '../../i18n';\n\n/**\n * @summary ConfirmLoginChangeModal\n * @extends {i18nMixin(AoflElement)}\n */\n@customElement('confirm-login-change-modal')\nclass ConfirmLoginChangeModal extends i18nMixin(AoflElement) {\n constructor() {\n super();\n this.translations = translations;\n }\n\n /**\n * @readonly\n */\n static is = 'confirm-login-change-modal';\n\n @property({type: Function, property: true})\n resolve = null;\n\n connectedCallback() {\n super.connectedCallback();\n }\n\n close() {\n this.resolve(false);\n }\n\n firstUpdated(changedProperties) {\n this.shadowRoot.querySelector('[tabindex=\"0\"]').focus();\n }\n\n\n saveChanges() {\n this.resolve(true);\n }\n\n /**\n *\n * @return {Object}\n */\n render() {\n return super.render({\n default: {\n template,\n styles: [styles]\n }\n });\n }\n}\n\nexport default ConfirmLoginChangeModal;\n","exports = module.exports = require(\"../../../node_modules/css-loader/dist/runtime/api.js\")(false);\n// Imports\nvar getUrl = require(\"../../../node_modules/css-loader/dist/runtime/getUrl.js\");\nvar ___CSS_LOADER_URL___0___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-light.woff2\"));\nvar ___CSS_LOADER_URL___1___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-lightit.woff2\"));\nvar ___CSS_LOADER_URL___2___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-reg.woff2\"));\nvar ___CSS_LOADER_URL___3___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-regit.woff2\"));\nvar ___CSS_LOADER_URL___4___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-sbold.woff2\"));\nvar ___CSS_LOADER_URL___5___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-sboldit.woff2\"));\nvar ___CSS_LOADER_URL___6___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-bold.woff2\"));\nvar ___CSS_LOADER_URL___7___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-boldit.woff2\"));\nvar ___CSS_LOADER_URL___8___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-Light.woff2\"));\nvar ___CSS_LOADER_URL___9___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-LightIt.woff2\"));\nvar ___CSS_LOADER_URL___10___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-Regular.woff2\"));\nvar ___CSS_LOADER_URL___11___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-RegularIt.woff2\"));\nvar ___CSS_LOADER_URL___12___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-Semibold.woff2\"));\nvar ___CSS_LOADER_URL___13___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-SemiboldIt.woff2\"));\nvar ___CSS_LOADER_URL___14___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-Bold.woff2\"));\nvar ___CSS_LOADER_URL___15___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-BoldIt.woff2\"));\nvar ___CSS_LOADER_URL___16___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-ExtraBold.woff2\"));\nvar ___CSS_LOADER_URL___17___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-ExtraBoldIt.woff2\"));\nvar ___CSS_LOADER_URL___18___ = getUrl(require(\"../../template/main/fonts/aofl-icons/icomoon.woff2?c6f21u\"));\n// Module\nexports.push([module.id, \"/*! @aofl-component */:root{--blue:#0d6efd;--indigo:#6610f2;--purple:#8b42ca;--pink:#e83e8c;--red:#e50b0a;--orange:#e17a05;--yellow:#ffc107;--green:#3c8104;--teal:#20c997;--cyan:#53c9dc;--white:#fff;--gray:#6b6b6b;--gray-dark:#343a40;--light-green:#b1dd53;--table-border-color:#d8d8d8;--gray-100:#f2f2f2;--gray-200:#d9d9d9;--gray-300:#d8d8d8;--gray-400:#ced4da;--gray-500:#adb5bd;--gray-600:#6c757d;--gray-700:#4a4a4a;--gray-800:#343a40;--gray-900:#212529;--gray-accessibility:#6b6b6b;--primary:#0d6efd;--secondary:#adb5bd;--success:#3c8104;--info:#cfe2ff;--warning:#e17a05;--danger:#d20a09;--light:#f8f9fa;--dark:#000;--breakpoint-xxs:0;--breakpoint-xs:375px;--breakpoint-sm:576px;--breakpoint-md:768px;--breakpoint-lg:992px;--breakpoint-xl:1200px;--font-family-sans-serif:aofl-sans,Arial,Helvetica,sans-serif;--font-family-monospace:SFMono-Regular,Menlo,Monaco,Consolas,\\\"Liberation Mono\\\",\\\"Courier New\\\",monospace;--z-index-dropdown:1000;--z-index-sticky:1020;--z-index-fixed:1030;--z-index-modal-backdrop:1040;--z-index-modal:1050;--z-index-popover:1060;--z-index-tooltip:1070;--header-height:6rem;--content-height:calc(100vh - 6rem);--sidepanel-width:20rem;--purple-color:#641da3;--purple-600:#956abc;--purple-400:#c7afdd;--purple-200:#e0d2ed;--struggling:#f6993b;--below-target:#ffcf00;--in_progress:#1280f5;--prior_knowledge:#edf887;--mastery_achieved:#69d112;--inactive:#d8d8d8}route-view{max-width:1200px}@font-face{font-family:aofl-sans;font-style:normal;font-weight:300;src:url(\" + ___CSS_LOADER_URL___0___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:italic;font-weight:300;src:url(\" + ___CSS_LOADER_URL___1___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:normal;font-weight:400;src:url(\" + ___CSS_LOADER_URL___2___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:italic;font-weight:400;src:url(\" + ___CSS_LOADER_URL___3___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:normal;font-weight:600;src:url(\" + ___CSS_LOADER_URL___4___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:italic;font-weight:600;src:url(\" + ___CSS_LOADER_URL___5___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:normal;font-weight:700;src:url(\" + ___CSS_LOADER_URL___6___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:italic;font-weight:700;src:url(\" + ___CSS_LOADER_URL___7___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:normal;font-weight:300;src:url(\" + ___CSS_LOADER_URL___8___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:italic;font-weight:300;src:url(\" + ___CSS_LOADER_URL___9___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:normal;font-weight:400;src:url(\" + ___CSS_LOADER_URL___10___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:italic;font-weight:400;src:url(\" + ___CSS_LOADER_URL___11___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:normal;font-weight:600;src:url(\" + ___CSS_LOADER_URL___12___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:italic;font-weight:600;src:url(\" + ___CSS_LOADER_URL___13___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:normal;font-weight:700;src:url(\" + ___CSS_LOADER_URL___14___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:italic;font-weight:700;src:url(\" + ___CSS_LOADER_URL___15___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:normal;font-weight:800;src:url(\" + ___CSS_LOADER_URL___16___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:italic;font-weight:800;src:url(\" + ___CSS_LOADER_URL___17___ + \") format(\\\"woff2\\\")}@font-face{font-family:icomoon;src:url(\" + ___CSS_LOADER_URL___18___ + \") format(\\\"woff2\\\");font-weight:400;font-style:normal;font-display:block}[class*=\\\" ai-\\\"],[class^=ai-]{font-family:icomoon!important;speak:never;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*,:after,:before{box-sizing:border-box}html{font-family:sans-serif;line-height:1.15;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:rgba(0,0,0,0)}figcaption,main,nav,section{display:block}[tabindex=\\\"-1\\\"]:focus{outline:0!important}h5{margin-bottom:1rem}h5,p{margin-top:0}p{margin-bottom:1.6rem}ul{margin-top:0;margin-bottom:1rem}ul ul{margin-bottom:0}strong{font-weight:bolder}a{color:#0d6efd;background-color:transparent}a,a:hover{text-decoration:none}a:hover{color:rgb(0,86.1,178.5)}a:not([href]):not([tabindex]),a:not([href]):not([tabindex]):focus,a:not([href]):not([tabindex]):hover{color:inherit;text-decoration:none}a:not([href]):not([tabindex]):focus{outline:0}code{font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:1em}img{vertical-align:middle;border-style:none}caption{padding-top:.75rem;padding-bottom:.75rem;color:#6c757d;text-align:left;caption-side:bottom}button{border-radius:0}button:focus{outline:1px dotted;outline:5px auto -webkit-focus-ring-color}button,input{margin:0;font-family:inherit;font-size:inherit;line-height:inherit;overflow:visible}button{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]:not(:disabled),[type=reset]:not(:disabled),[type=submit]:not(:disabled),button:not(:disabled){cursor:pointer}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{padding:0;border-style:none}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}input[type=date],input[type=datetime-local],input[type=month],input[type=time]{-webkit-appearance:listbox}legend{display:block;width:100%;max-width:100%;padding:0;margin-bottom:.5rem;font-size:1.5rem;line-height:inherit;color:inherit;white-space:normal}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:none}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}summary{display:list-item;cursor:pointer}template{display:none}[hidden]{display:none!important}*{-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important}html{font-size:62.5%;height:100%}link-to{color:#0d6efd;text-decoration:none;background-color:transparent}link-to:hover{color:rgb(0,86.1,178.5);text-decoration:none;cursor:pointer}route-view{display:none;flex:1}site-header{background-color:#fff;display:none;position:-webkit-sticky;position:sticky;top:0;height:var(--header-height)}#main{display:none;flex:1 auto;max-width:100%;overflow:hidden;flex-direction:column;overflow-y:scroll}.loaded #main,.loaded site-header,body.loaded,route-view.loaded{display:flex}route-view.left-panel-active{padding-left:var(--sidepanel-width)}@media (max-width:767.98px){#content{padding-left:0!important}}.h5,h5{margin-bottom:1rem;font-weight:500;line-height:1.2;font-size:1.4rem}code{font-size:87.5%;color:#e83e8c;word-break:break-word}a>code{color:inherit}.row{display:flex;flex-wrap:wrap;margin-right:-15px;margin-left:-15px}.no-gutters{margin-right:0;margin-left:0}.no-gutters>[class*=col-]{padding-right:0;padding-left:0}.col-2,.col-lg-3,.col-lg-4,.col-lg-9,.col-lg-12,.col-md-6,.col-md-12,.col-sm-6,.col-sm-12,.col-xl-2,.col-xl-3,.col-xl-4,.col-xl-6,.col-xl-10,.col-xs-12{position:relative;width:100%;padding-right:15px;padding-left:15px}.col-2{flex:0 0 16.6666666667%;max-width:16.6666666667%}@media (min-width:375px){.col-xs-12{flex:0 0 100%;max-width:100%}}@media (min-width:576px){.col-sm-6{flex:0 0 50%;max-width:50%}.col-sm-12{flex:0 0 100%;max-width:100%}}@media (min-width:768px){.col-md-6{flex:0 0 50%;max-width:50%}.col-md-12{flex:0 0 100%;max-width:100%}}@media (min-width:992px){.col-lg-3{flex:0 0 25%;max-width:25%}.col-lg-4{flex:0 0 33.3333333333%;max-width:33.3333333333%}.col-lg-9{flex:0 0 75%;max-width:75%}.col-lg-12{flex:0 0 100%;max-width:100%}}@media (min-width:1200px){.col-xl-2{flex:0 0 16.6666666667%;max-width:16.6666666667%}.col-xl-3{flex:0 0 25%;max-width:25%}.col-xl-4{flex:0 0 33.3333333333%;max-width:33.3333333333%}.col-xl-6{flex:0 0 50%;max-width:50%}.col-xl-10{flex:0 0 83.3333333333%;max-width:83.3333333333%}}input[type=checkbox],input[type=radio]{cursor:pointer}.btn{display:inline-block;font-weight:400;color:#000;text-align:center;vertical-align:middle;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;background-color:transparent;border:1px solid transparent;padding:.375rem .75rem;font-size:1.6rem;line-height:1.5;border-radius:.25rem;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.btn{transition:none}}.btn:hover{color:#000;text-decoration:none}.btn:focus{outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.btn.disabled,.btn:disabled{opacity:.65}a.btn.disabled{pointer-events:none}.btn-primary{color:#fff;background-color:#0d6efd;border-color:#0d6efd}.btn-primary:hover{color:#fff;background-color:rgb(1.8668032787,92.4067622951,225.8831967213);border-color:rgb(1.762295082,87.2336065574,213.237704918)}.btn-primary:focus{box-shadow:0 0 0 .2rem rgba(49.3,131.75,253.3,.5)}.btn-primary.disabled,.btn-primary:disabled{color:#fff;background-color:#0d6efd;border-color:#0d6efd}.btn-primary:not(:disabled):not(.disabled).active,.btn-primary:not(:disabled):not(.disabled):active{color:#fff;background-color:rgb(1.762295082,87.2336065574,213.237704918);border-color:rgb(1.6577868852,82.0604508197,200.5922131148)}.btn-primary:not(:disabled):not(.disabled).active:focus,.btn-primary:not(:disabled):not(.disabled):active:focus{box-shadow:0 0 0 .2rem rgba(49.3,131.75,253.3,.5)}.btn-outline-primary{color:#0d6efd;border-color:#0d6efd}.btn-outline-primary:hover{color:#fff;background-color:#0d6efd;border-color:#0d6efd}.btn-outline-primary:focus{box-shadow:0 0 0 .2rem rgba(13,110,253,.5)}.btn-outline-primary.disabled,.btn-outline-primary:disabled{color:#0d6efd;background-color:transparent}.btn-outline-primary:not(:disabled):not(.disabled).active,.btn-outline-primary:not(:disabled):not(.disabled):active{color:#fff;background-color:#0d6efd;border-color:#0d6efd}.btn-outline-primary:not(:disabled):not(.disabled).active:focus,.btn-outline-primary:not(:disabled):not(.disabled):active:focus{box-shadow:0 0 0 .2rem rgba(13,110,253,.5)}.btn-block{display:block;width:100%}.btn-block+.btn-block{margin-top:.8rem}input[type=button].btn-block,input[type=reset].btn-block,input[type=submit].btn-block{width:100%}.btn:disabled{cursor:not-allowed}.btn.disabled,link-to.btn.disabled,link-to.btn:disabled,link-to.btn[disabled]{pointer-events:none}button,button:active{outline:none}.btn:focus-visible,[tabindex=\\\"0\\\"]:focus-visible,a:focus-visible,aofl-list-option:focus-visible,button[type=button]:focus-visible,collapse-button:focus-visible{outline:1px solid #e50b0a;border:1px solid #e50b0a}.btn-primary:focus-visible .btn-outline-primary:focus-visible{outline-offset:2px;outline:2px solid #e50b0a}.btn-outline-primary,.btn-primary{font-weight:600;border-width:2px}.btn.disabled,.btn:disabled{background:#cfe2ff;border-color:#cfe2ff;color:#0d6efd;opacity:1}ems-dropdown>button.btn{display:flex;align-items:center;border:1px solid var(--gray)}.card{position:relative;display:flex;flex-direction:column;min-width:0;word-wrap:break-word;background-color:#fff;background-clip:border-box;border:1px solid rgba(0,0,0,.125);border-radius:.25rem}.card-body{flex:1 1 auto;padding:2rem}.card.shadow-sm{box-shadow:0 0 1.1rem #d8d8d8!important}@keyframes progress-bar-stripes{0%{background-position:1.6rem 0}to{background-position:0 0}}.modal{position:fixed;top:0;left:0;z-index:1050;display:none;width:100%;height:100%;overflow:hidden;outline:0}.modal-header{display:flex;align-items:flex-start;justify-content:space-between;padding:1rem;border-bottom:1px solid #dee2e6;border-top-left-radius:.3rem;border-top-right-radius:.3rem}.modal-body{position:relative;flex:1 1 auto;padding:2.4rem}.modal-footer{display:flex;align-items:center;justify-content:flex-end;padding:2.4rem;border-top:1px solid #dee2e6;border-bottom-right-radius:.3rem;border-bottom-left-radius:.3rem}.modal-footer>:not(:first-child){margin-left:.25rem}.modal-footer>:not(:last-child){margin-right:.25rem}.modal-container{background-color:rgba(0,0,0,.2);position:fixed;top:0;bottom:0;right:0;left:0;z-index:var(--z-index-modal)}.modal-container :first-child{overflow:auto}.modal{position:relative;display:block;height:100vh}.modal-dialog-centered.modal-dialog-scrollable{height:auto;max-height:calc(100% - 2.8rem);min-height:auto}.modal-body,.modal-content,.modal-footer,.modal-header{border:none}.modal-header{font-size:2rem;padding:2.4rem}.modal-body{padding:0 2.4rem 4.8rem}.colored-header{color:#fff}.modal-body p{text-align:left}.colored-header-primary{background-color:#0d6efd}.colored-header-secondary{background-color:#adb5bd}.colored-header-success{background-color:#3c8104}.colored-header-info{background-color:#cfe2ff}.colored-header-warning{background-color:#e17a05}.colored-header-danger{background-color:#d20a09}.colored-header-light{background-color:#f8f9fa}.colored-header-dark{background-color:#000}@keyframes spinner-border{to{transform:rotate(1turn)}}.spinner-border{display:inline-block;width:2rem;height:2rem;vertical-align:text-bottom;border:.25em solid;border-right:.25em solid transparent;border-radius:50%;animation:spinner-border .75s linear infinite}@keyframes spinner-grow{0%{transform:scale(0)}50%{opacity:1}}.rounded-pill{border-radius:80rem!important}.d-flex{display:flex!important}.flex-column{flex-direction:column!important}.justify-content-center{justify-content:center!important}.align-items-center{align-items:center!important}.shadow-sm{box-shadow:0 .2rem .4rem #d8d8d8!important}.w-100{width:100%!important}.mb-0{margin-bottom:0!important}.ml-2{margin-left:.5rem!important}.mr-3{margin-right:1rem!important}.mb-3{margin-bottom:1rem!important}.mt-5{margin-top:3rem!important}.mb-5{margin-bottom:3rem!important}.pt-0{padding-top:0!important}.pl-2{padding-left:.5rem!important}.p-4{padding:1.5rem!important}.p-5{padding:3rem!important}.pb-5{padding-bottom:3rem!important}@media (min-width:576px){.mb-sm-3{margin-bottom:1rem!important}}.text-wrap{white-space:normal!important}.text-nowrap{white-space:nowrap!important}.text-center{text-align:center!important}.text-danger{color:#d20a09!important}a.text-danger:focus,a.text-danger:hover{color:rgb(136.6438356164,6.5068493151,5.8561643836)!important}.text-muted{color:#6c757d!important}.cursor-pointer:hover{cursor:pointer!important}[hidden]{visibility:hidden!important;height:0!important;width:0!important;min-height:unset!important}.black-img{filter:grayscale(100%);filter:brightness(0)}.card-body.license-card .radio{display:inline-block;width:3rem;height:3rem;border-radius:3rem;border:.3rem solid #6ab1ff;margin:.5rem}.card-body.license-card .radio.selected{border-color:#fff}.card-body.license-card .radio.selected:after{content:\\\" \\\";display:inline-block;margin:.3rem;width:1.8rem;height:1.8rem;border-radius:1.8rem;background-color:#fff}.card-body.license-card .selected{background-color:#6ab1ff;color:#fff}.card-body.license-card .divider-vertical{border-left:1px dotted #d8d8d8;display:flex;align-items:center;justify-content:center}.card-body.license-card .product-logo{vertical-align:middle}.card-body.license-card{padding:0;border-left:4px solid #d8d8d8}.card-body.license-card.card-selected{box-sizing:border-box;outline:4px solid #6ab1ff;outline-offset:-4px}.license-logo-container{border-left:3px solid #007bff;height:32px}@media (max-width:991px){.card-body.license-card .divider-vertical{border-left:none;border-top:1px dotted #d8d8d8}}@media print{*,:after,:before{text-shadow:none!important;box-shadow:none!important}a:not(.btn){text-decoration:underline}img{page-break-inside:avoid}p{orphans:3;widows:3}@page{size:a3}}@media print{main::-webkit-scrollbar{display:none}main{-ms-overflow-style:none;scrollbar-width:none}}@page{size:A4;margin:20mm 16mm 20mm 16mm}:host{display:block}.card-danger .card-selected{outline-color:#f84900}.card-danger .selected{background-color:#f84900}\", \"\"]);\n","module.exports = __webpack_public_path__ + \"2b70f3e29a31078e2833b96b2a12b7aa.webp\";","exports = module.exports = require(\"../../../node_modules/css-loader/dist/runtime/api.js\")(false);\n// Imports\nvar getUrl = require(\"../../../node_modules/css-loader/dist/runtime/getUrl.js\");\nvar ___CSS_LOADER_URL___0___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-light.woff2\"));\nvar ___CSS_LOADER_URL___1___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-lightit.woff2\"));\nvar ___CSS_LOADER_URL___2___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-reg.woff2\"));\nvar ___CSS_LOADER_URL___3___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-regit.woff2\"));\nvar ___CSS_LOADER_URL___4___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-sbold.woff2\"));\nvar ___CSS_LOADER_URL___5___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-sboldit.woff2\"));\nvar ___CSS_LOADER_URL___6___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-bold.woff2\"));\nvar ___CSS_LOADER_URL___7___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-boldit.woff2\"));\nvar ___CSS_LOADER_URL___8___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-Light.woff2\"));\nvar ___CSS_LOADER_URL___9___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-LightIt.woff2\"));\nvar ___CSS_LOADER_URL___10___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-Regular.woff2\"));\nvar ___CSS_LOADER_URL___11___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-RegularIt.woff2\"));\nvar ___CSS_LOADER_URL___12___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-Semibold.woff2\"));\nvar ___CSS_LOADER_URL___13___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-SemiboldIt.woff2\"));\nvar ___CSS_LOADER_URL___14___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-Bold.woff2\"));\nvar ___CSS_LOADER_URL___15___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-BoldIt.woff2\"));\nvar ___CSS_LOADER_URL___16___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-ExtraBold.woff2\"));\nvar ___CSS_LOADER_URL___17___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-ExtraBoldIt.woff2\"));\nvar ___CSS_LOADER_URL___18___ = getUrl(require(\"../../template/main/fonts/aofl-icons/icomoon.woff2?c6f21u\"));\n// Module\nexports.push([module.id, \"/*! @aofl-component */:root{--blue:#0d6efd;--indigo:#6610f2;--purple:#8b42ca;--pink:#e83e8c;--red:#e50b0a;--orange:#e17a05;--yellow:#ffc107;--green:#3c8104;--teal:#20c997;--cyan:#53c9dc;--white:#fff;--gray:#6b6b6b;--gray-dark:#343a40;--light-green:#b1dd53;--table-border-color:#d8d8d8;--gray-100:#f2f2f2;--gray-200:#d9d9d9;--gray-300:#d8d8d8;--gray-400:#ced4da;--gray-500:#adb5bd;--gray-600:#6c757d;--gray-700:#4a4a4a;--gray-800:#343a40;--gray-900:#212529;--gray-accessibility:#6b6b6b;--primary:#0d6efd;--secondary:#adb5bd;--success:#3c8104;--info:#cfe2ff;--warning:#e17a05;--danger:#d20a09;--light:#f8f9fa;--dark:#000;--breakpoint-xxs:0;--breakpoint-xs:375px;--breakpoint-sm:576px;--breakpoint-md:768px;--breakpoint-lg:992px;--breakpoint-xl:1200px;--font-family-sans-serif:aofl-sans,Arial,Helvetica,sans-serif;--font-family-monospace:SFMono-Regular,Menlo,Monaco,Consolas,\\\"Liberation Mono\\\",\\\"Courier New\\\",monospace;--z-index-dropdown:1000;--z-index-sticky:1020;--z-index-fixed:1030;--z-index-modal-backdrop:1040;--z-index-modal:1050;--z-index-popover:1060;--z-index-tooltip:1070;--header-height:6rem;--content-height:calc(100vh - 6rem);--sidepanel-width:20rem;--purple-color:#641da3;--purple-600:#956abc;--purple-400:#c7afdd;--purple-200:#e0d2ed;--struggling:#f6993b;--below-target:#ffcf00;--in_progress:#1280f5;--prior_knowledge:#edf887;--mastery_achieved:#69d112;--inactive:#d8d8d8}route-view{max-width:1200px}@font-face{font-family:aofl-sans;font-style:normal;font-weight:300;src:url(\" + ___CSS_LOADER_URL___0___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:italic;font-weight:300;src:url(\" + ___CSS_LOADER_URL___1___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:normal;font-weight:400;src:url(\" + ___CSS_LOADER_URL___2___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:italic;font-weight:400;src:url(\" + ___CSS_LOADER_URL___3___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:normal;font-weight:600;src:url(\" + ___CSS_LOADER_URL___4___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:italic;font-weight:600;src:url(\" + ___CSS_LOADER_URL___5___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:normal;font-weight:700;src:url(\" + ___CSS_LOADER_URL___6___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:italic;font-weight:700;src:url(\" + ___CSS_LOADER_URL___7___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:normal;font-weight:300;src:url(\" + ___CSS_LOADER_URL___8___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:italic;font-weight:300;src:url(\" + ___CSS_LOADER_URL___9___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:normal;font-weight:400;src:url(\" + ___CSS_LOADER_URL___10___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:italic;font-weight:400;src:url(\" + ___CSS_LOADER_URL___11___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:normal;font-weight:600;src:url(\" + ___CSS_LOADER_URL___12___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:italic;font-weight:600;src:url(\" + ___CSS_LOADER_URL___13___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:normal;font-weight:700;src:url(\" + ___CSS_LOADER_URL___14___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:italic;font-weight:700;src:url(\" + ___CSS_LOADER_URL___15___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:normal;font-weight:800;src:url(\" + ___CSS_LOADER_URL___16___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:italic;font-weight:800;src:url(\" + ___CSS_LOADER_URL___17___ + \") format(\\\"woff2\\\")}@font-face{font-family:icomoon;src:url(\" + ___CSS_LOADER_URL___18___ + \") format(\\\"woff2\\\");font-weight:400;font-style:normal;font-display:block}[class*=\\\" ai-\\\"],[class^=ai-]{font-family:icomoon!important;speak:never;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*,:after,:before{box-sizing:border-box}html{font-family:sans-serif;line-height:1.15;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:rgba(0,0,0,0)}figcaption,main,nav,section{display:block}[tabindex=\\\"-1\\\"]:focus{outline:0!important}strong{font-weight:bolder}caption{padding-top:.75rem;padding-bottom:.75rem;color:#6c757d;text-align:left;caption-side:bottom}button{border-radius:0}button:focus{outline:1px dotted;outline:5px auto -webkit-focus-ring-color}button,input{margin:0;font-family:inherit;font-size:inherit;line-height:inherit;overflow:visible}button{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]:not(:disabled),[type=reset]:not(:disabled),[type=submit]:not(:disabled),button:not(:disabled){cursor:pointer}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{padding:0;border-style:none}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}input[type=date],input[type=datetime-local],input[type=month],input[type=time]{-webkit-appearance:listbox}legend{display:block;width:100%;max-width:100%;padding:0;margin-bottom:.5rem;font-size:1.5rem;line-height:inherit;color:inherit;white-space:normal}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:none}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}summary{display:list-item;cursor:pointer}template{display:none}[hidden]{display:none!important}*{-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important}html{font-size:62.5%;height:100%}link-to{color:#0d6efd;text-decoration:none;background-color:transparent}link-to:hover{color:rgb(0,86.1,178.5);text-decoration:none;cursor:pointer}route-view{display:none;flex:1}site-header{background-color:#fff;display:none;position:-webkit-sticky;position:sticky;top:0;height:var(--header-height)}#main{display:none;flex:1 auto;max-width:100%;overflow:hidden;flex-direction:column;overflow-y:scroll}.loaded #main,.loaded site-header,body.loaded,route-view.loaded{display:flex}route-view.left-panel-active{padding-left:var(--sidepanel-width)}input[type=checkbox],input[type=radio]{cursor:pointer}button,button:active{outline:none}[tabindex=\\\"0\\\"]:focus-visible,aofl-list-option:focus-visible,button[type=button]:focus-visible,collapse-button:focus-visible{outline:1px solid #e50b0a;border:1px solid #e50b0a}@keyframes progress-bar-stripes{0%{background-position:1.6rem 0}to{background-position:0 0}}.modal-container{background-color:rgba(0,0,0,.2);position:fixed;top:0;bottom:0;right:0;left:0;z-index:var(--z-index-modal)}.modal-container :first-child{overflow:auto}.modal{position:relative;display:block;height:100vh}.modal-dialog-centered.modal-dialog-scrollable{height:auto;max-height:calc(100% - 2.8rem);min-height:auto}.modal-body,.modal-content,.modal-footer,.modal-header{border:none}.modal-header{font-size:2rem;padding:2.4rem}.modal-body{padding:0 2.4rem 4.8rem}.colored-header{color:#fff}.modal-body p{text-align:left}.colored-header-primary{background-color:#0d6efd}.colored-header-secondary{background-color:#adb5bd}.colored-header-success{background-color:#3c8104}.colored-header-info{background-color:#cfe2ff}.colored-header-warning{background-color:#e17a05}.colored-header-danger{background-color:#d20a09}.colored-header-light{background-color:#f8f9fa}.colored-header-dark{background-color:#000}@keyframes spinner-border{to{transform:rotate(1turn)}}@keyframes spinner-grow{0%{transform:scale(0)}50%{opacity:1}}[hidden]{visibility:hidden!important;height:0!important;width:0!important;min-height:unset!important}@media print{*,:after,:before{text-shadow:none!important;box-shadow:none!important}@page{size:a3}}@media print{main::-webkit-scrollbar{display:none}main{-ms-overflow-style:none;scrollbar-width:none}}@page{size:A4;margin:20mm 16mm 20mm 16mm}:host{display:inline-block}\", \"\"]);\n","import {until} from 'lit-html/directives/until';\n\nexport default (ctx, html) => html`\n
\n
\n \n \n
\n
\n \n \n
\n
\n
\n
\n \n
\n
\n \n
\n
\n
\n
\n`;\n","export default {\n 'es-US': () => import('./translations_es-US.json'),\n\n 'ja-JP': () => import('./translations_ja-JP.json'),\n\n 'zh-CN': () => import('./translations_zh-CN.json'),\n\n 'zh-TW': () => import('./translations_zh-TW.json'),\n}","import styles from './template.css';\nimport template from './template';\nimport {AoflElement, customElement, property} from '@aofl/element';\nimport {i18nMixin} from '@aofl/i18n-mixin';\nimport translations from './i18n';\nimport {isRequired, validationMixin} from '@aofl/form-validate';\n\n/**\n * @summary SaveReportForm\n * @extends {validationMixin(i18nMixin(AoflElement))}\n */\n@customElement('save-report-form')\nclass SaveReportForm extends validationMixin(i18nMixin(AoflElement)) {\n constructor() {\n super();\n\n this.translations = translations;\n\n this.validators = {\n title: {\n isRequired\n }\n };\n }\n\n /**\n * @readonly\n */\n static is = 'save-report-form';\n\n @property({type: Boolean})\n saving = false;\n\n updateTitle(e) {\n const value = e.target.value;\n this.title = value;\n }\n validateTitle(e) {\n this.form.title.validate();\n }\n updateDescription(e) {\n const value = e.target.value;\n this.description = value;\n }\n\n cancel() {\n this.dispatchEvent(new CustomEvent('save-report-cancel'));\n }\n\n async submit(e) {\n e.preventDefault();\n this.form.validate();\n await this.form.validateComplete;\n\n if (this.form.valid) {\n const formData = new FormData(e.target);\n this.title = formData.get('title');\n this.description = formData.get('description');\n\n this.dispatchEvent(new CustomEvent('save-report', {\n bubbles: true,\n composed: true\n }));\n }\n }\n\n /**\n *\n * @return {Object}\n */\n render() {\n return super.render({\n default: {template, styles: [styles]}\n });\n }\n}\n\nexport default SaveReportForm;\n","import {until} from 'lit-html/directives/until';\n\nconst renderGroup = async (group, groupIndex, ctx, html) => {\n const tier = await group.tier;\n return html`\n
\n
\n
\n \n
\n
\n ${ctx.parentId === 0 && groupIndex === (ctx.groups.length - 1) ? html`\n

\n ${until(ctx._r(ctx.__('', 'Please select a %r1%'), tier))}\n

\n `: ''}\n
\n
\n`;\n};\n\nexport default (ctx, html) => {\n return html`\n
\n ${ctx.groups.map((group, index) => until(renderGroup(group, index, ctx, html)))}\n
\n `;\n};\n","import styles from './template.css';\nimport template from './template';\nimport {AoflElement, customElement, property} from '@aofl/element';\nimport {i18nMixin} from '@aofl/i18n-mixin';\nimport {storeInstance} from '@aofl/store/dist/legacy';\nimport translations from '@modules/i18n';\nimport {sdoNs} from '@modules/constants-enumerate';\n\nimport {GroupLevelsFilter} from '@modules/group-levels-filter';\n\n/**\n * @summary GroupSelector\n * @extends {AoflElement}\n */\n@customElement('group-selector')\nclass GroupSelector extends i18nMixin(AoflElement) {\n @property({type: Object})\n groupInfo = {};\n\n @property({type: Number})\n level = 0;\n\n @property({type: Array})\n groups = [];\n\n @property({type: Number})\n maxLevel = 0;\n\n @property({type: Number})\n parentId = 0;\n\n @property({type: Boolean})\n showClasses = false;\n\n /**\n * @prop {GroupLevelsFilter}\n */\n groupLevelsFilter = null;\n\n\n constructor() {\n super();\n this.translations = translations;\n this.storeInstance = storeInstance;\n }\n /**\n * @readonly\n */\n static is = 'group-selector';\n\n async connectedCallback() {\n super.connectedCallback();\n\n const state = this.storeInstance.getState();\n const groupInfo = state[sdoNs.SESSION].group_info;\n const level = this.level;\n\n this.maxLevel = level;\n this.groupLevelsFilter = new GroupLevelsFilter(this.maxLevel, this.showClasses, true);\n\n let groups = await this.groupLevelsFilter.loadAllGroupsByParentPath(groupInfo);\n this.groups = this.filterForGroupsAboveLevel(groups);\n\n const path = this.groupInfo.path.slice(0, -1).split('.');\n path.shift();\n\n const realPath = path.map((part) => {\n return parseInt(part, 10);\n });\n this.realPath = realPath;\n\n groups = await this.groupLevelsFilter.loadSelectedGroups(realPath);\n\n this.groups = this.filterForGroupsAboveLevel(groups);\n\n const lastGroup = this.groups.at(-1);\n\n if (lastGroup?.selected > 0 || this.maxLevel <= groupInfo.level) {\n this.parentId = (this.maxLevel <= groupInfo.level) ? groupInfo.id : lastGroup.selected;\n\n this.dispatchEvent(new CustomEvent('data-updated', {\n composed: true,\n bubbles: true,\n detail: {\n parentId: this.parentId,\n }\n }));\n }\n\n }\n\n async selectGroup(e, groupIndex) {\n try {\n const itemIndex = e.target.value.trim();\n const selectedGroup = this.groups[groupIndex].groups[itemIndex];\n await this.updateGroupAndGetGroups(groupIndex, selectedGroup);\n this.parentId = selectedGroup.level === this.maxLevel ? selectedGroup.id : 0;\n\n // in this scenario we want to handle if a group only has one option in\n // it's dropdown and auto-populate the next dropdown. we don't want to\n // do this for the dashboard which is why we have this special logic here\n if (this.groups.length && this.groups[this.groups.length - 1]?.groups?.length === 1) {\n const lastGroup = this.groups[this.groups.length - 1].groups[0];\n await this.updateGroupAndGetGroups(groupIndex + 1, lastGroup);\n this.parentId = lastGroup.level === this.maxLevel ? lastGroup.id : 0;\n }\n\n this.dispatchEvent(new CustomEvent('data-updated', {\n composed: true,\n bubbles: true,\n detail: {\n parentId: this.parentId,\n }\n }));\n } catch (e) {\n }\n }\n\n filterForGroupsAboveLevel(groups) {\n const newGroups = [];\n groups.map((group) => {\n if (group.level < this.maxLevel) {\n newGroups.push(group);\n }\n });\n return newGroups;\n }\n\n async updateGroupAndGetGroups(groupIndex, selectedGroup) {\n let groups = await this.groupLevelsFilter.updateGroup(groupIndex, selectedGroup);\n this.groups = this.filterForGroupsAboveLevel(groups);\n }\n\n\n /**\n * @return {Object}\n */\n render() {\n return super.render({\n default: {template, styles: [styles]}\n });\n }\n}\n\nexport default GroupSelector;\n","exports = module.exports = require(\"../../../node_modules/css-loader/dist/runtime/api.js\")(false);\n// Imports\nvar getUrl = require(\"../../../node_modules/css-loader/dist/runtime/getUrl.js\");\nvar ___CSS_LOADER_URL___0___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-light.woff2\"));\nvar ___CSS_LOADER_URL___1___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-lightit.woff2\"));\nvar ___CSS_LOADER_URL___2___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-reg.woff2\"));\nvar ___CSS_LOADER_URL___3___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-regit.woff2\"));\nvar ___CSS_LOADER_URL___4___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-sbold.woff2\"));\nvar ___CSS_LOADER_URL___5___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-sboldit.woff2\"));\nvar ___CSS_LOADER_URL___6___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-bold.woff2\"));\nvar ___CSS_LOADER_URL___7___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-boldit.woff2\"));\nvar ___CSS_LOADER_URL___8___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-Light.woff2\"));\nvar ___CSS_LOADER_URL___9___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-LightIt.woff2\"));\nvar ___CSS_LOADER_URL___10___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-Regular.woff2\"));\nvar ___CSS_LOADER_URL___11___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-RegularIt.woff2\"));\nvar ___CSS_LOADER_URL___12___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-Semibold.woff2\"));\nvar ___CSS_LOADER_URL___13___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-SemiboldIt.woff2\"));\nvar ___CSS_LOADER_URL___14___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-Bold.woff2\"));\nvar ___CSS_LOADER_URL___15___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-BoldIt.woff2\"));\nvar ___CSS_LOADER_URL___16___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-ExtraBold.woff2\"));\nvar ___CSS_LOADER_URL___17___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-ExtraBoldIt.woff2\"));\nvar ___CSS_LOADER_URL___18___ = getUrl(require(\"../../template/main/fonts/aofl-icons/icomoon.woff2?c6f21u\"));\n// Module\nexports.push([module.id, \"/*! @aofl-component */:root{--blue:#0d6efd;--indigo:#6610f2;--purple:#8b42ca;--pink:#e83e8c;--red:#e50b0a;--orange:#e17a05;--yellow:#ffc107;--green:#3c8104;--teal:#20c997;--cyan:#53c9dc;--white:#fff;--gray:#6b6b6b;--gray-dark:#343a40;--light-green:#b1dd53;--table-border-color:#d8d8d8;--gray-100:#f2f2f2;--gray-200:#d9d9d9;--gray-300:#d8d8d8;--gray-400:#ced4da;--gray-500:#adb5bd;--gray-600:#6c757d;--gray-700:#4a4a4a;--gray-800:#343a40;--gray-900:#212529;--gray-accessibility:#6b6b6b;--primary:#0d6efd;--secondary:#adb5bd;--success:#3c8104;--info:#cfe2ff;--warning:#e17a05;--danger:#d20a09;--light:#f8f9fa;--dark:#000;--breakpoint-xxs:0;--breakpoint-xs:375px;--breakpoint-sm:576px;--breakpoint-md:768px;--breakpoint-lg:992px;--breakpoint-xl:1200px;--font-family-sans-serif:aofl-sans,Arial,Helvetica,sans-serif;--font-family-monospace:SFMono-Regular,Menlo,Monaco,Consolas,\\\"Liberation Mono\\\",\\\"Courier New\\\",monospace;--z-index-dropdown:1000;--z-index-sticky:1020;--z-index-fixed:1030;--z-index-modal-backdrop:1040;--z-index-modal:1050;--z-index-popover:1060;--z-index-tooltip:1070;--header-height:6rem;--content-height:calc(100vh - 6rem);--sidepanel-width:20rem;--purple-color:#641da3;--purple-600:#956abc;--purple-400:#c7afdd;--purple-200:#e0d2ed;--struggling:#f6993b;--below-target:#ffcf00;--in_progress:#1280f5;--prior_knowledge:#edf887;--mastery_achieved:#69d112;--inactive:#d8d8d8}route-view{max-width:1200px}@font-face{font-family:aofl-sans;font-style:normal;font-weight:300;src:url(\" + ___CSS_LOADER_URL___0___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:italic;font-weight:300;src:url(\" + ___CSS_LOADER_URL___1___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:normal;font-weight:400;src:url(\" + ___CSS_LOADER_URL___2___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:italic;font-weight:400;src:url(\" + ___CSS_LOADER_URL___3___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:normal;font-weight:600;src:url(\" + ___CSS_LOADER_URL___4___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:italic;font-weight:600;src:url(\" + ___CSS_LOADER_URL___5___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:normal;font-weight:700;src:url(\" + ___CSS_LOADER_URL___6___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:italic;font-weight:700;src:url(\" + ___CSS_LOADER_URL___7___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:normal;font-weight:300;src:url(\" + ___CSS_LOADER_URL___8___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:italic;font-weight:300;src:url(\" + ___CSS_LOADER_URL___9___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:normal;font-weight:400;src:url(\" + ___CSS_LOADER_URL___10___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:italic;font-weight:400;src:url(\" + ___CSS_LOADER_URL___11___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:normal;font-weight:600;src:url(\" + ___CSS_LOADER_URL___12___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:italic;font-weight:600;src:url(\" + ___CSS_LOADER_URL___13___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:normal;font-weight:700;src:url(\" + ___CSS_LOADER_URL___14___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:italic;font-weight:700;src:url(\" + ___CSS_LOADER_URL___15___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:normal;font-weight:800;src:url(\" + ___CSS_LOADER_URL___16___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:italic;font-weight:800;src:url(\" + ___CSS_LOADER_URL___17___ + \") format(\\\"woff2\\\")}@font-face{font-family:icomoon;src:url(\" + ___CSS_LOADER_URL___18___ + \") format(\\\"woff2\\\");font-weight:400;font-style:normal;font-display:block}[class*=\\\" ai-\\\"],[class^=ai-]{font-family:icomoon!important;speak:never;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*,:after,:before{box-sizing:border-box}html{font-family:sans-serif;line-height:1.15;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:rgba(0,0,0,0)}figcaption,main,nav,section{display:block}[tabindex=\\\"-1\\\"]:focus{outline:0!important}strong{font-weight:bolder}caption{padding-top:.75rem;padding-bottom:.75rem;color:#6c757d;text-align:left;caption-side:bottom}label{display:inline-block;margin-bottom:.8rem}button{border-radius:0}button:focus{outline:1px dotted;outline:5px auto -webkit-focus-ring-color}button,input{margin:0;font-family:inherit;font-size:inherit;line-height:inherit;overflow:visible}button{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]:not(:disabled),[type=reset]:not(:disabled),[type=submit]:not(:disabled),button:not(:disabled){cursor:pointer}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{padding:0;border-style:none}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}input[type=date],input[type=datetime-local],input[type=month],input[type=time]{-webkit-appearance:listbox}legend{display:block;width:100%;max-width:100%;padding:0;margin-bottom:.5rem;font-size:1.5rem;line-height:inherit;color:inherit;white-space:normal}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:none}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}summary{display:list-item;cursor:pointer}template{display:none}[hidden]{display:none!important}*{-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important}html{font-size:62.5%;height:100%}link-to{color:#0d6efd;text-decoration:none;background-color:transparent}link-to:hover{color:rgb(0,86.1,178.5);text-decoration:none;cursor:pointer}route-view{display:none;flex:1}site-header{background-color:#fff;display:none;position:-webkit-sticky;position:sticky;top:0;height:var(--header-height)}#main{display:none;flex:1 auto;max-width:100%;overflow:hidden;flex-direction:column;overflow-y:scroll}.loaded #main,.loaded site-header,body.loaded,route-view.loaded{display:flex}route-view.left-panel-active{padding-left:var(--sidepanel-width)}input[type=checkbox],input[type=radio]{cursor:pointer}input[type=checkbox]+label,input[type=radio]+label{cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}button,button:active{outline:none}[tabindex=\\\"0\\\"]:focus-visible,aofl-list-option:focus-visible,button[type=button]:focus-visible,collapse-button:focus-visible{outline:1px solid #e50b0a;border:1px solid #e50b0a}@keyframes progress-bar-stripes{0%{background-position:1.6rem 0}to{background-position:0 0}}.modal-container{background-color:rgba(0,0,0,.2);position:fixed;top:0;bottom:0;right:0;left:0;z-index:var(--z-index-modal)}.modal-container :first-child{overflow:auto}.modal{position:relative;display:block;height:100vh}.modal-dialog-centered.modal-dialog-scrollable{height:auto;max-height:calc(100% - 2.8rem);min-height:auto}.modal-body,.modal-content,.modal-footer,.modal-header{border:none}.modal-header{font-size:2rem;padding:2.4rem}.modal-body{padding:0 2.4rem 4.8rem}.colored-header{color:#fff}.modal-body p{text-align:left}.colored-header-primary{background-color:#0d6efd}.colored-header-secondary{background-color:#adb5bd}.colored-header-success{background-color:#3c8104}.colored-header-info{background-color:#cfe2ff}.colored-header-warning{background-color:#e17a05}.colored-header-danger{background-color:#d20a09}.colored-header-light{background-color:#f8f9fa}.colored-header-dark{background-color:#000}@keyframes spinner-border{to{transform:rotate(1turn)}}@keyframes spinner-grow{0%{transform:scale(0)}50%{opacity:1}}.font-size-small{font-size:1.4rem}[hidden]{visibility:hidden!important;height:0!important;width:0!important;min-height:unset!important}@media print{*,:after,:before{text-shadow:none!important;box-shadow:none!important}@page{size:a3}}@media print{main::-webkit-scrollbar{display:none}main{-ms-overflow-style:none;scrollbar-width:none}}@page{size:A4;margin:20mm 16mm 20mm 16mm}\", \"\"]);\n","exports = module.exports = require(\"../../../node_modules/css-loader/dist/runtime/api.js\")(false);\n// Imports\nexports.i(require(\"-!../../../node_modules/css-loader/dist/cjs.js??ref--5-1!../../../node_modules/postcss-loader/src/index.js??ref--5-2!../../../node_modules/@aofl/webcomponent-css-loader/index.js??ref--5-3!../../template/main/css/index.css\"), \"\");\n// Module\nexports.push([module.id, \":host{display:block}.student-initial-wrapper{height:80px}user-initials-button{width:6rem;height:6rem;font-size:2rem;font-weight:700}.student-activity-section{max-height:5000px;overflow:hidden;transition-property:max-height,overflow;transition-duration:.3s,.3s;transition-timing-function:ease-in-out,ease-in-out;transition-delay:0s,0s}.collapsed .student-activity-section{overflow:hidden;max-height:0;transition-property:max-height,overflow;transition-duration:.3s,.3s;transition-timing-function:ease-in-out,ease-in-out;transition-delay:0s,.3s}.chevron{transform:rotate(90deg);transition:all .3s}.collapsed .chevron{transform:rotate(0deg);transition:all .3s}\", \"\"]);\n","import {colorMap} from '@modules/constants-enumerate';\nimport {repeat} from 'lit-html/directives/repeat';\nimport '@routes/dashboard/modules/user-initials-button';\nimport {until} from 'lit-html/directives/until';\n\nexport default (ctx, html) => {\n if (ctx.students.length === 0) {\n return;\n }\n return html`\n
\n
ctx.toggleCollapse(ctx.status)}\" class=\"d-flex flex-row justify-content-between align-items-center cursor-pointer mb-3 mt-4\">\n
\n
\n ${until(ctx.header)}\n
\n \n
\n
\n ${repeat(ctx.students, (student) => student, (student) => html`\n
\n ctx.openStudentDashboard({detail: {student}}, e)}\"\n .color=\"${colorMap[ctx.status]}\"\n .content=\"${student.initials}\"\n .textColor=\"${ctx.bubbleTextColor}\">\n \n
${student.abbreviated}
\n
`)}\n
\n
\n `;\n};\n","import {storeInstance} from '@aofl/store/dist/legacy';\nimport {sdoNs} from '../constants-enumerate';\n\nconst sdo = {\n namespace: sdoNs.STUDENT_STATUS_LIST,\n mutations: {\n init() {\n return {\n collapsesByStatus: {},\n };\n },\n toggleCollapse(_subState, _payload) {\n const collapsesByStatus = {..._subState.collapsesByStatus};\n collapsesByStatus[_payload] = !collapsesByStatus[_payload];\n return {\n ..._subState,\n collapsesByStatus\n };\n },\n },\n decorators: [\n ]\n};\n\nstoreInstance.addState(sdo);\n","import styles from './template.css';\nimport template from './template';\nimport {AoflElement, customElement, property} from '@aofl/element';\nimport {storeInstance} from '@aofl/store/dist/legacy';\nimport {i18nMixin} from '@aofl/i18n-mixin';\nimport {sdoNs, modals, studentDetailSections, products, lessonDetailSections} from '@modules/constants-enumerate';\nimport './sdo';\nimport {SimpleModal} from '@modules/simple-modal';\nimport translations from '@modules/i18n';\n\n/**\n * @summary StudentStatusList\n * @extends {AoflElement}\n */\n@customElement('student-status-list')\nclass StudentStatusList extends i18nMixin(AoflElement) {\n /**\n * Creates an instance of StudentStatusList.\n */\n constructor() {\n super();\n this.storeInstance = storeInstance;\n this.translations = translations;\n }\n /**\n * @readonly\n */\n static is = 'student-status-list';\n\n @property({type: Array, mapState: `${sdoNs.STUDENT_STATUS_LIST}.collapsesByStatus`, store: storeInstance})\n collapsesByStatus = {};\n\n @property({type: Array})\n students = [];\n\n @property({type: String})\n status = '';\n\n @property({type: String})\n header = '';\n\n @property({type: String})\n bubbleTextColor = '#FFFFFF';\n\n toggleCollapse(_status) {\n storeInstance.commit({\n mutationId: 'toggleCollapse',\n namespace: sdoNs.STUDENT_STATUS_LIST,\n payload: _status\n });\n }\n\n openStudentDashboard(e) {\n e.cancelBubble = true;\n const student = e.detail.student;\n const state = storeInstance.getState();\n const academyLessonModalData = state[sdoNs.SIMPLE_MODAL].modals[modals.ACADEMY_LESSON_DETAILS_MODAL].data;\n SimpleModal.show(modals.STUDENT_DETAILS, {\n first_name: student.first_name,\n last_name: student.last_name,\n id: parseInt(student.id, 10),\n activeSection: studentDetailSections.DASHBOARD,\n activeDashTab: products.READING_MASTERY,\n onClose: (e) => {\n SimpleModal.show(modals.ACADEMY_LESSON_DETAILS_MODAL, academyLessonModalData, e);\n }\n }, e);\n }\n\n /**\n *\n * @return {Object}\n */\n render() {\n return super.render({\n default: {\n template,\n styles: [styles]\n }\n });\n }\n}\n\nexport default StudentStatusList;\n","exports = module.exports = require(\"../../../node_modules/css-loader/dist/runtime/api.js\")(false);\n// Imports\nvar getUrl = require(\"../../../node_modules/css-loader/dist/runtime/getUrl.js\");\nvar ___CSS_LOADER_URL___0___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-light.woff2\"));\nvar ___CSS_LOADER_URL___1___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-lightit.woff2\"));\nvar ___CSS_LOADER_URL___2___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-reg.woff2\"));\nvar ___CSS_LOADER_URL___3___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-regit.woff2\"));\nvar ___CSS_LOADER_URL___4___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-sbold.woff2\"));\nvar ___CSS_LOADER_URL___5___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-sboldit.woff2\"));\nvar ___CSS_LOADER_URL___6___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-bold.woff2\"));\nvar ___CSS_LOADER_URL___7___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-boldit.woff2\"));\nvar ___CSS_LOADER_URL___8___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-Light.woff2\"));\nvar ___CSS_LOADER_URL___9___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-LightIt.woff2\"));\nvar ___CSS_LOADER_URL___10___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-Regular.woff2\"));\nvar ___CSS_LOADER_URL___11___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-RegularIt.woff2\"));\nvar ___CSS_LOADER_URL___12___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-Semibold.woff2\"));\nvar ___CSS_LOADER_URL___13___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-SemiboldIt.woff2\"));\nvar ___CSS_LOADER_URL___14___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-Bold.woff2\"));\nvar ___CSS_LOADER_URL___15___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-BoldIt.woff2\"));\nvar ___CSS_LOADER_URL___16___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-ExtraBold.woff2\"));\nvar ___CSS_LOADER_URL___17___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-ExtraBoldIt.woff2\"));\nvar ___CSS_LOADER_URL___18___ = getUrl(require(\"../../template/main/fonts/aofl-icons/icomoon.woff2?c6f21u\"));\n// Module\nexports.push([module.id, \"/*! @aofl-component */:root{--blue:#0d6efd;--indigo:#6610f2;--purple:#8b42ca;--pink:#e83e8c;--red:#e50b0a;--orange:#e17a05;--yellow:#ffc107;--green:#3c8104;--teal:#20c997;--cyan:#53c9dc;--white:#fff;--gray:#6b6b6b;--gray-dark:#343a40;--light-green:#b1dd53;--table-border-color:#d8d8d8;--gray-100:#f2f2f2;--gray-200:#d9d9d9;--gray-300:#d8d8d8;--gray-400:#ced4da;--gray-500:#adb5bd;--gray-600:#6c757d;--gray-700:#4a4a4a;--gray-800:#343a40;--gray-900:#212529;--gray-accessibility:#6b6b6b;--primary:#0d6efd;--secondary:#adb5bd;--success:#3c8104;--info:#cfe2ff;--warning:#e17a05;--danger:#d20a09;--light:#f8f9fa;--dark:#000;--breakpoint-xxs:0;--breakpoint-xs:375px;--breakpoint-sm:576px;--breakpoint-md:768px;--breakpoint-lg:992px;--breakpoint-xl:1200px;--font-family-sans-serif:aofl-sans,Arial,Helvetica,sans-serif;--font-family-monospace:SFMono-Regular,Menlo,Monaco,Consolas,\\\"Liberation Mono\\\",\\\"Courier New\\\",monospace;--z-index-dropdown:1000;--z-index-sticky:1020;--z-index-fixed:1030;--z-index-modal-backdrop:1040;--z-index-modal:1050;--z-index-popover:1060;--z-index-tooltip:1070;--header-height:6rem;--content-height:calc(100vh - 6rem);--sidepanel-width:20rem;--purple-color:#641da3;--purple-600:#956abc;--purple-400:#c7afdd;--purple-200:#e0d2ed;--struggling:#f6993b;--below-target:#ffcf00;--in_progress:#1280f5;--prior_knowledge:#edf887;--mastery_achieved:#69d112;--inactive:#d8d8d8}route-view{max-width:1200px}@font-face{font-family:aofl-sans;font-style:normal;font-weight:300;src:url(\" + ___CSS_LOADER_URL___0___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:italic;font-weight:300;src:url(\" + ___CSS_LOADER_URL___1___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:normal;font-weight:400;src:url(\" + ___CSS_LOADER_URL___2___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:italic;font-weight:400;src:url(\" + ___CSS_LOADER_URL___3___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:normal;font-weight:600;src:url(\" + ___CSS_LOADER_URL___4___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:italic;font-weight:600;src:url(\" + ___CSS_LOADER_URL___5___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:normal;font-weight:700;src:url(\" + ___CSS_LOADER_URL___6___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:italic;font-weight:700;src:url(\" + ___CSS_LOADER_URL___7___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:normal;font-weight:300;src:url(\" + ___CSS_LOADER_URL___8___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:italic;font-weight:300;src:url(\" + ___CSS_LOADER_URL___9___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:normal;font-weight:400;src:url(\" + ___CSS_LOADER_URL___10___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:italic;font-weight:400;src:url(\" + ___CSS_LOADER_URL___11___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:normal;font-weight:600;src:url(\" + ___CSS_LOADER_URL___12___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:italic;font-weight:600;src:url(\" + ___CSS_LOADER_URL___13___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:normal;font-weight:700;src:url(\" + ___CSS_LOADER_URL___14___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:italic;font-weight:700;src:url(\" + ___CSS_LOADER_URL___15___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:normal;font-weight:800;src:url(\" + ___CSS_LOADER_URL___16___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:italic;font-weight:800;src:url(\" + ___CSS_LOADER_URL___17___ + \") format(\\\"woff2\\\")}@font-face{font-family:icomoon;src:url(\" + ___CSS_LOADER_URL___18___ + \") format(\\\"woff2\\\");font-weight:400;font-style:normal;font-display:block}[class*=\\\" ai-\\\"],[class^=ai-]{font-family:icomoon!important;speak:never;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.ai-chevron-down:before{content:\\\"\\\\e90d\\\"}.ai-close-icon:before{content:\\\"\\\\e912\\\"}*,:after,:before{box-sizing:border-box}html{font-family:sans-serif;line-height:1.15;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:rgba(0,0,0,0)}figcaption,main,nav,section{display:block}[tabindex=\\\"-1\\\"]:focus{outline:0!important}hr{box-sizing:content-box;height:0;overflow:visible}h5{margin-bottom:1rem}h5,p{margin-top:0}p{margin-bottom:1.6rem}ul{margin-top:0;margin-bottom:1rem}ul ul{margin-bottom:0}strong{font-weight:bolder}small{font-size:80%}a{color:#0d6efd;background-color:transparent}a,a:hover{text-decoration:none}a:hover{color:rgb(0,86.1,178.5)}a:not([href]):not([tabindex]),a:not([href]):not([tabindex]):focus,a:not([href]):not([tabindex]):hover{color:inherit;text-decoration:none}a:not([href]):not([tabindex]):focus{outline:0}caption{padding-top:.75rem;padding-bottom:.75rem;color:#6c757d;text-align:left;caption-side:bottom}button{border-radius:0}button:focus{outline:1px dotted;outline:5px auto -webkit-focus-ring-color}button,input{margin:0;font-family:inherit;font-size:inherit;line-height:inherit;overflow:visible}button{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]:not(:disabled),[type=reset]:not(:disabled),[type=submit]:not(:disabled),button:not(:disabled){cursor:pointer}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{padding:0;border-style:none}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}input[type=date],input[type=datetime-local],input[type=month],input[type=time]{-webkit-appearance:listbox}legend{display:block;width:100%;max-width:100%;padding:0;margin-bottom:.5rem;font-size:1.5rem;line-height:inherit;color:inherit;white-space:normal}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:none}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}summary{display:list-item;cursor:pointer}template{display:none}[hidden]{display:none!important}*{-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important}html{font-size:62.5%;height:100%}link-to{color:#0d6efd;text-decoration:none;background-color:transparent}link-to:hover{color:rgb(0,86.1,178.5);text-decoration:none;cursor:pointer}route-view{display:none;flex:1}site-header{background-color:#fff;display:none;position:-webkit-sticky;position:sticky;top:0;height:var(--header-height)}#main{display:none;flex:1 auto;max-width:100%;overflow:hidden;flex-direction:column;overflow-y:scroll}.loaded #main,.loaded site-header,body.loaded,route-view.loaded{display:flex}route-view.left-panel-active{padding-left:var(--sidepanel-width)}.h5,h5{font-weight:500;line-height:1.2;font-size:1.4rem}.h5,h5,hr{margin-bottom:1rem}hr{margin-top:1rem;border:0;border-top:1px solid rgba(0,0,0,.1)}.small,small{font-size:85%;font-weight:400}.list-unstyled{padding-left:0;list-style:none}.row{display:flex;flex-wrap:wrap;margin-right:-15px;margin-left:-15px}.col-4,.col-8{position:relative;width:100%;padding-right:15px;padding-left:15px}.col-4{flex:0 0 33.3333333333%;max-width:33.3333333333%}.col-8{flex:0 0 66.6666666667%;max-width:66.6666666667%}input[type=checkbox],input[type=radio]{cursor:pointer}.btn{display:inline-block;font-weight:400;color:#000;text-align:center;vertical-align:middle;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;background-color:transparent;border:1px solid transparent;padding:.375rem .75rem;font-size:1.6rem;line-height:1.5;border-radius:.25rem;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.btn{transition:none}}.btn:hover{color:#000;text-decoration:none}.btn:focus{outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.btn.disabled,.btn:disabled{opacity:.65}a.btn.disabled{pointer-events:none}.btn-outline-light{color:#f8f9fa;border-color:#f8f9fa}.btn-outline-light:hover{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-outline-light:focus{box-shadow:0 0 0 .2rem rgba(248,249,250,.5)}.btn-outline-light.disabled,.btn-outline-light:disabled{color:#f8f9fa;background-color:transparent}.btn-outline-light:not(:disabled):not(.disabled):active,.show>.btn-outline-light.dropdown-toggle{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-outline-light:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-light.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(248,249,250,.5)}.btn:disabled{cursor:not-allowed}.btn.disabled,link-to.btn.disabled,link-to.btn:disabled,link-to.btn[disabled]{pointer-events:none}.btn-outline-light{color:#000;border-color:#ced4da;background:#fff}.btn-outline-light:disabled{color:#000}.btn-outline-light:hover{border-color:#ced4da}button,button:active{outline:none}.btn:focus-visible,[tabindex=\\\"0\\\"]:focus-visible,a:focus-visible,aofl-list-option:focus-visible,button[type=button]:focus-visible,collapse-button:focus-visible{outline:1px solid #e50b0a;border:1px solid #e50b0a}.btn.disabled,.btn:disabled{background:#cfe2ff;border-color:#cfe2ff;color:#0d6efd;opacity:1}.dropdown-toggle{white-space:nowrap}.dropdown-toggle:after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:\\\"\\\";border-top:.3em solid;border-right:.3em solid transparent;border-bottom:0;border-left:.3em solid transparent}.dropdown-toggle:empty:after{margin-left:0}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:16rem;padding:.8rem 0;margin:.2rem 0 0;font-size:1.3rem;color:#212529;text-align:left;list-style:none;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.15);border-radius:.25rem}.dropdown-menu[x-placement^=bottom],.dropdown-menu[x-placement^=left],.dropdown-menu[x-placement^=right],.dropdown-menu[x-placement^=top]{right:auto;bottom:auto}.dropdown-item{display:block;width:100%;padding:.8rem 2rem;clear:both;font-weight:400;color:#212529;text-align:inherit;white-space:nowrap;background-color:transparent;border:0}.dropdown-item:focus,.dropdown-item:hover{color:rgb(21.6283783784,24.25,26.8716216216);text-decoration:none;background-color:#d8d8d8}.dropdown-item:active{color:#fff;text-decoration:none;background-color:#0d6efd}.dropdown-item.disabled,.dropdown-item:disabled{color:#6c757d;pointer-events:none;background-color:transparent}.dropdown-menu.show{display:block}.dropdown-menu{box-shadow:0 0 .6rem 0 #d8d8d8;display:inline-block;float:none;position:relative;margin:.2rem .4rem .4rem 0;min-width:1rem}bulk-actions-button+.dropdown-menu{max-width:270px;width:100%}bulk-actions-button+.dropdown-menu .btn{font-size:1.2rem;font-weight:600}collapse-button .ai.ai-chevron-down:before{transform:rotate(-90deg);display:inline-block}ems-dropdown>button.btn{display:flex;align-items:center;border:1px solid var(--gray)}collapse-button[open] .ai.ai-chevron-down:before{transform:rotate(180deg)}collapse-button .ai.ai-chevron-down,ems-dropdown .ai.ai-chevron-down{font-size:.8rem}collapse-button .ai-chevron-down:before,ems-dropdown .ai-chevron-down:before{content:\\\"\\\\e90d\\\"}collapse-button[open] .ai-chevron-down:before,ems-dropdown[open] .ai-chevron-down:before{content:\\\"\\\\e90f\\\"}.card{position:relative;display:flex;flex-direction:column;min-width:0;word-wrap:break-word;background-color:#fff;background-clip:border-box;border:1px solid rgba(0,0,0,.125);border-radius:.25rem}.card>hr{margin-right:0;margin-left:0}.card-body{flex:1 1 auto}.card-header{padding:1.2rem 2rem;margin-bottom:0;background-color:rgba(0,0,0,.03);border-bottom:1px solid rgba(0,0,0,.125)}.card-header:first-child{border-radius:calc(.25rem - 1px) calc(.25rem - 1px) 0 0}.card-header{background-color:transparent;border-bottom:none;font-size:2rem;font-weight:300;margin:0 2rem;padding:1.6rem 0 0}.card-body{padding:2rem}.card-border-color-left{border-left:.5rem solid #c9c9c9}.card-border-color-left.card-border-color-warning{border-left-color:#e17a05}.card.shadow-sm{box-shadow:0 0 1.1rem #d8d8d8!important}@keyframes progress-bar-stripes{0%{background-position:1.6rem 0}to{background-position:0 0}}.close{float:right;font-size:1rem;font-weight:700;line-height:1;text-shadow:0 1px 0 #fff;opacity:.5}.close:hover{text-decoration:none}.close:not(:disabled):not(.disabled):focus,.close:not(:disabled):not(.disabled):hover{opacity:.75}button.close{padding:0;background-color:transparent;border:0;-webkit-appearance:none;-moz-appearance:none;appearance:none}a.close.disabled{pointer-events:none}.close,.close:not(:disabled):not(.disabled):focus,.close:not(:disabled):not(.disabled):hover{opacity:1}.modal-container{background-color:rgba(0,0,0,.2);position:fixed;top:0;bottom:0;right:0;left:0;z-index:var(--z-index-modal)}.modal-container :first-child{overflow:auto}.modal{position:relative;display:block;height:100vh}.modal-dialog-centered.modal-dialog-scrollable{height:auto;max-height:calc(100% - 2.8rem);min-height:auto}.modal-body,.modal-content,.modal-footer,.modal-header{border:none}.modal-header{font-size:2rem;padding:2.4rem}.modal-body{padding:0 2.4rem 4.8rem}.colored-header{color:#fff}.modal-body p{text-align:left}.colored-header-primary{background-color:#0d6efd}.colored-header-secondary{background-color:#adb5bd}.colored-header-success{background-color:#3c8104}.colored-header-info{background-color:#cfe2ff}.colored-header-warning{background-color:#e17a05}.colored-header-danger{background-color:#d20a09}.colored-header-light{background-color:#f8f9fa}.colored-header-dark{background-color:#000}@keyframes spinner-border{to{transform:rotate(1turn)}}@keyframes spinner-grow{0%{transform:scale(0)}50%{opacity:1}}.align-top{vertical-align:top!important}.border{border:1px solid #d8d8d8!important}.border-top-0{border-top:0!important}.border-right-0{border-right:0!important}.border-bottom-0{border-bottom:0!important}.d-inline-block{display:inline-block!important}.d-flex{display:flex!important}.justify-content-between{justify-content:space-between!important}.align-items-center{align-items:center!important}.shadow-sm{box-shadow:0 .2rem .4rem #d8d8d8!important}.w-100{width:100%!important}.m-0{margin:0!important}.mb-0{margin-bottom:0!important}.mb-2{margin-bottom:.5rem!important}.my-3{margin-top:1rem!important}.mr-3{margin-right:1rem!important}.mb-3,.my-3{margin-bottom:1rem!important}.mt-4{margin-top:1.5rem!important}.mb-5{margin-bottom:3rem!important}.p-0{padding:0!important}.pb-0{padding-bottom:0!important}.p-2{padding:.5rem!important}.px-2{padding-right:.5rem!important}.pl-2,.px-2{padding-left:.5rem!important}.pt-3,.py-3{padding-top:1rem!important}.pr-3{padding-right:1rem!important}.py-3{padding-bottom:1rem!important}.px-4{padding-right:1.5rem!important}.pl-4,.px-4{padding-left:1.5rem!important}.text-right{text-align:right!important}.text-center{text-align:center!important}.font-weight-normal{font-weight:400!important}.text-primary{color:#0d6efd!important}a.text-primary:focus,a.text-primary:hover{color:rgb(1.5532786885,76.887295082,187.9467213115)!important}.text-muted{color:#6c757d!important}.cursor-pointer:hover{cursor:pointer!important}.border-dashed-bottom{border-bottom:2px dashed var(--gray-300)}.border-dashed-top{border-top:2px dashed var(--gray-300)}[hidden]{visibility:hidden!important;height:0!important;width:0!important;min-height:unset!important}@media print{*,:after,:before{text-shadow:none!important;box-shadow:none!important}a:not(.btn){text-decoration:underline}p{orphans:3;widows:3}@page{size:a3}}@media print{main::-webkit-scrollbar{display:none}main{-ms-overflow-style:none;scrollbar-width:none}}@page{size:A4;margin:20mm 16mm 20mm 16mm}:host{display:block}.close{font-size:.9em}.close,.close:hover{color:#000}.class-info>div:first-of-type{width:calc(100% - 30px)}.card-border-color-left{border-left-width:.8rem}ul{list-style-type:none}\", \"\"]);\n","import toInteger from '../_lib/toInteger/index.js';\nimport toDate from '../toDate/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name addDays\n * @category Day Helpers\n * @summary Add the specified number of days to the given date.\n *\n * @description\n * Add the specified number of days to the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of days to be added\n * @returns {Date} the new date with the days added\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Add 10 days to 1 September 2014:\n * var result = addDays(new Date(2014, 8, 1), 10)\n * //=> Thu Sep 11 2014 00:00:00\n */\n\nexport default function addDays(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var date = toDate(dirtyDate);\n var amount = toInteger(dirtyAmount);\n date.setDate(date.getDate() + amount);\n return date;\n}","exports = module.exports = require(\"../../../../../node_modules/css-loader/dist/runtime/api.js\")(false);\n// Imports\nvar getUrl = require(\"../../../../../node_modules/css-loader/dist/runtime/getUrl.js\");\nvar ___CSS_LOADER_URL___0___ = getUrl(require(\"../../../../template/main/fonts/aofl-sans/aoflsans-light.woff2\"));\nvar ___CSS_LOADER_URL___1___ = getUrl(require(\"../../../../template/main/fonts/aofl-sans/aoflsans-lightit.woff2\"));\nvar ___CSS_LOADER_URL___2___ = getUrl(require(\"../../../../template/main/fonts/aofl-sans/aoflsans-reg.woff2\"));\nvar ___CSS_LOADER_URL___3___ = getUrl(require(\"../../../../template/main/fonts/aofl-sans/aoflsans-regit.woff2\"));\nvar ___CSS_LOADER_URL___4___ = getUrl(require(\"../../../../template/main/fonts/aofl-sans/aoflsans-sbold.woff2\"));\nvar ___CSS_LOADER_URL___5___ = getUrl(require(\"../../../../template/main/fonts/aofl-sans/aoflsans-sboldit.woff2\"));\nvar ___CSS_LOADER_URL___6___ = getUrl(require(\"../../../../template/main/fonts/aofl-sans/aoflsans-bold.woff2\"));\nvar ___CSS_LOADER_URL___7___ = getUrl(require(\"../../../../template/main/fonts/aofl-sans/aoflsans-boldit.woff2\"));\nvar ___CSS_LOADER_URL___8___ = getUrl(require(\"../../../../template/main/fonts/abcmouse-sans/ABCmouseSans-Light.woff2\"));\nvar ___CSS_LOADER_URL___9___ = getUrl(require(\"../../../../template/main/fonts/abcmouse-sans/ABCmouseSans-LightIt.woff2\"));\nvar ___CSS_LOADER_URL___10___ = getUrl(require(\"../../../../template/main/fonts/abcmouse-sans/ABCmouseSans-Regular.woff2\"));\nvar ___CSS_LOADER_URL___11___ = getUrl(require(\"../../../../template/main/fonts/abcmouse-sans/ABCmouseSans-RegularIt.woff2\"));\nvar ___CSS_LOADER_URL___12___ = getUrl(require(\"../../../../template/main/fonts/abcmouse-sans/ABCmouseSans-Semibold.woff2\"));\nvar ___CSS_LOADER_URL___13___ = getUrl(require(\"../../../../template/main/fonts/abcmouse-sans/ABCmouseSans-SemiboldIt.woff2\"));\nvar ___CSS_LOADER_URL___14___ = getUrl(require(\"../../../../template/main/fonts/abcmouse-sans/ABCmouseSans-Bold.woff2\"));\nvar ___CSS_LOADER_URL___15___ = getUrl(require(\"../../../../template/main/fonts/abcmouse-sans/ABCmouseSans-BoldIt.woff2\"));\nvar ___CSS_LOADER_URL___16___ = getUrl(require(\"../../../../template/main/fonts/abcmouse-sans/ABCmouseSans-ExtraBold.woff2\"));\nvar ___CSS_LOADER_URL___17___ = getUrl(require(\"../../../../template/main/fonts/abcmouse-sans/ABCmouseSans-ExtraBoldIt.woff2\"));\nvar ___CSS_LOADER_URL___18___ = getUrl(require(\"../../../../template/main/fonts/aofl-icons/icomoon.woff2?c6f21u\"));\n// Module\nexports.push([module.id, \"/*! @aofl-component */:root{--blue:#0d6efd;--indigo:#6610f2;--purple:#8b42ca;--pink:#e83e8c;--red:#e50b0a;--orange:#e17a05;--yellow:#ffc107;--green:#3c8104;--teal:#20c997;--cyan:#53c9dc;--white:#fff;--gray:#6b6b6b;--gray-dark:#343a40;--light-green:#b1dd53;--table-border-color:#d8d8d8;--gray-100:#f2f2f2;--gray-200:#d9d9d9;--gray-300:#d8d8d8;--gray-400:#ced4da;--gray-500:#adb5bd;--gray-600:#6c757d;--gray-700:#4a4a4a;--gray-800:#343a40;--gray-900:#212529;--gray-accessibility:#6b6b6b;--primary:#0d6efd;--secondary:#adb5bd;--success:#3c8104;--info:#cfe2ff;--warning:#e17a05;--danger:#d20a09;--light:#f8f9fa;--dark:#000;--breakpoint-xxs:0;--breakpoint-xs:375px;--breakpoint-sm:576px;--breakpoint-md:768px;--breakpoint-lg:992px;--breakpoint-xl:1200px;--font-family-sans-serif:aofl-sans,Arial,Helvetica,sans-serif;--font-family-monospace:SFMono-Regular,Menlo,Monaco,Consolas,\\\"Liberation Mono\\\",\\\"Courier New\\\",monospace;--z-index-dropdown:1000;--z-index-sticky:1020;--z-index-fixed:1030;--z-index-modal-backdrop:1040;--z-index-modal:1050;--z-index-popover:1060;--z-index-tooltip:1070;--header-height:6rem;--content-height:calc(100vh - 6rem);--sidepanel-width:20rem;--purple-color:#641da3;--purple-600:#956abc;--purple-400:#c7afdd;--purple-200:#e0d2ed;--struggling:#f6993b;--below-target:#ffcf00;--in_progress:#1280f5;--prior_knowledge:#edf887;--mastery_achieved:#69d112;--inactive:#d8d8d8}route-view{max-width:1200px}@font-face{font-family:aofl-sans;font-style:normal;font-weight:300;src:url(\" + ___CSS_LOADER_URL___0___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:italic;font-weight:300;src:url(\" + ___CSS_LOADER_URL___1___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:normal;font-weight:400;src:url(\" + ___CSS_LOADER_URL___2___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:italic;font-weight:400;src:url(\" + ___CSS_LOADER_URL___3___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:normal;font-weight:600;src:url(\" + ___CSS_LOADER_URL___4___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:italic;font-weight:600;src:url(\" + ___CSS_LOADER_URL___5___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:normal;font-weight:700;src:url(\" + ___CSS_LOADER_URL___6___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:italic;font-weight:700;src:url(\" + ___CSS_LOADER_URL___7___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:normal;font-weight:300;src:url(\" + ___CSS_LOADER_URL___8___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:italic;font-weight:300;src:url(\" + ___CSS_LOADER_URL___9___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:normal;font-weight:400;src:url(\" + ___CSS_LOADER_URL___10___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:italic;font-weight:400;src:url(\" + ___CSS_LOADER_URL___11___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:normal;font-weight:600;src:url(\" + ___CSS_LOADER_URL___12___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:italic;font-weight:600;src:url(\" + ___CSS_LOADER_URL___13___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:normal;font-weight:700;src:url(\" + ___CSS_LOADER_URL___14___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:italic;font-weight:700;src:url(\" + ___CSS_LOADER_URL___15___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:normal;font-weight:800;src:url(\" + ___CSS_LOADER_URL___16___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:italic;font-weight:800;src:url(\" + ___CSS_LOADER_URL___17___ + \") format(\\\"woff2\\\")}@font-face{font-family:icomoon;src:url(\" + ___CSS_LOADER_URL___18___ + \") format(\\\"woff2\\\");font-weight:400;font-style:normal;font-display:block}[class*=\\\" ai-\\\"],[class^=ai-]{font-family:icomoon!important;speak:never;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.ai-close-icon:before{content:\\\"\\\\e912\\\"}*,:after,:before{box-sizing:border-box}html{font-family:sans-serif;line-height:1.15;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:rgba(0,0,0,0)}figcaption,main,nav,section{display:block}[tabindex=\\\"-1\\\"]:focus{outline:0!important}strong{font-weight:bolder}code{font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:1em}caption{padding-top:.75rem;padding-bottom:.75rem;color:#6c757d;text-align:left;caption-side:bottom}button{border-radius:0}button:focus{outline:1px dotted;outline:5px auto -webkit-focus-ring-color}button,input{margin:0;font-family:inherit;font-size:inherit;line-height:inherit;overflow:visible}button{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]:not(:disabled),[type=reset]:not(:disabled),[type=submit]:not(:disabled),button:not(:disabled){cursor:pointer}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{padding:0;border-style:none}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}input[type=date],input[type=datetime-local],input[type=month],input[type=time]{-webkit-appearance:listbox}legend{display:block;width:100%;max-width:100%;padding:0;margin-bottom:.5rem;font-size:1.5rem;line-height:inherit;color:inherit;white-space:normal}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:none}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}summary{display:list-item;cursor:pointer}template{display:none}[hidden]{display:none!important}*{-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important}html{font-size:62.5%;height:100%}link-to{color:#0d6efd;text-decoration:none;background-color:transparent}link-to:hover{color:rgb(0,86.1,178.5);text-decoration:none;cursor:pointer}route-view{display:none;flex:1}site-header{background-color:#fff;display:none;position:-webkit-sticky;position:sticky;top:0;height:var(--header-height)}#main{display:none;flex:1 auto;max-width:100%;overflow:hidden;flex-direction:column;overflow-y:scroll}.loaded #main,.loaded site-header,body.loaded,route-view.loaded{display:flex}route-view.left-panel-active{padding-left:var(--sidepanel-width)}code{font-size:87.5%;color:#e83e8c;word-break:break-word}input[type=checkbox],input[type=radio]{cursor:pointer}button,button:active{outline:none}[tabindex=\\\"0\\\"]:focus-visible,aofl-list-option:focus-visible,button[type=button]:focus-visible,collapse-button:focus-visible{outline:1px solid #e50b0a;border:1px solid #e50b0a}@keyframes progress-bar-stripes{0%{background-position:1.6rem 0}to{background-position:0 0}}.close{float:right;font-size:1rem;font-weight:700;line-height:1;text-shadow:0 1px 0 #fff;opacity:.5}.close:hover{text-decoration:none}.close:not(:disabled):not(.disabled):focus,.close:not(:disabled):not(.disabled):hover{opacity:.75}button.close{padding:0;background-color:transparent;border:0;-webkit-appearance:none;-moz-appearance:none;appearance:none}.close,.close:not(:disabled):not(.disabled):focus,.close:not(:disabled):not(.disabled):hover{opacity:1}.modal{position:fixed;top:0;left:0;z-index:1050;display:none;width:100%;height:100%;overflow:hidden;outline:0}.modal-dialog{position:relative;width:auto;margin:.8rem;pointer-events:none}.modal-dialog-centered{display:flex;align-items:center;min-height:calc(100% - 1.6rem)}.modal-dialog-centered:before{display:block;height:calc(100vh - 1.6rem);content:\\\"\\\"}.modal-content{position:relative;display:flex;flex-direction:column;width:100%;pointer-events:auto;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.2);border-radius:.3rem;outline:0}.modal-header{display:flex;align-items:flex-start;justify-content:space-between;padding:1rem;border-bottom:1px solid #dee2e6;border-top-left-radius:.3rem;border-top-right-radius:.3rem}.modal-header .close{padding:1rem;margin:-2.4rem -2.4rem -2.4rem auto}@media (min-width:576px){.modal-dialog{max-width:500px;margin:2.8rem auto}.modal-dialog-centered{min-height:calc(100% - 5.6rem)}.modal-dialog-centered:before{height:calc(100vh - 5.6rem)}}.modal-container{background-color:rgba(0,0,0,.2);position:fixed;top:0;bottom:0;right:0;left:0;z-index:var(--z-index-modal)}.modal-container :first-child{overflow:auto}.modal{position:relative;display:block;height:100vh}.modal-dialog-centered.modal-dialog-scrollable{height:auto;max-height:calc(100% - 2.8rem);min-height:auto}.modal-body,.modal-content,.modal-footer,.modal-header{border:none}.modal-header{font-size:2rem;padding:2.4rem}.modal-body{padding:0 2.4rem 4.8rem}.colored-header{color:#fff}.modal-body p{text-align:left}.colored-header-primary{background-color:#0d6efd}.colored-header-secondary{background-color:#adb5bd}.colored-header-success{background-color:#3c8104}.colored-header-info{background-color:#cfe2ff}.colored-header-warning{background-color:#e17a05}.colored-header-danger{background-color:#d20a09}.colored-header-light{background-color:#f8f9fa}.colored-header-dark{background-color:#000}@keyframes spinner-border{to{transform:rotate(1turn)}}@keyframes spinner-grow{0%{transform:scale(0)}50%{opacity:1}}.shadow{box-shadow:0 .8rem 1.6rem #d8d8d8!important}.mx-auto{margin-right:auto!important;margin-left:auto!important}[hidden]{visibility:hidden!important;height:0!important;width:0!important;min-height:unset!important}@media print{*,:after,:before{text-shadow:none!important;box-shadow:none!important}@page{size:a3}}@media print{main::-webkit-scrollbar{display:none}main{-ms-overflow-style:none;scrollbar-width:none}}@page{size:A4;margin:20mm 16mm 20mm 16mm}:host{display:block}.modal-content{overflow:visible;padding:2rem}.close{font-size:.9em}.close,.close:hover{color:#000}redeem-code-form{width:300px}\", \"\"]);\n","import toDate from '../toDate/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name startOfMonth\n * @category Month Helpers\n * @summary Return the start of a month for the given date.\n *\n * @description\n * Return the start of a month for the given date.\n * The result will be in the local timezone.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the original date\n * @returns {Date} the start of a month\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // The start of a month for 2 September 2014 11:55:00:\n * var result = startOfMonth(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Mon Sep 01 2014 00:00:00\n */\n\nexport default function startOfMonth(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n date.setDate(1);\n date.setHours(0, 0, 0, 0);\n return date;\n}","import {modals as modalsEnum} from '../../../modules/constants-enumerate';\nimport {SimpleModal} from '@modules/simple-modal';\n\nconst modals = {\n [modalsEnum.LICENSE_DISTRIBUTE]: {\n resolve: () => import('./distribute-modal')\n },\n [modalsEnum.LICENSE_TAKE]: {\n resolve: () => import('./license-take-modal')\n }\n};\n\nSimpleModal.addModals(modals);\n","import {storeInstance} from '@aofl/store/dist/legacy';\nimport {sdoNs} from './constants-enumerate';\nimport {ApiService} from './api-service';\nimport {tierStructure} from './i18n-labels';\n\nconst arrayIterator = function* gen(arr) {\n yield* arr;\n};\n\nclass GroupLevelsFilter {\n constructor(maxLevel, showClasses = false, showThirdPartyConnected = true) {\n this.groups = [];\n this.allGroups = {};\n this.maxLevel = maxLevel;\n this.showClasses = showClasses;\n this.showThirdPartyConnected = showThirdPartyConnected;\n if (typeof maxLevel !== 'number') {\n throw new TypeError(`${this.constructor.name}.maxLevel: ${typeof maxLevel} is not a number`);\n }\n\n const state = storeInstance.getState();\n const orgMaxLevel = parseInt(state[sdoNs.SESSION].settings.tier_structure.levels, 10);\n if (maxLevel === orgMaxLevel && showClasses === true) {\n this.maxLevel += 1;\n } /** @todo needs to be fixed once api fixes their part or not */\n }\n\n _setSelected(subGroups, myGroups, levelLabelOverrides) {\n for (const [groupId, groupInfo] of Object.entries(subGroups)) {\n subGroups[groupId].selected = 0;\n subGroups[groupId].tier = (myGroups[parseInt(groupInfo.level, 10) + 1] || {label: tierStructure.CLASS}).label;\n subGroups[groupId].label = levelLabelOverrides?.[groupInfo.level] || '';\n if (groupInfo.hasOwnProperty('groups')) {\n subGroups[groupId].groups = Object.values(groupInfo.groups);\n this._setSelected(groupInfo.groups, myGroups, levelLabelOverrides);\n }\n }\n }\n\n async loadAllGroupsByParentPath(groupInfo, levelLabelOverrides) {\n const state = storeInstance.getState();\n const myGroups = state[sdoNs.SESSION].$myGroups;\n storeInstance.commit({\n namespace: sdoNs.SESSION,\n mutationId: 'setSelectedGroup',\n payload: groupInfo\n });\n const nestedGroups = await ApiService.groupListNestedByParent(groupInfo.id, this.showThirdPartyConnected);\n let subGroups;\n if (typeof nestedGroups.groups !== 'undefined') {\n subGroups = nestedGroups.groups[groupInfo.id].groups || nestedGroups.groups;\n this._setSelected(subGroups, myGroups, levelLabelOverrides);\n for (const [groupId, groupInfo] of Object.entries(subGroups)) {\n if (groupInfo.hasOwnProperty('groups')) {\n this._setSelected(groupInfo.groups, myGroups, levelLabelOverrides);\n }\n }\n this.allGroups = {\n id: groupInfo.id,\n name: groupInfo.name,\n path: groupInfo.path,\n level: groupInfo.level,\n selected: 0,\n label: levelLabelOverrides?.[groupInfo.level] || '',\n tier: (myGroups[parseInt(groupInfo.level, 10) + 1] || {label: tierStructure.CLASSES}).label,\n groups: Object.values(subGroups)\n };\n }\n return (subGroups) ?\n this.addGroupLevel(this.allGroups, groupInfo.level) :\n [];\n }\n\n getSelectedGroup() {\n if (this.groups.length) {\n const lastGroup = this.groups[this.groups.length - 1];\n return lastGroup.group_id;\n }\n const state = storeInstance.getState();\n return state[sdoNs.SESSION].current_role.group_id;\n }\n\n addGroupLevel(groupInfo, groupIndex) {\n let groupData;\n if (groupInfo.type === 'classroom') {\n groupData = {\n groups: [groupInfo],\n };\n } else {\n groupData = groupInfo;\n }\n if (groupData?.groups?.length) {\n this.groups = [\n ...this.groups.slice(0, groupIndex),\n groupData\n ];\n }\n return this.groups;\n }\n\n updateGroup(groupIndex, selectedGroup) {\n const groupData = {\n ...this.groups[groupIndex],\n selected: selectedGroup.id,\n label: selectedGroup.name\n };\n this.groups = [\n ...this.groups.slice(0, groupIndex),\n groupData\n ];\n // now saving all the group data in the selectedGroup key\n storeInstance.commit({\n namespace: sdoNs.SESSION,\n mutationId: 'setSelectedGroup',\n payload: selectedGroup\n });\n // This is the fix for school-level admins\n if (selectedGroup.level < this.maxLevel) {\n return this.addGroupLevel(selectedGroup, groupIndex + 1);\n }\n return Promise.resolve(this.groups);\n }\n\n loadSelectedGroups(selectedGroups) {\n return new Promise((resolve, reject) => {\n const selectedGroupsIterator = arrayIterator(selectedGroups);\n let index = 0;\n\n const loadNextGroup = async (iter) => {\n const next = iter.next();\n if (next.done) return resolve(this.groups);\n if (index < this.groups.length) {\n const itemIndex = this.groups[index].groups.findIndex((item) => item.id === selectedGroups[index]);\n if (itemIndex > -1) {\n const selectedGroup = this.groups[index].groups[itemIndex];\n this.updateGroup(index, selectedGroup);\n }\n }\n index += 1;\n loadNextGroup(selectedGroupsIterator);\n };\n\n loadNextGroup(selectedGroupsIterator);\n });\n }\n}\n\nexport {\n GroupLevelsFilter\n};\n","exports = module.exports = require(\"../../../../../node_modules/css-loader/dist/runtime/api.js\")(false);\n// Imports\nvar getUrl = require(\"../../../../../node_modules/css-loader/dist/runtime/getUrl.js\");\nvar ___CSS_LOADER_URL___0___ = getUrl(require(\"../../../../template/main/fonts/aofl-sans/aoflsans-light.woff2\"));\nvar ___CSS_LOADER_URL___1___ = getUrl(require(\"../../../../template/main/fonts/aofl-sans/aoflsans-lightit.woff2\"));\nvar ___CSS_LOADER_URL___2___ = getUrl(require(\"../../../../template/main/fonts/aofl-sans/aoflsans-reg.woff2\"));\nvar ___CSS_LOADER_URL___3___ = getUrl(require(\"../../../../template/main/fonts/aofl-sans/aoflsans-regit.woff2\"));\nvar ___CSS_LOADER_URL___4___ = getUrl(require(\"../../../../template/main/fonts/aofl-sans/aoflsans-sbold.woff2\"));\nvar ___CSS_LOADER_URL___5___ = getUrl(require(\"../../../../template/main/fonts/aofl-sans/aoflsans-sboldit.woff2\"));\nvar ___CSS_LOADER_URL___6___ = getUrl(require(\"../../../../template/main/fonts/aofl-sans/aoflsans-bold.woff2\"));\nvar ___CSS_LOADER_URL___7___ = getUrl(require(\"../../../../template/main/fonts/aofl-sans/aoflsans-boldit.woff2\"));\nvar ___CSS_LOADER_URL___8___ = getUrl(require(\"../../../../template/main/fonts/abcmouse-sans/ABCmouseSans-Light.woff2\"));\nvar ___CSS_LOADER_URL___9___ = getUrl(require(\"../../../../template/main/fonts/abcmouse-sans/ABCmouseSans-LightIt.woff2\"));\nvar ___CSS_LOADER_URL___10___ = getUrl(require(\"../../../../template/main/fonts/abcmouse-sans/ABCmouseSans-Regular.woff2\"));\nvar ___CSS_LOADER_URL___11___ = getUrl(require(\"../../../../template/main/fonts/abcmouse-sans/ABCmouseSans-RegularIt.woff2\"));\nvar ___CSS_LOADER_URL___12___ = getUrl(require(\"../../../../template/main/fonts/abcmouse-sans/ABCmouseSans-Semibold.woff2\"));\nvar ___CSS_LOADER_URL___13___ = getUrl(require(\"../../../../template/main/fonts/abcmouse-sans/ABCmouseSans-SemiboldIt.woff2\"));\nvar ___CSS_LOADER_URL___14___ = getUrl(require(\"../../../../template/main/fonts/abcmouse-sans/ABCmouseSans-Bold.woff2\"));\nvar ___CSS_LOADER_URL___15___ = getUrl(require(\"../../../../template/main/fonts/abcmouse-sans/ABCmouseSans-BoldIt.woff2\"));\nvar ___CSS_LOADER_URL___16___ = getUrl(require(\"../../../../template/main/fonts/abcmouse-sans/ABCmouseSans-ExtraBold.woff2\"));\nvar ___CSS_LOADER_URL___17___ = getUrl(require(\"../../../../template/main/fonts/abcmouse-sans/ABCmouseSans-ExtraBoldIt.woff2\"));\nvar ___CSS_LOADER_URL___18___ = getUrl(require(\"../../../../template/main/fonts/aofl-icons/icomoon.woff2?c6f21u\"));\n// Module\nexports.push([module.id, \"/*! @aofl-component */:root{--blue:#0d6efd;--indigo:#6610f2;--purple:#8b42ca;--pink:#e83e8c;--red:#e50b0a;--orange:#e17a05;--yellow:#ffc107;--green:#3c8104;--teal:#20c997;--cyan:#53c9dc;--white:#fff;--gray:#6b6b6b;--gray-dark:#343a40;--light-green:#b1dd53;--table-border-color:#d8d8d8;--gray-100:#f2f2f2;--gray-200:#d9d9d9;--gray-300:#d8d8d8;--gray-400:#ced4da;--gray-500:#adb5bd;--gray-600:#6c757d;--gray-700:#4a4a4a;--gray-800:#343a40;--gray-900:#212529;--gray-accessibility:#6b6b6b;--primary:#0d6efd;--secondary:#adb5bd;--success:#3c8104;--info:#cfe2ff;--warning:#e17a05;--danger:#d20a09;--light:#f8f9fa;--dark:#000;--breakpoint-xxs:0;--breakpoint-xs:375px;--breakpoint-sm:576px;--breakpoint-md:768px;--breakpoint-lg:992px;--breakpoint-xl:1200px;--font-family-sans-serif:aofl-sans,Arial,Helvetica,sans-serif;--font-family-monospace:SFMono-Regular,Menlo,Monaco,Consolas,\\\"Liberation Mono\\\",\\\"Courier New\\\",monospace;--z-index-dropdown:1000;--z-index-sticky:1020;--z-index-fixed:1030;--z-index-modal-backdrop:1040;--z-index-modal:1050;--z-index-popover:1060;--z-index-tooltip:1070;--header-height:6rem;--content-height:calc(100vh - 6rem);--sidepanel-width:20rem;--purple-color:#641da3;--purple-600:#956abc;--purple-400:#c7afdd;--purple-200:#e0d2ed;--struggling:#f6993b;--below-target:#ffcf00;--in_progress:#1280f5;--prior_knowledge:#edf887;--mastery_achieved:#69d112;--inactive:#d8d8d8}route-view{max-width:1200px}@font-face{font-family:aofl-sans;font-style:normal;font-weight:300;src:url(\" + ___CSS_LOADER_URL___0___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:italic;font-weight:300;src:url(\" + ___CSS_LOADER_URL___1___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:normal;font-weight:400;src:url(\" + ___CSS_LOADER_URL___2___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:italic;font-weight:400;src:url(\" + ___CSS_LOADER_URL___3___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:normal;font-weight:600;src:url(\" + ___CSS_LOADER_URL___4___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:italic;font-weight:600;src:url(\" + ___CSS_LOADER_URL___5___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:normal;font-weight:700;src:url(\" + ___CSS_LOADER_URL___6___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:italic;font-weight:700;src:url(\" + ___CSS_LOADER_URL___7___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:normal;font-weight:300;src:url(\" + ___CSS_LOADER_URL___8___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:italic;font-weight:300;src:url(\" + ___CSS_LOADER_URL___9___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:normal;font-weight:400;src:url(\" + ___CSS_LOADER_URL___10___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:italic;font-weight:400;src:url(\" + ___CSS_LOADER_URL___11___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:normal;font-weight:600;src:url(\" + ___CSS_LOADER_URL___12___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:italic;font-weight:600;src:url(\" + ___CSS_LOADER_URL___13___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:normal;font-weight:700;src:url(\" + ___CSS_LOADER_URL___14___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:italic;font-weight:700;src:url(\" + ___CSS_LOADER_URL___15___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:normal;font-weight:800;src:url(\" + ___CSS_LOADER_URL___16___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:italic;font-weight:800;src:url(\" + ___CSS_LOADER_URL___17___ + \") format(\\\"woff2\\\")}@font-face{font-family:icomoon;src:url(\" + ___CSS_LOADER_URL___18___ + \") format(\\\"woff2\\\");font-weight:400;font-style:normal;font-display:block}[class*=\\\" ai-\\\"],[class^=ai-]{font-family:icomoon!important;speak:never;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*,:after,:before{box-sizing:border-box}html{font-family:sans-serif;line-height:1.15;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:rgba(0,0,0,0)}figcaption,main,nav,section{display:block}[tabindex=\\\"-1\\\"]:focus{outline:0!important}strong{font-weight:bolder}caption{padding-top:.75rem;padding-bottom:.75rem;color:#6c757d;text-align:left;caption-side:bottom}button{border-radius:0}button:focus{outline:1px dotted;outline:5px auto -webkit-focus-ring-color}button,input{margin:0;font-family:inherit;font-size:inherit;line-height:inherit;overflow:visible}button{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]:not(:disabled),[type=reset]:not(:disabled),[type=submit]:not(:disabled),button:not(:disabled){cursor:pointer}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{padding:0;border-style:none}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}input[type=date],input[type=datetime-local],input[type=month],input[type=time]{-webkit-appearance:listbox}legend{display:block;width:100%;max-width:100%;padding:0;margin-bottom:.5rem;font-size:1.5rem;line-height:inherit;color:inherit;white-space:normal}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:none}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}summary{display:list-item;cursor:pointer}template{display:none}[hidden]{display:none!important}*{-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important}html{font-size:62.5%;height:100%}link-to{color:#0d6efd;text-decoration:none;background-color:transparent}link-to:hover{color:rgb(0,86.1,178.5);text-decoration:none;cursor:pointer}route-view{display:none;flex:1}site-header{background-color:#fff;display:none;position:-webkit-sticky;position:sticky;top:0;height:var(--header-height)}#main{display:none;flex:1 auto;max-width:100%;overflow:hidden;flex-direction:column;overflow-y:scroll}.loaded #main,.loaded site-header,body.loaded,route-view.loaded{display:flex}route-view.left-panel-active{padding-left:var(--sidepanel-width)}@media (max-width:767.98px){#content{padding-left:0!important}}input[type=checkbox],input[type=radio]{cursor:pointer}button,button:active{outline:none}[tabindex=\\\"0\\\"]:focus-visible,aofl-list-option:focus-visible,button[type=button]:focus-visible,collapse-button:focus-visible{outline:1px solid #e50b0a;border:1px solid #e50b0a}@keyframes progress-bar-stripes{0%{background-position:1.6rem 0}to{background-position:0 0}}.modal{z-index:1050;display:none;width:100%;height:100%;overflow:hidden;outline:0}.modal,.modal-container{position:fixed;top:0;left:0}.modal-container{background-color:rgba(0,0,0,.2);bottom:0;right:0;z-index:var(--z-index-modal)}.modal-container :first-child{overflow:auto}.modal{position:relative;display:block;height:100vh}.modal-dialog-centered.modal-dialog-scrollable{height:auto;max-height:calc(100% - 2.8rem);min-height:auto}.modal-body,.modal-content,.modal-footer,.modal-header{border:none}.modal-header{font-size:2rem;padding:2.4rem}.modal-body{padding:0 2.4rem 4.8rem}.colored-header{color:#fff}.modal-body p{text-align:left}.colored-header-primary{background-color:#0d6efd}.colored-header-secondary{background-color:#adb5bd}.colored-header-success{background-color:#3c8104}.colored-header-info{background-color:#cfe2ff}.colored-header-warning{background-color:#e17a05}.colored-header-danger{background-color:#d20a09}.colored-header-light{background-color:#f8f9fa}.colored-header-dark{background-color:#000}@keyframes spinner-border{to{transform:rotate(1turn)}}@keyframes spinner-grow{0%{transform:scale(0)}50%{opacity:1}}.font-weight-bold{font-weight:700!important}[hidden]{visibility:hidden!important;height:0!important;width:0!important;min-height:unset!important}@media print{*,:after,:before{text-shadow:none!important;box-shadow:none!important}@page{size:a3}}@media print{main::-webkit-scrollbar{display:none}main{-ms-overflow-style:none;scrollbar-width:none}}@page{size:A4;margin:20mm 16mm 20mm 16mm}button{background-color:#00f;border:none;border-radius:50%;text-align:center;padding:0;font-size:inherit;height:inherit;width:inherit}\", \"\"]);\n","import SessionActions from '@modules/session-sdo';\nimport {SimpleModal} from '@modules/simple-modal';\nimport {\n localStorageKeys,\n modals,\n pages,\n landingPageProducts,\n sdoNs,\n userTypes,\n products\n} from '@modules/constants-enumerate';\nimport {storeInstance} from '@aofl/store/dist/legacy';\nimport {routerInstance} from '@aofl/router';\nimport {Toast} from '@modules/toast';\nimport {I18n} from '@aofl/i18n';\nimport translations from '@modules/i18n';\nimport {toastStatus} from '@modules/i18n-labels';\n\nclass LoginActions {\n i18n = {};\n\n constructor() {\n this.i18n = new I18n(translations);\n this.i18n.lang = localStorage.getItem(localStorageKeys.LANG);\n storeInstance.subscribe(() => {\n const state = storeInstance.getState();\n this.i18n.lang = state[sdoNs.SESSION].locale;\n });\n }\n\n static isCurrentMasteryProduct(aoflProducts) {\n return aoflProducts[products.MY_MATH_ACADEMY]\n || aoflProducts[products.MY_READING_ACADEMY]\n || aoflProducts[products.MY_READING_ACADEMY_ES];\n }\n\n static async login(username, password, url = '', mfaRemember = false, mfaMethod = '', mfaToken = '') {\n const data = await SessionActions.login(username, password, mfaRemember, mfaMethod, mfaToken);\n data.username = username;\n data.password = password;\n await this.handleLogin(data, url);\n }\n\n static async handleLogin(data, url) {\n if (url === '' || url === pages.DASHBOARD || url === pages.LANDING) {\n // route to landing or dashboard here\n let showLanding = false;\n let routeToLanding = false;\n for (const product of landingPageProducts) {\n const hasProduct = data.session.settings.aofl_products[product] !== undefined\n ? data.session.settings.aofl_products[product]\n : false;\n if (hasProduct) {\n showLanding = true;\n routeToLanding = true;\n }\n }\n\n if (data.session.settings.aofl_products[products.MATH_ACADEMY]) {\n routeToLanding = false;\n }\n\n url = (showLanding && routeToLanding) ? pages.LANDING : pages.DASHBOARD;\n // go to the new getting started page if you are part of the current mastery product and has no roster data\n if (\n data.session.settings.has_roster_data === false\n && this.isCurrentMasteryProduct(data.session.settings.aofl_products)\n ) {\n url = pages.GETTING_STARTED;\n }\n }\n\n // multi-factor auth\n if (data.session === null || data.mfa_status === 'required-not-configured') {\n if (data.mfa_status === 'active' || data.mfa_status === 'required') {\n SimpleModal.show(modals.MFA_ENTER, {'username': data.username, 'password': data.password, 'email': data.email, 'phone': data.phone, 'mfa_method': data.mfa_method, 'mfa_available_methods': data.mfa_available_methods, 'mfa_required': data.mfa_status});\n return;\n } else if (data.mfa_status === 'required-not-configured') {\n SimpleModal.show(modals.MFA_SETUP, {'username': data.username, 'password': data.password, 'id': data.session.user_info.id, 'email': data.session.user_info.email, 'phone': data.session.user_info.phone, 'mfa_method': data.mfa_method, 'mfa_available_methods': data.mfa_available_methods});\n return;\n }\n if (mfaToken !== '') {\n Toast.error(toastStatus.oops);\n }\n }\n localStorage.setItem('group_id', data.session.current_role.group_id);\n\n if (data.session.user_info?.type === userTypes.PARENT) {\n routerInstance.navigate(pages.PARENT_DASHBOARD, {});\n } else if (data.session.redirect_uri) {\n window.location.href = data.session.redirect_uri;\n } else {\n routerInstance.navigate(url, {});\n }\n\n // Get Session Data, show notification\n if (data.session.user_info.type === userTypes.TEACHER && data.session.user_profiles.length > 1) {\n for (let i = 0; i < data.session.user_profiles.length; i++) {\n const profile = data.session.user_profiles[i];\n if (profile.last_used === 0) {\n Toast.success(this.i18n._r(await this.i18n.__('', 'You have been granted access to %r1%.'), profile.group_name));\n }\n }\n }\n }\n}\n\nexport {\n LoginActions\n};\n","import {until} from 'lit-html/directives/until';\nimport {rosterErrors} from '../../../../modules/constants-enumerate';\nimport {rosterErrorLabels} from '../../../../modules/i18n-labels';\n\nexport default (ctx, html) => html`\n

${until(ctx.__('', 'Please correct the following rows in your CSV and reupload your updated CSV'))}

\n
\n ${ctx.errors.map((error) => html`\n ${error.type === rosterErrors.CSV_INVALID_COLUMN_COUNT? html`\n
\n
\n
\n
${until(rosterErrorLabels[error.type])}
\n
${until(ctx.__('', 'Row'))} ${error.payload.line}
\n
\n

\n ${until(ctx.__('', 'If you want to use our template,'))} ${until(ctx.__('', 'download it here'))}.\n

\n
\n
\n `: ''}\n `)}\n
`;\n","import styles from './template.css';\nimport template from './template';\nimport {AoflElement, customElement, property} from '@aofl/element';\nimport {i18nMixin} from '@aofl/i18n-mixin';\nimport {mapStatePropertiesMixin} from '@aofl/map-state-properties-mixin';\nimport translations from '../../i18n';\nimport {storeInstance} from '@aofl/store/dist/legacy';\nimport {rosterErrors, sdoNs} from '@modules/constants-enumerate';\nimport {RosterUtils} from '@modules/roster-utils';\n\n/**\n * @summary InvalidColumnCount\n * @extends {mapStatePropertiesMixin(i18nMixin(AoflElement))}\n */\n@customElement('invalid-column-count')\nclass InvalidColumnCount extends mapStatePropertiesMixin(i18nMixin(AoflElement)) {\n /**\n * Creates an instance of InvalidColumnCount.\n */\n constructor() {\n super();\n this.translations = translations;\n this.storeInstance = storeInstance;\n }\n\n /**\n * @readonly\n */\n static is = 'invalid-column-count';\n @property({type: Boolean})\n show = false;\n @property({type: Array})\n errors = [];\n @property({type: String, mapState: `${sdoNs.SESSION}.group_info.level`, store: storeInstance})\n group_info_level = 0;\n @property({type: Object})\n roster = {};\n @property({type: Boolean})\n useActiveRoster = false;\n\n async getRosterTemplate() {\n await RosterUtils.getRosterTemplate('aofl');\n }\n\n mapStateProperties() {\n if (this.useActiveRoster) {\n const state = this.storeInstance.getState();\n\n this.show = state[sdoNs.USER_JOBS].$rosterInvalidColumnCountError;\n if (this.show) {\n this.errors = state[sdoNs.USER_JOBS].$activeRosterJob.errors;\n }\n }\n }\n\n connectedCallback() {\n super.connectedCallback();\n if (this.roster?.id) {\n this.useActiveRoster = false;\n this.show = this.hasInvalidColumnCountError();\n if (this.show) {\n this.errors = this.roster.errors;\n }\n }\n else {\n this.useActiveRoster = true;\n }\n }\n\n hasInvalidColumnCountError() {\n if (Array.isArray(this.roster?.errors) &&\n this.roster.errors.length > 0) {\n return this.roster.errors.some((item) => {\n return item.type === rosterErrors.CSV_INVALID_COLUMN_COUNT;\n });\n }\n return false;\n }\n\n /**\n *\n * @return {Object}\n */\n render() {\n if (this.show) {\n return super.render({\n default: {template, styles: [styles]}\n });\n }\n return super.render({\n default: {template: () => '', styles: [':host {display: none;}']}\n });\n }\n}\n\nexport default InvalidColumnCount;\n","import '@modules/legend-element';\n\nexport default (ctx, html) => html`\n \n`;\n","import styles from './template.css';\nimport template from './template';\nimport {AoflElement, customElement} from '@aofl/element';\nimport {\n colorMap,\n} from '@modules/constants-enumerate';\nimport {dashboardLabels} from '@modules/i18n-labels';\nimport {property} from 'lit-element';\n\n/**\n * @summary NodeStatusLegend\n * @extends {AoflElement}\n */\n@customElement('node-status-legend')\nclass NodeStatusLegend extends AoflElement {\n /**\n * Creates an instance of LegendElement.\n */\n constructor() {\n super();\n }\n\n @property({type: Array})\n legend = [\n {\n color: colorMap.prior_knowledge,\n label: dashboardLabels.PRIOR_KNOWLEDGE,\n },\n {\n color: colorMap.mastery_achieved,\n label: dashboardLabels.COMPLETED,\n },\n {\n color: colorMap.in_progress,\n label: dashboardLabels.IN_PROGRESS,\n },\n {\n color: colorMap.struggling,\n label: dashboardLabels.STRUGGLING,\n },\n ];\n\n /**\n * @readonly\n */\n static is = 'node-status-legend';\n\n /**\n *\n * @return {Object}\n */\n render() {\n return super.render(template, [styles]);\n }\n}\n\nexport default NodeStatusLegend;\n","module.exports = \"\"","import {until} from 'lit-html/directives/until';\nimport {repeat} from 'lit-html/directives/repeat';\n\nexport default (ctx, html) => html`\n \n \n \n ${!ctx['disable-selection'] ? html`\n ` : ''}\n ${ctx.config.map((item, index) => item.disabled ? '' : html`\n \n `)}\n \n \n \n ${repeat(ctx.results, (res) => res.id, (result, index) => html`\n\n (e.code === 'Enter' || e.code === 'Space') ? ctx.rowClicked(e, index, result): null}\" @click=\"${(e) => ctx.rowClicked(e, index, result)}\" class=\"${ctx['row-classlist']} outline-focus-red\">\n ${!ctx['disable-selection'] ? html`` : ''}\n ${ctx.config.map((item) => item.disabled ? '' : html``)}\n \n `)}\n \n
\n \n
\n
\n \n \n
\n
\n
\n
(e.key === 'Enter') ? ctx.toggleAll(e, 'all'): null}\" @click=\"${(e) => ctx.toggleAll(e, 'all')}\">${until(ctx.__('', 'Select All'))}
\n
(e.key === 'Enter') ? ctx.togglePage(e, 'page', ctx): null}\" @click=\"${(e) => ctx.togglePage(e, 'page', ctx)}\">${until(ctx.__('', 'Select Page'))}
\n
\n
\n
\n ${item.sortable ? html` ctx.sortBy(e, index, item)}\" @keypress=\"${(e) => (e.key === 'Enter') ? ctx.sortBy(e, index, item): null}\">${until(item.label)}` : until(item.label)}\n
e.stopPropagation()}\" class=\"cursor-default\">\n
\n ctx.rowToggle(e, index, result)}\">\n \n
\n
${\n typeof item.render === 'function' ? item.render(html, result, index) : result[item.key]}
\n`;\n","import styles from './template.css';\nimport template from './template';\nimport {AoflElement, customElement, property} from '@aofl/element';\nimport {storeInstance} from '@aofl/store/dist/legacy';\nimport {query} from 'lit-element';\nimport {i18nMixin} from '@aofl/i18n-mixin';\nimport translations from '@modules/i18n';\n\n/**\n * @summary DataTable\n * @extends {i18nMixin(AoflElement)}\n */\n@customElement('data-table')\nclass DataTable extends i18nMixin(AoflElement) {\n @query('ems-dropdown')\n selectDropdown;\n\n @property({type: String})\n selectionMode = null;\n\n /**\n * Creates an instance of DataTable.\n */\n constructor() {\n super();\n this.storeInstance = storeInstance;\n this.translations = translations;\n }\n\n /**\n * @readonly\n */\n static is = 'data-table';\n\n @property({type: Array, attribute: false, hasChanged(val, oldVal) {\n if (typeof oldVal === 'undefined') return false;\n return oldVal !== val;\n }})\n results = [];\n\n @property({type: Array, attribute: false})\n config = [];\n\n @property({type: Array, attribute: true})\n styles = [];\n\n @property({type: Boolean})\n ['select-all'] = false;\n\n @property({type: Boolean})\n ['disable-selection'] = false;\n\n @property({type: String})\n ['row-classlist'] = '';\n\n @property({type: String})\n ['aria-label'] = '';\n\n sortBy(e, index, item) {\n if (item.sortable !== true) return;\n this.dispatchEvent(new CustomEvent('change-sort', {\n detail: {index, item},\n composed: true\n }));\n }\n\n rowClicked(e, index, data) {\n this.dispatchEvent(new CustomEvent('row-click', {\n detail: {index, data, e: e},\n composed: true\n }));\n }\n\n rowToggle(e, index, data) {\n this.dispatchEvent(new CustomEvent('row-toggle', {\n detail: {index, data, checked: e.target.checked},\n composed: true\n }));\n }\n\n toggleSelectMenu(e) {\n e.preventDefault();\n e.stopPropagation();\n\n if (!this['select-all']) {\n this.selectDropdown.toggle(e);\n } else {\n this['select-all'] = false;\n this.dispatchEvent(new CustomEvent('all-toggle', {\n detail: {\n checked: false,\n selectionMode: this.selectionMode,\n },\n composed: true\n }));\n this.selectionMode = null;\n }\n }\n\n toggleAll(e, selectionMode) {\n this['select-all'] = !e.target.checked;\n this.dispatchEvent(new CustomEvent('all-toggle', {\n detail: {\n checked: this['select-all'],\n selectionMode\n },\n composed: true\n }));\n }\n\n togglePage(e, selectionMode) {\n this['select-all'] = !e.target.checked;\n this.dispatchEvent(new CustomEvent('page-toggle', {\n detail: {\n checked: this['select-all'],\n selectionMode\n },\n composed: true\n }));\n }\n\n\n\n togglePersistentSelection(e, selectionMode) {\n this.dispatchEvent(new CustomEvent('persistent-selection-toggle', {\n detail: {\n checked: this['select-all'],\n selectionMode\n },\n composed: true\n }));\n }\n\n /**\n *\n * @return {Object}\n */\n render() {\n return super.render({\n default: {template, styles: [styles, this.styles]}\n });\n }\n}\n\nexport default DataTable;\n","import {storeInstance} from '@aofl/store/dist/legacy';\nimport {\n activationStartType,\n licenseTypes,\n sdoNs\n} from './constants-enumerate';\nimport {deepAssign} from '@aofl/object-utils';\nimport {\n accessibleProductLabels,\n generalLabels,\n licenseHomeAccessTypeLabels\n} from './i18n-labels';\nimport {until} from 'lit-html/directives/until';\n\nconst sdo = {\n namespace: sdoNs.LICENSES,\n mutations: {\n init() {\n return {\n queryObj: {\n sort: {},\n filters: {},\n persistent_selection: [],\n },\n searchTargetUrl: '',\n tableConfig: [],\n hasMore: false,\n licenses: [],\n loading: false,\n details: null,\n currentGroupLicenseCount: null,\n childGroupsLicenseCount: null,\n loadingDetails: false,\n distributionLog: [],\n assignmentLog: [],\n licenseAllocations: [],\n licenseAllocationGroupPathsRetrieved: [],\n };\n },\n updateSortOrder(subState, {index, field}) {\n let direction = subState.queryObj.sort.direction;\n if (direction === 'asc') {\n direction = 'desc';\n } else if (direction === 'desc') {\n direction = '';\n } else {\n direction = 'asc';\n }\n\n let fields = [field, 'id'];\n if (direction === '') fields = ['id'];\n\n return deepAssign(subState, 'queryObj.sort', {\n direction,\n fields: fields\n });\n },\n setDetails(subState, details) {\n return deepAssign(subState, '', {\n details: details.license_details,\n childGroupsLicenseCount: details.child_group_license_count,\n currentGroupLicenseCount: details.current_group_license_count,\n });\n },\n },\n decorators: [\n (nextState) => { // $licenses\n const currState = storeInstance.getState()[sdoNs.LICENSES];\n if (\n typeof nextState[sdoNs.LICENSES].$licenses === 'undefined' ||\n currState.licenses !== nextState[sdoNs.LICENSES].licenses\n ) {\n const $licenses = nextState[sdoNs.LICENSES].licenses.map((item) => {\n const licenseType = (item.expiration_type === 'duration') ?\n until(generalLabels.DurationLabel) :\n (item.expired) ?\n until(generalLabels.FixedEndDateExpiredLabel) :\n until(generalLabels.FixedEndDateLabel);\n return {\n id: item.id,\n license_name: item.name,\n license_type: licenseType,\n product: accessibleProductLabels[item.product],\n home_access_type: licenseHomeAccessTypeLabels[item.access_type],\n status: item.status,\n total: item.total,\n available: item.available,\n redeemed: item.redeemed,\n assigned: item.assigned,\n group_total: item.group_total,\n group_available: item.group_available,\n group_assigned: item.group_assigned,\n transferable: (item.transferable) ? until(generalLabels.Yes) : until(generalLabels.No),\n expired: item.expired,\n fspk: item.fspk\n };\n });\n nextState = deepAssign(nextState, sdoNs.LICENSES, {$licenses});\n }\n return nextState;\n },\n (nextState) => { // $orderedLicenseAllocations\n const currState = storeInstance.getState()[sdoNs.LICENSES];\n if (\n typeof nextState[sdoNs.LICENSES].$orderedLicenseAllocations === 'undefined' ||\n currState.licenseAllocations !== nextState[sdoNs.LICENSES].licenseAllocations\n ) {\n const $orderedLicenseAllocations = {};\n nextState[sdoNs.LICENSES].licenseAllocations.map((allocation) => {\n\n let fullPath = allocation.group_path;\n if (fullPath === '') {\n fullPath = allocation.group_id + '.';\n }\n if (typeof $orderedLicenseAllocations[fullPath] === 'undefined') {\n $orderedLicenseAllocations[fullPath] = [];\n }\n $orderedLicenseAllocations[fullPath].push(allocation);\n });\n nextState = deepAssign(nextState, sdoNs.LICENSES, {$orderedLicenseAllocations});\n\n }\n return nextState;\n },\n (nextState) => { // prev search query\n const state = storeInstance.getState();\n const nextSubState = nextState[sdoNs.LICENSES];\n const subState = state[sdoNs.LICENSES];\n\n if (typeof nextSubState.$prevQueryObj === 'undefined' || nextSubState.queryObj !== subState.queryObj) {\n const $prevQueryObj = subState.queryObj;\n\n nextState = deepAssign(nextState, `${sdoNs.LICENSES}`, {$prevQueryObj});\n }\n\n return nextState;\n },\n (nextState) => { // prev pointer items\n const state = storeInstance.getState();\n const nextSubState = nextState[sdoNs.LICENSES];\n const subState = state[sdoNs.LICENSES];\n\n if (typeof nextSubState.$prev === 'undefined' || nextSubState.licenses !== subState.licenses) {\n let $prev = '';\n if (nextSubState.licenses.length > 0) {\n $prev = nextSubState.licenses[0]; /** @todo assign needed props */\n }\n\n nextState = deepAssign(nextState, `${sdoNs.LICENSES}`, {$prev});\n }\n\n return nextState;\n },\n (nextState) => { // next pointer items\n const state = storeInstance.getState();\n const nextSubState = nextState[sdoNs.LICENSES];\n const subState = state[sdoNs.LICENSES];\n\n if (typeof nextSubState.$next === 'undefined' ||\n nextSubState.licenses !== subState.licenses) {\n let $next = '';\n if (nextSubState.licenses.length > 0) {\n $next = nextSubState.licenses[nextSubState.licenses.length - 1]; /** @todo assign needed props */\n }\n\n nextState = deepAssign(nextState, `${sdoNs.LICENSES}`, {$next});\n }\n\n return nextState;\n },\n (nextState) => { // $sort to make api call\n const state = storeInstance.getState();\n\n const nextSubState = nextState[sdoNs.LICENSES];\n const subState = state[sdoNs.LICENSES];\n\n if (typeof nextSubState.$sort === 'undefined' ||\n nextSubState.queryObj.sort !== subState.queryObj.sort) {\n const $sort = Object.assign({}, nextSubState.queryObj.sort);\n if ($sort.direction === '') {\n $sort.direction = 'asc';\n }\n\n nextState = deepAssign(nextState, sdoNs.LICENSES, {\n $sort\n });\n }\n\n return nextState;\n },\n (nextState) => { // $pageNumber\n const state = storeInstance.getState();\n const nextSubState = nextState[sdoNs.LICENSES];\n const subState = state[sdoNs.LICENSES];\n\n if (\n typeof nextSubState.$pageNumber === 'undefined'\n ||\n nextSubState.hasMore !== subState.hasMore\n ||\n nextSubState.$sort !== subState.$sort\n ) {\n const hasOffset = Boolean(nextSubState.$sort.last_values);\n let $pageNumber = 1;\n let $numPages = 3;\n\n if (nextSubState.$sort.is_forward) {\n if (hasOffset) {\n $pageNumber = 2;\n }\n\n if (!nextSubState.hasMore) {\n $numPages = $pageNumber;\n }\n } else {\n $pageNumber = nextSubState.hasMore ? 2 : 1;\n }\n\n nextState = deepAssign(nextState, `${sdoNs.LICENSES}`, {$pageNumber, $numPages});\n }\n\n return nextState;\n },\n (nextState) => { // $licensesByProduct\n const currState = storeInstance.getState()[sdoNs.LICENSES];\n if (\n typeof nextState[sdoNs.LICENSES].$licensesByProduct === 'undefined' ||\n currState.licenses !== nextState[sdoNs.LICENSES].licenses\n ) {\n const $licensesByProduct = {};\n const licenses = nextState[sdoNs.LICENSES].licenses;\n\n for (let i = 0; i < licenses.length; i++) {\n const license = licenses[i];\n\n if (typeof $licensesByProduct[license.product] === 'undefined') {\n $licensesByProduct[license.product] = [];\n }\n\n $licensesByProduct[license.product].push({\n id: license.id,\n license_name: license.name,\n license_type: licenseTypes[license.type],\n expiration_type: license.expiration_type,\n transferable: license.transferable,\n fspk: license.fspk,\n home_access_type: licenseHomeAccessTypeLabels[license.access_type],\n status: license.status,\n total: license.total,\n available: license.available,\n test: license.test || false,\n expired: license.expired,\n group_total: license.group_total,\n group_available: license.group_available,\n group_assigned: license.group_assigned,\n });\n }\n\n nextState = deepAssign(nextState, sdoNs.LICENSES, {$licensesByProduct});\n }\n return nextState;\n },\n (nextState) => { // $summary\n const currState = storeInstance.getState()[sdoNs.LICENSES];\n if (\n typeof nextState[sdoNs.LICENSES].$summary === 'undefined' ||\n currState.licenses !== nextState[sdoNs.LICENSES].licenses\n ) {\n const $summary = {};\n nextState[sdoNs.LICENSES].licenses.forEach((license) => {\n if (!$summary[license.product]) {\n $summary[license.product] = {\n total: 0,\n assigned: 0,\n available: 0\n };\n }\n $summary[license.product].total += license.total;\n $summary[license.product].available += license.available;\n $summary[license.product].assigned += license.assigned;\n });\n nextState = deepAssign(nextState, sdoNs.LICENSES, {$summary});\n }\n return nextState;\n },\n (nextState) => { // $details\n const currState = storeInstance.getState()[sdoNs.LICENSES];\n if (\n typeof nextState[sdoNs.LICENSES].$details === 'undefined' ||\n currState.details !== nextState[sdoNs.LICENSES].details\n ) {\n const details = nextState[sdoNs.LICENSES].details || {\n id: 0,\n name: '',\n access_data: {\n expiration: '',\n refundable: '',\n expiration_type: '',\n activation_start: null,\n external_access_type: '',\n activation_start_type: '',\n auto_license: false,\n },\n aofl_product: '',\n type: ''\n\n };\n const $details = {\n id: Number(details.id) || 0,\n activation_start_type: details.access_data?.activation_start_type,\n product: details.aofl_product || '',\n access_type: details.access_data?.external_access_type || '',\n test: details.access_data.test || false,\n type: details.type || '',\n name: details.name || '',\n fixed_duration: '',\n fixed_end_date: '',\n start_date: '',\n expired: details.expired || false,\n transferable: details.access_data?.transferable || false,\n fspk: details.access_data?.fspk || false,\n auto_license: details.access_data?.auto_license || false\n };\n\n if (details.access_data.expiration_type === 'duration') {\n $details.fixed_duration = details.access_data.expiration;\n } else if (details.access_data.expiration_type === 'fixed_end_date') {\n $details.fixed_end_date = new Date(parseInt(details.access_data.expiration, 10) * 1000).toLocaleDateString();\n $details.start_date = new Date(\n parseInt(details.access_data.activation_start, 10) * 1000\n ).toLocaleDateString();\n }\n\n nextState = deepAssign(nextState, sdoNs.LICENSES, {$details});\n }\n return nextState;\n },\n (nextState) => { // $distributionLog\n const state = storeInstance.getState();\n const currState = state[sdoNs.LICENSES];\n const nextSessionState = nextState[sdoNs.SESSION];\n if (\n typeof nextState[sdoNs.LICENSES].$distributionLog === 'undefined' ||\n currState.distributionLog !== nextState[sdoNs.LICENSES].distributionLog ||\n state[sdoNs.SESSION].locale !== nextState[sdoNs.SESSION].locale\n ) {\n const dateOptions = {year: 'numeric', month: 'short', day: 'numeric', hour: '2-digit', minute: '2-digit'};\n const $distributionLog = nextState[sdoNs.LICENSES].distributionLog.map((item) =>\n Object.assign({}, item, {\n date: new Date(item.timestamp * 1000).toLocaleDateString(nextState[sdoNs.SESSION].locale, dateOptions),\n $toGroupLabel: nextSessionState.settings.tier_structure.labels[item.to_group_level - 2],\n })\n );\n nextState = deepAssign(nextState, sdoNs.LICENSES, {$distributionLog});\n }\n return nextState;\n },\n (nextState) => { // $assessmentLog\n const state = storeInstance.getState();\n const currState = state[sdoNs.LICENSES];\n if (\n typeof nextState[sdoNs.LICENSES].$assignmentLog === 'undefined' ||\n currState.assignmentLog !== nextState[sdoNs.LICENSES].assignmentLog ||\n state[sdoNs.SESSION].locale !== nextState[sdoNs.SESSION].locale\n ) {\n const dateOptions = {year: 'numeric', month: 'short', day: 'numeric', hour: '2-digit', minute: '2-digit'};\n const $assignmentLog = nextState[sdoNs.LICENSES].assignmentLog.map((item) =>\n Object.assign({}, item, {\n date: new Date(item.timestamp * 1000).toLocaleDateString(nextState[sdoNs.SESSION].locale, dateOptions)\n })\n );\n nextState = deepAssign(nextState, sdoNs.LICENSES, {$assignmentLog});\n }\n return nextState;\n },\n (nextState) => { // $maxLevel\n const state = storeInstance.getState();\n const subState = state[sdoNs.SESSION];\n const nextSubState = nextState[sdoNs.SESSION];\n\n if (typeof nextState.$maxLevel === 'undefined' ||\n nextSubState.settings.tier_structure.levels !== subState.settings.tier_structure.levels) {\n const $maxLevel = parseInt(nextSubState.settings.tier_structure.levels, 10);\n\n nextState = deepAssign(nextState, sdoNs.LICENSES, {$maxLevel});\n }\n\n return nextState;\n },\n (nextState) => { // $licenseAllocations\n const state = storeInstance.getState();\n const subState = state[sdoNs.SESSION];\n const nextSubState = nextState[sdoNs.SESSION];\n\n if (typeof nextState.$licenseAllocations === 'undefined' ||\n nextSubState.licenseAllocations !== subState.licenseAllocations) {\n const $licenseAllocations = [];\n nextState = deepAssign(nextState, sdoNs.LICENSES, {$licenseAllocations});\n }\n\n return nextState;\n }\n ]\n};\n\nstoreInstance.addState(sdo);\n","exports = module.exports = require(\"../../../../node_modules/css-loader/dist/runtime/api.js\")(false);\n// Imports\nvar getUrl = require(\"../../../../node_modules/css-loader/dist/runtime/getUrl.js\");\nvar ___CSS_LOADER_URL___0___ = getUrl(require(\"../../../template/main/fonts/aofl-sans/aoflsans-light.woff2\"));\nvar ___CSS_LOADER_URL___1___ = getUrl(require(\"../../../template/main/fonts/aofl-sans/aoflsans-lightit.woff2\"));\nvar ___CSS_LOADER_URL___2___ = getUrl(require(\"../../../template/main/fonts/aofl-sans/aoflsans-reg.woff2\"));\nvar ___CSS_LOADER_URL___3___ = getUrl(require(\"../../../template/main/fonts/aofl-sans/aoflsans-regit.woff2\"));\nvar ___CSS_LOADER_URL___4___ = getUrl(require(\"../../../template/main/fonts/aofl-sans/aoflsans-sbold.woff2\"));\nvar ___CSS_LOADER_URL___5___ = getUrl(require(\"../../../template/main/fonts/aofl-sans/aoflsans-sboldit.woff2\"));\nvar ___CSS_LOADER_URL___6___ = getUrl(require(\"../../../template/main/fonts/aofl-sans/aoflsans-bold.woff2\"));\nvar ___CSS_LOADER_URL___7___ = getUrl(require(\"../../../template/main/fonts/aofl-sans/aoflsans-boldit.woff2\"));\nvar ___CSS_LOADER_URL___8___ = getUrl(require(\"../../../template/main/fonts/abcmouse-sans/ABCmouseSans-Light.woff2\"));\nvar ___CSS_LOADER_URL___9___ = getUrl(require(\"../../../template/main/fonts/abcmouse-sans/ABCmouseSans-LightIt.woff2\"));\nvar ___CSS_LOADER_URL___10___ = getUrl(require(\"../../../template/main/fonts/abcmouse-sans/ABCmouseSans-Regular.woff2\"));\nvar ___CSS_LOADER_URL___11___ = getUrl(require(\"../../../template/main/fonts/abcmouse-sans/ABCmouseSans-RegularIt.woff2\"));\nvar ___CSS_LOADER_URL___12___ = getUrl(require(\"../../../template/main/fonts/abcmouse-sans/ABCmouseSans-Semibold.woff2\"));\nvar ___CSS_LOADER_URL___13___ = getUrl(require(\"../../../template/main/fonts/abcmouse-sans/ABCmouseSans-SemiboldIt.woff2\"));\nvar ___CSS_LOADER_URL___14___ = getUrl(require(\"../../../template/main/fonts/abcmouse-sans/ABCmouseSans-Bold.woff2\"));\nvar ___CSS_LOADER_URL___15___ = getUrl(require(\"../../../template/main/fonts/abcmouse-sans/ABCmouseSans-BoldIt.woff2\"));\nvar ___CSS_LOADER_URL___16___ = getUrl(require(\"../../../template/main/fonts/abcmouse-sans/ABCmouseSans-ExtraBold.woff2\"));\nvar ___CSS_LOADER_URL___17___ = getUrl(require(\"../../../template/main/fonts/abcmouse-sans/ABCmouseSans-ExtraBoldIt.woff2\"));\nvar ___CSS_LOADER_URL___18___ = getUrl(require(\"../../../template/main/fonts/aofl-icons/icomoon.woff2?c6f21u\"));\n// Module\nexports.push([module.id, \"/*! @aofl-component */:root{--blue:#0d6efd;--indigo:#6610f2;--purple:#8b42ca;--pink:#e83e8c;--red:#e50b0a;--orange:#e17a05;--yellow:#ffc107;--green:#3c8104;--teal:#20c997;--cyan:#53c9dc;--white:#fff;--gray:#6b6b6b;--gray-dark:#343a40;--light-green:#b1dd53;--table-border-color:#d8d8d8;--gray-100:#f2f2f2;--gray-200:#d9d9d9;--gray-300:#d8d8d8;--gray-400:#ced4da;--gray-500:#adb5bd;--gray-600:#6c757d;--gray-700:#4a4a4a;--gray-800:#343a40;--gray-900:#212529;--gray-accessibility:#6b6b6b;--primary:#0d6efd;--secondary:#adb5bd;--success:#3c8104;--info:#cfe2ff;--warning:#e17a05;--danger:#d20a09;--light:#f8f9fa;--dark:#000;--breakpoint-xxs:0;--breakpoint-xs:375px;--breakpoint-sm:576px;--breakpoint-md:768px;--breakpoint-lg:992px;--breakpoint-xl:1200px;--font-family-sans-serif:aofl-sans,Arial,Helvetica,sans-serif;--font-family-monospace:SFMono-Regular,Menlo,Monaco,Consolas,\\\"Liberation Mono\\\",\\\"Courier New\\\",monospace;--z-index-dropdown:1000;--z-index-sticky:1020;--z-index-fixed:1030;--z-index-modal-backdrop:1040;--z-index-modal:1050;--z-index-popover:1060;--z-index-tooltip:1070;--header-height:6rem;--content-height:calc(100vh - 6rem);--sidepanel-width:20rem;--purple-color:#641da3;--purple-600:#956abc;--purple-400:#c7afdd;--purple-200:#e0d2ed;--struggling:#f6993b;--below-target:#ffcf00;--in_progress:#1280f5;--prior_knowledge:#edf887;--mastery_achieved:#69d112;--inactive:#d8d8d8}route-view{max-width:1200px}@font-face{font-family:aofl-sans;font-style:normal;font-weight:300;src:url(\" + ___CSS_LOADER_URL___0___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:italic;font-weight:300;src:url(\" + ___CSS_LOADER_URL___1___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:normal;font-weight:400;src:url(\" + ___CSS_LOADER_URL___2___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:italic;font-weight:400;src:url(\" + ___CSS_LOADER_URL___3___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:normal;font-weight:600;src:url(\" + ___CSS_LOADER_URL___4___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:italic;font-weight:600;src:url(\" + ___CSS_LOADER_URL___5___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:normal;font-weight:700;src:url(\" + ___CSS_LOADER_URL___6___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:italic;font-weight:700;src:url(\" + ___CSS_LOADER_URL___7___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:normal;font-weight:300;src:url(\" + ___CSS_LOADER_URL___8___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:italic;font-weight:300;src:url(\" + ___CSS_LOADER_URL___9___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:normal;font-weight:400;src:url(\" + ___CSS_LOADER_URL___10___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:italic;font-weight:400;src:url(\" + ___CSS_LOADER_URL___11___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:normal;font-weight:600;src:url(\" + ___CSS_LOADER_URL___12___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:italic;font-weight:600;src:url(\" + ___CSS_LOADER_URL___13___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:normal;font-weight:700;src:url(\" + ___CSS_LOADER_URL___14___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:italic;font-weight:700;src:url(\" + ___CSS_LOADER_URL___15___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:normal;font-weight:800;src:url(\" + ___CSS_LOADER_URL___16___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:italic;font-weight:800;src:url(\" + ___CSS_LOADER_URL___17___ + \") format(\\\"woff2\\\")}@font-face{font-family:icomoon;src:url(\" + ___CSS_LOADER_URL___18___ + \") format(\\\"woff2\\\");font-weight:400;font-style:normal;font-display:block}[class*=\\\" ai-\\\"],[class^=ai-]{font-family:icomoon!important;speak:never;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*,:after,:before{box-sizing:border-box}html{font-family:sans-serif;line-height:1.15;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:rgba(0,0,0,0)}figcaption,main,nav,section{display:block}[tabindex=\\\"-1\\\"]:focus{outline:0!important}strong{font-weight:bolder}caption{padding-top:.75rem;padding-bottom:.75rem;color:#6c757d;text-align:left;caption-side:bottom}button{border-radius:0}button:focus{outline:1px dotted;outline:5px auto -webkit-focus-ring-color}button,input{margin:0;font-family:inherit;font-size:inherit;line-height:inherit;overflow:visible}button{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]:not(:disabled),[type=reset]:not(:disabled),[type=submit]:not(:disabled),button:not(:disabled){cursor:pointer}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{padding:0;border-style:none}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}input[type=date],input[type=datetime-local],input[type=month],input[type=time]{-webkit-appearance:listbox}legend{display:block;width:100%;max-width:100%;padding:0;margin-bottom:.5rem;font-size:1.5rem;line-height:inherit;color:inherit;white-space:normal}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:none}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}summary{display:list-item;cursor:pointer}template{display:none}[hidden]{display:none!important}*{-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important}html{font-size:62.5%;height:100%}link-to{color:#0d6efd;text-decoration:none;background-color:transparent}link-to:hover{color:rgb(0,86.1,178.5);text-decoration:none;cursor:pointer}route-view{display:none;flex:1}site-header{background-color:#fff;display:none;position:-webkit-sticky;position:sticky;top:0;height:var(--header-height)}#main{display:none;flex:1 auto;max-width:100%;overflow:hidden;flex-direction:column;overflow-y:scroll}.loaded #main,.loaded site-header,body.loaded,route-view.loaded{display:flex}route-view.left-panel-active{padding-left:var(--sidepanel-width)}input[type=checkbox],input[type=radio]{cursor:pointer}button,button:active{outline:none}[tabindex=\\\"0\\\"]:focus-visible,aofl-list-option:focus-visible,button[type=button]:focus-visible,collapse-button:focus-visible{outline:1px solid #e50b0a;border:1px solid #e50b0a}@keyframes progress-bar-stripes{0%{background-position:1.6rem 0}to{background-position:0 0}}.modal-container{background-color:rgba(0,0,0,.2);position:fixed;top:0;bottom:0;right:0;left:0;z-index:var(--z-index-modal)}.modal-container :first-child{overflow:auto}.modal{position:relative;display:block;height:100vh}.modal-dialog-centered.modal-dialog-scrollable{height:auto;max-height:calc(100% - 2.8rem);min-height:auto}.modal-body,.modal-content,.modal-footer,.modal-header{border:none}.modal-header{font-size:2rem;padding:2.4rem}.modal-body{padding:0 2.4rem 4.8rem}.colored-header{color:#fff}.modal-body p{text-align:left}.colored-header-primary{background-color:#0d6efd}.colored-header-secondary{background-color:#adb5bd}.colored-header-success{background-color:#3c8104}.colored-header-info{background-color:#cfe2ff}.colored-header-warning{background-color:#e17a05}.colored-header-danger{background-color:#d20a09}.colored-header-light{background-color:#f8f9fa}.colored-header-dark{background-color:#000}@keyframes spinner-border{to{transform:rotate(1turn)}}@keyframes spinner-grow{0%{transform:scale(0)}50%{opacity:1}}[hidden]{visibility:hidden!important;height:0!important;width:0!important;min-height:unset!important}@media print{*,:after,:before{text-shadow:none!important;box-shadow:none!important}@page{size:a3}}@media print{main::-webkit-scrollbar{display:none}main{-ms-overflow-style:none;scrollbar-width:none}}@page{size:A4;margin:20mm 16mm 20mm 16mm}:host{display:block}\", \"\"]);\n","exports = module.exports = require(\"../../../node_modules/css-loader/dist/runtime/api.js\")(false);\n// Imports\nvar getUrl = require(\"../../../node_modules/css-loader/dist/runtime/getUrl.js\");\nvar ___CSS_LOADER_URL___0___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-light.woff2\"));\nvar ___CSS_LOADER_URL___1___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-lightit.woff2\"));\nvar ___CSS_LOADER_URL___2___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-reg.woff2\"));\nvar ___CSS_LOADER_URL___3___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-regit.woff2\"));\nvar ___CSS_LOADER_URL___4___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-sbold.woff2\"));\nvar ___CSS_LOADER_URL___5___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-sboldit.woff2\"));\nvar ___CSS_LOADER_URL___6___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-bold.woff2\"));\nvar ___CSS_LOADER_URL___7___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-boldit.woff2\"));\nvar ___CSS_LOADER_URL___8___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-Light.woff2\"));\nvar ___CSS_LOADER_URL___9___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-LightIt.woff2\"));\nvar ___CSS_LOADER_URL___10___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-Regular.woff2\"));\nvar ___CSS_LOADER_URL___11___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-RegularIt.woff2\"));\nvar ___CSS_LOADER_URL___12___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-Semibold.woff2\"));\nvar ___CSS_LOADER_URL___13___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-SemiboldIt.woff2\"));\nvar ___CSS_LOADER_URL___14___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-Bold.woff2\"));\nvar ___CSS_LOADER_URL___15___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-BoldIt.woff2\"));\nvar ___CSS_LOADER_URL___16___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-ExtraBold.woff2\"));\nvar ___CSS_LOADER_URL___17___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-ExtraBoldIt.woff2\"));\nvar ___CSS_LOADER_URL___18___ = getUrl(require(\"../../template/main/fonts/aofl-icons/icomoon.woff2?c6f21u\"));\n// Module\nexports.push([module.id, \"/*! @aofl-component */:root{--blue:#0d6efd;--indigo:#6610f2;--purple:#8b42ca;--pink:#e83e8c;--red:#e50b0a;--orange:#e17a05;--yellow:#ffc107;--green:#3c8104;--teal:#20c997;--cyan:#53c9dc;--white:#fff;--gray:#6b6b6b;--gray-dark:#343a40;--light-green:#b1dd53;--table-border-color:#d8d8d8;--gray-100:#f2f2f2;--gray-200:#d9d9d9;--gray-300:#d8d8d8;--gray-400:#ced4da;--gray-500:#adb5bd;--gray-600:#6c757d;--gray-700:#4a4a4a;--gray-800:#343a40;--gray-900:#212529;--gray-accessibility:#6b6b6b;--primary:#0d6efd;--secondary:#adb5bd;--success:#3c8104;--info:#cfe2ff;--warning:#e17a05;--danger:#d20a09;--light:#f8f9fa;--dark:#000;--breakpoint-xxs:0;--breakpoint-xs:375px;--breakpoint-sm:576px;--breakpoint-md:768px;--breakpoint-lg:992px;--breakpoint-xl:1200px;--font-family-sans-serif:aofl-sans,Arial,Helvetica,sans-serif;--font-family-monospace:SFMono-Regular,Menlo,Monaco,Consolas,\\\"Liberation Mono\\\",\\\"Courier New\\\",monospace;--z-index-dropdown:1000;--z-index-sticky:1020;--z-index-fixed:1030;--z-index-modal-backdrop:1040;--z-index-modal:1050;--z-index-popover:1060;--z-index-tooltip:1070;--header-height:6rem;--content-height:calc(100vh - 6rem);--sidepanel-width:20rem;--purple-color:#641da3;--purple-600:#956abc;--purple-400:#c7afdd;--purple-200:#e0d2ed;--struggling:#f6993b;--below-target:#ffcf00;--in_progress:#1280f5;--prior_knowledge:#edf887;--mastery_achieved:#69d112;--inactive:#d8d8d8}route-view{max-width:1200px}@font-face{font-family:aofl-sans;font-style:normal;font-weight:300;src:url(\" + ___CSS_LOADER_URL___0___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:italic;font-weight:300;src:url(\" + ___CSS_LOADER_URL___1___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:normal;font-weight:400;src:url(\" + ___CSS_LOADER_URL___2___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:italic;font-weight:400;src:url(\" + ___CSS_LOADER_URL___3___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:normal;font-weight:600;src:url(\" + ___CSS_LOADER_URL___4___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:italic;font-weight:600;src:url(\" + ___CSS_LOADER_URL___5___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:normal;font-weight:700;src:url(\" + ___CSS_LOADER_URL___6___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:italic;font-weight:700;src:url(\" + ___CSS_LOADER_URL___7___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:normal;font-weight:300;src:url(\" + ___CSS_LOADER_URL___8___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:italic;font-weight:300;src:url(\" + ___CSS_LOADER_URL___9___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:normal;font-weight:400;src:url(\" + ___CSS_LOADER_URL___10___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:italic;font-weight:400;src:url(\" + ___CSS_LOADER_URL___11___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:normal;font-weight:600;src:url(\" + ___CSS_LOADER_URL___12___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:italic;font-weight:600;src:url(\" + ___CSS_LOADER_URL___13___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:normal;font-weight:700;src:url(\" + ___CSS_LOADER_URL___14___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:italic;font-weight:700;src:url(\" + ___CSS_LOADER_URL___15___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:normal;font-weight:800;src:url(\" + ___CSS_LOADER_URL___16___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:italic;font-weight:800;src:url(\" + ___CSS_LOADER_URL___17___ + \") format(\\\"woff2\\\")}@font-face{font-family:icomoon;src:url(\" + ___CSS_LOADER_URL___18___ + \") format(\\\"woff2\\\");font-weight:400;font-style:normal;font-display:block}[class*=\\\" ai-\\\"],[class^=ai-]{font-family:icomoon!important;speak:never;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*,:after,:before{box-sizing:border-box}html{font-family:sans-serif;line-height:1.15;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:rgba(0,0,0,0)}figcaption,main,nav,section{display:block}[tabindex=\\\"-1\\\"]:focus{outline:0!important}strong{font-weight:bolder}caption{padding-top:.75rem;padding-bottom:.75rem;color:#6c757d;text-align:left;caption-side:bottom}button{border-radius:0}button:focus{outline:1px dotted;outline:5px auto -webkit-focus-ring-color}button,input{margin:0;font-family:inherit;font-size:inherit;line-height:inherit;overflow:visible}button{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]:not(:disabled),[type=reset]:not(:disabled),[type=submit]:not(:disabled),button:not(:disabled){cursor:pointer}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{padding:0;border-style:none}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}input[type=date],input[type=datetime-local],input[type=month],input[type=time]{-webkit-appearance:listbox}legend{display:block;width:100%;max-width:100%;padding:0;margin-bottom:.5rem;font-size:1.5rem;line-height:inherit;color:inherit;white-space:normal}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:none}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}summary{display:list-item;cursor:pointer}template{display:none}[hidden]{display:none!important}*{-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important}html{font-size:62.5%;height:100%}link-to{color:#0d6efd;text-decoration:none;background-color:transparent}link-to:hover{color:rgb(0,86.1,178.5);text-decoration:none;cursor:pointer}route-view{display:none;flex:1}site-header{background-color:#fff;display:none;position:-webkit-sticky;position:sticky;top:0;height:var(--header-height)}#main{display:none;flex:1 auto;max-width:100%;overflow:hidden;flex-direction:column;overflow-y:scroll}.loaded #main,.loaded site-header,body.loaded,route-view.loaded{display:flex}route-view.left-panel-active{padding-left:var(--sidepanel-width)}.col-lg-4,.col-md-4,.col-md-5,.col-sm-5,.col-sm-7,.col-xs-12{position:relative;width:100%;padding-right:15px;padding-left:15px}@media (min-width:375px){.col-xs-12{flex:0 0 100%;max-width:100%}}@media (min-width:576px){.col-sm-5{flex:0 0 41.6666666667%;max-width:41.6666666667%}.col-sm-7{flex:0 0 58.3333333333%;max-width:58.3333333333%}}@media (min-width:768px){.col-md-4{flex:0 0 33.3333333333%;max-width:33.3333333333%}.col-md-5{flex:0 0 41.6666666667%;max-width:41.6666666667%}}@media (min-width:992px){.col-lg-4{flex:0 0 33.3333333333%;max-width:33.3333333333%}}input[type=checkbox],input[type=radio]{cursor:pointer}.btn{display:inline-block;font-weight:400;color:#000;text-align:center;vertical-align:middle;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;background-color:transparent;border:1px solid transparent;padding:.375rem .75rem;font-size:1.6rem;line-height:1.5;border-radius:.25rem;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.btn{transition:none}}.btn:hover{color:#000;text-decoration:none}.btn:focus{outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.btn.disabled,.btn:disabled{opacity:.65}.btn-primary{color:#fff;background-color:#0d6efd;border-color:#0d6efd}.btn-primary:hover{color:#fff;background-color:rgb(1.8668032787,92.4067622951,225.8831967213);border-color:rgb(1.762295082,87.2336065574,213.237704918)}.btn-primary:focus{box-shadow:0 0 0 .2rem rgba(49.3,131.75,253.3,.5)}.btn-primary.disabled,.btn-primary:disabled{color:#fff;background-color:#0d6efd;border-color:#0d6efd}.btn-primary:not(:disabled):not(.disabled):active{color:#fff;background-color:rgb(1.762295082,87.2336065574,213.237704918);border-color:rgb(1.6577868852,82.0604508197,200.5922131148)}.btn-primary:not(:disabled):not(.disabled):active:focus{box-shadow:0 0 0 .2rem rgba(49.3,131.75,253.3,.5)}.btn-outline-primary{color:#0d6efd;border-color:#0d6efd}.btn-outline-primary:hover{color:#fff;background-color:#0d6efd;border-color:#0d6efd}.btn-outline-primary:focus{box-shadow:0 0 0 .2rem rgba(13,110,253,.5)}.btn-outline-primary.disabled,.btn-outline-primary:disabled{color:#0d6efd;background-color:transparent}.btn-outline-primary:not(:disabled):not(.disabled):active{color:#fff;background-color:#0d6efd;border-color:#0d6efd}.btn-outline-primary:not(:disabled):not(.disabled):active:focus{box-shadow:0 0 0 .2rem rgba(13,110,253,.5)}.btn-lg{padding:.5rem 1rem;font-size:1.9rem;line-height:1.5;border-radius:.3rem}.btn-block{display:block;width:100%}.btn-block+.btn-block{margin-top:.8rem}input[type=button].btn-block,input[type=reset].btn-block,input[type=submit].btn-block{width:100%}.btn:disabled{cursor:not-allowed}.btn.disabled,link-to.btn.disabled,link-to.btn:disabled,link-to.btn[disabled]{pointer-events:none}button,button:active{outline:none}.btn:focus-visible,[tabindex=\\\"0\\\"]:focus-visible,aofl-list-option:focus-visible,button[type=button]:focus-visible,collapse-button:focus-visible{outline:1px solid #e50b0a;border:1px solid #e50b0a}.btn-primary:focus-visible .btn-outline-primary:focus-visible{outline-offset:2px;outline:2px solid #e50b0a}.btn-outline-primary,.btn-primary{font-weight:600;border-width:2px}.btn.disabled,.btn:disabled{background:#cfe2ff;border-color:#cfe2ff;color:#0d6efd;opacity:1}ems-dropdown>button.btn{display:flex;align-items:center;border:1px solid var(--gray)}@keyframes progress-bar-stripes{0%{background-position:1.6rem 0}to{background-position:0 0}}.modal-container{background-color:rgba(0,0,0,.2);position:fixed;top:0;bottom:0;right:0;left:0;z-index:var(--z-index-modal)}.modal-container :first-child{overflow:auto}.modal{position:relative;display:block;height:100vh}.modal-dialog-centered.modal-dialog-scrollable{height:auto;max-height:calc(100% - 2.8rem);min-height:auto}.modal-body,.modal-content,.modal-footer,.modal-header{border:none}.modal-header{font-size:2rem;padding:2.4rem}.modal-body{padding:0 2.4rem 4.8rem}.colored-header{color:#fff}.modal-body p{text-align:left}.colored-header-primary{background-color:#0d6efd}.colored-header-secondary{background-color:#adb5bd}.colored-header-success{background-color:#3c8104}.colored-header-info{background-color:#cfe2ff}.colored-header-warning{background-color:#e17a05}.colored-header-danger{background-color:#d20a09}.colored-header-light{background-color:#f8f9fa}.colored-header-dark{background-color:#000}@keyframes spinner-border{to{transform:rotate(1turn)}}@keyframes spinner-grow{0%{transform:scale(0)}50%{opacity:1}}.rounded-pill{border-radius:80rem!important}.d-flex{display:flex!important}.align-items-center{align-items:center!important}@media (min-width:768px){.justify-content-md-center{justify-content:center!important}}.mb-2{margin-bottom:.5rem!important}.px-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.py-5{padding-top:3rem!important}.pb-5,.py-5{padding-bottom:3rem!important}.text-center{text-align:center!important}[hidden]{visibility:hidden!important;height:0!important;width:0!important;min-height:unset!important}@media print{*,:after,:before{text-shadow:none!important;box-shadow:none!important}@page{size:a3}}@media print{main::-webkit-scrollbar{display:none}main{-ms-overflow-style:none;scrollbar-width:none}}@page{size:A4;margin:20mm 16mm 20mm 16mm}:host{display:block;font-size:large}\", \"\"]);\n","exports = module.exports = require(\"../../../node_modules/css-loader/dist/runtime/api.js\")(false);\n// Imports\nvar getUrl = require(\"../../../node_modules/css-loader/dist/runtime/getUrl.js\");\nvar ___CSS_LOADER_URL___0___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-light.woff2\"));\nvar ___CSS_LOADER_URL___1___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-lightit.woff2\"));\nvar ___CSS_LOADER_URL___2___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-reg.woff2\"));\nvar ___CSS_LOADER_URL___3___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-regit.woff2\"));\nvar ___CSS_LOADER_URL___4___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-sbold.woff2\"));\nvar ___CSS_LOADER_URL___5___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-sboldit.woff2\"));\nvar ___CSS_LOADER_URL___6___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-bold.woff2\"));\nvar ___CSS_LOADER_URL___7___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-boldit.woff2\"));\nvar ___CSS_LOADER_URL___8___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-Light.woff2\"));\nvar ___CSS_LOADER_URL___9___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-LightIt.woff2\"));\nvar ___CSS_LOADER_URL___10___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-Regular.woff2\"));\nvar ___CSS_LOADER_URL___11___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-RegularIt.woff2\"));\nvar ___CSS_LOADER_URL___12___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-Semibold.woff2\"));\nvar ___CSS_LOADER_URL___13___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-SemiboldIt.woff2\"));\nvar ___CSS_LOADER_URL___14___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-Bold.woff2\"));\nvar ___CSS_LOADER_URL___15___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-BoldIt.woff2\"));\nvar ___CSS_LOADER_URL___16___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-ExtraBold.woff2\"));\nvar ___CSS_LOADER_URL___17___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-ExtraBoldIt.woff2\"));\nvar ___CSS_LOADER_URL___18___ = getUrl(require(\"../../template/main/fonts/aofl-icons/icomoon.woff2?c6f21u\"));\n// Module\nexports.push([module.id, \"/*! @aofl-component */:root{--blue:#0d6efd;--indigo:#6610f2;--purple:#8b42ca;--pink:#e83e8c;--red:#e50b0a;--orange:#e17a05;--yellow:#ffc107;--green:#3c8104;--teal:#20c997;--cyan:#53c9dc;--white:#fff;--gray:#6b6b6b;--gray-dark:#343a40;--light-green:#b1dd53;--table-border-color:#d8d8d8;--gray-100:#f2f2f2;--gray-200:#d9d9d9;--gray-300:#d8d8d8;--gray-400:#ced4da;--gray-500:#adb5bd;--gray-600:#6c757d;--gray-700:#4a4a4a;--gray-800:#343a40;--gray-900:#212529;--gray-accessibility:#6b6b6b;--primary:#0d6efd;--secondary:#adb5bd;--success:#3c8104;--info:#cfe2ff;--warning:#e17a05;--danger:#d20a09;--light:#f8f9fa;--dark:#000;--breakpoint-xxs:0;--breakpoint-xs:375px;--breakpoint-sm:576px;--breakpoint-md:768px;--breakpoint-lg:992px;--breakpoint-xl:1200px;--font-family-sans-serif:aofl-sans,Arial,Helvetica,sans-serif;--font-family-monospace:SFMono-Regular,Menlo,Monaco,Consolas,\\\"Liberation Mono\\\",\\\"Courier New\\\",monospace;--z-index-dropdown:1000;--z-index-sticky:1020;--z-index-fixed:1030;--z-index-modal-backdrop:1040;--z-index-modal:1050;--z-index-popover:1060;--z-index-tooltip:1070;--header-height:6rem;--content-height:calc(100vh - 6rem);--sidepanel-width:20rem;--purple-color:#641da3;--purple-600:#956abc;--purple-400:#c7afdd;--purple-200:#e0d2ed;--struggling:#f6993b;--below-target:#ffcf00;--in_progress:#1280f5;--prior_knowledge:#edf887;--mastery_achieved:#69d112;--inactive:#d8d8d8}route-view{max-width:1200px}@font-face{font-family:aofl-sans;font-style:normal;font-weight:300;src:url(\" + ___CSS_LOADER_URL___0___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:italic;font-weight:300;src:url(\" + ___CSS_LOADER_URL___1___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:normal;font-weight:400;src:url(\" + ___CSS_LOADER_URL___2___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:italic;font-weight:400;src:url(\" + ___CSS_LOADER_URL___3___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:normal;font-weight:600;src:url(\" + ___CSS_LOADER_URL___4___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:italic;font-weight:600;src:url(\" + ___CSS_LOADER_URL___5___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:normal;font-weight:700;src:url(\" + ___CSS_LOADER_URL___6___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:italic;font-weight:700;src:url(\" + ___CSS_LOADER_URL___7___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:normal;font-weight:300;src:url(\" + ___CSS_LOADER_URL___8___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:italic;font-weight:300;src:url(\" + ___CSS_LOADER_URL___9___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:normal;font-weight:400;src:url(\" + ___CSS_LOADER_URL___10___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:italic;font-weight:400;src:url(\" + ___CSS_LOADER_URL___11___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:normal;font-weight:600;src:url(\" + ___CSS_LOADER_URL___12___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:italic;font-weight:600;src:url(\" + ___CSS_LOADER_URL___13___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:normal;font-weight:700;src:url(\" + ___CSS_LOADER_URL___14___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:italic;font-weight:700;src:url(\" + ___CSS_LOADER_URL___15___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:normal;font-weight:800;src:url(\" + ___CSS_LOADER_URL___16___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:italic;font-weight:800;src:url(\" + ___CSS_LOADER_URL___17___ + \") format(\\\"woff2\\\")}@font-face{font-family:icomoon;src:url(\" + ___CSS_LOADER_URL___18___ + \") format(\\\"woff2\\\");font-weight:400;font-style:normal;font-display:block}[class*=\\\" ai-\\\"],[class^=ai-]{font-family:icomoon!important;speak:never;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.ai-chevron-down:before{content:\\\"\\\\e90d\\\"}*,:after,:before{box-sizing:border-box}html{font-family:sans-serif;line-height:1.15;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:rgba(0,0,0,0)}figcaption,main,nav,section{display:block}[tabindex=\\\"-1\\\"]:focus{outline:0!important}h4,h5{margin-top:0;margin-bottom:1rem}strong{font-weight:bolder}a{color:#0d6efd;background-color:transparent}a,a:hover{text-decoration:none}a:hover{color:rgb(0,86.1,178.5)}a:not([href]):not([tabindex]),a:not([href]):not([tabindex]):focus,a:not([href]):not([tabindex]):hover{color:inherit;text-decoration:none}a:not([href]):not([tabindex]):focus{outline:0}caption{padding-top:.75rem;padding-bottom:.75rem;color:#6c757d;text-align:left;caption-side:bottom}button{border-radius:0}button:focus{outline:1px dotted;outline:5px auto -webkit-focus-ring-color}button,input{margin:0;font-family:inherit;font-size:inherit;line-height:inherit;overflow:visible}button{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]:not(:disabled),[type=reset]:not(:disabled),[type=submit]:not(:disabled),button:not(:disabled){cursor:pointer}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{padding:0;border-style:none}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}input[type=date],input[type=datetime-local],input[type=month],input[type=time]{-webkit-appearance:listbox}legend{display:block;width:100%;max-width:100%;padding:0;margin-bottom:.5rem;font-size:1.5rem;line-height:inherit;color:inherit;white-space:normal}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:none}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}summary{display:list-item;cursor:pointer}template{display:none}[hidden]{display:none!important}*{-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important}html{font-size:62.5%;height:100%}link-to{color:#0d6efd;text-decoration:none;background-color:transparent}link-to:hover{color:rgb(0,86.1,178.5);text-decoration:none;cursor:pointer}route-view{display:none;flex:1}site-header{background-color:#fff;display:none;position:-webkit-sticky;position:sticky;top:0;height:var(--header-height)}#main{display:none;flex:1 auto;max-width:100%;overflow:hidden;flex-direction:column;overflow-y:scroll}.loaded #main,.loaded site-header,body.loaded,route-view.loaded{display:flex}route-view.left-panel-active{padding-left:var(--sidepanel-width)}.h4,.h5,h4,h5{margin-bottom:1rem;font-weight:500;line-height:1.2}.h4,h4{font-size:1.6rem}.h5,h5{font-size:1.4rem}input[type=checkbox],input[type=radio]{cursor:pointer}.btn{display:inline-block;font-weight:400;color:#000;text-align:center;vertical-align:middle;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;background-color:transparent;border:1px solid transparent;padding:.375rem .75rem;font-size:1.6rem;line-height:1.5;border-radius:.25rem;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.btn{transition:none}}.btn:hover{color:#000;text-decoration:none}.btn:focus{outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.btn:disabled{opacity:.65}.btn-outline-light{color:#f8f9fa;border-color:#f8f9fa}.btn-outline-light:hover{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-outline-light:focus{box-shadow:0 0 0 .2rem rgba(248,249,250,.5)}.btn-outline-light:disabled{color:#f8f9fa;background-color:transparent}.btn-outline-light:not(:disabled):not(.disabled).active,.btn-outline-light:not(:disabled):not(.disabled):active{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-outline-light:not(:disabled):not(.disabled).active:focus,.btn-outline-light:not(:disabled):not(.disabled):active:focus{box-shadow:0 0 0 .2rem rgba(248,249,250,.5)}.btn-link{font-weight:400;color:#0d6efd;text-decoration:none}.btn-link:hover{color:rgb(0,86.1,178.5);text-decoration:none}.btn-link:focus{text-decoration:none;box-shadow:none}.btn-link:disabled{color:#6c757d;pointer-events:none}.btn:disabled{cursor:not-allowed}link-to.btn:disabled,link-to.btn[disabled]{pointer-events:none}.btn-outline-light{color:#000;border-color:#ced4da;background:#fff}.btn-outline-light:disabled{color:#000}.btn-outline-light:hover{border-color:#ced4da}button,button:active{outline:none}.btn:focus-visible,[tabindex=\\\"0\\\"]:focus-visible,a:focus-visible,aofl-list-option:focus-visible,button[type=button]:focus-visible,collapse-button:focus-visible{outline:1px solid #e50b0a;border:1px solid #e50b0a}.btn-link:focus-visible{border:2px solid #e50b0a}.btn:disabled{background:#cfe2ff;border-color:#cfe2ff;color:#0d6efd;opacity:1}.dropdown{position:relative}.dropdown-toggle{white-space:nowrap}.dropdown-toggle:after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:\\\"\\\";border-top:.3em solid;border-right:.3em solid transparent;border-bottom:0;border-left:.3em solid transparent}.dropdown-toggle:empty:after{margin-left:0}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:16rem;padding:.8rem 0;margin:.2rem 0 0;font-size:1.3rem;color:#212529;text-align:left;list-style:none;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.15);border-radius:.25rem}.dropdown-menu[x-placement^=bottom],.dropdown-menu[x-placement^=left],.dropdown-menu[x-placement^=right],.dropdown-menu[x-placement^=top]{right:auto;bottom:auto}.dropdown-item{display:block;width:100%;padding:.8rem 2rem;clear:both;font-weight:400;color:#212529;text-align:inherit;white-space:nowrap;background-color:transparent;border:0}.dropdown-item:focus,.dropdown-item:hover{color:rgb(21.6283783784,24.25,26.8716216216);text-decoration:none;background-color:#d8d8d8}.dropdown-item.active,.dropdown-item:active{color:#fff;text-decoration:none;background-color:#0d6efd}.dropdown-item:disabled{color:#6c757d;pointer-events:none;background-color:transparent}.dropdown,.dropdown-menu{display:inline-block}.dropdown-menu{box-shadow:0 0 .6rem 0 #d8d8d8;float:none;position:relative;margin:.2rem .4rem .4rem 0;min-width:1rem}bulk-actions-button+.dropdown-menu{max-width:270px;width:100%}bulk-actions-button+.dropdown-menu .btn{font-size:1.2rem;font-weight:600}collapse-button .ai.ai-chevron-down:before{transform:rotate(-90deg);display:inline-block}ems-dropdown>button.btn{display:flex;align-items:center;border:1px solid var(--gray)}collapse-button[open] .ai.ai-chevron-down:before{transform:rotate(180deg)}collapse-button .ai.ai-chevron-down,ems-dropdown .ai.ai-chevron-down{font-size:.8rem}collapse-button .ai-chevron-down:before,ems-dropdown .ai-chevron-down:before{content:\\\"\\\\e90d\\\"}collapse-button[open] .ai-chevron-down:before,ems-dropdown[open] .ai-chevron-down:before{content:\\\"\\\\e90f\\\"}@keyframes progress-bar-stripes{0%{background-position:1.6rem 0}to{background-position:0 0}}.modal-container{background-color:rgba(0,0,0,.2);position:fixed;top:0;bottom:0;right:0;left:0;z-index:var(--z-index-modal)}.modal-container :first-child{overflow:auto}.modal{position:relative;display:block;height:100vh}.modal-dialog-centered.modal-dialog-scrollable{height:auto;max-height:calc(100% - 2.8rem);min-height:auto}.modal-body,.modal-content,.modal-footer,.modal-header{border:none}.modal-header{font-size:2rem;padding:2.4rem}.modal-body{padding:0 2.4rem 4.8rem}.colored-header{color:#fff}.modal-body p{text-align:left}.colored-header-primary{background-color:#0d6efd}.colored-header-secondary{background-color:#adb5bd}.colored-header-success{background-color:#3c8104}.colored-header-info{background-color:#cfe2ff}.colored-header-warning{background-color:#e17a05}.colored-header-danger{background-color:#d20a09}.colored-header-light{background-color:#f8f9fa}.colored-header-dark{background-color:#000}@keyframes spinner-border{to{transform:rotate(1turn)}}@keyframes spinner-grow{0%{transform:scale(0)}50%{opacity:1}}.d-block{display:block!important}.d-flex{display:flex!important}.justify-content-between{justify-content:space-between!important}.w-100{width:100%!important}.m-0{margin:0!important}.mr-3{margin-right:1rem!important}.mb-3{margin-bottom:1rem!important}.py-2{padding-top:.5rem!important}.px-2{padding-right:.5rem!important}.py-2{padding-bottom:.5rem!important}.px-2{padding-left:.5rem!important}.pt-3{padding-top:1rem!important}.px-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.mx-auto{margin-right:auto!important;margin-left:auto!important}.font-weight-normal{font-weight:400!important}.text-muted{color:#6c757d!important}.border-dashed-bottom{border-bottom:2px dashed var(--gray-300)}.border-dashed-top{border-top:2px dashed var(--gray-300)}[hidden]{visibility:hidden!important;height:0!important;width:0!important;min-height:unset!important}@media print{*,:after,:before{text-shadow:none!important;box-shadow:none!important}a:not(.btn){text-decoration:underline}@page{size:a3}}@media print{main::-webkit-scrollbar{display:none}main{-ms-overflow-style:none;scrollbar-width:none}}@page{size:A4;margin:20mm 16mm 20mm 16mm}:host{display:inline-block}[slot=dropdown-toggle]{min-width:230px}div[slot=dropdown-menu]{max-height:300px;min-width:230px;overflow-y:auto;-ms-overflow-style:none}#toggle-text{overflow:hidden;text-overflow:ellipsis;max-width:15rem;white-space:nowrap;margin-right:.5rem}ems-dropdown.full-width{width:100%!important;margin-right:0!important}@media (max-width:1024px){div[slot=dropdown-menu]{max-height:250px}}\", \"\"]);\n","exports = module.exports = require(\"../../../node_modules/css-loader/dist/runtime/api.js\")(false);\n// Imports\nvar getUrl = require(\"../../../node_modules/css-loader/dist/runtime/getUrl.js\");\nvar ___CSS_LOADER_URL___0___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-light.woff2\"));\nvar ___CSS_LOADER_URL___1___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-lightit.woff2\"));\nvar ___CSS_LOADER_URL___2___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-reg.woff2\"));\nvar ___CSS_LOADER_URL___3___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-regit.woff2\"));\nvar ___CSS_LOADER_URL___4___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-sbold.woff2\"));\nvar ___CSS_LOADER_URL___5___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-sboldit.woff2\"));\nvar ___CSS_LOADER_URL___6___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-bold.woff2\"));\nvar ___CSS_LOADER_URL___7___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-boldit.woff2\"));\nvar ___CSS_LOADER_URL___8___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-Light.woff2\"));\nvar ___CSS_LOADER_URL___9___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-LightIt.woff2\"));\nvar ___CSS_LOADER_URL___10___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-Regular.woff2\"));\nvar ___CSS_LOADER_URL___11___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-RegularIt.woff2\"));\nvar ___CSS_LOADER_URL___12___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-Semibold.woff2\"));\nvar ___CSS_LOADER_URL___13___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-SemiboldIt.woff2\"));\nvar ___CSS_LOADER_URL___14___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-Bold.woff2\"));\nvar ___CSS_LOADER_URL___15___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-BoldIt.woff2\"));\nvar ___CSS_LOADER_URL___16___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-ExtraBold.woff2\"));\nvar ___CSS_LOADER_URL___17___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-ExtraBoldIt.woff2\"));\nvar ___CSS_LOADER_URL___18___ = getUrl(require(\"../../template/main/fonts/aofl-icons/icomoon.woff2?c6f21u\"));\n// Module\nexports.push([module.id, \"/*! @aofl-component */:root{--blue:#0d6efd;--indigo:#6610f2;--purple:#8b42ca;--pink:#e83e8c;--red:#e50b0a;--orange:#e17a05;--yellow:#ffc107;--green:#3c8104;--teal:#20c997;--cyan:#53c9dc;--white:#fff;--gray:#6b6b6b;--gray-dark:#343a40;--light-green:#b1dd53;--table-border-color:#d8d8d8;--gray-100:#f2f2f2;--gray-200:#d9d9d9;--gray-300:#d8d8d8;--gray-400:#ced4da;--gray-500:#adb5bd;--gray-600:#6c757d;--gray-700:#4a4a4a;--gray-800:#343a40;--gray-900:#212529;--gray-accessibility:#6b6b6b;--primary:#0d6efd;--secondary:#adb5bd;--success:#3c8104;--info:#cfe2ff;--warning:#e17a05;--danger:#d20a09;--light:#f8f9fa;--dark:#000;--breakpoint-xxs:0;--breakpoint-xs:375px;--breakpoint-sm:576px;--breakpoint-md:768px;--breakpoint-lg:992px;--breakpoint-xl:1200px;--font-family-sans-serif:aofl-sans,Arial,Helvetica,sans-serif;--font-family-monospace:SFMono-Regular,Menlo,Monaco,Consolas,\\\"Liberation Mono\\\",\\\"Courier New\\\",monospace;--z-index-dropdown:1000;--z-index-sticky:1020;--z-index-fixed:1030;--z-index-modal-backdrop:1040;--z-index-modal:1050;--z-index-popover:1060;--z-index-tooltip:1070;--header-height:6rem;--content-height:calc(100vh - 6rem);--sidepanel-width:20rem;--purple-color:#641da3;--purple-600:#956abc;--purple-400:#c7afdd;--purple-200:#e0d2ed;--struggling:#f6993b;--below-target:#ffcf00;--in_progress:#1280f5;--prior_knowledge:#edf887;--mastery_achieved:#69d112;--inactive:#d8d8d8}route-view{max-width:1200px}@font-face{font-family:aofl-sans;font-style:normal;font-weight:300;src:url(\" + ___CSS_LOADER_URL___0___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:italic;font-weight:300;src:url(\" + ___CSS_LOADER_URL___1___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:normal;font-weight:400;src:url(\" + ___CSS_LOADER_URL___2___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:italic;font-weight:400;src:url(\" + ___CSS_LOADER_URL___3___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:normal;font-weight:600;src:url(\" + ___CSS_LOADER_URL___4___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:italic;font-weight:600;src:url(\" + ___CSS_LOADER_URL___5___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:normal;font-weight:700;src:url(\" + ___CSS_LOADER_URL___6___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:italic;font-weight:700;src:url(\" + ___CSS_LOADER_URL___7___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:normal;font-weight:300;src:url(\" + ___CSS_LOADER_URL___8___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:italic;font-weight:300;src:url(\" + ___CSS_LOADER_URL___9___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:normal;font-weight:400;src:url(\" + ___CSS_LOADER_URL___10___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:italic;font-weight:400;src:url(\" + ___CSS_LOADER_URL___11___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:normal;font-weight:600;src:url(\" + ___CSS_LOADER_URL___12___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:italic;font-weight:600;src:url(\" + ___CSS_LOADER_URL___13___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:normal;font-weight:700;src:url(\" + ___CSS_LOADER_URL___14___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:italic;font-weight:700;src:url(\" + ___CSS_LOADER_URL___15___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:normal;font-weight:800;src:url(\" + ___CSS_LOADER_URL___16___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:italic;font-weight:800;src:url(\" + ___CSS_LOADER_URL___17___ + \") format(\\\"woff2\\\")}@font-face{font-family:icomoon;src:url(\" + ___CSS_LOADER_URL___18___ + \") format(\\\"woff2\\\");font-weight:400;font-style:normal;font-display:block}[class*=\\\" ai-\\\"],[class^=ai-]{font-family:icomoon!important;speak:never;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.ai-chevron-down:before{content:\\\"\\\\e90d\\\"}*,:after,:before{box-sizing:border-box}html{font-family:sans-serif;line-height:1.15;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:rgba(0,0,0,0)}figcaption,main,nav,section{display:block}[tabindex=\\\"-1\\\"]:focus{outline:0!important}p{margin-top:0;margin-bottom:1.6rem}strong{font-weight:bolder}small{font-size:80%}a{color:#0d6efd;background-color:transparent}a,a:hover{text-decoration:none}a:hover{color:rgb(0,86.1,178.5)}a:not([href]):not([tabindex]),a:not([href]):not([tabindex]):focus,a:not([href]):not([tabindex]):hover{color:inherit;text-decoration:none}a:not([href]):not([tabindex]):focus{outline:0}caption{padding-top:.75rem;padding-bottom:.75rem;color:#6c757d;text-align:left;caption-side:bottom}label{display:inline-block;margin-bottom:.8rem}button{border-radius:0}button:focus{outline:1px dotted;outline:5px auto -webkit-focus-ring-color}button,input{margin:0;font-family:inherit;font-size:inherit;line-height:inherit;overflow:visible}button{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]:not(:disabled),[type=reset]:not(:disabled),[type=submit]:not(:disabled),button:not(:disabled){cursor:pointer}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{padding:0;border-style:none}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}input[type=date],input[type=datetime-local],input[type=month],input[type=time]{-webkit-appearance:listbox}legend{display:block;width:100%;max-width:100%;padding:0;margin-bottom:.5rem;font-size:1.5rem;line-height:inherit;color:inherit;white-space:normal}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:none}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}summary{display:list-item;cursor:pointer}template{display:none}[hidden]{display:none!important}*{-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important}html{font-size:62.5%;height:100%}link-to{color:#0d6efd;text-decoration:none;background-color:transparent}link-to:hover{color:rgb(0,86.1,178.5);text-decoration:none;cursor:pointer}route-view{display:none;flex:1}site-header{background-color:#fff;display:none;position:-webkit-sticky;position:sticky;top:0;height:var(--header-height)}#main{display:none;flex:1 auto;max-width:100%;overflow:hidden;flex-direction:column;overflow-y:scroll}.loaded #main,.loaded site-header,body.loaded,route-view.loaded{display:flex}route-view.left-panel-active{padding-left:var(--sidepanel-width)}.small,small{font-size:85%;font-weight:400}.form-control{display:block;width:100%;height:calc(1.5em + .75rem + 2px);padding:.375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:#495057;background-color:#fff;background-clip:padding-box;border:1px solid #ced4da;border-radius:.25rem;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.form-control{transition:none}}.form-control::-ms-expand{background-color:transparent;border:0}.form-control:focus{color:#495057;background-color:#fff;border-color:rgb(127.5,189,255);outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.form-control::-webkit-input-placeholder{color:#6c757d;opacity:1}.form-control::-moz-placeholder{color:#6c757d;opacity:1}.form-control:-ms-input-placeholder{color:#6c757d;opacity:1}.form-control::-ms-input-placeholder{color:#6c757d;opacity:1}.form-control::placeholder{color:#6c757d;opacity:1}.form-control:disabled,.form-control[readonly]{background-color:#e9ecef;opacity:1}.form-control-sm{height:calc(1.5em + .5rem + 2px);padding:.25rem .5rem;font-size:.875rem;line-height:1.5;border-radius:.2rem}.form-group{margin-bottom:1.6rem}.form-text{display:block;margin-top:.4rem}.form-control{font-size:1.5rem;height:4.8rem;padding:1.2rem 1rem}.form-control[multiple]{padding:0}.form-control[multiple] option{padding:.8rem 1.2rem}.form-control-sm{height:3.2rem;padding:.4rem .8rem;border-radius:.32rem}input[type=checkbox],input[type=radio]{cursor:pointer}input[type=checkbox]+label,input[type=radio]+label{cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.form-control{border:1px solid #6b6b6b}.form-control:focus{border-color:#0d6efd}.btn{display:inline-block;font-weight:400;color:#000;text-align:center;vertical-align:middle;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;background-color:transparent;border:1px solid transparent;padding:.375rem .75rem;font-size:1.6rem;line-height:1.5;border-radius:.25rem;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.btn{transition:none}}.btn:hover{color:#000;text-decoration:none}.btn:focus{outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.btn.disabled,.btn:disabled{opacity:.65}a.btn.disabled{pointer-events:none}.btn-block{display:block;width:100%}.btn-block+.btn-block{margin-top:.8rem}input[type=button].btn-block,input[type=reset].btn-block,input[type=submit].btn-block{width:100%}.btn:disabled{cursor:not-allowed}.btn.disabled,link-to.btn.disabled,link-to.btn:disabled,link-to.btn[disabled]{pointer-events:none}button,button:active{outline:none}.btn:focus-visible,[tabindex=\\\"0\\\"]:focus-visible,a:focus-visible,aofl-list-option:focus-visible,button[type=button]:focus-visible,collapse-button:focus-visible{outline:1px solid #e50b0a;border:1px solid #e50b0a}.btn.disabled,.btn:disabled{background:#cfe2ff;border-color:#cfe2ff;color:#0d6efd;opacity:1}.dropdown{position:relative}.dropdown-toggle{white-space:nowrap}.dropdown-toggle:after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:\\\"\\\";border-top:.3em solid;border-right:.3em solid transparent;border-bottom:0;border-left:.3em solid transparent}.dropdown-toggle:empty:after{margin-left:0}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:16rem;padding:.8rem 0;margin:.2rem 0 0;font-size:1.3rem;color:#212529;text-align:left;list-style:none;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.15);border-radius:.25rem}.dropdown-menu[x-placement^=bottom],.dropdown-menu[x-placement^=left],.dropdown-menu[x-placement^=right],.dropdown-menu[x-placement^=top]{right:auto;bottom:auto}.dropdown-divider{height:0;margin:.5rem 0;overflow:hidden;border-top:1px solid #e9ecef}.dropdown-item{display:block;width:100%;padding:.8rem 2rem;clear:both;font-weight:400;color:#212529;text-align:inherit;white-space:nowrap;background-color:transparent;border:0}.dropdown-item:focus,.dropdown-item:hover{color:rgb(21.6283783784,24.25,26.8716216216);text-decoration:none;background-color:#d8d8d8}.dropdown-item:active{color:#fff;text-decoration:none;background-color:#0d6efd}.dropdown-item.disabled,.dropdown-item:disabled{color:#6c757d;pointer-events:none;background-color:transparent}.dropdown,.dropdown-menu{display:inline-block}.dropdown-menu{box-shadow:0 0 .6rem 0 #d8d8d8;float:none;position:relative;margin:.2rem .4rem .4rem 0;min-width:1rem}bulk-actions-button+.dropdown-menu{max-width:270px;width:100%}bulk-actions-button+.dropdown-menu .btn{font-size:1.2rem;font-weight:600}collapse-button .ai.ai-chevron-down:before{transform:rotate(-90deg);display:inline-block}ems-dropdown>button.btn{display:flex;align-items:center;border:1px solid var(--gray)}collapse-button[open] .ai.ai-chevron-down:before{transform:rotate(180deg)}collapse-button .ai.ai-chevron-down,ems-dropdown .ai.ai-chevron-down{font-size:.8rem}collapse-button .ai-chevron-down:before,ems-dropdown .ai-chevron-down:before{content:\\\"\\\\e90d\\\"}collapse-button[open] .ai-chevron-down:before,ems-dropdown[open] .ai-chevron-down:before{content:\\\"\\\\e90f\\\"}@keyframes progress-bar-stripes{0%{background-position:1.6rem 0}to{background-position:0 0}}.modal-container{background-color:rgba(0,0,0,.2);position:fixed;top:0;bottom:0;right:0;left:0;z-index:var(--z-index-modal)}.modal-container :first-child{overflow:auto}.modal{position:relative;display:block;height:100vh}.modal-dialog-centered.modal-dialog-scrollable{height:auto;max-height:calc(100% - 2.8rem);min-height:auto}.modal-body,.modal-content,.modal-footer,.modal-header{border:none}.modal-header{font-size:2rem;padding:2.4rem}.modal-body{padding:0 2.4rem 4.8rem}.colored-header{color:#fff}.modal-body p{text-align:left}.colored-header-primary{background-color:#0d6efd}.colored-header-secondary{background-color:#adb5bd}.colored-header-success{background-color:#3c8104}.colored-header-info{background-color:#cfe2ff}.colored-header-warning{background-color:#e17a05}.colored-header-danger{background-color:#d20a09}.colored-header-light{background-color:#f8f9fa}.colored-header-dark{background-color:#000}@keyframes spinner-border{to{transform:rotate(1turn)}}@keyframes spinner-grow{0%{transform:scale(0)}50%{opacity:1}}.border{border:1px solid #d8d8d8!important}.d-flex{display:flex!important}.justify-content-between{justify-content:space-between!important}.w-100{width:100%!important}.m-0{margin:0!important}.mr-5{margin-right:3rem!important}.p-3{padding:1rem!important}.text-left{text-align:left!important}.text-muted{color:#6c757d!important}[hidden]{visibility:hidden!important;height:0!important;width:0!important;min-height:unset!important}@media print{*,:after,:before{text-shadow:none!important;box-shadow:none!important}a:not(.btn){text-decoration:underline}p{orphans:3;widows:3}@page{size:a3}}@media print{main::-webkit-scrollbar{display:none}main{-ms-overflow-style:none;scrollbar-width:none}}@page{size:A4;margin:20mm 16mm 20mm 16mm}:host{display:inline-block}.btn{font-size:inherit}.result-container{max-height:25rem;overflow-y:scroll}\", \"\"]);\n","import {until} from 'lit-html/directives/until';\nimport '../wizard-steps';\nimport {LoadingEllipses} from '@epg/epg-components';\nimport '@modules/show-modal';\nimport {\n jobTypes,\n jobStatuses,\n pages,\n permissions,\n rosterErrors\n} from '@modules/constants-enumerate';\nimport '../roster-summary-block';\nimport '../invalid-header-errors';\nimport '../invalid-column-count';\nimport '../invalid-row-errors';\nimport {hasOneOfPermissions} from '@modules/permissions';\nimport {generalLabels} from '@modules/i18n-labels';\n\nexport default (ctx, html) => html`\n ${renderResult(ctx, html)}\n`;\n\nconst renderGroupSummaries = (ctx, html) => {\n const summaries = Object.keys(ctx.rosterJob.summary.groups)\n .map((level) => {\n if (parseInt(level, 10) <= parseInt(ctx.myLevel, 10)) return '';\n return html`\n
\n \n ${ctx.myGroups[level].label}\n \n
\n `;\n });\n\n return html`${summaries}`;\n};\n\nconst renderResult = (ctx, html) => html`\n ${renderSummaries(ctx, html)}\n ${renderPendingState(ctx, html)}\n ${renderDoneState(ctx, html)}\n ${renderFailState(ctx, html)}\n`;\n\nconst renderSummaries = (ctx, html) => {\n if (!ctx.rosterJob?.summary?.students || !ctx.isSameGroupId) {\n return;\n }\n\n const title = ctx.rosterJob.status === jobStatuses.PENDING\n ? ctx.__('', 'Your uploaded roster will apply these changes:')\n : ctx.__('', 'Update summary:');\n\n const teachersLabel = ctx.__('', 'Teachers');\n\n return html`\n

${until(title)}

\n
\n ${renderSummary(ctx, html, 'students', ctx.__('', 'Students'))}\n ${renderGroupSummaries(ctx, html)}\n ${renderSummary(ctx, html, 'classrooms', ctx.__('', 'Classes'))}\n ${renderSummary(ctx, html, 'users', teachersLabel)}\n ${renderSummary(ctx, html, 'teachers', teachersLabel)}\n ${renderSummary(ctx, html, 'admins', generalLabels.administrators)}\n
\n `;\n};\n\nconst renderSummary = (ctx, html, section, label) => {\n if (!ctx.rosterJob.summary[section]) {\n return;\n }\n\n return html`\n
\n \n ${until(label)}\n \n
\n `;\n};\n\nconst renderRosterInitiatedByHigherAdminMessage = (ctx,html) => {\n const level = parseInt(ctx.rosterJob.params_json.current_tier) - 2;\n if (level < 0) {\n return html`\n
\n ${until(ctx.__('', 'A roster upload has already been initiated by a Top level Admin. This must be committed at the Top Level before any additional roster uploads can take place.'))}\n
`\n } else if (level > ctx.tierStructureLabels.length) {\n return html`\n
\n ${until(ctx.__('', 'A roster upload has already been initiated by a School Admin. This must be committed at the School Level before any additional roster uploads can take place.'))}\n
`\n } else {\n return html`\n
\n ${until(ctx._r(ctx.__('', 'A roster upload has already been initiated by a %r1% Admin. This must be committed at the %r1% Level before any additional roster uploads can take place.'), ctx.tierStructureLabels[level]))}\n
`\n }\n}\n\nconst renderPendingState = (ctx, html) => {\n if (ctx.rosterJob.status !== jobStatuses.PENDING) {\n return;\n }\n\n if (!ctx.isSameGroupId) {\n return renderRosterInitiatedByHigherAdminMessage(ctx, html);\n }\n\n let message;\n let columnClass;\n let note;\n const actions = [];\n actions.push(html`\n \n `);\n\n if (ctx.rosterJob.has_teacher_email_changes) {\n columnClass = 'col-xs-12 col-sm-4';\n message = ctx.__('', 'This roster contains email changes for one or more existing teachers. This action will update their login emails. They will be notified of this change, and passwords will remain unchanged. Proceed?');\n\n actions.push(html`\n \n `);\n\n actions.push(html`\n \n `);\n\n note = html`\n

Note: It is recommended that teachers change their own emails, which they can do from their own profile pages.

\n `;\n } else {\n if (ctx.rosterJob.job_type === jobTypes.ROSTER_FULL) {\n columnClass = 'col-xs-6 col-sm-3';\n actions.push(html`\n \n `);\n }\n else {\n columnClass = 'col-xs-6 col-sm-3';\n message = ctx.__('', 'Do you want to commit the Roster you just uploaded?');\n actions.push(html`\n \n `);\n }\n }\n\n return html`\n
\n ${ctx.rosterJob.job_type === jobTypes.ROSTER_FULL ? html`\n

\n ${until(ctx.__('', 'Confirm Replace Entire Roster'))}\n

\n

\n ${until(ctx.__('', 'To avoid losing data, ensure your CSV file set has all roster information, including any updates. Data currently rostered that is not present in your CSV one will be archived, and any pre-existing records also present in the new roster will be updated accordingly.

Any changes you make from this point will affect existing accounts associated with this institution.

Type “'))}${until(ctx.__('', 'Replace Entire Roster'))}${until(ctx.__('', '” in the box to continue: '))}\n \n ${!ctx.replaceRosterConfirmationMatches ? html`

${until(ctx.__('', 'Please enter the correct confirmation text to continue.'))}

`: ''}\n\n

` : html`

${until(message)}

`}\n\n ${ctx.rosterJob.skipped_count > 0 ? html`\n

\n ${until(ctx._r(ctx.__('', 'Your file contains %r1% new records you do not have permissions to create. To add them, please contact your admin. You still may proceed uploading your roster, but those records will be skipped.'), ctx.rosterJob.skipped_count))}\n

` : ''}\n
\n
\n ${actions.map((action) => html`
${action}
`)}\n
\n ${note}\n `;\n};\n\nconst renderFailState = (ctx, html) => {\n if (ctx.rosterJob.status !== jobStatuses.FAILED) {\n return;\n }\n\n return html`\n
\n
\n ${until(ctx.__('', 'Cancel'))}\n
\n
\n ${until(ctx.__('', 'Reupload Roster'))}\n
\n
\n `;\n};\n\nconst renderDoneState = (ctx, html) => {\n if (ctx.rosterJob.status !== jobStatuses.DONE) {\n return;\n }\n\n const errors = ctx.rosterJob.errors || [];\n const productError = errors.filter((error) => error.type === rosterErrors.CONFLICTING_PRODUCT_EMAIL);\n\n const errorContent = productError.length === 0 ? '' : html`\n

\n ${until(ctx.__('', 'There was a problem changing one or more teacher emails in the Age of Learning products they have access to. Please contact your admin.'))}\n \n

\n\n
    \n ${productError[0].payload.map((email) => html`
  • ${email}
  • `)}\n
\n `;\n\n return html`\n
\n
\n \n
\n
\n ${until(ctx.__('', 'Assign Licenses Now'))}\n
\n
\n\n ${errorContent}\n `;\n};\n","import styles from './template.css';\nimport template from './template';\nimport {AoflElement, customElement, property} from '@aofl/element';\nimport {mapStatePropertiesMixin} from '@aofl/map-state-properties-mixin';\nimport {i18nMixin} from '@aofl/i18n-mixin';\nimport translations from '../../i18n';\nimport {storeInstance} from '@aofl/store/dist/legacy';\nimport {\n sdoNs,\n jobTypes,\n jobStatuses,\n pages,\n modals,\n rosterJobStages,\n licenseAssignMode, environment,\n} from '@modules/constants-enumerate';\nimport {ApiService} from '@modules/api-service';\nimport {userJobs} from '@modules/user-jobs';\nimport {SimpleModal} from '@modules/simple-modal';\nimport '../../../../modules/license-assign/sdo';\nimport {RosterUtils} from '@modules/roster-utils';\n\n/**\n * @summary RosterValidatePage\n * @extends {mapStatePropertiesMixin(i18nMixin(AoflElement))}\n */\n@customElement('roster-validate')\nclass RosterValidate extends mapStatePropertiesMixin(i18nMixin(AoflElement)) {\n /**\n * Creates an instance of RosterValidate.\n */\n constructor() {\n super();\n\n this.storeInstance = storeInstance;\n this.translations = translations;\n }\n\n /**\n * @readonly\n */\n static is = 'roster-validate';\n\n /**\n * @type {Array}\n */\n @property({type: Array, attribute: false, mapState: `${sdoNs.SESSION}.$myGroups`, store: storeInstance})\n myGroups = [];\n\n @property({type: Array, attribute: false, mapState: `${sdoNs.SESSION}.group_info.level`, store: storeInstance})\n myLevel = '0';\n\n @property({type: Number, mapState: `${sdoNs.SESSION}.group_info.id`, store: storeInstance})\n myGroupId = 0;\n\n @property({type: Array, attribute: false, mapState: `${sdoNs.SESSION}.settings.tier_structure.labels`, store: storeInstance})\n tierStructureLabels = [];\n\n @property({type: Number, mapState: `${sdoNs.SESSION}.current_profile.user_id`, store: storeInstance})\n user_id = 0;\n\n @property({\n type: Object, attribute: false, async hasChanged(oldVal, newVal) {\n if (typeof oldVal.stage !== 'undefined' &&\n typeof oldVal.status !== 'undefined' &&\n typeof newVal.stage !== 'undefined' &&\n typeof newVal.status !== 'undefined' &&\n newVal.status !== jobStatuses.DONE && (\n oldVal.stage !== newVal.stage ||\n oldVal.status !== newVal.status\n )) {\n const rosterJobs = await ApiService.rosterJobGetList();\n storeInstance.commit({namespace: sdoNs.USER_JOBS, mutationId: 'setRosterJobs', payload: rosterJobs.jobs});\n\n if (oldVal.status === jobStatuses.FAILED && oldVal.stage === rosterJobStages.ROSTER_VALIDATE_ERRORS) {\n window.Appcues && window.Appcues.track('rosterValidateFailed');\n } else if (oldVal.status === jobStatuses.DONE\n && (newVal.status === jobStatuses.ACTIVE && newVal.stage === rosterJobStages.ROSTER_PROCESSING_COMMIT)) {\n window.Appcues && window.Appcues.track('rosterCommitDone');\n }\n }\n return true;\n }\n })\n rosterJob = {};\n\n @property({type: String})\n rosterUploadUrl = '';\n\n @property({type: String})\n replaceRosterCompareString = ''; // gets set to this.__('', 'Replace Entire Roster') in connectedCallback\n\n @property({type: String})\n replaceRosterConfirmation = '';\n\n @property({type: Boolean})\n replaceRosterConfirmationMatches = true;\n\n @property({type: Boolean})\n isSameGroupId = false;\n\n updateReplaceRosterConfirmation(e) {\n this.replaceRosterConfirmation = e.target.value.trim();\n }\n\n async connectedCallback() {\n super.connectedCallback();\n this.replaceRosterCompareString = await this.__('', 'Replace Entire Roster');\n this.replaceRosterCompareString = this.replaceRosterCompareString.strings[0];\n this.isSameGroupId = parseInt(this.rosterJob.group_id, 10) === this.myGroupId;\n }\n\n async commitRoster() {\n if (this.rosterJob.job_type !== jobTypes.ROSTER_FULL\n || (this.rosterJob.job_type === jobTypes.ROSTER_FULL\n && this.replaceRosterConfirmation === this.replaceRosterCompareString)\n // to allow for faster testing disable check on local and QAT\n || (this.rosterJob.job_type === jobTypes.ROSTER_FULL\n && environment.PROD === false)) {\n try {\n this.replaceRosterConfirmationMatches = true;\n await ApiService.rosterJobCommit(this.rosterJob.id);\n await Promise.all([userJobs.getJobs(), userJobs.getRosterJobs()]);\n this.interval = setInterval(() => userJobs.getRosterJobs(), userJobs.getDelay());\n } catch (e) {\n }\n } else if (this.rosterJob.job_type === jobTypes.ROSTER_FULL\n && this.replaceRosterConfirmation !== this.replaceRosterCompareString) {\n this.replaceRosterConfirmationMatches = false;\n }\n }\n\n async commitRosterNoEmailChange() {\n try {\n await ApiService.rosterJobCommit(this.rosterJob.id, {skip_emails: true});\n await userJobs.getJobs();\n } catch (e) {\n }\n }\n\n async cancelJob(e) {\n try {\n SimpleModal.show(modals.CANCEL_ROSTER_JOB_CONFIRMATION_MODAL, {\n rosterJobId: this.rosterJob.id,\n }, e);\n } catch (e) {\n }\n }\n\n async download() {\n await RosterUtils.download(this.rosterJob.id);\n }\n\n disconnectedCallback() {\n super.disconnectedCallback();\n clearInterval(this.interval);\n }\n\n openLicenseModal(e) {\n this.storeInstance.commit({\n namespace: sdoNs.LICENSE_ASSIGN,\n mutationId: 'setData',\n payload: {\n assignMode: licenseAssignMode.SELECTED,\n rosterId: this.rosterJob.id,\n subsetUrl: pages.STUDENT_SEARCH + `?filters.roster_job_id=${this.rosterJob.id}&wizard=true`\n }\n });\n\n SimpleModal.show(modals.LICENSE_ASSIGN_BULK, {}, e);\n }\n\n mapStateProperties() {\n const state = storeInstance.getState();\n if (!state[sdoNs.SESSION].loggedIn) return;\n this.rosterJob = state[sdoNs.USER_JOBS].$activeRosterJob;\n this.rosterUploadUrl = state[sdoNs.USER_JOBS].$rosterUploadUrl;\n }\n\n /**\n *\n * @return {Object}\n */\n render() {\n return super.render({\n default: {template, styles: [styles]}\n });\n }\n}\n\nexport default RosterValidate;\n","module.exports = __webpack_public_path__ + \"df932ded44d21317f34f717d08b27961.webp\";","exports = module.exports = require(\"../../../node_modules/css-loader/dist/runtime/api.js\")(false);\n// Imports\nvar getUrl = require(\"../../../node_modules/css-loader/dist/runtime/getUrl.js\");\nvar ___CSS_LOADER_URL___0___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-light.woff2\"));\nvar ___CSS_LOADER_URL___1___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-lightit.woff2\"));\nvar ___CSS_LOADER_URL___2___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-reg.woff2\"));\nvar ___CSS_LOADER_URL___3___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-regit.woff2\"));\nvar ___CSS_LOADER_URL___4___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-sbold.woff2\"));\nvar ___CSS_LOADER_URL___5___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-sboldit.woff2\"));\nvar ___CSS_LOADER_URL___6___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-bold.woff2\"));\nvar ___CSS_LOADER_URL___7___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-boldit.woff2\"));\nvar ___CSS_LOADER_URL___8___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-Light.woff2\"));\nvar ___CSS_LOADER_URL___9___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-LightIt.woff2\"));\nvar ___CSS_LOADER_URL___10___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-Regular.woff2\"));\nvar ___CSS_LOADER_URL___11___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-RegularIt.woff2\"));\nvar ___CSS_LOADER_URL___12___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-Semibold.woff2\"));\nvar ___CSS_LOADER_URL___13___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-SemiboldIt.woff2\"));\nvar ___CSS_LOADER_URL___14___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-Bold.woff2\"));\nvar ___CSS_LOADER_URL___15___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-BoldIt.woff2\"));\nvar ___CSS_LOADER_URL___16___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-ExtraBold.woff2\"));\nvar ___CSS_LOADER_URL___17___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-ExtraBoldIt.woff2\"));\nvar ___CSS_LOADER_URL___18___ = getUrl(require(\"../../template/main/fonts/aofl-icons/icomoon.woff2?c6f21u\"));\n// Module\nexports.push([module.id, \"/*! @aofl-component */:root{--blue:#0d6efd;--indigo:#6610f2;--purple:#8b42ca;--pink:#e83e8c;--red:#e50b0a;--orange:#e17a05;--yellow:#ffc107;--green:#3c8104;--teal:#20c997;--cyan:#53c9dc;--white:#fff;--gray:#6b6b6b;--gray-dark:#343a40;--light-green:#b1dd53;--table-border-color:#d8d8d8;--gray-100:#f2f2f2;--gray-200:#d9d9d9;--gray-300:#d8d8d8;--gray-400:#ced4da;--gray-500:#adb5bd;--gray-600:#6c757d;--gray-700:#4a4a4a;--gray-800:#343a40;--gray-900:#212529;--gray-accessibility:#6b6b6b;--primary:#0d6efd;--secondary:#adb5bd;--success:#3c8104;--info:#cfe2ff;--warning:#e17a05;--danger:#d20a09;--light:#f8f9fa;--dark:#000;--breakpoint-xxs:0;--breakpoint-xs:375px;--breakpoint-sm:576px;--breakpoint-md:768px;--breakpoint-lg:992px;--breakpoint-xl:1200px;--font-family-sans-serif:aofl-sans,Arial,Helvetica,sans-serif;--font-family-monospace:SFMono-Regular,Menlo,Monaco,Consolas,\\\"Liberation Mono\\\",\\\"Courier New\\\",monospace;--z-index-dropdown:1000;--z-index-sticky:1020;--z-index-fixed:1030;--z-index-modal-backdrop:1040;--z-index-modal:1050;--z-index-popover:1060;--z-index-tooltip:1070;--header-height:6rem;--content-height:calc(100vh - 6rem);--sidepanel-width:20rem;--purple-color:#641da3;--purple-600:#956abc;--purple-400:#c7afdd;--purple-200:#e0d2ed;--struggling:#f6993b;--below-target:#ffcf00;--in_progress:#1280f5;--prior_knowledge:#edf887;--mastery_achieved:#69d112;--inactive:#d8d8d8}route-view{max-width:1200px}@font-face{font-family:aofl-sans;font-style:normal;font-weight:300;src:url(\" + ___CSS_LOADER_URL___0___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:italic;font-weight:300;src:url(\" + ___CSS_LOADER_URL___1___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:normal;font-weight:400;src:url(\" + ___CSS_LOADER_URL___2___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:italic;font-weight:400;src:url(\" + ___CSS_LOADER_URL___3___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:normal;font-weight:600;src:url(\" + ___CSS_LOADER_URL___4___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:italic;font-weight:600;src:url(\" + ___CSS_LOADER_URL___5___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:normal;font-weight:700;src:url(\" + ___CSS_LOADER_URL___6___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:italic;font-weight:700;src:url(\" + ___CSS_LOADER_URL___7___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:normal;font-weight:300;src:url(\" + ___CSS_LOADER_URL___8___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:italic;font-weight:300;src:url(\" + ___CSS_LOADER_URL___9___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:normal;font-weight:400;src:url(\" + ___CSS_LOADER_URL___10___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:italic;font-weight:400;src:url(\" + ___CSS_LOADER_URL___11___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:normal;font-weight:600;src:url(\" + ___CSS_LOADER_URL___12___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:italic;font-weight:600;src:url(\" + ___CSS_LOADER_URL___13___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:normal;font-weight:700;src:url(\" + ___CSS_LOADER_URL___14___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:italic;font-weight:700;src:url(\" + ___CSS_LOADER_URL___15___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:normal;font-weight:800;src:url(\" + ___CSS_LOADER_URL___16___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:italic;font-weight:800;src:url(\" + ___CSS_LOADER_URL___17___ + \") format(\\\"woff2\\\")}@font-face{font-family:icomoon;src:url(\" + ___CSS_LOADER_URL___18___ + \") format(\\\"woff2\\\");font-weight:400;font-style:normal;font-display:block}[class*=\\\" ai-\\\"],[class^=ai-]{font-family:icomoon!important;speak:never;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.ai-chevron-down:before{content:\\\"\\\\e90d\\\"}*,:after,:before{box-sizing:border-box}html{font-family:sans-serif;line-height:1.15;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:rgba(0,0,0,0)}figcaption,main,nav,section{display:block}[tabindex=\\\"-1\\\"]:focus{outline:0!important}strong{font-weight:bolder}a{color:#0d6efd;background-color:transparent}a,a:hover{text-decoration:none}a:hover{color:rgb(0,86.1,178.5)}a:not([href]):not([tabindex]),a:not([href]):not([tabindex]):focus,a:not([href]):not([tabindex]):hover{color:inherit;text-decoration:none}a:not([href]):not([tabindex]):focus{outline:0}caption{padding-top:.75rem;padding-bottom:.75rem;color:#6c757d;text-align:left;caption-side:bottom}label{display:inline-block;margin-bottom:.8rem}button{border-radius:0}button:focus{outline:1px dotted;outline:5px auto -webkit-focus-ring-color}button,input{margin:0;font-family:inherit;font-size:inherit;line-height:inherit;overflow:visible}button{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]:not(:disabled),[type=reset]:not(:disabled),[type=submit]:not(:disabled),button:not(:disabled){cursor:pointer}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{padding:0;border-style:none}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}input[type=date],input[type=datetime-local],input[type=month],input[type=time]{-webkit-appearance:listbox}legend{display:block;width:100%;max-width:100%;padding:0;margin-bottom:.5rem;font-size:1.5rem;line-height:inherit;color:inherit;white-space:normal}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:none}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}summary{display:list-item;cursor:pointer}template{display:none}[hidden]{display:none!important}*{-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important}html{font-size:62.5%;height:100%}link-to{color:#0d6efd;text-decoration:none;background-color:transparent}link-to:hover{color:rgb(0,86.1,178.5);text-decoration:none;cursor:pointer}route-view{display:none;flex:1}site-header{background-color:#fff;display:none;position:-webkit-sticky;position:sticky;top:0;height:var(--header-height)}#main{display:none;flex:1 auto;max-width:100%;overflow:hidden;flex-direction:column;overflow-y:scroll}.loaded #main,.loaded site-header,body.loaded,route-view.loaded{display:flex}route-view.left-panel-active{padding-left:var(--sidepanel-width)}input[type=checkbox],input[type=radio]{cursor:pointer}input[type=checkbox]+label,input[type=radio]+label{cursor:pointer}.btn,input[type=checkbox]+label,input[type=radio]+label{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.btn{display:inline-block;font-weight:400;color:#000;text-align:center;vertical-align:middle;background-color:transparent;border:1px solid transparent;padding:.375rem .75rem;font-size:1.6rem;line-height:1.5;border-radius:.25rem;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.btn{transition:none}}.btn:hover{color:#000;text-decoration:none}.btn:focus{outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.btn:disabled{opacity:.65}.btn-outline-light{color:#f8f9fa;border-color:#f8f9fa}.btn-outline-light:hover{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-outline-light:focus{box-shadow:0 0 0 .2rem rgba(248,249,250,.5)}.btn-outline-light:disabled{color:#f8f9fa;background-color:transparent}.btn-outline-light:not(:disabled):not(.disabled):active{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-outline-light:not(:disabled):not(.disabled):active:focus{box-shadow:0 0 0 .2rem rgba(248,249,250,.5)}.btn:disabled{cursor:not-allowed}link-to.btn:disabled,link-to.btn[disabled]{pointer-events:none}.btn-outline-light{color:#000;border-color:#ced4da;background:#fff}.btn-outline-light:disabled{color:#000}.btn-outline-light:hover{border-color:#ced4da}button,button:active{outline:none}.btn:focus-visible,[tabindex=\\\"0\\\"]:focus-visible,a:focus-visible,aofl-list-option:focus-visible,button[type=button]:focus-visible,collapse-button:focus-visible{outline:1px solid #e50b0a;border:1px solid #e50b0a}.btn:disabled{background:#cfe2ff;border-color:#cfe2ff;color:#0d6efd;opacity:1}.dropdown{position:relative}.dropdown-toggle{white-space:nowrap}.dropdown-toggle:after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:\\\"\\\";border-top:.3em solid;border-right:.3em solid transparent;border-bottom:0;border-left:.3em solid transparent}.dropdown-toggle:empty:after{margin-left:0}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:16rem;padding:.8rem 0;margin:.2rem 0 0;font-size:1.3rem;color:#212529;text-align:left;list-style:none;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.15);border-radius:.25rem}.dropdown-menu[x-placement^=bottom],.dropdown-menu[x-placement^=left],.dropdown-menu[x-placement^=right],.dropdown-menu[x-placement^=top]{right:auto;bottom:auto}.dropdown-item{display:block;width:100%;padding:.8rem 2rem;clear:both;font-weight:400;color:#212529;text-align:inherit;white-space:nowrap;background-color:transparent;border:0}.dropdown-item:focus,.dropdown-item:hover{color:rgb(21.6283783784,24.25,26.8716216216);text-decoration:none;background-color:#d8d8d8}.dropdown-item:active{color:#fff;text-decoration:none;background-color:#0d6efd}.dropdown-item:disabled{color:#6c757d;pointer-events:none;background-color:transparent}.dropdown,.dropdown-menu{display:inline-block}.dropdown-menu{box-shadow:0 0 .6rem 0 #d8d8d8;float:none;position:relative;margin:.2rem .4rem .4rem 0;min-width:1rem}bulk-actions-button+.dropdown-menu{max-width:270px;width:100%}bulk-actions-button+.dropdown-menu .btn{font-size:1.2rem;font-weight:600}collapse-button .ai.ai-chevron-down:before{transform:rotate(-90deg);display:inline-block}ems-dropdown>button.btn{display:flex;align-items:center;border:1px solid var(--gray)}collapse-button[open] .ai.ai-chevron-down:before{transform:rotate(180deg)}collapse-button .ai.ai-chevron-down,ems-dropdown .ai.ai-chevron-down{font-size:.8rem}collapse-button .ai-chevron-down:before,ems-dropdown .ai-chevron-down:before{content:\\\"\\\\e90d\\\"}collapse-button[open] .ai-chevron-down:before,ems-dropdown[open] .ai-chevron-down:before{content:\\\"\\\\e90f\\\"}@keyframes progress-bar-stripes{0%{background-position:1.6rem 0}to{background-position:0 0}}.modal-container{background-color:rgba(0,0,0,.2);position:fixed;top:0;bottom:0;right:0;left:0;z-index:var(--z-index-modal)}.modal-container :first-child{overflow:auto}.modal{position:relative;display:block;height:100vh}.modal-dialog-centered.modal-dialog-scrollable{height:auto;max-height:calc(100% - 2.8rem);min-height:auto}.modal-body,.modal-content,.modal-footer,.modal-header{border:none}.modal-header{font-size:2rem;padding:2.4rem}.modal-body{padding:0 2.4rem 4.8rem}.colored-header{color:#fff}.modal-body p{text-align:left}.colored-header-primary{background-color:#0d6efd}.colored-header-secondary{background-color:#adb5bd}.colored-header-success{background-color:#3c8104}.colored-header-info{background-color:#cfe2ff}.colored-header-warning{background-color:#e17a05}.colored-header-danger{background-color:#d20a09}.colored-header-light{background-color:#f8f9fa}.colored-header-dark{background-color:#000}@keyframes spinner-border{to{transform:rotate(1turn)}}@keyframes spinner-grow{0%{transform:scale(0)}50%{opacity:1}}.w-100{width:100%!important}.m-0{margin:0!important}.mr-3{margin-right:1rem!important}.mb-3{margin-bottom:1rem!important}[hidden]{visibility:hidden!important;height:0!important;width:0!important;min-height:unset!important}@media print{*,:after,:before{text-shadow:none!important;box-shadow:none!important}a:not(.btn){text-decoration:underline}@page{size:a3}}@media print{main::-webkit-scrollbar{display:none}main{-ms-overflow-style:none;scrollbar-width:none}}@page{size:A4;margin:20mm 16mm 20mm 16mm}:host{display:inline-block}\", \"\"]);\n","import {until} from 'lit-html/directives/until';\nimport {repeat} from 'lit-html/directives/repeat';\nimport '@modules/auth-context';\nimport {formLabels, generalLabels, toastStatus, qrCodes} from '@modules/i18n-labels';\nimport '@modules/product-card-info';\nimport '@modules/multi-classroom-select-group-filter';\nimport '@modules/class-selection';\nimport '@modules/auth-context';\nimport '@modules/aofl-form';\nimport '@modules/phone-input';\nimport {hasOneOfPermissions} from '@modules/permissions';\nimport {permissions} from '@modules/constants-enumerate';\n\nexport default (ctx, html) => html`\n${ctx.disabled\n ? html`\n
\n ${ctx.hasPerms ? until(toastStatus.saveFailTpRosteringConnected) : until(toastStatus.insufficentPermissionsEdit)}\n
`\n : ''}\n\n\n
\n
\n ${until(formLabels.requiredField)}\n
\n\n ${renderFormFields(ctx, html)}\n\n ${renderClasses(ctx, html)}\n\n ${renderProducts(ctx, html)}\n\n \n\n
\n
\n`;\n\nconst showIf = (conditionToShow, content) => {\n if (conditionToShow === true) {\n return content;\n }\n};\n\nconst renderFormFields = (ctx, html) => html`\n
\n
\n
\n \n
\n \n ${!ctx.form.firstName.isRequired.valid ? html`

${until(ctx.__('', 'First name is required.'))}

`: ''}\n
\n
\n
\n
\n
\n \n
\n \n
\n
\n
\n ${ctx.teacherLoginEnabled && !ctx.isTeacherCreate ? html `\n
\n
\n \n
\n \n
\n
\n
\n
\n
\n \n
\n \n
\n
\n
\n ` : ''}\n
\n
\n \n
\n \n
\n ${!ctx.form.contactEmail.valid ? html`

${until(generalLabels.invalidEmailError)}

`: ''}\n
\n
\n
\n
\n \n
\n \n
\n ${!ctx.form.contactPhone.valid ? html`

${until(generalLabels.invalidPhoneError)}

`: ''}\n
\n
\n\n
\n
\n
${until(ctx.__('', 'Preferred Communication'))}
\n
\n \n \n \n \n
\n
\n
\n\n
\n
\n \n
\n \n
\n ${!ctx.form.externalId.duplicate.valid ? html`

${until(ctx.__('', 'External id already in use'))}

`: ''}\n
\n
\n
\n\n${!ctx.form.isThereEmailOrPhone.valid ? html`

${until(ctx.__('', 'Provide an email or phone number.'))}

`: ''}\n`;\n\nconst renderClasses = (ctx, html) => {\n return html`\n
\n\n
\n

${until(ctx.__('', 'Classes'))}

\n ${!ctx.disabled ? html`\n ` : '' }\n
\n\n \n \n `;\n};\n\nconst renderProducts = (ctx, html) => html`\n
\n\n
\n
\n

${until(ctx.__('', 'Products'))}

\n ${showIf(\n ctx.qrEnabled,\n html`\n \n `\n )}\n
\n\n
\n ${repeat(ctx.products, (item) => item.product, (item) => renderProductCard(html, item))}\n
\n\n

\n ${until(ctx.__('', 'Teacher licenses are determined by what access students have in their classes.'))}\n

\n
\n`;\n\nconst renderProductCard = (html, item) => html`\n
\n \n
\n`;\n","import styles from './template.css';\nimport template from './template';\nimport {AoflElement, customElement, property} from '@aofl/element';\nimport {i18nMixin} from '@aofl/i18n-mixin';\nimport {validationMixin, isRequired} from '@aofl/form-validate';\nimport translations from '../../i18n';\nimport {sdoNs, permissions, modals, exceptionCodes, objectTypes} from '@modules/constants-enumerate';\nimport {emailLike, phoneLike} from '@modules/custom-form-validators';\nimport '@modules/sdo-teacher-info';\nimport {storeInstance} from '@aofl/store/dist/legacy';\nimport {SimpleModal} from '@modules/simple-modal';\nimport {Toast} from '@modules/toast';\nimport {ApiService} from '@modules/api-service';\nimport {toastStatus} from '@modules/i18n-labels';\nimport {hasOneOfPermissions} from '@modules/permissions';\nimport {userJobs} from '@modules/user-jobs';\n\n/**\n * @summary TeacherEditForm\n * @extends {validationMixin(i18nMixin(AoflElement))}\n */\n@customElement('teacher-edit-form')\nclass TeacherEditForm extends validationMixin(i18nMixin(AoflElement)) {\n /**\n * Creates an instance of TeacherEditForm.\n */\n constructor() {\n super();\n this.translations = translations;\n this.validators = {\n firstName: {isRequired},\n parentId: {\n required: (value) => {\n return value !== 0;\n }\n },\n email: {\n emailLike,\n conflicting: (value) => {\n return !value || !this.conflictingEmail || value !== this.conflictingEmail;\n },\n },\n contactEmail: {\n emailLike,\n },\n lastName: {temp: () => true},\n phone: {\n phoneLike,\n },\n contactPhone: {\n phoneLike,\n },\n isThereEmailOrPhone: {\n emailOrPhone: this.emailOrPhone.bind(this),\n },\n externalId: {\n duplicate: (value) => {\n return !value || !this.duplicateExternalId || value !== this.duplicateExternalId;\n }\n },\n preferredCommunication: {temp: () => true},\n $classesGroupedBySchool: {temp: () => true},\n };\n }\n\n emailOrPhone() {\n // If we are creating a teacher, only check contact email/phone, else check all of them\n return isRequired(this.contactEmail) || isRequired(this.contactPhone);\n }\n\n /**\n * @readonly\n */\n static is = 'teacher-edit-form';\n formData = null;\n\n @property({type: String, mapState: `${sdoNs.TEACHER_INFO}.id`, store: storeInstance})\n teacherId = '';\n\n @property({type: String, mapState: `${sdoNs.TEACHER_INFO}.first_name`, store: storeInstance})\n firstName = '';\n\n @property({type: String, mapState: `${sdoNs.TEACHER_INFO}.last_name`, store: storeInstance})\n lastName = '';\n\n @property({type: String, mapState: `${sdoNs.TEACHER_INFO}.external_id`, store: storeInstance})\n externalId = '';\n\n @property({type: String, mapState: `${sdoNs.TEACHER_INFO}.preferred_communication`, store: storeInstance})\n preferredCommunication = '';\n\n @property({type: String, mapState: `${sdoNs.TEACHER_INFO}.phone`, store: storeInstance})\n phone = '';\n\n @property({type: String, mapState: `${sdoNs.TEACHER_INFO}.email`, store: storeInstance})\n email = '';\n\n @property({type: String, mapState: `${sdoNs.TEACHER_INFO}.contact_phone`, store: storeInstance})\n contactPhone = '';\n\n @property({type: String, mapState: `${sdoNs.TEACHER_INFO}.contact_email`, store: storeInstance})\n contactEmail = '';\n\n @property({type: Object, mapState: `${sdoNs.TEACHER_INFO}.$groupInfo`, store: storeInstance})\n groupInfo = {};\n\n @property({type: Boolean})\n saving = false;\n\n @property({type: Array, mapState: `${sdoNs.TEACHER_INFO}.classes`, store: storeInstance})\n classes = [];\n\n @property({type: Boolean, mapState: `${sdoNs.SESSION}.settings.teacher_login_enabled`, store: storeInstance})\n teacherLoginEnabled = false;\n\n @property({type: Array, mapState: `${sdoNs.TEACHER_INFO}.$classesGroupedBySchool`, store: storeInstance})\n $classesGroupedBySchool = [];\n\n @property({type: Array, attribute: false, mapState: `${sdoNs.TEACHER_INFO}.$products`, store: storeInstance})\n products = [];\n\n @property({type: Boolean, mapState: `${sdoNs.TEACHER_INFO}.$qrEnabled`, store: storeInstance})\n qrEnabled = false;\n\n @property({type: Object, mapState: `${sdoNs.SESSION}.third_party_connected_group`, store: storeInstance})\n thirdPartyConnectedGroup = null;\n\n showEmptyClassSelection = false;\n\n another = false;\n\n @property({type: Boolean})\n disabled = false;\n\n @property({type: Boolean})\n hasPerms = false;\n\n conflictingEmail = '';\n\n reset() {\n this.saving = false;\n this.form.reset();\n storeInstance.commit({\n namespace: sdoNs.TEACHER_INFO,\n mutationId: 'init'\n });\n this.requestUpdate();\n this.dispatchValidateEvent();\n }\n\n dataUpdated(e) {\n if (this.disabled) {\n return;\n }\n if (e.detail.action === 'remove') {\n storeInstance.commit({\n namespace: sdoNs.TEACHER_INFO,\n mutationId: 'removeClass',\n payload: e.detail.classInfo.index\n });\n } else {\n storeInstance.commit(\n {\n namespace: sdoNs.TEACHER_INFO,\n mutationId: 'addGroups',\n payload: e.detail.selectedGroups,\n },\n {\n namespace: sdoNs.TEACHER_INFO,\n mutationId: 'addClass',\n payload: e.detail.class,\n }\n );\n this.showEmptyClassSelection = false;\n }\n\n this.form.$classesGroupedBySchool.validate();\n this.dispatchValidateEvent();\n }\n\n firstNameUpdated(e) {\n this.firstName = e.target.value.trim();\n storeInstance.commit({\n namespace: sdoNs.TEACHER_INFO,\n mutationId: 'setFirst_name',\n payload: this.firstName\n });\n this.form.firstName.validate();\n this.dispatchValidateEvent();\n }\n\n lastNameUpdated(e) {\n this.lastName = e.target.value.trim();\n storeInstance.commit({\n namespace: sdoNs.TEACHER_INFO,\n mutationId: 'setLast_name',\n payload: this.lastName\n });\n this.form.lastName.validate();\n this.dispatchValidateEvent();\n }\n\n externalIdUpdated(e) {\n this.externalId = e.target.value.trim();\n storeInstance.commit({\n namespace: sdoNs.TEACHER_INFO,\n mutationId: 'setExternal_id',\n payload: this.externalId\n });\n }\n\n async preferredCommunicationUpdated(e) {\n this.preferredCommunication = e.target.value.trim();\n storeInstance.commit({\n namespace: sdoNs.TEACHER_INFO,\n mutationId: 'setPreferred_communication',\n payload: this.preferredCommunication\n });\n this.form.preferredCommunication.validate();\n this.dispatchValidateEvent();\n\n if (!this.disabled) return;\n try {\n Toast.dismissAll();\n await ApiService.teacherUpdatePreferredCommunication(this.teacherId, this.preferredCommunication);\n Toast.success('Teacher preferred communication updated');\n } catch (e) {\n Toast.error(toastStatus.oops);\n }\n }\n\n emailUpdated(e) {\n this.email = e.target.value.trim();\n storeInstance.commit({namespace: sdoNs.TEACHER_INFO, mutationId: 'setEmail', payload: this.email});\n this.form.email.validate();\n this.form.isThereEmailOrPhone.validate();\n this.dispatchValidateEvent();\n }\n\n async downloadQRCode() {\n userJobs.pause();\n await ApiService.generateQr(\n {\n object_ids: [this.teacherId],\n object_type: objectTypes.USER\n }\n );\n userJobs.getJobs();\n }\n\n contactEmailUpdated(e) {\n this.contactEmail = e.target.value.trim();\n storeInstance.commit({namespace: sdoNs.TEACHER_INFO, mutationId: 'setContact_email', payload: this.contactEmail});\n this.form.contactEmail.validate();\n this.form.isThereEmailOrPhone.validate();\n this.dispatchValidateEvent();\n }\n\n setLoginModal(email, phone) {\n this.emailFromModal = email;\n this.phoneFromModal = phone;\n }\n\n phoneUpdated(e) {\n this.phone = e.target.value.trim();\n storeInstance.commit({namespace: sdoNs.TEACHER_INFO, mutationId: 'setPhone', payload: this.phone});\n this.form.phone.validate();\n this.form.isThereEmailOrPhone.validate();\n this.dispatchValidateEvent();\n }\n\n contactPhoneUpdated(e) {\n this.contactPhone = e.target.value.trim();\n storeInstance.commit({namespace: sdoNs.TEACHER_INFO, mutationId: 'setContact_phone', payload: this.contactPhone});\n this.form.contactPhone.validate();\n this.form.isThereEmailOrPhone.validate();\n this.dispatchValidateEvent();\n }\n\n async dispatchValidateEvent() {\n await this.form.validateComplete;\n this.dispatchEvent(new CustomEvent('validate', {detail: {phone: this.phone, contactPhone: this.contactPhone}}));\n }\n\n get confirmLoginChange() {\n if ((this.contactEmail !== this.emailFromModal) && (typeof this.emailFromModal !== 'undefined')) {\n return true;\n }\n if ((this.contactPhone !== this.phoneFromModal) && (typeof this.phoneFromModal !== 'undefined')) {\n return true;\n }\n return false;\n }\n\n async submit(e) {\n this.saving = true;\n e.preventDefault();\n\n const classIds = this.classes.map((classInfo) => classInfo.id)\n .join(',');\n\n const form = e.target;\n this.formData = new FormData(form);\n this.formData.set('teacher-id', this.teacherId);\n this.formData.set('class-ids', classIds);\n this.formData.set('phone', this.phone);\n\n this.form.validate();\n await this.form.validationComplete;\n\n if (this.form.valid) {\n let save = true;\n if (this.teacherLoginEnabled && (\n (this.ogEmail && this.email && this.email !== this.ogEmail) ||\n (this.ogPhone && this.phone && this.phone !== this.ogPhone)\n )) {\n save = await new Promise((resolve) => SimpleModal.show(modals.CONFIRM_TEACHER_LOGIN_CHANGE, {resolve}));\n }\n\n if (save) {\n this.dispatchEvent(new CustomEvent('edit-teacher-submit', {\n bubbles: true,\n composed: true,\n }));\n\n this.ogEmail = this.email;\n this.ogPhone = this.phone;\n }\n } else {\n this.saving = false;\n }\n }\n\n async setErrors(errors) {\n this.saving = false;\n\n if (!errors) {\n return;\n }\n\n if (\n errors.code === exceptionCodes.INPUT_CONFLICTING_PRODUCT_CREDENTIALS ||\n (errors.code === exceptionCodes.INPUT_GENERAL && typeof errors.payload[0]?.email?.duplicate !== 'undefined')\n ) {\n this.conflictingEmail = this.email;\n }\n\n if (errors.code === exceptionCodes.INPUT_GENERAL) {\n if (typeof errors.payload[0]?.external_id?.duplicate !== 'undefined') {\n this.duplicateExternalId = this.externalId;\n }\n }\n\n this.form.validate();\n await this.form.validationComplete;\n }\n\n connectedCallback() {\n super.connectedCallback();\n\n const state = storeInstance.getState();\n if (\n (this.thirdPartyConnectedGroup && state[sdoNs.TEACHER_INFO].managed_by) ||\n !hasOneOfPermissions([permissions.TEACHER_EDIT])\n ) {\n this.disabled = true;\n this.hasPerms = (hasOneOfPermissions([permissions.TEACHER_EDIT]));\n }\n\n this.ogEmail = this.email;\n this.ogPhone = this.phone;\n }\n\n /**\n *\n * @return {Object}\n */\n render() {\n return super.render({\n default: {\n template,\n styles: [styles]\n }\n });\n }\n}\n\nexport default TeacherEditForm;\n","exports = module.exports = require(\"../../../../../node_modules/css-loader/dist/runtime/api.js\")(false);\n// Imports\nvar getUrl = require(\"../../../../../node_modules/css-loader/dist/runtime/getUrl.js\");\nvar ___CSS_LOADER_URL___0___ = getUrl(require(\"../../../../template/main/fonts/aofl-sans/aoflsans-light.woff2\"));\nvar ___CSS_LOADER_URL___1___ = getUrl(require(\"../../../../template/main/fonts/aofl-sans/aoflsans-lightit.woff2\"));\nvar ___CSS_LOADER_URL___2___ = getUrl(require(\"../../../../template/main/fonts/aofl-sans/aoflsans-reg.woff2\"));\nvar ___CSS_LOADER_URL___3___ = getUrl(require(\"../../../../template/main/fonts/aofl-sans/aoflsans-regit.woff2\"));\nvar ___CSS_LOADER_URL___4___ = getUrl(require(\"../../../../template/main/fonts/aofl-sans/aoflsans-sbold.woff2\"));\nvar ___CSS_LOADER_URL___5___ = getUrl(require(\"../../../../template/main/fonts/aofl-sans/aoflsans-sboldit.woff2\"));\nvar ___CSS_LOADER_URL___6___ = getUrl(require(\"../../../../template/main/fonts/aofl-sans/aoflsans-bold.woff2\"));\nvar ___CSS_LOADER_URL___7___ = getUrl(require(\"../../../../template/main/fonts/aofl-sans/aoflsans-boldit.woff2\"));\nvar ___CSS_LOADER_URL___8___ = getUrl(require(\"../../../../template/main/fonts/abcmouse-sans/ABCmouseSans-Light.woff2\"));\nvar ___CSS_LOADER_URL___9___ = getUrl(require(\"../../../../template/main/fonts/abcmouse-sans/ABCmouseSans-LightIt.woff2\"));\nvar ___CSS_LOADER_URL___10___ = getUrl(require(\"../../../../template/main/fonts/abcmouse-sans/ABCmouseSans-Regular.woff2\"));\nvar ___CSS_LOADER_URL___11___ = getUrl(require(\"../../../../template/main/fonts/abcmouse-sans/ABCmouseSans-RegularIt.woff2\"));\nvar ___CSS_LOADER_URL___12___ = getUrl(require(\"../../../../template/main/fonts/abcmouse-sans/ABCmouseSans-Semibold.woff2\"));\nvar ___CSS_LOADER_URL___13___ = getUrl(require(\"../../../../template/main/fonts/abcmouse-sans/ABCmouseSans-SemiboldIt.woff2\"));\nvar ___CSS_LOADER_URL___14___ = getUrl(require(\"../../../../template/main/fonts/abcmouse-sans/ABCmouseSans-Bold.woff2\"));\nvar ___CSS_LOADER_URL___15___ = getUrl(require(\"../../../../template/main/fonts/abcmouse-sans/ABCmouseSans-BoldIt.woff2\"));\nvar ___CSS_LOADER_URL___16___ = getUrl(require(\"../../../../template/main/fonts/abcmouse-sans/ABCmouseSans-ExtraBold.woff2\"));\nvar ___CSS_LOADER_URL___17___ = getUrl(require(\"../../../../template/main/fonts/abcmouse-sans/ABCmouseSans-ExtraBoldIt.woff2\"));\nvar ___CSS_LOADER_URL___18___ = getUrl(require(\"../../../../template/main/fonts/aofl-icons/icomoon.woff2?c6f21u\"));\n// Module\nexports.push([module.id, \"/*! @aofl-component */:root{--blue:#0d6efd;--indigo:#6610f2;--purple:#8b42ca;--pink:#e83e8c;--red:#e50b0a;--orange:#e17a05;--yellow:#ffc107;--green:#3c8104;--teal:#20c997;--cyan:#53c9dc;--white:#fff;--gray:#6b6b6b;--gray-dark:#343a40;--light-green:#b1dd53;--table-border-color:#d8d8d8;--gray-100:#f2f2f2;--gray-200:#d9d9d9;--gray-300:#d8d8d8;--gray-400:#ced4da;--gray-500:#adb5bd;--gray-600:#6c757d;--gray-700:#4a4a4a;--gray-800:#343a40;--gray-900:#212529;--gray-accessibility:#6b6b6b;--primary:#0d6efd;--secondary:#adb5bd;--success:#3c8104;--info:#cfe2ff;--warning:#e17a05;--danger:#d20a09;--light:#f8f9fa;--dark:#000;--breakpoint-xxs:0;--breakpoint-xs:375px;--breakpoint-sm:576px;--breakpoint-md:768px;--breakpoint-lg:992px;--breakpoint-xl:1200px;--font-family-sans-serif:aofl-sans,Arial,Helvetica,sans-serif;--font-family-monospace:SFMono-Regular,Menlo,Monaco,Consolas,\\\"Liberation Mono\\\",\\\"Courier New\\\",monospace;--z-index-dropdown:1000;--z-index-sticky:1020;--z-index-fixed:1030;--z-index-modal-backdrop:1040;--z-index-modal:1050;--z-index-popover:1060;--z-index-tooltip:1070;--header-height:6rem;--content-height:calc(100vh - 6rem);--sidepanel-width:20rem;--purple-color:#641da3;--purple-600:#956abc;--purple-400:#c7afdd;--purple-200:#e0d2ed;--struggling:#f6993b;--below-target:#ffcf00;--in_progress:#1280f5;--prior_knowledge:#edf887;--mastery_achieved:#69d112;--inactive:#d8d8d8}route-view{max-width:1200px}@font-face{font-family:aofl-sans;font-style:normal;font-weight:300;src:url(\" + ___CSS_LOADER_URL___0___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:italic;font-weight:300;src:url(\" + ___CSS_LOADER_URL___1___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:normal;font-weight:400;src:url(\" + ___CSS_LOADER_URL___2___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:italic;font-weight:400;src:url(\" + ___CSS_LOADER_URL___3___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:normal;font-weight:600;src:url(\" + ___CSS_LOADER_URL___4___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:italic;font-weight:600;src:url(\" + ___CSS_LOADER_URL___5___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:normal;font-weight:700;src:url(\" + ___CSS_LOADER_URL___6___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:italic;font-weight:700;src:url(\" + ___CSS_LOADER_URL___7___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:normal;font-weight:300;src:url(\" + ___CSS_LOADER_URL___8___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:italic;font-weight:300;src:url(\" + ___CSS_LOADER_URL___9___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:normal;font-weight:400;src:url(\" + ___CSS_LOADER_URL___10___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:italic;font-weight:400;src:url(\" + ___CSS_LOADER_URL___11___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:normal;font-weight:600;src:url(\" + ___CSS_LOADER_URL___12___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:italic;font-weight:600;src:url(\" + ___CSS_LOADER_URL___13___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:normal;font-weight:700;src:url(\" + ___CSS_LOADER_URL___14___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:italic;font-weight:700;src:url(\" + ___CSS_LOADER_URL___15___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:normal;font-weight:800;src:url(\" + ___CSS_LOADER_URL___16___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:italic;font-weight:800;src:url(\" + ___CSS_LOADER_URL___17___ + \") format(\\\"woff2\\\")}@font-face{font-family:icomoon;src:url(\" + ___CSS_LOADER_URL___18___ + \") format(\\\"woff2\\\");font-weight:400;font-style:normal;font-display:block}[class*=\\\" ai-\\\"],[class^=ai-]{font-family:icomoon!important;speak:never;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.ai-target:before{content:\\\"\\\\e904\\\"}.ai-inactive:before{content:\\\"\\\\e91b\\\"}.ai-trophy:before{content:\\\"\\\\e934\\\"}*,:after,:before{box-sizing:border-box}html{font-family:sans-serif;line-height:1.15;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:rgba(0,0,0,0)}figcaption,main,nav,section{display:block}[tabindex=\\\"-1\\\"]:focus{outline:0!important}h1{margin-top:0;margin-bottom:1rem}strong{font-weight:bolder}img{vertical-align:middle;border-style:none}caption{padding-top:.75rem;padding-bottom:.75rem;color:#6c757d;text-align:left;caption-side:bottom}button{border-radius:0}button:focus{outline:1px dotted;outline:5px auto -webkit-focus-ring-color}button,input{margin:0;font-family:inherit;font-size:inherit;line-height:inherit;overflow:visible}button{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]:not(:disabled),[type=reset]:not(:disabled),[type=submit]:not(:disabled),button:not(:disabled){cursor:pointer}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{padding:0;border-style:none}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}input[type=date],input[type=datetime-local],input[type=month],input[type=time]{-webkit-appearance:listbox}legend{display:block;width:100%;max-width:100%;padding:0;margin-bottom:.5rem;font-size:1.5rem;line-height:inherit;color:inherit;white-space:normal}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:none}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}summary{display:list-item;cursor:pointer}template{display:none}[hidden]{display:none!important}*{-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important}html{font-size:62.5%;height:100%}link-to{color:#0d6efd;text-decoration:none;background-color:transparent}link-to:hover{color:rgb(0,86.1,178.5);text-decoration:none;cursor:pointer}route-view{display:none;flex:1}site-header{background-color:#fff;display:none;position:-webkit-sticky;position:sticky;top:0;height:var(--header-height)}#main{display:none;flex:1 auto;max-width:100%;overflow:hidden;flex-direction:column;overflow-y:scroll}.loaded #main,.loaded site-header,body.loaded,route-view.loaded{display:flex}route-view.left-panel-active{padding-left:var(--sidepanel-width)}.h1,h1{margin-bottom:1rem;font-weight:500;line-height:1.2;font-size:6rem}input[type=checkbox],input[type=radio]{cursor:pointer}button,button:active{outline:none}[tabindex=\\\"0\\\"]:focus-visible,aofl-list-option:focus-visible,button[type=button]:focus-visible,collapse-button:focus-visible{outline:1px solid #e50b0a;border:1px solid #e50b0a}@keyframes progress-bar-stripes{0%{background-position:1.6rem 0}to{background-position:0 0}}.modal-container{background-color:rgba(0,0,0,.2);position:fixed;top:0;bottom:0;right:0;left:0;z-index:var(--z-index-modal)}.modal-container :first-child{overflow:auto}.modal{position:relative;display:block;height:100vh}.modal-dialog-centered.modal-dialog-scrollable{height:auto;max-height:calc(100% - 2.8rem);min-height:auto}.modal-body,.modal-content,.modal-footer,.modal-header{border:none}.modal-header{font-size:2rem;padding:2.4rem}.modal-body{padding:0 2.4rem 4.8rem}.colored-header{color:#fff}.modal-body p{text-align:left}.colored-header-primary{background-color:#0d6efd}.colored-header-secondary{background-color:#adb5bd}.colored-header-success{background-color:#3c8104}.colored-header-info{background-color:#cfe2ff}.colored-header-warning{background-color:#e17a05}.colored-header-danger{background-color:#d20a09}.colored-header-light{background-color:#f8f9fa}.colored-header-dark{background-color:#000}@keyframes spinner-border{to{transform:rotate(1turn)}}@keyframes spinner-grow{0%{transform:scale(0)}50%{opacity:1}}.border{border:1px solid #d8d8d8!important}.d-flex{display:flex!important}.flex-grow-1{flex-grow:1!important}.align-items-center{align-items:center!important}.align-self-center{align-self:center!important}.mb-0{margin-bottom:0!important}.ml-2{margin-left:.5rem!important}.mx-3{margin-right:1rem!important;margin-left:1rem!important}.text-primary{color:#0d6efd!important}.text-success{color:#3c8104!important}.text-muted{color:#6c757d!important}.cursor-pointer:hover{cursor:pointer!important}.font-weight-semibold{font-weight:600!important}.text-blue{color:#0d6efd}.h1{font-weight:600}[hidden]{visibility:hidden!important;height:0!important;width:0!important;min-height:unset!important}@media print{*,:after,:before{text-shadow:none!important;box-shadow:none!important}img{page-break-inside:avoid}@page{size:a3}}@media print{main::-webkit-scrollbar{display:none}main{-ms-overflow-style:none;scrollbar-width:none}}@page{size:A4;margin:20mm 16mm 20mm 16mm}:host{display:block}.action-item{min-height:72px;padding-left:1.7rem;padding-right:1rem}.action-item-content{padding-right:2rem}.button-image{max-width:40px;font-size:3rem;line-height:1}.button-image>*{width:3rem}.button-content{display:flex;flex:6;line-height:1.2}\", \"\"]);\n","export default {\n 'es-US': () => import('./translations_es-US.json'),\n\n 'ja-JP': () => import('./translations_ja-JP.json'),\n\n 'zh-CN': () => import('./translations_zh-CN.json'),\n\n 'zh-TW': () => import('./translations_zh-TW.json'),\n}","exports = module.exports = require(\"../../../node_modules/css-loader/dist/runtime/api.js\")(false);\n// Imports\nvar getUrl = require(\"../../../node_modules/css-loader/dist/runtime/getUrl.js\");\nvar ___CSS_LOADER_URL___0___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-light.woff2\"));\nvar ___CSS_LOADER_URL___1___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-lightit.woff2\"));\nvar ___CSS_LOADER_URL___2___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-reg.woff2\"));\nvar ___CSS_LOADER_URL___3___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-regit.woff2\"));\nvar ___CSS_LOADER_URL___4___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-sbold.woff2\"));\nvar ___CSS_LOADER_URL___5___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-sboldit.woff2\"));\nvar ___CSS_LOADER_URL___6___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-bold.woff2\"));\nvar ___CSS_LOADER_URL___7___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-boldit.woff2\"));\nvar ___CSS_LOADER_URL___8___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-Light.woff2\"));\nvar ___CSS_LOADER_URL___9___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-LightIt.woff2\"));\nvar ___CSS_LOADER_URL___10___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-Regular.woff2\"));\nvar ___CSS_LOADER_URL___11___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-RegularIt.woff2\"));\nvar ___CSS_LOADER_URL___12___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-Semibold.woff2\"));\nvar ___CSS_LOADER_URL___13___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-SemiboldIt.woff2\"));\nvar ___CSS_LOADER_URL___14___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-Bold.woff2\"));\nvar ___CSS_LOADER_URL___15___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-BoldIt.woff2\"));\nvar ___CSS_LOADER_URL___16___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-ExtraBold.woff2\"));\nvar ___CSS_LOADER_URL___17___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-ExtraBoldIt.woff2\"));\nvar ___CSS_LOADER_URL___18___ = getUrl(require(\"../../template/main/fonts/aofl-icons/icomoon.woff2?c6f21u\"));\n// Module\nexports.push([module.id, \"/*! @aofl-component */:root{--blue:#0d6efd;--indigo:#6610f2;--purple:#8b42ca;--pink:#e83e8c;--red:#e50b0a;--orange:#e17a05;--yellow:#ffc107;--green:#3c8104;--teal:#20c997;--cyan:#53c9dc;--white:#fff;--gray:#6b6b6b;--gray-dark:#343a40;--light-green:#b1dd53;--table-border-color:#d8d8d8;--gray-100:#f2f2f2;--gray-200:#d9d9d9;--gray-300:#d8d8d8;--gray-400:#ced4da;--gray-500:#adb5bd;--gray-600:#6c757d;--gray-700:#4a4a4a;--gray-800:#343a40;--gray-900:#212529;--gray-accessibility:#6b6b6b;--primary:#0d6efd;--secondary:#adb5bd;--success:#3c8104;--info:#cfe2ff;--warning:#e17a05;--danger:#d20a09;--light:#f8f9fa;--dark:#000;--breakpoint-xxs:0;--breakpoint-xs:375px;--breakpoint-sm:576px;--breakpoint-md:768px;--breakpoint-lg:992px;--breakpoint-xl:1200px;--font-family-sans-serif:aofl-sans,Arial,Helvetica,sans-serif;--font-family-monospace:SFMono-Regular,Menlo,Monaco,Consolas,\\\"Liberation Mono\\\",\\\"Courier New\\\",monospace;--z-index-dropdown:1000;--z-index-sticky:1020;--z-index-fixed:1030;--z-index-modal-backdrop:1040;--z-index-modal:1050;--z-index-popover:1060;--z-index-tooltip:1070;--header-height:6rem;--content-height:calc(100vh - 6rem);--sidepanel-width:20rem;--purple-color:#641da3;--purple-600:#956abc;--purple-400:#c7afdd;--purple-200:#e0d2ed;--struggling:#f6993b;--below-target:#ffcf00;--in_progress:#1280f5;--prior_knowledge:#edf887;--mastery_achieved:#69d112;--inactive:#d8d8d8}route-view{max-width:1200px}@font-face{font-family:aofl-sans;font-style:normal;font-weight:300;src:url(\" + ___CSS_LOADER_URL___0___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:italic;font-weight:300;src:url(\" + ___CSS_LOADER_URL___1___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:normal;font-weight:400;src:url(\" + ___CSS_LOADER_URL___2___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:italic;font-weight:400;src:url(\" + ___CSS_LOADER_URL___3___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:normal;font-weight:600;src:url(\" + ___CSS_LOADER_URL___4___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:italic;font-weight:600;src:url(\" + ___CSS_LOADER_URL___5___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:normal;font-weight:700;src:url(\" + ___CSS_LOADER_URL___6___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:italic;font-weight:700;src:url(\" + ___CSS_LOADER_URL___7___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:normal;font-weight:300;src:url(\" + ___CSS_LOADER_URL___8___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:italic;font-weight:300;src:url(\" + ___CSS_LOADER_URL___9___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:normal;font-weight:400;src:url(\" + ___CSS_LOADER_URL___10___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:italic;font-weight:400;src:url(\" + ___CSS_LOADER_URL___11___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:normal;font-weight:600;src:url(\" + ___CSS_LOADER_URL___12___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:italic;font-weight:600;src:url(\" + ___CSS_LOADER_URL___13___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:normal;font-weight:700;src:url(\" + ___CSS_LOADER_URL___14___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:italic;font-weight:700;src:url(\" + ___CSS_LOADER_URL___15___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:normal;font-weight:800;src:url(\" + ___CSS_LOADER_URL___16___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:italic;font-weight:800;src:url(\" + ___CSS_LOADER_URL___17___ + \") format(\\\"woff2\\\")}@font-face{font-family:icomoon;src:url(\" + ___CSS_LOADER_URL___18___ + \") format(\\\"woff2\\\");font-weight:400;font-style:normal;font-display:block}[class*=\\\" ai-\\\"],[class^=ai-]{font-family:icomoon!important;speak:never;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*,:after,:before{box-sizing:border-box}html{font-family:sans-serif;line-height:1.15;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:rgba(0,0,0,0)}figcaption,main,nav,section{display:block}[tabindex=\\\"-1\\\"]:focus{outline:0!important}p{margin-top:0;margin-bottom:1.6rem}strong{font-weight:bolder}img{border-style:none}img,svg{vertical-align:middle}svg{overflow:hidden}caption{padding-top:.75rem;padding-bottom:.75rem;color:#6c757d;text-align:left;caption-side:bottom}button{border-radius:0}button:focus{outline:1px dotted;outline:5px auto -webkit-focus-ring-color}button,input{margin:0;font-family:inherit;font-size:inherit;line-height:inherit;overflow:visible}button{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]:not(:disabled),[type=reset]:not(:disabled),[type=submit]:not(:disabled),button:not(:disabled){cursor:pointer}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{padding:0;border-style:none}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}input[type=date],input[type=datetime-local],input[type=month],input[type=time]{-webkit-appearance:listbox}legend{display:block;width:100%;max-width:100%;padding:0;margin-bottom:.5rem;font-size:1.5rem;line-height:inherit;color:inherit;white-space:normal}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:none}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}summary{display:list-item;cursor:pointer}template{display:none}[hidden]{display:none!important}*{-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important}html{font-size:62.5%;height:100%}link-to{color:#0d6efd;text-decoration:none;background-color:transparent}link-to:hover{color:rgb(0,86.1,178.5);text-decoration:none;cursor:pointer}route-view{display:none;flex:1}site-header{background-color:#fff;display:none;position:-webkit-sticky;position:sticky;top:0;height:var(--header-height)}#main{display:none;flex:1 auto;max-width:100%;overflow:hidden;flex-direction:column;overflow-y:scroll}.loaded #main,.loaded site-header,body.loaded,route-view.loaded{display:flex}route-view.left-panel-active{padding-left:var(--sidepanel-width)}@media (max-width:767.98px){#content{padding-left:0!important}}.row{display:flex;flex-wrap:wrap;margin-right:-15px;margin-left:-15px}.col-6,.col-12,.col-md-6,.col-sm-12{position:relative;width:100%;padding-right:15px;padding-left:15px}.col-6{flex:0 0 50%;max-width:50%}.col-12{flex:0 0 100%;max-width:100%}@media (min-width:576px){.col-sm-12{flex:0 0 100%;max-width:100%}}@media (min-width:768px){.col-md-6{flex:0 0 50%;max-width:50%}}input[type=checkbox],input[type=radio]{cursor:pointer}.btn{display:inline-block;font-weight:400;color:#000;text-align:center;vertical-align:middle;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;background-color:transparent;border:1px solid transparent;padding:.375rem .75rem;font-size:1.6rem;line-height:1.5;border-radius:.25rem;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.btn{transition:none}}.btn:hover{color:#000;text-decoration:none}.btn:focus{outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.btn.disabled,.btn:disabled{opacity:.65}.btn-link{font-weight:400;color:#0d6efd;text-decoration:none}.btn-link:hover{color:rgb(0,86.1,178.5);text-decoration:none}.btn-link:focus{text-decoration:none;box-shadow:none}.btn-link.disabled,.btn-link:disabled{color:#6c757d;pointer-events:none}.btn:disabled{cursor:not-allowed}.btn.disabled,link-to.btn.disabled,link-to.btn:disabled,link-to.btn[disabled]{pointer-events:none}button,button:active{outline:none}.btn:focus-visible,[tabindex=\\\"0\\\"]:focus-visible,aofl-list-option:focus-visible,button[type=button]:focus-visible,collapse-button:focus-visible{outline:1px solid #e50b0a;border:1px solid #e50b0a}.btn-link:focus-visible{border:2px solid #e50b0a}.btn.disabled,.btn:disabled{background:#cfe2ff;border-color:#cfe2ff;color:#0d6efd;opacity:1}ems-dropdown>button.btn{display:flex;align-items:center;border:1px solid var(--gray)}.card{position:relative;display:flex;flex-direction:column;min-width:0;word-wrap:break-word;background-color:#fff;background-clip:border-box;border:1px solid rgba(0,0,0,.125);border-radius:.25rem}.card-body{flex:1 1 auto}.card-header{padding:1.2rem 2rem;margin-bottom:0;background-color:rgba(0,0,0,.03);border-bottom:1px solid rgba(0,0,0,.125)}.card-header:first-child{border-radius:calc(.25rem - 1px) calc(.25rem - 1px) 0 0}.card-header{background-color:transparent;border-bottom:none;font-size:2rem;font-weight:300;margin:0 2rem;padding:1.6rem 0 0}.card-body{padding:2rem}.card-border-color-left{border-left:.5rem solid #c9c9c9}.card-border-color-left.card-border-color-success{border-left-color:#3c8104}.card.shadow-sm{box-shadow:0 0 1.1rem #d8d8d8!important}@keyframes progress-bar-stripes{0%{background-position:1.6rem 0}to{background-position:0 0}}.modal-container{background-color:rgba(0,0,0,.2);position:fixed;top:0;bottom:0;right:0;left:0;z-index:var(--z-index-modal)}.modal-container :first-child{overflow:auto}.modal{position:relative;display:block;height:100vh}.modal-dialog-centered.modal-dialog-scrollable{height:auto;max-height:calc(100% - 2.8rem);min-height:auto}.modal-body,.modal-content,.modal-footer,.modal-header{border:none}.modal-header{font-size:2rem;padding:2.4rem}.modal-body{padding:0 2.4rem 4.8rem}.colored-header{color:#fff}.modal-body p{text-align:left}.colored-header-primary{background-color:#0d6efd}.colored-header-secondary{background-color:#adb5bd}.colored-header-success{background-color:#3c8104}.colored-header-info{background-color:#cfe2ff}.colored-header-warning{background-color:#e17a05}.colored-header-danger{background-color:#d20a09}.colored-header-light{background-color:#f8f9fa}.colored-header-dark{background-color:#000}@keyframes spinner-border{to{transform:rotate(1turn)}}@keyframes spinner-grow{0%{transform:scale(0)}50%{opacity:1}}.border-top-0{border-top:0!important}.border-right-0{border-right:0!important}.border-bottom-0{border-bottom:0!important}.d-inline{display:inline!important}.d-block{display:block!important}.shadow-sm{box-shadow:0 .2rem .4rem #d8d8d8!important}.mb-0{margin-bottom:0!important}.pr-1{padding-right:.25rem!important}.pl-1{padding-left:.25rem!important}.text-muted{color:#6c757d!important}.font-weight-semibold{font-weight:600!important}[hidden]{visibility:hidden!important;height:0!important;width:0!important;min-height:unset!important}.black-img{filter:grayscale(100%);filter:brightness(0)}@media print{*,:after,:before{text-shadow:none!important;box-shadow:none!important}img{page-break-inside:avoid}p{orphans:3;widows:3}@page{size:a3}}@media print{main::-webkit-scrollbar{display:none}main{-ms-overflow-style:none;scrollbar-width:none}}@page{size:A4;margin:20mm 16mm 20mm 16mm}:host{display:inline-block}.card-body{padding-right:1rem}\", \"\"]);\n","import {until} from 'lit-html/directives/until';\nimport {rosterErrors, modals} from '@modules/constants-enumerate';\nimport {rosterErrorLabels, tierStructure} from '@modules/i18n-labels';\n\nconst ROW_ERROR_TYPES = [\n rosterErrors.DUPLICATE_EMAIL,\n rosterErrors.DUPLICATE_PHONE,\n rosterErrors.EMAIL_IN_USE_BY_ADMIN,\n rosterErrors.ID_MISMATCH,\n rosterErrors.ID_REUSE_MISMATCH,\n rosterErrors.INVALID_EMAIL,\n rosterErrors.INVALID_NAME,\n rosterErrors.INVALID_COUNTRY_CODE,\n rosterErrors.INVALID_EXTERNAL_ID_LENGTH,\n rosterErrors.INVALID_LANGUAGE,\n rosterErrors.INVALID_MONTH,\n rosterErrors.INVALID_PHONE,\n rosterErrors.INVALID_SWAP_OF_GROUP_LEVEL,\n rosterErrors.INVALID_YEAR,\n rosterErrors.NO_EMAIL_OR_PHONE,\n rosterErrors.REPLACEMENT_ID_MISMATCH,\n rosterErrors.REPLACEMENT_ID_USED,\n rosterErrors.REPLACEMENT_ID_ARCHIVED,\n rosterErrors.REQUIRED,\n rosterErrors.INVALID_NAME\n];\n\nconst dynamicClasses = [\n 'badge-primary',\n 'badge-secondary',\n 'badge-dark',\n 'badge-info',\n];\n\n// TODO: do we need roster type in here?\n\nexport default (ctx, html) => html`\n

\n ${until(ctx.__('', 'Please correct the following rows in your CSV and reupload your updated CSV'))}\n \n ${until(ctx.__('', '?'))}\n \n

\n
\n ${ctx.errors.map((error) => renderError(ctx, html, error))}\n
\n`;\n\nconst getProvideUniqueRosterId = (ctx) => {\n return ctx.__('', 'Your entry for user %r1% with %r2% matched multiple records. Please provide the Unique Roster ID of the proper match. You may also try a new name and contact combination or insert a new Unique Roster ID to create a new record.');\n};\n\nconst buildBadge = (type, label) => ({type, label});\n\nconst buildBadges = (ctx, error, other) => {\n const badges = [];\n\n if (error.payload.file) {\n badges.push(buildBadge('primary', error.payload.file));\n }\n if (error.payload.line) {\n badges.push(buildBadge('dark', line(ctx, error.payload.line)));\n }\n\n if (other) {\n badges.push(buildBadge('info', error.payload[other]));\n }\n\n return badges;\n};\n\nconst line = (ctx, line) => ctx._r(ctx.__('', 'Line %r1%'), line);\n\nconst renderCard = (html, header, body, badges) => {\n let footer = null;\n if (badges) {\n footer = html`\n
\n ${badges?.map((badge) => html`\n
${until(badge.label)}
`)}\n
`;\n }\n\n return html`\n
\n
\n
${until(header)}
\n
${until(body)}
\n ${footer}\n
\n
\n `;\n};\n\nconst renderError = (ctx, html, error) => {\n if (ROW_ERROR_TYPES.indexOf(error.type) > -1) {\n return html`\n
\n
\n
\n ${until(rosterErrorLabels[error.type])}\n
${until(ctx.__('', 'Row'))} ${error.payload.line}\n ${error.payload.column ? ', Column ' + ctx.numberToExcelCol(error.payload.column) : ''}\n
\n
\n

\n ${until(ctx.__('', 'If you want to use our template,'))} ${until(ctx.__('', 'download it here'))}.\n

\n
\n
\n `;\n }\n\n if (error.type === rosterErrors.MISSING_HEADER) {\n return renderCard(html, ctx.__('', 'Missing header'), ctx.__('', 'A required header was not found'), buildBadges(ctx, error, 'header'));\n }\n\n if (error.type === rosterErrors.NO_SUCH_FIELD_ERROR) {\n return renderCard(html, ctx.__('', 'Required field missing'), ctx.__('', 'A required field was not found'), buildBadges(ctx, error, 'property'));\n }\n\n if (error.type === rosterErrors.NOT_EQUAL_ERROR) {\n return renderCard(html, ctx.__('', 'Not equal'), ctx._r(ctx.__('', 'Expected %r1%, got %r2%'), error.payload.compared_value, error.payload.value), buildBadges(ctx, error, 'property'));\n }\n\n if (error.type === rosterErrors.NO_SUCH_CHOICE_ERROR) {\n return renderCard(html, ctx.__('', 'Unknown value error'), `Valid values: ${error.payload.choices}`, buildBadges(ctx, error, 'property'));\n }\n if (error.type === rosterErrors.INVALID_NAME) {\n return renderCard(html, ctx.__('', 'Invalid Name'), `Provided name not valid`, buildBadges(ctx, error, 'property'));\n }\n\n if (error.type === rosterErrors.MISSING_FIELD_ERROR) {\n return renderCard(html, ctx.__('', 'Missing field error'), ctx.__('', 'Required field missing'), buildBadges(ctx, error, 'property'));\n }\n\n if (error.type === rosterErrors.ID_MISMATCH_NEW) {\n const badges = buildBadges(ctx, error, 'property');\n badges.push(buildBadge('secondary', error.payload.user_type));\n return renderCard(html, ctx.__('', 'Unique Roster ID and Email conflict'), ctx.__('', 'Email is in use by another user'), badges);\n }\n\n if (error.type === rosterErrors.INVALID_DATE_FORMAT_ERROR) {\n return renderCard(html, ctx.__('', 'Invalid date error'), ctx._r(ctx.__('', 'Provided date is not valid. Sample date: %r1%'), error.payload.sample_value), buildBadges(ctx, error, 'property'));\n }\n\n if (error.type === rosterErrors.INVALID_USER_ROLE_REFERENCE) {\n return renderCard(html, ctx.__('', 'Invalid role'), ctx._r(ctx.__('', '%r1% was not found with a corresponding role in %r2%'), error.payload.invalid_value, error.payload.reference), buildBadges(ctx, error, 'property'));\n }\n\n if (error.type === rosterErrors.INCOMPLETE_DELETION) {\n let msg;\n if (error.payload.type === 'classroom') {\n msg = ctx._r(ctx.__('', 'Class with ID %r1% is marked for archival, however not all enrollments are removed.'), error.payload.external_id)\n } else if (error.payload.type === 'user') {\n msg = ctx._r(ctx.__('', 'User with ID %r1% is marked for archival, however not all roles/enrollments are removed.'), error.payload.external_id)\n } else if (error.payload.type === 'management') {\n msg = ctx._r(ctx.__('', 'Org with ID %r1% is marked for archival, however not all roles/enrollments are removed.'), error.payload.external_id);\n }\n\n return renderCard(html, ctx.__('', 'Consistency Error'), msg);\n }\n\n if (error.type === rosterErrors.INVALID_CLASS_PARENT) {\n let msg;\n if (ctx.tierLevels === 1) {\n msg = ctx._r(ctx.__('', `%r1% must be your organization's ID`), error.payload.invalid_value);\n } else {\n msg = ctx._r(ctx.__('', '%r1% must be a group of type %r2%'), error.payload.invalid_value, ctx.$myGroups[ctx.$classLevel - 1].label);\n }\n return renderCard(html, ctx.__('', 'Invalid Class Parent Group'), msg, buildBadges(ctx, error, 'property'));\n }\n\n if (error.type === rosterErrors.INVALID_ORG_STATUS) {\n return renderCard(html, ctx.__('', 'Invalid Status'), ctx._r(ctx.__('', 'This record must be marked as tobedeleted because parent org %r1% is not active'), error.payload.invalid_value), buildBadges(ctx, error, 'property'));\n }\n\n if (error.type === rosterErrors.INVALID_ORG_STRUCTURE) {\n return renderCard(html, ctx.__('', 'Invalid Organization Structure'), ctx.__('', 'Your uploaded file contains organizations that do not conform to your Educator Center structure.'), buildBadges(ctx, error));\n }\n\n if (error.type === rosterErrors.IS_BLANK_ERROR) {\n return renderCard(html, ctx.__('', 'Is blank error'), ctx.__('', 'Value for required field is blank'), buildBadges(ctx, error, 'property'));\n }\n\n if (error.type === rosterErrors.INVALID_PHONE_FORMAT_ERROR) {\n return renderCard(html, ctx.__('', 'Invalid phone format'), ctx.__('', 'Invalid phone format'), buildBadges(ctx, error, 'property'));\n }\n\n if (error.type === rosterErrors.UNKNOWN_HEADER) {\n return renderCard(html, ctx.__('', 'Unknown header'), ctx.__('', 'This header must not be in CSV'), buildBadges(ctx, error, 'header'));\n }\n\n if (error.type === rosterErrors.FILE_NOT_FOUND_ERROR) {\n return renderCard(html, ctx.__('', 'File not found'), ctx.__('', 'File was not found in the upload'), buildBadges(ctx, error));\n }\n\n if (error.type === rosterErrors.INVALID_REFERENCE) {\n const invalidValue = Array.isArray(error.payload.invalid_value) ? error.payload.invalid_value.join(', ') : error.payload.invalid_value;\n const msg = ctx._r(ctx.__('', 'A reference to %r1% was not found in %r2%'), invalidValue, error.payload.reference);\n return renderCard(html, rosterErrorLabels[error.type], msg, buildBadges(ctx, error, 'property'));\n }\n\n if (error.type === rosterErrors.INVALID_MANAGED_RECORD_STATUS) {\n return renderCard(html,\n ctx.__('', 'Reference record is inactive'),\n ctx._r(ctx.__('', 'Reference record is inactive: %r1%'), error.payload.external_id),\n buildBadges(ctx, error));\n }\n\n if (error.type === rosterErrors.AMBIGUOUS) {\n let label = '';\n let msg = '';\n if (error.payload.object_type === 'groups') {\n if (error.payload.level >= ctx.$classLevel) {\n label = tierStructure.CLASSES;\n } else {\n label = ctx.$myGroups[error.payload.level].label;\n }\n\n let infoMessage = 'Your entry ';\n let matchedObject = ``;\n if (error.payload.values.name) {\n infoMessage += 'with name ';\n matchedObject = `${error.payload.values.name}`;\n } else if (error.payload.values.external_id) {\n infoMessage += 'with external id ';\n matchedObject = `${error.payload.values.external_id}`;\n }\n\n infoMessage += '%r1% matched multiple records. Please provide the Unique Roster ID of the proper match. You may also try a new name or insert a new Unique Roster ID to create a new record.';\n msg = ctx._r(\n ctx.__('', infoMessage),\n matchedObject\n );\n } else if (error.payload.object_type === 'students') {\n label = ctx.__('', 'Student');\n\n msg = ctx._r(\n getProvideUniqueRosterId(ctx),\n `${error.payload.object.name}`,\n `${error.payload.values.email || error.payload.values.phone || error.payload.values.external_id}`\n );\n } else if (error.payload.object_type === 'users') {\n label = ctx.__('', 'Teacher');\n\n msg = ctx._r(\n getProvideUniqueRosterId(ctx),\n `${error.payload.object.name}`,\n `${error.payload.values.email || error.payload.values.phone || error.payload.values.external_id}`\n );\n }\n\n return html`\n
\n
\n
\n ${until(rosterErrorLabels[error.type])}\n
${until(label)}
\n
\n

${html`${until(msg)}`}

\n
\n
\n `;\n }\n\n return '';\n};\n","import styles from './template.css';\nimport template from './template';\nimport {AoflElement, customElement, property} from '@aofl/element';\nimport {i18nMixin} from '@aofl/i18n-mixin';\nimport {mapStatePropertiesMixin} from '@aofl/map-state-properties-mixin';\nimport translations from '../../i18n';\nimport {storeInstance} from '@aofl/store/dist/legacy';\nimport {rosterErrors, sdoNs} from '@modules/constants-enumerate';\nimport {RosterUtils} from '@modules/roster-utils';\n\nconst ROW_ERRORS = {\n [rosterErrors.AMBIGUOUS]: true,\n [rosterErrors.DUPLICATE_EMAIL]: true,\n [rosterErrors.DUPLICATE_PHONE]: true,\n [rosterErrors.EMAIL_IN_USE_BY_ADMIN]: true,\n [rosterErrors.ID_MISMATCH]: true,\n [rosterErrors.ID_REUSE_MISMATCH]: true,\n [rosterErrors.INVALID_EMAIL]: true,\n [rosterErrors.INVALID_COUNTRY_CODE]: true,\n [rosterErrors.INVALID_EXTERNAL_ID_LENGTH]: true,\n [rosterErrors.INVALID_LANGUAGE]: true,\n [rosterErrors.INVALID_MONTH]: true,\n [rosterErrors.INVALID_PHONE]: true,\n [rosterErrors.INVALID_NAME]: true,\n [rosterErrors.INVALID_SWAP_OF_GROUP_LEVEL]: true,\n [rosterErrors.INVALID_YEAR]: true,\n [rosterErrors.NO_EMAIL_OR_PHONE]: true,\n [rosterErrors.REPLACEMENT_ID_MISMATCH]: true,\n [rosterErrors.REPLACEMENT_ID_USED]: true,\n [rosterErrors.REPLACEMENT_ID_ARCHIVED]: true,\n [rosterErrors.REQUIRED]: true,\n [rosterErrors.INVALID_REFERENCE]: true,\n [rosterErrors.MISSING_HEADER]: true,\n [rosterErrors.NOT_EQUAL_ERROR]: true,\n [rosterErrors.NO_SUCH_CHOICE_ERROR]: true,\n [rosterErrors.INVALID_PHONE_FORMAT_ERROR]: true,\n [rosterErrors.MISSING_FIELD_ERROR]: true,\n [rosterErrors.NO_SUCH_FIELD_ERROR]: true,\n [rosterErrors.ID_MISMATCH_NEW]: true,\n [rosterErrors.IS_BLANK_ERROR]: true,\n [rosterErrors.UNKNOWN_HEADER]: true,\n [rosterErrors.INVALID_USER_ROLE_REFERENCE]: true,\n [rosterErrors.INCOMPLETE_DELETION]: true,\n [rosterErrors.INVALID_CLASS_PARENT]: true,\n [rosterErrors.INVALID_ORG_STATUS]: true,\n [rosterErrors.INVALID_ORG_STRUCTURE]: true,\n [rosterErrors.INVALID_MANAGED_RECORD_STATUS]: true,\n};\n\n/**\n * @summary InvalidRowErrors\n * @extends {mapStatePropertiesMixin(i18nMixin(AoflElement))}\n */\n@customElement('invalid-row-errors')\nclass InvalidRowErrors extends mapStatePropertiesMixin(i18nMixin(AoflElement)) {\n /**\n * Creates an instance of InvalidRowErrors.\n */\n constructor() {\n super();\n this.translations = translations;\n this.storeInstance = storeInstance;\n }\n\n /**\n * @readonly\n */\n static is = 'invalid-row-errors';\n @property({type: Boolean})\n show = false;\n @property({type: Array})\n errors = [];\n @property({type: String, mapState: `${sdoNs.SESSION}.group_info.level`, store: storeInstance})\n group_info_level = 0;\n\n @property({type: Object, mapState: `${sdoNs.SESSION}.$myGroups`, store: storeInstance})\n $myGroups = {};\n\n @property({type: Number, mapState: `${sdoNs.SESSION}.$levels`, store: storeInstance})\n tierLevels = 0;\n\n @property({type: Number, mapState: `${sdoNs.SESSION}.$classLevel`, store: storeInstance})\n $classLevel = 0;\n\n @property({type: Object})\n roster = {};\n @property({type: Boolean})\n useActiveRoster = false;\n\n /**\n *\n * @param {Number|String} num\n */\n numberToExcelCol(num) {\n let mod = null;\n let column = '';\n while (num > 0) {\n mod = (num - 1) % 26;\n column = String.fromCharCode(65 + mod) + column;\n num = Math.floor((num - mod) / 26);\n }\n return column;\n }\n\n async getRosterTemplate() {\n await RosterUtils.getRosterTemplate('aofl');\n }\n\n mapStateProperties() {\n if (this.useActiveRoster) {\n const state = this.storeInstance.getState();\n\n this.show = state[sdoNs.USER_JOBS].$rosterRowError;\n if (this.show) {\n this.errors = state[sdoNs.USER_JOBS].$activeRosterJob.errors;\n }\n }\n }\n\n connectedCallback() {\n super.connectedCallback();\n if (this.roster?.id) {\n this.useActiveRoster = false;\n this.show = this.hasRowError();\n if (this.show) {\n this.errors = this.roster.errors;\n }\n } else {\n this.useActiveRoster = true;\n }\n }\n\n hasRowError() {\n if (Array.isArray(this.roster?.errors) &&\n this.roster.errors.length > 0\n ) {\n return this.roster.errors.some((item) => ROW_ERRORS[item.type] || false);\n }\n return false;\n }\n\n /**\n *\n * @return {Object}\n */\n render() {\n if (this.show) {\n return super.render({\n default: {template, styles: [styles]}\n });\n }\n return super.render({\n default: {template: () => '', styles: [':host {display: none;}']}\n });\n }\n}\n\nexport default InvalidRowErrors;\n","class AoflAccessibilityPlugin {\n id = 'aofl_accessibility';\n\n async beforeDraw(chart, args, options) {\n const parts = [];\n\n if (options.title) {\n parts.push(await options.title);\n }\n\n for (const dataset of chart.data.datasets) {\n const label = (typeof dataset.ariaLabel !== 'undefined') ? dataset.ariaLabel : dataset.label;\n parts.push(`${await label}` + ':');\n const values = [];\n for (const index in dataset.data) {\n const value = dataset.data[index];\n let key = null;\n if (typeof chart.data.ariaLabels !== 'undefined') {\n key = chart.data.ariaLabels[index];\n } else if (chart.data.labels) {\n key = chart.data.labels[index];\n }\n\n let string;\n if (options.formatter) {\n string = await options.formatter({label, value, key});\n } else if (key) {\n string = `${await key}: ${value}`;\n } else {\n string = value;\n }\n\n values.push(string);\n }\n\n parts.push(values.join(', '));\n }\n if (chart.ctx !== null) {\n chart.ctx.canvas.setAttribute('aria-label', parts.join(' '));\n }\n }\n}\n\nexport default AoflAccessibilityPlugin;\n","import {until} from 'lit-html/directives/until';\nimport {rosterErrors, modals} from '../../../../modules/constants-enumerate';\nimport {rosterErrorLabels} from '../../../../modules/i18n-labels';\nimport '../../../../modules/show-modal';\n\nexport default (ctx, html) => html`\n

\n ${until(ctx.__('', 'Please correct the following column name in your CSV and reupload your updated CSV'))}\n ${until(ctx.__('', '?'))}\n

\n
\n ${ctx.errors.map((error) => html`\n ${error.type === rosterErrors.CSV_INVALID_PROPERTY? html`\n
\n
\n
${until(rosterErrorLabels[error.type])}
\n
\n
${until(ctx.__('', 'Column'))} ${ctx.numberToExcelCol(error.payload.column)}, ${error.payload.property}
\n
\n
\n
\n `: ''}\n\n ${error.type === rosterErrors.INVALID_TIERS? html`\n
\n
\n
${until(rosterErrorLabels[error.type])}
\n
\n
${until(ctx.__('', 'Your roster file does not match your template. Please redownload your roster template and update your roster information into the correct template.'))}
\n
\n
\n
\n `: ''}\n `)}\n
`;\n","import styles from './template.css';\nimport template from './template';\nimport {AoflElement, customElement, property} from '@aofl/element';\nimport {i18nMixin} from '@aofl/i18n-mixin';\nimport {mapStatePropertiesMixin} from '@aofl/map-state-properties-mixin';\nimport translations from '../../i18n';\nimport {storeInstance} from '@aofl/store/dist/legacy';\nimport {rosterErrors, sdoNs} from '@modules/constants-enumerate';\n\n/**\n * @summary InvalidHeaderErrors\n * @extends {mapStatePropertiesMixin(i18nMixin(AoflElement))}\n */\n@customElement('invalid-header-errors')\nclass InvalidHeaderErrors extends mapStatePropertiesMixin(i18nMixin(AoflElement)) {\n /**\n * Creates an instance of InvalidHeaderErrors.\n */\n constructor() {\n super();\n\n this.translations = translations;\n this.storeInstance = storeInstance;\n }\n\n /**\n * @readonly\n */\n static is = 'invalid-header-errors';\n @property({type: Boolean})\n show = false;\n @property({type: Array})\n errors = [];\n @property({type: Object})\n roster = {};\n @property({type: Boolean})\n useActiveRoster = false;\n\n mapStateProperties() {\n if (this.useActiveRoster) {\n const state = this.storeInstance.getState();\n\n this.show = state[sdoNs.USER_JOBS].$rosterInvalidHeaderPropertyError;\n if (this.show) {\n this.errors = state[sdoNs.USER_JOBS].$activeRosterJob.errors;\n }\n }\n }\n\n connectedCallback() {\n super.connectedCallback();\n if (this.roster?.id) {\n this.useActiveRoster = false;\n this.show = this.hasInvalidHeaderPropertyError();\n if (this.show) {\n this.errors = this.roster.errors;\n }\n }\n else {\n this.useActiveRoster = true;\n }\n }\n\n hasInvalidHeaderPropertyError() {\n if (Array.isArray(this.roster?.errors) &&\n this.roster.errors.length > 0) {\n return this.roster.errors.some((item) => {\n return item.type === rosterErrors.CSV_INVALID_PROPERTY || item.type === rosterErrors.INVALID_TIERS;\n });\n }\n return false;\n }\n\n /**\n *\n * @param {Number|String} num\n */\n numberToExcelCol(num) {\n let mod = null;\n let column = '';\n while (num > 0) {\n mod = (num - 1) % 26;\n column = String.fromCharCode(65 + mod) + column;\n num = Math.floor((num - mod) / 26);\n }\n return column;\n }\n\n /**\n *\n * @return {Object}\n */\n render() {\n if (this.show) {\n return super.render({\n default: {template, styles: [styles]}\n });\n }\n return super.render({\n default: {template: () => '', styles: [':host {display: none;}']}\n });\n }\n}\n\nexport default InvalidHeaderErrors;\n","import '../chart-element';\n\nexport default (ctx, html) => html`\n \n`;\n","import styles from './template.css';\nimport template from './template';\nimport {AoflElement, customElement, property} from '@aofl/element';\nimport {reportLabels} from '../i18n-labels';\n\nconst CHART_OPTIONS = {\n responsive: true,\n maintainAspectRatio: true,\n scales: {\n xAxis: {\n grid: {\n offsetGridLines: true\n },\n },\n yAxis: {\n ticks: {\n beginAtZero: 0,\n min: 0\n }\n }\n },\n plugins: {\n legend: {\n display: true,\n position: 'bottom',\n labels: {\n usePointStyle: true,\n }\n },\n }\n};\n\nconst CHART_DATASET_DEFAULTS = [];\nconst CHART_DATA = {\n labels: [],\n datasets: []\n};\n\nconst canvasSizeMap = [\n { // default\n height: '286',\n width: '284',\n mql: window.matchMedia('(max-width: 374.98px)')\n },\n { // xs\n height: '255',\n width: '310',\n mql: window.matchMedia('(min-width: 375px) and (max-width: 575.98px)')\n },\n { // sm\n height: '230',\n width: '512',\n mql: window.matchMedia('(min-width: 576px) and (max-width: 767.98px)')\n },\n { // md\n height: '230',\n width: '506',\n mql: window.matchMedia('(min-width: 768px) and (max-width: 991.98px)')\n },\n { // lg\n height: '230',\n width: '728',\n mql: window.matchMedia('(min-width: 992px) and (max-width: 1198.98px)')\n },\n { // xl\n height: '230',\n width: '936',\n mql: window.matchMedia('(min-width: 1200px)')\n }\n];\n\n/**\n * @summary BarGraph\n * @extends {AoflElement}\n */\n@customElement('bar-graph')\nclass BarGraph extends AoflElement {\n /**\n * Creates an instance of BarGraph.\n */\n constructor() {\n super();\n }\n\n /**\n * @readonly\n */\n static is = 'bar-graph';\n\n @property({type: Object})\n chartOptions = {};\n\n @property({type: Array})\n chartDatasets = [];\n @property({type: Array})\n chartLabels = [];\n @property({type: Array})\n chartAriaLabels = [];\n @property({type: Object, attribute: false})\n chartData = CHART_DATA;\n @property({type: Array})\n chartPlugins = {};\n @property({type: String, attribute: false})\n graphWidth = this.offsetWidth;\n @property({type: String, attribute: false})\n graphHeight = this.offsetHeight;\n\n resizeHandler = () => {\n requestAnimationFrame(() => {\n this.graphWidth = this.offsetWidth;\n });\n };\n\n mqlHandler = () => {\n this.setGraphSize();\n };\n\n setGraphSize() {\n for (let i = 0; i < canvasSizeMap.length; i++) {\n const item = canvasSizeMap[i];\n if (item.mql.matches) {\n if (this.chartOptions.aspectRatio) {\n const graphHeight = item.width/this.chartOptions.aspectRatio;\n if (graphHeight < 130) {\n this.graphHeight = 130;\n } else {\n this.graphHeight = graphHeight;\n }\n } else {\n this.graphHeight = item.height;\n }\n break;\n }\n }\n }\n\n connectedCallback() {\n super.connectedCallback();\n if (Object.keys(this.chartOptions).length === 0) {\n this.chartOptions = Object.assign({}, CHART_OPTIONS);\n }\n\n this.setGraphSize();\n for (let i = 0; i < canvasSizeMap.length; i++) {\n const item = canvasSizeMap[i];\n item.mql.addListener(this.mqlHandler);\n }\n window.addEventListener('resize', this.resizeHandler, {passive: true});\n }\n\n firstUpdated() {\n super.firstUpdated();\n this.resizeHandler();\n }\n\n shouldUpdate(changedProperties) {\n if (changedProperties.has('chartDatasets') || changedProperties.has('chartLabels')) {\n const datasets = [];\n const promises = [];\n\n for (let i = 0; i < this.chartDatasets?.length; i++) {\n const label = this.chartDatasets[i].label;\n if (typeof reportLabels[label] === 'undefined') {\n promises.push(Promise.resolve(label));\n } else {\n promises.push(reportLabels[label]);\n }\n datasets.push(Object.assign({}, CHART_DATASET_DEFAULTS[i], this.chartDatasets[i]));\n }\n\n Promise.all(promises).then((results) => {\n for (let i = 0; i < results.length; i++) {\n datasets[i].label = results[i];\n }\n this.chartData = Object.assign({}, CHART_DATA, {\n labels: this.chartLabels,\n ariaLabels: this.chartAriaLabels,\n datasets\n });\n });\n }\n if (changedProperties.has('chartOptions')) {\n this.chartOptions = Object.assign({}, CHART_OPTIONS, this.chartOptions);\n }\n\n return true;\n }\n\n /**\n *\n * @return {Object}\n */\n render() {\n return super.render(template, [styles]);\n }\n disconnectedCallback() {\n for (let i = 0; i < canvasSizeMap.length; i++) {\n const item = canvasSizeMap[i];\n item.mql.removeListener(this.mqlHandler);\n }\n window.removeEventListener('resize', this.resizeHandler);\n super.disconnectedCallback();\n }\n}\n\nexport default BarGraph;\n","import {until} from 'lit-html/directives/until';\n\nexport default (ctx, html) => html`\n
\n
\n
\n

${until(ctx.__('', 'Creates'))} ${ctx.rosterSummary.create}

\n

${until(ctx.__('', 'Archives'))} ${ctx.rosterSummary.delete}

\n

${until(ctx.__('', 'Updates'))} ${ctx.rosterSummary.update}

\n

${until(ctx.__('', 'Skipped'))} ${ctx.rosterSummary.skip}

\n ${ctx.rosterSummary.no_update > -1 ? html`

${until(ctx.__('', 'No updates'))} ${ctx.rosterSummary.no_update}

` : ''}\n
\n
\n`;\n","import styles from './template.css';\nimport template from './template';\nimport {AoflElement, customElement, property} from '@aofl/element';\nimport {i18nMixin} from '@aofl/i18n-mixin';\n\n/**\n * @summary RosterSummaryBlock\n * @extends {i18nMixin(AoflElement)}\n */\n@customElement('roster-summary-block')\nclass RosterSummaryBlock extends i18nMixin(AoflElement) {\n /**\n * Creates an instance of RosterSummaryBlock.\n */\n constructor() {\n super();\n }\n\n /**\n * @readonly\n */\n static is = 'roster-summary-block';\n\n @property({type: Object, attribute: false})\n rosterSummary = {\n create: 0,\n delete: 0,\n update: 0,\n skip: 0,\n no_update: 0,\n };\n\n /**\n *\n * @return {Object}\n */\n render() {\n return super.render({\n default: {template, styles: [styles]}\n });\n }\n}\n\nexport default RosterSummaryBlock;\n","import {ApiService} from '@modules/api-service';\n\nclass RosterUtils {\n static async getRosterTemplate(format) {\n const resp = await ApiService.rosterExport(format, true);\n const url = await ApiService.getDownloadFileUrl(resp.file_key);\n window.open(url, '_blank');\n }\n\n static async download(rosterId) {\n try {\n const jobInfo = await ApiService.userJobGet(rosterId);\n const url = await ApiService.getDownloadFileUrl(jobInfo.params_json.data_source);\n window.open(url, '_blank');\n } catch (e) {}\n }\n}\n\nexport {\n RosterUtils\n};\n","module.exports = __webpack_public_path__ + \"33b6ebebde86d40592d5ced5126616f0.webp\";","exports = module.exports = require(\"../../../../../node_modules/css-loader/dist/runtime/api.js\")(false);\n// Imports\nvar getUrl = require(\"../../../../../node_modules/css-loader/dist/runtime/getUrl.js\");\nvar ___CSS_LOADER_URL___0___ = getUrl(require(\"../../../../template/main/fonts/aofl-sans/aoflsans-light.woff2\"));\nvar ___CSS_LOADER_URL___1___ = getUrl(require(\"../../../../template/main/fonts/aofl-sans/aoflsans-lightit.woff2\"));\nvar ___CSS_LOADER_URL___2___ = getUrl(require(\"../../../../template/main/fonts/aofl-sans/aoflsans-reg.woff2\"));\nvar ___CSS_LOADER_URL___3___ = getUrl(require(\"../../../../template/main/fonts/aofl-sans/aoflsans-regit.woff2\"));\nvar ___CSS_LOADER_URL___4___ = getUrl(require(\"../../../../template/main/fonts/aofl-sans/aoflsans-sbold.woff2\"));\nvar ___CSS_LOADER_URL___5___ = getUrl(require(\"../../../../template/main/fonts/aofl-sans/aoflsans-sboldit.woff2\"));\nvar ___CSS_LOADER_URL___6___ = getUrl(require(\"../../../../template/main/fonts/aofl-sans/aoflsans-bold.woff2\"));\nvar ___CSS_LOADER_URL___7___ = getUrl(require(\"../../../../template/main/fonts/aofl-sans/aoflsans-boldit.woff2\"));\nvar ___CSS_LOADER_URL___8___ = getUrl(require(\"../../../../template/main/fonts/abcmouse-sans/ABCmouseSans-Light.woff2\"));\nvar ___CSS_LOADER_URL___9___ = getUrl(require(\"../../../../template/main/fonts/abcmouse-sans/ABCmouseSans-LightIt.woff2\"));\nvar ___CSS_LOADER_URL___10___ = getUrl(require(\"../../../../template/main/fonts/abcmouse-sans/ABCmouseSans-Regular.woff2\"));\nvar ___CSS_LOADER_URL___11___ = getUrl(require(\"../../../../template/main/fonts/abcmouse-sans/ABCmouseSans-RegularIt.woff2\"));\nvar ___CSS_LOADER_URL___12___ = getUrl(require(\"../../../../template/main/fonts/abcmouse-sans/ABCmouseSans-Semibold.woff2\"));\nvar ___CSS_LOADER_URL___13___ = getUrl(require(\"../../../../template/main/fonts/abcmouse-sans/ABCmouseSans-SemiboldIt.woff2\"));\nvar ___CSS_LOADER_URL___14___ = getUrl(require(\"../../../../template/main/fonts/abcmouse-sans/ABCmouseSans-Bold.woff2\"));\nvar ___CSS_LOADER_URL___15___ = getUrl(require(\"../../../../template/main/fonts/abcmouse-sans/ABCmouseSans-BoldIt.woff2\"));\nvar ___CSS_LOADER_URL___16___ = getUrl(require(\"../../../../template/main/fonts/abcmouse-sans/ABCmouseSans-ExtraBold.woff2\"));\nvar ___CSS_LOADER_URL___17___ = getUrl(require(\"../../../../template/main/fonts/abcmouse-sans/ABCmouseSans-ExtraBoldIt.woff2\"));\nvar ___CSS_LOADER_URL___18___ = getUrl(require(\"../../../../template/main/fonts/aofl-icons/icomoon.woff2?c6f21u\"));\n// Module\nexports.push([module.id, \"/*! @aofl-component */:root{--blue:#0d6efd;--indigo:#6610f2;--purple:#8b42ca;--pink:#e83e8c;--red:#e50b0a;--orange:#e17a05;--yellow:#ffc107;--green:#3c8104;--teal:#20c997;--cyan:#53c9dc;--white:#fff;--gray:#6b6b6b;--gray-dark:#343a40;--light-green:#b1dd53;--table-border-color:#d8d8d8;--gray-100:#f2f2f2;--gray-200:#d9d9d9;--gray-300:#d8d8d8;--gray-400:#ced4da;--gray-500:#adb5bd;--gray-600:#6c757d;--gray-700:#4a4a4a;--gray-800:#343a40;--gray-900:#212529;--gray-accessibility:#6b6b6b;--primary:#0d6efd;--secondary:#adb5bd;--success:#3c8104;--info:#cfe2ff;--warning:#e17a05;--danger:#d20a09;--light:#f8f9fa;--dark:#000;--breakpoint-xxs:0;--breakpoint-xs:375px;--breakpoint-sm:576px;--breakpoint-md:768px;--breakpoint-lg:992px;--breakpoint-xl:1200px;--font-family-sans-serif:aofl-sans,Arial,Helvetica,sans-serif;--font-family-monospace:SFMono-Regular,Menlo,Monaco,Consolas,\\\"Liberation Mono\\\",\\\"Courier New\\\",monospace;--z-index-dropdown:1000;--z-index-sticky:1020;--z-index-fixed:1030;--z-index-modal-backdrop:1040;--z-index-modal:1050;--z-index-popover:1060;--z-index-tooltip:1070;--header-height:6rem;--content-height:calc(100vh - 6rem);--sidepanel-width:20rem;--purple-color:#641da3;--purple-600:#956abc;--purple-400:#c7afdd;--purple-200:#e0d2ed;--struggling:#f6993b;--below-target:#ffcf00;--in_progress:#1280f5;--prior_knowledge:#edf887;--mastery_achieved:#69d112;--inactive:#d8d8d8}route-view{max-width:1200px}@font-face{font-family:aofl-sans;font-style:normal;font-weight:300;src:url(\" + ___CSS_LOADER_URL___0___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:italic;font-weight:300;src:url(\" + ___CSS_LOADER_URL___1___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:normal;font-weight:400;src:url(\" + ___CSS_LOADER_URL___2___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:italic;font-weight:400;src:url(\" + ___CSS_LOADER_URL___3___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:normal;font-weight:600;src:url(\" + ___CSS_LOADER_URL___4___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:italic;font-weight:600;src:url(\" + ___CSS_LOADER_URL___5___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:normal;font-weight:700;src:url(\" + ___CSS_LOADER_URL___6___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:italic;font-weight:700;src:url(\" + ___CSS_LOADER_URL___7___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:normal;font-weight:300;src:url(\" + ___CSS_LOADER_URL___8___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:italic;font-weight:300;src:url(\" + ___CSS_LOADER_URL___9___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:normal;font-weight:400;src:url(\" + ___CSS_LOADER_URL___10___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:italic;font-weight:400;src:url(\" + ___CSS_LOADER_URL___11___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:normal;font-weight:600;src:url(\" + ___CSS_LOADER_URL___12___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:italic;font-weight:600;src:url(\" + ___CSS_LOADER_URL___13___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:normal;font-weight:700;src:url(\" + ___CSS_LOADER_URL___14___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:italic;font-weight:700;src:url(\" + ___CSS_LOADER_URL___15___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:normal;font-weight:800;src:url(\" + ___CSS_LOADER_URL___16___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:italic;font-weight:800;src:url(\" + ___CSS_LOADER_URL___17___ + \") format(\\\"woff2\\\")}@font-face{font-family:icomoon;src:url(\" + ___CSS_LOADER_URL___18___ + \") format(\\\"woff2\\\");font-weight:400;font-style:normal;font-display:block}[class*=\\\" ai-\\\"],[class^=ai-]{font-family:icomoon!important;speak:never;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.ai-chevron-right:before{content:\\\"\\\\e90f\\\"}*,:after,:before{box-sizing:border-box}html{font-family:sans-serif;line-height:1.15;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:rgba(0,0,0,0)}figcaption,main,nav,section{display:block}[tabindex=\\\"-1\\\"]:focus{outline:0!important}h2,h4{margin-bottom:1rem}h2,h4,p{margin-top:0}p{margin-bottom:1.6rem}ol{margin-top:0;margin-bottom:1rem}ol ol{margin-bottom:0}strong{font-weight:bolder}a{color:#0d6efd;background-color:transparent}a,a:hover{text-decoration:none}a:hover{color:rgb(0,86.1,178.5)}a:not([href]):not([tabindex]),a:not([href]):not([tabindex]):focus,a:not([href]):not([tabindex]):hover{color:inherit;text-decoration:none}a:not([href]):not([tabindex]):focus{outline:0}table{border-collapse:collapse}caption{padding-top:.75rem;padding-bottom:.75rem;color:#6c757d;text-align:left;caption-side:bottom}label{display:inline-block;margin-bottom:.8rem}button{border-radius:0}button:focus{outline:1px dotted;outline:5px auto -webkit-focus-ring-color}button,input{margin:0;font-family:inherit;font-size:inherit;line-height:inherit;overflow:visible}button{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]:not(:disabled),[type=reset]:not(:disabled),[type=submit]:not(:disabled),button:not(:disabled){cursor:pointer}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{padding:0;border-style:none}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}input[type=date],input[type=datetime-local],input[type=month],input[type=time]{-webkit-appearance:listbox}legend{display:block;width:100%;max-width:100%;padding:0;margin-bottom:.5rem;font-size:1.5rem;line-height:inherit;color:inherit;white-space:normal}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:none}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}summary{display:list-item;cursor:pointer}template{display:none}[hidden]{display:none!important}*{-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important}html{font-size:62.5%;height:100%}link-to{color:#0d6efd;text-decoration:none;background-color:transparent}link-to:hover{color:rgb(0,86.1,178.5);text-decoration:none;cursor:pointer}route-view{display:none;flex:1}site-header{background-color:#fff;display:none;position:-webkit-sticky;position:sticky;top:0;height:var(--header-height)}#main{display:none;flex:1 auto;max-width:100%;overflow:hidden;flex-direction:column;overflow-y:scroll}.loaded #main,.loaded site-header,body.loaded,route-view.loaded{display:flex}route-view.left-panel-active{padding-left:var(--sidepanel-width)}.h2,.h4,h2,h4{margin-bottom:1rem;font-weight:500;line-height:1.2}.h2,h2{font-size:2rem}.h4,h4{font-size:1.6rem}.list-unstyled{padding-left:0;list-style:none}.row{display:flex;flex-wrap:wrap;margin-right:-15px;margin-left:-15px}.col-2,.col-xl-3,.col-xl-4,.col-xs-2,.col-xs-3{position:relative;width:100%;padding-right:15px;padding-left:15px}.col-2{flex:0 0 16.6666666667%;max-width:16.6666666667%}@media (min-width:375px){.col-xs-2{flex:0 0 16.6666666667%;max-width:16.6666666667%}.col-xs-3{flex:0 0 25%;max-width:25%}}@media (min-width:1200px){.col-xl-3{flex:0 0 25%;max-width:25%}.col-xl-4{flex:0 0 33.3333333333%;max-width:33.3333333333%}}.table{width:100%;margin-bottom:1.6rem;color:#000}input[type=checkbox],input[type=radio]{cursor:pointer}input[type=checkbox]+label,input[type=radio]+label{cursor:pointer}.btn,input[type=checkbox]+label,input[type=radio]+label{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.btn{display:inline-block;font-weight:400;color:#000;text-align:center;vertical-align:middle;background-color:transparent;border:1px solid transparent;padding:.375rem .75rem;font-size:1.6rem;line-height:1.5;border-radius:.25rem;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.btn{transition:none}}.btn:hover{color:#000;text-decoration:none}.btn:focus{outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.btn:disabled{opacity:.65}.btn-link{font-weight:400;color:#0d6efd;text-decoration:none}.btn-link:hover{color:rgb(0,86.1,178.5);text-decoration:none}.btn-link:focus{text-decoration:none;box-shadow:none}.btn-link:disabled{color:#6c757d;pointer-events:none}.btn:disabled{cursor:not-allowed}link-to.btn:disabled,link-to.btn[disabled]{pointer-events:none}button,button:active{outline:none}.btn:focus-visible,[tabindex=\\\"0\\\"]:focus-visible,a:focus-visible,aofl-list-option:focus-visible,button[type=button]:focus-visible,collapse-button:focus-visible{outline:1px solid #e50b0a;border:1px solid #e50b0a}.btn-link:focus-visible{border:2px solid #e50b0a}.btn:disabled{background:#cfe2ff;border-color:#cfe2ff;color:#0d6efd;opacity:1}ems-dropdown>button.btn{display:flex;align-items:center;border:1px solid var(--gray)}.card{position:relative;display:flex;flex-direction:column;min-width:0;word-wrap:break-word;background-color:#fff;background-clip:border-box;border:1px solid rgba(0,0,0,.125);border-radius:.25rem}.card.shadow-sm{box-shadow:0 0 1.1rem #d8d8d8!important}.card.rounded{border-radius:.8rem!important}@keyframes progress-bar-stripes{0%{background-position:1.6rem 0}to{background-position:0 0}}.modal-container{background-color:rgba(0,0,0,.2);position:fixed;top:0;bottom:0;right:0;left:0;z-index:var(--z-index-modal)}.modal-container :first-child{overflow:auto}.modal{position:relative;display:block;height:100vh}.modal-dialog-centered.modal-dialog-scrollable{height:auto;max-height:calc(100% - 2.8rem);min-height:auto}.modal-body,.modal-content,.modal-footer,.modal-header{border:none}.modal-header{font-size:2rem;padding:2.4rem}.modal-body{padding:0 2.4rem 4.8rem}.colored-header{color:#fff}.modal-body p{text-align:left}.colored-header-primary{background-color:#0d6efd}.colored-header-secondary{background-color:#adb5bd}.colored-header-success{background-color:#3c8104}.colored-header-info{background-color:#cfe2ff}.colored-header-warning{background-color:#e17a05}.colored-header-danger{background-color:#d20a09}.colored-header-light{background-color:#f8f9fa}.colored-header-dark{background-color:#000}@keyframes spinner-border{to{transform:rotate(1turn)}}@keyframes spinner-grow{0%{transform:scale(0)}50%{opacity:1}}.bg-light{background-color:#f8f9fa!important}a.bg-light:focus,a.bg-light:hover,button.bg-light:focus,button.bg-light:hover{background-color:rgb(218.25,223.5,228.75)!important}.border-bottom{border-bottom:1px solid #d8d8d8!important}.border-0{border:0!important}.rounded{border-radius:.4rem!important}.d-inline-block{display:inline-block!important}.d-flex{display:flex!important}.flex-row{flex-direction:row!important}.justify-content-end{justify-content:flex-end!important}.justify-content-center{justify-content:center!important}.justify-content-around{justify-content:space-around!important}.align-items-center{align-items:center!important}.shadow-sm{box-shadow:0 .2rem .4rem #d8d8d8!important}.mt-2{margin-top:.5rem!important}.mb-3{margin-bottom:1rem!important}.m-5{margin:3rem!important}.mb-5{margin-bottom:3rem!important}.p-0{padding:0!important}.py-0{padding-top:0!important;padding-bottom:0!important}.pl-2{padding-left:.5rem!important}.py-3{padding-top:1rem!important}.px-3{padding-right:1rem!important}.pb-3,.py-3{padding-bottom:1rem!important}.px-3{padding-left:1rem!important}.py-4{padding-top:1.5rem!important}.pr-4,.px-4{padding-right:1.5rem!important}.py-4{padding-bottom:1.5rem!important}.px-4{padding-left:1.5rem!important}.p-5{padding:3rem!important}.pt-5{padding-top:3rem!important}.mt-n1{margin-top:-.25rem!important}.text-nowrap{white-space:nowrap!important}.text-left{text-align:left!important}.text-right{text-align:right!important}.text-center{text-align:center!important}.font-weight-bold{font-weight:700!important}.text-muted{color:#6c757d!important}.border-dashed-bottom{border-bottom:2px dashed var(--gray-300)}.h2{font-weight:600}[hidden]{visibility:hidden!important;height:0!important;width:0!important;min-height:unset!important}@media print{*,:after,:before{text-shadow:none!important;box-shadow:none!important}a:not(.btn){text-decoration:underline}h2,p{orphans:3;widows:3}h2{page-break-after:avoid}@page{size:a3}.table{border-collapse:collapse!important}}@media print{main::-webkit-scrollbar{display:none}main{-ms-overflow-style:none;scrollbar-width:none}}@page{size:A4;margin:20mm 16mm 20mm 16mm}:host{display:inline-block}.redeemed-tab{width:60px!important}.ai-chevron-right{font-size:1.2rem}\", \"\"]);\n","import '../redeem-code-form';\n\nexport default (ctx, html) => html`\n
\n
\n
\n
\n \n
\n \n
\n
\n
\n`;\n\n","import styles from './template.css';\nimport template from './template';\nimport {AoflElement, customElement, property} from '@aofl/element';\nimport {i18nMixin} from '@aofl/i18n-mixin';\nimport {storeInstance} from '@aofl/store/dist/legacy';\nimport translations from '@modules/i18n';\nimport {SimpleModal} from '@modules/simple-modal';\nimport {validationMixin} from '@aofl/form-validate';\nimport {sdoNs, pages} from '@modules/constants-enumerate';\nimport {ApiService} from '@modules/api-service';\nimport '@routes/parent/modules/__config/modals';\nimport {routerInstance} from '@aofl/router';\n\n/**\n * @summary RedeemCodeModal\n * @extends {i18nMixin(AoflElement)}\n */\n@customElement('redeem-code-modal')\nclass RedeemCodeModal extends validationMixin(i18nMixin(AoflElement)) {\n /**\n * Creates an instance of LicenseRevokeModal.\n */\n constructor() {\n super();\n this.translations = translations;\n }\n\n /**\n * @readonly\n */\n static is = 'redeem-code-modal';\n\n @property({type: Object, mapState: `${sdoNs.SESSION}`, store: storeInstance})\n sessionInfo = {};\n\n @property({type: Boolean})\n submitting = false;\n\n @property({type: Number})\n errorCode\n\n close() {\n SimpleModal.hide();\n }\n\n firstUpdated(changedProperties) {\n this.shadowRoot.querySelector('[tabindex=\"0\"]').focus();\n }\n\n async codeSubmitted(e) {\n this.submitting = true;\n\n try {\n const resp = await ApiService.userVerifyActivationCode(e.detail.code);\n\n if (resp.products.length > 0) {\n await ApiService.parentAddChild(this.sessionInfo.id, e.detail.code);\n }\n\n routerInstance.navigate(pages.PARENT_HOMEPAGE, {forceReload: true});\n this.close();\n } catch (error) {\n this.errorCode = error.error.code;\n } finally {\n this.submitting = false;\n }\n }\n\n /**\n *\n * @return {Object}\n */\n render() {\n return super.render({\n default: {\n template,\n styles: [styles]\n }\n });\n }\n}\n\nexport default RedeemCodeModal;\n","module.exports = __webpack_public_path__ + \"e7340b35eed04250fcc4b06fc0844e32.webp\";","exports = module.exports = require(\"../../../node_modules/css-loader/dist/runtime/api.js\")(false);\n// Imports\nvar getUrl = require(\"../../../node_modules/css-loader/dist/runtime/getUrl.js\");\nvar ___CSS_LOADER_URL___0___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-light.woff2\"));\nvar ___CSS_LOADER_URL___1___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-lightit.woff2\"));\nvar ___CSS_LOADER_URL___2___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-reg.woff2\"));\nvar ___CSS_LOADER_URL___3___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-regit.woff2\"));\nvar ___CSS_LOADER_URL___4___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-sbold.woff2\"));\nvar ___CSS_LOADER_URL___5___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-sboldit.woff2\"));\nvar ___CSS_LOADER_URL___6___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-bold.woff2\"));\nvar ___CSS_LOADER_URL___7___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-boldit.woff2\"));\nvar ___CSS_LOADER_URL___8___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-Light.woff2\"));\nvar ___CSS_LOADER_URL___9___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-LightIt.woff2\"));\nvar ___CSS_LOADER_URL___10___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-Regular.woff2\"));\nvar ___CSS_LOADER_URL___11___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-RegularIt.woff2\"));\nvar ___CSS_LOADER_URL___12___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-Semibold.woff2\"));\nvar ___CSS_LOADER_URL___13___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-SemiboldIt.woff2\"));\nvar ___CSS_LOADER_URL___14___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-Bold.woff2\"));\nvar ___CSS_LOADER_URL___15___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-BoldIt.woff2\"));\nvar ___CSS_LOADER_URL___16___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-ExtraBold.woff2\"));\nvar ___CSS_LOADER_URL___17___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-ExtraBoldIt.woff2\"));\nvar ___CSS_LOADER_URL___18___ = getUrl(require(\"../../template/main/fonts/aofl-icons/icomoon.woff2?c6f21u\"));\n// Module\nexports.push([module.id, \"/*! @aofl-component */:root{--blue:#0d6efd;--indigo:#6610f2;--purple:#8b42ca;--pink:#e83e8c;--red:#e50b0a;--orange:#e17a05;--yellow:#ffc107;--green:#3c8104;--teal:#20c997;--cyan:#53c9dc;--white:#fff;--gray:#6b6b6b;--gray-dark:#343a40;--light-green:#b1dd53;--table-border-color:#d8d8d8;--gray-100:#f2f2f2;--gray-200:#d9d9d9;--gray-300:#d8d8d8;--gray-400:#ced4da;--gray-500:#adb5bd;--gray-600:#6c757d;--gray-700:#4a4a4a;--gray-800:#343a40;--gray-900:#212529;--gray-accessibility:#6b6b6b;--primary:#0d6efd;--secondary:#adb5bd;--success:#3c8104;--info:#cfe2ff;--warning:#e17a05;--danger:#d20a09;--light:#f8f9fa;--dark:#000;--breakpoint-xxs:0;--breakpoint-xs:375px;--breakpoint-sm:576px;--breakpoint-md:768px;--breakpoint-lg:992px;--breakpoint-xl:1200px;--font-family-sans-serif:aofl-sans,Arial,Helvetica,sans-serif;--font-family-monospace:SFMono-Regular,Menlo,Monaco,Consolas,\\\"Liberation Mono\\\",\\\"Courier New\\\",monospace;--z-index-dropdown:1000;--z-index-sticky:1020;--z-index-fixed:1030;--z-index-modal-backdrop:1040;--z-index-modal:1050;--z-index-popover:1060;--z-index-tooltip:1070;--header-height:6rem;--content-height:calc(100vh - 6rem);--sidepanel-width:20rem;--purple-color:#641da3;--purple-600:#956abc;--purple-400:#c7afdd;--purple-200:#e0d2ed;--struggling:#f6993b;--below-target:#ffcf00;--in_progress:#1280f5;--prior_knowledge:#edf887;--mastery_achieved:#69d112;--inactive:#d8d8d8}route-view{max-width:1200px}@font-face{font-family:aofl-sans;font-style:normal;font-weight:300;src:url(\" + ___CSS_LOADER_URL___0___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:italic;font-weight:300;src:url(\" + ___CSS_LOADER_URL___1___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:normal;font-weight:400;src:url(\" + ___CSS_LOADER_URL___2___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:italic;font-weight:400;src:url(\" + ___CSS_LOADER_URL___3___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:normal;font-weight:600;src:url(\" + ___CSS_LOADER_URL___4___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:italic;font-weight:600;src:url(\" + ___CSS_LOADER_URL___5___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:normal;font-weight:700;src:url(\" + ___CSS_LOADER_URL___6___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:italic;font-weight:700;src:url(\" + ___CSS_LOADER_URL___7___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:normal;font-weight:300;src:url(\" + ___CSS_LOADER_URL___8___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:italic;font-weight:300;src:url(\" + ___CSS_LOADER_URL___9___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:normal;font-weight:400;src:url(\" + ___CSS_LOADER_URL___10___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:italic;font-weight:400;src:url(\" + ___CSS_LOADER_URL___11___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:normal;font-weight:600;src:url(\" + ___CSS_LOADER_URL___12___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:italic;font-weight:600;src:url(\" + ___CSS_LOADER_URL___13___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:normal;font-weight:700;src:url(\" + ___CSS_LOADER_URL___14___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:italic;font-weight:700;src:url(\" + ___CSS_LOADER_URL___15___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:normal;font-weight:800;src:url(\" + ___CSS_LOADER_URL___16___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:italic;font-weight:800;src:url(\" + ___CSS_LOADER_URL___17___ + \") format(\\\"woff2\\\")}@font-face{font-family:icomoon;src:url(\" + ___CSS_LOADER_URL___18___ + \") format(\\\"woff2\\\");font-weight:400;font-style:normal;font-display:block}[class*=\\\" ai-\\\"],[class^=ai-]{font-family:icomoon!important;speak:never;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.ai-calendar-sm:before{content:\\\"\\\\e90b\\\"}*,:after,:before{box-sizing:border-box}html{font-family:sans-serif;line-height:1.15;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:rgba(0,0,0,0)}figcaption,main,nav,section{display:block}[tabindex=\\\"-1\\\"]:focus{outline:0!important}strong{font-weight:bolder}a{color:#0d6efd;background-color:transparent}a,a:hover{text-decoration:none}a:hover{color:rgb(0,86.1,178.5)}a:not([href]):not([tabindex]),a:not([href]):not([tabindex]):focus,a:not([href]):not([tabindex]):hover{color:inherit;text-decoration:none}a:not([href]):not([tabindex]):focus{outline:0}caption{padding-top:.75rem;padding-bottom:.75rem;color:#6c757d;text-align:left;caption-side:bottom}button{border-radius:0}button:focus{outline:1px dotted;outline:5px auto -webkit-focus-ring-color}button,input{margin:0;font-family:inherit;font-size:inherit;line-height:inherit;overflow:visible}button{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]:not(:disabled),[type=reset]:not(:disabled),[type=submit]:not(:disabled),button:not(:disabled){cursor:pointer}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{padding:0;border-style:none}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}input[type=date],input[type=datetime-local],input[type=month],input[type=time]{-webkit-appearance:listbox}legend{display:block;width:100%;max-width:100%;padding:0;margin-bottom:.5rem;font-size:1.5rem;line-height:inherit;color:inherit;white-space:normal}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:none}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}summary{display:list-item;cursor:pointer}template{display:none}[hidden]{display:none!important}*{-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important}html{font-size:62.5%;height:100%}link-to{color:#0d6efd;text-decoration:none;background-color:transparent}link-to:hover{color:rgb(0,86.1,178.5);text-decoration:none;cursor:pointer}route-view{display:none;flex:1}site-header{background-color:#fff;display:none;position:-webkit-sticky;position:sticky;top:0;height:var(--header-height)}#main{display:none;flex:1 auto;max-width:100%;overflow:hidden;flex-direction:column;overflow-y:scroll}.loaded #main,.loaded site-header,body.loaded,route-view.loaded{display:flex}route-view.left-panel-active{padding-left:var(--sidepanel-width)}.container{width:100%;padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}@media (min-width:375px){.container{max-width:350px}}@media (min-width:576px){.container{max-width:540px}}@media (min-width:768px){.container{max-width:720px}}@media (min-width:992px){.container{max-width:960px}}@media (min-width:1200px){.container{max-width:1140px}}.form-control{display:block;width:100%;height:calc(1.5em + .75rem + 2px);padding:.375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:#495057;background-color:#fff;background-clip:padding-box;border:1px solid #ced4da;border-radius:.25rem;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.form-control{transition:none}}.form-control::-ms-expand{background-color:transparent;border:0}.form-control:focus{color:#495057;background-color:#fff;border-color:rgb(127.5,189,255);outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.form-control::-webkit-input-placeholder{color:#6c757d;opacity:1}.form-control::-moz-placeholder{color:#6c757d;opacity:1}.form-control:-ms-input-placeholder{color:#6c757d;opacity:1}.form-control::-ms-input-placeholder{color:#6c757d;opacity:1}.form-control::placeholder{color:#6c757d;opacity:1}.form-control:disabled,.form-control[readonly]{background-color:#e9ecef;opacity:1}.form-control-sm{height:calc(1.5em + .5rem + 2px);padding:.25rem .5rem;font-size:.875rem;line-height:1.5;border-radius:.2rem}.form-control{font-size:1.5rem;height:4.8rem;padding:1.2rem 1rem}.form-control[multiple]{padding:0}.form-control[multiple] option{padding:.8rem 1.2rem}.form-control-sm{height:3.2rem;padding:.4rem .8rem;border-radius:.32rem}input[type=checkbox],input[type=radio]{cursor:pointer}.form-control{border:1px solid #6b6b6b}.form-control:focus{border-color:#0d6efd}button,button:active{outline:none}[tabindex=\\\"0\\\"]:focus-visible,a:focus-visible,aofl-list-option:focus-visible,button[type=button]:focus-visible,collapse-button:focus-visible{outline:1px solid #e50b0a;border:1px solid #e50b0a}.dropdown{position:relative;display:inline-block}.input-group{position:relative;display:flex;flex-wrap:wrap;align-items:stretch;width:100%}.input-group>.form-control{position:relative;flex:1 1 auto;width:1%;margin-bottom:0}.input-group>.form-control+.form-control{margin-left:-1px}.input-group>.form-control:focus{z-index:3}.input-group>.form-control:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.input-group>.form-control:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.input-group-append{display:flex}.input-group-append,.input-group-append .input-group-text+.input-group-text{margin-left:-1px}.input-group-text{display:flex;align-items:center;padding:.375rem .75rem;margin-bottom:0;font-size:1rem;font-weight:400;line-height:1.5;color:#495057;text-align:center;white-space:nowrap;background-color:#e9ecef;border:1px solid #ced4da;border-radius:.25rem}.input-group-text input[type=checkbox],.input-group-text input[type=radio]{margin-top:0}.input-group>.input-group-append:last-child>.input-group-text:not(:last-child),.input-group>.input-group-append:not(:last-child)>.input-group-text{border-top-right-radius:0;border-bottom-right-radius:0}.input-group>.input-group-append>.input-group-text{border-top-left-radius:0;border-bottom-left-radius:0}@keyframes progress-bar-stripes{0%{background-position:1.6rem 0}to{background-position:0 0}}.close{float:right;font-size:1rem;font-weight:700;line-height:1;color:#000;text-shadow:0 1px 0 #fff;opacity:.5}.close:hover{color:#000;text-decoration:none}.close:not(:disabled):not(.disabled):focus,.close:not(:disabled):not(.disabled):hover{opacity:.75}button.close{padding:0;background-color:transparent;border:0;-webkit-appearance:none;-moz-appearance:none;appearance:none}.close,.close:not(:disabled):not(.disabled):focus,.close:not(:disabled):not(.disabled):hover{opacity:1}.modal-container{background-color:rgba(0,0,0,.2);position:fixed;top:0;bottom:0;right:0;left:0;z-index:var(--z-index-modal)}.modal-container :first-child{overflow:auto}.modal{position:relative;display:block;height:100vh}.modal-dialog-centered.modal-dialog-scrollable{height:auto;max-height:calc(100% - 2.8rem);min-height:auto}.modal-body,.modal-content,.modal-footer,.modal-header{border:none}.modal-header{font-size:2rem;padding:2.4rem}.modal-body{padding:0 2.4rem 4.8rem}.colored-header{color:#fff}.modal-body p{text-align:left}.colored-header-primary{background-color:#0d6efd}.colored-header-secondary{background-color:#adb5bd}.colored-header-success{background-color:#3c8104}.colored-header-info{background-color:#cfe2ff}.colored-header-warning{background-color:#e17a05}.colored-header-danger{background-color:#d20a09}.colored-header-light{background-color:#f8f9fa}.colored-header-dark{background-color:#000}@keyframes spinner-border{to{transform:rotate(1turn)}}@keyframes spinner-grow{0%{transform:scale(0)}50%{opacity:1}}[hidden]{visibility:hidden!important;height:0!important;width:0!important;min-height:unset!important}@media print{*,:after,:before{text-shadow:none!important;box-shadow:none!important}a:not(.btn){text-decoration:underline}@page{size:a3}.container{min-width:992px!important}}@media print{main::-webkit-scrollbar{display:none}main{-ms-overflow-style:none;scrollbar-width:none}}@page{size:A4;margin:20mm 16mm 20mm 16mm}:host{display:inline-block}:host([inline]) input{display:none}input{width:100%}input.form-control[readonly]{background-color:#fff}\", \"\"]);\n","exports = module.exports = require(\"../../../../node_modules/css-loader/dist/runtime/api.js\")(false);\n// Module\nexports.push([module.id, \":host{display:inline-block}\", \"\"]);\n","import {until} from 'lit-html/directives/until';\nimport {repeat} from 'lit-html/directives/repeat';\nimport {licenseActions, dynamicPages} from '../constants-enumerate';\nimport '../ems-collapse';\nimport '../pagination-element';\nimport{LoadingEllipses} from '@epg/epg-components';\n\nexport default (ctx, html) => {\n let content;\n if (ctx.loading) {\n content = html`\n
\n \n
\n `;\n } else if (ctx.data.results.length > 0) {\n content = html`${repeat(ctx.data.results, (item) => item.id, (item) => renderLog(ctx, html, item))}`;\n } else {\n content = html`
${until(ctx.__('', 'No inventory history.'))}
`;\n }\n\n let pagination = '';\n if (!ctx['hide-pagination']) {\n pagination = html`\n \n ${until(ctx.__('', 'Prev'))}\n ${until(ctx.__('', 'Next'))}\n \n `;\n }\n\n return html`\n
\n ${content}\n
\n
\n ${pagination}\n
\n `;\n};\n\nconst renderEventInfo = (ctx, html, item) => html`\n ${until(ctx.__('', 'Event'))}\n ${until(ctx.licenseTranslations[item.event_type])}\n`;\n\nconst renderLog = (ctx, html, item) => {\n let content;\n if (ctx['for-student-view']) {\n content = html`${renderEventInfo(ctx, html, item)}`;\n } else {\n content = html`\n ${until(ctx.__('', 'Number Of Licenses'))}\n ${renderQuantity(ctx, html, item)}\n `;\n }\n\n return html`\n ctx.toggleOpen(item.license_id)}\"\n tabIndex=\"0\"\n controls=\"(ungrouped, dist-${item.id})\" class=\"w-100 px-3 pt-3 pb-0 pb-xs-3\"\n aria-expanded=\"${ctx.openLicenseIds[item.license_id]}\"\n >\n
\n
\n
\n
\n \n ${item.$date}\n
\n
\n
\n
\n ${until(ctx.__('', 'License Name'))}\n ${item.license_id ? html`${item.license_name}` : html`${item.license_name}`}\n
\n
\n
\n
\n ${content}\n
\n
\n
\n
\n \n \n
\n
\n
\n ${until(ctx.__('', 'Updated By (From)'))}\n ${item.user_name} ${item.from_group_name ? '(' + item.from_group_name + ')' : ''}\n
\n
\n
\n
\n ${until(ctx.__('', 'To'))}\n ${(item.to_group_name) ? item.to_group_name : until(ctx.licenseTranslations.Students)}\n
\n
\n
\n
\n ${ctx['for-student-view'] ? `` : html`${renderEventInfo(ctx, html, item)}`}\n
\n
\n
\n
\n `;\n};\n\nconst renderQuantity = (ctx, html, item) => {\n let className = 'text-danger';\n // This is for a student\n const positiveActions = [licenseActions.LICENSE_CREATED, licenseActions.LICENSE_REVOKED];\n\n if (\n (item.to_group_id && item.to_group_id === ctx.groupId) ||\n (item.to_group_id && Object.keys(ctx.filters).length === 0 && item.to_group_id === ctx.groupId) ||\n (typeof item.to_student_id !== 'undefined' && item.type === licenseActions.LICENSE_TRANSFERRED) ||\n positiveActions.includes(item.type)\n ) {\n className = 'text-success';\n }\n\n let quantity = item.quantity;\n if (typeof item.to_student_id !== 'undefined' && item.event_type !== licenseActions.LICENSE_EXTENDED) {\n // have to set quantity if the license is assigned to a student, since\n // quantity is not reported in the allocation_log\n quantity = 1;\n } else if (\n (!item.to_group_id && item.type === licenseActions.LICENSE_TRANSFERRED) ||\n item.event_type === licenseActions.LICENSE_EXTENDED\n ) {\n // if a license is transferred from one student to another\n quantity = 0;\n }\n\n // This is what happens when the student profile allocation logs are\n // using this component\n return html`\n \n ${className === 'text-success' ? '+' : '-'}${quantity}\n `;\n};\n","import styles from './template.css';\nimport template from './template';\nimport {storeInstance} from '@aofl/store/dist/legacy';\nimport {AoflElement, customElement, property} from '@aofl/element';\nimport {mapStatePropertiesMixin} from '@aofl/map-state-properties-mixin';\nimport {i18nMixin} from '@aofl/i18n-mixin';\n\nimport translations from '@modules/i18n';\nimport {sdoNs, licenseActions} from '../constants-enumerate';\nimport {ApiService} from '../api-service';\nimport './inventory-updates-log-sdo';\nimport {Toast} from '../toast';\nimport {userJobs} from '../user-jobs';\n\nconst setTranslations = (ctx) => {\n const t10s = {\n toasts: {\n export_queued: ctx.__('', 'Export has been queued.'),\n },\n fields: [\n {\n key: 'timestamp',\n label: ctx.__('', 'Date'),\n },\n {\n key: 'license_name',\n label: ctx.__('', 'License Name'),\n },\n {\n key: 'user_name',\n label: ctx.__('', 'Updated By'),\n },\n {\n key: 'from_group_name',\n label: ctx.__('', 'From'),\n },\n {\n key: 'to_group_name',\n label: ctx.__('', 'To'),\n },\n {\n key: 'event_type',\n label: ctx.__('', 'Event'),\n },\n {\n key: 'home_access_type',\n label: ctx.__('', 'Home Access Type'),\n },\n {\n key: 'product',\n label: ctx.__('', 'Product'),\n }\n ],\n licenseTranslations: {\n [licenseActions.LICENSE_REVOKED]: ctx.isThirdPartyConnected ? ctx.__('', 'Automated Roster Sync (Clever)') : ctx.__('', 'Revoked'),\n [licenseActions.LICENSE_DEACTIVATED]: ctx.__('', 'Revoked'),\n [licenseActions.LICENSE_EXPIRED]: ctx.__('', 'Expired'),\n [licenseActions.LICENSE_CREATED]: ctx.__('', 'Assigned'),\n [licenseActions.LICENSE_ASSIGNED]: ctx.isThirdPartyConnected ? ctx.__('', 'Automated Roster Sync (Clever)') : ctx.__('', 'Assigned'),\n [licenseActions.LICENSE_EXTENDED]: ctx.__('', 'Extended'),\n [licenseActions.LICENSE_TRANSFERRED]: ctx.__('', 'Transferred'),\n [licenseActions.LICENSE_TAKEN]: ctx.__('', 'Taken'),\n [licenseActions.LICENSE_GIVEN]: ctx.__('', 'Given'),\n 'Students': ctx.__('', 'Students')\n }\n };\n if (!ctx['for-student-view']) {\n t10s.fields.push({\n key: 'quantity',\n label: ctx.__('', 'Number of Licenses'),\n });\n }\n\n return t10s;\n};\n\n/**\n * @summary InventoryUpdatesLog\n * @extends {mapStatePropertiesMixin(i18nMixin(AoflElement))}\n */\n@customElement('inventory-updates-log')\nclass InventoryUpdatesLog extends mapStatePropertiesMixin(i18nMixin(AoflElement)) {\n /**\n * Creates an instance of InventoryUpdatesLog.\n */\n constructor() {\n super();\n this.translations = translations;\n this.storeInstance = storeInstance;\n }\n\n @property({type: Number, mapState: `${sdoNs.INVENTORY_UPDATE_LOG}.$numPages`, store: storeInstance})\n pages = 0;\n\n @property({type: Number, mapState: `${sdoNs.INVENTORY_UPDATE_LOG}.$pageNumber`, store: storeInstance})\n currentPage = 0;\n\n @property({type: Boolean, attribute: false})\n loading = true;\n\n @property({type: Object, mapState: `${sdoNs.LICENSE_HISTORY}.queryObj.filters`, store: storeInstance})\n filters = {};\n\n @property({type: Boolean})\n ['hide-pagination'] = false;\n\n @property({type: Boolean})\n ['for-student-view'] = false;\n\n @property({type: Number, mapState: `${sdoNs.INVENTORY_UPDATE_LOG}`, store: storeInstance})\n data = {};\n\n @property({type: Number, mapState: `${sdoNs.SESSION}.group_info.id`, store: storeInstance})\n groupId = 0;\n\n @property({type: Boolean, mapState: `${sdoNs.ORG_GROUP_INFO}.is_third_party_connected`, store: storeInstance})\n isThirdPartyConnected = false;\n\n @property({type: Array})\n fields = [];\n\n @property({type: Object})\n licenseTranslations = {};\n\n @property({type: Array})\n openLicenseIds = {};\n\n connectedCallback() {\n super.connectedCallback();\n\n var t10s = setTranslations(this);\n for (let index in t10s) {\n this[index] = t10s[index];\n }\n }\n\n /**\n * @readonly\n */\n static is = 'inventory-updates-log';\n\n pageChanged(e) {\n const currentPage = e.detail.pageNumber;\n const lastValues = currentPage > this.currentPage ? this.data.$next : this.data.$prev;\n const sort = {\n ...this.data.sort,\n last_values: [lastValues.timestamp, lastValues.id],\n is_forward: currentPage > this.currentPage\n };\n\n storeInstance.commit({\n namespace: sdoNs.INVENTORY_UPDATE_LOG,\n mutationId: 'setSort',\n payload: sort,\n });\n\n this.dispatchEvent(new CustomEvent('history-page-changed', {}));\n }\n\n loadData(data) {\n this.loading = true;\n this.performUpdate();\n storeInstance.commit({\n namespace: sdoNs.INVENTORY_UPDATE_LOG,\n mutationId: 'setData',\n payload: data\n });\n\n this.loading = false;\n this.requestUpdate();\n }\n\n async export(filters, searchType, selectionMode = '') {\n const promises = this.fields.map((item) => item.label);\n const results = await Promise.all(promises);\n const fields = this.fields.map((item, index) => {\n return {\n key: item.key,\n label: results[index].strings[0]\n };\n });\n const translations = {};\n const translationResults = await Promise.all(Object.values(this.licenseTranslations));\n let index = 0;\n for (const [key, value] of Object.entries(this.licenseTranslations)) {\n translations[key] = translationResults[index].strings[0];\n index++;\n }\n const args = {\n searchType,\n search: {},\n filters,\n sort:this.data.sort,\n fields,\n filterIds: [],\n notSelected: [],\n selectionMode,\n i18n: translations\n };\n\n await ApiService.exportSearch(args);\n await userJobs.getJobs();\n Toast.success(this.toasts.export_queued);\n }\n\n toggleOpen(licenseId) {\n if (this.openLicenseIds[licenseId] === 'undefined') {\n this.openLicenseIds[licenseId] = true;\n } else {\n this.openLicenseIds[licenseId] = !this.openLicenseIds[licenseId];\n }\n }\n\n /**\n *\n * @return {Object}\n */\n render() {\n return super.render({\n default: {\n template,\n styles: [styles]\n }\n });\n }\n}\n\nexport default InventoryUpdatesLog;\n","import {until} from 'lit-html/directives/until';\nimport {unsafeHTML} from 'lit-html/directives/unsafe-html';\n\nconst dynamicCss = ['.text-blue', '.text-primary', '.text-muted', '.text-success', '.ai-inactive', '.ai-target', '.ai-trophy'];\n\nexport default (ctx, html) => html`\n
\n
\n ${unsafeHTML(ctx.icon)}\n
\n
\n
${ctx.count}
\n
${until(ctx.message)}
\n ${ctx.isClickable ? html`` : ''}\n
\n
\n`;\n","import styles from './template.css';\nimport template from './template';\nimport {AoflElement, customElement, property} from '@aofl/element';\nimport {i18nMixin} from '@aofl/i18n-mixin';\n\n/**\n * @summary ActionItem\n * @extends {AoflElement}\n */\n@customElement('action-item')\nclass ActionItem extends i18nMixin(AoflElement) {\n /**\n * Creates an instance of ActionItem.\n */\n constructor() {\n super();\n }\n\n @property({type: String, attribute: true})\n icon = '';\n\n @property({type: Number, attribute: true})\n count = '';\n\n @property({type: String, attribute: true})\n message = '';\n\n @property({type: Boolean})\n isClickable = true;\n\n onClick() {\n this.dispatchEvent(new CustomEvent('on-click', {\n composed: true,\n bubbles: true,\n }));\n }\n\n /**\n * @readonly\n */\n static is = 'action-item';\n /**\n *\n * @return {Object}\n */\n render() {\n return super.render({\n default: {template, styles: [styles]}\n });\n }\n}\n\nexport default ActionItem;\n","import {until} from 'lit-html/directives/until';\nimport '../dropdown';\n\nconst renderGroup = (group, groupIndex, ctx, html) => html`\n\n \n
ctx.maxLevel === group.level && e.stopPropagation()}\">\n ${group.groups.map((item, itemIndex) => html`\n \n `)}\n
\n
\n`;\nexport default (ctx, html) => html`\n${ctx.groups.map((group, index) => renderGroup(group, index, ctx, html))}\n`;\n","import styles from './template.css';\nimport template from './template';\nimport {AoflElement, customElement, property} from '@aofl/element';\nimport {storeInstance} from '@aofl/store/dist/legacy';\nimport {sdoNs} from '../constants-enumerate';\nimport {i18nMixin} from '@aofl/i18n-mixin';\nimport translations from '../i18n';\nimport '../session-sdo';\nimport debounce from 'debounce';\nimport {GroupLevelsFilter} from '../group-levels-filter';\n\n/**\n * @summary MultiClassroomSelectGroupFilter\n * @extends {i18nMixin(AoflElement)}\n */\n@customElement('multi-classroom-select-group-filter')\nclass MultiClassroomSelectGroupFilter extends i18nMixin(AoflElement) {\n /**\n * Creates an instance of MultiClassroomSelectGroupFilter.\n */\n constructor() {\n super();\n\n this.translations = translations;\n this.searchDebounce = debounce(this.search, 250);\n }\n\n /**\n * @readonly\n */\n static is = 'multi-classroom-select-group-filter';\n\n @property({type: Number})\n ['group-id'] = 0;\n\n @property({type: Number})\n maxLevel = 0;\n\n @property({type: Array})\n groups = [];\n\n @property({type: Array, attribute: false})\n selected = [];\n\n @property({type: Boolean})\n disabled = false;\n\n async selectGroup(groupIndex, itemIndex) {\n const selectedGroup = this.groups[groupIndex].groups[itemIndex];\n this.groups = await this.groupLevelsFilter.updateGroup(groupIndex, selectedGroup);\n if (selectedGroup.level - 1 === this.maxLevel) {\n this.dispatchEvent(new CustomEvent('search-filter-selected', {\n composed: true,\n bubbles: true,\n detail: selectedGroup\n }));\n }\n }\n\n async connectedCallback() {\n super.connectedCallback();\n\n const state = storeInstance.getState();\n const groupInfo = state[sdoNs.SESSION].group_info;\n this.maxLevel = parseInt(state[sdoNs.SESSION].settings.tier_structure.levels, 10);\n this.groupLevelsFilter = new GroupLevelsFilter(this.maxLevel, true);\n this.groups = await this.groupLevelsFilter.loadAllGroupsByParentPath(groupInfo);\n }\n\n /**\n *\n * @return {Object}\n */\n render() {\n return super.render({\n default: {template, styles: [styles]}\n });\n }\n}\n\nexport default MultiClassroomSelectGroupFilter;\n","import {until} from 'lit-html/directives/until';\nimport {permissions, modals, productKeepGrayScale} from '../constants-enumerate';\nimport {hasOneOfPermissions} from '../permissions';\nimport '../../modules/auth-context';\nimport '../../modules/show-modal';\nimport {products as productConsts, productLogos} from '../constants-enumerate';\nimport {generalLabels} from '@modules/i18n-labels';\n\nconst PASSCODE_PRODUCTS = {\n [productConsts.ABCMOUSE]: true,\n [productConsts.MATH_ACADEMY]: true,\n [productConsts.READING_MASTERY]: true,\n [productConsts.MY_MATH_ACADEMY]: true,\n [productConsts.MY_READING_ACADEMY]: true,\n};\n\nexport default (ctx, html) => html`\n
\n
\n \"${ctx.product.product}\"\n\n
\n
\n
\n ${ctx.product.status !== 'potential' ?\n html`\n ${renderTerminationDate(ctx, html)}\n ${renderRedeemCode(ctx, html)}\n ${renderInviteStatus(ctx, html)}\n ${renderRedeemDate(ctx, html)}\n ${renderFspk(ctx, html)}\n ${renderPasscode(ctx, html)}\n ` : ``}\n
\n ${ctx.product.status !== 'potential' ?\n html`${renderRevokeAction(ctx, html)}` :\n ``}\n ${ctx.product.activation_status === 'unactivated' && ctx.product.status !== 'potential' && ctx.product.external_access_type !== 'none' ? html`` : ''}\n
\n
\n`;\n\nconst renderFspk = (ctx, html) => {\n if (!ctx.product.fspk) {\n return '';\n }\n\n return html`\n
\n

FSPK

\n

${until(generalLabels.Yes)}

\n
`;\n};\n\nconst renderRedeemCode = (ctx, html) => {\n if (!ctx.product.redeem_code || ctx.product.activation_status !== 'unactivated') {\n return '';\n }\n\n return html`\n
\n

${until(ctx.__('', 'Redeem Code'))}

\n

${ctx.product.redeem_code}

\n
`;\n};\n\nconst renderRedeemDate = (ctx, html) => {\n if (ctx.product.activation_status === 'unactivated' || !ctx.product.redeemDate) {\n return;\n }\n\n return html`\n
\n

${until(ctx.__('', 'Redeem Date'))}

\n

${ctx.product.redeemDate}

\n
\n `;\n};\n\nconst renderTerminationDate = (ctx, html) => {\n if (ctx['user-type'] !== 'student' || !ctx.product.licenseEndDate) {\n return;\n }\n\n return html`\n
\n

${until(ctx.__('', 'License Start Date'))}

\n

${ctx.product.licenseStartDate}

\n
\n\n
\n

${until(ctx.__('', 'Terminate Date'))}

\n

${ctx.product.licenseEndDate}

\n
`;\n};\n\nconst renderInviteStatus = (ctx, html) => {\n if (ctx.product.external_access_type === 'none' || !(ctx.product.activation_status === 'unactivated' && ctx['user-type'] === 'student')) {\n return;\n }\n\n let content;\n if (ctx.product.invitation_status === 'not_sent') {\n content = html`\n

${until(ctx.__('', 'Invitation Status'))}

\n

${until(ctx.__('', 'Not Sent'))}

`;\n } else if (ctx.product.status !== 'active') {\n content = html`\n

${until(ctx.__('', 'Invitation Status'))}

\n

${until(ctx.__('', 'Sent (Not Redeemed)'))}

`;\n }\n\n return html`
${content}
`;\n};\n\nconst renderRevokeAction = (ctx, html) => {\n if (!(ctx['user-type'] === 'student' && ctx.product.status !== 'inactive')) {\n return;\n }\n\n return html`\n \n ${until(ctx.__('', 'Revoke'))}\n `;\n};\n\nconst renderIcon = (ctx, html, id) => {\n if (!ctx.passcodeInfo.passcode_icon_info) {\n return;\n }\n\n const passcodeItem = ctx.passcodeInfo.passcode_icon_info[id];\n return html`\"\"`;\n};\n\nconst renderPasscode = (ctx, html) => {\n if (PASSCODE_PRODUCTS[ctx.product.product] && ctx.product.passcode?.length > 0) {\n return html`\n
\n

${until(ctx.__('', 'Passcode'))}

\n

${ctx.product.passcode.map((id) => renderIcon(ctx, html, id))}\n \n { ctx.clearABCmousePassCode(); }}}\"\n class=\"btn d-inline btn-link\">${until(ctx.__('', 'Reset'))}\n \n \n

\n
\n `;\n }\n\n return '';\n};\n","import styles from './template.css';\nimport template from './template';\nimport {AoflElement, customElement, property} from '@aofl/element';\nimport {i18nMixin} from '@aofl/i18n-mixin';\nimport {ApiService} from '@modules/api-service';\nimport {storeInstance} from '@aofl/store/dist/legacy';\nimport {sdoNs} from '@modules/constants-enumerate';\nimport translations from '@modules/i18n';\n\n/**\n * @summary ProductCardInfo\n * @extends {i18nMixin(AoflElement)}\n */\n@customElement('product-card-info')\nclass ProductCardInfo extends i18nMixin(AoflElement) {\n /**\n * Creates an instance of ProductCardInfo.\n */\n constructor() {\n super();\n this.translations = translations;\n }\n\n /**\n * @readonly\n */\n static is = 'product-card-info';\n\n @property({type: Object})\n product = {};\n\n @property({type: Object})\n student = {};\n\n @property({type: String})\n ['user-type'] = 'student';\n\n @property({type: Object})\n passcodeInfo = {};\n\n async connectedCallback() {\n super.connectedCallback();\n\n this.passcodeInfo = await ApiService.abcmouseGetPasscodeInfo();\n }\n\n async invite() {\n const state = storeInstance.getState();\n await ApiService.sendInvites({\n student_ids: [state[sdoNs.STUDENT_INFO].id]\n });\n const studentInfo = await ApiService.studentGet(parseInt(state[sdoNs.STUDENT_INFO].id, 10));\n storeInstance.commit({namespace: sdoNs.STUDENT_INFO, mutationId: 'setData', payload: studentInfo});\n }\n\n async clearABCmousePassCode() {\n const payload = await ApiService.studentGet(this.student.id);\n storeInstance.commit({namespace: sdoNs.STUDENT_INFO, mutationId: 'setData', payload});\n }\n\n /**\n *\n * @return {Object}\n */\n render() {\n return super.render({\n default: {template, styles: [styles]}\n });\n }\n}\n\nexport default ProductCardInfo;\n","import toDate from '../toDate/index.js';\nimport toInteger from '../_lib/toInteger/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name endOfWeek\n * @category Week Helpers\n * @summary Return the end of a week for the given date.\n *\n * @description\n * Return the end of a week for the given date.\n * The result will be in the local timezone.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the original date\n * @param {Object} [options] - an object with options.\n * @param {Locale} [options.locale=defaultLocale] - the locale object. See [Locale]{@link https://date-fns.org/docs/Locale}\n * @param {0|1|2|3|4|5|6} [options.weekStartsOn=0] - the index of the first day of the week (0 - Sunday)\n * @returns {Date} the end of a week\n * @throws {TypeError} 1 argument required\n * @throws {RangeError} `options.weekStartsOn` must be between 0 and 6\n *\n * @example\n * // The end of a week for 2 September 2014 11:55:00:\n * var result = endOfWeek(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Sat Sep 06 2014 23:59:59.999\n *\n * @example\n * // If the week starts on Monday, the end of the week for 2 September 2014 11:55:00:\n * var result = endOfWeek(new Date(2014, 8, 2, 11, 55, 0), { weekStartsOn: 1 })\n * //=> Sun Sep 07 2014 23:59:59.999\n */\n\nexport default function endOfWeek(dirtyDate, dirtyOptions) {\n requiredArgs(1, arguments);\n var options = dirtyOptions || {};\n var locale = options.locale;\n var localeWeekStartsOn = locale && locale.options && locale.options.weekStartsOn;\n var defaultWeekStartsOn = localeWeekStartsOn == null ? 0 : toInteger(localeWeekStartsOn);\n var weekStartsOn = options.weekStartsOn == null ? defaultWeekStartsOn : toInteger(options.weekStartsOn); // Test if weekStartsOn is between 0 and 6 _and_ is not NaN\n\n if (!(weekStartsOn >= 0 && weekStartsOn <= 6)) {\n throw new RangeError('weekStartsOn must be between 0 and 6 inclusively');\n }\n\n var date = toDate(dirtyDate);\n var day = date.getDay();\n var diff = (day < weekStartsOn ? -7 : 0) + 6 - (day - weekStartsOn);\n date.setDate(date.getDate() + diff);\n date.setHours(23, 59, 59, 999);\n return date;\n}","import toDate from '../toDate/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name startOfDay\n * @category Day Helpers\n * @summary Return the start of a day for the given date.\n *\n * @description\n * Return the start of a day for the given date.\n * The result will be in the local timezone.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the original date\n * @returns {Date} the start of a day\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // The start of a day for 2 September 2014 11:55:00:\n * var result = startOfDay(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Tue Sep 02 2014 00:00:00\n */\n\nexport default function startOfDay(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n date.setHours(0, 0, 0, 0);\n return date;\n}","exports = module.exports = require(\"../../../../../node_modules/css-loader/dist/runtime/api.js\")(false);\n// Imports\nvar getUrl = require(\"../../../../../node_modules/css-loader/dist/runtime/getUrl.js\");\nvar ___CSS_LOADER_URL___0___ = getUrl(require(\"../../../../template/main/fonts/aofl-sans/aoflsans-light.woff2\"));\nvar ___CSS_LOADER_URL___1___ = getUrl(require(\"../../../../template/main/fonts/aofl-sans/aoflsans-lightit.woff2\"));\nvar ___CSS_LOADER_URL___2___ = getUrl(require(\"../../../../template/main/fonts/aofl-sans/aoflsans-reg.woff2\"));\nvar ___CSS_LOADER_URL___3___ = getUrl(require(\"../../../../template/main/fonts/aofl-sans/aoflsans-regit.woff2\"));\nvar ___CSS_LOADER_URL___4___ = getUrl(require(\"../../../../template/main/fonts/aofl-sans/aoflsans-sbold.woff2\"));\nvar ___CSS_LOADER_URL___5___ = getUrl(require(\"../../../../template/main/fonts/aofl-sans/aoflsans-sboldit.woff2\"));\nvar ___CSS_LOADER_URL___6___ = getUrl(require(\"../../../../template/main/fonts/aofl-sans/aoflsans-bold.woff2\"));\nvar ___CSS_LOADER_URL___7___ = getUrl(require(\"../../../../template/main/fonts/aofl-sans/aoflsans-boldit.woff2\"));\nvar ___CSS_LOADER_URL___8___ = getUrl(require(\"../../../../template/main/fonts/abcmouse-sans/ABCmouseSans-Light.woff2\"));\nvar ___CSS_LOADER_URL___9___ = getUrl(require(\"../../../../template/main/fonts/abcmouse-sans/ABCmouseSans-LightIt.woff2\"));\nvar ___CSS_LOADER_URL___10___ = getUrl(require(\"../../../../template/main/fonts/abcmouse-sans/ABCmouseSans-Regular.woff2\"));\nvar ___CSS_LOADER_URL___11___ = getUrl(require(\"../../../../template/main/fonts/abcmouse-sans/ABCmouseSans-RegularIt.woff2\"));\nvar ___CSS_LOADER_URL___12___ = getUrl(require(\"../../../../template/main/fonts/abcmouse-sans/ABCmouseSans-Semibold.woff2\"));\nvar ___CSS_LOADER_URL___13___ = getUrl(require(\"../../../../template/main/fonts/abcmouse-sans/ABCmouseSans-SemiboldIt.woff2\"));\nvar ___CSS_LOADER_URL___14___ = getUrl(require(\"../../../../template/main/fonts/abcmouse-sans/ABCmouseSans-Bold.woff2\"));\nvar ___CSS_LOADER_URL___15___ = getUrl(require(\"../../../../template/main/fonts/abcmouse-sans/ABCmouseSans-BoldIt.woff2\"));\nvar ___CSS_LOADER_URL___16___ = getUrl(require(\"../../../../template/main/fonts/abcmouse-sans/ABCmouseSans-ExtraBold.woff2\"));\nvar ___CSS_LOADER_URL___17___ = getUrl(require(\"../../../../template/main/fonts/abcmouse-sans/ABCmouseSans-ExtraBoldIt.woff2\"));\nvar ___CSS_LOADER_URL___18___ = getUrl(require(\"../../../../template/main/fonts/aofl-icons/icomoon.woff2?c6f21u\"));\n// Module\nexports.push([module.id, \"/*! @aofl-component */:root{--blue:#0d6efd;--indigo:#6610f2;--purple:#8b42ca;--pink:#e83e8c;--red:#e50b0a;--orange:#e17a05;--yellow:#ffc107;--green:#3c8104;--teal:#20c997;--cyan:#53c9dc;--white:#fff;--gray:#6b6b6b;--gray-dark:#343a40;--light-green:#b1dd53;--table-border-color:#d8d8d8;--gray-100:#f2f2f2;--gray-200:#d9d9d9;--gray-300:#d8d8d8;--gray-400:#ced4da;--gray-500:#adb5bd;--gray-600:#6c757d;--gray-700:#4a4a4a;--gray-800:#343a40;--gray-900:#212529;--gray-accessibility:#6b6b6b;--primary:#0d6efd;--secondary:#adb5bd;--success:#3c8104;--info:#cfe2ff;--warning:#e17a05;--danger:#d20a09;--light:#f8f9fa;--dark:#000;--breakpoint-xxs:0;--breakpoint-xs:375px;--breakpoint-sm:576px;--breakpoint-md:768px;--breakpoint-lg:992px;--breakpoint-xl:1200px;--font-family-sans-serif:aofl-sans,Arial,Helvetica,sans-serif;--font-family-monospace:SFMono-Regular,Menlo,Monaco,Consolas,\\\"Liberation Mono\\\",\\\"Courier New\\\",monospace;--z-index-dropdown:1000;--z-index-sticky:1020;--z-index-fixed:1030;--z-index-modal-backdrop:1040;--z-index-modal:1050;--z-index-popover:1060;--z-index-tooltip:1070;--header-height:6rem;--content-height:calc(100vh - 6rem);--sidepanel-width:20rem;--purple-color:#641da3;--purple-600:#956abc;--purple-400:#c7afdd;--purple-200:#e0d2ed;--struggling:#f6993b;--below-target:#ffcf00;--in_progress:#1280f5;--prior_knowledge:#edf887;--mastery_achieved:#69d112;--inactive:#d8d8d8}route-view{max-width:1200px}@font-face{font-family:aofl-sans;font-style:normal;font-weight:300;src:url(\" + ___CSS_LOADER_URL___0___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:italic;font-weight:300;src:url(\" + ___CSS_LOADER_URL___1___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:normal;font-weight:400;src:url(\" + ___CSS_LOADER_URL___2___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:italic;font-weight:400;src:url(\" + ___CSS_LOADER_URL___3___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:normal;font-weight:600;src:url(\" + ___CSS_LOADER_URL___4___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:italic;font-weight:600;src:url(\" + ___CSS_LOADER_URL___5___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:normal;font-weight:700;src:url(\" + ___CSS_LOADER_URL___6___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:italic;font-weight:700;src:url(\" + ___CSS_LOADER_URL___7___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:normal;font-weight:300;src:url(\" + ___CSS_LOADER_URL___8___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:italic;font-weight:300;src:url(\" + ___CSS_LOADER_URL___9___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:normal;font-weight:400;src:url(\" + ___CSS_LOADER_URL___10___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:italic;font-weight:400;src:url(\" + ___CSS_LOADER_URL___11___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:normal;font-weight:600;src:url(\" + ___CSS_LOADER_URL___12___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:italic;font-weight:600;src:url(\" + ___CSS_LOADER_URL___13___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:normal;font-weight:700;src:url(\" + ___CSS_LOADER_URL___14___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:italic;font-weight:700;src:url(\" + ___CSS_LOADER_URL___15___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:normal;font-weight:800;src:url(\" + ___CSS_LOADER_URL___16___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:italic;font-weight:800;src:url(\" + ___CSS_LOADER_URL___17___ + \") format(\\\"woff2\\\")}@font-face{font-family:icomoon;src:url(\" + ___CSS_LOADER_URL___18___ + \") format(\\\"woff2\\\");font-weight:400;font-style:normal;font-display:block}[class*=\\\" ai-\\\"],[class^=ai-]{font-family:icomoon!important;speak:never;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*,:after,:before{box-sizing:border-box}html{font-family:sans-serif;line-height:1.15;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:rgba(0,0,0,0)}figcaption,main,nav,section{display:block}[tabindex=\\\"-1\\\"]:focus{outline:0!important}p{margin-top:0;margin-bottom:1.6rem}strong{font-weight:bolder}a{color:#0d6efd;background-color:transparent}a,a:hover{text-decoration:none}a:hover{color:rgb(0,86.1,178.5)}a:not([href]):not([tabindex]),a:not([href]):not([tabindex]):focus,a:not([href]):not([tabindex]):hover{color:inherit;text-decoration:none}a:not([href]):not([tabindex]):focus{outline:0}caption{padding-top:.75rem;padding-bottom:.75rem;color:#6c757d;text-align:left;caption-side:bottom}button{border-radius:0}button:focus{outline:1px dotted;outline:5px auto -webkit-focus-ring-color}button,input{margin:0;font-family:inherit;font-size:inherit;line-height:inherit;overflow:visible}button{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]:not(:disabled),[type=reset]:not(:disabled),[type=submit]:not(:disabled),button:not(:disabled){cursor:pointer}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{padding:0;border-style:none}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}input[type=date],input[type=datetime-local],input[type=month],input[type=time]{-webkit-appearance:listbox}legend{display:block;width:100%;max-width:100%;padding:0;margin-bottom:.5rem;font-size:1.5rem;line-height:inherit;color:inherit;white-space:normal}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:none}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}summary{display:list-item;cursor:pointer}template{display:none}[hidden]{display:none!important}*{-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important}html{font-size:62.5%;height:100%}link-to{color:#0d6efd;text-decoration:none;background-color:transparent}link-to:hover{color:rgb(0,86.1,178.5);text-decoration:none;cursor:pointer}route-view{display:none;flex:1}site-header{background-color:#fff;display:none;position:-webkit-sticky;position:sticky;top:0;height:var(--header-height)}#main{display:none;flex:1 auto;max-width:100%;overflow:hidden;flex-direction:column;overflow-y:scroll}.loaded #main,.loaded site-header,body.loaded,route-view.loaded{display:flex}route-view.left-panel-active{padding-left:var(--sidepanel-width)}.row{display:flex;flex-wrap:wrap;margin-right:-15px;margin-left:-15px}.col-md-4,.col-sm-6{position:relative;width:100%;padding-right:15px;padding-left:15px}@media (min-width:576px){.col-sm-6{flex:0 0 50%;max-width:50%}}@media (min-width:768px){.col-md-4{flex:0 0 33.3333333333%;max-width:33.3333333333%}}input[type=checkbox],input[type=radio]{cursor:pointer}button,button:active{outline:none}[tabindex=\\\"0\\\"]:focus-visible,a:focus-visible,aofl-list-option:focus-visible,button[type=button]:focus-visible,collapse-button:focus-visible{outline:1px solid #e50b0a;border:1px solid #e50b0a}.card{position:relative;display:flex;flex-direction:column;min-width:0;word-wrap:break-word;background-color:#fff;background-clip:border-box;border:1px solid rgba(0,0,0,.125);border-radius:.25rem}.card-body{flex:1 1 auto}.card-header{padding:1.2rem 2rem;margin-bottom:0;background-color:rgba(0,0,0,.03);border-bottom:1px solid rgba(0,0,0,.125)}.card-header:first-child{border-radius:calc(.25rem - 1px) calc(.25rem - 1px) 0 0}.card-header{background-color:transparent;border-bottom:none;font-size:2rem;font-weight:300;margin:0 2rem;padding:1.6rem 0 0}.card-body{padding:2rem}.card-border-color-left{border-left:.5rem solid #c9c9c9}.card-border-color-left.card-border-color-warning{border-left-color:#e17a05}@keyframes progress-bar-stripes{0%{background-position:1.6rem 0}to{background-position:0 0}}.modal-container{background-color:rgba(0,0,0,.2);position:fixed;top:0;bottom:0;right:0;left:0;z-index:var(--z-index-modal)}.modal-container :first-child{overflow:auto}.modal{position:relative;display:block;height:100vh}.modal-dialog-centered.modal-dialog-scrollable{height:auto;max-height:calc(100% - 2.8rem);min-height:auto}.modal-body,.modal-content,.modal-footer,.modal-header{border:none}.modal-header{font-size:2rem;padding:2.4rem}.modal-body{padding:0 2.4rem 4.8rem}.colored-header{color:#fff}.modal-body p{text-align:left}.colored-header-primary{background-color:#0d6efd}.colored-header-secondary{background-color:#adb5bd}.colored-header-success{background-color:#3c8104}.colored-header-info{background-color:#cfe2ff}.colored-header-warning{background-color:#e17a05}.colored-header-danger{background-color:#d20a09}.colored-header-light{background-color:#f8f9fa}.colored-header-dark{background-color:#000}@keyframes spinner-border{to{transform:rotate(1turn)}}@keyframes spinner-grow{0%{transform:scale(0)}50%{opacity:1}}.mb-3{margin-bottom:1rem!important}.text-center{text-align:center!important}.font-weight-bold{font-weight:700!important}.text-danger{color:#d20a09!important}a.text-danger:focus,a.text-danger:hover{color:rgb(136.6438356164,6.5068493151,5.8561643836)!important}.cursor-pointer:hover{cursor:pointer!important}.text-blue{color:#0d6efd}[hidden]{visibility:hidden!important;height:0!important;width:0!important;min-height:unset!important}@media print{*,:after,:before{text-shadow:none!important;box-shadow:none!important}a:not(.btn){text-decoration:underline}p{orphans:3;widows:3}@page{size:a3}}@media print{main::-webkit-scrollbar{display:none}main{-ms-overflow-style:none;scrollbar-width:none}}@page{size:A4;margin:20mm 16mm 20mm 16mm}:host{display:inline-block}\", \"\"]);\n","exports = module.exports = require(\"../../../../../node_modules/css-loader/dist/runtime/api.js\")(false);\n// Module\nexports.push([module.id, \"tr{margin-left:0;margin-right:0;display:flex;flex-wrap:wrap}.col-1-5{max-width:12.5%;flex:0 0 12.5%}.ml--3{margin-left:-15px}.spacer{min-width:65px;height:1.6rem}.mr--3{margin-right:-15px}.quantity-wrapper{width:40%}.give-take-wrapper{width:59%}@media (max-width:1199px){.col-xs-2-5{max-width:20.83%;flex:0 0 20.83%}}\", \"\"]);\n","module.exports = __webpack_public_path__ + \"8ef12189d0d1a1606efdb03c33a4993a.webp\";","exports = module.exports = require(\"../../../node_modules/css-loader/dist/runtime/api.js\")(false);\n// Imports\nvar getUrl = require(\"../../../node_modules/css-loader/dist/runtime/getUrl.js\");\nvar ___CSS_LOADER_URL___0___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-light.woff2\"));\nvar ___CSS_LOADER_URL___1___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-lightit.woff2\"));\nvar ___CSS_LOADER_URL___2___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-reg.woff2\"));\nvar ___CSS_LOADER_URL___3___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-regit.woff2\"));\nvar ___CSS_LOADER_URL___4___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-sbold.woff2\"));\nvar ___CSS_LOADER_URL___5___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-sboldit.woff2\"));\nvar ___CSS_LOADER_URL___6___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-bold.woff2\"));\nvar ___CSS_LOADER_URL___7___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-boldit.woff2\"));\nvar ___CSS_LOADER_URL___8___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-Light.woff2\"));\nvar ___CSS_LOADER_URL___9___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-LightIt.woff2\"));\nvar ___CSS_LOADER_URL___10___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-Regular.woff2\"));\nvar ___CSS_LOADER_URL___11___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-RegularIt.woff2\"));\nvar ___CSS_LOADER_URL___12___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-Semibold.woff2\"));\nvar ___CSS_LOADER_URL___13___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-SemiboldIt.woff2\"));\nvar ___CSS_LOADER_URL___14___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-Bold.woff2\"));\nvar ___CSS_LOADER_URL___15___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-BoldIt.woff2\"));\nvar ___CSS_LOADER_URL___16___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-ExtraBold.woff2\"));\nvar ___CSS_LOADER_URL___17___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-ExtraBoldIt.woff2\"));\nvar ___CSS_LOADER_URL___18___ = getUrl(require(\"../../template/main/fonts/aofl-icons/icomoon.woff2?c6f21u\"));\n// Module\nexports.push([module.id, \"/*! @aofl-component */:root{--blue:#0d6efd;--indigo:#6610f2;--purple:#8b42ca;--pink:#e83e8c;--red:#e50b0a;--orange:#e17a05;--yellow:#ffc107;--green:#3c8104;--teal:#20c997;--cyan:#53c9dc;--white:#fff;--gray:#6b6b6b;--gray-dark:#343a40;--light-green:#b1dd53;--table-border-color:#d8d8d8;--gray-100:#f2f2f2;--gray-200:#d9d9d9;--gray-300:#d8d8d8;--gray-400:#ced4da;--gray-500:#adb5bd;--gray-600:#6c757d;--gray-700:#4a4a4a;--gray-800:#343a40;--gray-900:#212529;--gray-accessibility:#6b6b6b;--primary:#0d6efd;--secondary:#adb5bd;--success:#3c8104;--info:#cfe2ff;--warning:#e17a05;--danger:#d20a09;--light:#f8f9fa;--dark:#000;--breakpoint-xxs:0;--breakpoint-xs:375px;--breakpoint-sm:576px;--breakpoint-md:768px;--breakpoint-lg:992px;--breakpoint-xl:1200px;--font-family-sans-serif:aofl-sans,Arial,Helvetica,sans-serif;--font-family-monospace:SFMono-Regular,Menlo,Monaco,Consolas,\\\"Liberation Mono\\\",\\\"Courier New\\\",monospace;--z-index-dropdown:1000;--z-index-sticky:1020;--z-index-fixed:1030;--z-index-modal-backdrop:1040;--z-index-modal:1050;--z-index-popover:1060;--z-index-tooltip:1070;--header-height:6rem;--content-height:calc(100vh - 6rem);--sidepanel-width:20rem;--purple-color:#641da3;--purple-600:#956abc;--purple-400:#c7afdd;--purple-200:#e0d2ed;--struggling:#f6993b;--below-target:#ffcf00;--in_progress:#1280f5;--prior_knowledge:#edf887;--mastery_achieved:#69d112;--inactive:#d8d8d8}route-view{max-width:1200px}@font-face{font-family:aofl-sans;font-style:normal;font-weight:300;src:url(\" + ___CSS_LOADER_URL___0___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:italic;font-weight:300;src:url(\" + ___CSS_LOADER_URL___1___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:normal;font-weight:400;src:url(\" + ___CSS_LOADER_URL___2___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:italic;font-weight:400;src:url(\" + ___CSS_LOADER_URL___3___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:normal;font-weight:600;src:url(\" + ___CSS_LOADER_URL___4___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:italic;font-weight:600;src:url(\" + ___CSS_LOADER_URL___5___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:normal;font-weight:700;src:url(\" + ___CSS_LOADER_URL___6___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:italic;font-weight:700;src:url(\" + ___CSS_LOADER_URL___7___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:normal;font-weight:300;src:url(\" + ___CSS_LOADER_URL___8___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:italic;font-weight:300;src:url(\" + ___CSS_LOADER_URL___9___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:normal;font-weight:400;src:url(\" + ___CSS_LOADER_URL___10___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:italic;font-weight:400;src:url(\" + ___CSS_LOADER_URL___11___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:normal;font-weight:600;src:url(\" + ___CSS_LOADER_URL___12___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:italic;font-weight:600;src:url(\" + ___CSS_LOADER_URL___13___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:normal;font-weight:700;src:url(\" + ___CSS_LOADER_URL___14___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:italic;font-weight:700;src:url(\" + ___CSS_LOADER_URL___15___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:normal;font-weight:800;src:url(\" + ___CSS_LOADER_URL___16___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:italic;font-weight:800;src:url(\" + ___CSS_LOADER_URL___17___ + \") format(\\\"woff2\\\")}@font-face{font-family:icomoon;src:url(\" + ___CSS_LOADER_URL___18___ + \") format(\\\"woff2\\\");font-weight:400;font-style:normal;font-display:block}[class*=\\\" ai-\\\"],[class^=ai-]{font-family:icomoon!important;speak:never;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.ai-checkmark:before{content:\\\"\\\\e90c\\\"}.ai-close-icon:before{content:\\\"\\\\e912\\\"}*,:after,:before{box-sizing:border-box}html{font-family:sans-serif;line-height:1.15;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:rgba(0,0,0,0)}figcaption,main,nav,section{display:block}[tabindex=\\\"-1\\\"]:focus{outline:0!important}strong{font-weight:bolder}caption{padding-top:.75rem;padding-bottom:.75rem;color:#6c757d;text-align:left;caption-side:bottom}button{border-radius:0}button:focus{outline:1px dotted;outline:5px auto -webkit-focus-ring-color}button,input{margin:0;font-family:inherit;font-size:inherit;line-height:inherit;overflow:visible}button{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]:not(:disabled),[type=reset]:not(:disabled),[type=submit]:not(:disabled),button:not(:disabled){cursor:pointer}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{padding:0;border-style:none}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}input[type=date],input[type=datetime-local],input[type=month],input[type=time]{-webkit-appearance:listbox}legend{display:block;width:100%;max-width:100%;padding:0;margin-bottom:.5rem;font-size:1.5rem;line-height:inherit;color:inherit;white-space:normal}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:none}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}summary{display:list-item;cursor:pointer}template{display:none}[hidden]{display:none!important}*{-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important}html{font-size:62.5%;height:100%}link-to{color:#0d6efd;text-decoration:none;background-color:transparent}link-to:hover{color:rgb(0,86.1,178.5);text-decoration:none;cursor:pointer}route-view{display:none;flex:1}site-header{background-color:#fff;display:none;position:-webkit-sticky;position:sticky;top:0;height:var(--header-height)}#main{display:none;flex:1 auto;max-width:100%;overflow:hidden;flex-direction:column;overflow-y:scroll}.loaded #main,.loaded site-header,body.loaded,route-view.loaded{display:flex}route-view.left-panel-active{padding-left:var(--sidepanel-width)}input[type=checkbox],input[type=radio]{cursor:pointer}button,button:active{outline:none}[tabindex=\\\"0\\\"]:focus-visible,aofl-list-option:focus-visible,button[type=button]:focus-visible,collapse-button:focus-visible{outline:1px solid #e50b0a;border:1px solid #e50b0a}@keyframes progress-bar-stripes{0%{background-position:1.6rem 0}to{background-position:0 0}}.modal-container{background-color:rgba(0,0,0,.2);position:fixed;top:0;bottom:0;right:0;left:0;z-index:var(--z-index-modal)}.modal-container :first-child{overflow:auto}.modal{position:relative;display:block;height:100vh}.modal-dialog-centered.modal-dialog-scrollable{height:auto;max-height:calc(100% - 2.8rem);min-height:auto}.modal-body,.modal-content,.modal-footer,.modal-header{border:none}.modal-header{font-size:2rem;padding:2.4rem}.modal-body{padding:0 2.4rem 4.8rem}.colored-header{color:#fff}.modal-body p{text-align:left}.colored-header-primary{background-color:#0d6efd}.colored-header-secondary{background-color:#adb5bd}.colored-header-success{background-color:#3c8104}.colored-header-info{background-color:#cfe2ff}.colored-header-warning{background-color:#e17a05}.colored-header-danger{background-color:#d20a09}.colored-header-light{background-color:#f8f9fa}.colored-header-dark{background-color:#000}@keyframes spinner-border{to{transform:rotate(1turn)}}@keyframes spinner-grow{0%{transform:scale(0)}50%{opacity:1}}.text-primary{color:#0d6efd!important}.text-warning{color:#e17a05!important}.text-danger{color:#d20a09!important}[hidden]{visibility:hidden!important;height:0!important;width:0!important;min-height:unset!important}@media print{*,:after,:before{text-shadow:none!important;box-shadow:none!important}@page{size:a3}}@media print{main::-webkit-scrollbar{display:none}main{-ms-overflow-style:none;scrollbar-width:none}}@page{size:A4;margin:20mm 16mm 20mm 16mm}:host{display:inline-block}\", \"\"]);\n","module.exports = __webpack_public_path__ + \"e704fa55f8c558ace37e60dc7c376960.webp\";","import {storeInstance} from '@aofl/store/dist/legacy';\nimport {routerInstance} from '@aofl/router';\nimport {sdoNs} from './constants-enumerate';\nimport {SearchParams} from './search-url-params';\nimport {deepAssign} from '@aofl/object-utils';\nimport {environment} from '@modules/constants-enumerate';\n\nconst resetFilters = (searchNamespace = sdoNs.GROUP_SEARCH) => {\n const state = storeInstance.getState();\n const filters = state[searchNamespace].defaultQueryObj.filters;\n\n storeInstance.commit({\n namespace: searchNamespace,\n mutationId: 'setQueryFilters',\n payload: filters\n }, {\n namespace: searchNamespace,\n mutationId: 'setPendingFilters',\n payload: filters\n });\n\n /** @todo decide if we need to reload the page or not */\n const searchState = storeInstance.getState()[searchNamespace];\n searchState.queryObj.filters_reset = true;\n const searchParams = SearchParams.encode(searchState.queryObj);\n const searchTargetUrl = state[searchNamespace].searchTargetUrl;\n\n try {\n routerInstance.navigate(`${searchTargetUrl}?${searchParams}`, {\n replaceState: true\n });\n } catch (e) {\n }\n};\n\nconst maybeApplyFilters = async (searchNamespace) => {\n await applyFilters(searchNamespace);\n return true;\n};\n\nconst applyFilters = async (searchNamespace = sdoNs.GROUP_SEARCH) => {\n const state = storeInstance.getState();\n const queryObj = state[searchNamespace].queryObj;\n const pendingFilters = state[searchNamespace].pendingFilters;\n let searchQuery = queryObj;\n if (typeof pendingFilters !== 'undefined') {\n searchQuery = deepAssign(queryObj, 'filters', pendingFilters);\n }\n\n storeInstance.commit(\n {namespace: searchNamespace, mutationId: 'setQueryObj', payload: searchQuery},\n {namespace: searchNamespace, mutationId: 'removeSortLastValues'}\n );\n\n const searchParams = SearchParams.encode(searchQuery);\n const searchTargetUrl = state[searchNamespace].searchTargetUrl;\n\n try {\n const url = `${searchTargetUrl}?${searchParams}`;\n window.history.replaceState('', '', url);\n } catch (e) {}\n};\n\n\nconst applyHistory = (searchNamespace = sdoNs.GROUP_SEARCH) => {\n const state = storeInstance.getState();\n const queryObj = state[searchNamespace].queryObj;\n const pendingFilters = state[searchNamespace].pendingFilters;\n let searchQuery = queryObj;\n if (typeof pendingFilters !== 'undefined') {\n searchQuery = deepAssign(queryObj, 'filters', pendingFilters);\n }\n\n const searchParams = SearchParams.encode(searchQuery);\n const searchTargetUrl = state[searchNamespace].searchTargetUrl;\n try {\n window.history.pushState('', searchTargetUrl, searchTargetUrl + '?' + searchParams);\n } catch (e) {\n }\n};\n\nexport {\n resetFilters,\n applyFilters,\n applyHistory,\n maybeApplyFilters,\n};\n","exports = module.exports = require(\"../../../node_modules/css-loader/dist/runtime/api.js\")(false);\n// Imports\nvar getUrl = require(\"../../../node_modules/css-loader/dist/runtime/getUrl.js\");\nvar ___CSS_LOADER_URL___0___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-light.woff2\"));\nvar ___CSS_LOADER_URL___1___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-lightit.woff2\"));\nvar ___CSS_LOADER_URL___2___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-reg.woff2\"));\nvar ___CSS_LOADER_URL___3___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-regit.woff2\"));\nvar ___CSS_LOADER_URL___4___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-sbold.woff2\"));\nvar ___CSS_LOADER_URL___5___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-sboldit.woff2\"));\nvar ___CSS_LOADER_URL___6___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-bold.woff2\"));\nvar ___CSS_LOADER_URL___7___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-boldit.woff2\"));\nvar ___CSS_LOADER_URL___8___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-Light.woff2\"));\nvar ___CSS_LOADER_URL___9___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-LightIt.woff2\"));\nvar ___CSS_LOADER_URL___10___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-Regular.woff2\"));\nvar ___CSS_LOADER_URL___11___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-RegularIt.woff2\"));\nvar ___CSS_LOADER_URL___12___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-Semibold.woff2\"));\nvar ___CSS_LOADER_URL___13___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-SemiboldIt.woff2\"));\nvar ___CSS_LOADER_URL___14___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-Bold.woff2\"));\nvar ___CSS_LOADER_URL___15___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-BoldIt.woff2\"));\nvar ___CSS_LOADER_URL___16___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-ExtraBold.woff2\"));\nvar ___CSS_LOADER_URL___17___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-ExtraBoldIt.woff2\"));\nvar ___CSS_LOADER_URL___18___ = getUrl(require(\"../../template/main/fonts/aofl-icons/icomoon.woff2?c6f21u\"));\n// Module\nexports.push([module.id, \"/*! @aofl-component */:root{--blue:#0d6efd;--indigo:#6610f2;--purple:#8b42ca;--pink:#e83e8c;--red:#e50b0a;--orange:#e17a05;--yellow:#ffc107;--green:#3c8104;--teal:#20c997;--cyan:#53c9dc;--white:#fff;--gray:#6b6b6b;--gray-dark:#343a40;--light-green:#b1dd53;--table-border-color:#d8d8d8;--gray-100:#f2f2f2;--gray-200:#d9d9d9;--gray-300:#d8d8d8;--gray-400:#ced4da;--gray-500:#adb5bd;--gray-600:#6c757d;--gray-700:#4a4a4a;--gray-800:#343a40;--gray-900:#212529;--gray-accessibility:#6b6b6b;--primary:#0d6efd;--secondary:#adb5bd;--success:#3c8104;--info:#cfe2ff;--warning:#e17a05;--danger:#d20a09;--light:#f8f9fa;--dark:#000;--breakpoint-xxs:0;--breakpoint-xs:375px;--breakpoint-sm:576px;--breakpoint-md:768px;--breakpoint-lg:992px;--breakpoint-xl:1200px;--font-family-sans-serif:aofl-sans,Arial,Helvetica,sans-serif;--font-family-monospace:SFMono-Regular,Menlo,Monaco,Consolas,\\\"Liberation Mono\\\",\\\"Courier New\\\",monospace;--z-index-dropdown:1000;--z-index-sticky:1020;--z-index-fixed:1030;--z-index-modal-backdrop:1040;--z-index-modal:1050;--z-index-popover:1060;--z-index-tooltip:1070;--header-height:6rem;--content-height:calc(100vh - 6rem);--sidepanel-width:20rem;--purple-color:#641da3;--purple-600:#956abc;--purple-400:#c7afdd;--purple-200:#e0d2ed;--struggling:#f6993b;--below-target:#ffcf00;--in_progress:#1280f5;--prior_knowledge:#edf887;--mastery_achieved:#69d112;--inactive:#d8d8d8}route-view{max-width:1200px}@font-face{font-family:aofl-sans;font-style:normal;font-weight:300;src:url(\" + ___CSS_LOADER_URL___0___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:italic;font-weight:300;src:url(\" + ___CSS_LOADER_URL___1___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:normal;font-weight:400;src:url(\" + ___CSS_LOADER_URL___2___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:italic;font-weight:400;src:url(\" + ___CSS_LOADER_URL___3___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:normal;font-weight:600;src:url(\" + ___CSS_LOADER_URL___4___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:italic;font-weight:600;src:url(\" + ___CSS_LOADER_URL___5___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:normal;font-weight:700;src:url(\" + ___CSS_LOADER_URL___6___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:italic;font-weight:700;src:url(\" + ___CSS_LOADER_URL___7___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:normal;font-weight:300;src:url(\" + ___CSS_LOADER_URL___8___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:italic;font-weight:300;src:url(\" + ___CSS_LOADER_URL___9___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:normal;font-weight:400;src:url(\" + ___CSS_LOADER_URL___10___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:italic;font-weight:400;src:url(\" + ___CSS_LOADER_URL___11___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:normal;font-weight:600;src:url(\" + ___CSS_LOADER_URL___12___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:italic;font-weight:600;src:url(\" + ___CSS_LOADER_URL___13___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:normal;font-weight:700;src:url(\" + ___CSS_LOADER_URL___14___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:italic;font-weight:700;src:url(\" + ___CSS_LOADER_URL___15___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:normal;font-weight:800;src:url(\" + ___CSS_LOADER_URL___16___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:italic;font-weight:800;src:url(\" + ___CSS_LOADER_URL___17___ + \") format(\\\"woff2\\\")}@font-face{font-family:icomoon;src:url(\" + ___CSS_LOADER_URL___18___ + \") format(\\\"woff2\\\");font-weight:400;font-style:normal;font-display:block}[class*=\\\" ai-\\\"],[class^=ai-]{font-family:icomoon!important;speak:never;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*,:after,:before{box-sizing:border-box}html{font-family:sans-serif;line-height:1.15;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:rgba(0,0,0,0)}figcaption,main,nav,section{display:block}[tabindex=\\\"-1\\\"]:focus{outline:0!important}strong{font-weight:bolder}code{font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:1em}caption{padding-top:.75rem;padding-bottom:.75rem;color:#6c757d;text-align:left;caption-side:bottom}button{border-radius:0}button:focus{outline:1px dotted;outline:5px auto -webkit-focus-ring-color}button,input{margin:0;font-family:inherit;font-size:inherit;line-height:inherit;overflow:visible}button{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]:not(:disabled),[type=reset]:not(:disabled),[type=submit]:not(:disabled),button:not(:disabled){cursor:pointer}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{padding:0;border-style:none}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}input[type=date],input[type=datetime-local],input[type=month],input[type=time]{-webkit-appearance:listbox}legend{display:block;width:100%;max-width:100%;padding:0;margin-bottom:.5rem;font-size:1.5rem;line-height:inherit;color:inherit;white-space:normal}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:none}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}summary{display:list-item;cursor:pointer}template{display:none}[hidden]{display:none!important}*{-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important}html{font-size:62.5%;height:100%}link-to{color:#0d6efd;text-decoration:none;background-color:transparent}link-to:hover{color:rgb(0,86.1,178.5);text-decoration:none;cursor:pointer}route-view{display:none;flex:1}site-header{background-color:#fff;display:none;position:-webkit-sticky;position:sticky;top:0;height:var(--header-height)}#main{display:none;flex:1 auto;max-width:100%;overflow:hidden;flex-direction:column;overflow-y:scroll}.loaded #main,.loaded site-header,body.loaded,route-view.loaded{display:flex}route-view.left-panel-active{padding-left:var(--sidepanel-width)}code{font-size:87.5%;color:#e83e8c;word-break:break-word}input[type=checkbox],input[type=radio]{cursor:pointer}button,button:active{outline:none}[tabindex=\\\"0\\\"]:focus-visible,aofl-list-option:focus-visible,button[type=button]:focus-visible,collapse-button:focus-visible{outline:1px solid #e50b0a;border:1px solid #e50b0a}.using-keyboard input:focus{border-color:#e50b0a;outline:2px solid #e50b0a}@keyframes progress-bar-stripes{0%{background-position:1.6rem 0}to{background-position:0 0}}.modal-container{background-color:rgba(0,0,0,.2);position:fixed;top:0;bottom:0;right:0;left:0;z-index:var(--z-index-modal)}.modal-container :first-child{overflow:auto}.modal{position:relative;display:block;height:100vh}.modal-dialog-centered.modal-dialog-scrollable{height:auto;max-height:calc(100% - 2.8rem);min-height:auto}.modal-body,.modal-content,.modal-footer,.modal-header{border:none}.modal-header{font-size:2rem;padding:2.4rem}.modal-body{padding:0 2.4rem 4.8rem}.colored-header{color:#fff}.modal-body p{text-align:left}.colored-header-primary{background-color:#0d6efd}.colored-header-secondary{background-color:#adb5bd}.colored-header-success{background-color:#3c8104}.colored-header-info{background-color:#cfe2ff}.colored-header-warning{background-color:#e17a05}.colored-header-danger{background-color:#d20a09}.colored-header-light{background-color:#f8f9fa}.colored-header-dark{background-color:#000}@keyframes spinner-border{to{transform:rotate(1turn)}}@keyframes spinner-grow{0%{transform:scale(0)}50%{opacity:1}}[hidden]{visibility:hidden!important;height:0!important;width:0!important;min-height:unset!important}@media print{*,:after,:before{text-shadow:none!important;box-shadow:none!important}@page{size:a3}}@media print{main::-webkit-scrollbar{display:none}main{-ms-overflow-style:none;scrollbar-width:none}}@page{size:A4;margin:20mm 16mm 20mm 16mm}\", \"\"]);\n","exports = module.exports = require(\"../../../node_modules/css-loader/dist/runtime/api.js\")(false);\n// Module\nexports.push([module.id, \"#drawer-wrapper{right:0}\", \"\"]);\n","import {until} from 'lit-html/directives/until';\nimport {permissions,} from '@modules/constants-enumerate';\n\nconst lowerLevelAdminsPermissions = [\n permissions.ROSTER_FULL,\n permissions.ROSTER,\n permissions.EXPORT_ALL,\n permissions.ALL\n];\n\nexport default (ctx, html) => {\n let label;\n if (ctx.disableExportLink) {\n label = html`\n
\n Downloading...\n
\n `;\n } else {\n label = until(ctx.__('', 'Download Existing Roster'));\n }\n\n return html`\n
\n (e.key === 'Enter') ? ctx.exportAll() : null}\" show-on-auth .permissions=\"${lowerLevelAdminsPermissions}\">\n \n \n \n (e.key === 'Enter') ? ctx.getRosterTemplate() : null}\" show-on-auth .permissions=\"${lowerLevelAdminsPermissions}\">\n \n \n
\n `;\n};\n","import styles from './template.css';\nimport template from './template';\nimport {AoflElement, customElement, property} from '@aofl/element';\nimport {mapStatePropertiesMixin} from '@aofl/map-state-properties-mixin';\nimport {i18nMixin} from '@aofl/i18n-mixin';\nimport translations from '../../i18n';\nimport {storeInstance} from '@aofl/store/dist/legacy';\nimport {ApiService} from '@modules/api-service';\nimport {userJobs} from '@modules/user-jobs';\nimport {RosterUtils} from '@modules/roster-utils';\n\n/**\n * @summary RosterExportLink\n * @extends {mapStatePropertiesMixin(i18nMixin(AoflElement))}\n */\n@customElement('roster-export-link')\nclass RosterExportLink extends mapStatePropertiesMixin(i18nMixin(AoflElement)) {\n /**\n * Creates an instance of RosterExportLink.\n */\n constructor() {\n super();\n\n this.storeInstance = storeInstance;\n this.translations = translations;\n }\n\n /**\n * @readonly\n */\n static is = 'roster-export-link';\n\n @property({type: Boolean, attribute: false})\n disableExportLink = false;\n\n async exportAll() {\n this.disableExportLink = true;\n try {\n userJobs.pause();\n await ApiService.rosterExportJob();\n userJobs.getJobs();\n } catch (e) {\n }\n this.disableExportLink = false;\n }\n\n async getRosterTemplate() {\n await RosterUtils.getRosterTemplate();\n }\n\n /**\n *\n * @return {Object}\n */\n render() {\n return super.render({\n default: {template, styles: [styles]}\n });\n }\n}\n\nexport default RosterExportLink;\n","module.exports = __webpack_public_path__ + \"dad8b89a544d24dafa154074338207ef.webp\";","module.exports = __webpack_public_path__ + \"a21e662a87402c0cb7d13b36d4d12a3b.webp\";","module.exports = \"\"","module.exports = __webpack_public_path__ + \"bf9da4af76d4e112a3f97123bd66ccda.webp\";","module.exports = __webpack_public_path__ + \"3ee26adb6b9873c8d9caceea7859b428.webp\";","import {storeInstance} from '@aofl/store/dist/legacy';\nimport {sdoNs} from './constants-enumerate';\nimport {deepAssign} from '@aofl/object-utils';\nconst DEFAULT_PENDING_FILTERS = {\n group_path: [],\n};\n\nconst sdo = {\n namespace: sdoNs.GROUP_SEARCH,\n mutations: {\n init() {\n return {\n level: 0,\n queryObj: {\n search: {},\n filters: {},\n sort: {},\n selection_mode: null,\n persistent_selection: [],\n not_selected: [],\n total_results: 0\n },\n results: [],\n hasMore: false,\n tableConfig: [],\n allSelected: false,\n selected: [],\n selectionMode: null,\n searchTargetUrl: '',\n profileTargetUrl: '',\n defaultQueryObj: {},\n pendingFilters: DEFAULT_PENDING_FILTERS\n };\n },\n setQuerySearchQuery(subState, query) {\n query = query.replace(/\\s+/g, ' ');\n return deepAssign(subState, 'queryObj.search', {\n query\n });\n },\n setQuerySearchField(subState, field) {\n return deepAssign(subState, 'queryObj.search', {\n field\n });\n },\n setQuerySortFields(subState, field) {\n return deepAssign(subState, 'queryObj.sort', {\n fields: [field, 'id']\n });\n },\n setQueryFilters(subState, filters) {\n return deepAssign(subState, 'queryObj', {\n filters\n });\n },\n setPendingFilters(subState, _pendingFilters) {\n const pendingFilters = {\n ...DEFAULT_PENDING_FILTERS,\n ..._pendingFilters\n };\n return deepAssign(subState, '', {\n pendingFilters\n });\n },\n setPendingFiltersGroupPath(subState, path) {\n return deepAssign(subState, 'pendingFilters', {\n group_path: path\n });\n },\n setPendingFiltersClassesPath(subState, path) {\n return deepAssign(subState, 'pendingFilters', {\n classes_path: path\n });\n },\n setPendingFiltersClassroomId(subState, id) {\n return deepAssign(subState, 'pendingFilters', {\n classroom_id: id\n });\n },\n setPendingFiltersParentGroupId(subState, parentGroupId) {\n return deepAssign(subState, 'pendingFilters', {\n parent_group_id: parentGroupId\n });\n },\n updateSortOrder(subState, {index, field}) {\n let direction = subState.queryObj.sort.direction;\n if (direction === 'asc') {\n direction = 'desc';\n } else if (direction === 'desc') {\n direction = '';\n } else {\n direction = 'asc';\n }\n\n let fields = [field, 'id'];\n if (direction === '') fields = ['id'];\n\n return deepAssign(subState, 'queryObj.sort', {\n direction,\n fields\n });\n },\n removeSortLastValues(subState) {\n const nextSubState = deepAssign(subState, 'queryObj.sort', {});\n\n nextSubState.queryObj.sort.is_forward = true;\n if (typeof nextSubState.queryObj.sort.last_values !== 'undefined') {\n delete nextSubState.queryObj.sort.last_values;\n }\n\n return nextSubState;\n },\n select(subState, {id}) {\n const index = subState.selected.indexOf(id);\n if (index === -1) {\n subState = Object.assign({}, subState, {\n selected: [\n ...subState.selected,\n id\n ]\n });\n }\n if (subState.queryObj.persistent_selection.indexOf(id) === -1 && subState.queryObj.selection_mode !== 'all') {\n subState.queryObj.persistent_selection.push(id);\n }\n\n const indexNotSelected = subState.queryObj.not_selected.indexOf(id);\n if (indexNotSelected !== -1) {\n subState.queryObj.not_selected = [\n ...subState.queryObj.not_selected.slice(0, indexNotSelected),\n ...subState.queryObj.not_selected.slice(indexNotSelected + 1)\n ];\n }\n\n return subState;\n },\n selectAll(subState, {selectionMode}) {\n let newSubState = Object.assign({}, subState);\n newSubState.queryObj.selection_mode = selectionMode;\n for (let i = 0; i < subState.results.length; i++) {\n newSubState = sdo.mutations.select(newSubState, {id: subState.results[i].id});\n }\n if (selectionMode === 'all') {\n newSubState.queryObj.persistent_selection = [];\n }\n return newSubState;\n },\n selectPage(subState, {selectionMode}) {\n return this.selectAll(subState, {selectionMode});\n },\n deselect(subState, {id}) {\n const index = subState.selected.indexOf(id);\n if (index > -1) {\n subState = Object.assign({}, subState, {\n selected: [\n ...subState.selected.slice(0, index),\n ...subState.selected.slice(index + 1)\n ]\n });\n }\n\n const persistentSelectionIndex = subState.queryObj.persistent_selection.indexOf(id);\n if (persistentSelectionIndex > -1) {\n subState.queryObj.persistent_selection = [\n ...subState.queryObj.persistent_selection.slice(0, persistentSelectionIndex),\n ...subState.queryObj.persistent_selection.slice(persistentSelectionIndex + 1)\n ];\n }\n\n if (subState.queryObj.selection_mode === 'all' && subState.queryObj.not_selected.indexOf(id) === -1) {\n subState.queryObj.not_selected.push(id);\n }\n\n return subState;\n },\n deselectAll(subState) {\n let newSubState = Object.assign({}, subState);\n newSubState.queryObj.selection_mode = null;\n newSubState.queryObj.persistent_selection = [];\n newSubState.queryObj.not_selected = [];\n newSubState.selected = [];\n return Object.assign({}, subState, newSubState);\n },\n persistentSelection(subState) {\n let newSubState = Object.assign({}, subState);\n for (let i = 0; i < subState.queryObj.persistent_selection.length; i++) {\n newSubState = sdo.mutations.select(newSubState, {id: subState.queryObj.persistent_selection[i]});\n }\n return newSubState;\n }\n },\n decorators: [\n (nextState) => { // prev search query\n const state = storeInstance.getState();\n const nextSubState = nextState[sdoNs.GROUP_SEARCH];\n const subState = state[sdoNs.GROUP_SEARCH];\n\n if (typeof nextSubState.$prevQueryObj === 'undefined' || nextSubState.queryObj !== subState.queryObj) {\n const $prevQueryObj = subState.queryObj;\n\n nextState = deepAssign(nextState, `${sdoNs.GROUP_SEARCH}`, {$prevQueryObj});\n }\n\n return nextState;\n },\n (nextState) => { // prev pointer items\n const state = storeInstance.getState();\n const nextSubState = nextState[sdoNs.GROUP_SEARCH];\n const subState = state[sdoNs.GROUP_SEARCH];\n\n if (typeof nextSubState.$prev === 'undefined' || nextSubState.results !== subState.results) {\n let $prev = '';\n if (nextSubState.results.length > 0) {\n $prev = nextSubState.results[0]; /** @todo assign needed props */\n }\n\n nextState = deepAssign(nextState, `${sdoNs.GROUP_SEARCH}`, {$prev});\n }\n\n return nextState;\n },\n (nextState) => { // next pointer items\n const state = storeInstance.getState();\n const nextSubState = nextState[sdoNs.GROUP_SEARCH];\n const subState = state[sdoNs.GROUP_SEARCH];\n\n if (typeof nextSubState.$next === 'undefined' ||\n nextSubState.results !== subState.results) {\n let $next = '';\n if (nextSubState.results.length > 0) {\n $next = nextSubState.results[nextSubState.results.length - 1]; /** @todo assign needed props */\n }\n\n nextState = deepAssign(nextState, `${sdoNs.GROUP_SEARCH}`, {$next});\n }\n\n return nextState;\n },\n (nextState) => { // set results[].{$selected}\n const state = storeInstance.getState();\n const nextSubState = nextState[sdoNs.GROUP_SEARCH];\n const subState = state[sdoNs.GROUP_SEARCH];\n if (nextSubState.results !== subState.results ||\n nextSubState.selected !== subState.selected ||\n nextSubState.queryObj.selection_mode !== subState.queryObj.selection_mode) {\n const results = [];\n for (let i = 0; i < nextSubState.results.length; i++) {\n const group = nextSubState.results[i];\n if (nextSubState.selected.indexOf(group.id) !== -1 || nextSubState.queryObj.selection_mode === 'all') {\n let isSelected = true;\n if (nextSubState.queryObj.not_selected.indexOf(group.id) > -1) {\n isSelected = false;\n }\n results.push(Object.assign({}, group, {\n $selected: isSelected\n }));\n } else if (group.$selected === true) {\n results.push(Object.assign({}, group, {\n $selected: false\n }));\n } else {\n results.push(group);\n }\n }\n\n nextState = deepAssign(nextState, `${sdoNs.GROUP_SEARCH}`, {results});\n }\n\n return nextState;\n },\n (nextState) => { // $search to make api call\n const state = storeInstance.getState();\n\n const nextSubState = nextState[sdoNs.GROUP_SEARCH];\n const subState = state[sdoNs.GROUP_SEARCH];\n\n if (typeof nextSubState.$search === 'undefined' ||\n nextSubState.queryObj.search !== subState.queryObj.search) {\n let $search = void 0;\n\n if (nextSubState.queryObj.search.query && nextSubState.queryObj.search.query !== '') {\n $search = Object.assign({}, nextSubState.queryObj.search);\n }\n\n nextState = deepAssign(nextState, sdoNs.GROUP_SEARCH, {\n $search\n });\n }\n\n return nextState;\n },\n (nextState) => { // $selectedGroups\n const state = storeInstance.getState();\n\n const nextSubState = nextState[sdoNs.GROUP_SEARCH];\n const subState = state[sdoNs.GROUP_SEARCH];\n if (\n typeof nextSubState.$selectedGroups === 'undefined' ||\n nextSubState.queryObj.filters?.parent_group_id !== subState.queryObj.filters?.parent_group_id ||\n nextSubState.queryObj.filters?.classes_path !== subState.queryObj.filters?.classes_path\n\n ) {\n let $selectedGroups = [];\n if (\n Array.isArray(nextSubState.queryObj.filters?.parent_group_id) &&\n nextSubState.queryObj.filters?.parent_group_id.length\n ) {\n $selectedGroups = nextSubState.queryObj.filters?.parent_group_id.slice(nextState[sdoNs.SESSION].group_info.level);\n } else if (Array.isArray(nextSubState.queryObj.filters?.classes_path) &&\n nextSubState.queryObj.filters?.classes_path.length) {\n $selectedGroups = nextSubState.queryObj.filters?.classes_path;\n }\n nextState = deepAssign(nextState, sdoNs.GROUP_SEARCH, {\n $selectedGroups\n });\n }\n return nextState;\n },\n (nextState) => { // $filters to make api call\n const state = storeInstance.getState();\n\n const nextSubState = nextState[sdoNs.GROUP_SEARCH];\n const subState = state[sdoNs.GROUP_SEARCH];\n\n if (typeof nextSubState.$filters === 'undefined' ||\n nextSubState.queryObj.filters !== subState.queryObj.filters) {\n let $filters = Object.assign({}, nextSubState.queryObj.filters);\n if (Array.isArray($filters.parent_group_id) && $filters.parent_group_id.length > 0) {\n $filters = Object.assign({}, $filters, {\n parent_group_id: $filters.parent_group_id[$filters.parent_group_id.length - 1]\n });\n } else if (Array.isArray($filters.group_path) && $filters.group_path.length > 0) {\n $filters = Object.assign({}, $filters, {\n group_path: $filters.group_path[$filters.group_path.length - 1] || ''\n });\n } else if (Array.isArray($filters.classes_path)) {\n const path = nextSubState.queryObj.filters.classes_path;\n let newPath = nextState[sdoNs.SESSION].group_info.path + nextState[sdoNs.SESSION].group_info.id + '.';\n if (!newPath.includes(path.join('.'))) {\n newPath = nextState[sdoNs.SESSION].group_info.path + nextState[sdoNs.SESSION].group_info.id + '.' + path.join('.') + '.';\n }\n $filters = Object.assign({}, $filters, {\n path: newPath\n });\n delete $filters.classes_path;\n } else {\n delete $filters.parent_group_id;\n delete $filters.group_path;\n }\n if (typeof $filters.group_path === 'object') {\n delete $filters.group_path;\n }\n nextState = deepAssign(nextState, sdoNs.GROUP_SEARCH, {\n $filters\n });\n }\n\n return nextState;\n },\n (nextState) => { // $filterClassesPath\n const state = storeInstance.getState();\n\n const nextSubState = nextState[sdoNs.GROUP_SEARCH];\n const subState = state[sdoNs.GROUP_SEARCH];\n\n if (typeof nextSubState.$filterClassesPath === 'undefined' ||\n nextSubState.pendingFilters.classes_path !== subState.pendingFilters.classes_path) {\n let $filterClassesPath = [];\n if (Array.isArray(nextSubState.pendingFilters.classes_path) &&\n nextSubState.pendingFilters.classes_path.length > 1) {\n $filterClassesPath = nextSubState.pendingFilters.classes_path\n .slice(0, nextSubState.pendingFilters.classes_path.length - 1);\n }\n nextState = deepAssign(nextState, sdoNs.GROUP_SEARCH, {$filterClassesPath});\n }\n return nextState;\n },\n (nextState) => { // $sort to make api call\n const state = storeInstance.getState();\n\n const nextSubState = nextState[sdoNs.GROUP_SEARCH];\n const subState = state[sdoNs.GROUP_SEARCH];\n\n if (typeof nextSubState.$sort === 'undefined' ||\n nextSubState.queryObj.sort !== subState.queryObj.sort) {\n const $sort = Object.assign({}, nextSubState.queryObj.sort);\n if ($sort.direction === '') {\n $sort.direction = 'asc';\n }\n\n nextState = deepAssign(nextState, sdoNs.GROUP_SEARCH, {\n $sort\n });\n }\n\n return nextState;\n },\n (nextState) => { // $filtered results\n const state = storeInstance.getState();\n\n const nextSubState = nextState[sdoNs.GROUP_SEARCH];\n const subState = state[sdoNs.GROUP_SEARCH];\n\n if (typeof nextSubState.$filtered === 'undefined' ||\n nextSubState.queryObj.filters !== subState.queryObj.filters||\n nextState[sdoNs.SESSION].group_info.path !== state[sdoNs.SESSION].group_info.path) {\n let $filtered = false;\n if (typeof nextSubState.$filters.level !== 'undefined') {\n if (Object.keys(nextSubState.$filters).length > 1) {\n $filtered = true;\n }\n } else if (typeof nextSubState.$filters.path !== 'undefined') {\n if (nextSubState.$filters.path !== nextState[sdoNs.SESSION].group_info.path) {\n $filtered = true;\n }\n }\n\n nextState = deepAssign(nextState, sdoNs.GROUP_SEARCH, {\n $filtered\n });\n }\n\n return nextState;\n },\n (nextState) => { // $pageNumber\n const state = storeInstance.getState();\n const nextSubState = nextState[sdoNs.GROUP_SEARCH];\n const subState = state[sdoNs.GROUP_SEARCH];\n\n if (\n typeof nextSubState.$pageNumber === 'undefined'\n ||\n nextSubState.hasMore !== subState.hasMore\n ||\n nextSubState.$sort !== subState.$sort\n ) {\n const hasOffset = Boolean(nextSubState.$sort.last_values);\n let $pageNumber = 1;\n let $numPages = 3;\n\n if (nextSubState.$sort.is_forward) {\n if (hasOffset) {\n $pageNumber = 2;\n }\n\n if (!nextSubState.hasMore) {\n $numPages = $pageNumber;\n }\n } else {\n $pageNumber = nextSubState.hasMore ? 2 : 1;\n }\n\n nextState = deepAssign(nextState, `${sdoNs.GROUP_SEARCH}`, {$pageNumber, $numPages});\n }\n\n return nextState;\n },\n (nextState) => { // $selectedResults\n const state = storeInstance.getState();\n const nextSubState = nextState[sdoNs.GROUP_SEARCH];\n const subState = state[sdoNs.GROUP_SEARCH];\n\n if (typeof nextSubState.$selectedResults === 'undefined' ||\n nextSubState.selected !== subState.selected ||\n nextSubState.results !== subState.results) {\n const $selectedResults = nextSubState.results.filter((res) => nextSubState.selected.indexOf(res.id) > -1);\n nextState = deepAssign(nextState, sdoNs.GROUP_SEARCH, {$selectedResults});\n }\n\n return nextState;\n }\n ]\n};\n\nstoreInstance.addState(sdo);\n","import {until} from 'lit-html/directives/until';\nimport {generalLabels} from '@modules/i18n-labels';\nimport {LoadingEllipses} from '@epg/epg-components';\n\nconst getQuantity = (ctx, html) => {\n switch (ctx['selection-mode']) {\n case 'all':\n return html`(${ctx['total-results-count'] - ctx['not-selected-count']})`;\n case 'page':\n return html`(${ctx['persistent-selection-count'] - ctx['not-selected-count']})`;\n default:\n return (ctx['persistent-selection-count']) ?\n html`(${ctx['persistent-selection-count']})` :\n ``;\n }\n};\n\nexport default (ctx, html) => html`\n \n`;\n","import styles from './template.css';\nimport template from './template';\nimport {AoflElement, customElement, property} from '@aofl/element';\nimport {i18nMixin} from '@aofl/i18n-mixin';\nimport {storeInstance} from '@aofl/store/dist/legacy';\n\n/**\n * @summary BulkActionsButton\n * @extends {AoflElement}\n */\n@customElement('bulk-actions-button')\nclass BulkActionsButton extends AoflElement {\n /**\n * Creates an instance of BulkActionsButton.\n */\n constructor() {\n super();\n }\n\n @property({type: Number, attribute: false})\n ['total-results-count'] = 0;\n\n @property({type: String, attribute: false})\n ['selection-mode'] = '';\n\n @property({type: Number, attribute: false})\n ['not-selected-count'] = 0;\n\n @property({type: Number, attribute: false})\n ['persistent-selection-count'] = 0;\n\n @property({type: String, attribute: true})\n ['data-bi-id'] = '';\n\n @property({type: Boolean, attribute: false})\n loading = false;\n\n @property({type: Boolean, attribute: false})\n disabled = false;\n\n /**\n * @readonly\n */\n static is = 'bulk-actions-button';\n /**\n * @return {Object}\n */\n render() {\n return super.render(template, [styles]);\n }\n}\n\nexport default BulkActionsButton;\n","module.exports = __webpack_public_path__ + \"605a9fe0adbca914c683ade5d81a57d9.webp\";","exports = module.exports = require(\"../../../node_modules/css-loader/dist/runtime/api.js\")(false);\n// Imports\nvar getUrl = require(\"../../../node_modules/css-loader/dist/runtime/getUrl.js\");\nvar ___CSS_LOADER_URL___0___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-light.woff2\"));\nvar ___CSS_LOADER_URL___1___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-lightit.woff2\"));\nvar ___CSS_LOADER_URL___2___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-reg.woff2\"));\nvar ___CSS_LOADER_URL___3___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-regit.woff2\"));\nvar ___CSS_LOADER_URL___4___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-sbold.woff2\"));\nvar ___CSS_LOADER_URL___5___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-sboldit.woff2\"));\nvar ___CSS_LOADER_URL___6___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-bold.woff2\"));\nvar ___CSS_LOADER_URL___7___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-boldit.woff2\"));\nvar ___CSS_LOADER_URL___8___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-Light.woff2\"));\nvar ___CSS_LOADER_URL___9___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-LightIt.woff2\"));\nvar ___CSS_LOADER_URL___10___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-Regular.woff2\"));\nvar ___CSS_LOADER_URL___11___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-RegularIt.woff2\"));\nvar ___CSS_LOADER_URL___12___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-Semibold.woff2\"));\nvar ___CSS_LOADER_URL___13___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-SemiboldIt.woff2\"));\nvar ___CSS_LOADER_URL___14___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-Bold.woff2\"));\nvar ___CSS_LOADER_URL___15___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-BoldIt.woff2\"));\nvar ___CSS_LOADER_URL___16___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-ExtraBold.woff2\"));\nvar ___CSS_LOADER_URL___17___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-ExtraBoldIt.woff2\"));\nvar ___CSS_LOADER_URL___18___ = getUrl(require(\"../../template/main/fonts/aofl-icons/icomoon.woff2?c6f21u\"));\n// Module\nexports.push([module.id, \"/*! @aofl-component */:root{--blue:#0d6efd;--indigo:#6610f2;--purple:#8b42ca;--pink:#e83e8c;--red:#e50b0a;--orange:#e17a05;--yellow:#ffc107;--green:#3c8104;--teal:#20c997;--cyan:#53c9dc;--white:#fff;--gray:#6b6b6b;--gray-dark:#343a40;--light-green:#b1dd53;--table-border-color:#d8d8d8;--gray-100:#f2f2f2;--gray-200:#d9d9d9;--gray-300:#d8d8d8;--gray-400:#ced4da;--gray-500:#adb5bd;--gray-600:#6c757d;--gray-700:#4a4a4a;--gray-800:#343a40;--gray-900:#212529;--gray-accessibility:#6b6b6b;--primary:#0d6efd;--secondary:#adb5bd;--success:#3c8104;--info:#cfe2ff;--warning:#e17a05;--danger:#d20a09;--light:#f8f9fa;--dark:#000;--breakpoint-xxs:0;--breakpoint-xs:375px;--breakpoint-sm:576px;--breakpoint-md:768px;--breakpoint-lg:992px;--breakpoint-xl:1200px;--font-family-sans-serif:aofl-sans,Arial,Helvetica,sans-serif;--font-family-monospace:SFMono-Regular,Menlo,Monaco,Consolas,\\\"Liberation Mono\\\",\\\"Courier New\\\",monospace;--z-index-dropdown:1000;--z-index-sticky:1020;--z-index-fixed:1030;--z-index-modal-backdrop:1040;--z-index-modal:1050;--z-index-popover:1060;--z-index-tooltip:1070;--header-height:6rem;--content-height:calc(100vh - 6rem);--sidepanel-width:20rem;--purple-color:#641da3;--purple-600:#956abc;--purple-400:#c7afdd;--purple-200:#e0d2ed;--struggling:#f6993b;--below-target:#ffcf00;--in_progress:#1280f5;--prior_knowledge:#edf887;--mastery_achieved:#69d112;--inactive:#d8d8d8}route-view{max-width:1200px}@font-face{font-family:aofl-sans;font-style:normal;font-weight:300;src:url(\" + ___CSS_LOADER_URL___0___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:italic;font-weight:300;src:url(\" + ___CSS_LOADER_URL___1___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:normal;font-weight:400;src:url(\" + ___CSS_LOADER_URL___2___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:italic;font-weight:400;src:url(\" + ___CSS_LOADER_URL___3___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:normal;font-weight:600;src:url(\" + ___CSS_LOADER_URL___4___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:italic;font-weight:600;src:url(\" + ___CSS_LOADER_URL___5___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:normal;font-weight:700;src:url(\" + ___CSS_LOADER_URL___6___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:italic;font-weight:700;src:url(\" + ___CSS_LOADER_URL___7___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:normal;font-weight:300;src:url(\" + ___CSS_LOADER_URL___8___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:italic;font-weight:300;src:url(\" + ___CSS_LOADER_URL___9___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:normal;font-weight:400;src:url(\" + ___CSS_LOADER_URL___10___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:italic;font-weight:400;src:url(\" + ___CSS_LOADER_URL___11___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:normal;font-weight:600;src:url(\" + ___CSS_LOADER_URL___12___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:italic;font-weight:600;src:url(\" + ___CSS_LOADER_URL___13___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:normal;font-weight:700;src:url(\" + ___CSS_LOADER_URL___14___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:italic;font-weight:700;src:url(\" + ___CSS_LOADER_URL___15___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:normal;font-weight:800;src:url(\" + ___CSS_LOADER_URL___16___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:italic;font-weight:800;src:url(\" + ___CSS_LOADER_URL___17___ + \") format(\\\"woff2\\\")}@font-face{font-family:icomoon;src:url(\" + ___CSS_LOADER_URL___18___ + \") format(\\\"woff2\\\");font-weight:400;font-style:normal;font-display:block}[class*=\\\" ai-\\\"],[class^=ai-]{font-family:icomoon!important;speak:never;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.ai-search:before{content:\\\"\\\\e929\\\"}*,:after,:before{box-sizing:border-box}html{font-family:sans-serif;line-height:1.15;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:rgba(0,0,0,0)}figcaption,main,nav,section{display:block}[tabindex=\\\"-1\\\"]:focus{outline:0!important}strong{font-weight:bolder}caption{padding-top:.75rem;padding-bottom:.75rem;color:#6c757d;text-align:left;caption-side:bottom}button{border-radius:0}button:focus{outline:1px dotted;outline:5px auto -webkit-focus-ring-color}button,input{margin:0;font-family:inherit;font-size:inherit;line-height:inherit;overflow:visible}button{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]:not(:disabled),[type=reset]:not(:disabled),[type=submit]:not(:disabled),button:not(:disabled){cursor:pointer}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{padding:0;border-style:none}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}input[type=date],input[type=datetime-local],input[type=month],input[type=time]{-webkit-appearance:listbox}legend{display:block;width:100%;max-width:100%;padding:0;margin-bottom:.5rem;font-size:1.5rem;line-height:inherit;color:inherit;white-space:normal}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:none}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}summary{display:list-item;cursor:pointer}template{display:none}[hidden]{display:none!important}*{-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important}html{font-size:62.5%;height:100%}link-to{color:#0d6efd;text-decoration:none;background-color:transparent}link-to:hover{color:rgb(0,86.1,178.5);text-decoration:none;cursor:pointer}route-view{display:none;flex:1}site-header{background-color:#fff;display:none;position:-webkit-sticky;position:sticky;top:0;height:var(--header-height)}#main{display:none;flex:1 auto;max-width:100%;overflow:hidden;flex-direction:column;overflow-y:scroll}.loaded #main,.loaded site-header,body.loaded,route-view.loaded{display:flex}route-view.left-panel-active{padding-left:var(--sidepanel-width)}.form-control{display:block;width:100%;height:calc(1.5em + .75rem + 2px);padding:.375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:#495057;background-color:#fff;background-clip:padding-box;border:1px solid #ced4da;border-radius:.25rem;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.form-control{transition:none}}.form-control::-ms-expand{background-color:transparent;border:0}.form-control:focus{color:#495057;background-color:#fff;border-color:rgb(127.5,189,255);outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.form-control::-webkit-input-placeholder{color:#6c757d;opacity:1}.form-control::-moz-placeholder{color:#6c757d;opacity:1}.form-control:-ms-input-placeholder{color:#6c757d;opacity:1}.form-control::-ms-input-placeholder{color:#6c757d;opacity:1}.form-control::placeholder{color:#6c757d;opacity:1}.form-control:disabled,.form-control[readonly]{background-color:#e9ecef;opacity:1}.form-control-sm{height:calc(1.5em + .5rem + 2px);padding:.25rem .5rem;font-size:.875rem;line-height:1.5;border-radius:.2rem}.form-group{margin-bottom:1.6rem}.form-control{font-size:1.5rem;height:4.8rem;padding:1.2rem 1rem}.form-control[multiple]{padding:0}.form-control[multiple] option{padding:.8rem 1.2rem}.form-control-sm{height:3.2rem;padding:.4rem .8rem;border-radius:.32rem}input[type=checkbox],input[type=radio]{cursor:pointer}form .form-control::-webkit-input-placeholder{color:#6b6b6b;border-color:#6b6b6b}form .form-control::-moz-placeholder,form .form-control::-ms-input-placeholder,form .form-control::-webkit-input-placeholder,form .form-control::placeholder{color:#6b6b6b;border-color:#6b6b6b}.form-control{border:1px solid #6b6b6b}.form-control:focus{border-color:#0d6efd}.btn{display:inline-block;font-weight:400;color:#000;text-align:center;vertical-align:middle;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;background-color:transparent;border:1px solid transparent;padding:.375rem .75rem;font-size:1.6rem;line-height:1.5;border-radius:.25rem;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.btn{transition:none}}.btn:hover{color:#000;text-decoration:none}.btn.focus,.btn:focus{outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.btn:disabled{opacity:.65}.btn-link{font-weight:400;color:#0d6efd;text-decoration:none}.btn-link:hover{color:rgb(0,86.1,178.5);text-decoration:none}.btn-link.focus,.btn-link:focus{text-decoration:none;box-shadow:none}.btn-link:disabled{color:#6c757d;pointer-events:none}.btn:disabled{cursor:not-allowed}link-to.btn:disabled,link-to.btn[disabled]{pointer-events:none}button,button:active{outline:none}.btn:focus-visible,[tabindex=\\\"0\\\"]:focus-visible,aofl-list-option:focus-visible,button[type=button]:focus-visible,collapse-button:focus-visible{outline:1px solid #e50b0a;border:1px solid #e50b0a}.btn-link:focus-visible{border:2px solid #e50b0a}.btn:disabled{background:#cfe2ff;border-color:#cfe2ff;color:#0d6efd;opacity:1}ems-dropdown>button.btn{display:flex;align-items:center;border:1px solid var(--gray)}.search-form-group{position:relative}.search-form-group .search-btns{position:absolute;top:0;right:0}.search-btns .btn{font-size:2rem;height:4.8rem;line-height:4.425rem}@keyframes progress-bar-stripes{0%{background-position:1.6rem 0}to{background-position:0 0}}.modal-container{background-color:rgba(0,0,0,.2);position:fixed;top:0;bottom:0;right:0;left:0;z-index:var(--z-index-modal)}.modal-container :first-child{overflow:auto}.modal{position:relative;display:block;height:100vh}.modal-dialog-centered.modal-dialog-scrollable{height:auto;max-height:calc(100% - 2.8rem);min-height:auto}.modal-body,.modal-content,.modal-footer,.modal-header{border:none}.modal-header{font-size:2rem;padding:2.4rem}.modal-body{padding:0 2.4rem 4.8rem}.colored-header{color:#fff}.modal-body p{text-align:left}.colored-header-primary{background-color:#0d6efd}.colored-header-secondary{background-color:#adb5bd}.colored-header-success{background-color:#3c8104}.colored-header-info{background-color:#cfe2ff}.colored-header-warning{background-color:#e17a05}.colored-header-danger{background-color:#d20a09}.colored-header-light{background-color:#f8f9fa}.colored-header-dark{background-color:#000}@keyframes spinner-border{to{transform:rotate(1turn)}}@keyframes spinner-grow{0%{transform:scale(0)}50%{opacity:1}}.d-none{display:none!important}.d-flex{display:flex!important}.flex-row{flex-direction:row!important}.flex-column{flex-direction:column!important}.align-items-center{align-items:center!important}.mb-0{margin-bottom:0!important}.mb-3{margin-bottom:1rem!important}[hidden]{visibility:hidden!important;height:0!important;width:0!important;min-height:unset!important}@media print{*,:after,:before{text-shadow:none!important;box-shadow:none!important}@page{size:a3}}@media print{main::-webkit-scrollbar{display:none}main{-ms-overflow-style:none;scrollbar-width:none}}@page{size:A4;margin:20mm 16mm 20mm 16mm}:host{display:block}form{flex:7}.btn.btn-link{flex:1}.search-btns .btn{font-size:inherit;line-height:inherit;height:36px}\", \"\"]);\n","exports = module.exports = require(\"../../../node_modules/css-loader/dist/runtime/api.js\")(false);\n// Imports\nvar getUrl = require(\"../../../node_modules/css-loader/dist/runtime/getUrl.js\");\nvar ___CSS_LOADER_URL___0___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-light.woff2\"));\nvar ___CSS_LOADER_URL___1___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-lightit.woff2\"));\nvar ___CSS_LOADER_URL___2___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-reg.woff2\"));\nvar ___CSS_LOADER_URL___3___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-regit.woff2\"));\nvar ___CSS_LOADER_URL___4___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-sbold.woff2\"));\nvar ___CSS_LOADER_URL___5___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-sboldit.woff2\"));\nvar ___CSS_LOADER_URL___6___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-bold.woff2\"));\nvar ___CSS_LOADER_URL___7___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-boldit.woff2\"));\nvar ___CSS_LOADER_URL___8___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-Light.woff2\"));\nvar ___CSS_LOADER_URL___9___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-LightIt.woff2\"));\nvar ___CSS_LOADER_URL___10___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-Regular.woff2\"));\nvar ___CSS_LOADER_URL___11___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-RegularIt.woff2\"));\nvar ___CSS_LOADER_URL___12___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-Semibold.woff2\"));\nvar ___CSS_LOADER_URL___13___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-SemiboldIt.woff2\"));\nvar ___CSS_LOADER_URL___14___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-Bold.woff2\"));\nvar ___CSS_LOADER_URL___15___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-BoldIt.woff2\"));\nvar ___CSS_LOADER_URL___16___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-ExtraBold.woff2\"));\nvar ___CSS_LOADER_URL___17___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-ExtraBoldIt.woff2\"));\nvar ___CSS_LOADER_URL___18___ = getUrl(require(\"../../template/main/fonts/aofl-icons/icomoon.woff2?c6f21u\"));\n// Module\nexports.push([module.id, \"/*! @aofl-component */:root{--blue:#0d6efd;--indigo:#6610f2;--purple:#8b42ca;--pink:#e83e8c;--red:#e50b0a;--orange:#e17a05;--yellow:#ffc107;--green:#3c8104;--teal:#20c997;--cyan:#53c9dc;--white:#fff;--gray:#6b6b6b;--gray-dark:#343a40;--light-green:#b1dd53;--table-border-color:#d8d8d8;--gray-100:#f2f2f2;--gray-200:#d9d9d9;--gray-300:#d8d8d8;--gray-400:#ced4da;--gray-500:#adb5bd;--gray-600:#6c757d;--gray-700:#4a4a4a;--gray-800:#343a40;--gray-900:#212529;--gray-accessibility:#6b6b6b;--primary:#0d6efd;--secondary:#adb5bd;--success:#3c8104;--info:#cfe2ff;--warning:#e17a05;--danger:#d20a09;--light:#f8f9fa;--dark:#000;--breakpoint-xxs:0;--breakpoint-xs:375px;--breakpoint-sm:576px;--breakpoint-md:768px;--breakpoint-lg:992px;--breakpoint-xl:1200px;--font-family-sans-serif:aofl-sans,Arial,Helvetica,sans-serif;--font-family-monospace:SFMono-Regular,Menlo,Monaco,Consolas,\\\"Liberation Mono\\\",\\\"Courier New\\\",monospace;--z-index-dropdown:1000;--z-index-sticky:1020;--z-index-fixed:1030;--z-index-modal-backdrop:1040;--z-index-modal:1050;--z-index-popover:1060;--z-index-tooltip:1070;--header-height:6rem;--content-height:calc(100vh - 6rem);--sidepanel-width:20rem;--purple-color:#641da3;--purple-600:#956abc;--purple-400:#c7afdd;--purple-200:#e0d2ed;--struggling:#f6993b;--below-target:#ffcf00;--in_progress:#1280f5;--prior_knowledge:#edf887;--mastery_achieved:#69d112;--inactive:#d8d8d8}route-view{max-width:1200px}@font-face{font-family:aofl-sans;font-style:normal;font-weight:300;src:url(\" + ___CSS_LOADER_URL___0___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:italic;font-weight:300;src:url(\" + ___CSS_LOADER_URL___1___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:normal;font-weight:400;src:url(\" + ___CSS_LOADER_URL___2___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:italic;font-weight:400;src:url(\" + ___CSS_LOADER_URL___3___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:normal;font-weight:600;src:url(\" + ___CSS_LOADER_URL___4___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:italic;font-weight:600;src:url(\" + ___CSS_LOADER_URL___5___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:normal;font-weight:700;src:url(\" + ___CSS_LOADER_URL___6___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:italic;font-weight:700;src:url(\" + ___CSS_LOADER_URL___7___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:normal;font-weight:300;src:url(\" + ___CSS_LOADER_URL___8___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:italic;font-weight:300;src:url(\" + ___CSS_LOADER_URL___9___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:normal;font-weight:400;src:url(\" + ___CSS_LOADER_URL___10___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:italic;font-weight:400;src:url(\" + ___CSS_LOADER_URL___11___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:normal;font-weight:600;src:url(\" + ___CSS_LOADER_URL___12___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:italic;font-weight:600;src:url(\" + ___CSS_LOADER_URL___13___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:normal;font-weight:700;src:url(\" + ___CSS_LOADER_URL___14___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:italic;font-weight:700;src:url(\" + ___CSS_LOADER_URL___15___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:normal;font-weight:800;src:url(\" + ___CSS_LOADER_URL___16___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:italic;font-weight:800;src:url(\" + ___CSS_LOADER_URL___17___ + \") format(\\\"woff2\\\")}@font-face{font-family:icomoon;src:url(\" + ___CSS_LOADER_URL___18___ + \") format(\\\"woff2\\\");font-weight:400;font-style:normal;font-display:block}[class*=\\\" ai-\\\"],[class^=ai-]{font-family:icomoon!important;speak:never;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*,:after,:before{box-sizing:border-box}html{font-family:sans-serif;line-height:1.15;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:rgba(0,0,0,0)}figcaption,main,nav,section{display:block}[tabindex=\\\"-1\\\"]:focus{outline:0!important}strong{font-weight:bolder}caption{padding-top:.75rem;padding-bottom:.75rem;color:#6c757d;text-align:left;caption-side:bottom}button{border-radius:0}button:focus{outline:1px dotted;outline:5px auto -webkit-focus-ring-color}button,input{margin:0;font-family:inherit;font-size:inherit;line-height:inherit;overflow:visible}button{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]:not(:disabled),[type=reset]:not(:disabled),[type=submit]:not(:disabled),button:not(:disabled){cursor:pointer}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{padding:0;border-style:none}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}input[type=date],input[type=datetime-local],input[type=month],input[type=time]{-webkit-appearance:listbox}legend{display:block;width:100%;max-width:100%;padding:0;margin-bottom:.5rem;font-size:1.5rem;line-height:inherit;color:inherit;white-space:normal}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:none}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}summary{display:list-item;cursor:pointer}template{display:none}[hidden]{display:none!important}*{-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important}html{font-size:62.5%;height:100%}link-to{color:#0d6efd;text-decoration:none;background-color:transparent}link-to:hover{color:rgb(0,86.1,178.5);text-decoration:none;cursor:pointer}route-view{display:none;flex:1}site-header{background-color:#fff;display:none;position:-webkit-sticky;position:sticky;top:0;height:var(--header-height)}#main{display:none;flex:1 auto;max-width:100%;overflow:hidden;flex-direction:column;overflow-y:scroll}.loaded #main,.loaded site-header,body.loaded,route-view.loaded{display:flex}route-view.left-panel-active{padding-left:var(--sidepanel-width)}input[type=checkbox],input[type=radio]{cursor:pointer}button,button:active{outline:none}[tabindex=\\\"0\\\"]:focus-visible,aofl-list-option:focus-visible,button[type=button]:focus-visible,collapse-button:focus-visible{outline:1px solid #e50b0a;border:1px solid #e50b0a}@keyframes progress-bar-stripes{0%{background-position:1.6rem 0}to{background-position:0 0}}.modal-container{background-color:rgba(0,0,0,.2);position:fixed;top:0;bottom:0;right:0;left:0;z-index:var(--z-index-modal)}.modal-container :first-child{overflow:auto}.modal{position:relative;display:block;height:100vh}.modal-dialog-centered.modal-dialog-scrollable{height:auto;max-height:calc(100% - 2.8rem);min-height:auto}.modal-body,.modal-content,.modal-footer,.modal-header{border:none}.modal-header{font-size:2rem;padding:2.4rem}.modal-body{padding:0 2.4rem 4.8rem}.colored-header{color:#fff}.modal-body p{text-align:left}.colored-header-primary{background-color:#0d6efd}.colored-header-secondary{background-color:#adb5bd}.colored-header-success{background-color:#3c8104}.colored-header-info{background-color:#cfe2ff}.colored-header-warning{background-color:#e17a05}.colored-header-danger{background-color:#d20a09}.colored-header-light{background-color:#f8f9fa}.colored-header-dark{background-color:#000}@keyframes spinner-border{to{transform:rotate(1turn)}}@keyframes spinner-grow{0%{transform:scale(0)}50%{opacity:1}}.text-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}[hidden]{visibility:hidden!important;height:0!important;width:0!important;min-height:unset!important}@media print{*,:after,:before{text-shadow:none!important;box-shadow:none!important}@page{size:a3}}@media print{main::-webkit-scrollbar{display:none}main{-ms-overflow-style:none;scrollbar-width:none}}@page{size:A4;margin:20mm 16mm 20mm 16mm}:host{display:flex;width:100%}.more{margin-left:.5em;flex:0 0 auto}\", \"\"]);\n","exports = module.exports = require(\"../../../node_modules/css-loader/dist/runtime/api.js\")(false);\n// Imports\nvar getUrl = require(\"../../../node_modules/css-loader/dist/runtime/getUrl.js\");\nvar ___CSS_LOADER_URL___0___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-light.woff2\"));\nvar ___CSS_LOADER_URL___1___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-lightit.woff2\"));\nvar ___CSS_LOADER_URL___2___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-reg.woff2\"));\nvar ___CSS_LOADER_URL___3___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-regit.woff2\"));\nvar ___CSS_LOADER_URL___4___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-sbold.woff2\"));\nvar ___CSS_LOADER_URL___5___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-sboldit.woff2\"));\nvar ___CSS_LOADER_URL___6___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-bold.woff2\"));\nvar ___CSS_LOADER_URL___7___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-boldit.woff2\"));\nvar ___CSS_LOADER_URL___8___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-Light.woff2\"));\nvar ___CSS_LOADER_URL___9___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-LightIt.woff2\"));\nvar ___CSS_LOADER_URL___10___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-Regular.woff2\"));\nvar ___CSS_LOADER_URL___11___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-RegularIt.woff2\"));\nvar ___CSS_LOADER_URL___12___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-Semibold.woff2\"));\nvar ___CSS_LOADER_URL___13___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-SemiboldIt.woff2\"));\nvar ___CSS_LOADER_URL___14___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-Bold.woff2\"));\nvar ___CSS_LOADER_URL___15___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-BoldIt.woff2\"));\nvar ___CSS_LOADER_URL___16___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-ExtraBold.woff2\"));\nvar ___CSS_LOADER_URL___17___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-ExtraBoldIt.woff2\"));\nvar ___CSS_LOADER_URL___18___ = getUrl(require(\"../../template/main/fonts/aofl-icons/icomoon.woff2?c6f21u\"));\n// Module\nexports.push([module.id, \"/*! @aofl-component */:root{--blue:#0d6efd;--indigo:#6610f2;--purple:#8b42ca;--pink:#e83e8c;--red:#e50b0a;--orange:#e17a05;--yellow:#ffc107;--green:#3c8104;--teal:#20c997;--cyan:#53c9dc;--white:#fff;--gray:#6b6b6b;--gray-dark:#343a40;--light-green:#b1dd53;--table-border-color:#d8d8d8;--gray-100:#f2f2f2;--gray-200:#d9d9d9;--gray-300:#d8d8d8;--gray-400:#ced4da;--gray-500:#adb5bd;--gray-600:#6c757d;--gray-700:#4a4a4a;--gray-800:#343a40;--gray-900:#212529;--gray-accessibility:#6b6b6b;--primary:#0d6efd;--secondary:#adb5bd;--success:#3c8104;--info:#cfe2ff;--warning:#e17a05;--danger:#d20a09;--light:#f8f9fa;--dark:#000;--breakpoint-xxs:0;--breakpoint-xs:375px;--breakpoint-sm:576px;--breakpoint-md:768px;--breakpoint-lg:992px;--breakpoint-xl:1200px;--font-family-sans-serif:aofl-sans,Arial,Helvetica,sans-serif;--font-family-monospace:SFMono-Regular,Menlo,Monaco,Consolas,\\\"Liberation Mono\\\",\\\"Courier New\\\",monospace;--z-index-dropdown:1000;--z-index-sticky:1020;--z-index-fixed:1030;--z-index-modal-backdrop:1040;--z-index-modal:1050;--z-index-popover:1060;--z-index-tooltip:1070;--header-height:6rem;--content-height:calc(100vh - 6rem);--sidepanel-width:20rem;--purple-color:#641da3;--purple-600:#956abc;--purple-400:#c7afdd;--purple-200:#e0d2ed;--struggling:#f6993b;--below-target:#ffcf00;--in_progress:#1280f5;--prior_knowledge:#edf887;--mastery_achieved:#69d112;--inactive:#d8d8d8}.bg-in_progress{background-color:var(--in_progress)}.bg-intervention{background-color:var(--struggling)}.bg-mastery_achieved{background-color:var(--mastery_achieved)}.bg-prior_knowledge{background-color:var(--prior_knowledge)}route-view{max-width:1200px}@font-face{font-family:aofl-sans;font-style:normal;font-weight:300;src:url(\" + ___CSS_LOADER_URL___0___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:italic;font-weight:300;src:url(\" + ___CSS_LOADER_URL___1___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:normal;font-weight:400;src:url(\" + ___CSS_LOADER_URL___2___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:italic;font-weight:400;src:url(\" + ___CSS_LOADER_URL___3___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:normal;font-weight:600;src:url(\" + ___CSS_LOADER_URL___4___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:italic;font-weight:600;src:url(\" + ___CSS_LOADER_URL___5___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:normal;font-weight:700;src:url(\" + ___CSS_LOADER_URL___6___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:italic;font-weight:700;src:url(\" + ___CSS_LOADER_URL___7___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:normal;font-weight:300;src:url(\" + ___CSS_LOADER_URL___8___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:italic;font-weight:300;src:url(\" + ___CSS_LOADER_URL___9___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:normal;font-weight:400;src:url(\" + ___CSS_LOADER_URL___10___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:italic;font-weight:400;src:url(\" + ___CSS_LOADER_URL___11___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:normal;font-weight:600;src:url(\" + ___CSS_LOADER_URL___12___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:italic;font-weight:600;src:url(\" + ___CSS_LOADER_URL___13___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:normal;font-weight:700;src:url(\" + ___CSS_LOADER_URL___14___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:italic;font-weight:700;src:url(\" + ___CSS_LOADER_URL___15___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:normal;font-weight:800;src:url(\" + ___CSS_LOADER_URL___16___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:italic;font-weight:800;src:url(\" + ___CSS_LOADER_URL___17___ + \") format(\\\"woff2\\\")}@font-face{font-family:icomoon;src:url(\" + ___CSS_LOADER_URL___18___ + \") format(\\\"woff2\\\");font-weight:400;font-style:normal;font-display:block}[class*=\\\" ai-\\\"],[class^=ai-]{font-family:icomoon!important;speak:never;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.ai-chevron-down:before{content:\\\"\\\\e90d\\\"}.ai-search:before{content:\\\"\\\\e929\\\"}*,:after,:before{box-sizing:border-box}html{font-family:sans-serif;line-height:1.15;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:rgba(0,0,0,0)}figcaption,main,nav,section{display:block}[tabindex=\\\"-1\\\"]:focus{outline:0!important}strong{font-weight:bolder}a{color:#0d6efd;background-color:transparent}a,a:hover{text-decoration:none}a:hover{color:rgb(0,86.1,178.5)}a:not([href]):not([tabindex]),a:not([href]):not([tabindex]):focus,a:not([href]):not([tabindex]):hover{color:inherit;text-decoration:none}a:not([href]):not([tabindex]):focus{outline:0}caption{padding-top:.75rem;padding-bottom:.75rem;color:#6c757d;text-align:left;caption-side:bottom}label{display:inline-block;margin-bottom:.8rem}button{border-radius:0}button:focus{outline:1px dotted;outline:5px auto -webkit-focus-ring-color}button,input{margin:0;font-family:inherit;font-size:inherit;line-height:inherit;overflow:visible}button{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]:not(:disabled),[type=reset]:not(:disabled),[type=submit]:not(:disabled),button:not(:disabled){cursor:pointer}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{padding:0;border-style:none}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}input[type=date],input[type=datetime-local],input[type=month],input[type=time]{-webkit-appearance:listbox}legend{display:block;width:100%;max-width:100%;padding:0;margin-bottom:.5rem;font-size:1.5rem;line-height:inherit;color:inherit;white-space:normal}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:none}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}summary{display:list-item;cursor:pointer}template{display:none}[hidden]{display:none!important}*{-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important}html{font-size:62.5%;height:100%}link-to{color:#0d6efd;text-decoration:none;background-color:transparent}link-to:hover{color:rgb(0,86.1,178.5);text-decoration:none;cursor:pointer}route-view{display:none;flex:1}site-header{background-color:#fff;display:none;position:-webkit-sticky;position:sticky;top:0;height:var(--header-height)}#main{display:none;flex:1 auto;max-width:100%;overflow:hidden;flex-direction:column;overflow-y:scroll}.loaded #main,.loaded site-header,body.loaded,route-view.loaded{display:flex}route-view.left-panel-active{padding-left:var(--sidepanel-width)}.form-control{display:block;width:100%;height:calc(1.5em + .75rem + 2px);padding:.375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:#495057;background-color:#fff;background-clip:padding-box;border:1px solid #ced4da;border-radius:.25rem;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.form-control{transition:none}}.form-control::-ms-expand{background-color:transparent;border:0}.form-control:focus{color:#495057;background-color:#fff;border-color:rgb(127.5,189,255);outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.form-control::-webkit-input-placeholder{color:#6c757d;opacity:1}.form-control::-moz-placeholder{color:#6c757d;opacity:1}.form-control:-ms-input-placeholder{color:#6c757d;opacity:1}.form-control::-ms-input-placeholder{color:#6c757d;opacity:1}.form-control::placeholder{color:#6c757d;opacity:1}.form-control:disabled,.form-control[readonly]{background-color:#e9ecef;opacity:1}.form-control-sm{height:calc(1.5em + .5rem + 2px);padding:.25rem .5rem;font-size:.875rem;line-height:1.5;border-radius:.2rem}.form-group{margin-bottom:1.6rem}.form-control{font-size:1.5rem;height:4.8rem;padding:1.2rem 1rem}.form-control[multiple]{padding:0}.form-control[multiple] option{padding:.8rem 1.2rem}.form-control-sm{height:3.2rem;padding:.4rem .8rem;border-radius:.32rem}input[type=checkbox],input[type=radio]{cursor:pointer}input[type=checkbox]+label,input[type=radio]+label{cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}form .form-control::-webkit-input-placeholder{color:#6b6b6b;border-color:#6b6b6b}form .form-control::-moz-placeholder,form .form-control::-ms-input-placeholder,form .form-control::-webkit-input-placeholder,form .form-control::placeholder{color:#6b6b6b;border-color:#6b6b6b}.form-control{border:1px solid #6b6b6b}.form-control:focus{border-color:#0d6efd}.btn{display:inline-block;font-weight:400;color:#000;text-align:center;vertical-align:middle;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;background-color:transparent;border:1px solid transparent;padding:.375rem .75rem;font-size:1.6rem;line-height:1.5;border-radius:.25rem;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.btn{transition:none}}.btn:hover{color:#000;text-decoration:none}.btn:focus{outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.btn:disabled{opacity:.65}.btn-link{font-weight:400;color:#0d6efd;text-decoration:none}.btn-link:hover{color:rgb(0,86.1,178.5);text-decoration:none}.btn-link:focus{text-decoration:none;box-shadow:none}.btn-link:disabled{color:#6c757d;pointer-events:none}.btn:disabled{cursor:not-allowed}link-to.btn:disabled,link-to.btn[disabled]{pointer-events:none}button,button:active{outline:none}.btn:focus-visible,[tabindex=\\\"0\\\"]:focus-visible,a:focus-visible,aofl-list-option:focus-visible,button[type=button]:focus-visible,collapse-button:focus-visible{outline:1px solid #e50b0a;border:1px solid #e50b0a}.btn-link:focus-visible{border:2px solid #e50b0a}.btn:disabled{background:#cfe2ff;border-color:#cfe2ff;color:#0d6efd;opacity:1}.dropdown{position:relative}.dropdown-toggle{white-space:nowrap}.dropdown-toggle:after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:\\\"\\\";border-top:.3em solid;border-right:.3em solid transparent;border-bottom:0;border-left:.3em solid transparent}.dropdown-toggle:empty:after{margin-left:0}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:16rem;padding:.8rem 0;margin:.2rem 0 0;font-size:1.3rem;color:#212529;text-align:left;list-style:none;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.15);border-radius:.25rem}.dropdown-menu[x-placement^=bottom],.dropdown-menu[x-placement^=left],.dropdown-menu[x-placement^=right],.dropdown-menu[x-placement^=top]{right:auto;bottom:auto}.dropdown-item{display:block;width:100%;padding:.8rem 2rem;clear:both;font-weight:400;color:#212529;text-align:inherit;white-space:nowrap;background-color:transparent;border:0}.dropdown-item:focus,.dropdown-item:hover{color:rgb(21.6283783784,24.25,26.8716216216);text-decoration:none;background-color:#d8d8d8}.dropdown-item:active{color:#fff;text-decoration:none;background-color:#0d6efd}.dropdown-item:disabled{color:#6c757d;pointer-events:none;background-color:transparent}.dropdown,.dropdown-menu{display:inline-block}.dropdown-menu{box-shadow:0 0 .6rem 0 #d8d8d8;float:none;position:relative;margin:.2rem .4rem .4rem 0;min-width:1rem}bulk-actions-button+.dropdown-menu{max-width:270px;width:100%}bulk-actions-button+.dropdown-menu .btn{font-size:1.2rem;font-weight:600}collapse-button .ai.ai-chevron-down:before{transform:rotate(-90deg);display:inline-block}ems-dropdown>button.btn{display:flex;align-items:center;border:1px solid var(--gray)}collapse-button[open] .ai.ai-chevron-down:before{transform:rotate(180deg)}collapse-button .ai.ai-chevron-down,ems-dropdown .ai.ai-chevron-down{font-size:.8rem}collapse-button .ai-chevron-down:before,ems-dropdown .ai-chevron-down:before{content:\\\"\\\\e90d\\\"}collapse-button[open] .ai-chevron-down:before,ems-dropdown[open] .ai-chevron-down:before{content:\\\"\\\\e90f\\\"}.search-form-group{position:relative}.search-form-group .search-btns{position:absolute;top:0;right:0}.search-btns .btn{font-size:2rem;height:4.8rem;line-height:4.425rem}@keyframes progress-bar-stripes{0%{background-position:1.6rem 0}to{background-position:0 0}}.modal-container{background-color:rgba(0,0,0,.2);position:fixed;top:0;bottom:0;right:0;left:0;z-index:var(--z-index-modal)}.modal-container :first-child{overflow:auto}.modal{position:relative;display:block;height:100vh}.modal-dialog-centered.modal-dialog-scrollable{height:auto;max-height:calc(100% - 2.8rem);min-height:auto}.modal-body,.modal-content,.modal-footer,.modal-header{border:none}.modal-header{font-size:2rem;padding:2.4rem}.modal-body{padding:0 2.4rem 4.8rem}.colored-header{color:#fff}.modal-body p{text-align:left}.colored-header-primary{background-color:#0d6efd}.colored-header-secondary{background-color:#adb5bd}.colored-header-success{background-color:#3c8104}.colored-header-info{background-color:#cfe2ff}.colored-header-warning{background-color:#e17a05}.colored-header-danger{background-color:#d20a09}.colored-header-light{background-color:#f8f9fa}.colored-header-dark{background-color:#000}@keyframes spinner-border{to{transform:rotate(1turn)}}@keyframes spinner-grow{0%{transform:scale(0)}50%{opacity:1}}.d-inline-block{display:inline-block!important}.d-flex{display:flex!important}.d-inline-flex{display:inline-flex!important}.flex-row{flex-direction:row!important}.flex-column{flex-direction:column!important}.justify-content-center{justify-content:center!important}.justify-content-between{justify-content:space-between!important}@media (min-width:768px){.justify-content-md-center{justify-content:center!important}}@media (min-width:992px){.flex-lg-row{flex-direction:row!important}}.w-100{width:100%!important}.mr-3{margin-right:1rem!important}.mb-3{margin-bottom:1rem!important}.mr-4{margin-right:1.5rem!important}.text-left{text-align:left!important}.text-center{text-align:center!important}.font-size-small{font-size:1.4rem}.ellipsis{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}[hidden]{visibility:hidden!important;height:0!important;width:0!important;min-height:unset!important}@media print{*,:after,:before{text-shadow:none!important;box-shadow:none!important}a:not(.btn){text-decoration:underline}@page{size:a3}}.key-icon{width:14px;height:14px;border-radius:50%;display:inline-block}@media print{main::-webkit-scrollbar{display:none}main{-ms-overflow-style:none;scrollbar-width:none}}@page{size:A4;margin:20mm 16mm 20mm 16mm}:host{display:block}ems-dropdown button{min-width:150px}.search-form-group{min-width:315px}.student-view-search-form-group{width:40%}.student-grade-filter{width:20%}.student-status-filter{width:25%}.standard-category-group{flex:auto;width:350px}.standard-category-group-student-view{flex:auto;max-width:150px}.standard-category-group .dropdown-item{white-space:normal}.reset-button,.search-form-group input,form button[slot=dropdown-toggle]{height:3.35rem;vertical-align:top}.search-btns .btn{font-size:inherit;line-height:inherit;height:36px}.strand-dropdown{overflow-y:scroll;max-height:250px}@media(min-width:768px){.item-gap{gap:10px}}\", \"\"]);\n","exports = module.exports = require(\"../../../node_modules/css-loader/dist/runtime/api.js\")(false);\n// Imports\nvar getUrl = require(\"../../../node_modules/css-loader/dist/runtime/getUrl.js\");\nvar ___CSS_LOADER_URL___0___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-light.woff2\"));\nvar ___CSS_LOADER_URL___1___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-lightit.woff2\"));\nvar ___CSS_LOADER_URL___2___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-reg.woff2\"));\nvar ___CSS_LOADER_URL___3___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-regit.woff2\"));\nvar ___CSS_LOADER_URL___4___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-sbold.woff2\"));\nvar ___CSS_LOADER_URL___5___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-sboldit.woff2\"));\nvar ___CSS_LOADER_URL___6___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-bold.woff2\"));\nvar ___CSS_LOADER_URL___7___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-boldit.woff2\"));\nvar ___CSS_LOADER_URL___8___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-Light.woff2\"));\nvar ___CSS_LOADER_URL___9___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-LightIt.woff2\"));\nvar ___CSS_LOADER_URL___10___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-Regular.woff2\"));\nvar ___CSS_LOADER_URL___11___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-RegularIt.woff2\"));\nvar ___CSS_LOADER_URL___12___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-Semibold.woff2\"));\nvar ___CSS_LOADER_URL___13___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-SemiboldIt.woff2\"));\nvar ___CSS_LOADER_URL___14___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-Bold.woff2\"));\nvar ___CSS_LOADER_URL___15___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-BoldIt.woff2\"));\nvar ___CSS_LOADER_URL___16___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-ExtraBold.woff2\"));\nvar ___CSS_LOADER_URL___17___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-ExtraBoldIt.woff2\"));\nvar ___CSS_LOADER_URL___18___ = getUrl(require(\"../../template/main/fonts/aofl-icons/icomoon.woff2?c6f21u\"));\n// Module\nexports.push([module.id, \"/*! @aofl-component */:root{--blue:#0d6efd;--indigo:#6610f2;--purple:#8b42ca;--pink:#e83e8c;--red:#e50b0a;--orange:#e17a05;--yellow:#ffc107;--green:#3c8104;--teal:#20c997;--cyan:#53c9dc;--white:#fff;--gray:#6b6b6b;--gray-dark:#343a40;--light-green:#b1dd53;--table-border-color:#d8d8d8;--gray-100:#f2f2f2;--gray-200:#d9d9d9;--gray-300:#d8d8d8;--gray-400:#ced4da;--gray-500:#adb5bd;--gray-600:#6c757d;--gray-700:#4a4a4a;--gray-800:#343a40;--gray-900:#212529;--gray-accessibility:#6b6b6b;--primary:#0d6efd;--secondary:#adb5bd;--success:#3c8104;--info:#cfe2ff;--warning:#e17a05;--danger:#d20a09;--light:#f8f9fa;--dark:#000;--breakpoint-xxs:0;--breakpoint-xs:375px;--breakpoint-sm:576px;--breakpoint-md:768px;--breakpoint-lg:992px;--breakpoint-xl:1200px;--font-family-sans-serif:aofl-sans,Arial,Helvetica,sans-serif;--font-family-monospace:SFMono-Regular,Menlo,Monaco,Consolas,\\\"Liberation Mono\\\",\\\"Courier New\\\",monospace;--z-index-dropdown:1000;--z-index-sticky:1020;--z-index-fixed:1030;--z-index-modal-backdrop:1040;--z-index-modal:1050;--z-index-popover:1060;--z-index-tooltip:1070;--header-height:6rem;--content-height:calc(100vh - 6rem);--sidepanel-width:20rem;--purple-color:#641da3;--purple-600:#956abc;--purple-400:#c7afdd;--purple-200:#e0d2ed;--struggling:#f6993b;--below-target:#ffcf00;--in_progress:#1280f5;--prior_knowledge:#edf887;--mastery_achieved:#69d112;--inactive:#d8d8d8}route-view{max-width:1200px}@font-face{font-family:aofl-sans;font-style:normal;font-weight:300;src:url(\" + ___CSS_LOADER_URL___0___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:italic;font-weight:300;src:url(\" + ___CSS_LOADER_URL___1___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:normal;font-weight:400;src:url(\" + ___CSS_LOADER_URL___2___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:italic;font-weight:400;src:url(\" + ___CSS_LOADER_URL___3___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:normal;font-weight:600;src:url(\" + ___CSS_LOADER_URL___4___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:italic;font-weight:600;src:url(\" + ___CSS_LOADER_URL___5___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:normal;font-weight:700;src:url(\" + ___CSS_LOADER_URL___6___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:italic;font-weight:700;src:url(\" + ___CSS_LOADER_URL___7___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:normal;font-weight:300;src:url(\" + ___CSS_LOADER_URL___8___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:italic;font-weight:300;src:url(\" + ___CSS_LOADER_URL___9___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:normal;font-weight:400;src:url(\" + ___CSS_LOADER_URL___10___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:italic;font-weight:400;src:url(\" + ___CSS_LOADER_URL___11___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:normal;font-weight:600;src:url(\" + ___CSS_LOADER_URL___12___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:italic;font-weight:600;src:url(\" + ___CSS_LOADER_URL___13___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:normal;font-weight:700;src:url(\" + ___CSS_LOADER_URL___14___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:italic;font-weight:700;src:url(\" + ___CSS_LOADER_URL___15___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:normal;font-weight:800;src:url(\" + ___CSS_LOADER_URL___16___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:italic;font-weight:800;src:url(\" + ___CSS_LOADER_URL___17___ + \") format(\\\"woff2\\\")}@font-face{font-family:icomoon;src:url(\" + ___CSS_LOADER_URL___18___ + \") format(\\\"woff2\\\");font-weight:400;font-style:normal;font-display:block}[class*=\\\" ai-\\\"],[class^=ai-]{font-family:icomoon!important;speak:never;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*,:after,:before{box-sizing:border-box}html{font-family:sans-serif;line-height:1.15;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:rgba(0,0,0,0)}figcaption,main,nav,section{display:block}[tabindex=\\\"-1\\\"]:focus{outline:0!important}strong{font-weight:bolder}caption{padding-top:.75rem;padding-bottom:.75rem;color:#6c757d;text-align:left;caption-side:bottom}label{display:inline-block;margin-bottom:.8rem}button{border-radius:0}button:focus{outline:1px dotted;outline:5px auto -webkit-focus-ring-color}button,input,textarea{margin:0;font-family:inherit;font-size:inherit;line-height:inherit}button,input{overflow:visible}button{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]:not(:disabled),[type=reset]:not(:disabled),[type=submit]:not(:disabled),button:not(:disabled){cursor:pointer}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{padding:0;border-style:none}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}input[type=date],input[type=datetime-local],input[type=month],input[type=time]{-webkit-appearance:listbox}textarea{overflow:auto;resize:vertical}legend{display:block;width:100%;max-width:100%;padding:0;margin-bottom:.5rem;font-size:1.5rem;line-height:inherit;color:inherit;white-space:normal}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:none}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}summary{display:list-item;cursor:pointer}template{display:none}[hidden]{display:none!important}*{-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important}html{font-size:62.5%;height:100%}link-to{color:#0d6efd;text-decoration:none;background-color:transparent}link-to:hover{color:rgb(0,86.1,178.5);text-decoration:none;cursor:pointer}route-view{display:none;flex:1}site-header{background-color:#fff;display:none;position:-webkit-sticky;position:sticky;top:0;height:var(--header-height)}#main{display:none;flex:1 auto;max-width:100%;overflow:hidden;flex-direction:column;overflow-y:scroll}.loaded #main,.loaded site-header,body.loaded,route-view.loaded{display:flex}route-view.left-panel-active{padding-left:var(--sidepanel-width)}.row{display:flex;flex-wrap:wrap;margin-right:-15px;margin-left:-15px}.col-6,.col-sm-4{position:relative;width:100%;padding-right:15px;padding-left:15px}.col-6{flex:0 0 50%;max-width:50%}@media (min-width:576px){.col-sm-4{flex:0 0 33.3333333333%;max-width:33.3333333333%}.offset-sm-2{margin-left:16.6666666667%}}.form-control{display:block;width:100%;height:calc(1.5em + .75rem + 2px);padding:.375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:#495057;background-color:#fff;background-clip:padding-box;border:1px solid #ced4da;border-radius:.25rem;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.form-control{transition:none}}.form-control::-ms-expand{background-color:transparent;border:0}.form-control:focus{color:#495057;background-color:#fff;border-color:rgb(127.5,189,255);outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.form-control::-webkit-input-placeholder{color:#6c757d;opacity:1}.form-control::-moz-placeholder{color:#6c757d;opacity:1}.form-control:-ms-input-placeholder{color:#6c757d;opacity:1}.form-control::-ms-input-placeholder{color:#6c757d;opacity:1}.form-control::placeholder{color:#6c757d;opacity:1}.form-control:disabled,.form-control[readonly]{background-color:#e9ecef;opacity:1}textarea.form-control{height:auto}.form-group{margin-bottom:1.6rem}.form-control.is-invalid{border-color:#e50b0a;padding-right:calc(1.5em + .75rem);background-image:url(\\\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23dc3545' viewBox='-2 -2 7 7'%3E%3Cpath stroke='%23dc3545' d='M0 0l3 3m0-3L0 3'/%3E%3Ccircle r='.5'/%3E%3Ccircle cx='3' r='.5'/%3E%3Ccircle cy='3' r='.5'/%3E%3Ccircle cx='3' cy='3' r='.5'/%3E%3C/svg%3E\\\");background-repeat:no-repeat;background-position:100% calc(.375em + .1875rem);background-size:calc(.75em + .375rem) calc(.75em + .375rem)}.form-control.is-invalid:focus{border-color:#e50b0a;box-shadow:0 0 0 .2rem rgba(229,11,10,.25)}textarea.form-control.is-invalid{padding-right:calc(1.5em + .75rem);background-position:top calc(.375em + .1875rem) right calc(.375em + .1875rem)}.form-control{font-size:1.5rem;height:4.8rem;padding:1.2rem 1rem}.form-control[multiple]{padding:0}.form-control[multiple] option{padding:.8rem 1.2rem}.form-control.is-invalid{background-position:99%}input[type=checkbox].is-invalid+label{color:#e50b0a}input[type=checkbox],input[type=radio]{cursor:pointer}input[type=checkbox]+label,input[type=radio]+label{cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.form-control.is-invalid{border-color:#d20a09;background:none}form .form-control::-webkit-input-placeholder{color:#6b6b6b;border-color:#6b6b6b}form .form-control::-moz-placeholder,form .form-control::-ms-input-placeholder,form .form-control::-webkit-input-placeholder,form .form-control::placeholder{color:#6b6b6b;border-color:#6b6b6b}.form-control{border:1px solid #6b6b6b}.form-control:focus{border-color:#0d6efd}.btn{display:inline-block;font-weight:400;color:#000;text-align:center;vertical-align:middle;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;background-color:transparent;border:1px solid transparent;padding:.375rem .75rem;font-size:1.6rem;line-height:1.5;border-radius:.25rem;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.btn{transition:none}}.btn:hover{color:#000;text-decoration:none}.btn:focus{outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.btn.disabled,.btn:disabled{opacity:.65}.btn-primary{color:#fff;background-color:#0d6efd;border-color:#0d6efd}.btn-primary:hover{color:#fff;background-color:rgb(1.8668032787,92.4067622951,225.8831967213);border-color:rgb(1.762295082,87.2336065574,213.237704918)}.btn-primary:focus{box-shadow:0 0 0 .2rem rgba(49.3,131.75,253.3,.5)}.btn-primary.disabled,.btn-primary:disabled{color:#fff;background-color:#0d6efd;border-color:#0d6efd}.btn-primary:not(:disabled):not(.disabled):active{color:#fff;background-color:rgb(1.762295082,87.2336065574,213.237704918);border-color:rgb(1.6577868852,82.0604508197,200.5922131148)}.btn-primary:not(:disabled):not(.disabled):active:focus{box-shadow:0 0 0 .2rem rgba(49.3,131.75,253.3,.5)}.btn-outline-primary{color:#0d6efd;border-color:#0d6efd}.btn-outline-primary:hover{color:#fff;background-color:#0d6efd;border-color:#0d6efd}.btn-outline-primary:focus{box-shadow:0 0 0 .2rem rgba(13,110,253,.5)}.btn-outline-primary.disabled,.btn-outline-primary:disabled{color:#0d6efd;background-color:transparent}.btn-outline-primary:not(:disabled):not(.disabled):active{color:#fff;background-color:#0d6efd;border-color:#0d6efd}.btn-outline-primary:not(:disabled):not(.disabled):active:focus{box-shadow:0 0 0 .2rem rgba(13,110,253,.5)}.btn-block{display:block;width:100%}.btn-block+.btn-block{margin-top:.8rem}input[type=button].btn-block,input[type=reset].btn-block,input[type=submit].btn-block{width:100%}.btn:disabled{cursor:not-allowed}.btn.disabled,link-to.btn.disabled,link-to.btn:disabled,link-to.btn[disabled]{pointer-events:none}button,button:active{outline:none}.btn:focus-visible,[tabindex=\\\"0\\\"]:focus-visible,aofl-list-option:focus-visible,button[type=button]:focus-visible,collapse-button:focus-visible{outline:1px solid #e50b0a;border:1px solid #e50b0a}.btn-primary:focus-visible .btn-outline-primary:focus-visible{outline-offset:2px;outline:2px solid #e50b0a}.btn-outline-primary,.btn-primary{font-weight:600;border-width:2px}.btn.disabled,.btn:disabled{background:#cfe2ff;border-color:#cfe2ff;color:#0d6efd;opacity:1}ems-dropdown>button.btn{display:flex;align-items:center;border:1px solid var(--gray)}@keyframes progress-bar-stripes{0%{background-position:1.6rem 0}to{background-position:0 0}}.modal-container{background-color:rgba(0,0,0,.2);position:fixed;top:0;bottom:0;right:0;left:0;z-index:var(--z-index-modal)}.modal-container :first-child{overflow:auto}.modal{position:relative;display:block;height:100vh}.modal-dialog-centered.modal-dialog-scrollable{height:auto;max-height:calc(100% - 2.8rem);min-height:auto}.modal-body,.modal-content,.modal-footer,.modal-header{border:none}.modal-header{font-size:2rem;padding:2.4rem}.modal-body{padding:0 2.4rem 4.8rem}.colored-header{color:#fff}.modal-body p{text-align:left}.colored-header-primary{background-color:#0d6efd}.colored-header-secondary{background-color:#adb5bd}.colored-header-success{background-color:#3c8104}.colored-header-info{background-color:#cfe2ff}.colored-header-warning{background-color:#e17a05}.colored-header-danger{background-color:#d20a09}.colored-header-light{background-color:#f8f9fa}.colored-header-dark{background-color:#000}@keyframes spinner-border{to{transform:rotate(1turn)}}.spinner-border{display:inline-block;width:2rem;height:2rem;vertical-align:text-bottom;border:.25em solid;border-right:.25em solid transparent;border-radius:50%;animation:spinner-border .75s linear infinite}@keyframes spinner-grow{0%{transform:scale(0)}50%{opacity:1}}.rounded-pill{border-radius:80rem!important}.sr-only{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.mr-3{margin-right:1rem!important}.mb-5{margin-bottom:3rem!important}[hidden]{visibility:hidden!important;height:0!important;width:0!important;min-height:unset!important}@media print{*,:after,:before{text-shadow:none!important;box-shadow:none!important}@page{size:a3}}@media print{main::-webkit-scrollbar{display:none}main{-ms-overflow-style:none;scrollbar-width:none}}@page{size:A4;margin:20mm 16mm 20mm 16mm}\", \"\"]);\n","exports = module.exports = require(\"../../../node_modules/css-loader/dist/runtime/api.js\")(false);\n// Imports\nvar getUrl = require(\"../../../node_modules/css-loader/dist/runtime/getUrl.js\");\nvar ___CSS_LOADER_URL___0___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-light.woff2\"));\nvar ___CSS_LOADER_URL___1___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-lightit.woff2\"));\nvar ___CSS_LOADER_URL___2___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-reg.woff2\"));\nvar ___CSS_LOADER_URL___3___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-regit.woff2\"));\nvar ___CSS_LOADER_URL___4___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-sbold.woff2\"));\nvar ___CSS_LOADER_URL___5___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-sboldit.woff2\"));\nvar ___CSS_LOADER_URL___6___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-bold.woff2\"));\nvar ___CSS_LOADER_URL___7___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-boldit.woff2\"));\nvar ___CSS_LOADER_URL___8___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-Light.woff2\"));\nvar ___CSS_LOADER_URL___9___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-LightIt.woff2\"));\nvar ___CSS_LOADER_URL___10___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-Regular.woff2\"));\nvar ___CSS_LOADER_URL___11___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-RegularIt.woff2\"));\nvar ___CSS_LOADER_URL___12___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-Semibold.woff2\"));\nvar ___CSS_LOADER_URL___13___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-SemiboldIt.woff2\"));\nvar ___CSS_LOADER_URL___14___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-Bold.woff2\"));\nvar ___CSS_LOADER_URL___15___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-BoldIt.woff2\"));\nvar ___CSS_LOADER_URL___16___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-ExtraBold.woff2\"));\nvar ___CSS_LOADER_URL___17___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-ExtraBoldIt.woff2\"));\nvar ___CSS_LOADER_URL___18___ = getUrl(require(\"../../template/main/fonts/aofl-icons/icomoon.woff2?c6f21u\"));\n// Module\nexports.push([module.id, \"/*! @aofl-component */:root{--blue:#0d6efd;--indigo:#6610f2;--purple:#8b42ca;--pink:#e83e8c;--red:#e50b0a;--orange:#e17a05;--yellow:#ffc107;--green:#3c8104;--teal:#20c997;--cyan:#53c9dc;--white:#fff;--gray:#6b6b6b;--gray-dark:#343a40;--light-green:#b1dd53;--table-border-color:#d8d8d8;--gray-100:#f2f2f2;--gray-200:#d9d9d9;--gray-300:#d8d8d8;--gray-400:#ced4da;--gray-500:#adb5bd;--gray-600:#6c757d;--gray-700:#4a4a4a;--gray-800:#343a40;--gray-900:#212529;--gray-accessibility:#6b6b6b;--primary:#0d6efd;--secondary:#adb5bd;--success:#3c8104;--info:#cfe2ff;--warning:#e17a05;--danger:#d20a09;--light:#f8f9fa;--dark:#000;--breakpoint-xxs:0;--breakpoint-xs:375px;--breakpoint-sm:576px;--breakpoint-md:768px;--breakpoint-lg:992px;--breakpoint-xl:1200px;--font-family-sans-serif:aofl-sans,Arial,Helvetica,sans-serif;--font-family-monospace:SFMono-Regular,Menlo,Monaco,Consolas,\\\"Liberation Mono\\\",\\\"Courier New\\\",monospace;--z-index-dropdown:1000;--z-index-sticky:1020;--z-index-fixed:1030;--z-index-modal-backdrop:1040;--z-index-modal:1050;--z-index-popover:1060;--z-index-tooltip:1070;--header-height:6rem;--content-height:calc(100vh - 6rem);--sidepanel-width:20rem;--purple-color:#641da3;--purple-600:#956abc;--purple-400:#c7afdd;--purple-200:#e0d2ed;--struggling:#f6993b;--below-target:#ffcf00;--in_progress:#1280f5;--prior_knowledge:#edf887;--mastery_achieved:#69d112;--inactive:#d8d8d8}route-view{max-width:1200px}@font-face{font-family:aofl-sans;font-style:normal;font-weight:300;src:url(\" + ___CSS_LOADER_URL___0___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:italic;font-weight:300;src:url(\" + ___CSS_LOADER_URL___1___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:normal;font-weight:400;src:url(\" + ___CSS_LOADER_URL___2___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:italic;font-weight:400;src:url(\" + ___CSS_LOADER_URL___3___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:normal;font-weight:600;src:url(\" + ___CSS_LOADER_URL___4___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:italic;font-weight:600;src:url(\" + ___CSS_LOADER_URL___5___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:normal;font-weight:700;src:url(\" + ___CSS_LOADER_URL___6___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:italic;font-weight:700;src:url(\" + ___CSS_LOADER_URL___7___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:normal;font-weight:300;src:url(\" + ___CSS_LOADER_URL___8___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:italic;font-weight:300;src:url(\" + ___CSS_LOADER_URL___9___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:normal;font-weight:400;src:url(\" + ___CSS_LOADER_URL___10___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:italic;font-weight:400;src:url(\" + ___CSS_LOADER_URL___11___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:normal;font-weight:600;src:url(\" + ___CSS_LOADER_URL___12___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:italic;font-weight:600;src:url(\" + ___CSS_LOADER_URL___13___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:normal;font-weight:700;src:url(\" + ___CSS_LOADER_URL___14___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:italic;font-weight:700;src:url(\" + ___CSS_LOADER_URL___15___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:normal;font-weight:800;src:url(\" + ___CSS_LOADER_URL___16___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:italic;font-weight:800;src:url(\" + ___CSS_LOADER_URL___17___ + \") format(\\\"woff2\\\")}@font-face{font-family:icomoon;src:url(\" + ___CSS_LOADER_URL___18___ + \") format(\\\"woff2\\\");font-weight:400;font-style:normal;font-display:block}[class*=\\\" ai-\\\"],[class^=ai-]{font-family:icomoon!important;speak:never;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*,:after,:before{box-sizing:border-box}html{font-family:sans-serif;line-height:1.15;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:rgba(0,0,0,0)}figcaption,main,nav,section{display:block}[tabindex=\\\"-1\\\"]:focus{outline:0!important}hr{box-sizing:content-box;height:0;overflow:visible}ul{margin-top:0;margin-bottom:1rem}ul ul{margin-bottom:0}strong{font-weight:bolder}a{color:#0d6efd;background-color:transparent}a,a:hover{text-decoration:none}a:hover{color:rgb(0,86.1,178.5)}a:not([href]):not([tabindex]),a:not([href]):not([tabindex]):focus,a:not([href]):not([tabindex]):hover{color:inherit;text-decoration:none}a:not([href]):not([tabindex]):focus{outline:0}code{font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:1em}caption{padding-top:.75rem;padding-bottom:.75rem;color:#6c757d;text-align:left;caption-side:bottom}th{text-align:inherit}button{border-radius:0}button:focus{outline:1px dotted;outline:5px auto -webkit-focus-ring-color}button,input{margin:0;font-family:inherit;font-size:inherit;line-height:inherit;overflow:visible}button{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]:not(:disabled),[type=reset]:not(:disabled),[type=submit]:not(:disabled),button:not(:disabled){cursor:pointer}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{padding:0;border-style:none}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}input[type=date],input[type=datetime-local],input[type=month],input[type=time]{-webkit-appearance:listbox}legend{display:block;width:100%;max-width:100%;padding:0;margin-bottom:.5rem;font-size:1.5rem;line-height:inherit;color:inherit;white-space:normal}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:none}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}summary{display:list-item;cursor:pointer}template{display:none}[hidden]{display:none!important}*{-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important}html{font-size:62.5%;height:100%}link-to{color:#0d6efd;text-decoration:none;background-color:transparent}link-to:hover{color:rgb(0,86.1,178.5);text-decoration:none;cursor:pointer}route-view{display:none;flex:1}site-header{background-color:#fff;display:none;position:-webkit-sticky;position:sticky;top:0;height:var(--header-height)}#main{display:none;flex:1 auto;max-width:100%;overflow:hidden;flex-direction:column;overflow-y:scroll}.loaded #main,.loaded site-header,body.loaded,route-view.loaded{display:flex}route-view.left-panel-active{padding-left:var(--sidepanel-width)}hr{margin-top:1rem;margin-bottom:1rem;border:0;border-top:1px solid rgba(0,0,0,.1)}code{font-size:87.5%;color:#e83e8c;word-break:break-word}a>code{color:inherit}input[type=checkbox],input[type=radio]{cursor:pointer}button,button:active{outline:none}[tabindex=\\\"0\\\"]:focus-visible,a:focus-visible,aofl-list-option:focus-visible,button[type=button]:focus-visible,collapse-button:focus-visible{outline:1px solid #e50b0a;border:1px solid #e50b0a}@keyframes progress-bar-stripes{0%{background-position:1.6rem 0}to{background-position:0 0}}.modal-container{background-color:rgba(0,0,0,.2);position:fixed;top:0;bottom:0;right:0;left:0;z-index:var(--z-index-modal)}.modal-container :first-child{overflow:auto}.modal{position:relative;display:block;height:100vh}.modal-dialog-centered.modal-dialog-scrollable{height:auto;max-height:calc(100% - 2.8rem);min-height:auto}.modal-body,.modal-content,.modal-footer,.modal-header{border:none}.modal-header{font-size:2rem;padding:2.4rem}.modal-body{padding:0 2.4rem 4.8rem}.colored-header{color:#fff}.modal-body p{text-align:left}.colored-header-primary{background-color:#0d6efd}.colored-header-secondary{background-color:#adb5bd}.colored-header-success{background-color:#3c8104}.colored-header-info{background-color:#cfe2ff}.colored-header-warning{background-color:#e17a05}.colored-header-danger{background-color:#d20a09}.colored-header-light{background-color:#f8f9fa}.colored-header-dark{background-color:#000}@keyframes spinner-border{to{transform:rotate(1turn)}}@keyframes spinner-grow{0%{transform:scale(0)}50%{opacity:1}}.d-none{display:none!important}[hidden]{visibility:hidden!important;height:0!important;width:0!important;min-height:unset!important}@media print{*,:after,:before{text-shadow:none!important;box-shadow:none!important}a:not(.btn){text-decoration:underline}tr{page-break-inside:avoid}@page{size:a3}}@media print{main::-webkit-scrollbar{display:none}main{-ms-overflow-style:none;scrollbar-width:none}}@page{size:A4;margin:20mm 16mm 20mm 16mm}:host{display:block}.phone-input{display:inline-block;position:relative;text-align:justify;padding:0;margin:0}.phone-input-flag-container{height:100%;position:absolute;left:0;padding:1px}.phone-input-selected{height:100%;position:relative;display:flex;align-items:center;padding:0 6px 0 8px;cursor:pointer}.phone-input-selected-flag{height:20px;width:40px;background-repeat:no-repeat;background-size:auto 20px}.phone-input-selected-code{margin-left:6px}.phone-input-selected-arrow{margin-left:6px;width:0;height:0;border-left:3px solid transparent;border-right:3px solid transparent;border-top:4px solid #555}.phone-input-country-list{position:absolute;list-style:none;text-align:left;padding:0;margin:0 0 0 -1px;box-shadow:1px 1px 4px rgb(0 0 0/20%);background-color:#fff;border:1px solid #ccc;white-space:nowrap;max-height:200px;overflow-y:scroll;z-index:var(--z-index-dropdown);left:-60px}.phone-input-country-element{padding:5px 10px;outline:none;display:list-item;cursor:pointer}.phone-input-country-element:hover{background-color:#d8d8d8}.phone-input-flag-box{margin-right:6px;vertical-align:middle;display:inline-block;width:40px;height:20px;background-size:auto 20px}.phone-input-name{margin-right:6px}.phone-input-code{vertical-align:middle;color:#999}.phone-input-number{width:100%;height:100%;padding-left:105px;padding-right:6px;border:0;outline:none;color:#495057}\", \"\"]);\n","exports = module.exports = require(\"../../../../../node_modules/css-loader/dist/runtime/api.js\")(false);\n// Imports\nvar getUrl = require(\"../../../../../node_modules/css-loader/dist/runtime/getUrl.js\");\nvar ___CSS_LOADER_URL___0___ = getUrl(require(\"../../../../template/main/fonts/aofl-sans/aoflsans-light.woff2\"));\nvar ___CSS_LOADER_URL___1___ = getUrl(require(\"../../../../template/main/fonts/aofl-sans/aoflsans-lightit.woff2\"));\nvar ___CSS_LOADER_URL___2___ = getUrl(require(\"../../../../template/main/fonts/aofl-sans/aoflsans-reg.woff2\"));\nvar ___CSS_LOADER_URL___3___ = getUrl(require(\"../../../../template/main/fonts/aofl-sans/aoflsans-regit.woff2\"));\nvar ___CSS_LOADER_URL___4___ = getUrl(require(\"../../../../template/main/fonts/aofl-sans/aoflsans-sbold.woff2\"));\nvar ___CSS_LOADER_URL___5___ = getUrl(require(\"../../../../template/main/fonts/aofl-sans/aoflsans-sboldit.woff2\"));\nvar ___CSS_LOADER_URL___6___ = getUrl(require(\"../../../../template/main/fonts/aofl-sans/aoflsans-bold.woff2\"));\nvar ___CSS_LOADER_URL___7___ = getUrl(require(\"../../../../template/main/fonts/aofl-sans/aoflsans-boldit.woff2\"));\nvar ___CSS_LOADER_URL___8___ = getUrl(require(\"../../../../template/main/fonts/abcmouse-sans/ABCmouseSans-Light.woff2\"));\nvar ___CSS_LOADER_URL___9___ = getUrl(require(\"../../../../template/main/fonts/abcmouse-sans/ABCmouseSans-LightIt.woff2\"));\nvar ___CSS_LOADER_URL___10___ = getUrl(require(\"../../../../template/main/fonts/abcmouse-sans/ABCmouseSans-Regular.woff2\"));\nvar ___CSS_LOADER_URL___11___ = getUrl(require(\"../../../../template/main/fonts/abcmouse-sans/ABCmouseSans-RegularIt.woff2\"));\nvar ___CSS_LOADER_URL___12___ = getUrl(require(\"../../../../template/main/fonts/abcmouse-sans/ABCmouseSans-Semibold.woff2\"));\nvar ___CSS_LOADER_URL___13___ = getUrl(require(\"../../../../template/main/fonts/abcmouse-sans/ABCmouseSans-SemiboldIt.woff2\"));\nvar ___CSS_LOADER_URL___14___ = getUrl(require(\"../../../../template/main/fonts/abcmouse-sans/ABCmouseSans-Bold.woff2\"));\nvar ___CSS_LOADER_URL___15___ = getUrl(require(\"../../../../template/main/fonts/abcmouse-sans/ABCmouseSans-BoldIt.woff2\"));\nvar ___CSS_LOADER_URL___16___ = getUrl(require(\"../../../../template/main/fonts/abcmouse-sans/ABCmouseSans-ExtraBold.woff2\"));\nvar ___CSS_LOADER_URL___17___ = getUrl(require(\"../../../../template/main/fonts/abcmouse-sans/ABCmouseSans-ExtraBoldIt.woff2\"));\nvar ___CSS_LOADER_URL___18___ = getUrl(require(\"../../../../template/main/fonts/aofl-icons/icomoon.woff2?c6f21u\"));\n// Module\nexports.push([module.id, \"/*! @aofl-component */:root{--blue:#0d6efd;--indigo:#6610f2;--purple:#8b42ca;--pink:#e83e8c;--red:#e50b0a;--orange:#e17a05;--yellow:#ffc107;--green:#3c8104;--teal:#20c997;--cyan:#53c9dc;--white:#fff;--gray:#6b6b6b;--gray-dark:#343a40;--light-green:#b1dd53;--table-border-color:#d8d8d8;--gray-100:#f2f2f2;--gray-200:#d9d9d9;--gray-300:#d8d8d8;--gray-400:#ced4da;--gray-500:#adb5bd;--gray-600:#6c757d;--gray-700:#4a4a4a;--gray-800:#343a40;--gray-900:#212529;--gray-accessibility:#6b6b6b;--primary:#0d6efd;--secondary:#adb5bd;--success:#3c8104;--info:#cfe2ff;--warning:#e17a05;--danger:#d20a09;--light:#f8f9fa;--dark:#000;--breakpoint-xxs:0;--breakpoint-xs:375px;--breakpoint-sm:576px;--breakpoint-md:768px;--breakpoint-lg:992px;--breakpoint-xl:1200px;--font-family-sans-serif:aofl-sans,Arial,Helvetica,sans-serif;--font-family-monospace:SFMono-Regular,Menlo,Monaco,Consolas,\\\"Liberation Mono\\\",\\\"Courier New\\\",monospace;--z-index-dropdown:1000;--z-index-sticky:1020;--z-index-fixed:1030;--z-index-modal-backdrop:1040;--z-index-modal:1050;--z-index-popover:1060;--z-index-tooltip:1070;--header-height:6rem;--content-height:calc(100vh - 6rem);--sidepanel-width:20rem;--purple-color:#641da3;--purple-600:#956abc;--purple-400:#c7afdd;--purple-200:#e0d2ed;--struggling:#f6993b;--below-target:#ffcf00;--in_progress:#1280f5;--prior_knowledge:#edf887;--mastery_achieved:#69d112;--inactive:#d8d8d8}route-view{max-width:1200px}@font-face{font-family:aofl-sans;font-style:normal;font-weight:300;src:url(\" + ___CSS_LOADER_URL___0___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:italic;font-weight:300;src:url(\" + ___CSS_LOADER_URL___1___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:normal;font-weight:400;src:url(\" + ___CSS_LOADER_URL___2___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:italic;font-weight:400;src:url(\" + ___CSS_LOADER_URL___3___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:normal;font-weight:600;src:url(\" + ___CSS_LOADER_URL___4___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:italic;font-weight:600;src:url(\" + ___CSS_LOADER_URL___5___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:normal;font-weight:700;src:url(\" + ___CSS_LOADER_URL___6___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:italic;font-weight:700;src:url(\" + ___CSS_LOADER_URL___7___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:normal;font-weight:300;src:url(\" + ___CSS_LOADER_URL___8___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:italic;font-weight:300;src:url(\" + ___CSS_LOADER_URL___9___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:normal;font-weight:400;src:url(\" + ___CSS_LOADER_URL___10___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:italic;font-weight:400;src:url(\" + ___CSS_LOADER_URL___11___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:normal;font-weight:600;src:url(\" + ___CSS_LOADER_URL___12___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:italic;font-weight:600;src:url(\" + ___CSS_LOADER_URL___13___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:normal;font-weight:700;src:url(\" + ___CSS_LOADER_URL___14___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:italic;font-weight:700;src:url(\" + ___CSS_LOADER_URL___15___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:normal;font-weight:800;src:url(\" + ___CSS_LOADER_URL___16___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:italic;font-weight:800;src:url(\" + ___CSS_LOADER_URL___17___ + \") format(\\\"woff2\\\")}@font-face{font-family:icomoon;src:url(\" + ___CSS_LOADER_URL___18___ + \") format(\\\"woff2\\\");font-weight:400;font-style:normal;font-display:block}[class*=\\\" ai-\\\"],[class^=ai-]{font-family:icomoon!important;speak:never;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*,:after,:before{box-sizing:border-box}html{font-family:sans-serif;line-height:1.15;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:rgba(0,0,0,0)}figcaption,main,nav,section{display:block}[tabindex=\\\"-1\\\"]:focus{outline:0!important}p{margin-top:0;margin-bottom:1.6rem}strong{font-weight:bolder}caption{padding-top:.75rem;padding-bottom:.75rem;color:#6c757d;text-align:left;caption-side:bottom}button{border-radius:0}button:focus{outline:1px dotted;outline:5px auto -webkit-focus-ring-color}button,input{margin:0;font-family:inherit;font-size:inherit;line-height:inherit;overflow:visible}button{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]:not(:disabled),[type=reset]:not(:disabled),[type=submit]:not(:disabled),button:not(:disabled){cursor:pointer}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{padding:0;border-style:none}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}input[type=date],input[type=datetime-local],input[type=month],input[type=time]{-webkit-appearance:listbox}legend{display:block;width:100%;max-width:100%;padding:0;margin-bottom:.5rem;font-size:1.5rem;line-height:inherit;color:inherit;white-space:normal}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:none}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}summary{display:list-item;cursor:pointer}template{display:none}[hidden]{display:none!important}*{-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important}html{font-size:62.5%;height:100%}link-to{color:#0d6efd;text-decoration:none;background-color:transparent}link-to:hover{color:rgb(0,86.1,178.5);text-decoration:none;cursor:pointer}route-view{display:none;flex:1}site-header{background-color:#fff;display:none;position:-webkit-sticky;position:sticky;top:0;height:var(--header-height)}#main{display:none;flex:1 auto;max-width:100%;overflow:hidden;flex-direction:column;overflow-y:scroll}.loaded #main,.loaded site-header,body.loaded,route-view.loaded{display:flex}route-view.left-panel-active{padding-left:var(--sidepanel-width)}.row{display:flex;flex-wrap:wrap;margin-right:-15px;margin-left:-15px}.col-md-4,.col-sm-6{position:relative;width:100%;padding-right:15px;padding-left:15px}@media (min-width:576px){.col-sm-6{flex:0 0 50%;max-width:50%}}@media (min-width:768px){.col-md-4{flex:0 0 33.3333333333%;max-width:33.3333333333%}}input[type=checkbox],input[type=radio]{cursor:pointer}.btn{display:inline-block;font-weight:400;color:#000;text-align:center;vertical-align:middle;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;background-color:transparent;border:1px solid transparent;padding:.375rem .75rem;font-size:1.6rem;line-height:1.5;border-radius:.25rem;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.btn{transition:none}}.btn:hover{color:#000;text-decoration:none}.btn:focus{outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.btn:disabled{opacity:.65;cursor:not-allowed}link-to.btn:disabled,link-to.btn[disabled]{pointer-events:none}button,button:active{outline:none}.btn:focus-visible,[tabindex=\\\"0\\\"]:focus-visible,aofl-list-option:focus-visible,button[type=button]:focus-visible,collapse-button:focus-visible{outline:1px solid #e50b0a;border:1px solid #e50b0a}.btn:disabled{background:#cfe2ff;border-color:#cfe2ff;color:#0d6efd;opacity:1}ems-dropdown>button.btn{display:flex;align-items:center;border:1px solid var(--gray)}.card{position:relative;display:flex;flex-direction:column;min-width:0;word-wrap:break-word;background-color:#fff;background-clip:border-box;border:1px solid rgba(0,0,0,.125);border-radius:.25rem}.card-body{flex:1 1 auto}.card-header{padding:1.2rem 2rem;margin-bottom:0;background-color:rgba(0,0,0,.03);border-bottom:1px solid rgba(0,0,0,.125)}.card-header:first-child{border-radius:calc(.25rem - 1px) calc(.25rem - 1px) 0 0}.card-header{background-color:transparent;border-bottom:none;font-size:2rem;font-weight:300;margin:0 2rem;padding:1.6rem 0 0}.card-body{padding:2rem}.card-border-color-left{border-left:.5rem solid #c9c9c9}.card-border-color-left.card-border-color-warning{border-left-color:#e17a05}@keyframes progress-bar-stripes{0%{background-position:1.6rem 0}to{background-position:0 0}}.modal-container{background-color:rgba(0,0,0,.2);position:fixed;top:0;bottom:0;right:0;left:0;z-index:var(--z-index-modal)}.modal-container :first-child{overflow:auto}.modal{position:relative;display:block;height:100vh}.modal-dialog-centered.modal-dialog-scrollable{height:auto;max-height:calc(100% - 2.8rem);min-height:auto}.modal-body,.modal-content,.modal-footer,.modal-header{border:none}.modal-header{font-size:2rem;padding:2.4rem}.modal-body{padding:0 2.4rem 4.8rem}.colored-header{color:#fff}.modal-body p{text-align:left}.colored-header-primary{background-color:#0d6efd}.colored-header-secondary{background-color:#adb5bd}.colored-header-success{background-color:#3c8104}.colored-header-info{background-color:#cfe2ff}.colored-header-warning{background-color:#e17a05}.colored-header-danger{background-color:#d20a09}.colored-header-light{background-color:#f8f9fa}.colored-header-dark{background-color:#000}@keyframes spinner-border{to{transform:rotate(1turn)}}@keyframes spinner-grow{0%{transform:scale(0)}50%{opacity:1}}.rounded-pill{border-radius:80rem!important}.mb-3{margin-bottom:1rem!important}.text-center{text-align:center!important}.font-weight-bold{font-weight:700!important}.text-danger{color:#d20a09!important}[hidden]{visibility:hidden!important;height:0!important;width:0!important;min-height:unset!important}@media print{*,:after,:before{text-shadow:none!important;box-shadow:none!important}p{orphans:3;widows:3}@page{size:a3}}@media print{main::-webkit-scrollbar{display:none}main{-ms-overflow-style:none;scrollbar-width:none}}@page{size:A4;margin:20mm 16mm 20mm 16mm}:host{display:inline-block}#info-btn{display:inline-flex;color:#000;border:.2rem solid #000;width:2rem;height:2rem;padding:0;justify-content:center;align-items:center;font-weight:700;margin-left:.5rem}\", \"\"]);\n","import {until} from 'lit-html/directives/until';\nimport {repeat} from 'lit-html/directives/repeat';\nimport {sdoNs} from '@modules/constants-enumerate';\nimport '@modules/ems-collapse';\nimport '@modules/search-pagination';\nimport '@modules/data-table';\nimport '@modules/search-form';\nimport {generalAriaLabels, noSearchResults} from '@modules/i18n-labels';\nimport '../license-info-row';\nimport datatableCss from './datatable-styles.css';\nimport {wrapUnsafeHtml} from '@modules/wrap-unsafe-html';\n\nconst renderNoResults = (ctx, html) => {\n if (ctx.loading) {\n return html`
`;\n }\n\n if (ctx.licenseAllocations.length > 0) {\n return;\n }\n\n return html`

${until(noSearchResults)}

`;\n};\n\nexport default (ctx, html) => html`\n

${until(ctx.__('', 'Inventory Drilldown'))}

\n
    \n
  1. \n ${repeat(ctx.allocationDrilldown, (group) => group, (group, index) => html`\n
  2. \n `)}\n
\n
\n
\n \n ', 'Given to Lower Levels:')),\n total: ctx.childGroupLicenseCount?.total,\n assigned: ctx.childGroupLicenseCount?.assigned,\n unassigned: ctx.childGroupLicenseCount?.available,\n redeemed: ctx.childGroupLicenseCount?.redeemed,\n }}\" ?loading=\"${ctx.loading}\">\n
\n
\n ', 'All Licenses:')),\n total: ctx.currentGroupLicenseCount?.total + ctx.childGroupLicenseCount?.total,\n assigned: ctx.currentGroupLicenseCount?.assigned + ctx.childGroupLicenseCount?.assigned,\n unassigned: ctx.currentGroupLicenseCount?.available + ctx.childGroupLicenseCount?.available,\n redeemed: ctx.currentGroupLicenseCount?.redeemed + ctx.childGroupLicenseCount?.redeemed\n }}\" ?loading=\"${ctx.loading}\">\n
\n
\n\n', 'Search %r1%'), ctx.tierLabels[ctx.level]) : ctx.i18n.__('', 'Search Classroom'))}\"\n .search=\"${ctx.search.bind(ctx)}\">\n\n${ctx.loading ?\n `` :\n html`\n \n`}\n\n${renderNoResults(ctx, html)}\n\n
\n \n
\n`;\n","import {storeInstance} from '@aofl/store/dist/legacy';\nimport {sdoNs} from '../../../../modules/constants-enumerate';\nimport {deepAssign} from '@aofl/object-utils';\n\nconst sdo = {\n namespace: sdoNs.LICENSE_INVENTORY_ALLOCATION,\n mutations: {\n init() {\n return {\n queryObj: {\n search: {\n field: 'group_name',\n query: ''\n },\n filters: {},\n sort: {\n fields: ['group_name', 'group_id'],\n direction: 'asc',\n limit: 10,\n is_forward: true\n }\n },\n tableConfig: [],\n searchTargetUrl: '',\n hasMore: false,\n level: 0,\n loading: false,\n licenseAllocations: [],\n selectedGroups: [],\n allocationDrilldown: [],\n currentGroupLicenseCount: {\n assigned: 0,\n available: 0,\n redeemed: 0,\n total: 0,\n },\n childGroupLicenseCount: {\n assigned: 0,\n available: 0,\n redeemed: 0,\n total: 0,\n },\n activeRow: {},\n };\n },\n setQuerySearchQuery(subState, query) {\n return deepAssign(subState, 'queryObj.search', {\n query\n });\n },\n setQuerySearchField(subState, field) {\n return deepAssign(subState, 'queryObj.search', {\n field\n });\n },\n setQuerySortFields(subState, field) {\n return deepAssign(subState, 'queryObj.sort', {\n fields: [field, 'id']\n });\n },\n setQueryFilters(subState, filters) {\n return deepAssign(subState, 'queryObj', {\n filters\n });\n },\n removeSortLastValues(subState) {\n const nextSubState = deepAssign(subState, 'queryObj.sort', {});\n\n nextSubState.queryObj.sort.is_forward = true;\n if (typeof nextSubState.queryObj.sort.last_values !== 'undefined') {\n delete nextSubState.queryObj.sort.last_values;\n }\n\n return nextSubState;\n },\n updateSortOrder(subState, {index, field}) {\n let direction = subState.queryObj.sort.direction;\n if (direction === 'asc') {\n direction = 'desc';\n } else if (direction === 'desc') {\n direction = '';\n } else {\n direction = 'asc';\n }\n\n let fields = [field];\n if (fields.length === 0) {\n fields.push('group_name');\n }\n if (direction === '') {\n fields = ['group_name'];\n direction = 'asc';\n }\n\n return deepAssign(subState, 'queryObj.sort', {\n direction,\n fields: fields\n });\n },\n addToAllocationDrilldown(subState, row) {\n const allocationDrilldown = [...subState.allocationDrilldown];\n allocationDrilldown.push(row);\n return deepAssign(subState, '', {\n allocationDrilldown\n });\n },\n sliceAllocationDrilldown(subState, index) {\n const allocationDrilldown = subState.allocationDrilldown.slice(0, index);\n return deepAssign(subState, '', {\n allocationDrilldown\n });\n },\n },\n decorators: [\n (nextState) => { // $orderedLicenseAllocations\n const currState = storeInstance.getState()[sdoNs.LICENSE_INVENTORY_ALLOCATION];\n if (\n typeof nextState[sdoNs.LICENSE_INVENTORY_ALLOCATION].$orderedLicenseAllocations === 'undefined' ||\n currState.licenseAllocations !== nextState[sdoNs.LICENSE_INVENTORY_ALLOCATION].licenseAllocations\n ) {\n const $orderedLicenseAllocations = {};\n nextState[sdoNs.LICENSE_INVENTORY_ALLOCATION].licenseAllocations.map((allocation) => {\n\n let fullPath = allocation.group_path;\n if (fullPath === '') {\n fullPath = allocation.group_id + '.';\n }\n if (typeof $orderedLicenseAllocations[fullPath] === 'undefined') {\n $orderedLicenseAllocations[fullPath] = [];\n }\n $orderedLicenseAllocations[fullPath].push(allocation);\n });\n nextState = deepAssign(nextState, sdoNs.LICENSE_INVENTORY_ALLOCATION, {$orderedLicenseAllocations});\n\n }\n return nextState;\n },\n (nextState) => { // prev search query\n const state = storeInstance.getState();\n const nextSubState = nextState[sdoNs.LICENSE_INVENTORY_ALLOCATION];\n const subState = state[sdoNs.LICENSE_INVENTORY_ALLOCATION];\n\n if (typeof nextSubState.$prevQueryObj === 'undefined' || nextSubState.queryObj !== subState.queryObj) {\n const $prevQueryObj = subState.queryObj;\n\n nextState = deepAssign(nextState, `${sdoNs.LICENSE_INVENTORY_ALLOCATION}`, {$prevQueryObj});\n }\n\n return nextState;\n },\n (nextState) => { // prev pointer items\n const state = storeInstance.getState();\n const nextSubState = nextState[sdoNs.LICENSE_INVENTORY_ALLOCATION];\n const subState = state[sdoNs.LICENSE_INVENTORY_ALLOCATION];\n\n if (typeof nextSubState.$prev === 'undefined' || nextSubState.licenseAllocations !== subState.licenseAllocations) {\n let $prev = '';\n if (nextSubState.licenseAllocations.length > 0) {\n $prev = nextSubState.licenseAllocations[0]; /** @todo assign needed props */\n $prev.id = $prev.group_id;\n }\n nextState = deepAssign(nextState, `${sdoNs.LICENSE_INVENTORY_ALLOCATION}`, {$prev});\n }\n\n return nextState;\n },\n (nextState) => { // next pointer items\n const state = storeInstance.getState();\n const nextSubState = nextState[sdoNs.LICENSE_INVENTORY_ALLOCATION];\n const subState = state[sdoNs.LICENSE_INVENTORY_ALLOCATION];\n\n if (typeof nextSubState.$next === 'undefined' ||\n nextSubState.licenseAllocations !== subState.licenseAllocations) {\n let $next = '';\n if (nextSubState.licenseAllocations.length > 0) {\n $next = nextSubState.licenseAllocations[nextSubState.licenseAllocations.length - 1]; /** @todo assign needed props */\n $next.id = $next.group_id;\n }\n nextState = deepAssign(nextState, `${sdoNs.LICENSE_INVENTORY_ALLOCATION}`, {$next});\n }\n\n return nextState;\n },\n (nextState) => { // $sort to make api call\n const state = storeInstance.getState();\n\n const nextSubState = nextState[sdoNs.LICENSE_INVENTORY_ALLOCATION];\n const subState = state[sdoNs.LICENSE_INVENTORY_ALLOCATION];\n\n if (typeof nextSubState.$sort === 'undefined' ||\n nextSubState.queryObj.sort !== subState.queryObj.sort) {\n const $sort = Object.assign({}, nextSubState.queryObj.sort);\n if ($sort.direction === '') {\n $sort.direction = 'asc';\n }\n\n nextState = deepAssign(nextState, sdoNs.LICENSE_INVENTORY_ALLOCATION, {\n $sort\n });\n }\n\n return nextState;\n },\n (nextState) => { // $pageNumber, $numPages\n const state = storeInstance.getState();\n const nextSubState = nextState[sdoNs.LICENSE_INVENTORY_ALLOCATION];\n const subState = state[sdoNs.LICENSE_INVENTORY_ALLOCATION];\n\n if (\n typeof nextSubState.$pageNumber === 'undefined' ||\n nextSubState.hasMore !== subState.hasMore ||\n nextSubState.$sort !== subState.$sort\n ) {\n const hasOffset = Boolean(nextSubState.$sort.last_values);\n let $pageNumber = 1;\n let $numPages = 7;\n\n if (nextSubState.$sort.is_forward) {\n if (hasOffset) {\n $pageNumber = 2;\n }\n\n if (!nextSubState.hasMore) {\n $numPages = $pageNumber;\n }\n } else {\n $pageNumber = nextSubState.hasMore ? 2 : 1;\n }\n\n nextState = deepAssign(nextState, `${sdoNs.LICENSE_INVENTORY_ALLOCATION}`, {$pageNumber, $numPages});\n }\n\n return nextState;\n },\n\n ]\n};\n\nstoreInstance.addState(sdo);\n","import styles from './template.css';\nimport template from './template';\nimport {AoflElement, customElement, property} from '@aofl/element';\nimport {storeInstance} from '@aofl/store/dist/legacy';\nimport {until} from 'lit-html/directives/until';\nimport {i18nMixin} from '@aofl/i18n-mixin';\nimport {routerInstance} from '@aofl/router';\nimport translations from '../../i18n';\nimport {sdoNs, modals, permissions} from '@modules/constants-enumerate';\nimport '@modules/sdo-licenses';\nimport {ApiService} from '@modules/api-service';\nimport {SearchParams} from '@modules/search-url-params';\nimport {defaults} from '@aofl/object-utils';\nimport './sdo';\n\nconst DEFAULT_SEARCH = {\n field: 'group_name',\n query: ''\n};\nconst DEFAULT_SORT = {\n fields: ['group_name', 'group_id'],\n direction: 'asc',\n limit: 10,\n is_forward: true\n};\n\nconst DEFAULT_QUERY_OBJ = {\n sort: {\n fields: ['name', 'id'],\n direction: 'asc',\n limit: 10,\n is_forward: true\n }\n};\n\nconst setTranslations = (ctx) => {\n const t10s = {\n tableConfig: [\n {\n label: ctx.__('', 'Name'),\n key: 'group_name',\n sortable: false,\n order: '',\n classList: 'text-nowrap col-2 align-items-center',\n headClassList: 'text-left col-2',\n render: (html, result, index) => html`
${result.group_status === 'inactive' ? until(ctx._r(ctx.__('', '%r1% (deleted)'), result.group_name)) : result.group_name}
`\n },\n {\n label: ctx.__('', 'Total'),\n key: 'total',\n sortable: false,\n order: '',\n classList: 'text-nowrap col-xs-2 col-xl-3 align-items-center justify-content-center',\n headClassList: 'col-xs-2 col-xl-3',\n render: (html, result, index) => html`
${result.total + result.lower_tier_total}
`\n },\n {\n label: ctx.__('', 'Available'),\n key: 'quantity',\n sortable: false,\n order: '',\n classList: 'text-nowrap col-xs-3 col-xl-4 align-items-center',\n headClassList: 'col-xs-3 col-xl-4',\n render: (html, result, index) => html`\n
\n
${result.quantity + result.lower_tier_quantity}
\n
\n
\n ${result.quantity > 0 ?\n html`\n \n \n \n \n `:\n ``}\n ${result.quantity > 0 && result.group_status === 'active' ? html`|` : ``}\n ${result.group_status === 'active' ?\n html`\n \n \n \n ` :\n ``}\n
\n
\n
\n `\n },\n {\n label: ctx.__('', 'Assigned'),\n key: 'assigned_count',\n sortable: false,\n order: '',\n classList: 'text-nowrap pr-4 col-xs-2-5 col-1-5 align-items-center justify-content-end text-right',\n headClassList: 'text-right pr-4 col-xs-2-5 col-1-5',\n render: (html, result, index) => html`
${result.assigned_count + result.lower_tier_assigned_count}
`\n },\n {\n label: ctx.__('', 'Redeemed'),\n key: 'redeemed_count',\n sortable: false,\n order: '',\n classList: 'col-xs-2-5 col-1-5 align-items-center text-left',\n headClassList: 'text-left col-xs-2-5 col-1-5',\n render: (html, result, index) => html`
${result.redeemed_count + result.lower_tier_redeemed_count}
`\n },\n ]\n };\n\n return t10s;\n}\n\n/**\n * @summary InventoryAllocation\n * @extends {AoflElement}\n */\n@customElement('inventory-allocation')\nclass InventoryAllocation extends i18nMixin(AoflElement) {\n /**\n * Creates an instance of InventoryAllocation.\n */\n constructor() {\n super();\n this.translations = translations;\n this.storeInstance = storeInstance;\n }\n\n @property({type: Array})\n tableConfig = [];\n\n @property({type: Array, mapState: `${sdoNs.LICENSE_INVENTORY_ALLOCATION}.licenseAllocations`, store: storeInstance})\n licenseAllocations = [];\n\n @property({type: Array, mapState: `${sdoNs.LICENSE_INVENTORY_ALLOCATION}.allocationDrilldown`, store: storeInstance})\n allocationDrilldown = [];\n\n @property({type: Object, mapState: `${sdoNs.LICENSE_INVENTORY_ALLOCATION}.activeRow`, store: storeInstance})\n activeRow = {};\n\n @property({type: Boolean, mapState: `${sdoNs.LICENSE_INVENTORY_ALLOCATION}.hasMore`, store: storeInstance})\n hasMore = false;\n\n @property({type: Object, mapState: `${sdoNs.LICENSE_INVENTORY_ALLOCATION}.queryObj`, store: storeInstance})\n queryObj = {};\n\n @property({type: Number, mapState: `${sdoNs.LICENSE_INVENTORY_ALLOCATION}.level`, store: storeInstance})\n level = 0;\n\n @property({type: Boolean, mapState: `${sdoNs.LICENSE_INVENTORY_ALLOCATION}.loading`, store: storeInstance})\n loading = true;\n\n @property({type: Object, mapState: `${sdoNs.SESSION}.current_role`, store: storeInstance})\n currentRole = {};\n\n @property({type: Object, mapState: `${sdoNs.LICENSE_INVENTORY_ALLOCATION}.currentGroupLicenseCount`, store: storeInstance})\n currentGroupLicenseCount = {};\n\n @property({type: Object, mapState: `${sdoNs.LICENSE_INVENTORY_ALLOCATION}.childGroupLicenseCount`, store: storeInstance})\n childGroupLicenseCount = {};\n\n @property({type: Array, mapState: `${sdoNs.SESSION}.settings.tier_structure.labels`, store: storeInstance})\n tierLabels = [];\n\n @property({type: String, mapState: `${sdoNs.SESSION}.group_info`, store: storeInstance})\n groupInfo = '';\n\n @property({type: Number})\n licenseId = parseInt(routerInstance.currentRoute.matchedRoute.props.id, 10);\n\n connectedCallback() {\n super.connectedCallback();\n\n const searchParams = SearchParams.decode(routerInstance.currentRoute.url.searchParams);\n defaults(searchParams, DEFAULT_QUERY_OBJ);\n\n var t10s = setTranslations(this);\n for (let index in t10s) {\n this[index] = t10s[index];\n }\n\n // set table config sort fields\n for (let i = 0; i < this.tableConfig.length; i++) {\n const item = this.tableConfig[i];\n let itemKey = item.key;\n if (itemKey === 'license_name') {\n itemKey = 'name';\n }\n if (itemKey === 'license_type') {\n itemKey = 'type';\n }\n if (searchParams.sort.fields.indexOf(itemKey) > -1) {\n item.order = searchParams.sort.direction;\n break;\n }\n }\n\n this.storeInstance.commit(\n {namespace: sdoNs.LICENSE_INVENTORY_ALLOCATION, mutationId: 'setTableConfig', payload: this.tableConfig},\n );\n }\n\n async onSort(event) {\n this.storeInstance.commit({\n namespace: sdoNs.LICENSE_INVENTORY_ALLOCATION,\n mutationId: 'updateSortOrder',\n payload: {\n index: event.detail.index,\n field: event.detail.item.key\n }\n });\n this.tableConfig.map((item) => {\n if (this.queryObj.sort.fields.indexOf(item.key) > -1) {\n item.order = this.queryObj.sort.direction;\n } else {\n item.order = ''\n }\n });\n const params = Object.assign({}, DEFAULT_SEARCH, this.queryObj.search);\n const resp = await ApiService.searchLicenseAllocations(params, {\n group_parent_id: this.activeRow.group_id,\n license_id: this.licenseId,\n }, this.queryObj.sort);\n this.storeInstance.commit(\n {namespace: sdoNs.LICENSE_INVENTORY_ALLOCATION, mutationId: 'setLicenseAllocations', payload: resp.results},\n );\n }\n\n async onSelect(event) {\n // Instead of loading information about this row, i want to give licenses\n // so i check to see if the element type is a button, and if it is, return\n if (event.detail.e?.path?.[0]?.nodeName === 'BUTTON') {\n return;\n }\n this.storeInstance.commit({namespace: sdoNs.LICENSE_INVENTORY_ALLOCATION, mutationId: 'setLoading', payload: true});\n const rowInfo = event.detail.data;\n if (rowInfo.group_type === 'classroom' || this.activeRow.group_id === rowInfo.group_id) {\n this.storeInstance.commit({namespace: sdoNs.LICENSE_INVENTORY_ALLOCATION, mutationId: 'setLoading', payload: false});\n return;\n }\n this.storeInstance.commit({namespace: sdoNs.LICENSE_INVENTORY_ALLOCATION, mutationId: 'setActiveRow', payload: rowInfo});\n const params = Object.assign({}, DEFAULT_SEARCH, {query: ''});\n const groupId = rowInfo.group_id;\n const resp = await ApiService.searchLicenseAllocations(params, {\n group_parent_id: groupId,\n license_id: this.licenseId,\n }, DEFAULT_SORT);\n const licenseCounts = await ApiService.groupLicenseGetGroupAndChildLicenseCounts(this.licenseId, groupId);\n this.storeInstance.commit(\n {namespace: sdoNs.LICENSE_INVENTORY_ALLOCATION, mutationId: 'setLoading', payload: false},\n {namespace: sdoNs.LICENSE_INVENTORY_ALLOCATION, mutationId: 'setLicenseAllocations', payload: resp.results},\n {namespace: sdoNs.LICENSE_INVENTORY_ALLOCATION, mutationId: 'setHasMore', payload: resp.has_more},\n {namespace: sdoNs.LICENSE_INVENTORY_ALLOCATION, mutationId: 'addToAllocationDrilldown', payload: rowInfo},\n {namespace: sdoNs.LICENSE_INVENTORY_ALLOCATION, mutationId: 'setLevel', payload: this.level + 1},\n {namespace: sdoNs.LICENSE_INVENTORY_ALLOCATION, mutationId: 'setCurrentGroupLicenseCount', payload: licenseCounts.current_group_license_count},\n {namespace: sdoNs.LICENSE_INVENTORY_ALLOCATION, mutationId: 'setChildGroupLicenseCount', payload: licenseCounts.child_group_license_count},\n );\n }\n\n async navThroughBreadcrumbs(rowInfo, level) {\n if (rowInfo.group_id === this.currentRole.group_id) {\n rowInfo = Object.assign(rowInfo, {\n license_id: this.licenseId\n }, this.currentGroupLicenseCount);\n }\n const params = Object.assign({}, DEFAULT_SEARCH, {query: ''});\n const resp = await ApiService.searchLicenseAllocations(params, {\n group_parent_id: rowInfo.group_id,\n license_id: this.licenseId,\n }, DEFAULT_SORT);\n const licenseCounts = await ApiService.groupLicenseGetGroupAndChildLicenseCounts(this.licenseId, rowInfo.group_id);\n this.storeInstance.commit(\n {namespace: sdoNs.LICENSE_INVENTORY_ALLOCATION, mutationId: 'setActiveRow', payload: rowInfo},\n {namespace: sdoNs.LICENSE_INVENTORY_ALLOCATION, mutationId: 'setLicenseAllocations', payload: resp.results},\n {namespace: sdoNs.LICENSE_INVENTORY_ALLOCATION, mutationId: 'sliceAllocationDrilldown', payload: level},\n {namespace: sdoNs.LICENSE_INVENTORY_ALLOCATION, mutationId: 'setLevel', payload: level},\n {namespace: sdoNs.LICENSE_INVENTORY_ALLOCATION, mutationId: 'setCurrentGroupLicenseCount', payload: licenseCounts.current_group_license_count},\n {namespace: sdoNs.LICENSE_INVENTORY_ALLOCATION, mutationId: 'setChildGroupLicenseCount', payload: licenseCounts.child_group_license_count},\n );\n }\n\n async search() {\n this.storeInstance.commit({namespace: sdoNs.LICENSE_INVENTORY_ALLOCATION, mutationId: 'setLoading', payload: true});\n const params = Object.assign({}, DEFAULT_SEARCH, this.queryObj.search);\n const sortParams = Object.assign({}, DEFAULT_SORT, this.queryObj.sort);\n const resp = await ApiService.searchLicenseAllocations(params, {\n group_parent_id: this.activeRow.group_id,\n license_id: parseInt(routerInstance.currentRoute.matchedRoute.props.id, 10),\n }, sortParams);\n this.storeInstance.commit(\n {namespace: sdoNs.LICENSE_INVENTORY_ALLOCATION, mutationId: 'setHasMore', payload: resp.has_more},\n {namespace: sdoNs.LICENSE_INVENTORY_ALLOCATION, mutationId: 'setLicenseAllocations', payload: resp.results},\n {namespace: sdoNs.LICENSE_INVENTORY_ALLOCATION, mutationId: 'setLoading', payload: false}\n );\n }\n\n showModal(e, result, index) {\n const groupPath = this.groupInfo.path.split('.');\n groupPath.pop();\n\n const groupIds = [...groupPath];\n this.allocationDrilldown.map((item) => {\n groupIds.push(item.group_id);\n });\n\n groupIds.push(result.group_id);\n\n this.storeInstance.commit({namespace: sdoNs.LICENSE_INVENTORY_ALLOCATION, mutationId: 'setSelectedGroups', payload: groupIds});\n }\n\n disconnectedCallback() {\n this.storeInstance.commit({namespace: sdoNs.LICENSE_INVENTORY_ALLOCATION, mutationId: 'init'});\n super.disconnectedCallback();\n }\n\n /**\n * @readonly\n */\n static is = 'inventory-allocation';\n /**\n *\n * @return {Object}\n */\n render() {\n return super.render({\n default: {\n template,\n styles: [styles]\n }\n });\n }\n}\n\nexport default InventoryAllocation;\n","import {until} from 'lit-html/directives/until';\nimport '../../../modules/dropdown';\nimport {LoadingEllipses} from '@epg/epg-components';\nimport '../modules/license-info';\nimport '../modules/inventory-allocation';\n\n\nexport default (ctx, html) => {\n if (ctx.loading) {\n return html`\n
\n \n
\n `;\n }\n\n return html`\n
\n
\n

${until(ctx.__('', 'License Management:'))} ${until(ctx._r(ctx.__('', '%r1%'), ctx.licenseInfo?.name))}

\n
\n
\n\n \n ${ctx.childGroupsLicenseCount.total > 0 || ctx.childGroupsLicenseCount.assigned > 0 || ctx.childGroupsLicenseCount.available > 0 || ctx.childGroupsLicenseCount.redeemed > 0 ? html`\n ` : ''}\n `;\n};\n","/**\n * @route /licenses/details/:id/\n * @title Licenses::AofL Management System\n * @prerender false\n */\nimport styles from './template.css';\nimport template from './template';\nimport {storeInstance} from '@aofl/store/dist/legacy';\nimport translations from '../i18n';\nimport {AoflElement, customElement, property} from '@aofl/element';\nimport {sdoNs} from '../../../modules/constants-enumerate';\nimport {mapStatePropertiesMixin} from '@aofl/map-state-properties-mixin';\nimport {i18nMixin} from '@aofl/i18n-mixin';\nimport '../../../modules/sdo-licenses';\nimport '../../../modules/session-sdo';\nimport {routerInstance} from '@aofl/router';\nimport {ApiService} from '../../../modules/api-service';\nimport '../modules/modals';\nimport '../modules/inventory-allocation/sdo';\n\nconst DEFAULT_SEARCH = {\n field: 'group_name',\n query: ''\n};\nconst DEFAULT_SORT = {\n fields: ['group_name', 'group_id'],\n direction: 'asc',\n limit: 10,\n is_forward: true\n};\n\n/**\n * @summary License Details\n * @extends {AoflElement}\n */\n@customElement('license-details-element')\nclass LicenseDetails extends mapStatePropertiesMixin(i18nMixin(AoflElement)) {\n /**\n * Creates an instance of Licenses.\n */\n constructor() {\n super();\n this.translations = translations;\n this.storeInstance = storeInstance;\n }\n\n /**\n * @readonly\n */\n static get is() {\n return 'license-details-element';\n }\n\n @property({type: Boolean})\n loading = false;\n\n @property({type: Object})\n details = null;\n\n @property({type: Object, mapState: `${sdoNs.LICENSES}.$details`, store: storeInstance})\n licenseInfo = {};\n\n @property({type: Number, mapState: `${sdoNs.SESSION}.current_role.group_id`, store: storeInstance})\n currentGroupId = 0;\n\n @property({type: Object, mapState: `${sdoNs.LICENSES}.childGroupsLicenseCount`, store: storeInstance})\n childGroupsLicenseCount = {};\n\n\n static async loadData(licenseId, groupId) {\n const licenseInfo = await ApiService.licenseGetDetails(licenseId);\n storeInstance.commit({namespace: sdoNs.LICENSES, mutationId: 'setDetails', payload: licenseInfo});\n storeInstance.commit({namespace: sdoNs.LICENSE_INVENTORY_ALLOCATION, mutationId: 'setLoading', payload: true});\n this.childGroupsLicenseCount = licenseInfo.child_group_license_count;\n\n const state = storeInstance.getState();\n const gId = groupId || state[sdoNs.SESSION].current_role.group_id;\n const params = Object.assign({}, DEFAULT_SEARCH, {query: ''});\n\n const response = await ApiService.searchLicenseAllocations(params, {\n group_parent_id: gId,\n license_id: licenseId\n }, DEFAULT_SORT, false);\n const activeRow = Object.assign({}, {\n group_id: gId,\n group_name: state[sdoNs.SESSION].current_role.group_name,\n group_path: state[sdoNs.SESSION].group_info.path,\n license_id: licenseId\n }, licenseInfo.current_group_license_count);\n\n storeInstance.commit(\n {namespace: sdoNs.LICENSE_INVENTORY_ALLOCATION, mutationId: 'setLoading', payload: false},\n {namespace: sdoNs.LICENSE_INVENTORY_ALLOCATION, mutationId: 'setLicenseAllocations', payload: response.results},\n {namespace: sdoNs.LICENSE_INVENTORY_ALLOCATION, mutationId: 'setHasMore', payload: response.has_more},\n {namespace: sdoNs.LICENSE_INVENTORY_ALLOCATION, mutationId: 'setActiveRow', payload:activeRow},\n {namespace: sdoNs.LICENSE_INVENTORY_ALLOCATION, mutationId: 'setCurrentGroupLicenseCount', payload:licenseInfo.current_group_license_count},\n {namespace: sdoNs.LICENSE_INVENTORY_ALLOCATION, mutationId: 'setChildGroupLicenseCount', payload:licenseInfo.child_group_license_count},\n );\n }\n\n async connectedCallback() {\n super.connectedCallback();\n\n this.storeInstance.commit({\n namespace: sdoNs.LICENSES,\n mutationId: 'setLoadingDetails',\n payload: true\n });\n\n await LicenseDetails.loadData(parseInt(routerInstance.currentRoute.matchedRoute.props.id, 10));\n\n this.storeInstance.commit({\n namespace: sdoNs.LICENSES,\n mutationId: 'setLoadingDetails',\n payload: false\n });\n }\n\n scrollTo(event) {\n const id = event.detail.id;\n const el = this.shadowRoot.getElementById(id);\n if (!el) {\n return;\n }\n el.scrollIntoView({\n behavior: 'smooth'\n });\n }\n\n mapStateProperties() {\n const state = this.storeInstance.getState();\n this.loading = state[sdoNs.LICENSES].loadingDetails;\n this.details = state[sdoNs.LICENSES].details || {};\n }\n\n /**\n *\n * @return {Object}\n */\n render() {\n return super.render({\n default: {\n template,\n styles: [styles]\n }\n });\n }\n}\n\nexport default LicenseDetails;\n","module.exports = \"\"","module.exports = __webpack_public_path__ + \"51b0862a63c09a7ebc2d02386eb4838c.webp\";","exports = module.exports = require(\"../../../node_modules/css-loader/dist/runtime/api.js\")(false);\n// Imports\nvar getUrl = require(\"../../../node_modules/css-loader/dist/runtime/getUrl.js\");\nvar ___CSS_LOADER_URL___0___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-light.woff2\"));\nvar ___CSS_LOADER_URL___1___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-lightit.woff2\"));\nvar ___CSS_LOADER_URL___2___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-reg.woff2\"));\nvar ___CSS_LOADER_URL___3___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-regit.woff2\"));\nvar ___CSS_LOADER_URL___4___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-sbold.woff2\"));\nvar ___CSS_LOADER_URL___5___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-sboldit.woff2\"));\nvar ___CSS_LOADER_URL___6___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-bold.woff2\"));\nvar ___CSS_LOADER_URL___7___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-boldit.woff2\"));\nvar ___CSS_LOADER_URL___8___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-Light.woff2\"));\nvar ___CSS_LOADER_URL___9___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-LightIt.woff2\"));\nvar ___CSS_LOADER_URL___10___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-Regular.woff2\"));\nvar ___CSS_LOADER_URL___11___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-RegularIt.woff2\"));\nvar ___CSS_LOADER_URL___12___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-Semibold.woff2\"));\nvar ___CSS_LOADER_URL___13___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-SemiboldIt.woff2\"));\nvar ___CSS_LOADER_URL___14___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-Bold.woff2\"));\nvar ___CSS_LOADER_URL___15___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-BoldIt.woff2\"));\nvar ___CSS_LOADER_URL___16___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-ExtraBold.woff2\"));\nvar ___CSS_LOADER_URL___17___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-ExtraBoldIt.woff2\"));\nvar ___CSS_LOADER_URL___18___ = getUrl(require(\"../../template/main/fonts/aofl-icons/icomoon.woff2?c6f21u\"));\n// Module\nexports.push([module.id, \"/*! @aofl-component */:root{--blue:#0d6efd;--indigo:#6610f2;--purple:#8b42ca;--pink:#e83e8c;--red:#e50b0a;--orange:#e17a05;--yellow:#ffc107;--green:#3c8104;--teal:#20c997;--cyan:#53c9dc;--white:#fff;--gray:#6b6b6b;--gray-dark:#343a40;--light-green:#b1dd53;--table-border-color:#d8d8d8;--gray-100:#f2f2f2;--gray-200:#d9d9d9;--gray-300:#d8d8d8;--gray-400:#ced4da;--gray-500:#adb5bd;--gray-600:#6c757d;--gray-700:#4a4a4a;--gray-800:#343a40;--gray-900:#212529;--gray-accessibility:#6b6b6b;--primary:#0d6efd;--secondary:#adb5bd;--success:#3c8104;--info:#cfe2ff;--warning:#e17a05;--danger:#d20a09;--light:#f8f9fa;--dark:#000;--breakpoint-xxs:0;--breakpoint-xs:375px;--breakpoint-sm:576px;--breakpoint-md:768px;--breakpoint-lg:992px;--breakpoint-xl:1200px;--font-family-sans-serif:aofl-sans,Arial,Helvetica,sans-serif;--font-family-monospace:SFMono-Regular,Menlo,Monaco,Consolas,\\\"Liberation Mono\\\",\\\"Courier New\\\",monospace;--z-index-dropdown:1000;--z-index-sticky:1020;--z-index-fixed:1030;--z-index-modal-backdrop:1040;--z-index-modal:1050;--z-index-popover:1060;--z-index-tooltip:1070;--header-height:6rem;--content-height:calc(100vh - 6rem);--sidepanel-width:20rem;--purple-color:#641da3;--purple-600:#956abc;--purple-400:#c7afdd;--purple-200:#e0d2ed;--struggling:#f6993b;--below-target:#ffcf00;--in_progress:#1280f5;--prior_knowledge:#edf887;--mastery_achieved:#69d112;--inactive:#d8d8d8}route-view{max-width:1200px}@font-face{font-family:aofl-sans;font-style:normal;font-weight:300;src:url(\" + ___CSS_LOADER_URL___0___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:italic;font-weight:300;src:url(\" + ___CSS_LOADER_URL___1___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:normal;font-weight:400;src:url(\" + ___CSS_LOADER_URL___2___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:italic;font-weight:400;src:url(\" + ___CSS_LOADER_URL___3___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:normal;font-weight:600;src:url(\" + ___CSS_LOADER_URL___4___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:italic;font-weight:600;src:url(\" + ___CSS_LOADER_URL___5___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:normal;font-weight:700;src:url(\" + ___CSS_LOADER_URL___6___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:italic;font-weight:700;src:url(\" + ___CSS_LOADER_URL___7___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:normal;font-weight:300;src:url(\" + ___CSS_LOADER_URL___8___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:italic;font-weight:300;src:url(\" + ___CSS_LOADER_URL___9___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:normal;font-weight:400;src:url(\" + ___CSS_LOADER_URL___10___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:italic;font-weight:400;src:url(\" + ___CSS_LOADER_URL___11___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:normal;font-weight:600;src:url(\" + ___CSS_LOADER_URL___12___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:italic;font-weight:600;src:url(\" + ___CSS_LOADER_URL___13___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:normal;font-weight:700;src:url(\" + ___CSS_LOADER_URL___14___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:italic;font-weight:700;src:url(\" + ___CSS_LOADER_URL___15___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:normal;font-weight:800;src:url(\" + ___CSS_LOADER_URL___16___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:italic;font-weight:800;src:url(\" + ___CSS_LOADER_URL___17___ + \") format(\\\"woff2\\\")}@font-face{font-family:icomoon;src:url(\" + ___CSS_LOADER_URL___18___ + \") format(\\\"woff2\\\");font-weight:400;font-style:normal;font-display:block}[class*=\\\" ai-\\\"],[class^=ai-]{font-family:icomoon!important;speak:never;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.ai-checkmark:before{content:\\\"\\\\e90c\\\"}.ai-close-icon:before{content:\\\"\\\\e912\\\"}*,:after,:before{box-sizing:border-box}html{font-family:sans-serif;line-height:1.15;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:rgba(0,0,0,0)}figcaption,main,nav,section{display:block}[tabindex=\\\"-1\\\"]:focus{outline:0!important}p{margin-top:0;margin-bottom:1.6rem}strong{font-weight:bolder}caption{padding-top:.75rem;padding-bottom:.75rem;color:#6c757d;text-align:left;caption-side:bottom}button{border-radius:0}button:focus{outline:1px dotted;outline:5px auto -webkit-focus-ring-color}button,input,select{margin:0;font-family:inherit;font-size:inherit;line-height:inherit}button,input{overflow:visible}button,select{text-transform:none}select{word-wrap:normal}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]:not(:disabled),[type=reset]:not(:disabled),[type=submit]:not(:disabled),button:not(:disabled){cursor:pointer}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{padding:0;border-style:none}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}input[type=date],input[type=datetime-local],input[type=month],input[type=time]{-webkit-appearance:listbox}legend{display:block;width:100%;max-width:100%;padding:0;margin-bottom:.5rem;font-size:1.5rem;line-height:inherit;color:inherit;white-space:normal}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:none}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}summary{display:list-item;cursor:pointer}template{display:none}[hidden]{display:none!important}*{-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important}html{font-size:62.5%;height:100%}link-to{color:#0d6efd;text-decoration:none;background-color:transparent}link-to:hover{color:rgb(0,86.1,178.5);text-decoration:none;cursor:pointer}route-view{display:none;flex:1}site-header{background-color:#fff;display:none;position:-webkit-sticky;position:sticky;top:0;height:var(--header-height)}#main{display:none;flex:1 auto;max-width:100%;overflow:hidden;flex-direction:column;overflow-y:scroll}.loaded #main,.loaded site-header,body.loaded,route-view.loaded{display:flex}route-view.left-panel-active{padding-left:var(--sidepanel-width)}.row{display:flex;flex-wrap:wrap;margin-right:-15px;margin-left:-15px}.no-gutters{margin-right:0;margin-left:0}.no-gutters>[class*=col-]{padding-right:0;padding-left:0}.col-12,.col-lg-3,.col-sm-4,.col-xl-2{position:relative;width:100%;padding-right:15px;padding-left:15px}.col-12{flex:0 0 100%;max-width:100%}@media (min-width:576px){.col-sm-4{flex:0 0 33.3333333333%;max-width:33.3333333333%}}@media (min-width:992px){.col-lg-3{flex:0 0 25%;max-width:25%}}@media (min-width:1200px){.col-xl-2{flex:0 0 16.6666666667%;max-width:16.6666666667%}}input[type=checkbox],input[type=radio]{cursor:pointer}.btn{display:inline-block;font-weight:400;color:#000;text-align:center;vertical-align:middle;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;background-color:transparent;border:1px solid transparent;padding:.375rem .75rem;font-size:1.6rem;line-height:1.5;border-radius:.25rem;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.btn{transition:none}}.btn:hover{color:#000;text-decoration:none}.btn:focus{outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.btn:disabled{opacity:.65}.btn-link{font-weight:400;color:#0d6efd;text-decoration:none}.btn-link:hover{color:rgb(0,86.1,178.5);text-decoration:none}.btn-link:focus{text-decoration:none;box-shadow:none}.btn-link:disabled{color:#6c757d;pointer-events:none}.btn:disabled{cursor:not-allowed}link-to.btn:disabled,link-to.btn[disabled]{pointer-events:none}button,button:active{outline:none}.btn:focus-visible,[tabindex=\\\"0\\\"]:focus-visible,aofl-list-option:focus-visible,button[type=button]:focus-visible,collapse-button:focus-visible{outline:1px solid #e50b0a;border:1px solid #e50b0a}.btn-link:focus-visible{border:2px solid #e50b0a}.btn:disabled{background:#cfe2ff;border-color:#cfe2ff;color:#0d6efd;opacity:1}.dropdown{position:relative}.dropdown-toggle{white-space:nowrap}.dropdown-toggle:after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:\\\"\\\";border-top:.3em solid;border-right:.3em solid transparent;border-bottom:0;border-left:.3em solid transparent}.dropdown-toggle:empty:after{margin-left:0}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:16rem;padding:.8rem 0;margin:.2rem 0 0;font-size:1.3rem;color:#212529;text-align:left;list-style:none;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.15);border-radius:.25rem}.dropdown-menu[x-placement^=bottom],.dropdown-menu[x-placement^=left],.dropdown-menu[x-placement^=right],.dropdown-menu[x-placement^=top]{right:auto;bottom:auto}.dropdown,.dropdown-menu{display:inline-block}.dropdown-menu{box-shadow:0 0 .6rem 0 #d8d8d8;float:none;position:relative;margin:.2rem .4rem .4rem 0;min-width:1rem}bulk-actions-button+.dropdown-menu{max-width:270px;width:100%}bulk-actions-button+.dropdown-menu .btn{font-size:1.2rem;font-weight:600}ems-dropdown>button.btn{display:flex;align-items:center;border:1px solid var(--gray)}.card{position:relative;display:flex;flex-direction:column;min-width:0;word-wrap:break-word;background-color:#fff;background-clip:border-box;border:1px solid rgba(0,0,0,.125);border-radius:.25rem}.card>.list-group:first-child .list-group-item:first-child{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.card>.list-group:last-child .list-group-item:last-child{border-bottom-right-radius:.25rem;border-bottom-left-radius:.25rem}.card-body{flex:1 1 auto;padding:2rem}.card-full-info{background-color:#cfe2ff;color:#fff}.card.rounded{border-radius:.8rem!important}@keyframes progress-bar-stripes{0%{background-position:1.6rem 0}to{background-position:0 0}}.list-group{display:flex;flex-direction:column;padding-left:0;margin-bottom:0}.list-group-item{position:relative;display:block;padding:1.2rem 2rem;margin-bottom:-1px;background-color:#fff;border:1px solid rgba(0,0,0,.125)}.list-group-item:first-child{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.list-group-item:last-child{margin-bottom:0;border-bottom-right-radius:.25rem;border-bottom-left-radius:.25rem}.list-group-item:disabled{color:#6c757d;background-color:#fff}.list-group{font-size:1.3rem}.list-group-item.d-flex{align-items:center}.list-group-item:disabled{color:#878787;pointer-events:none;background-color:#ececec}.list-group [open]{border-bottom:0}.close{float:right;font-size:1rem;font-weight:700;line-height:1;color:#000;text-shadow:0 1px 0 #fff;opacity:.5}.close:hover{color:#000;text-decoration:none}.close:not(:disabled):not(.disabled):focus,.close:not(:disabled):not(.disabled):hover{opacity:.75}button.close{padding:0;background-color:transparent;border:0;-webkit-appearance:none;-moz-appearance:none;appearance:none}.close,.close:not(:disabled):not(.disabled):focus,.close:not(:disabled):not(.disabled):hover{opacity:1}.modal-container{background-color:rgba(0,0,0,.2);position:fixed;top:0;bottom:0;right:0;left:0;z-index:var(--z-index-modal)}.modal-container :first-child{overflow:auto}.modal{position:relative;display:block;height:100vh}.modal-dialog-centered.modal-dialog-scrollable{height:auto;max-height:calc(100% - 2.8rem);min-height:auto}.modal-body,.modal-content,.modal-footer,.modal-header{border:none}.modal-header{font-size:2rem;padding:2.4rem}.modal-body{padding:0 2.4rem 4.8rem}.colored-header{color:#fff}.modal-body p{text-align:left}.colored-header-primary{background-color:#0d6efd}.colored-header-secondary{background-color:#adb5bd}.colored-header-success{background-color:#3c8104}.colored-header-info{background-color:#cfe2ff}.colored-header-warning{background-color:#e17a05}.colored-header-danger{background-color:#d20a09}.colored-header-light{background-color:#f8f9fa}.colored-header-dark{background-color:#000}@keyframes spinner-border{to{transform:rotate(1turn)}}@keyframes spinner-grow{0%{transform:scale(0)}50%{opacity:1}}.border-0{border:0!important}.rounded{border-radius:.4rem!important}.d-flex{display:flex!important}@media (min-width:576px){.d-sm-block{display:block!important}}.justify-content-between{justify-content:space-between!important}.w-100{width:100%!important}.mb-2{margin-bottom:.5rem!important}.mr-4{margin-right:1.5rem!important}.p-0{padding:0!important}.p-4{padding:1.5rem!important}.mt-n2{margin-top:-.5rem!important}.mx-auto{margin-right:auto!important;margin-left:auto!important}.text-nowrap{white-space:nowrap!important}.text-left{text-align:left!important}.text-center{text-align:center!important}@media (min-width:576px){.text-sm-center{text-align:center!important}}.text-primary{color:#0d6efd!important}.text-body{color:#000!important}.text-muted{color:#6c757d!important}[hidden]{visibility:hidden!important;height:0!important;width:0!important;min-height:unset!important}@media print{*,:after,:before{text-shadow:none!important;box-shadow:none!important}p{orphans:3;widows:3}@page{size:a3}}@media print{main::-webkit-scrollbar{display:none}main{-ms-overflow-style:none;scrollbar-width:none}}@page{size:A4;margin:20mm 16mm 20mm 16mm}:host{display:block}.card .close{position:absolute;font-size:1.4rem;top:1rem;right:1rem}.permission-col{flex-wrap:wrap;margin-bottom:1.5rem}.permission-headers{font-size:1.4rem;margin:0}.details-dropdown button{font-size:1.4rem}.show-details,[open] .hide-details{display:block}.hide-details,[open] .show-details{display:none}\", \"\"]);\n","exports = module.exports = require(\"../../../node_modules/css-loader/dist/runtime/api.js\")(false);\n// Imports\nvar getUrl = require(\"../../../node_modules/css-loader/dist/runtime/getUrl.js\");\nvar ___CSS_LOADER_URL___0___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-light.woff2\"));\nvar ___CSS_LOADER_URL___1___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-lightit.woff2\"));\nvar ___CSS_LOADER_URL___2___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-reg.woff2\"));\nvar ___CSS_LOADER_URL___3___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-regit.woff2\"));\nvar ___CSS_LOADER_URL___4___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-sbold.woff2\"));\nvar ___CSS_LOADER_URL___5___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-sboldit.woff2\"));\nvar ___CSS_LOADER_URL___6___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-bold.woff2\"));\nvar ___CSS_LOADER_URL___7___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-boldit.woff2\"));\nvar ___CSS_LOADER_URL___8___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-Light.woff2\"));\nvar ___CSS_LOADER_URL___9___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-LightIt.woff2\"));\nvar ___CSS_LOADER_URL___10___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-Regular.woff2\"));\nvar ___CSS_LOADER_URL___11___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-RegularIt.woff2\"));\nvar ___CSS_LOADER_URL___12___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-Semibold.woff2\"));\nvar ___CSS_LOADER_URL___13___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-SemiboldIt.woff2\"));\nvar ___CSS_LOADER_URL___14___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-Bold.woff2\"));\nvar ___CSS_LOADER_URL___15___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-BoldIt.woff2\"));\nvar ___CSS_LOADER_URL___16___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-ExtraBold.woff2\"));\nvar ___CSS_LOADER_URL___17___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-ExtraBoldIt.woff2\"));\nvar ___CSS_LOADER_URL___18___ = getUrl(require(\"../../template/main/fonts/aofl-icons/icomoon.woff2?c6f21u\"));\n// Module\nexports.push([module.id, \"/*! @aofl-component */:root{--blue:#0d6efd;--indigo:#6610f2;--purple:#8b42ca;--pink:#e83e8c;--red:#e50b0a;--orange:#e17a05;--yellow:#ffc107;--green:#3c8104;--teal:#20c997;--cyan:#53c9dc;--white:#fff;--gray:#6b6b6b;--gray-dark:#343a40;--light-green:#b1dd53;--table-border-color:#d8d8d8;--gray-100:#f2f2f2;--gray-200:#d9d9d9;--gray-300:#d8d8d8;--gray-400:#ced4da;--gray-500:#adb5bd;--gray-600:#6c757d;--gray-700:#4a4a4a;--gray-800:#343a40;--gray-900:#212529;--gray-accessibility:#6b6b6b;--primary:#0d6efd;--secondary:#adb5bd;--success:#3c8104;--info:#cfe2ff;--warning:#e17a05;--danger:#d20a09;--light:#f8f9fa;--dark:#000;--breakpoint-xxs:0;--breakpoint-xs:375px;--breakpoint-sm:576px;--breakpoint-md:768px;--breakpoint-lg:992px;--breakpoint-xl:1200px;--font-family-sans-serif:aofl-sans,Arial,Helvetica,sans-serif;--font-family-monospace:SFMono-Regular,Menlo,Monaco,Consolas,\\\"Liberation Mono\\\",\\\"Courier New\\\",monospace;--z-index-dropdown:1000;--z-index-sticky:1020;--z-index-fixed:1030;--z-index-modal-backdrop:1040;--z-index-modal:1050;--z-index-popover:1060;--z-index-tooltip:1070;--header-height:6rem;--content-height:calc(100vh - 6rem);--sidepanel-width:20rem;--purple-color:#641da3;--purple-600:#956abc;--purple-400:#c7afdd;--purple-200:#e0d2ed;--struggling:#f6993b;--below-target:#ffcf00;--in_progress:#1280f5;--prior_knowledge:#edf887;--mastery_achieved:#69d112;--inactive:#d8d8d8}route-view{max-width:1200px}@font-face{font-family:aofl-sans;font-style:normal;font-weight:300;src:url(\" + ___CSS_LOADER_URL___0___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:italic;font-weight:300;src:url(\" + ___CSS_LOADER_URL___1___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:normal;font-weight:400;src:url(\" + ___CSS_LOADER_URL___2___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:italic;font-weight:400;src:url(\" + ___CSS_LOADER_URL___3___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:normal;font-weight:600;src:url(\" + ___CSS_LOADER_URL___4___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:italic;font-weight:600;src:url(\" + ___CSS_LOADER_URL___5___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:normal;font-weight:700;src:url(\" + ___CSS_LOADER_URL___6___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:italic;font-weight:700;src:url(\" + ___CSS_LOADER_URL___7___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:normal;font-weight:300;src:url(\" + ___CSS_LOADER_URL___8___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:italic;font-weight:300;src:url(\" + ___CSS_LOADER_URL___9___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:normal;font-weight:400;src:url(\" + ___CSS_LOADER_URL___10___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:italic;font-weight:400;src:url(\" + ___CSS_LOADER_URL___11___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:normal;font-weight:600;src:url(\" + ___CSS_LOADER_URL___12___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:italic;font-weight:600;src:url(\" + ___CSS_LOADER_URL___13___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:normal;font-weight:700;src:url(\" + ___CSS_LOADER_URL___14___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:italic;font-weight:700;src:url(\" + ___CSS_LOADER_URL___15___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:normal;font-weight:800;src:url(\" + ___CSS_LOADER_URL___16___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:italic;font-weight:800;src:url(\" + ___CSS_LOADER_URL___17___ + \") format(\\\"woff2\\\")}@font-face{font-family:icomoon;src:url(\" + ___CSS_LOADER_URL___18___ + \") format(\\\"woff2\\\");font-weight:400;font-style:normal;font-display:block}[class*=\\\" ai-\\\"],[class^=ai-]{font-family:icomoon!important;speak:never;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.ai-chevron-down:before{content:\\\"\\\\e90d\\\"}*,:after,:before{box-sizing:border-box}html{font-family:sans-serif;line-height:1.15;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:rgba(0,0,0,0)}figcaption,main,nav,section{display:block}[tabindex=\\\"-1\\\"]:focus{outline:0!important}strong{font-weight:bolder}a{color:#0d6efd;background-color:transparent}a,a:hover{text-decoration:none}a:hover{color:rgb(0,86.1,178.5)}a:not([href]):not([tabindex]),a:not([href]):not([tabindex]):focus,a:not([href]):not([tabindex]):hover{color:inherit;text-decoration:none}a:not([href]):not([tabindex]):focus{outline:0}caption{padding-top:.75rem;padding-bottom:.75rem;color:#6c757d;text-align:left;caption-side:bottom}label{display:inline-block;margin-bottom:.8rem}button{border-radius:0}button:focus{outline:1px dotted;outline:5px auto -webkit-focus-ring-color}button,input{margin:0;font-family:inherit;font-size:inherit;line-height:inherit;overflow:visible}button{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]:not(:disabled),[type=reset]:not(:disabled),[type=submit]:not(:disabled),button:not(:disabled){cursor:pointer}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{padding:0;border-style:none}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}input[type=date],input[type=datetime-local],input[type=month],input[type=time]{-webkit-appearance:listbox}legend{display:block;width:100%;max-width:100%;padding:0;margin-bottom:.5rem;font-size:1.5rem;line-height:inherit;color:inherit;white-space:normal}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:none}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}summary{display:list-item;cursor:pointer}template{display:none}[hidden]{display:none!important}*{-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important}html{font-size:62.5%;height:100%}link-to{color:#0d6efd;text-decoration:none;background-color:transparent}link-to:hover{color:rgb(0,86.1,178.5);text-decoration:none;cursor:pointer}route-view{display:none;flex:1}site-header{background-color:#fff;display:none;position:-webkit-sticky;position:sticky;top:0;height:var(--header-height)}#main{display:none;flex:1 auto;max-width:100%;overflow:hidden;flex-direction:column;overflow-y:scroll}.loaded #main,.loaded site-header,body.loaded,route-view.loaded{display:flex}route-view.left-panel-active{padding-left:var(--sidepanel-width)}input[type=checkbox],input[type=radio]{cursor:pointer}input[type=checkbox]+label,input[type=radio]+label{cursor:pointer}.btn,input[type=checkbox]+label,input[type=radio]+label{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.btn{display:inline-block;font-weight:400;color:#000;text-align:center;vertical-align:middle;background-color:transparent;border:1px solid transparent;padding:.375rem .75rem;font-size:1.6rem;line-height:1.5;border-radius:.25rem;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.btn{transition:none}}.btn:hover{color:#000;text-decoration:none}.btn:focus{outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.btn.disabled,.btn:disabled{opacity:.65}a.btn.disabled{pointer-events:none}.btn-outline-light{color:#f8f9fa;border-color:#f8f9fa}.btn-outline-light:hover{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-outline-light:focus{box-shadow:0 0 0 .2rem rgba(248,249,250,.5)}.btn-outline-light.disabled,.btn-outline-light:disabled{color:#f8f9fa;background-color:transparent}.btn-outline-light:not(:disabled):not(.disabled).active,.btn-outline-light:not(:disabled):not(.disabled):active,.show>.btn-outline-light.dropdown-toggle{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-outline-light:not(:disabled):not(.disabled).active:focus,.btn-outline-light:not(:disabled):not(.disabled):active:focus,.show>.btn-outline-light.dropdown-toggle:focus{box-shadow:0 0 0 .2rem rgba(248,249,250,.5)}.btn:disabled{cursor:not-allowed}.btn.disabled,link-to.btn.disabled,link-to.btn:disabled,link-to.btn[disabled]{pointer-events:none}.btn-outline-light{color:#000;border-color:#ced4da;background:#fff}.btn-outline-light:disabled{color:#000}.btn-outline-light:hover{border-color:#ced4da}button,button:active{outline:none}.btn:focus-visible,[tabindex=\\\"0\\\"]:focus-visible,a:focus-visible,aofl-list-option:focus-visible,button[type=button]:focus-visible,collapse-button:focus-visible{outline:1px solid #e50b0a;border:1px solid #e50b0a}.btn.disabled,.btn:disabled{background:#cfe2ff;border-color:#cfe2ff;color:#0d6efd;opacity:1}.dropdown{position:relative}.dropdown-toggle{white-space:nowrap}.dropdown-toggle:after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:\\\"\\\";border-top:.3em solid;border-right:.3em solid transparent;border-bottom:0;border-left:.3em solid transparent}.dropdown-toggle:empty:after{margin-left:0}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:16rem;padding:.8rem 0;margin:.2rem 0 0;font-size:1.3rem;color:#212529;text-align:left;list-style:none;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.15);border-radius:.25rem}.dropdown-menu[x-placement^=bottom],.dropdown-menu[x-placement^=left],.dropdown-menu[x-placement^=right],.dropdown-menu[x-placement^=top]{right:auto;bottom:auto}.dropdown-item{display:block;width:100%;padding:.8rem 2rem;clear:both;font-weight:400;color:#212529;text-align:inherit;white-space:nowrap;background-color:transparent;border:0}.dropdown-item:focus,.dropdown-item:hover{color:rgb(21.6283783784,24.25,26.8716216216);text-decoration:none;background-color:#d8d8d8}.dropdown-item.active,.dropdown-item:active{color:#fff;text-decoration:none;background-color:#0d6efd}.dropdown-item.disabled,.dropdown-item:disabled{color:#6c757d;pointer-events:none;background-color:transparent}.dropdown-menu.show{display:block}.dropdown,.dropdown-menu{display:inline-block}.dropdown-menu{box-shadow:0 0 .6rem 0 #d8d8d8;float:none;position:relative;margin:.2rem .4rem .4rem 0;min-width:1rem}bulk-actions-button+.dropdown-menu{max-width:270px;width:100%}bulk-actions-button+.dropdown-menu .btn{font-size:1.2rem;font-weight:600}collapse-button .ai.ai-chevron-down:before{transform:rotate(-90deg);display:inline-block}ems-dropdown>button.btn{display:flex;align-items:center;border:1px solid var(--gray)}collapse-button[open] .ai.ai-chevron-down:before{transform:rotate(180deg)}collapse-button .ai.ai-chevron-down,ems-dropdown .ai.ai-chevron-down{font-size:.8rem}collapse-button .ai-chevron-down:before,ems-dropdown .ai-chevron-down:before{content:\\\"\\\\e90d\\\"}collapse-button[open] .ai-chevron-down:before,ems-dropdown[open] .ai-chevron-down:before{content:\\\"\\\\e90f\\\"}@keyframes progress-bar-stripes{0%{background-position:1.6rem 0}to{background-position:0 0}}.modal-container{background-color:rgba(0,0,0,.2);position:fixed;top:0;bottom:0;right:0;left:0;z-index:var(--z-index-modal)}.modal-container :first-child{overflow:auto}.modal{position:relative;display:block;height:100vh}.modal-dialog-centered.modal-dialog-scrollable{height:auto;max-height:calc(100% - 2.8rem);min-height:auto}.modal-body,.modal-content,.modal-footer,.modal-header{border:none}.modal-header{font-size:2rem;padding:2.4rem}.modal-body{padding:0 2.4rem 4.8rem}.colored-header{color:#fff}.modal-body p{text-align:left}.colored-header-primary{background-color:#0d6efd}.colored-header-secondary{background-color:#adb5bd}.colored-header-success{background-color:#3c8104}.colored-header-info{background-color:#cfe2ff}.colored-header-warning{background-color:#e17a05}.colored-header-danger{background-color:#d20a09}.colored-header-light{background-color:#f8f9fa}.colored-header-dark{background-color:#000}@keyframes spinner-border{to{transform:rotate(1turn)}}@keyframes spinner-grow{0%{transform:scale(0)}50%{opacity:1}}.w-100{width:100%!important}.m-0{margin:0!important}.mr-3{margin-right:1rem!important}.mb-3{margin-bottom:1rem!important}[hidden]{visibility:hidden!important;height:0!important;width:0!important;min-height:unset!important}@media print{*,:after,:before{text-shadow:none!important;box-shadow:none!important}a:not(.btn){text-decoration:underline}@page{size:a3}}@media print{main::-webkit-scrollbar{display:none}main{-ms-overflow-style:none;scrollbar-width:none}}@page{size:A4;margin:20mm 16mm 20mm 16mm}:host{display:inline-block}\", \"\"]);\n","exports = module.exports = require(\"../../../node_modules/css-loader/dist/runtime/api.js\")(false);\n// Imports\nvar getUrl = require(\"../../../node_modules/css-loader/dist/runtime/getUrl.js\");\nvar ___CSS_LOADER_URL___0___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-light.woff2\"));\nvar ___CSS_LOADER_URL___1___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-lightit.woff2\"));\nvar ___CSS_LOADER_URL___2___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-reg.woff2\"));\nvar ___CSS_LOADER_URL___3___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-regit.woff2\"));\nvar ___CSS_LOADER_URL___4___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-sbold.woff2\"));\nvar ___CSS_LOADER_URL___5___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-sboldit.woff2\"));\nvar ___CSS_LOADER_URL___6___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-bold.woff2\"));\nvar ___CSS_LOADER_URL___7___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-boldit.woff2\"));\nvar ___CSS_LOADER_URL___8___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-Light.woff2\"));\nvar ___CSS_LOADER_URL___9___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-LightIt.woff2\"));\nvar ___CSS_LOADER_URL___10___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-Regular.woff2\"));\nvar ___CSS_LOADER_URL___11___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-RegularIt.woff2\"));\nvar ___CSS_LOADER_URL___12___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-Semibold.woff2\"));\nvar ___CSS_LOADER_URL___13___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-SemiboldIt.woff2\"));\nvar ___CSS_LOADER_URL___14___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-Bold.woff2\"));\nvar ___CSS_LOADER_URL___15___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-BoldIt.woff2\"));\nvar ___CSS_LOADER_URL___16___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-ExtraBold.woff2\"));\nvar ___CSS_LOADER_URL___17___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-ExtraBoldIt.woff2\"));\nvar ___CSS_LOADER_URL___18___ = getUrl(require(\"../../template/main/fonts/aofl-icons/icomoon.woff2?c6f21u\"));\n// Module\nexports.push([module.id, \"/*! @aofl-component */:root{--blue:#0d6efd;--indigo:#6610f2;--purple:#8b42ca;--pink:#e83e8c;--red:#e50b0a;--orange:#e17a05;--yellow:#ffc107;--green:#3c8104;--teal:#20c997;--cyan:#53c9dc;--white:#fff;--gray:#6b6b6b;--gray-dark:#343a40;--light-green:#b1dd53;--table-border-color:#d8d8d8;--gray-100:#f2f2f2;--gray-200:#d9d9d9;--gray-300:#d8d8d8;--gray-400:#ced4da;--gray-500:#adb5bd;--gray-600:#6c757d;--gray-700:#4a4a4a;--gray-800:#343a40;--gray-900:#212529;--gray-accessibility:#6b6b6b;--primary:#0d6efd;--secondary:#adb5bd;--success:#3c8104;--info:#cfe2ff;--warning:#e17a05;--danger:#d20a09;--light:#f8f9fa;--dark:#000;--breakpoint-xxs:0;--breakpoint-xs:375px;--breakpoint-sm:576px;--breakpoint-md:768px;--breakpoint-lg:992px;--breakpoint-xl:1200px;--font-family-sans-serif:aofl-sans,Arial,Helvetica,sans-serif;--font-family-monospace:SFMono-Regular,Menlo,Monaco,Consolas,\\\"Liberation Mono\\\",\\\"Courier New\\\",monospace;--z-index-dropdown:1000;--z-index-sticky:1020;--z-index-fixed:1030;--z-index-modal-backdrop:1040;--z-index-modal:1050;--z-index-popover:1060;--z-index-tooltip:1070;--header-height:6rem;--content-height:calc(100vh - 6rem);--sidepanel-width:20rem;--purple-color:#641da3;--purple-600:#956abc;--purple-400:#c7afdd;--purple-200:#e0d2ed;--struggling:#f6993b;--below-target:#ffcf00;--in_progress:#1280f5;--prior_knowledge:#edf887;--mastery_achieved:#69d112;--inactive:#d8d8d8}route-view{max-width:1200px}@font-face{font-family:aofl-sans;font-style:normal;font-weight:300;src:url(\" + ___CSS_LOADER_URL___0___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:italic;font-weight:300;src:url(\" + ___CSS_LOADER_URL___1___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:normal;font-weight:400;src:url(\" + ___CSS_LOADER_URL___2___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:italic;font-weight:400;src:url(\" + ___CSS_LOADER_URL___3___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:normal;font-weight:600;src:url(\" + ___CSS_LOADER_URL___4___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:italic;font-weight:600;src:url(\" + ___CSS_LOADER_URL___5___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:normal;font-weight:700;src:url(\" + ___CSS_LOADER_URL___6___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:italic;font-weight:700;src:url(\" + ___CSS_LOADER_URL___7___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:normal;font-weight:300;src:url(\" + ___CSS_LOADER_URL___8___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:italic;font-weight:300;src:url(\" + ___CSS_LOADER_URL___9___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:normal;font-weight:400;src:url(\" + ___CSS_LOADER_URL___10___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:italic;font-weight:400;src:url(\" + ___CSS_LOADER_URL___11___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:normal;font-weight:600;src:url(\" + ___CSS_LOADER_URL___12___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:italic;font-weight:600;src:url(\" + ___CSS_LOADER_URL___13___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:normal;font-weight:700;src:url(\" + ___CSS_LOADER_URL___14___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:italic;font-weight:700;src:url(\" + ___CSS_LOADER_URL___15___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:normal;font-weight:800;src:url(\" + ___CSS_LOADER_URL___16___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:italic;font-weight:800;src:url(\" + ___CSS_LOADER_URL___17___ + \") format(\\\"woff2\\\")}@font-face{font-family:icomoon;src:url(\" + ___CSS_LOADER_URL___18___ + \") format(\\\"woff2\\\");font-weight:400;font-style:normal;font-display:block}[class*=\\\" ai-\\\"],[class^=ai-]{font-family:icomoon!important;speak:never;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.ai-chevron-left:before{content:\\\"\\\\e90e\\\"}.ai-chevron-right:before{content:\\\"\\\\e90f\\\"}*,:after,:before{box-sizing:border-box}html{font-family:sans-serif;line-height:1.15;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:rgba(0,0,0,0)}figcaption,main,nav,section{display:block}[tabindex=\\\"-1\\\"]:focus{outline:0!important}ul{margin-top:0;margin-bottom:1rem}ul ul{margin-bottom:0}strong{font-weight:bolder}a{color:#0d6efd;background-color:transparent}a,a:hover{text-decoration:none}a:hover{color:rgb(0,86.1,178.5)}a:not([href]):not([tabindex]),a:not([href]):not([tabindex]):focus,a:not([href]):not([tabindex]):hover{color:inherit;text-decoration:none}a:not([href]):not([tabindex]):focus{outline:0}caption{padding-top:.75rem;padding-bottom:.75rem;color:#6c757d;text-align:left;caption-side:bottom}label{display:inline-block;margin-bottom:.8rem}button{border-radius:0}button:focus{outline:1px dotted;outline:5px auto -webkit-focus-ring-color}button,input{margin:0;font-family:inherit;font-size:inherit;line-height:inherit;overflow:visible}button{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]:not(:disabled),[type=reset]:not(:disabled),[type=submit]:not(:disabled),button:not(:disabled){cursor:pointer}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{padding:0;border-style:none}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}input[type=date],input[type=datetime-local],input[type=month],input[type=time]{-webkit-appearance:listbox}legend{display:block;width:100%;max-width:100%;padding:0;margin-bottom:.5rem;font-size:1.5rem;line-height:inherit;color:inherit;white-space:normal}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:none}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}summary{display:list-item;cursor:pointer}template{display:none}[hidden]{display:none!important}*{-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important}html{font-size:62.5%;height:100%}link-to{color:#0d6efd;text-decoration:none;background-color:transparent}link-to:hover{color:rgb(0,86.1,178.5);text-decoration:none;cursor:pointer}route-view{display:none;flex:1}site-header{background-color:#fff;display:none;position:-webkit-sticky;position:sticky;top:0;height:var(--header-height)}#main{display:none;flex:1 auto;max-width:100%;overflow:hidden;flex-direction:column;overflow-y:scroll}.loaded #main,.loaded site-header,body.loaded,route-view.loaded{display:flex}route-view.left-panel-active{padding-left:var(--sidepanel-width)}input[type=checkbox],input[type=radio]{cursor:pointer}input[type=checkbox]+label,input[type=radio]+label{cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}button,button:active{outline:none}[tabindex=\\\"0\\\"]:focus-visible,a:focus-visible,aofl-list-option:focus-visible,button[type=button]:focus-visible,collapse-button:focus-visible{outline:1px solid #e50b0a;border:1px solid #e50b0a}.nav{flex-wrap:wrap;margin-bottom:0}.nav,.pagination{display:flex;padding-left:0;list-style:none}.pagination{border-radius:.4rem}.page-link{position:relative;display:block;padding:.8rem 1.2rem;margin-left:-1px;line-height:1.25;color:#000;background-color:#fff;border:1px solid #dee2e6}.page-link:hover{z-index:2;color:rgb(0,86.1,178.5);text-decoration:none;background-color:#e9ecef;border-color:#dee2e6}.page-link:focus{z-index:2;outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.page-item:first-child .page-link{margin-left:0;border-top-left-radius:.4rem;border-bottom-left-radius:.4rem}.page-item:last-child .page-link{border-top-right-radius:.4rem;border-bottom-right-radius:.4rem}.page-item.active .page-link{z-index:1;color:#fff;background-color:#007bff;border-color:#007bff}.page-item.disabled .page-link{color:#6c757d;pointer-events:none;cursor:auto;background-color:#fff;border-color:#dee2e6}@keyframes progress-bar-stripes{0%{background-position:1.6rem 0}to{background-position:0 0}}.modal-container{background-color:rgba(0,0,0,.2);position:fixed;top:0;bottom:0;right:0;left:0;z-index:var(--z-index-modal)}.modal-container :first-child{overflow:auto}.modal{position:relative;display:block;height:100vh}.modal-dialog-centered.modal-dialog-scrollable{height:auto;max-height:calc(100% - 2.8rem);min-height:auto}.modal-body,.modal-content,.modal-footer,.modal-header{border:none}.modal-header{font-size:2rem;padding:2.4rem}.modal-body{padding:0 2.4rem 4.8rem}.colored-header{color:#fff}.modal-body p{text-align:left}.colored-header-primary{background-color:#0d6efd}.colored-header-secondary{background-color:#adb5bd}.colored-header-success{background-color:#3c8104}.colored-header-info{background-color:#cfe2ff}.colored-header-warning{background-color:#e17a05}.colored-header-danger{background-color:#d20a09}.colored-header-light{background-color:#f8f9fa}.colored-header-dark{background-color:#000}@keyframes spinner-border{to{transform:rotate(1turn)}}@keyframes spinner-grow{0%{transform:scale(0)}50%{opacity:1}}.font-weight-bold{font-weight:700!important}.outline-focus-red:focus-visible{outline:2px solid #e50b0a}[hidden]{visibility:hidden!important;height:0!important;width:0!important;min-height:unset!important}@media print{*,:after,:before{text-shadow:none!important;box-shadow:none!important}a:not(.btn){text-decoration:underline}@page{size:a3}}@media print{main::-webkit-scrollbar{display:none}main{-ms-overflow-style:none;scrollbar-width:none}}@page{size:A4;margin:20mm 16mm 20mm 16mm}:host,form,nav{display:inline-block}.pagination{flex-wrap:wrap}label:hover{cursor:pointer}.page-link,.page-link span{vertical-align:middle}\", \"\"]);\n","import '@aofl/picture';\nimport background from './images/background.webp';\nimport backgroundMobile from './images/background-mobile.webp';\nimport loginLogo from './images/logo.webp';\n\nexport const template = (ctx, html) => html`\n
\n
\n \n \n \n \n
\n
\n
\n \n
\n \n
\n
\n
\n\n \n
\n`;\n","import styles from './template.css';\nimport {template} from './template';\nimport {AoflElement, customElement} from '@aofl/element';\n\n/**\n * @summary AuthPanel\n * @extends {AoflElement}\n */\n@customElement('auth-panel')\nclass AuthPanel extends AoflElement {\n constructor() {\n super();\n }\n\n /**\n * @readonly\n */\n static is = 'auth-panel';\n\n render() {\n return super.render(template, [styles]);\n }\n}\n\nexport default AuthPanel;\n","exports = module.exports = require(\"../../../../../node_modules/css-loader/dist/runtime/api.js\")(false);\n// Imports\nvar getUrl = require(\"../../../../../node_modules/css-loader/dist/runtime/getUrl.js\");\nvar ___CSS_LOADER_URL___0___ = getUrl(require(\"../../../../template/main/fonts/aofl-sans/aoflsans-light.woff2\"));\nvar ___CSS_LOADER_URL___1___ = getUrl(require(\"../../../../template/main/fonts/aofl-sans/aoflsans-lightit.woff2\"));\nvar ___CSS_LOADER_URL___2___ = getUrl(require(\"../../../../template/main/fonts/aofl-sans/aoflsans-reg.woff2\"));\nvar ___CSS_LOADER_URL___3___ = getUrl(require(\"../../../../template/main/fonts/aofl-sans/aoflsans-regit.woff2\"));\nvar ___CSS_LOADER_URL___4___ = getUrl(require(\"../../../../template/main/fonts/aofl-sans/aoflsans-sbold.woff2\"));\nvar ___CSS_LOADER_URL___5___ = getUrl(require(\"../../../../template/main/fonts/aofl-sans/aoflsans-sboldit.woff2\"));\nvar ___CSS_LOADER_URL___6___ = getUrl(require(\"../../../../template/main/fonts/aofl-sans/aoflsans-bold.woff2\"));\nvar ___CSS_LOADER_URL___7___ = getUrl(require(\"../../../../template/main/fonts/aofl-sans/aoflsans-boldit.woff2\"));\nvar ___CSS_LOADER_URL___8___ = getUrl(require(\"../../../../template/main/fonts/abcmouse-sans/ABCmouseSans-Light.woff2\"));\nvar ___CSS_LOADER_URL___9___ = getUrl(require(\"../../../../template/main/fonts/abcmouse-sans/ABCmouseSans-LightIt.woff2\"));\nvar ___CSS_LOADER_URL___10___ = getUrl(require(\"../../../../template/main/fonts/abcmouse-sans/ABCmouseSans-Regular.woff2\"));\nvar ___CSS_LOADER_URL___11___ = getUrl(require(\"../../../../template/main/fonts/abcmouse-sans/ABCmouseSans-RegularIt.woff2\"));\nvar ___CSS_LOADER_URL___12___ = getUrl(require(\"../../../../template/main/fonts/abcmouse-sans/ABCmouseSans-Semibold.woff2\"));\nvar ___CSS_LOADER_URL___13___ = getUrl(require(\"../../../../template/main/fonts/abcmouse-sans/ABCmouseSans-SemiboldIt.woff2\"));\nvar ___CSS_LOADER_URL___14___ = getUrl(require(\"../../../../template/main/fonts/abcmouse-sans/ABCmouseSans-Bold.woff2\"));\nvar ___CSS_LOADER_URL___15___ = getUrl(require(\"../../../../template/main/fonts/abcmouse-sans/ABCmouseSans-BoldIt.woff2\"));\nvar ___CSS_LOADER_URL___16___ = getUrl(require(\"../../../../template/main/fonts/abcmouse-sans/ABCmouseSans-ExtraBold.woff2\"));\nvar ___CSS_LOADER_URL___17___ = getUrl(require(\"../../../../template/main/fonts/abcmouse-sans/ABCmouseSans-ExtraBoldIt.woff2\"));\nvar ___CSS_LOADER_URL___18___ = getUrl(require(\"../../../../template/main/fonts/aofl-icons/icomoon.woff2?c6f21u\"));\n// Module\nexports.push([module.id, \"/*! @aofl-component */:root{--blue:#0d6efd;--indigo:#6610f2;--purple:#8b42ca;--pink:#e83e8c;--red:#e50b0a;--orange:#e17a05;--yellow:#ffc107;--green:#3c8104;--teal:#20c997;--cyan:#53c9dc;--white:#fff;--gray:#6b6b6b;--gray-dark:#343a40;--light-green:#b1dd53;--table-border-color:#d8d8d8;--gray-100:#f2f2f2;--gray-200:#d9d9d9;--gray-300:#d8d8d8;--gray-400:#ced4da;--gray-500:#adb5bd;--gray-600:#6c757d;--gray-700:#4a4a4a;--gray-800:#343a40;--gray-900:#212529;--gray-accessibility:#6b6b6b;--primary:#0d6efd;--secondary:#adb5bd;--success:#3c8104;--info:#cfe2ff;--warning:#e17a05;--danger:#d20a09;--light:#f8f9fa;--dark:#000;--breakpoint-xxs:0;--breakpoint-xs:375px;--breakpoint-sm:576px;--breakpoint-md:768px;--breakpoint-lg:992px;--breakpoint-xl:1200px;--font-family-sans-serif:aofl-sans,Arial,Helvetica,sans-serif;--font-family-monospace:SFMono-Regular,Menlo,Monaco,Consolas,\\\"Liberation Mono\\\",\\\"Courier New\\\",monospace;--z-index-dropdown:1000;--z-index-sticky:1020;--z-index-fixed:1030;--z-index-modal-backdrop:1040;--z-index-modal:1050;--z-index-popover:1060;--z-index-tooltip:1070;--header-height:6rem;--content-height:calc(100vh - 6rem);--sidepanel-width:20rem;--purple-color:#641da3;--purple-600:#956abc;--purple-400:#c7afdd;--purple-200:#e0d2ed;--struggling:#f6993b;--below-target:#ffcf00;--in_progress:#1280f5;--prior_knowledge:#edf887;--mastery_achieved:#69d112;--inactive:#d8d8d8}route-view{max-width:1200px}@font-face{font-family:aofl-sans;font-style:normal;font-weight:300;src:url(\" + ___CSS_LOADER_URL___0___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:italic;font-weight:300;src:url(\" + ___CSS_LOADER_URL___1___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:normal;font-weight:400;src:url(\" + ___CSS_LOADER_URL___2___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:italic;font-weight:400;src:url(\" + ___CSS_LOADER_URL___3___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:normal;font-weight:600;src:url(\" + ___CSS_LOADER_URL___4___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:italic;font-weight:600;src:url(\" + ___CSS_LOADER_URL___5___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:normal;font-weight:700;src:url(\" + ___CSS_LOADER_URL___6___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:italic;font-weight:700;src:url(\" + ___CSS_LOADER_URL___7___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:normal;font-weight:300;src:url(\" + ___CSS_LOADER_URL___8___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:italic;font-weight:300;src:url(\" + ___CSS_LOADER_URL___9___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:normal;font-weight:400;src:url(\" + ___CSS_LOADER_URL___10___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:italic;font-weight:400;src:url(\" + ___CSS_LOADER_URL___11___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:normal;font-weight:600;src:url(\" + ___CSS_LOADER_URL___12___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:italic;font-weight:600;src:url(\" + ___CSS_LOADER_URL___13___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:normal;font-weight:700;src:url(\" + ___CSS_LOADER_URL___14___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:italic;font-weight:700;src:url(\" + ___CSS_LOADER_URL___15___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:normal;font-weight:800;src:url(\" + ___CSS_LOADER_URL___16___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:italic;font-weight:800;src:url(\" + ___CSS_LOADER_URL___17___ + \") format(\\\"woff2\\\")}@font-face{font-family:icomoon;src:url(\" + ___CSS_LOADER_URL___18___ + \") format(\\\"woff2\\\");font-weight:400;font-style:normal;font-display:block}[class*=\\\" ai-\\\"],[class^=ai-]{font-family:icomoon!important;speak:never;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*,:after,:before{box-sizing:border-box}html{font-family:sans-serif;line-height:1.15;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:rgba(0,0,0,0)}figcaption,main,nav,section{display:block}[tabindex=\\\"-1\\\"]:focus{outline:0!important}strong{font-weight:bolder}caption{padding-top:.75rem;padding-bottom:.75rem;color:#6c757d;text-align:left;caption-side:bottom}label{display:inline-block;margin-bottom:.8rem}button{border-radius:0}button:focus{outline:1px dotted;outline:5px auto -webkit-focus-ring-color}button,input{margin:0;font-family:inherit;font-size:inherit;line-height:inherit;overflow:visible}button{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]:not(:disabled),[type=reset]:not(:disabled),[type=submit]:not(:disabled),button:not(:disabled){cursor:pointer}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{padding:0;border-style:none}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}input[type=date],input[type=datetime-local],input[type=month],input[type=time]{-webkit-appearance:listbox}legend{display:block;width:100%;max-width:100%;padding:0;margin-bottom:.5rem;font-size:1.5rem;line-height:inherit;color:inherit;white-space:normal}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:none}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}summary{display:list-item;cursor:pointer}template{display:none}[hidden]{display:none!important}*{-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important}html{font-size:62.5%;height:100%}link-to{color:#0d6efd;text-decoration:none;background-color:transparent}link-to:hover{color:rgb(0,86.1,178.5);text-decoration:none;cursor:pointer}route-view{display:none;flex:1}site-header{background-color:#fff;display:none;position:-webkit-sticky;position:sticky;top:0;height:var(--header-height)}#main{display:none;flex:1 auto;max-width:100%;overflow:hidden;flex-direction:column;overflow-y:scroll}.loaded #main,.loaded site-header,body.loaded,route-view.loaded{display:flex}route-view.left-panel-active{padding-left:var(--sidepanel-width)}.row{display:flex;flex-wrap:wrap;margin-right:-15px;margin-left:-15px}.col-3,.col-6,.col-xl-3,.col-xs-2,.col-xs-5{position:relative;width:100%;padding-right:15px;padding-left:15px}.col-3{flex:0 0 25%;max-width:25%}.col-6{flex:0 0 50%;max-width:50%}@media (min-width:375px){.col-xs-2{flex:0 0 16.6666666667%;max-width:16.6666666667%}.col-xs-5{flex:0 0 41.6666666667%;max-width:41.6666666667%}}@media (min-width:1200px){.col-xl-3{flex:0 0 25%;max-width:25%}}input[type=checkbox],input[type=radio]{cursor:pointer}input[type=checkbox]+label,input[type=radio]+label{cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}button,button:active{outline:none}[tabindex=\\\"0\\\"]:focus-visible,aofl-list-option:focus-visible,button[type=button]:focus-visible,collapse-button:focus-visible{outline:1px solid #e50b0a;border:1px solid #e50b0a}@keyframes progress-bar-stripes{0%{background-position:1.6rem 0}to{background-position:0 0}}.modal-container{background-color:rgba(0,0,0,.2);position:fixed;top:0;bottom:0;right:0;left:0;z-index:var(--z-index-modal)}.modal-container :first-child{overflow:auto}.modal{position:relative;display:block;height:100vh}.modal-dialog-centered.modal-dialog-scrollable{height:auto;max-height:calc(100% - 2.8rem);min-height:auto}.modal-body,.modal-content,.modal-footer,.modal-header{border:none}.modal-header{font-size:2rem;padding:2.4rem}.modal-body{padding:0 2.4rem 4.8rem}.colored-header{color:#fff}.modal-body p{text-align:left}.colored-header-primary{background-color:#0d6efd}.colored-header-secondary{background-color:#adb5bd}.colored-header-success{background-color:#3c8104}.colored-header-info{background-color:#cfe2ff}.colored-header-warning{background-color:#e17a05}.colored-header-danger{background-color:#d20a09}.colored-header-light{background-color:#f8f9fa}.colored-header-dark{background-color:#000}@keyframes spinner-border{to{transform:rotate(1turn)}}@keyframes spinner-grow{0%{transform:scale(0)}50%{opacity:1}}.bg-light{background-color:#f8f9fa!important}button.bg-light:focus,button.bg-light:hover{background-color:rgb(218.25,223.5,228.75)!important}.rounded-lg{border-radius:.8rem!important}.d-flex{display:flex!important}.d-inline-flex{display:inline-flex!important}.flex-column{flex-direction:column!important}.mx-4{margin-right:1.5rem!important;margin-left:1.5rem!important}.px-0{padding-right:0!important;padding-left:0!important}.py-2{padding-top:.5rem!important;padding-bottom:.5rem!important}.px-3{padding-right:1rem!important;padding-left:1rem!important}.text-nowrap{white-space:nowrap!important}.text-right{text-align:right!important}.text-center{text-align:center!important}.font-weight-bold{font-weight:700!important}.border-dashed-left{border-left:2px dashed var(--gray-300)}[hidden]{visibility:hidden!important;height:0!important;width:0!important;min-height:unset!important}@media print{*,:after,:before{text-shadow:none!important;box-shadow:none!important}@page{size:a3}}@media print{main::-webkit-scrollbar{display:none}main{-ms-overflow-style:none;scrollbar-width:none}}@page{size:A4;margin:20mm 16mm 20mm 16mm}:host{display:block;min-width:600px}.info-row:not(.loading) .font-weight-bold{opacity:1;transition:opacity .3s}.info-row.loading .font-weight-bold{opacity:.3}\", \"\"]);\n","import {NumberAbbreviation} from './abbr-number';\nimport {storeInstance} from '@aofl/store/dist/legacy';\nimport {sdoNs} from './constants-enumerate';\nimport {translationConfig} from './__config/numbers-config';\n\n\nconst state = storeInstance.getState();\n\nconst numberAbbr = new NumberAbbreviation(state[sdoNs.SESSION.locale], translationConfig);\n\nstoreInstance.subscribe(() => {\n const state = storeInstance.getState();\n numberAbbr.lang = state[sdoNs.SESSION].locale;\n});\n\nexport {\n numberAbbr\n};\n","class NumberAbbreviation {\n constructor(lang, translationMap) {\n this.lang = lang;\n this.cached = {};\n this.translationMap = translationMap;\n }\n\n abbr(value) {\n const configValue = localStorage.getItem('dashboard-abbr');\n if (configValue === 'random') {\n value = (Math.random() * 1000) * Math.pow(10, Math.floor(Math.random() * 5));\n } else if (configValue) {\n value = configValue;\n }\n\n const full = this.getFormatter().format(value);\n const parts = this.getFormatter({\n notation: 'compact',\n minimumFractionDigits: 0,\n maximumFractionDigits: 1,\n maximumSignificantDigits: 3,\n }).formatToParts(value);\n\n const ret = {value: '', full, postfix: '', separator: ''};\n for (const part of parts) {\n if (part.type === 'integer' || part.type === 'group' || part.type === 'decimal' || part.type === 'fraction') {\n ret.value += part.value;\n } else if (part.type === 'compact') {\n ret.postfix = part.value;\n } else if (part.type === 'literal') {\n ret.separator = part.value;\n }\n }\n\n return ret;\n }\n\n /**\n * @param options\n * @return Intl.DateTimeFormat\n */\n getFormatter(options) {\n const lang = localStorage.getItem('dashboard-lang') || this.lang;\n const key = JSON.stringify([lang, options]);\n if (!this.cached[key]) {\n this.cached[key] = new Intl.NumberFormat(lang, options);\n }\n return this.cached[key];\n }\n}\n\nexport {NumberAbbreviation};\n","const translationConfig = {\n 'default': {\n separator: '',\n abbr: {\n 3: {\n generic: 'K',\n person: 'K'\n },\n 6: {\n generic: 'M',\n person: 'M'\n },\n 9: {\n generic: 'B',\n person: 'B'\n },\n 12: {\n generic: 'T',\n person: 'T'\n }\n }\n },\n 'ja-JP': {\n separator: '',\n abbr: {\n 4: {\n generic: 'まん',\n person: 'まん'\n },\n 8: {\n generic: 'おく',\n person: 'おく',\n },\n 12: {\n generic: 'ちょう',\n person: 'ちょう'\n }\n }\n },\n 'zh-CN': {\n separator: '',\n abbr: {\n 4: {\n generic: 'まん',\n person: 'まん'\n },\n 8: {\n generic: 'おく',\n person: 'おく',\n },\n 12: {\n generic: 'ちょう',\n person: 'ちょう'\n }\n }\n },\n 'zh-TW': {\n separator: '',\n abbr: {\n 4: {\n generic: 'まん',\n person: 'まん'\n },\n 8: {\n generic: 'おく',\n person: 'おく',\n },\n 12: {\n generic: 'ちょう',\n person: 'ちょう'\n }\n }\n },\n // 'en-IN': {\n // separator: ' ',\n // abbr: {\n // 5: 'lakh',\n // 7: 'crore',\n // 12: 'lakh crore',\n // 14: 'crore crore',\n // }\n // }\n};\n\nexport {translationConfig};\n","import toDate from '../toDate/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name endOfMonth\n * @category Month Helpers\n * @summary Return the end of a month for the given date.\n *\n * @description\n * Return the end of a month for the given date.\n * The result will be in the local timezone.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the original date\n * @returns {Date} the end of a month\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // The end of a month for 2 September 2014 11:55:00:\n * var result = endOfMonth(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Tue Sep 30 2014 23:59:59.999\n */\n\nexport default function endOfMonth(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var month = date.getMonth();\n date.setFullYear(date.getFullYear(), month + 1, 0);\n date.setHours(23, 59, 59, 999);\n return date;\n}","import toInteger from '../_lib/toInteger/index.js';\nimport addYears from '../addYears/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name subYears\n * @category Year Helpers\n * @summary Subtract the specified number of years from the given date.\n *\n * @description\n * Subtract the specified number of years from the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of years to be subtracted\n * @returns {Date} the new date with the years subtracted\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Subtract 5 years from 1 September 2014:\n * var result = subYears(new Date(2014, 8, 1), 5)\n * //=> Tue Sep 01 2009 00:00:00\n */\n\nexport default function subYears(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var amount = toInteger(dirtyAmount);\n return addYears(dirtyDate, -amount);\n}","import toInteger from '../_lib/toInteger/index.js';\nimport addMonths from '../addMonths/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name addYears\n * @category Year Helpers\n * @summary Add the specified number of years to the given date.\n *\n * @description\n * Add the specified number of years to the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of years to be added\n * @returns {Date} the new date with the years added\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Add 5 years to 1 September 2014:\n * var result = addYears(new Date(2014, 8, 1), 5)\n * //=> Sun Sep 01 2019 00:00:00\n */\n\nexport default function addYears(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var amount = toInteger(dirtyAmount);\n return addMonths(dirtyDate, amount * 12);\n}","import getTime from '../getTime/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name getUnixTime\n * @category Timestamp Helpers\n * @summary Get the seconds timestamp of the given date.\n *\n * @description\n * Get the seconds timestamp of the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the given date\n * @returns {Number} the timestamp\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Get the timestamp of 29 February 2012 11:45:05 CET:\n * var result = getUnixTime(new Date(2012, 1, 29, 11, 45, 5))\n * //=> 1330512305\n */\n\nexport default function getUnixTime(dirtyDate) {\n requiredArgs(1, arguments);\n return Math.floor(getTime(dirtyDate) / 1000);\n}","import toDate from '../toDate/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name getTime\n * @category Timestamp Helpers\n * @summary Get the milliseconds timestamp of the given date.\n *\n * @description\n * Get the milliseconds timestamp of the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the given date\n * @returns {Number} the timestamp\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // Get the timestamp of 29 February 2012 11:45:05.123:\n * var result = getTime(new Date(2012, 1, 29, 11, 45, 5, 123))\n * //=> 1330515905123\n */\n\nexport default function getTime(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var timestamp = date.getTime();\n return timestamp;\n}","import getTimezoneOffsetInMilliseconds from '../_lib/getTimezoneOffsetInMilliseconds/index.js';\nimport startOfDay from '../startOfDay/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\nvar MILLISECONDS_IN_DAY = 86400000;\n/**\n * @name differenceInCalendarDays\n * @category Day Helpers\n * @summary Get the number of calendar days between the given dates.\n *\n * @description\n * Get the number of calendar days between the given dates. This means that the times are removed\n * from the dates and then the difference in days is calculated.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} dateLeft - the later date\n * @param {Date|Number} dateRight - the earlier date\n * @returns {Number} the number of calendar days\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // How many calendar days are between\n * // 2 July 2011 23:00:00 and 2 July 2012 00:00:00?\n * var result = differenceInCalendarDays(\n * new Date(2012, 6, 2, 0, 0),\n * new Date(2011, 6, 2, 23, 0)\n * )\n * //=> 366\n * // How many calendar days are between\n * // 2 July 2011 23:59:00 and 3 July 2011 00:01:00?\n * var result = differenceInCalendarDays(\n * new Date(2011, 6, 3, 0, 1),\n * new Date(2011, 6, 2, 23, 59)\n * )\n * //=> 1\n */\n\nexport default function differenceInCalendarDays(dirtyDateLeft, dirtyDateRight) {\n requiredArgs(2, arguments);\n var startOfDayLeft = startOfDay(dirtyDateLeft);\n var startOfDayRight = startOfDay(dirtyDateRight);\n var timestampLeft = startOfDayLeft.getTime() - getTimezoneOffsetInMilliseconds(startOfDayLeft);\n var timestampRight = startOfDayRight.getTime() - getTimezoneOffsetInMilliseconds(startOfDayRight); // Round the number of days to the nearest integer\n // because the number of milliseconds in a day is not constant\n // (e.g. it's different in the day of the daylight saving time clock shift)\n\n return Math.round((timestampLeft - timestampRight) / MILLISECONDS_IN_DAY);\n}","import toDate from '../toDate/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name compareAsc\n * @category Common Helpers\n * @summary Compare the two dates and return -1, 0 or 1.\n *\n * @description\n * Compare the two dates and return 1 if the first date is after the second,\n * -1 if the first date is before the second or 0 if dates are equal.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} dateLeft - the first date to compare\n * @param {Date|Number} dateRight - the second date to compare\n * @returns {Number} the result of the comparison\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Compare 11 February 1987 and 10 July 1989:\n * var result = compareAsc(new Date(1987, 1, 11), new Date(1989, 6, 10))\n * //=> -1\n *\n * @example\n * // Sort the array of dates:\n * var result = [\n * new Date(1995, 6, 2),\n * new Date(1987, 1, 11),\n * new Date(1989, 6, 10)\n * ].sort(compareAsc)\n * //=> [\n * // Wed Feb 11 1987 00:00:00,\n * // Mon Jul 10 1989 00:00:00,\n * // Sun Jul 02 1995 00:00:00\n * // ]\n */\n\nexport default function compareAsc(dirtyDateLeft, dirtyDateRight) {\n requiredArgs(2, arguments);\n var dateLeft = toDate(dirtyDateLeft);\n var dateRight = toDate(dirtyDateRight);\n var diff = dateLeft.getTime() - dateRight.getTime();\n\n if (diff < 0) {\n return -1;\n } else if (diff > 0) {\n return 1; // Return 0 if diff is 0; return NaN if diff is NaN\n } else {\n return diff;\n }\n}","import toDate from '../toDate/index.js';\nimport differenceInCalendarDays from '../differenceInCalendarDays/index.js';\nimport compareAsc from '../compareAsc/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name differenceInDays\n * @category Day Helpers\n * @summary Get the number of full days between the given dates.\n *\n * @description\n * Get the number of full day periods between the given dates.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} dateLeft - the later date\n * @param {Date|Number} dateRight - the earlier date\n * @returns {Number} the number of full days\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // How many full days are between\n * // 2 July 2011 23:00:00 and 2 July 2012 00:00:00?\n * var result = differenceInDays(\n * new Date(2012, 6, 2, 0, 0),\n * new Date(2011, 6, 2, 23, 0)\n * )\n * //=> 365\n * // How many days are between\n * // 2 July 2011 23:59:00 and 3 July 2011 00:01:00?\n * var result = differenceInDays(\n * new Date(2011, 6, 3, 0, 1),\n * new Date(2011, 6, 2, 23, 59)\n * )\n * //=> 0\n */\n\nexport default function differenceInDays(dirtyDateLeft, dirtyDateRight) {\n requiredArgs(2, arguments);\n var dateLeft = toDate(dirtyDateLeft);\n var dateRight = toDate(dirtyDateRight);\n var sign = compareAsc(dateLeft, dateRight);\n var difference = Math.abs(differenceInCalendarDays(dateLeft, dateRight));\n dateLeft.setDate(dateLeft.getDate() - sign * difference); // Math.abs(diff in full days - diff in calendar days) === 1 if last calendar day is not full\n // If so, result must be decreased by 1 in absolute value\n\n var isLastDayNotFull = compareAsc(dateLeft, dateRight) === -sign;\n var result = sign * (difference - isLastDayNotFull); // Prevent negative zero\n\n return result === 0 ? 0 : result;\n}","import {\n colorMap,\n usageBlocks,\n masteryActivityBlocks,\n targetBlocks,\n aggregate as timeAggregate,\n sdoNs,\n products,\n productStatuses,\n status as statusConst,\n nodeStatuses,\n weeklyMinuteTargetGoals,\n landingPageProducts,\n} from '@modules/constants-enumerate';\nimport {storeInstance} from '@aofl/store/dist/legacy';\nimport {numberAbbr} from './i18n-numbers';\nimport {dashboardAriaLabels, dashboardLabels} from './i18n-labels';\nimport {\n addMonths,\n addWeeks,\n startOfWeek,\n getUnixTime,\n endOfMonth,\n endOfWeek,\n addDays,\n subYears,\n endOfDay,\n format,\n startOfMonth,\n differenceInWeeks,\n} from 'date-fns';\nimport {ApiService} from '@modules/api-service';\nimport {dateTimeFormatter} from '@modules/i18n-datetime';\nimport {unsafeHTML} from 'lit-html/directives/unsafe-html';\n\nclass DashboardUtils {\n static usageColorMapArray = [colorMap.minutes45, colorMap.minutes31, colorMap.minutes16, colorMap.minutes1];\n static activityMapArray = [colorMap.midBlue, colorMap.targetMed, colorMap.inactive];\n static mmaActivityMapArray = [colorMap.midBlue, colorMap.targetMedOrange, colorMap.inactive];\n static targetColorMapArray = [colorMap.targetHigh, colorMap.targetMed, colorMap.inactive];\n\n static USAGE_CHART_DATA = {\n datasets: [],\n forceUpdate: false,\n labels: ['Students', 'Students', 'Students', 'Students'],\n };\n\n static getBarChartOptions(chartType) {\n return {\n responsive: true,\n aspectRatio: 5,\n maintainAspectRatio: true,\n layout: {\n padding: {\n top: 15\n }\n },\n scales: {\n xAxis: {\n grid: {\n drawBorder: true,\n borderColor: '#979797',\n display: false,\n },\n ticks: {\n color: '#000',\n font: {\n family: 'aofl-sans',\n size: 14,\n },\n }\n },\n yAxis: {\n grid: {\n display: false,\n drawBorder: false,\n },\n ticks: {\n display: false,\n }\n },\n },\n datasets: {\n bar: {\n barPercentage: .75\n }\n },\n plugins: {\n legend: {\n display: false\n },\n tooltip: {\n enabled: false\n },\n },\n animation: {\n duration: 1,\n onComplete: function(e) {\n const chartInstance = e.chart;\n const ctx = chartInstance.ctx;\n\n ctx.textAlign = 'center';\n ctx.textBaseline = 'bottom';\n\n chartInstance.data.datasets.forEach(function(dataset, i) {\n const meta = chartInstance.getDatasetMeta(i);\n meta.data.forEach(function(bar, index) {\n const data = dataset.data[index];\n if (data) {\n const chartLabelAppend = chartType === 'time' ? 'm' : '';\n ctx.fillText(data + chartLabelAppend, bar.x, bar.y);\n }\n });\n });\n }\n },\n };\n }\n\n static getPercentageLabels(args) {\n const {data} = args;\n if (!data) {\n return {};\n }\n\n const total = Object.values(data).reduce((a, b) => a + b, 0);\n const percentageMap = {};\n const percentageLabelMap = {};\n let totalPercent = 0;\n let maxPercentage = 0;\n let maxPercentageKey = '';\n for (const i in data) {\n if (!data.hasOwnProperty(i)) continue;\n const val = data[i];\n let percent = 0;\n let percentLabel = 0;\n if (val && total) {\n percent = Math.round(val / total * 100);\n percentLabel = String(percent);\n // We don't want to show zero for percentages that are less\n // than 1%\n if (percent === 0) {\n percent = 1;\n percentLabel = 0.5;\n }\n }\n totalPercent += percent;\n percentageLabelMap[i] = percentLabel;\n percentageMap[i] = percent;\n if (percent > maxPercentage) {\n maxPercentageKey = i;\n maxPercentage = percent;\n }\n }\n // if the rounding does not result in 100%, recalculate and (+/-) to the\n // item with the most\n if (totalPercent !== 100 && totalPercent > 0) {\n percentageLabelMap[maxPercentageKey] = String(percentageMap[maxPercentageKey] + 100 - totalPercent);\n }\n return percentageLabelMap;\n }\n\n static getRangeLegend(ranges) {\n const legend = [];\n const rangeKeys = Object.keys(ranges);\n\n let i = 0;\n for (const [key, sec] of Object.entries(ranges)) {\n let label = '';\n const colorKey = 'range' + key.charAt(0).toUpperCase() + key.slice(1);\n if (typeof rangeKeys[i+1] === 'undefined') {\n label = '≥' + Math.floor(sec / 60).toString();\n } else {\n label = Math.floor(sec / 60)\n .toString() + '-';\n label += Math.floor(((ranges[rangeKeys[i + 1]]) / 60) - 1)\n .toString();\n }\n if (label.charAt(0) === '0') {\n label = '>' + label;\n }\n // Add the legend\n legend[i] = {\n color: colorMap[colorKey],\n label: dashboardLabels.rangeLabel(label),\n };\n i++;\n }\n return legend;\n }\n\n static getRoundedMinutes(secondsToAverage) {\n return secondsToAverage < 60 ? Math.ceil(secondsToAverage / 60) : Math.floor(secondsToAverage / 60);\n }\n\n static getBorderWidths(comparate, doughnutValues) {\n const borderWidths = [];\n doughnutValues.map((value) => {\n borderWidths.push((value === comparate) ? 8 : 0);\n });\n return borderWidths;\n }\n\n static getBorderAligns(comparate, doughnutValues) {\n const borderAligns = [];\n doughnutValues.map((value) => {\n borderAligns.push((value === comparate) ? 'center' : 'inner');\n });\n return borderAligns;\n }\n\n static getMasteryActivityLegend(_args) {\n const {data, labels, filter, language} = _args;\n const average = Object.values(data.statuses).reduce((a, b) => a + b);\n let extraLabel = '';\n if (data?.removedInWeek) {\n extraLabel = '**';\n } else if (data?.has_removed_students || data?.has_unlicensed_students) {\n extraLabel = '*';\n }\n numberAbbr.lang = language;\n const abbreviatedAverage = numberAbbr.abbr(average);\n abbreviatedAverage.postfix += extraLabel;\n const keys = [\n {\n value: data.statuses.in_progress,\n label: labels.in_progress,\n description: dashboardLabels.PROGRESSING,\n filterVal: masteryActivityBlocks.IN_PROGRESS,\n active: (filter === masteryActivityBlocks.IN_PROGRESS),\n ariaLabel: dashboardAriaLabels.progressing(labels.in_progress),\n },\n {\n value: data.statuses.struggling,\n label: labels.struggling,\n description: dashboardLabels.STRUGGLING,\n filterVal: masteryActivityBlocks.STRUGGLING,\n active: (filter === masteryActivityBlocks.STRUGGLING),\n ariaLabel: dashboardAriaLabels.struggling(labels.struggling),\n },\n {\n value: data.statuses.inactive,\n label: labels.inactive,\n description: dashboardLabels.INACTIVE,\n filterVal: masteryActivityBlocks.INACTIVE,\n active: (filter === masteryActivityBlocks.INACTIVE),\n ariaLabel: dashboardAriaLabels.inactive(labels.inactive),\n },\n ];\n\n\n return {\n average: abbreviatedAverage,\n label: dashboardLabels.TOTAL_STUDENTS,\n keys,\n };\n }\n\n static getUsageLegend(args) {\n let {keys, filter, averageSeconds, language, footerNotices, removedInWeek} = args;\n numberAbbr.lang = language;\n\n const average = DashboardUtils.getRoundedMinutes(averageSeconds);\n const abbreviation = numberAbbr.abbr(average);\n if (typeof removedInWeek !== 'undefined' && removedInWeek) {\n abbreviation.postfix += '**';\n } else if (footerNotices?.usage?.has('*')) {\n abbreviation.postfix += '*';\n }\n return {\n average: abbreviation,\n label: dashboardLabels.ACTIVITY_TIME_PER_STUDENT,\n keys: keys.map((key) => {\n return {\n value: key.value || 0,\n label: ((key.percentage > 0 && key.percentage < 1) || (key.value > 0 && key.percentage === 0)) ? '<1' : key.percentage || 0,\n description: key.description,\n filterVal: key.filterVal,\n active: filter === key.filterVal,\n ariaLabel: key.ariaLabel,\n };\n })\n };\n }\n\n static getStats(\n statsToRetrieve,\n product,\n searchParams,\n timeParams = {start: null, end: null}\n ) {\n const state = storeInstance.getState();\n const selectedGroup = state[sdoNs.DASHBOARD].$activeGroupId;\n if (statsToRetrieve === 'usage') {\n return ApiService.statsGetUsage(\n parseInt(selectedGroup, 10),\n product,\n searchParams,\n timeParams.start,\n timeParams.end,\n );\n }\n return ApiService.statsGetActivity(\n parseInt(selectedGroup, 10),\n product,\n searchParams,\n timeParams.start,\n timeParams.end\n );\n }\n\n static getChartUsageData(args) {\n const {usage, filter} = args;\n const donutValues = args?.donutValues ||\n [usageBlocks.MINUTES_45, usageBlocks.MINUTES_31, usageBlocks.MINUTES_16, usageBlocks.MINUTES_1];\n const data = (usage && usage.length) ?\n usage :\n [0, 0, 0, 0];\n\n return Object.assign({}, DashboardUtils.USAGE_CHART_DATA, {\n datasets: [\n {\n data,\n backgroundColor: DashboardUtils.usageColorMapArray,\n hoverBackgroundColor: DashboardUtils.usageColorMapArray,\n borderColor: DashboardUtils.usageColorMapArray,\n borderWidth: DashboardUtils.getBorderWidths(filter, donutValues),\n borderAlign: DashboardUtils.getBorderAligns(filter, donutValues),\n filters: donutValues,\n ariaLabel: args.ariaLabel,\n squareAriaLabels: args.squareAriaLabels\n }\n ],\n ariaLabels: args.ariaLabels,\n });\n }\n\n static convertDateToUTC(date) {\n return date.setTime(date.getTime() - date.getTimezoneOffset() * 60 * 1000);\n }\n\n static timestampToDate(timestamp) {\n return new Date(timestamp * 1000);\n }\n\n static convertUTCTimestampToDate(timestamp) {\n const date = this.timestampToDate(timestamp);\n const newTimestamp = date.setTime(date.getTime() + date.getTimezoneOffset() * 60 * 1000);\n return new Date(newTimestamp);\n }\n\n static convertYYYYMMDDToFormat(YYYYMMDD, newFormat) {\n const newDate = new Date(YYYYMMDD.slice(0, 4), YYYYMMDD.slice(4, 6) - 1, YYYYMMDD.slice(6-8));\n return format(newDate, newFormat);\n }\n\n static convertToChartLabelFormat(labelDate, monthLabelSize = 'short') {\n const labelStartDate = new Date(labelDate.slice(0, 4), labelDate.slice(4, 6) - 1, labelDate.slice(6-8));\n const labelEndDate = endOfWeek(labelStartDate);\n const opts = {month: monthLabelSize, day: 'numeric'};\n return [\n dateTimeFormatter.format(labelStartDate, opts),\n '-',\n dateTimeFormatter.format(labelEndDate, opts)\n ];\n }\n\n static cleanAriaLabelsForByWeekDates(labels) {\n const ariaLabels = [];\n for (const label of labels) {\n ariaLabels.push(label.join(' '));\n }\n\n return ariaLabels;\n }\n\n /**\n * Get the start and end timestamps for the selected time period\n *\n * @param date - actual Date\n * @param timePeriod - weeks or months\n * @param increment - this can be positive or negative\n * @param product - product id\n */\n static getUTCTimestampsByIncrement(date, timePeriod, increment, product = '') {\n let startDate = null;\n let endDate = null;\n const weekStartsOn = (landingPageProducts.includes(product)) ? 1 : 0;\n if (timePeriod === timeAggregate.DAY) {\n startDate = startOfWeek(date, {weekStartsOn});\n endDate = endOfWeek(date, {weekStartsOn});\n } else if (timePeriod === timeAggregate.WEEK) {\n startDate = addWeeks(startOfWeek(date, {weekStartsOn}), increment);\n endDate = endOfWeek(date, {weekStartsOn});\n } else if (timePeriod === timeAggregate.MONTH) {\n startDate = addMonths(date, increment);\n startDate = startOfMonth(startDate);\n endDate = endOfMonth(date);\n } else if (timePeriod === timeAggregate.ALLTIME) {\n const now = new Date();\n startDate = subYears(now, 3);\n endDate = endOfDay(now);\n }\n\n return {\n startTimestamp: getUnixTime(this.convertDateToUTC(startDate)),\n endTimestamp: getUnixTime(this.convertDateToUTC(endDate))\n };\n }\n\n /**\n * Get the start and end timestamps for the selected time period\n *\n * @param date - actual Date\n * @param timePeriod - weeks or months\n * @param increment - this can be positive or negative\n */\n static getFormattedDateByIncrement(date, timePeriod, increment) {\n const {startDate, endDate} = this.getDateByIncrement(date, timePeriod, increment);\n return {\n start: format(startDate, 'yyyyMMdd'),\n end: format(endDate, 'yyyyMMdd'),\n };\n }\n\n /**\n *\n * @param date\n * @param timePeriod\n * @param increment\n * @returns {{endDate: null, startDate: null}}\n */\n static getDateByIncrement(date, timePeriod, increment) {\n let startDate = null;\n let endDate = null;\n if (timePeriod === timeAggregate.WEEK) {\n startDate = addWeeks(startOfWeek(date), increment);\n endDate = endOfWeek(date);\n } else if (timePeriod === timeAggregate.MONTH) {\n startDate = addMonths(date, increment);\n startDate = startOfMonth(startDate);\n endDate = endOfMonth(date);\n } else if (timePeriod === timeAggregate.ALLTIME) {\n startDate = new Date();\n endDate = addDays(startDate, 1);\n }\n\n return {startDate, endDate};\n }\n\n static getTargetLegend(args) {\n const {targetUsage, filter, average, label, legendLabels, language, footerNotices} = args;\n let data = {\n low: 0,\n med: 0,\n high: 0,\n percentage_low: 0,\n percentage_med: 0,\n percentage_high: 0,\n };\n if (targetUsage) {\n data = targetUsage;\n }\n numberAbbr.lang = language;\n const abbreviatedAverage = numberAbbr.abbr(average || 0);\n if (footerNotices?.activity?.has('*')) {\n abbreviatedAverage.postfix += '*';\n } else if (footerNotices?.activity?.has('**')) {\n abbreviatedAverage.postfix += '**';\n }\n return {\n average: abbreviatedAverage,\n label,\n keys: [\n {\n value: data.high,\n label: (data.percentage_high > 0 && data.percentage_high < 1) ? '<1' : data.percentage_high || 0,\n description: legendLabels.high,\n filterVal: targetBlocks.HIGH,\n active: (filter === targetBlocks.HIGH),\n ariaLabel: dashboardAriaLabels.high((data.percentage_high > 0 && data.percentage_high < 1) ? '<1' : data.percentage_high || 0),\n },\n {\n value: data.med,\n label: (data.percentage_med > 0 && data.percentage_med < 1) ? '<1' : data.percentage_med || 0,\n description: legendLabels.med,\n filterVal: targetBlocks.MED,\n active: (filter === targetBlocks.MED),\n ariaLabel: dashboardAriaLabels.med((data.percentage_med > 0 && data.percentage_med < 1) ? '<1' : data.percentage_med || 0),\n },\n {\n value: data.low,\n label: (data.percentage_low > 0 && data.percentage_low < 1) ? '<1' : data.percentage_low || 0,\n description: legendLabels.low,\n filterVal: targetBlocks.LOW,\n active: (filter === targetBlocks.LOW),\n ariaLabel: dashboardAriaLabels.inactive((data.percentage_low > 0 && data.percentage_low < 1) ? '<1' : data.percentage_low || 0),\n },\n ],\n };\n }\n\n static getHasUnlicensedOrRemovedStudents($filteredStudents) {\n let $hasUnlicensedOrRemovedStudents = false;\n for (let i = 0; i < $filteredStudents.length; i++) {\n const student = $filteredStudents[i];\n const invalidProductStatuses = [productStatuses.EXPIRED, productStatuses.UNASSIGNED];\n if (\n student.link_status !== statusConst.ACTIVE ||\n invalidProductStatuses.includes(student.product_status)\n ) {\n $hasUnlicensedOrRemovedStudents = true;\n break;\n }\n }\n return $hasUnlicensedOrRemovedStudents;\n }\n\n static getFormattedUsage(usage, keys = ['percentage45', 'percentage31', 'percentage16', 'percentage1']) {\n const $ret = [];\n if (!usage || Object.keys(usage).length === 0) {\n return $ret;\n }\n\n usage.map((item) => {\n $ret.push({\n stats: [\n {\n label: this.generatePercentageLabel(item[keys[0]] || 0),\n styles: {\n backgroundColor: colorMap.minutes45,\n },\n },\n {\n label: this.generatePercentageLabel(item[keys[1]] || 0),\n styles: {\n backgroundColor: colorMap.minutes31,\n },\n },\n {\n label: this.generatePercentageLabel(item[keys[2]] || 0),\n styles: {\n backgroundColor: colorMap.minutes16,\n },\n },\n {\n label: this.generatePercentageLabel(item[keys[3]] || 0),\n styles: {\n backgroundColor: colorMap.minutes1,\n },\n }\n ],\n students: item.total_active_students,\n hasUnlicensedOrRemovedStudents: item.has_removed_students || item.has_unlicensed_students,\n groupId: item.group_id,\n groupName: item.group_name,\n groupPath: item.group_path,\n removedInWeek: item.removed_in_week,\n });\n });\n return $ret;\n }\n\n static getFormattedActivityStatus(obj, addStruggling = true) {\n const {usage, colors} = obj;\n const $ret = [];\n if (!usage) {\n return $ret;\n }\n\n usage.map((item) => {\n const stats = [\n {\n label: this.generatePercentageLabel(item.supplemental_stats?.percentage_in_progress),\n styles: {\n backgroundColor: colors[0],\n },\n },\n {\n label: this.generatePercentageLabel(item.supplemental_stats?.percentage_struggling),\n styles: {\n backgroundColor: colors[1],\n },\n },\n {\n label: this.generatePercentageLabel(item.supplemental_stats?.percentage_inactive),\n styles: {\n backgroundColor: colors[2],\n },\n }\n ];\n $ret.push({\n stats,\n students: item.total_students,\n hasUnlicensedOrRemovedStudents: item.has_removed_students || item.has_unlicensed_students,\n groupId: item.group_id,\n groupName: item.group_name,\n groupPath: item.group_path,\n removedInWeek: item.removed_in_week,\n });\n });\n return $ret;\n }\n static getPercentages(_percentages, _values) {\n const percentages = {};\n\n for (const [key, percentage] of Object.entries(_percentages)) {\n const value = _values[key] || 0;\n let label = (value > 0 && percentage === 0) ? '<1' : percentage;\n // This case handles the legacy mma/mra products\n if (percentage > 0 && percentage < 1) {\n label = '<1';\n }\n\n percentages[key] = {\n percentage,\n label,\n };\n }\n\n return percentages;\n }\n\n static getOnTrackPercentage(_percentages, total) {\n const percentages = {};\n for (const [key, number] of Object.entries(_percentages)) {\n percentages[key] = this.getRoundedPercentage(number, total);\n }\n return percentages;\n }\n\n\n static getFormattedActivity(obj) {\n const {usage, colors} = obj;\n const $ret = [];\n if (!usage || Object.keys(usage).length === 0) {\n return $ret;\n }\n\n usage.map((item) => {\n $ret.push({\n stats: [\n {\n label: this.generatePercentageLabel(item.supplemental_stats?.percentage_high || 0),\n styles: {\n backgroundColor: colors[0],\n },\n },\n {\n label: this.generatePercentageLabel(item.supplemental_stats?.percentage_med || 0),\n styles: {\n backgroundColor: colors[1],\n },\n },\n {\n label: this.generatePercentageLabel(item.supplemental_stats?.percentage_low || 0),\n styles: {\n backgroundColor: colors[2],\n },\n }\n ],\n students: item.total_students,\n hasUnlicensedOrRemovedStudents: item.has_removed_students || item.has_unlicensed_students,\n groupId: item.group_id,\n groupName: item.group_name,\n groupPath: item.group_path,\n removedInWeek: item.removed_in_week\n });\n });\n return $ret;\n }\n\n static getFooterNoticesForStats(stats) {\n const footerNotices = new Set();\n for (const stat of stats) {\n if (stat.removed_in_week) {\n footerNotices.add('**');\n } else if (stat.has_removed_students || stat.has_unlicensed_students) {\n footerNotices.add('*');\n }\n\n // don't have to check rest if all notices are true already\n if (footerNotices.size === 2) {\n break;\n }\n }\n return footerNotices;\n }\n\n static getStudentActionItems(\n totalTimeThisWeek,\n weeklyTimeTargetSeconds,\n studentName,\n recommendedSkills\n ) {\n let $actionItems = [];\n let hasStruggling = false;\n if (recommendedSkills.length > 0) {\n hasStruggling = recommendedSkills.some(skill => skill.status === nodeStatuses.INTERVENTION);\n }\n\n if (hasStruggling) {\n $actionItems.push({\n icon: `\"\"`,\n count: '',\n message: dashboardLabels.getActionItemWeeklyStruggling(studentName),\n clickable: false\n });\n }\n const $timeSpentActionItems = DashboardUtils.timeSpentActionItem(totalTimeThisWeek, weeklyTimeTargetSeconds, studentName);\n $actionItems = $actionItems.concat($timeSpentActionItems);\n\n return {\n $actionItems\n };\n }\n\n static getParentStudentActionItems(\n totalTimeThisWeek,\n weeklyTimeTargetSeconds,\n studentName,\n hasStruggling\n ) {\n let $actionItems = [];\n if (hasStruggling) {\n $actionItems.push({\n icon: `\"\"`,\n count: '',\n message: dashboardLabels.getActionItemWeeklyStruggling(studentName),\n clickable: false\n });\n }\n\n const $timeSpentActionItems = DashboardUtils.timeSpentActionItem(totalTimeThisWeek, weeklyTimeTargetSeconds, studentName);\n $actionItems = $actionItems.concat($timeSpentActionItems);\n\n return {$actionItems};\n }\n\n static timeSpentActionItem(\n totalTimeThisWeek,\n weeklyTimeTargetSeconds,\n studentName\n ) {\n const actionItems = [];\n if (totalTimeThisWeek === 0) {\n actionItems.push({\n icon: '',\n count: '',\n message: dashboardLabels.getActionItemWeeklyTargetNotStarted(studentName),\n clickable: false\n });\n } else if (totalTimeThisWeek > weeklyTimeTargetSeconds) {\n actionItems.push({\n icon: '',\n title: '',\n message: dashboardLabels.getActionItemWeeklyTargetMet(studentName, weeklyTimeTargetSeconds / 60),\n clickable: false\n });\n } else {\n actionItems.push({\n icon: '',\n title: '',\n message: dashboardLabels.getActionItemWeeklyTargetProgressing(studentName, weeklyTimeTargetSeconds / 60),\n clickable: false\n });\n }\n\n return actionItems;\n }\n\n static getRowsForFilters(\n progressFiltersState,\n nodes,\n conceptsMastered,\n studentsCount\n ) {\n const rowInfo = {};\n if (nodes.length === 0) {\n return rowInfo;\n }\n\n nodes.map((nodeInfo) => {\n const statusCounts = conceptsMastered?.[nodeInfo.id] ||\n {\n mastery_achieved: 0,\n prior_knowledge: 0,\n in_progress: 0,\n intervention: 0\n };\n\n const addNodeToList = DashboardUtils.shouldAddNodeToList(\n nodeInfo,\n progressFiltersState,\n statusCounts,\n );\n if (addNodeToList) {\n const total = Object.values(statusCounts).reduce((a, b) => a + b, 0);\n let formattedTotal = 0;\n if (studentsCount > 0) {\n formattedTotal = Math.floor(total / studentsCount * 100);\n }\n rowInfo[nodeInfo.id] = {\n nodeId: nodeInfo.id,\n objective: nodeInfo?.game_description || nodeInfo?.name || '',\n total,\n ...statusCounts,\n total_formatted: unsafeHTML(total + ' (' + formattedTotal + '%) ')\n };\n }\n });\n return rowInfo;\n }\n\n static shouldAddNodeToList(\n skill,\n progressFilterState,\n statusCounts\n ) {\n if (!skill || Object.keys(skill).length === 0) {\n return false;\n }\n\n let addToList = false;\n const statusFilterMatches = (!progressFilterState.filters.statusFilter) ? true : statusCounts?.[progressFilterState.filters.statusFilter] > 0;\n\n if (statusFilterMatches) {\n addToList = true;\n }\n return addToList;\n }\n\n static formatRecommendedActivityCounts(recommendedActivity, studentInfo) {\n const reformattedLesson = {\n total: 0,\n mastery_achieved: [],\n prior_knowledge: [],\n in_progress: [],\n struggling: [],\n inactive: [],\n };\n if (Object.keys(studentInfo).length === 0) {\n return reformattedLesson;\n }\n recommendedActivity.mastery_achieved?.map((studentId) => {\n reformattedLesson.mastery_achieved.push(studentInfo[studentId]);\n reformattedLesson.total += 1;\n });\n recommendedActivity.prior_knowledge?.map((studentId) => {\n reformattedLesson.prior_knowledge.push(studentInfo[studentId]);\n reformattedLesson.total += 1;\n });\n recommendedActivity.in_progress.map((studentId) => {\n reformattedLesson.in_progress.push(studentInfo[studentId]);\n reformattedLesson.total += 1;\n });\n recommendedActivity.struggling.map((studentId) => {\n reformattedLesson.struggling.push(studentInfo[studentId]);\n reformattedLesson.total += 1;\n });\n recommendedActivity.inactive.map((studentId) => {\n reformattedLesson.inactive.push(studentInfo[studentId]);\n reformattedLesson.total += 1;\n });\n return reformattedLesson;\n }\n\n static getLabelsStandardsCategories(nodes) {\n const standardLabels = new Set();\n const standardCategories = {};\n\n for (const node in nodes) {\n for (const standard in nodes[node].external_standards) {\n const standardInfo = nodes[node].external_standards[standard];\n standardLabels.add(standardInfo.standard_set_label);\n\n if (typeof standardCategories[standardInfo.standard_set_label] === 'undefined') {\n standardCategories[standardInfo.standard_set_label] = [];\n }\n\n if (typeof standardCategories[standardInfo.standard_set_label][standardInfo.parent_taxonomy.type] === 'undefined') {\n standardCategories[standardInfo.standard_set_label][standardInfo.parent_taxonomy.type] = new Set();\n }\n standardInfo.parent_taxonomy.names.map((name) => {\n standardCategories[standardInfo.standard_set_label][standardInfo.parent_taxonomy.type].add(name);\n });\n }\n }\n\n return {\n standardLabels: [...standardLabels],\n standardCategories\n };\n }\n\n static getSortedStudents(students, order) {\n if (!students || !students.length) {\n return [];\n }\n return (order === 'asc') ?\n students.sort((a, b) => a.count - b.count) :\n students.sort((a, b) => b.count - a.count);\n }\n\n static roundTimeSpent(timeSpent) {\n return (timeSpent < 60) ? Math.ceil(timeSpent / 60) : Math.floor(timeSpent / 60);\n }\n\n static getStudentForUsage(key, student) {\n const count = this.roundTimeSpent(student.time);\n return {\n ...student,\n count,\n label: dashboardLabels.MINUTES,\n status: key,\n };\n }\n\n static getStudentForActivityStatus(status, student, studentActivity) {\n let count = 0;\n if (status === masteryActivityBlocks.STRUGGLING) {\n count = studentActivity[nodeStatuses.INTERVENTION];\n } else if (status === masteryActivityBlocks.IN_PROGRESS) {\n count = studentActivity[nodeStatuses.IN_PROGRESS] +\n studentActivity[nodeStatuses.PRIOR_KNOWLEDGE] +\n studentActivity[nodeStatuses.INTERVENTION] +\n studentActivity[nodeStatuses.MASTERY_ACHIEVED];\n }\n return {\n ...student,\n count,\n status,\n label: dashboardLabels.MINUTES,\n };\n }\n\n static getMasteryActivityChartData(args) {\n const {activityStatuses, filter} = args;\n const data = (typeof activityStatuses === 'undefined' || Object.keys(activityStatuses).length === 0) ?\n [0, 0, 0] :\n [\n activityStatuses.in_progress,\n activityStatuses.struggling,\n activityStatuses.inactive,\n ];\n const doughnutValues = [\n masteryActivityBlocks.IN_PROGRESS,\n masteryActivityBlocks.STRUGGLING,\n masteryActivityBlocks.INACTIVE\n ];\n const colors = DashboardUtils.mmaActivityMapArray;\n const ariaLabels = [\n dashboardAriaLabels.PROGRESSING,\n dashboardAriaLabels.STRUGGLING,\n dashboardAriaLabels.INACTIVE_TARGET,\n ];\n\n return Object.assign({}, DashboardUtils.USAGE_CHART_DATA, {\n datasets: [\n {\n data,\n backgroundColor: colors,\n hoverBackgroundColor: colors,\n borderColor: colors,\n borderWidth: DashboardUtils.getBorderWidths(filter, doughnutValues),\n borderAlign: DashboardUtils.getBorderAligns(filter, doughnutValues),\n ariaLabel: dashboardAriaLabels.STUDENTS,\n squareAriaLabels: args.squareAriaLabels,\n }\n ],\n ariaLabels,\n });\n }\n\n static getWeeklyTargetGoal = (product) => {\n switch (product) {\n case products.MATH_ACADEMY:\n case products.MY_MATH_ACADEMY:\n return weeklyMinuteTargetGoals.MATH_ACADEMY;\n case products.READING_MASTERY:\n case products.MY_READING_ACADEMY:\n return weeklyMinuteTargetGoals.READING_MASTERY;\n case products.ABCMOUSE:\n return weeklyMinuteTargetGoals.ABCMOUSE;\n case products.ABCMOUSE_ENGLISH:\n return weeklyMinuteTargetGoals.ABCMOUSE_ENGLISH;\n }\n };\n\n static skillsSearchCall(product, fields = ['id', 'name'])\n {\n const state = storeInstance.getState();\n const externalStandards = state[sdoNs.SESSION].settings?.external_standards || [];\n let aggs = ['grades'];\n if (externalStandards.length) {\n aggs = [\n 'external_standards.set_id',\n 'external_standards.grade',\n 'external_standards.lo_parent_type',\n 'external_standards.lo_parent_name'\n ];\n }\n return ApiService.skillsSearch(\n this.buildSearchSkillsFilters(product),\n this.buildSkillsSearch(),\n {\n fields,\n aggs\n },\n {limit: 500}\n );\n }\n\n static buildSkillsSearch()\n {\n const progressFiltersState = storeInstance.getState()[sdoNs.PROGRESS_FILTERS_VIEW];\n let searchFilter = null;\n if (progressFiltersState.$hasFilter) {\n if (progressFiltersState.filters.nameFilter !== '') {\n searchFilter = {\n 'field': '*',\n 'query': progressFiltersState.filters.nameFilter\n };\n }\n }\n return searchFilter;\n }\n\n static buildSearchSkillsFilters(product) {\n const state = storeInstance.getState();\n const progressFiltersState = state[sdoNs.PROGRESS_FILTERS_VIEW];\n let filters = {'product': [product]};\n if (progressFiltersState.$hasFilter) {\n if (progressFiltersState.filters.standardSetFilter) {\n filters = {...filters, 'external_standards.set_id': [progressFiltersState.filters.standardSetFilter]};\n }\n\n if (progressFiltersState.filters.gradeFilter) {\n const externalStandards = state[sdoNs.SESSION].settings?.external_standards || [];\n if (externalStandards.length) {\n filters = {...filters, 'external_standards.grade': [progressFiltersState.filters.gradeFilter]};\n } else {\n filters = {...filters, 'grades': [progressFiltersState.filters.gradeFilter]};\n }\n }\n\n if (progressFiltersState.filters.standardCategoryFilter) {\n filters = {...filters, 'external_standards.lo_parent_name': [progressFiltersState.filters.standardCategoryFilter]};\n }\n }\n return filters;\n }\n static generatePercentageLabel(percentage, val = 0) {\n if ((percentage > 0 && percentage < 1) || (percentage === 0 && val > 0)) {\n return '<1%';\n }\n return percentage + '%';\n }\n static getPercentage(numerator, denominator, convertLessThanOne = true) {\n let percentage = 0;\n if (denominator > 0) {\n percentage = numerator * 100 / denominator;\n }\n\n if (convertLessThanOne === true && percentage > 0 && percentage < 1) {\n return '<1';\n }\n\n return percentage;\n }\n static getRoundedPercentage(numerator, denominator, convertLessThanOne = true) {\n const percentage = this.getPercentage(numerator, denominator, convertLessThanOne);\n if (typeof percentage === 'string') {\n return percentage;\n }\n\n return Math.round(percentage);\n }\n\n static getRangeLabels(ranges) {\n const labels = {};\n const rangeKeys = Object.keys(ranges);\n\n let i = 0;\n for (const [key, sec] of Object.entries(ranges)) {\n if (typeof rangeKeys[i+1] === 'undefined') {\n labels[key] = '≥' + Math.floor(sec / 60).toString() + ' mins';\n break;\n }\n labels[key] = Math.floor(sec / 60).toString() + '-';\n labels[key] += Math.floor(((ranges[rangeKeys[i+1]]) / 60) - 1).toString() + ' mins';\n if (labels[key].charAt(0) === '0') {\n labels[key] = \">\" + labels[key];\n }\n i++;\n }\n return labels;\n }\n static getTimeSpentInMinutes(timeSpentSeconds) {\n if (timeSpentSeconds < 60) {\n return Math.ceil(timeSpentSeconds/60);\n }\n return Math.floor(timeSpentSeconds/60);\n }\n static print(context, isLandscape) {\n const printdiv = document.getElementById('printdiv');\n const printcontent = document.getElementById('printcontent');\n const cz = document.getElementById('cz_success_center_launcher_frame');\n const adaButton = document.getElementById('ada-entry');\n const zendesk = document.getElementById('launcher');\n const main = document.getElementById('main');\n cz?.classList?.add('d-print-none');\n adaButton?.classList?.add('d-print-none');\n zendesk?.classList?.add('d-print-none');\n main?.classList?.add('d-print-none');\n printdiv.classList.remove('d-none');\n if (isLandscape) {\n printdiv.classList.add('landscape');\n document.body.classList.add('page-landscape');\n } else {\n printdiv.classList.add('portrait');\n document.body.classList.add('page-portrait');\n }\n window.target = document.createElement('div');\n context.before(window.target);\n printcontent.append(context);\n window.print();\n printdiv.classList.add('d-none');\n printdiv.classList.remove('portrait', 'landscape');\n document.body.classList.remove('page-portrait', 'page-landscape');\n window.target.before(printcontent.childNodes[0]);\n }\n\n static printWithHeader(context, isLandscape, header) {\n const printdiv = document.getElementById('print-with-header');\n const printcontent = printdiv.shadowRoot.getElementById('print-with-header-content');\n const cz = document.getElementById('cz_success_center_launcher_frame');\n const zendesk = document.getElementById('launcher');\n const main = document.getElementById('main');\n cz?.classList?.add('d-print-none');\n zendesk?.classList?.add('d-print-none');\n main?.classList?.add('d-print-none');\n printdiv.classList.remove('d-none');\n if (isLandscape) {\n printdiv.classList.add('landscape');\n document.body.classList.add('page-landscape');\n } else {\n printdiv.classList.add('portrait');\n document.body.classList.add('page-portrait');\n }\n window.target = document.createElement('div');\n context.before(window.target);\n printcontent.append(context);\n window.print();\n printdiv.classList.add('d-none');\n printdiv.classList.remove('portrait', 'landscape');\n document.body.classList.remove('page-portrait', 'page-landscape');\n window.target.before(printcontent.childNodes[0]);\n }\n}\n\nclass DateHelper {\n static getStartEndTimestampsForWeek(startDate, endDate, weeksToMove) {\n const dateDiff = differenceInWeeks(endDate, startDate);\n const newStartDate = addWeeks(startDate, weeksToMove);\n const newEndDate = addWeeks(newStartDate, dateDiff);\n\n return {\n start: newStartDate.getTime() / 1000,\n end: newEndDate.getTime() / 1000\n };\n }\n}\n\nclass ChartJSHelpers {\n static studentActivityChartOptions = {\n responsive: true,\n maintainAspectRatio: false,\n aspectRatio: 6,\n datasets: {\n bar: {\n barPercentage: .5\n }\n },\n scales: {\n xAxis: {\n stacked: true,\n offset: true,\n ticks: {\n color: '#000',\n font: {\n family: 'aofl-sans',\n size: 14,\n weight: 600,\n },\n },\n grid: {\n display: false,\n },\n },\n yAxis: {\n position: 'left',\n min: 0,\n max: 100,\n stacked: true,\n grid: {\n color: '#ddd',\n display: true,\n drawBorder: false,\n tickLength: 20,\n },\n ticks: {\n color: '#fff',\n padding: 6,\n }\n },\n },\n animation: false,\n plugins: {\n legend: false,\n tooltip: false,\n datalabels: {\n anchor: 'center',\n align(context) {\n const index = context.dataIndex;\n const value = context.dataset.data[index];\n const hasData = context.dataset.hasData[index];\n let displayZero = (context.datasetIndex === 0);\n\n if (hasData) {\n displayZero = value > 0;\n }\n return displayZero ? 'top' : 'center';\n },\n color: 'black',\n font: {\n weight: 'bold'\n },\n display(context) {\n const index = context.dataIndex;\n const value = context.dataset.data[index];\n const hasData = context.dataset.hasData[index];\n let display = (context.datasetIndex === 0);\n\n if (hasData) {\n display = value > 0;\n }\n return display;\n },\n formatter(value, context) {\n return value + '%';\n }\n },\n aofl_accessibility: {\n formatter: (item) => {\n const label = item.key;\n return `${label}: ${item.value}`;\n }\n }\n }\n };\n\n static rosteredActiveChartOptions = {\n responsive: true,\n aspectRatio: 6,\n maintainAspectRatio: false,\n datasets: {\n bar: {\n barPercentage: .5\n }\n },\n animation: false,\n scales: {\n xAxis: {\n offset: true,\n grid: {\n display: false,\n },\n ticks: {\n color: '#000',\n font: {\n family: 'aofl-sans',\n size: 14,\n weight: 600,\n },\n }\n },\n yAxis: {\n position: 'left',\n min: 0,\n max: 100,\n grace: '10%',\n grid: {\n color: '#ddd',\n display: true,\n drawBorder: false,\n tickLength: 20,\n },\n ticks: {\n color: '#000',\n font: {\n family: 'aofl-sans',\n size: 14,\n weight: '700',\n },\n padding: 6,\n callback(value, index, values) {\n return value + '%';\n }\n }\n },\n },\n plugins: {\n legend: false,\n tooltip: false,\n datalabels: {\n anchor: 'end',\n align: 'end',\n color: 'black',\n font: {\n weight: 'bold'\n },\n display: true,\n formatter(value, context) {\n return value + '%';\n }\n },\n aofl_accessibility: {\n formatter: (item) => {\n const label = item.key;\n return `${label}: ${item.value}`;\n }\n }\n }\n };\n}\n\nexport {\n DashboardUtils,\n DateHelper,\n ChartJSHelpers\n};\n","import differenceInDays from '../differenceInDays/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name differenceInWeeks\n * @category Week Helpers\n * @summary Get the number of full weeks between the given dates.\n *\n * @description\n * Get the number of full weeks between the given dates.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} dateLeft - the later date\n * @param {Date|Number} dateRight - the earlier date\n * @returns {Number} the number of full weeks\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // How many full weeks are between 5 July 2014 and 20 July 2014?\n * var result = differenceInWeeks(new Date(2014, 6, 20), new Date(2014, 6, 5))\n * //=> 2\n */\n\nexport default function differenceInWeeks(dirtyDateLeft, dirtyDateRight) {\n requiredArgs(2, arguments);\n var diff = differenceInDays(dirtyDateLeft, dirtyDateRight) / 7;\n return diff > 0 ? Math.floor(diff) : Math.ceil(diff);\n}","import {repeat} from 'lit-html/directives/repeat';\nimport {until} from 'lit-html/directives/until';\n\nconst standardsColors = [\n '#e2f2ff',\n '#ffdec2',\n '#d2ffd3',\n '#eaddff',\n '#fff0a0'\n];\n\nexport default (ctx, html) => {\n if (!ctx['external-standards']) {\n return ``;\n }\n\n return html`\n ${repeat(ctx['external-standards'], (externalStandard) => externalStandard, (externalStandard, index) => html`\n
\n
\n ${until(ctx._r(ctx.__('', '%r1% %r2%:'), externalStandard.standard_set_label, externalStandard.parent_taxonomy?.type))}\n ${externalStandard.parent_taxonomy?.names?.join(', ')}\n
\n
\n ${repeat(externalStandard.standard_codes, (standardCode) => standardCode, (standardCode) => html`\n
${standardCode?.name}
\n `)}\n
\n
\n `)}\n`;\n};\n","import styles from './template.css';\nimport template from './template';\nimport {AoflElement, customElement, property} from '@aofl/element';\nimport {i18nMixin} from '@aofl/i18n-mixin';\nimport translations from '@modules/i18n';\n\n/**\n * @summary ExternalStandards\n * @extends {AoflElement}\n */\n@customElement('external-standards')\nclass ExternalStandards extends i18nMixin(AoflElement) {\n /**\n * Creates an instance of ExternalStandards.\n */\n constructor() {\n super();\n this.translations = translations;\n }\n /**\n * @readonly\n */\n static is = 'external-standards';\n\n @property({type: Array})\n ['external-standards'] = [];\n\n @property({type: String})\n ['row-classname'] = '';\n\n @property({type: Array})\n styles = [];\n /**\n * @return {Object}\n */\n render() {\n return super.render({\n default: {template, styles: [styles, this.styles]}\n });\n }\n}\n\nexport default ExternalStandards;\n","import {until} from 'lit-html/directives/until';\nimport {classMap} from 'lit-html/directives/class-map';\nimport {repeat} from 'lit-html/directives/repeat';\nimport '@modules/external-standards';\nimport {generalLabels, gradesLabels} from '@modules/i18n-labels';\n\nconst cdn = (path) => {\n if (!path) {\n return '';\n }\n return 'https://educate.aofl.com/cdn' + path;\n};\n\n// it's possible that not all the fields will be set on the skill,\n// this is just to safeguard in case that happens\nconst getSection = (section, ctx, html) => {\n const sectionTitles = {\n game_description: ctx.__('', 'Game Description'),\n why_important: ctx.__('', `Why It's Important`),\n };\n\n if (ctx.skill[section]) {\n return html`\n
${until(sectionTitles[section])}
\n

${until(ctx._r('%r1%', ctx.skill[section]))}

\n `;\n }\n};\n\nconst gradeList = (grades) => {\n const list = [];\n for (let i = 0; i < grades.length; i++) {\n list.push(until(gradesLabels.dynamicGrade(grades[i])));\n if (i < grades.length - 1) {\n list.push(', ');\n }\n }\n return list;\n};\n\nconst getGradeSection = (ctx, html) => {\n if (ctx.skill.grades?.length) {\n return html`
\n
${until(gradesLabels.GRADE)}
\n
${gradeList(ctx.skill.grades)}
\n
`;\n }\n};\n\n// eslint-disable-next-line lit/no-invalid-html\nexport default (ctx, html) => {\n if (!ctx.skill || Object.keys(ctx.skill).length === 0 || !ctx.skill?.name) {\n return html``;\n }\n return html`\n ${ctx.forModal ? html`\n
\n ${ctx.skill.name}.\n
\n ` :\n ``}\n \n ${getGradeSection(ctx, html)}\n\n ${ctx.skill?.video ?\n html`\n
\n \n \n \n
\n ` : ``\n }\n ${getSection('game_description', ctx, html)}\n ${getSection('why_important', ctx, html)}\n ${ctx.skill.recommended_activities?.length > 0 ? html`\n \n \n
${until(ctx.__('', 'Making Data Actionable with Recommended Activities'))}
\n \n ` : ''}\n ${ctx.skill.printable_worksheets?.length > 0 ? html`\n
${until(ctx.__('', 'Printable Worksheets'))}
\n ${repeat(ctx.skill.printable_worksheets, (worksheet) => worksheet, (worksheet) => html`\n
\n
\n \n
\n
\n
\n ${worksheet.title} - ${worksheet.subtitle}\n
\n \n
\n
\n `)}\n ` : ''}\n `;\n};\n","class VideosHandler {\n constructor() {\n this.videosMap = {};\n }\n addVideoToMap(payload) {\n this.videosMap[payload.id] = payload.video;\n }\n\n removeVideoFromMap(payload) {\n if (typeof this.videosMap[payload.id] !== 'undefined') {\n delete this.videosMap[payload.id];\n }\n }\n pauseAllVideosExcept(videoId) {\n for (let [id, video] of Object.entries(this.videosMap)) {\n if (id.toString() !== videoId.toString()) {\n video.pause();\n }\n }\n }\n}\n\nconst videosHandlerInstance = new VideosHandler();\n\nexport {\n videosHandlerInstance\n}\n","import styles from './template.css';\nimport template from './template';\nimport {property} from 'lit-element';\nimport {AoflElement, customElement} from '@aofl/element';\nimport {i18nMixin} from '@aofl/i18n-mixin';\nimport translations from '@modules/i18n';\nimport {videosHandlerInstance} from '@modules/videos-handler-instance';\nimport {lessonDetailSections} from '@modules/constants-enumerate';\nimport {query} from 'lit-element';\n\n/**\n * @summary AcademyLessonDetails\n * @extends {AoflElement}\n */\n@customElement('academy-lesson-details')\nclass AcademyLessonDetails extends i18nMixin(AoflElement) {\n /**\n * Creates an instance of AcademyLessonDetails.\n */\n constructor() {\n super();\n this.translations = translations;\n }\n\n @property({type: Object, attribute: false})\n videoWrapper = {\n 'position-relative': true,\n 'd-flex': true,\n 'justify-content-center': true,\n 'overflow-hidden': true,\n 'video-active': false\n }\n\n @property({type: Object})\n skill = {};\n\n @query('video')\n video = null;\n\n @property({type: Boolean})\n forModal = true;\n\n connectedCallback() {\n super.connectedCallback();\n this.videosHandler = videosHandlerInstance;\n if (!this.skill?.video) {\n return;\n }\n setTimeout(() => {\n if (this.skill.video_thumbnail) {\n this.video?.setAttribute('poster', 'https://educate.aofl.com/cdn' + this.skill.video_thumbnail);\n } else {\n this.video?.addEventListener('loadedmetadata', () => {\n this.video.currentTime = 0;\n this.video.pause();\n const canvas = document.createElement('canvas');\n canvas.width = this.video.parentElement.clientWidth;\n canvas.height = this.video.parentElement.clientHeight;\n const context = canvas.getContext('2d');\n context.drawImage(this.video, 0, 0, canvas.width, canvas.height);\n const posterDataUrl = canvas.toDataURL();\n this.video.setAttribute('poster', posterDataUrl);\n });\n }\n });\n }\n\n firstUpdated() {\n this.videosHandler?.addVideoToMap({\n id: this.skill?.id,\n video: this.video\n });\n this.video?.addEventListener('play', () => {\n this.videosHandler.pauseAllVideosExcept(this.skill?.id);\n });\n this.video?.addEventListener('ended', () => {\n this.setVideoImageActive(false);\n });\n }\n\n toggleVideo() {\n this.setVideoImageActive(true);\n this.video.paused ? this.video.play() : this.video.pause();\n }\n\n viewWorksheet(worksheetDetails) {\n this.dispatchEvent(new CustomEvent('on-viewchange', {\n detail: {\n view: lessonDetailSections.PDF,\n details: worksheetDetails\n },\n composed: true,\n bubbles: true\n }));\n }\n\n setVideoImageActive(isActive) {\n this.videoWrapper = {\n ...this.videoWrapper,\n 'video-active': isActive\n };\n }\n\n viewRecommendedActivities() {\n this.dispatchEvent(new CustomEvent('on-viewchange', {\n detail: {\n view: lessonDetailSections.RECOMMENDED_ACTIVITY,\n recommendedActivities: this.skill.recommended_activities,\n skillName: this.skill.name,\n },\n composed: true,\n bubbles: true\n }));\n }\n disconnectedCallback() {\n super.disconnectedCallback();\n this.videosHandler?.removeVideoFromMap(this.skill?.id);\n if (!this.video) return;\n this.removeEventListener('play', this.video);\n this.removeEventListener('ended', this.video);\n this.removeEventListener('loadedmetadata', this.video);\n }\n\n /**\n * @readonly\n */\n static is = 'academy-lesson-details';\n /**\n * @return {Object}\n */\n render() {\n return super.render({\n default: {template, styles: [styles]}\n });\n }\n}\n\nexport default AcademyLessonDetails;\n","exports = module.exports = require(\"../../../node_modules/css-loader/dist/runtime/api.js\")(false);\n// Imports\nvar getUrl = require(\"../../../node_modules/css-loader/dist/runtime/getUrl.js\");\nvar ___CSS_LOADER_URL___0___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-light.woff2\"));\nvar ___CSS_LOADER_URL___1___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-lightit.woff2\"));\nvar ___CSS_LOADER_URL___2___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-reg.woff2\"));\nvar ___CSS_LOADER_URL___3___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-regit.woff2\"));\nvar ___CSS_LOADER_URL___4___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-sbold.woff2\"));\nvar ___CSS_LOADER_URL___5___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-sboldit.woff2\"));\nvar ___CSS_LOADER_URL___6___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-bold.woff2\"));\nvar ___CSS_LOADER_URL___7___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-boldit.woff2\"));\nvar ___CSS_LOADER_URL___8___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-Light.woff2\"));\nvar ___CSS_LOADER_URL___9___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-LightIt.woff2\"));\nvar ___CSS_LOADER_URL___10___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-Regular.woff2\"));\nvar ___CSS_LOADER_URL___11___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-RegularIt.woff2\"));\nvar ___CSS_LOADER_URL___12___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-Semibold.woff2\"));\nvar ___CSS_LOADER_URL___13___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-SemiboldIt.woff2\"));\nvar ___CSS_LOADER_URL___14___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-Bold.woff2\"));\nvar ___CSS_LOADER_URL___15___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-BoldIt.woff2\"));\nvar ___CSS_LOADER_URL___16___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-ExtraBold.woff2\"));\nvar ___CSS_LOADER_URL___17___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-ExtraBoldIt.woff2\"));\nvar ___CSS_LOADER_URL___18___ = getUrl(require(\"../../template/main/fonts/aofl-icons/icomoon.woff2?c6f21u\"));\n// Module\nexports.push([module.id, \"/*! @aofl-component */:root{--blue:#0d6efd;--indigo:#6610f2;--purple:#8b42ca;--pink:#e83e8c;--red:#e50b0a;--orange:#e17a05;--yellow:#ffc107;--green:#3c8104;--teal:#20c997;--cyan:#53c9dc;--white:#fff;--gray:#6b6b6b;--gray-dark:#343a40;--light-green:#b1dd53;--table-border-color:#d8d8d8;--gray-100:#f2f2f2;--gray-200:#d9d9d9;--gray-300:#d8d8d8;--gray-400:#ced4da;--gray-500:#adb5bd;--gray-600:#6c757d;--gray-700:#4a4a4a;--gray-800:#343a40;--gray-900:#212529;--gray-accessibility:#6b6b6b;--primary:#0d6efd;--secondary:#adb5bd;--success:#3c8104;--info:#cfe2ff;--warning:#e17a05;--danger:#d20a09;--light:#f8f9fa;--dark:#000;--breakpoint-xxs:0;--breakpoint-xs:375px;--breakpoint-sm:576px;--breakpoint-md:768px;--breakpoint-lg:992px;--breakpoint-xl:1200px;--font-family-sans-serif:aofl-sans,Arial,Helvetica,sans-serif;--font-family-monospace:SFMono-Regular,Menlo,Monaco,Consolas,\\\"Liberation Mono\\\",\\\"Courier New\\\",monospace;--z-index-dropdown:1000;--z-index-sticky:1020;--z-index-fixed:1030;--z-index-modal-backdrop:1040;--z-index-modal:1050;--z-index-popover:1060;--z-index-tooltip:1070;--header-height:6rem;--content-height:calc(100vh - 6rem);--sidepanel-width:20rem;--purple-color:#641da3;--purple-600:#956abc;--purple-400:#c7afdd;--purple-200:#e0d2ed;--struggling:#f6993b;--below-target:#ffcf00;--in_progress:#1280f5;--prior_knowledge:#edf887;--mastery_achieved:#69d112;--inactive:#d8d8d8}route-view{max-width:1200px}@font-face{font-family:aofl-sans;font-style:normal;font-weight:300;src:url(\" + ___CSS_LOADER_URL___0___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:italic;font-weight:300;src:url(\" + ___CSS_LOADER_URL___1___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:normal;font-weight:400;src:url(\" + ___CSS_LOADER_URL___2___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:italic;font-weight:400;src:url(\" + ___CSS_LOADER_URL___3___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:normal;font-weight:600;src:url(\" + ___CSS_LOADER_URL___4___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:italic;font-weight:600;src:url(\" + ___CSS_LOADER_URL___5___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:normal;font-weight:700;src:url(\" + ___CSS_LOADER_URL___6___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:italic;font-weight:700;src:url(\" + ___CSS_LOADER_URL___7___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:normal;font-weight:300;src:url(\" + ___CSS_LOADER_URL___8___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:italic;font-weight:300;src:url(\" + ___CSS_LOADER_URL___9___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:normal;font-weight:400;src:url(\" + ___CSS_LOADER_URL___10___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:italic;font-weight:400;src:url(\" + ___CSS_LOADER_URL___11___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:normal;font-weight:600;src:url(\" + ___CSS_LOADER_URL___12___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:italic;font-weight:600;src:url(\" + ___CSS_LOADER_URL___13___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:normal;font-weight:700;src:url(\" + ___CSS_LOADER_URL___14___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:italic;font-weight:700;src:url(\" + ___CSS_LOADER_URL___15___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:normal;font-weight:800;src:url(\" + ___CSS_LOADER_URL___16___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:italic;font-weight:800;src:url(\" + ___CSS_LOADER_URL___17___ + \") format(\\\"woff2\\\")}@font-face{font-family:icomoon;src:url(\" + ___CSS_LOADER_URL___18___ + \") format(\\\"woff2\\\");font-weight:400;font-style:normal;font-display:block}[class*=\\\" ai-\\\"],[class^=ai-]{font-family:icomoon!important;speak:never;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*,:after,:before{box-sizing:border-box}html{font-family:sans-serif;line-height:1.15;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:rgba(0,0,0,0)}figcaption,main,nav,section{display:block}[tabindex=\\\"-1\\\"]:focus{outline:0!important}strong{font-weight:bolder}caption{padding-top:.75rem;padding-bottom:.75rem;color:#6c757d;text-align:left;caption-side:bottom}button{border-radius:0}button:focus{outline:1px dotted;outline:5px auto -webkit-focus-ring-color}button,input{margin:0;font-family:inherit;font-size:inherit;line-height:inherit;overflow:visible}button{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]:not(:disabled),[type=reset]:not(:disabled),[type=submit]:not(:disabled),button:not(:disabled){cursor:pointer}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{padding:0;border-style:none}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}input[type=date],input[type=datetime-local],input[type=month],input[type=time]{-webkit-appearance:listbox}legend{display:block;width:100%;max-width:100%;padding:0;margin-bottom:.5rem;font-size:1.5rem;line-height:inherit;color:inherit;white-space:normal}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:none}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}summary{display:list-item;cursor:pointer}template{display:none}[hidden]{display:none!important}*{-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important}html{font-size:62.5%;height:100%}link-to{color:#0d6efd;text-decoration:none;background-color:transparent}link-to:hover{color:rgb(0,86.1,178.5);text-decoration:none;cursor:pointer}route-view{display:none;flex:1}site-header{background-color:#fff;display:none;position:-webkit-sticky;position:sticky;top:0;height:var(--header-height)}#main{display:none;flex:1 auto;max-width:100%;overflow:hidden;flex-direction:column;overflow-y:scroll}.loaded #main,.loaded site-header,body.loaded,route-view.loaded{display:flex}route-view.left-panel-active{padding-left:var(--sidepanel-width)}input[type=checkbox],input[type=radio]{cursor:pointer}button,button:active{outline:none}[tabindex=\\\"0\\\"]:focus-visible,aofl-list-option:focus-visible,button[type=button]:focus-visible,collapse-button:focus-visible{outline:1px solid #e50b0a;border:1px solid #e50b0a}@keyframes progress-bar-stripes{0%{background-position:1.6rem 0}to{background-position:0 0}}.modal-container{background-color:rgba(0,0,0,.2);position:fixed;top:0;bottom:0;right:0;left:0;z-index:var(--z-index-modal)}.modal-container :first-child{overflow:auto}.modal{position:relative;display:block;height:100vh}.modal-dialog-centered.modal-dialog-scrollable{height:auto;max-height:calc(100% - 2.8rem);min-height:auto}.modal-body,.modal-content,.modal-footer,.modal-header{border:none}.modal-header{font-size:2rem;padding:2.4rem}.modal-body{padding:0 2.4rem 4.8rem}.colored-header{color:#fff}.modal-body p{text-align:left}.colored-header-primary{background-color:#0d6efd}.colored-header-secondary{background-color:#adb5bd}.colored-header-success{background-color:#3c8104}.colored-header-info{background-color:#cfe2ff}.colored-header-warning{background-color:#e17a05}.colored-header-danger{background-color:#d20a09}.colored-header-light{background-color:#f8f9fa}.colored-header-dark{background-color:#000}@keyframes spinner-border{to{transform:rotate(1turn)}}@keyframes spinner-grow{0%{transform:scale(0)}50%{opacity:1}}[hidden]{visibility:hidden!important;height:0!important;width:0!important;min-height:unset!important}@media print{*,:after,:before{text-shadow:none!important;box-shadow:none!important}@page{size:a3}}@media print{main::-webkit-scrollbar{display:none}main{-ms-overflow-style:none;scrollbar-width:none}}@page{size:A4;margin:20mm 16mm 20mm 16mm}:host{display:inline-block}\", \"\"]);\n","exports = module.exports = require(\"../../../node_modules/css-loader/dist/runtime/api.js\")(false);\n// Imports\nvar getUrl = require(\"../../../node_modules/css-loader/dist/runtime/getUrl.js\");\nvar ___CSS_LOADER_URL___0___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-light.woff2\"));\nvar ___CSS_LOADER_URL___1___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-lightit.woff2\"));\nvar ___CSS_LOADER_URL___2___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-reg.woff2\"));\nvar ___CSS_LOADER_URL___3___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-regit.woff2\"));\nvar ___CSS_LOADER_URL___4___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-sbold.woff2\"));\nvar ___CSS_LOADER_URL___5___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-sboldit.woff2\"));\nvar ___CSS_LOADER_URL___6___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-bold.woff2\"));\nvar ___CSS_LOADER_URL___7___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-boldit.woff2\"));\nvar ___CSS_LOADER_URL___8___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-Light.woff2\"));\nvar ___CSS_LOADER_URL___9___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-LightIt.woff2\"));\nvar ___CSS_LOADER_URL___10___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-Regular.woff2\"));\nvar ___CSS_LOADER_URL___11___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-RegularIt.woff2\"));\nvar ___CSS_LOADER_URL___12___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-Semibold.woff2\"));\nvar ___CSS_LOADER_URL___13___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-SemiboldIt.woff2\"));\nvar ___CSS_LOADER_URL___14___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-Bold.woff2\"));\nvar ___CSS_LOADER_URL___15___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-BoldIt.woff2\"));\nvar ___CSS_LOADER_URL___16___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-ExtraBold.woff2\"));\nvar ___CSS_LOADER_URL___17___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-ExtraBoldIt.woff2\"));\nvar ___CSS_LOADER_URL___18___ = getUrl(require(\"../../template/main/fonts/aofl-icons/icomoon.woff2?c6f21u\"));\n// Module\nexports.push([module.id, \"/*! @aofl-component */:root{--blue:#0d6efd;--indigo:#6610f2;--purple:#8b42ca;--pink:#e83e8c;--red:#e50b0a;--orange:#e17a05;--yellow:#ffc107;--green:#3c8104;--teal:#20c997;--cyan:#53c9dc;--white:#fff;--gray:#6b6b6b;--gray-dark:#343a40;--light-green:#b1dd53;--table-border-color:#d8d8d8;--gray-100:#f2f2f2;--gray-200:#d9d9d9;--gray-300:#d8d8d8;--gray-400:#ced4da;--gray-500:#adb5bd;--gray-600:#6c757d;--gray-700:#4a4a4a;--gray-800:#343a40;--gray-900:#212529;--gray-accessibility:#6b6b6b;--primary:#0d6efd;--secondary:#adb5bd;--success:#3c8104;--info:#cfe2ff;--warning:#e17a05;--danger:#d20a09;--light:#f8f9fa;--dark:#000;--breakpoint-xxs:0;--breakpoint-xs:375px;--breakpoint-sm:576px;--breakpoint-md:768px;--breakpoint-lg:992px;--breakpoint-xl:1200px;--font-family-sans-serif:aofl-sans,Arial,Helvetica,sans-serif;--font-family-monospace:SFMono-Regular,Menlo,Monaco,Consolas,\\\"Liberation Mono\\\",\\\"Courier New\\\",monospace;--z-index-dropdown:1000;--z-index-sticky:1020;--z-index-fixed:1030;--z-index-modal-backdrop:1040;--z-index-modal:1050;--z-index-popover:1060;--z-index-tooltip:1070;--header-height:6rem;--content-height:calc(100vh - 6rem);--sidepanel-width:20rem;--purple-color:#641da3;--purple-600:#956abc;--purple-400:#c7afdd;--purple-200:#e0d2ed;--struggling:#f6993b;--below-target:#ffcf00;--in_progress:#1280f5;--prior_knowledge:#edf887;--mastery_achieved:#69d112;--inactive:#d8d8d8}route-view{max-width:1200px}@font-face{font-family:aofl-sans;font-style:normal;font-weight:300;src:url(\" + ___CSS_LOADER_URL___0___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:italic;font-weight:300;src:url(\" + ___CSS_LOADER_URL___1___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:normal;font-weight:400;src:url(\" + ___CSS_LOADER_URL___2___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:italic;font-weight:400;src:url(\" + ___CSS_LOADER_URL___3___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:normal;font-weight:600;src:url(\" + ___CSS_LOADER_URL___4___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:italic;font-weight:600;src:url(\" + ___CSS_LOADER_URL___5___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:normal;font-weight:700;src:url(\" + ___CSS_LOADER_URL___6___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:italic;font-weight:700;src:url(\" + ___CSS_LOADER_URL___7___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:normal;font-weight:300;src:url(\" + ___CSS_LOADER_URL___8___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:italic;font-weight:300;src:url(\" + ___CSS_LOADER_URL___9___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:normal;font-weight:400;src:url(\" + ___CSS_LOADER_URL___10___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:italic;font-weight:400;src:url(\" + ___CSS_LOADER_URL___11___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:normal;font-weight:600;src:url(\" + ___CSS_LOADER_URL___12___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:italic;font-weight:600;src:url(\" + ___CSS_LOADER_URL___13___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:normal;font-weight:700;src:url(\" + ___CSS_LOADER_URL___14___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:italic;font-weight:700;src:url(\" + ___CSS_LOADER_URL___15___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:normal;font-weight:800;src:url(\" + ___CSS_LOADER_URL___16___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:italic;font-weight:800;src:url(\" + ___CSS_LOADER_URL___17___ + \") format(\\\"woff2\\\")}@font-face{font-family:icomoon;src:url(\" + ___CSS_LOADER_URL___18___ + \") format(\\\"woff2\\\");font-weight:400;font-style:normal;font-display:block}[class*=\\\" ai-\\\"],[class^=ai-]{font-family:icomoon!important;speak:never;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.ai-back-arrow:before{content:\\\"\\\\e909\\\"}*,:after,:before{box-sizing:border-box}html{font-family:sans-serif;line-height:1.15;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:rgba(0,0,0,0)}figcaption,main,nav,section{display:block}[tabindex=\\\"-1\\\"]:focus{outline:0!important}h3{margin-bottom:1rem}h3,p{margin-top:0}p{margin-bottom:1.6rem}strong{font-weight:bolder}img{vertical-align:middle;border-style:none}caption{padding-top:.75rem;padding-bottom:.75rem;color:#6c757d;text-align:left;caption-side:bottom}button{border-radius:0}button:focus{outline:1px dotted;outline:5px auto -webkit-focus-ring-color}button,input{margin:0;font-family:inherit;font-size:inherit;line-height:inherit;overflow:visible}button{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]:not(:disabled),[type=reset]:not(:disabled),[type=submit]:not(:disabled),button:not(:disabled){cursor:pointer}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{padding:0;border-style:none}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}input[type=date],input[type=datetime-local],input[type=month],input[type=time]{-webkit-appearance:listbox}legend{display:block;width:100%;max-width:100%;padding:0;margin-bottom:.5rem;font-size:1.5rem;line-height:inherit;color:inherit;white-space:normal}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:none}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}summary{display:list-item;cursor:pointer}template{display:none}[hidden]{display:none!important}*{-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important}html{font-size:62.5%;height:100%}link-to{color:#0d6efd;text-decoration:none;background-color:transparent}link-to:hover{color:rgb(0,86.1,178.5);text-decoration:none;cursor:pointer}route-view{display:none;flex:1}site-header{background-color:#fff;display:none;position:-webkit-sticky;position:sticky;top:0;height:var(--header-height)}#main{display:none;flex:1 auto;max-width:100%;overflow:hidden;flex-direction:column;overflow-y:scroll}.loaded #main,.loaded site-header,body.loaded,route-view.loaded{display:flex}route-view.left-panel-active{padding-left:var(--sidepanel-width)}.h3,h3{margin-bottom:1rem;font-weight:500;line-height:1.2;font-size:1.8rem}input[type=checkbox],input[type=radio]{cursor:pointer}.btn{display:inline-block;font-weight:400;color:#000;text-align:center;vertical-align:middle;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;background-color:transparent;border:1px solid transparent;padding:.375rem .75rem;font-size:1.6rem;line-height:1.5;border-radius:.25rem;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.btn{transition:none}}.btn:hover{color:#000;text-decoration:none}.btn:focus{outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.btn:disabled{opacity:.65}.btn-primary{color:#fff;background-color:#0d6efd;border-color:#0d6efd}.btn-primary:hover{color:#fff;background-color:rgb(1.8668032787,92.4067622951,225.8831967213);border-color:rgb(1.762295082,87.2336065574,213.237704918)}.btn-primary:focus{box-shadow:0 0 0 .2rem rgba(49.3,131.75,253.3,.5)}.btn-primary:disabled{color:#fff;background-color:#0d6efd;border-color:#0d6efd}.btn-primary:not(:disabled):not(.disabled):active{color:#fff;background-color:rgb(1.762295082,87.2336065574,213.237704918);border-color:rgb(1.6577868852,82.0604508197,200.5922131148)}.btn-primary:not(:disabled):not(.disabled):active:focus{box-shadow:0 0 0 .2rem rgba(49.3,131.75,253.3,.5)}.btn-link{font-weight:400;color:#0d6efd;text-decoration:none}.btn-link:hover{color:rgb(0,86.1,178.5);text-decoration:none}.btn-link:focus{text-decoration:none;box-shadow:none}.btn-link:disabled{color:#6c757d;pointer-events:none}.btn:disabled{cursor:not-allowed}link-to.btn:disabled,link-to.btn[disabled]{pointer-events:none}button,button:active{outline:none}.btn:focus-visible,[tabindex=\\\"0\\\"]:focus-visible,aofl-list-option:focus-visible,button[type=button]:focus-visible,collapse-button:focus-visible{outline:1px solid #e50b0a;border:1px solid #e50b0a}.btn-link:focus-visible{border:2px solid #e50b0a}.btn-primary{font-weight:600;border-width:2px}.btn:disabled{background:#cfe2ff;border-color:#cfe2ff;color:#0d6efd;opacity:1}ems-dropdown>button.btn{display:flex;align-items:center;border:1px solid var(--gray)}@keyframes progress-bar-stripes{0%{background-position:1.6rem 0}to{background-position:0 0}}.modal-container{background-color:rgba(0,0,0,.2);position:fixed;top:0;bottom:0;right:0;left:0;z-index:var(--z-index-modal)}.modal-container :first-child{overflow:auto}.modal{position:relative;display:block;height:100vh}.modal-dialog-centered.modal-dialog-scrollable{height:auto;max-height:calc(100% - 2.8rem);min-height:auto}.modal-body,.modal-content,.modal-footer,.modal-header{border:none}.modal-header{font-size:2rem;padding:2.4rem}.modal-body{padding:0 2.4rem 4.8rem}.colored-header{color:#fff}.modal-body p{text-align:left}.colored-header-primary{background-color:#0d6efd}.colored-header-secondary{background-color:#adb5bd}.colored-header-success{background-color:#3c8104}.colored-header-info{background-color:#cfe2ff}.colored-header-warning{background-color:#e17a05}.colored-header-danger{background-color:#d20a09}.colored-header-light{background-color:#f8f9fa}.colored-header-dark{background-color:#000}@keyframes spinner-border{to{transform:rotate(1turn)}}@keyframes spinner-grow{0%{transform:scale(0)}50%{opacity:1}}.align-middle{vertical-align:middle!important}.border-bottom{border-bottom:1px solid #d8d8d8!important}.rounded-lg{border-radius:.8rem!important}.d-inline{display:inline!important}.d-inline-block{display:inline-block!important}.d-block{display:block!important}.d-flex{display:flex!important}.flex-grow-1{flex-grow:1!important}.justify-content-center{justify-content:center!important}.align-items-center{align-items:center!important}.overflow-hidden{overflow:hidden!important}.position-relative{position:relative!important}.position-absolute{position:absolute!important}.w-100{width:100%!important}.mr-3{margin-right:1rem!important}.mt-4{margin-top:1.5rem!important}.mb-4{margin-bottom:1.5rem!important}.mb-5{margin-bottom:3rem!important}.p-0{padding:0!important}.py-0{padding-top:0!important;padding-bottom:0!important}.pl-0{padding-left:0!important}.pb-2{padding-bottom:.5rem!important}.py-3{padding-top:1rem!important;padding-bottom:1rem!important}.px-4{padding-right:1.5rem!important}.pb-4{padding-bottom:1.5rem!important}.px-4{padding-left:1.5rem!important}.mx-auto{margin-right:auto!important;margin-left:auto!important}.text-center{text-align:center!important}.font-weight-bold{font-weight:700!important}.text-white{color:#fff!important}.text-dark{color:#000!important}.font-weight-semibold{font-weight:600!important}.flex-1{flex:1}.line-height-1{line-height:1}.font-size-xs{font-size:1.2rem}.font-size-lg{font-size:1.9rem}.text-dark{color:#000}.border-dashed-bottom{border-bottom:2px dashed var(--gray-300)}.flip-y{transform:rotate(180deg)}[hidden]{visibility:hidden!important;height:0!important;width:0!important;min-height:unset!important}@media print{*,:after,:before{text-shadow:none!important;box-shadow:none!important}img{page-break-inside:avoid}h3,p{orphans:3;widows:3}h3{page-break-after:avoid}@page{size:a3}}@media print{main::-webkit-scrollbar{display:none}main{-ms-overflow-style:none;scrollbar-width:none}}@page{size:A4;margin:20mm 16mm 20mm 16mm}:host{display:inline-block;font-size:1.4rem}.subtitle{margin-bottom:1.2rem}p{margin-bottom:2.3rem;line-height:normal}.play-btn{left:calc(50% - 50px);top:calc(50% - 50px);z-index:1}.video-active img{display:none!important}.pdf-icon-wrapper{max-width:6.2rem}.pdf-icon-wrapper>img{max-width:3.1rem}video{width:100%;aspect-ratio:4/3;background-size:cover!important;background-position:50%;background-repeat:no-repeat}\", \"\"]);\n","export const template = (context, html) => html`\n \n \n \n`;\n","import styles from './styles.css';\nimport {template} from './template';\nimport '@aofl/drawer';\nimport {AoflElement, customElement, property} from '@aofl/element';\nimport {mapStatePropertiesMixin} from '@aofl/map-state-properties-mixin';\nimport {storeInstance} from '@aofl/store/dist/legacy';\nimport {sdoNs} from '../../constants-enumerate';\n\n/**\n * @summary TabContent\n * @class TabContent\n * @extends {AoflElement}\n */\n@customElement('tab-content')\nclass TabContent extends mapStatePropertiesMixin(AoflElement) {\n /**\n * Creates an instance of TabContent.\n * @memberof TabContent\n */\n constructor() {\n super();\n this.storeInstance = storeInstance;\n }\n\n\n /**\n * @readonly\n * @static\n * @memberof TabContent\n */\n static is = 'tab-content';\n\n @property({type: String})\n groupId = 'ungrouped';\n @property({type: String})\n tabId = '';\n @property({type: Boolean})\n drawerState = false;\n /**\n *\n *\n * @memberof TabContent\n */\n mapStateProperties() {\n const state = this.storeInstance.getState();\n this.drawerState = state[sdoNs.TABS][this.groupId][this.tabId];\n }\n /**\n *\n *\n * @return {Object}\n * @memberof TabContent\n */\n render() {\n return super.render(template, [styles]);\n }\n}\n\nexport {\n TabContent\n};\n","import '@modules/select';\n\nexport const template = (context, html) => html`\n \n \n \n`;\n","import '@modules/select';\nimport {AoflElement, property, customElement} from '@aofl/element';\nimport styles from './styles.css';\nimport {template} from './template';\nimport {mapStatePropertiesMixin} from '@aofl/map-state-properties-mixin';\nimport {storeInstance} from '@aofl/store/dist/legacy';\nimport {sdoNs} from '../../constants-enumerate';\nimport '../tabs-sdo';\n\n/**\n * @summary TabHeader\n * @class TabHeader\n * @extends {AoflElement}\n */\n@customElement('tab-header')\nclass TabHeader extends mapStatePropertiesMixin(AoflElement) {\n /**\n * Creates an instance of TabHeader.\n * @memberof TabHeader\n */\n constructor() {\n super();\n this.storeInstance = storeInstance;\n }\n\n /**\n * @readonly\n * @static\n * @memberof TabHeader\n */\n static is = 'tab-header';\n\n @property({type: String})\n groupId = 'ungrouped';\n @property({type: Boolean, reflect: true})\n selected = false;\n\n /**\n *\n *\n * @memberof TabHeader\n */\n mapStateProperties() {\n const state = this.storeInstance.getState();\n this.selected = state[sdoNs.TABS][this.groupId]?.$selected;\n }\n\n /**\n *\n *\n * @return {Object}\n * @memberof TabHeader\n */\n render() {\n return super.render(template, [styles]);\n }\n\n /**\n *\n *\n * @param {*} e\n * @memberof TabHeader\n */\n tabChanged(e) {\n const payload = {\n groupId: this.groupId,\n tabId: e.target.value\n };\n this.storeInstance.commit({\n namespace: sdoNs.TABS,\n mutationId: 'select',\n payload\n });\n this.dispatchEvent(new CustomEvent('tab-change', {\n detail: payload\n }));\n }\n}\n\nexport {\n TabHeader\n};\n","exports = module.exports = require(\"../../../node_modules/css-loader/dist/runtime/api.js\")(false);\n// Imports\nvar getUrl = require(\"../../../node_modules/css-loader/dist/runtime/getUrl.js\");\nvar ___CSS_LOADER_URL___0___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-light.woff2\"));\nvar ___CSS_LOADER_URL___1___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-lightit.woff2\"));\nvar ___CSS_LOADER_URL___2___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-reg.woff2\"));\nvar ___CSS_LOADER_URL___3___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-regit.woff2\"));\nvar ___CSS_LOADER_URL___4___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-sbold.woff2\"));\nvar ___CSS_LOADER_URL___5___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-sboldit.woff2\"));\nvar ___CSS_LOADER_URL___6___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-bold.woff2\"));\nvar ___CSS_LOADER_URL___7___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-boldit.woff2\"));\nvar ___CSS_LOADER_URL___8___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-Light.woff2\"));\nvar ___CSS_LOADER_URL___9___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-LightIt.woff2\"));\nvar ___CSS_LOADER_URL___10___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-Regular.woff2\"));\nvar ___CSS_LOADER_URL___11___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-RegularIt.woff2\"));\nvar ___CSS_LOADER_URL___12___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-Semibold.woff2\"));\nvar ___CSS_LOADER_URL___13___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-SemiboldIt.woff2\"));\nvar ___CSS_LOADER_URL___14___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-Bold.woff2\"));\nvar ___CSS_LOADER_URL___15___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-BoldIt.woff2\"));\nvar ___CSS_LOADER_URL___16___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-ExtraBold.woff2\"));\nvar ___CSS_LOADER_URL___17___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-ExtraBoldIt.woff2\"));\nvar ___CSS_LOADER_URL___18___ = getUrl(require(\"../../template/main/fonts/aofl-icons/icomoon.woff2?c6f21u\"));\n// Module\nexports.push([module.id, \"/*! @aofl-component */:root{--blue:#0d6efd;--indigo:#6610f2;--purple:#8b42ca;--pink:#e83e8c;--red:#e50b0a;--orange:#e17a05;--yellow:#ffc107;--green:#3c8104;--teal:#20c997;--cyan:#53c9dc;--white:#fff;--gray:#6b6b6b;--gray-dark:#343a40;--light-green:#b1dd53;--table-border-color:#d8d8d8;--gray-100:#f2f2f2;--gray-200:#d9d9d9;--gray-300:#d8d8d8;--gray-400:#ced4da;--gray-500:#adb5bd;--gray-600:#6c757d;--gray-700:#4a4a4a;--gray-800:#343a40;--gray-900:#212529;--gray-accessibility:#6b6b6b;--primary:#0d6efd;--secondary:#adb5bd;--success:#3c8104;--info:#cfe2ff;--warning:#e17a05;--danger:#d20a09;--light:#f8f9fa;--dark:#000;--breakpoint-xxs:0;--breakpoint-xs:375px;--breakpoint-sm:576px;--breakpoint-md:768px;--breakpoint-lg:992px;--breakpoint-xl:1200px;--font-family-sans-serif:aofl-sans,Arial,Helvetica,sans-serif;--font-family-monospace:SFMono-Regular,Menlo,Monaco,Consolas,\\\"Liberation Mono\\\",\\\"Courier New\\\",monospace;--z-index-dropdown:1000;--z-index-sticky:1020;--z-index-fixed:1030;--z-index-modal-backdrop:1040;--z-index-modal:1050;--z-index-popover:1060;--z-index-tooltip:1070;--header-height:6rem;--content-height:calc(100vh - 6rem);--sidepanel-width:20rem;--purple-color:#641da3;--purple-600:#956abc;--purple-400:#c7afdd;--purple-200:#e0d2ed;--struggling:#f6993b;--below-target:#ffcf00;--in_progress:#1280f5;--prior_knowledge:#edf887;--mastery_achieved:#69d112;--inactive:#d8d8d8}route-view{max-width:1200px}@font-face{font-family:aofl-sans;font-style:normal;font-weight:300;src:url(\" + ___CSS_LOADER_URL___0___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:italic;font-weight:300;src:url(\" + ___CSS_LOADER_URL___1___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:normal;font-weight:400;src:url(\" + ___CSS_LOADER_URL___2___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:italic;font-weight:400;src:url(\" + ___CSS_LOADER_URL___3___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:normal;font-weight:600;src:url(\" + ___CSS_LOADER_URL___4___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:italic;font-weight:600;src:url(\" + ___CSS_LOADER_URL___5___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:normal;font-weight:700;src:url(\" + ___CSS_LOADER_URL___6___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:italic;font-weight:700;src:url(\" + ___CSS_LOADER_URL___7___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:normal;font-weight:300;src:url(\" + ___CSS_LOADER_URL___8___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:italic;font-weight:300;src:url(\" + ___CSS_LOADER_URL___9___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:normal;font-weight:400;src:url(\" + ___CSS_LOADER_URL___10___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:italic;font-weight:400;src:url(\" + ___CSS_LOADER_URL___11___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:normal;font-weight:600;src:url(\" + ___CSS_LOADER_URL___12___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:italic;font-weight:600;src:url(\" + ___CSS_LOADER_URL___13___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:normal;font-weight:700;src:url(\" + ___CSS_LOADER_URL___14___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:italic;font-weight:700;src:url(\" + ___CSS_LOADER_URL___15___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:normal;font-weight:800;src:url(\" + ___CSS_LOADER_URL___16___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:italic;font-weight:800;src:url(\" + ___CSS_LOADER_URL___17___ + \") format(\\\"woff2\\\")}@font-face{font-family:icomoon;src:url(\" + ___CSS_LOADER_URL___18___ + \") format(\\\"woff2\\\");font-weight:400;font-style:normal;font-display:block}[class*=\\\" ai-\\\"],[class^=ai-]{font-family:icomoon!important;speak:never;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*,:after,:before{box-sizing:border-box}html{font-family:sans-serif;line-height:1.15;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:rgba(0,0,0,0)}figcaption,main,nav,section{display:block}[tabindex=\\\"-1\\\"]:focus{outline:0!important}strong{font-weight:bolder}caption{padding-top:.75rem;padding-bottom:.75rem;color:#6c757d;text-align:left;caption-side:bottom}button{border-radius:0}button:focus{outline:1px dotted;outline:5px auto -webkit-focus-ring-color}button,input{margin:0;font-family:inherit;font-size:inherit;line-height:inherit;overflow:visible}button{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]:not(:disabled),[type=reset]:not(:disabled),[type=submit]:not(:disabled),button:not(:disabled){cursor:pointer}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{padding:0;border-style:none}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}input[type=date],input[type=datetime-local],input[type=month],input[type=time]{-webkit-appearance:listbox}legend{display:block;width:100%;max-width:100%;padding:0;margin-bottom:.5rem;font-size:1.5rem;line-height:inherit;color:inherit;white-space:normal}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:none}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}summary{display:list-item;cursor:pointer}template{display:none}[hidden]{display:none!important}*{-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important}html{font-size:62.5%;height:100%}link-to{color:#0d6efd;text-decoration:none;background-color:transparent}link-to:hover{color:rgb(0,86.1,178.5);text-decoration:none;cursor:pointer}route-view{display:none;flex:1}site-header{background-color:#fff;display:none;position:-webkit-sticky;position:sticky;top:0;height:var(--header-height)}#main{display:none;flex:1 auto;max-width:100%;overflow:hidden;flex-direction:column;overflow-y:scroll}.loaded #main,.loaded site-header,body.loaded,route-view.loaded{display:flex}route-view.left-panel-active{padding-left:var(--sidepanel-width)}input[type=checkbox],input[type=radio]{cursor:pointer}button,button:active{outline:none}[tabindex=\\\"0\\\"]:focus-visible,aofl-list-option:focus-visible,button[type=button]:focus-visible,collapse-button:focus-visible{outline:1px solid #e50b0a;border:1px solid #e50b0a}@keyframes progress-bar-stripes{0%{background-position:1.6rem 0}to{background-position:0 0}}.modal-container{background-color:rgba(0,0,0,.2);position:fixed;top:0;bottom:0;right:0;left:0;z-index:var(--z-index-modal)}.modal-container :first-child{overflow:auto}.modal{position:relative;display:block;height:100vh}.modal-dialog-centered.modal-dialog-scrollable{height:auto;max-height:calc(100% - 2.8rem);min-height:auto}.modal-body,.modal-content,.modal-footer,.modal-header{border:none}.modal-header{font-size:2rem;padding:2.4rem}.modal-body{padding:0 2.4rem 4.8rem}.colored-header{color:#fff}.modal-body p{text-align:left}.colored-header-primary{background-color:#0d6efd}.colored-header-secondary{background-color:#adb5bd}.colored-header-success{background-color:#3c8104}.colored-header-info{background-color:#cfe2ff}.colored-header-warning{background-color:#e17a05}.colored-header-danger{background-color:#d20a09}.colored-header-light{background-color:#f8f9fa}.colored-header-dark{background-color:#000}@keyframes spinner-border{to{transform:rotate(1turn)}}@keyframes spinner-grow{0%{transform:scale(0)}50%{opacity:1}}[hidden]{visibility:hidden!important;height:0!important;width:0!important;min-height:unset!important}@media print{*,:after,:before{text-shadow:none!important;box-shadow:none!important}@page{size:a3}}@media print{main::-webkit-scrollbar{display:none}main{-ms-overflow-style:none;scrollbar-width:none}}@page{size:A4;margin:20mm 16mm 20mm 16mm}:host{display:inline-block}\", \"\"]);\n","exports = module.exports = require(\"../../../node_modules/css-loader/dist/runtime/api.js\")(false);\n// Imports\nvar getUrl = require(\"../../../node_modules/css-loader/dist/runtime/getUrl.js\");\nvar ___CSS_LOADER_URL___0___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-light.woff2\"));\nvar ___CSS_LOADER_URL___1___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-lightit.woff2\"));\nvar ___CSS_LOADER_URL___2___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-reg.woff2\"));\nvar ___CSS_LOADER_URL___3___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-regit.woff2\"));\nvar ___CSS_LOADER_URL___4___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-sbold.woff2\"));\nvar ___CSS_LOADER_URL___5___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-sboldit.woff2\"));\nvar ___CSS_LOADER_URL___6___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-bold.woff2\"));\nvar ___CSS_LOADER_URL___7___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-boldit.woff2\"));\nvar ___CSS_LOADER_URL___8___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-Light.woff2\"));\nvar ___CSS_LOADER_URL___9___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-LightIt.woff2\"));\nvar ___CSS_LOADER_URL___10___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-Regular.woff2\"));\nvar ___CSS_LOADER_URL___11___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-RegularIt.woff2\"));\nvar ___CSS_LOADER_URL___12___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-Semibold.woff2\"));\nvar ___CSS_LOADER_URL___13___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-SemiboldIt.woff2\"));\nvar ___CSS_LOADER_URL___14___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-Bold.woff2\"));\nvar ___CSS_LOADER_URL___15___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-BoldIt.woff2\"));\nvar ___CSS_LOADER_URL___16___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-ExtraBold.woff2\"));\nvar ___CSS_LOADER_URL___17___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-ExtraBoldIt.woff2\"));\nvar ___CSS_LOADER_URL___18___ = getUrl(require(\"../../template/main/fonts/aofl-icons/icomoon.woff2?c6f21u\"));\n// Module\nexports.push([module.id, \"/*! @aofl-component */:root{--blue:#0d6efd;--indigo:#6610f2;--purple:#8b42ca;--pink:#e83e8c;--red:#e50b0a;--orange:#e17a05;--yellow:#ffc107;--green:#3c8104;--teal:#20c997;--cyan:#53c9dc;--white:#fff;--gray:#6b6b6b;--gray-dark:#343a40;--light-green:#b1dd53;--table-border-color:#d8d8d8;--gray-100:#f2f2f2;--gray-200:#d9d9d9;--gray-300:#d8d8d8;--gray-400:#ced4da;--gray-500:#adb5bd;--gray-600:#6c757d;--gray-700:#4a4a4a;--gray-800:#343a40;--gray-900:#212529;--gray-accessibility:#6b6b6b;--primary:#0d6efd;--secondary:#adb5bd;--success:#3c8104;--info:#cfe2ff;--warning:#e17a05;--danger:#d20a09;--light:#f8f9fa;--dark:#000;--breakpoint-xxs:0;--breakpoint-xs:375px;--breakpoint-sm:576px;--breakpoint-md:768px;--breakpoint-lg:992px;--breakpoint-xl:1200px;--font-family-sans-serif:aofl-sans,Arial,Helvetica,sans-serif;--font-family-monospace:SFMono-Regular,Menlo,Monaco,Consolas,\\\"Liberation Mono\\\",\\\"Courier New\\\",monospace;--z-index-dropdown:1000;--z-index-sticky:1020;--z-index-fixed:1030;--z-index-modal-backdrop:1040;--z-index-modal:1050;--z-index-popover:1060;--z-index-tooltip:1070;--header-height:6rem;--content-height:calc(100vh - 6rem);--sidepanel-width:20rem;--purple-color:#641da3;--purple-600:#956abc;--purple-400:#c7afdd;--purple-200:#e0d2ed;--struggling:#f6993b;--below-target:#ffcf00;--in_progress:#1280f5;--prior_knowledge:#edf887;--mastery_achieved:#69d112;--inactive:#d8d8d8}route-view{max-width:1200px}@font-face{font-family:aofl-sans;font-style:normal;font-weight:300;src:url(\" + ___CSS_LOADER_URL___0___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:italic;font-weight:300;src:url(\" + ___CSS_LOADER_URL___1___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:normal;font-weight:400;src:url(\" + ___CSS_LOADER_URL___2___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:italic;font-weight:400;src:url(\" + ___CSS_LOADER_URL___3___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:normal;font-weight:600;src:url(\" + ___CSS_LOADER_URL___4___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:italic;font-weight:600;src:url(\" + ___CSS_LOADER_URL___5___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:normal;font-weight:700;src:url(\" + ___CSS_LOADER_URL___6___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:italic;font-weight:700;src:url(\" + ___CSS_LOADER_URL___7___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:normal;font-weight:300;src:url(\" + ___CSS_LOADER_URL___8___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:italic;font-weight:300;src:url(\" + ___CSS_LOADER_URL___9___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:normal;font-weight:400;src:url(\" + ___CSS_LOADER_URL___10___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:italic;font-weight:400;src:url(\" + ___CSS_LOADER_URL___11___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:normal;font-weight:600;src:url(\" + ___CSS_LOADER_URL___12___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:italic;font-weight:600;src:url(\" + ___CSS_LOADER_URL___13___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:normal;font-weight:700;src:url(\" + ___CSS_LOADER_URL___14___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:italic;font-weight:700;src:url(\" + ___CSS_LOADER_URL___15___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:normal;font-weight:800;src:url(\" + ___CSS_LOADER_URL___16___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:italic;font-weight:800;src:url(\" + ___CSS_LOADER_URL___17___ + \") format(\\\"woff2\\\")}@font-face{font-family:icomoon;src:url(\" + ___CSS_LOADER_URL___18___ + \") format(\\\"woff2\\\");font-weight:400;font-style:normal;font-display:block}[class*=\\\" ai-\\\"],[class^=ai-]{font-family:icomoon!important;speak:never;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*,:after,:before{box-sizing:border-box}html{font-family:sans-serif;line-height:1.15;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:rgba(0,0,0,0)}figcaption,main,nav,section{display:block}[tabindex=\\\"-1\\\"]:focus{outline:0!important}strong{font-weight:bolder}caption{padding-top:.75rem;padding-bottom:.75rem;color:#6c757d;text-align:left;caption-side:bottom}button{border-radius:0}button:focus{outline:1px dotted;outline:5px auto -webkit-focus-ring-color}button,input{margin:0;font-family:inherit;font-size:inherit;line-height:inherit;overflow:visible}button{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]:not(:disabled),[type=reset]:not(:disabled),[type=submit]:not(:disabled),button:not(:disabled){cursor:pointer}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{padding:0;border-style:none}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}input[type=date],input[type=datetime-local],input[type=month],input[type=time]{-webkit-appearance:listbox}legend{display:block;width:100%;max-width:100%;padding:0;margin-bottom:.5rem;font-size:1.5rem;line-height:inherit;color:inherit;white-space:normal}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:none}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}summary{display:list-item;cursor:pointer}template{display:none}[hidden]{display:none!important}*{-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important}html{font-size:62.5%;height:100%}link-to{color:#0d6efd;text-decoration:none;background-color:transparent}link-to:hover{color:rgb(0,86.1,178.5);text-decoration:none;cursor:pointer}route-view{display:none;flex:1}site-header{background-color:#fff;display:none;position:-webkit-sticky;position:sticky;top:0;height:var(--header-height)}#main{display:none;flex:1 auto;max-width:100%;overflow:hidden;flex-direction:column;overflow-y:scroll}.loaded #main,.loaded site-header,body.loaded,route-view.loaded{display:flex}route-view.left-panel-active{padding-left:var(--sidepanel-width)}.row{display:flex;flex-wrap:wrap;margin-right:-15px;margin-left:-15px}.col-lg-4,.col-md-4,.col-md-5,.col-sm-5,.col-sm-7,.col-xs-12{position:relative;width:100%;padding-right:15px;padding-left:15px}@media (min-width:375px){.col-xs-12{flex:0 0 100%;max-width:100%}}@media (min-width:576px){.col-sm-5{flex:0 0 41.6666666667%;max-width:41.6666666667%}.col-sm-7{flex:0 0 58.3333333333%;max-width:58.3333333333%}}@media (min-width:768px){.col-md-4{flex:0 0 33.3333333333%;max-width:33.3333333333%}.col-md-5{flex:0 0 41.6666666667%;max-width:41.6666666667%}}@media (min-width:992px){.col-lg-4{flex:0 0 33.3333333333%;max-width:33.3333333333%}}input[type=checkbox],input[type=radio]{cursor:pointer}.btn{display:inline-block;font-weight:400;color:#000;text-align:center;vertical-align:middle;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;background-color:transparent;border:1px solid transparent;padding:.375rem .75rem;font-size:1.6rem;line-height:1.5;border-radius:.25rem;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.btn{transition:none}}.btn:hover{color:#000;text-decoration:none}.btn:focus{outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.btn:disabled{opacity:.65}.btn-primary{color:#fff;background-color:#0d6efd;border-color:#0d6efd}.btn-primary:hover{color:#fff;background-color:rgb(1.8668032787,92.4067622951,225.8831967213);border-color:rgb(1.762295082,87.2336065574,213.237704918)}.btn-primary:focus{box-shadow:0 0 0 .2rem rgba(49.3,131.75,253.3,.5)}.btn-primary:disabled{color:#fff;background-color:#0d6efd;border-color:#0d6efd}.btn-primary:not(:disabled):not(.disabled):active{color:#fff;background-color:rgb(1.762295082,87.2336065574,213.237704918);border-color:rgb(1.6577868852,82.0604508197,200.5922131148)}.btn-primary:not(:disabled):not(.disabled):active:focus{box-shadow:0 0 0 .2rem rgba(49.3,131.75,253.3,.5)}.btn-outline-primary{color:#0d6efd;border-color:#0d6efd}.btn-outline-primary:hover{color:#fff;background-color:#0d6efd;border-color:#0d6efd}.btn-outline-primary:focus{box-shadow:0 0 0 .2rem rgba(13,110,253,.5)}.btn-outline-primary:disabled{color:#0d6efd;background-color:transparent}.btn-outline-primary:not(:disabled):not(.disabled):active{color:#fff;background-color:#0d6efd;border-color:#0d6efd}.btn-outline-primary:not(:disabled):not(.disabled):active:focus{box-shadow:0 0 0 .2rem rgba(13,110,253,.5)}.btn-lg{padding:.5rem 1rem;font-size:1.9rem;line-height:1.5;border-radius:.3rem}.btn-block{display:block;width:100%}.btn-block+.btn-block{margin-top:.8rem}input[type=button].btn-block,input[type=reset].btn-block,input[type=submit].btn-block{width:100%}.btn:disabled{cursor:not-allowed}link-to.btn:disabled,link-to.btn[disabled]{pointer-events:none}button,button:active{outline:none}.btn:focus-visible,[tabindex=\\\"0\\\"]:focus-visible,aofl-list-option:focus-visible,button[type=button]:focus-visible,collapse-button:focus-visible{outline:1px solid #e50b0a;border:1px solid #e50b0a}.btn-primary:focus-visible .btn-outline-primary:focus-visible{outline-offset:2px;outline:2px solid #e50b0a}.btn-outline-primary,.btn-primary{font-weight:600;border-width:2px}.btn:disabled{background:#cfe2ff;border-color:#cfe2ff;color:#0d6efd;opacity:1}ems-dropdown>button.btn{display:flex;align-items:center;border:1px solid var(--gray)}@keyframes progress-bar-stripes{0%{background-position:1.6rem 0}to{background-position:0 0}}.modal-container{background-color:rgba(0,0,0,.2);position:fixed;top:0;bottom:0;right:0;left:0;z-index:var(--z-index-modal)}.modal-container :first-child{overflow:auto}.modal{position:relative;display:block;height:100vh}.modal-dialog-centered.modal-dialog-scrollable{height:auto;max-height:calc(100% - 2.8rem);min-height:auto}.modal-body,.modal-content,.modal-footer,.modal-header{border:none}.modal-header{font-size:2rem;padding:2.4rem}.modal-body{padding:0 2.4rem 4.8rem}.colored-header{color:#fff}.modal-body p{text-align:left}.colored-header-primary{background-color:#0d6efd}.colored-header-secondary{background-color:#adb5bd}.colored-header-success{background-color:#3c8104}.colored-header-info{background-color:#cfe2ff}.colored-header-warning{background-color:#e17a05}.colored-header-danger{background-color:#d20a09}.colored-header-light{background-color:#f8f9fa}.colored-header-dark{background-color:#000}@keyframes spinner-border{to{transform:rotate(1turn)}}@keyframes spinner-grow{0%{transform:scale(0)}50%{opacity:1}}.rounded-pill{border-radius:80rem!important}.align-items-center{align-items:center!important}@media (min-width:768px){.justify-content-md-center{justify-content:center!important}}.mb-2{margin-bottom:.5rem!important}.mb-5{margin-bottom:3rem!important}.pb-5{padding-bottom:3rem!important}.text-center{text-align:center!important}[hidden]{visibility:hidden!important;height:0!important;width:0!important;min-height:unset!important}@media print{*,:after,:before{text-shadow:none!important;box-shadow:none!important}@page{size:a3}}@media print{main::-webkit-scrollbar{display:none}main{-ms-overflow-style:none;scrollbar-width:none}}@page{size:A4;margin:20mm 16mm 20mm 16mm}:host{display:block}\", \"\"]);\n","export default (ctx, html) => html`\n
\n
\n \n
\n
\n \n
\n
\n`;\n","import styles from './template.css';\nimport template from './template';\nimport {AoflElement, customElement, property} from '@aofl/element';\nimport {\n Chart,\n ArcElement,\n LineElement,\n BarElement,\n PointElement,\n BarController,\n DoughnutController,\n LineController,\n CategoryScale,\n LinearScale,\n Filler,\n Legend,\n Title,\n Tooltip\n} from 'chart.js';\nChart.register(\n ArcElement,\n LineElement,\n BarElement,\n PointElement,\n BarController,\n DoughnutController,\n LineController,\n CategoryScale,\n LinearScale,\n Filler,\n Legend,\n Title,\n Tooltip\n);\n\n\n/**\n * @summary ChartElement\n * @see https://www.chartjs.org/docs/latest/charts/doughnut.html\n * @extends {AoflElement}\n */\n@customElement('chart-element')\nclass ChartElement extends AoflElement {\n /**\n * Creates an instance of ChartElement.\n */\n constructor() {\n super();\n }\n\n /**\n * @readonly\n */\n static is = 'chart-element';\n chart = null;\n canvas = null;\n /**\n * pie|doughnut\n */\n @property({type: String})\n type = 'pie';\n @property({type: String})\n height = '';\n @property({type: String})\n width = '';\n @property({type: String, attribute: true})\n maxHeight = 'unset';\n @property({type: Object})\n chartData = {};\n @property({type: Object})\n chartOptions = {};\n @property({type: Object})\n chartPlugins = {};\n @property({type: Array, attribute: true})\n styles = [];\n\n repaintChart() {\n if (this.chart !== null) {\n this.chart.destroy();\n this.chart = null;\n }\n if (this.width) {\n this.canvas.width = this.width;\n }\n if (this.height) {\n this.canvas.height = this.height;\n }\n\n const ctx = this.canvas.getContext('2d');\n this.chart = new Chart(ctx, {\n type: this.type,\n data: this.chartData,\n options: this.chartOptions,\n plugins: this.chartPlugins\n });\n this.dispatchEvent(new CustomEvent('chart-repaint', {\n composed: true\n }));\n }\n\n firstUpdated() {\n this.canvas = this.shadowRoot.querySelector('canvas');\n\n super.firstUpdated();\n this.repaintChart();\n }\n\n shouldUpdate(properties) {\n if ((properties.has('chartData') || properties.has('chartOptions')) && this.chart !== null) {\n this.repaintChart();\n return true;\n }\n if ((properties.has('height') || properties.has('width')) && this.chart !== null) {\n this.canvas.width = this.width;\n this.canvas.height = this.height;\n this.chart.resize();\n this.chart.render(true);\n\n // Charts that were in separate tabs were getting hidden. You must return\n // true if you want the chart to re-render. I made it conditional, only\n // for the charts that didn't have any width or height, so I wouldn't\n // overly-tax the library with rerenders.\n return (this.chart.width === 0 || this.chart.height === 0);\n }\n\n return true;\n }\n\n /**\n *\n * @return {Object}\n */\n render() {\n return super.render(template, [styles, ...this.styles]);\n }\n}\n\nexport default ChartElement;\n","exports = module.exports = require(\"../../../node_modules/css-loader/dist/runtime/api.js\")(false);\n// Imports\nvar getUrl = require(\"../../../node_modules/css-loader/dist/runtime/getUrl.js\");\nvar ___CSS_LOADER_URL___0___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-light.woff2\"));\nvar ___CSS_LOADER_URL___1___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-lightit.woff2\"));\nvar ___CSS_LOADER_URL___2___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-reg.woff2\"));\nvar ___CSS_LOADER_URL___3___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-regit.woff2\"));\nvar ___CSS_LOADER_URL___4___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-sbold.woff2\"));\nvar ___CSS_LOADER_URL___5___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-sboldit.woff2\"));\nvar ___CSS_LOADER_URL___6___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-bold.woff2\"));\nvar ___CSS_LOADER_URL___7___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-boldit.woff2\"));\nvar ___CSS_LOADER_URL___8___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-Light.woff2\"));\nvar ___CSS_LOADER_URL___9___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-LightIt.woff2\"));\nvar ___CSS_LOADER_URL___10___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-Regular.woff2\"));\nvar ___CSS_LOADER_URL___11___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-RegularIt.woff2\"));\nvar ___CSS_LOADER_URL___12___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-Semibold.woff2\"));\nvar ___CSS_LOADER_URL___13___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-SemiboldIt.woff2\"));\nvar ___CSS_LOADER_URL___14___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-Bold.woff2\"));\nvar ___CSS_LOADER_URL___15___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-BoldIt.woff2\"));\nvar ___CSS_LOADER_URL___16___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-ExtraBold.woff2\"));\nvar ___CSS_LOADER_URL___17___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-ExtraBoldIt.woff2\"));\nvar ___CSS_LOADER_URL___18___ = getUrl(require(\"../../template/main/fonts/aofl-icons/icomoon.woff2?c6f21u\"));\n// Module\nexports.push([module.id, \"/*! @aofl-component */:root{--blue:#0d6efd;--indigo:#6610f2;--purple:#8b42ca;--pink:#e83e8c;--red:#e50b0a;--orange:#e17a05;--yellow:#ffc107;--green:#3c8104;--teal:#20c997;--cyan:#53c9dc;--white:#fff;--gray:#6b6b6b;--gray-dark:#343a40;--light-green:#b1dd53;--table-border-color:#d8d8d8;--gray-100:#f2f2f2;--gray-200:#d9d9d9;--gray-300:#d8d8d8;--gray-400:#ced4da;--gray-500:#adb5bd;--gray-600:#6c757d;--gray-700:#4a4a4a;--gray-800:#343a40;--gray-900:#212529;--gray-accessibility:#6b6b6b;--primary:#0d6efd;--secondary:#adb5bd;--success:#3c8104;--info:#cfe2ff;--warning:#e17a05;--danger:#d20a09;--light:#f8f9fa;--dark:#000;--breakpoint-xxs:0;--breakpoint-xs:375px;--breakpoint-sm:576px;--breakpoint-md:768px;--breakpoint-lg:992px;--breakpoint-xl:1200px;--font-family-sans-serif:aofl-sans,Arial,Helvetica,sans-serif;--font-family-monospace:SFMono-Regular,Menlo,Monaco,Consolas,\\\"Liberation Mono\\\",\\\"Courier New\\\",monospace;--z-index-dropdown:1000;--z-index-sticky:1020;--z-index-fixed:1030;--z-index-modal-backdrop:1040;--z-index-modal:1050;--z-index-popover:1060;--z-index-tooltip:1070;--header-height:6rem;--content-height:calc(100vh - 6rem);--sidepanel-width:20rem;--purple-color:#641da3;--purple-600:#956abc;--purple-400:#c7afdd;--purple-200:#e0d2ed;--struggling:#f6993b;--below-target:#ffcf00;--in_progress:#1280f5;--prior_knowledge:#edf887;--mastery_achieved:#69d112;--inactive:#d8d8d8}route-view{max-width:1200px}@font-face{font-family:aofl-sans;font-style:normal;font-weight:300;src:url(\" + ___CSS_LOADER_URL___0___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:italic;font-weight:300;src:url(\" + ___CSS_LOADER_URL___1___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:normal;font-weight:400;src:url(\" + ___CSS_LOADER_URL___2___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:italic;font-weight:400;src:url(\" + ___CSS_LOADER_URL___3___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:normal;font-weight:600;src:url(\" + ___CSS_LOADER_URL___4___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:italic;font-weight:600;src:url(\" + ___CSS_LOADER_URL___5___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:normal;font-weight:700;src:url(\" + ___CSS_LOADER_URL___6___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:italic;font-weight:700;src:url(\" + ___CSS_LOADER_URL___7___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:normal;font-weight:300;src:url(\" + ___CSS_LOADER_URL___8___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:italic;font-weight:300;src:url(\" + ___CSS_LOADER_URL___9___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:normal;font-weight:400;src:url(\" + ___CSS_LOADER_URL___10___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:italic;font-weight:400;src:url(\" + ___CSS_LOADER_URL___11___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:normal;font-weight:600;src:url(\" + ___CSS_LOADER_URL___12___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:italic;font-weight:600;src:url(\" + ___CSS_LOADER_URL___13___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:normal;font-weight:700;src:url(\" + ___CSS_LOADER_URL___14___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:italic;font-weight:700;src:url(\" + ___CSS_LOADER_URL___15___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:normal;font-weight:800;src:url(\" + ___CSS_LOADER_URL___16___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:italic;font-weight:800;src:url(\" + ___CSS_LOADER_URL___17___ + \") format(\\\"woff2\\\")}@font-face{font-family:icomoon;src:url(\" + ___CSS_LOADER_URL___18___ + \") format(\\\"woff2\\\");font-weight:400;font-style:normal;font-display:block}[class*=\\\" ai-\\\"],[class^=ai-]{font-family:icomoon!important;speak:never;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*,:after,:before{box-sizing:border-box}html{font-family:sans-serif;line-height:1.15;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:rgba(0,0,0,0)}figcaption,main,nav,section{display:block}body{margin:0;font-family:aofl-sans,Arial,Helvetica,sans-serif;font-size:1.6rem;font-weight:400;line-height:1.5;color:#000;text-align:left;background-color:#fff}[tabindex=\\\"-1\\\"]:focus{outline:0!important}strong{font-weight:bolder}caption{padding-top:.75rem;padding-bottom:.75rem;color:#6c757d;text-align:left;caption-side:bottom}label{display:inline-block;margin-bottom:.8rem}button{border-radius:0}button:focus{outline:1px dotted;outline:5px auto -webkit-focus-ring-color}button,input{margin:0;font-family:inherit;font-size:inherit;line-height:inherit;overflow:visible}button{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]:not(:disabled),[type=reset]:not(:disabled),[type=submit]:not(:disabled),button:not(:disabled){cursor:pointer}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{padding:0;border-style:none}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}input[type=date],input[type=datetime-local],input[type=month],input[type=time]{-webkit-appearance:listbox}legend{display:block;width:100%;max-width:100%;padding:0;margin-bottom:.5rem;font-size:1.5rem;line-height:inherit;color:inherit;white-space:normal}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:none}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}summary{display:list-item;cursor:pointer}template{display:none}[hidden]{display:none!important}*{-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important}html{font-size:62.5%}body,html{height:100%}body{flex-direction:column}link-to{color:#0d6efd;text-decoration:none;background-color:transparent}link-to:hover{color:rgb(0,86.1,178.5);text-decoration:none;cursor:pointer}route-view{display:none;flex:1}site-header{background-color:#fff;display:none;position:-webkit-sticky;position:sticky;top:0;height:var(--header-height)}#main{display:none;flex:1 auto;max-width:100%;overflow:hidden;flex-direction:column;overflow-y:scroll}.loaded #main,.loaded site-header,body.loaded,route-view.loaded{display:flex}route-view.left-panel-active{padding-left:var(--sidepanel-width)}input[type=checkbox],input[type=radio]{cursor:pointer}input[type=checkbox]+label,input[type=radio]+label{cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}button,button:active{outline:none}[tabindex=\\\"0\\\"]:focus-visible,aofl-list-option:focus-visible,button[type=button]:focus-visible,collapse-button:focus-visible{outline:1px solid #e50b0a;border:1px solid #e50b0a}@keyframes progress-bar-stripes{0%{background-position:1.6rem 0}to{background-position:0 0}}.modal-container{background-color:rgba(0,0,0,.2);position:fixed;top:0;bottom:0;right:0;left:0;z-index:var(--z-index-modal)}.modal-container :first-child{overflow:auto}.modal{position:relative;display:block;height:100vh}.modal-dialog-centered.modal-dialog-scrollable{height:auto;max-height:calc(100% - 2.8rem);min-height:auto}.modal-body,.modal-content,.modal-footer,.modal-header{border:none}.modal-header{font-size:2rem;padding:2.4rem}.modal-body{padding:0 2.4rem 4.8rem}.colored-header{color:#fff}.modal-body p{text-align:left}.colored-header-primary{background-color:#0d6efd}.colored-header-secondary{background-color:#adb5bd}.colored-header-success{background-color:#3c8104}.colored-header-info{background-color:#cfe2ff}.colored-header-warning{background-color:#e17a05}.colored-header-danger{background-color:#d20a09}.colored-header-light{background-color:#f8f9fa}.colored-header-dark{background-color:#000}@keyframes spinner-border{to{transform:rotate(1turn)}}@keyframes spinner-grow{0%{transform:scale(0)}50%{opacity:1}}[hidden]{visibility:hidden!important;height:0!important;width:0!important;min-height:unset!important}@media print{*,:after,:before{text-shadow:none!important;box-shadow:none!important}@page{size:a3}body{min-width:992px!important}}@media print{main::-webkit-scrollbar{display:none}main{-ms-overflow-style:none;scrollbar-width:none}}@page{size:A4;margin:20mm 16mm 20mm 16mm}:host{display:inline-block}\", \"\"]);\n","import {until} from 'lit-html/directives/until';\nimport {wrapUnsafeHtml} from '@modules/wrap-unsafe-html';\n\nexport default (values, visibleItems, html, i18n) => {\n let moreHtml = '';\n let moreText = '';\n\n if (Array.isArray(values) === false) {\n return;\n }\n\n if (values.length > visibleItems) {\n const numMoreItems = values.length - visibleItems;\n moreText = html`${until(wrapUnsafeHtml(i18n._r(i18n.__('', '+ %r1% more'), numMoreItems)))}`;\n moreHtml = html`${moreText}`;\n }\n\n const renderedItems = values.slice(0, visibleItems).map((item) => { return item.name; }).join(', ');\n return html`
${renderedItems}
${moreHtml}`;\n};\n","import toDate from '../toDate/index.js';\nimport toInteger from '../_lib/toInteger/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name startOfWeek\n * @category Week Helpers\n * @summary Return the start of a week for the given date.\n *\n * @description\n * Return the start of a week for the given date.\n * The result will be in the local timezone.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the original date\n * @param {Object} [options] - an object with options.\n * @param {Locale} [options.locale=defaultLocale] - the locale object. See [Locale]{@link https://date-fns.org/docs/Locale}\n * @param {0|1|2|3|4|5|6} [options.weekStartsOn=0] - the index of the first day of the week (0 - Sunday)\n * @returns {Date} the start of a week\n * @throws {TypeError} 1 argument required\n * @throws {RangeError} `options.weekStartsOn` must be between 0 and 6\n *\n * @example\n * // The start of a week for 2 September 2014 11:55:00:\n * var result = startOfWeek(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Sun Aug 31 2014 00:00:00\n *\n * @example\n * // If the week starts on Monday, the start of the week for 2 September 2014 11:55:00:\n * var result = startOfWeek(new Date(2014, 8, 2, 11, 55, 0), { weekStartsOn: 1 })\n * //=> Mon Sep 01 2014 00:00:00\n */\n\nexport default function startOfWeek(dirtyDate, dirtyOptions) {\n requiredArgs(1, arguments);\n var options = dirtyOptions || {};\n var locale = options.locale;\n var localeWeekStartsOn = locale && locale.options && locale.options.weekStartsOn;\n var defaultWeekStartsOn = localeWeekStartsOn == null ? 0 : toInteger(localeWeekStartsOn);\n var weekStartsOn = options.weekStartsOn == null ? defaultWeekStartsOn : toInteger(options.weekStartsOn); // Test if weekStartsOn is between 0 and 6 _and_ is not NaN\n\n if (!(weekStartsOn >= 0 && weekStartsOn <= 6)) {\n throw new RangeError('weekStartsOn must be between 0 and 6 inclusively');\n }\n\n var date = toDate(dirtyDate);\n var day = date.getDay();\n var diff = (day < weekStartsOn ? 7 : 0) + day - weekStartsOn;\n date.setDate(date.getDate() - diff);\n date.setHours(0, 0, 0, 0);\n return date;\n}","exports = module.exports = require(\"../../../node_modules/css-loader/dist/runtime/api.js\")(false);\n// Imports\nvar getUrl = require(\"../../../node_modules/css-loader/dist/runtime/getUrl.js\");\nvar ___CSS_LOADER_URL___0___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-light.woff2\"));\nvar ___CSS_LOADER_URL___1___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-lightit.woff2\"));\nvar ___CSS_LOADER_URL___2___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-reg.woff2\"));\nvar ___CSS_LOADER_URL___3___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-regit.woff2\"));\nvar ___CSS_LOADER_URL___4___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-sbold.woff2\"));\nvar ___CSS_LOADER_URL___5___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-sboldit.woff2\"));\nvar ___CSS_LOADER_URL___6___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-bold.woff2\"));\nvar ___CSS_LOADER_URL___7___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-boldit.woff2\"));\nvar ___CSS_LOADER_URL___8___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-Light.woff2\"));\nvar ___CSS_LOADER_URL___9___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-LightIt.woff2\"));\nvar ___CSS_LOADER_URL___10___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-Regular.woff2\"));\nvar ___CSS_LOADER_URL___11___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-RegularIt.woff2\"));\nvar ___CSS_LOADER_URL___12___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-Semibold.woff2\"));\nvar ___CSS_LOADER_URL___13___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-SemiboldIt.woff2\"));\nvar ___CSS_LOADER_URL___14___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-Bold.woff2\"));\nvar ___CSS_LOADER_URL___15___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-BoldIt.woff2\"));\nvar ___CSS_LOADER_URL___16___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-ExtraBold.woff2\"));\nvar ___CSS_LOADER_URL___17___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-ExtraBoldIt.woff2\"));\nvar ___CSS_LOADER_URL___18___ = getUrl(require(\"../../template/main/fonts/aofl-icons/icomoon.woff2?c6f21u\"));\n// Module\nexports.push([module.id, \"/*! @aofl-component */:root{--blue:#0d6efd;--indigo:#6610f2;--purple:#8b42ca;--pink:#e83e8c;--red:#e50b0a;--orange:#e17a05;--yellow:#ffc107;--green:#3c8104;--teal:#20c997;--cyan:#53c9dc;--white:#fff;--gray:#6b6b6b;--gray-dark:#343a40;--light-green:#b1dd53;--table-border-color:#d8d8d8;--gray-100:#f2f2f2;--gray-200:#d9d9d9;--gray-300:#d8d8d8;--gray-400:#ced4da;--gray-500:#adb5bd;--gray-600:#6c757d;--gray-700:#4a4a4a;--gray-800:#343a40;--gray-900:#212529;--gray-accessibility:#6b6b6b;--primary:#0d6efd;--secondary:#adb5bd;--success:#3c8104;--info:#cfe2ff;--warning:#e17a05;--danger:#d20a09;--light:#f8f9fa;--dark:#000;--breakpoint-xxs:0;--breakpoint-xs:375px;--breakpoint-sm:576px;--breakpoint-md:768px;--breakpoint-lg:992px;--breakpoint-xl:1200px;--font-family-sans-serif:aofl-sans,Arial,Helvetica,sans-serif;--font-family-monospace:SFMono-Regular,Menlo,Monaco,Consolas,\\\"Liberation Mono\\\",\\\"Courier New\\\",monospace;--z-index-dropdown:1000;--z-index-sticky:1020;--z-index-fixed:1030;--z-index-modal-backdrop:1040;--z-index-modal:1050;--z-index-popover:1060;--z-index-tooltip:1070;--header-height:6rem;--content-height:calc(100vh - 6rem);--sidepanel-width:20rem;--purple-color:#641da3;--purple-600:#956abc;--purple-400:#c7afdd;--purple-200:#e0d2ed;--struggling:#f6993b;--below-target:#ffcf00;--in_progress:#1280f5;--prior_knowledge:#edf887;--mastery_achieved:#69d112;--inactive:#d8d8d8}route-view{max-width:1200px}@font-face{font-family:aofl-sans;font-style:normal;font-weight:300;src:url(\" + ___CSS_LOADER_URL___0___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:italic;font-weight:300;src:url(\" + ___CSS_LOADER_URL___1___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:normal;font-weight:400;src:url(\" + ___CSS_LOADER_URL___2___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:italic;font-weight:400;src:url(\" + ___CSS_LOADER_URL___3___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:normal;font-weight:600;src:url(\" + ___CSS_LOADER_URL___4___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:italic;font-weight:600;src:url(\" + ___CSS_LOADER_URL___5___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:normal;font-weight:700;src:url(\" + ___CSS_LOADER_URL___6___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:italic;font-weight:700;src:url(\" + ___CSS_LOADER_URL___7___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:normal;font-weight:300;src:url(\" + ___CSS_LOADER_URL___8___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:italic;font-weight:300;src:url(\" + ___CSS_LOADER_URL___9___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:normal;font-weight:400;src:url(\" + ___CSS_LOADER_URL___10___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:italic;font-weight:400;src:url(\" + ___CSS_LOADER_URL___11___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:normal;font-weight:600;src:url(\" + ___CSS_LOADER_URL___12___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:italic;font-weight:600;src:url(\" + ___CSS_LOADER_URL___13___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:normal;font-weight:700;src:url(\" + ___CSS_LOADER_URL___14___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:italic;font-weight:700;src:url(\" + ___CSS_LOADER_URL___15___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:normal;font-weight:800;src:url(\" + ___CSS_LOADER_URL___16___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:italic;font-weight:800;src:url(\" + ___CSS_LOADER_URL___17___ + \") format(\\\"woff2\\\")}@font-face{font-family:icomoon;src:url(\" + ___CSS_LOADER_URL___18___ + \") format(\\\"woff2\\\");font-weight:400;font-style:normal;font-display:block}[class*=\\\" ai-\\\"],[class^=ai-]{font-family:icomoon!important;speak:never;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*,:after,:before{box-sizing:border-box}html{font-family:sans-serif;line-height:1.15;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:rgba(0,0,0,0)}figcaption,main,nav,section{display:block}[tabindex=\\\"-1\\\"]:focus{outline:0!important}strong{font-weight:bolder}a{color:#0d6efd;background-color:transparent}a,a:hover{text-decoration:none}a:hover{color:rgb(0,86.1,178.5)}a:not([href]):not([tabindex]),a:not([href]):not([tabindex]):focus,a:not([href]):not([tabindex]):hover{color:inherit;text-decoration:none}a:not([href]):not([tabindex]):focus{outline:0}code{font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:1em}table{border-collapse:collapse}caption{padding-top:.75rem;padding-bottom:.75rem;color:#6c757d;text-align:left;caption-side:bottom}th{text-align:inherit}label{display:inline-block;margin-bottom:.8rem}button{border-radius:0}button:focus{outline:1px dotted;outline:5px auto -webkit-focus-ring-color}button,input{margin:0;font-family:inherit;font-size:inherit;line-height:inherit;overflow:visible}button{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]:not(:disabled),[type=reset]:not(:disabled),[type=submit]:not(:disabled),button:not(:disabled){cursor:pointer}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{padding:0;border-style:none}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}input[type=date],input[type=datetime-local],input[type=month],input[type=time]{-webkit-appearance:listbox}legend{display:block;width:100%;max-width:100%;padding:0;margin-bottom:.5rem;font-size:1.5rem;line-height:inherit;color:inherit;white-space:normal}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:none}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}summary{display:list-item;cursor:pointer}template{display:none}[hidden]{display:none!important}*{-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important}html{font-size:62.5%;height:100%}link-to{color:#0d6efd;text-decoration:none;background-color:transparent}link-to:hover{color:rgb(0,86.1,178.5);text-decoration:none;cursor:pointer}route-view{display:none;flex:1}site-header{background-color:#fff;display:none;position:-webkit-sticky;position:sticky;top:0;height:var(--header-height)}#main{display:none;flex:1 auto;max-width:100%;overflow:hidden;flex-direction:column;overflow-y:scroll}.loaded #main,.loaded site-header,body.loaded,route-view.loaded{display:flex}route-view.left-panel-active{padding-left:var(--sidepanel-width)}code{font-size:87.5%;color:#e83e8c;word-break:break-word}a>code{color:inherit}.col{position:relative;width:100%;padding-right:15px;padding-left:15px;flex-basis:0;flex-grow:1;max-width:100%}.table{width:100%;margin-bottom:1.6rem;color:#000}.table td,.table th{padding:.75rem;vertical-align:top;border-top:1px solid #d8d8d8}.table thead th{vertical-align:bottom;border-bottom:2px solid #d8d8d8}.table tbody+tbody{border-top:2px solid #d8d8d8}.table-hover tbody tr:hover{color:#000;background-color:#f2f7fb}.table .thead-light th{color:#000;background-color:#f9fcfc;border-color:#d8d8d8}thead th{white-space:nowrap}.table thead th{border-bottom:1px solid #d8d8d8}.table tbody+tbody{border-top:1px solid #d8d8d8}.table td{border-top:1px dotted #d8d8d8}th.sort{cursor:pointer}th.sort:before{display:inline-block;margin-right:.5rem;content:\\\"\\\";width:1rem;height:1rem;background:url(data:image/gif;base64,R0lGODlhFQAJAIABAAAAAAAAACH/C1hNUCBEYXRhWE1QPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNS4wLWMwNjAgNjEuMTM0Nzc3LCAyMDEwLzAyLzEyLTE3OjMyOjAwICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wL21tLyIgeG1sbnM6c3RSZWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZVJlZiMiIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIgeG1wTU06T3JpZ2luYWxEb2N1bWVudElEPSJ4bXAuZGlkOjAxODAxMTc0MDcyMDY4MTE4OEM2REYyN0ExMDhBNDJFIiB4bXBNTTpEb2N1bWVudElEPSJ4bXAuZGlkOjdCNTAyODcwMEY4NjExRTBBMzkyQzAyM0E1RDk3RDc3IiB4bXBNTTpJbnN0YW5jZUlEPSJ4bXAuaWlkOjdCNTAyODZGMEY4NjExRTBBMzkyQzAyM0E1RDk3RDc3IiB4bXA6Q3JlYXRvclRvb2w9IkFkb2JlIFBob3Rvc2hvcCBDUzUgTWFjaW50b3NoIj4gPHhtcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InhtcC5paWQ6MDE4MDExNzQwNzIwNjgxMTg4QzZERjI3QTEwOEE0MkUiIHN0UmVmOmRvY3VtZW50SUQ9InhtcC5kaWQ6MDE4MDExNzQwNzIwNjgxMTg4QzZERjI3QTEwOEE0MkUiLz4gPC9yZGY6RGVzY3JpcHRpb24+IDwvcmRmOlJERj4gPC94OnhtcG1ldGE+IDw/eHBhY2tldCBlbmQ9InIiPz4B//79/Pv6+fj39vX08/Lx8O/u7ezr6uno5+bl5OPi4eDf3t3c29rZ2NfW1dTT0tHQz87NzMvKycjHxsXEw8LBwL++vby7urm4t7a1tLOysbCvrq2sq6qpqKempaSjoqGgn56dnJuamZiXlpWUk5KRkI+OjYyLiomIh4aFhIOCgYB/fn18e3p5eHd2dXRzcnFwb25tbGtqaWhnZmVkY2JhYF9eXVxbWllYV1ZVVFNSUVBPTk1MS0pJSEdGRURDQkFAPz49PDs6OTg3NjU0MzIxMC8uLSwrKikoJyYlJCMiISAfHh0cGxoZGBcWFRQTEhEQDw4NDAsKCQgHBgUEAwIBAAAh+QQBAAABACwAAAAAFQAJAAACF4yPgMsJ2mJ4VDKKrd4GVz5lYPeMiVUAADs=) 50% no-repeat}.table-hover tr:hover,input[type=checkbox],input[type=radio]{cursor:pointer}input[type=checkbox]+label,input[type=radio]+label{cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.custom-control-input:focus-visible:checked~.custom-control-label:before,.custom-control-input:focus-visible:not(:checked)~.custom-control-label:before{outline:2px solid #e50b0a}.btn{display:inline-block;font-weight:400;color:#000;text-align:center;vertical-align:middle;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;background-color:transparent;border:1px solid transparent;padding:.375rem .75rem;font-size:1.6rem;line-height:1.5;border-radius:.25rem;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.btn{transition:none}}.btn:hover{color:#000;text-decoration:none}.btn:focus{outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.btn.disabled,.btn:disabled{opacity:.65}a.btn.disabled{pointer-events:none}.btn:disabled{cursor:not-allowed}.btn.disabled,link-to.btn.disabled,link-to.btn:disabled,link-to.btn[disabled]{pointer-events:none}button,button:active{outline:none}.btn:focus-visible,[tabindex=\\\"0\\\"]:focus-visible,a:focus-visible,aofl-list-option:focus-visible,button[type=button]:focus-visible,collapse-button:focus-visible{outline:1px solid #e50b0a;border:1px solid #e50b0a}.btn.disabled,.btn:disabled{background:#cfe2ff;border-color:#cfe2ff;color:#0d6efd;opacity:1}.dropdown-toggle{white-space:nowrap}.dropdown-toggle:after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:\\\"\\\";border-top:.3em solid;border-right:.3em solid transparent;border-bottom:0;border-left:.3em solid transparent}.dropdown-toggle:empty:after{margin-left:0}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:16rem;padding:.8rem 0;margin:.2rem 0 0;font-size:1.3rem;color:#212529;text-align:left;list-style:none;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.15);border-radius:.25rem}.dropdown-menu-right{right:0;left:auto}.dropdown-menu[x-placement^=bottom],.dropdown-menu[x-placement^=left],.dropdown-menu[x-placement^=right],.dropdown-menu[x-placement^=top]{right:auto;bottom:auto}.dropdown-item{display:block;width:100%;padding:.8rem 2rem;clear:both;font-weight:400;color:#212529;text-align:inherit;white-space:nowrap;background-color:transparent;border:0}.dropdown-item:focus,.dropdown-item:hover{color:rgb(21.6283783784,24.25,26.8716216216);text-decoration:none;background-color:#d8d8d8}.dropdown-item.active,.dropdown-item:active{color:#fff;text-decoration:none;background-color:#0d6efd}.dropdown-item.disabled,.dropdown-item:disabled{color:#6c757d;pointer-events:none;background-color:transparent}.dropdown-menu{box-shadow:0 0 .6rem 0 #d8d8d8;display:inline-block;float:none;position:relative;margin:.2rem .4rem .4rem 0;min-width:1rem}bulk-actions-button+.dropdown-menu{max-width:270px;width:100%}bulk-actions-button+.dropdown-menu .btn{font-size:1.2rem;font-weight:600}ems-dropdown>button.btn{display:flex;align-items:center;border:1px solid var(--gray)}.custom-control{position:relative;display:block;min-height:2.4rem}.custom-control-input{position:absolute;z-index:-1;opacity:0}.custom-control-input:focus~.custom-control-label:before{box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.custom-control-input:focus:not(:checked)~.custom-control-label:before{border-color:rgb(127.5,189,255)}.custom-control-input:not(:disabled):active~.custom-control-label:before{color:#fff;background-color:rgb(178.5,215.4,255);border-color:rgb(178.5,215.4,255)}.custom-control-input:disabled~.custom-control-label{color:#6c757d}.custom-control-input:disabled~.custom-control-label:before{background-color:#e9ecef}.custom-control-label{position:relative;margin-bottom:0;vertical-align:top;padding-left:1.5em}.custom-control-label:before{pointer-events:none;background-color:#fff;border:1px solid #adb5bd}.custom-control-label:after,.custom-control-label:before{position:absolute;top:.2em;left:0;display:block;width:1em;height:1em;content:\\\"\\\"}.custom-control-label:after{background:no-repeat 50%/50% 50%}.custom-checkbox .custom-control-input:checked~.custom-control-label:before{color:#fff;border-color:#0d6efd;background-color:#0d6efd}.custom-checkbox .custom-control-label:before{border-radius:.25rem}.custom-checkbox .custom-control-input:checked~.custom-control-label:after{background-image:url(\\\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26l2.974 2.99L8 2.193z'/%3E%3C/svg%3E\\\")}.custom-checkbox .custom-control-input:indeterminate~.custom-control-label:before{border-color:#007bff;background-color:#007bff}.custom-checkbox .custom-control-input:indeterminate~.custom-control-label:after{background-image:url(\\\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 4'%3E%3Cpath stroke='%23fff' d='M0 2h4'/%3E%3C/svg%3E\\\")}.custom-checkbox .custom-control-input:disabled:checked~.custom-control-label:before{background-color:rgba(0,123,255,.5)}.custom-checkbox .custom-control-input:disabled:indeterminate~.custom-control-label:before{background-color:rgba(0,123,255,.5)}.custom-control-label:before{transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.custom-control-label:before{transition:none}}@keyframes progress-bar-stripes{0%{background-position:1.6rem 0}to{background-position:0 0}}.modal-container{background-color:rgba(0,0,0,.2);position:fixed;top:0;bottom:0;right:0;left:0;z-index:var(--z-index-modal)}.modal-container :first-child{overflow:auto}.modal{position:relative;display:block;height:100vh}.modal-dialog-centered.modal-dialog-scrollable{height:auto;max-height:calc(100% - 2.8rem);min-height:auto}.modal-body,.modal-content,.modal-footer,.modal-header{border:none}.modal-header{font-size:2rem;padding:2.4rem}.modal-body{padding:0 2.4rem 4.8rem}.colored-header{color:#fff}.modal-body p{text-align:left}.colored-header-primary{background-color:#0d6efd}.colored-header-secondary{background-color:#adb5bd}.colored-header-success{background-color:#3c8104}.colored-header-info{background-color:#cfe2ff}.colored-header-warning{background-color:#e17a05}.colored-header-danger{background-color:#d20a09}.colored-header-light{background-color:#f8f9fa}.colored-header-dark{background-color:#000}@keyframes spinner-border{to{transform:rotate(1turn)}}@keyframes spinner-grow{0%{transform:scale(0)}50%{opacity:1}}.d-none{display:none!important}.w-100{width:100%!important}.m-0{margin:0!important}.text-nowrap{white-space:nowrap!important}.cursor-default{cursor:default!important}.outline-focus-red:focus-visible{outline:2px solid #e50b0a}[hidden]{visibility:hidden!important;height:0!important;width:0!important;min-height:unset!important}@media print{*,:after,:before{text-shadow:none!important;box-shadow:none!important}a:not(.btn){text-decoration:underline}thead{display:table-header-group}tr{page-break-inside:avoid}@page{size:a3}.table{border-collapse:collapse!important}.table td,.table th{background-color:#fff!important}}@media print{main::-webkit-scrollbar{display:none}main{-ms-overflow-style:none;scrollbar-width:none}}@page{size:A4;margin:20mm 16mm 20mm 16mm}:host{display:inline-block;min-width:100%;min-height:12rem}th.select-col{width:39px}th.text-nowrap:focus-visible{outline:none;border:2px solid var(--red)}\", \"\"]);\n","exports = module.exports = require(\"../../../../node_modules/css-loader/dist/runtime/api.js\")(false);\n// Imports\nvar getUrl = require(\"../../../../node_modules/css-loader/dist/runtime/getUrl.js\");\nvar ___CSS_LOADER_URL___0___ = getUrl(require(\"../../../template/main/fonts/aofl-sans/aoflsans-light.woff2\"));\nvar ___CSS_LOADER_URL___1___ = getUrl(require(\"../../../template/main/fonts/aofl-sans/aoflsans-lightit.woff2\"));\nvar ___CSS_LOADER_URL___2___ = getUrl(require(\"../../../template/main/fonts/aofl-sans/aoflsans-reg.woff2\"));\nvar ___CSS_LOADER_URL___3___ = getUrl(require(\"../../../template/main/fonts/aofl-sans/aoflsans-regit.woff2\"));\nvar ___CSS_LOADER_URL___4___ = getUrl(require(\"../../../template/main/fonts/aofl-sans/aoflsans-sbold.woff2\"));\nvar ___CSS_LOADER_URL___5___ = getUrl(require(\"../../../template/main/fonts/aofl-sans/aoflsans-sboldit.woff2\"));\nvar ___CSS_LOADER_URL___6___ = getUrl(require(\"../../../template/main/fonts/aofl-sans/aoflsans-bold.woff2\"));\nvar ___CSS_LOADER_URL___7___ = getUrl(require(\"../../../template/main/fonts/aofl-sans/aoflsans-boldit.woff2\"));\nvar ___CSS_LOADER_URL___8___ = getUrl(require(\"../../../template/main/fonts/abcmouse-sans/ABCmouseSans-Light.woff2\"));\nvar ___CSS_LOADER_URL___9___ = getUrl(require(\"../../../template/main/fonts/abcmouse-sans/ABCmouseSans-LightIt.woff2\"));\nvar ___CSS_LOADER_URL___10___ = getUrl(require(\"../../../template/main/fonts/abcmouse-sans/ABCmouseSans-Regular.woff2\"));\nvar ___CSS_LOADER_URL___11___ = getUrl(require(\"../../../template/main/fonts/abcmouse-sans/ABCmouseSans-RegularIt.woff2\"));\nvar ___CSS_LOADER_URL___12___ = getUrl(require(\"../../../template/main/fonts/abcmouse-sans/ABCmouseSans-Semibold.woff2\"));\nvar ___CSS_LOADER_URL___13___ = getUrl(require(\"../../../template/main/fonts/abcmouse-sans/ABCmouseSans-SemiboldIt.woff2\"));\nvar ___CSS_LOADER_URL___14___ = getUrl(require(\"../../../template/main/fonts/abcmouse-sans/ABCmouseSans-Bold.woff2\"));\nvar ___CSS_LOADER_URL___15___ = getUrl(require(\"../../../template/main/fonts/abcmouse-sans/ABCmouseSans-BoldIt.woff2\"));\nvar ___CSS_LOADER_URL___16___ = getUrl(require(\"../../../template/main/fonts/abcmouse-sans/ABCmouseSans-ExtraBold.woff2\"));\nvar ___CSS_LOADER_URL___17___ = getUrl(require(\"../../../template/main/fonts/abcmouse-sans/ABCmouseSans-ExtraBoldIt.woff2\"));\nvar ___CSS_LOADER_URL___18___ = getUrl(require(\"../../../template/main/fonts/aofl-icons/icomoon.woff2?c6f21u\"));\n// Module\nexports.push([module.id, \"/*! @aofl-component */:root{--blue:#0d6efd;--indigo:#6610f2;--purple:#8b42ca;--pink:#e83e8c;--red:#e50b0a;--orange:#e17a05;--yellow:#ffc107;--green:#3c8104;--teal:#20c997;--cyan:#53c9dc;--white:#fff;--gray:#6b6b6b;--gray-dark:#343a40;--light-green:#b1dd53;--table-border-color:#d8d8d8;--gray-100:#f2f2f2;--gray-200:#d9d9d9;--gray-300:#d8d8d8;--gray-400:#ced4da;--gray-500:#adb5bd;--gray-600:#6c757d;--gray-700:#4a4a4a;--gray-800:#343a40;--gray-900:#212529;--gray-accessibility:#6b6b6b;--primary:#0d6efd;--secondary:#adb5bd;--success:#3c8104;--info:#cfe2ff;--warning:#e17a05;--danger:#d20a09;--light:#f8f9fa;--dark:#000;--breakpoint-xxs:0;--breakpoint-xs:375px;--breakpoint-sm:576px;--breakpoint-md:768px;--breakpoint-lg:992px;--breakpoint-xl:1200px;--font-family-sans-serif:aofl-sans,Arial,Helvetica,sans-serif;--font-family-monospace:SFMono-Regular,Menlo,Monaco,Consolas,\\\"Liberation Mono\\\",\\\"Courier New\\\",monospace;--z-index-dropdown:1000;--z-index-sticky:1020;--z-index-fixed:1030;--z-index-modal-backdrop:1040;--z-index-modal:1050;--z-index-popover:1060;--z-index-tooltip:1070;--header-height:6rem;--content-height:calc(100vh - 6rem);--sidepanel-width:20rem;--purple-color:#641da3;--purple-600:#956abc;--purple-400:#c7afdd;--purple-200:#e0d2ed;--struggling:#f6993b;--below-target:#ffcf00;--in_progress:#1280f5;--prior_knowledge:#edf887;--mastery_achieved:#69d112;--inactive:#d8d8d8}route-view{max-width:1200px}@font-face{font-family:aofl-sans;font-style:normal;font-weight:300;src:url(\" + ___CSS_LOADER_URL___0___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:italic;font-weight:300;src:url(\" + ___CSS_LOADER_URL___1___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:normal;font-weight:400;src:url(\" + ___CSS_LOADER_URL___2___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:italic;font-weight:400;src:url(\" + ___CSS_LOADER_URL___3___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:normal;font-weight:600;src:url(\" + ___CSS_LOADER_URL___4___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:italic;font-weight:600;src:url(\" + ___CSS_LOADER_URL___5___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:normal;font-weight:700;src:url(\" + ___CSS_LOADER_URL___6___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:italic;font-weight:700;src:url(\" + ___CSS_LOADER_URL___7___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:normal;font-weight:300;src:url(\" + ___CSS_LOADER_URL___8___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:italic;font-weight:300;src:url(\" + ___CSS_LOADER_URL___9___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:normal;font-weight:400;src:url(\" + ___CSS_LOADER_URL___10___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:italic;font-weight:400;src:url(\" + ___CSS_LOADER_URL___11___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:normal;font-weight:600;src:url(\" + ___CSS_LOADER_URL___12___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:italic;font-weight:600;src:url(\" + ___CSS_LOADER_URL___13___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:normal;font-weight:700;src:url(\" + ___CSS_LOADER_URL___14___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:italic;font-weight:700;src:url(\" + ___CSS_LOADER_URL___15___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:normal;font-weight:800;src:url(\" + ___CSS_LOADER_URL___16___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:italic;font-weight:800;src:url(\" + ___CSS_LOADER_URL___17___ + \") format(\\\"woff2\\\")}@font-face{font-family:icomoon;src:url(\" + ___CSS_LOADER_URL___18___ + \") format(\\\"woff2\\\");font-weight:400;font-style:normal;font-display:block}[class*=\\\" ai-\\\"],[class^=ai-]{font-family:icomoon!important;speak:never;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*,:after,:before{box-sizing:border-box}html{font-family:sans-serif;line-height:1.15;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:rgba(0,0,0,0)}figcaption,main,nav,section{display:block}[tabindex=\\\"-1\\\"]:focus{outline:0!important}h1,h2{margin-top:0;margin-bottom:1rem}strong{font-weight:bolder}caption{padding-top:.75rem;padding-bottom:.75rem;color:#6c757d;text-align:left;caption-side:bottom}button{border-radius:0}button:focus{outline:1px dotted;outline:5px auto -webkit-focus-ring-color}button,input{margin:0;font-family:inherit;font-size:inherit;line-height:inherit;overflow:visible}button{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]:not(:disabled),[type=reset]:not(:disabled),[type=submit]:not(:disabled),button:not(:disabled){cursor:pointer}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{padding:0;border-style:none}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}input[type=date],input[type=datetime-local],input[type=month],input[type=time]{-webkit-appearance:listbox}legend{display:block;width:100%;max-width:100%;padding:0;margin-bottom:.5rem;font-size:1.5rem;line-height:inherit;color:inherit;white-space:normal}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:none}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}summary{display:list-item;cursor:pointer}template{display:none}[hidden]{display:none!important}*{-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important}html{font-size:62.5%;height:100%}link-to{color:#0d6efd;text-decoration:none;background-color:transparent}link-to:hover{color:rgb(0,86.1,178.5);text-decoration:none;cursor:pointer}route-view{display:none;flex:1}site-header{background-color:#fff;display:none;position:-webkit-sticky;position:sticky;top:0;height:var(--header-height)}#main{display:none;flex:1 auto;max-width:100%;overflow:hidden;flex-direction:column;overflow-y:scroll}.loaded #main,.loaded site-header,body.loaded,route-view.loaded{display:flex}route-view.left-panel-active{padding-left:var(--sidepanel-width)}.h1,.h2,h1,h2{margin-bottom:1rem;font-weight:500;line-height:1.2}.h1,h1{font-size:6rem}.h2,h2{font-size:2rem}.row{display:flex;flex-wrap:wrap;margin-right:-15px;margin-left:-15px}.col-sm-10{position:relative;width:100%;padding-right:15px;padding-left:15px}@media (min-width:576px){.col-sm-10{flex:0 0 83.3333333333%;max-width:83.3333333333%}}input[type=checkbox],input[type=radio]{cursor:pointer}button,button:active{outline:none}[tabindex=\\\"0\\\"]:focus-visible,aofl-list-option:focus-visible,button[type=button]:focus-visible,collapse-button:focus-visible{outline:1px solid #e50b0a;border:1px solid #e50b0a}.dropdown{position:relative;display:inline-block}@keyframes progress-bar-stripes{0%{background-position:1.6rem 0}to{background-position:0 0}}.modal-container{background-color:rgba(0,0,0,.2);position:fixed;top:0;bottom:0;right:0;left:0;z-index:var(--z-index-modal)}.modal-container :first-child{overflow:auto}.modal{position:relative;display:block;height:100vh}.modal-dialog-centered.modal-dialog-scrollable{height:auto;max-height:calc(100% - 2.8rem);min-height:auto}.modal-body,.modal-content,.modal-footer,.modal-header{border:none}.modal-header{font-size:2rem;padding:2.4rem}.modal-body{padding:0 2.4rem 4.8rem}.colored-header{color:#fff}.modal-body p{text-align:left}.colored-header-primary{background-color:#0d6efd}.colored-header-secondary{background-color:#adb5bd}.colored-header-success{background-color:#3c8104}.colored-header-info{background-color:#cfe2ff}.colored-header-warning{background-color:#e17a05}.colored-header-danger{background-color:#d20a09}.colored-header-light{background-color:#f8f9fa}.colored-header-dark{background-color:#000}@keyframes spinner-border{to{transform:rotate(1turn)}}@keyframes spinner-grow{0%{transform:scale(0)}50%{opacity:1}}.d-flex{display:flex!important}.justify-content-center{justify-content:center!important}.mb-5{margin-bottom:3rem!important}.h1,.h2{font-weight:600}[hidden]{visibility:hidden!important;height:0!important;width:0!important;min-height:unset!important}@media print{*,:after,:before{text-shadow:none!important;box-shadow:none!important}h2{orphans:3;widows:3;page-break-after:avoid}@page{size:a3}}@media print{main::-webkit-scrollbar{display:none}main{-ms-overflow-style:none;scrollbar-width:none}}@page{size:A4;margin:20mm 16mm 20mm 16mm}:host{display:flex;padding:2rem;flex-direction:column;width:100%;margin:0 auto}@media(max-width:1024px){:host{min-width:800px}}\", \"\"]);\n","import {until} from 'lit-html/directives/until';\nimport '@modules/show-modal';\nimport {\n permissions,\n sdoNs,\n pages,\n} from '@modules/constants-enumerate';\nimport '@modules/auth-context';\nimport '@modules/link-to';\nimport '@modules/hide-for-level';\nimport '../modals';\nimport '../license-info-row';\nimport licenseInfoStyles from './license-info-row.css';\nimport {\n accessibleProductLabels,\n activationStartTypeLabels,\n generalLabels,\n licenseHomeAccessTypeLabels\n} from '@modules/i18n-labels';\nimport '@modules/wrap-unsafe-html';\nimport {wrapUnsafeHtml} from '@modules/wrap-unsafe-html';\n\nconst licenseTransferPermissions = [permissions.LICENSE_TRANSFER];\n\nexport default (ctx, html) => html`\n${ctx.childGroupsLicenseCount.total > 0 || ctx.childGroupsLicenseCount.assigned > 0\n|| ctx.childGroupsLicenseCount.available > 0 || ctx.childGroupsLicenseCount.redeemed > 0 ? html`\n
\n
\n \n ctx.scrollIntoView('inventory-allocation')}\"\n .row=\"${{\n label: until(ctx.__('', 'Given to Lower Levels:')),\n total: ctx.childGroupsLicenseCount.total,\n assigned: ctx.childGroupsLicenseCount.assigned,\n unassigned: ctx.childGroupsLicenseCount.available,\n redeemed: ctx.childGroupsLicenseCount.redeemed,\n}}\">\n
\n
\n ', 'All Licenses:')),\n total: ctx.currentGroupLicenseCount.total + ctx.childGroupsLicenseCount.total,\n assigned: ctx.currentGroupLicenseCount.assigned + ctx.childGroupsLicenseCount.assigned,\n unassigned: ctx.currentGroupLicenseCount.available + ctx.childGroupsLicenseCount.available,\n redeemed: ctx.currentGroupLicenseCount.redeemed + ctx.childGroupsLicenseCount.redeemed\n}}\">\n
\n
` : ''}\n
\n

${until(ctx.__('', 'Product Information'))}

\n
\n
\n
${until(ctx.__('', 'Product Name'))}
\n
${accessibleProductLabels[ctx.product]}
\n
\n\n
\n
\n
${until(ctx.__('', 'Home Access Type'))}
\n
${until(licenseHomeAccessTypeLabels[ctx.info?.access_type])}
\n
\n
\n\n
\n ${ctx.info.fspk ? html`\n
\n
${until(ctx.__('', 'FSPK'))}
\n
${until(generalLabels.Yes)}
\n
` : ''}\n
\n
\n\n
\n\n

${until(ctx.__('', 'License Details'))}

\n
\n
\n
\n
${until(ctx.__('', 'License Name'))}
\n
${ctx.info.name}
\n
\n
\n\n
\n
\n
${until((ctx.info.type === 'site') ? generalLabels.DurationLabel : generalLabels.FixedEndDateLabel)}
\n
\n ${until((ctx.info.type === 'site') ?\n ctx.info.fixed_duration_label :\n (ctx.info.expired) ? until(ctx._r(ctx.__('', '%r1% (Expired)'), ctx.info.fixed_end_date)) : ctx.info.fixed_end_date)}\n
\n
\n
\n\n
\n
\n
${until(ctx.__('', 'ID'))}
\n
${ctx.info.id}
\n
\n
\n
\n
\n
\n
\n
${until(generalLabels.TransferableLicense)}
\n
${ctx.info.transferable ? until(generalLabels.Yes) : until(generalLabels.No)}
\n
\n
\n\n
\n
\n
${until(ctx.__('', 'Usage Trigger'))}
\n
${until(activationStartTypeLabels[ctx.info.activation_start_type])}
\n
\n
\n\n
\n
\n
${until(ctx.__('', 'Automatically License New Students'))}
\n
${ctx.info.auto_license ? until(generalLabels.Yes) : until(generalLabels.No)}
\n
\n
\n
\n${!ctx.info.expired ? html`\n
\n \n \n \n ${until(ctx.__('', 'Give to Lower Levels'))}\n \n \n \n
${until(ctx.__('', 'Available:'))} ${ctx.currentGroupLicenseCount.available}
\n
\n ${until(ctx.__('', 'To assign available licenses to students, you may do so individually or in bulk from the students page, or any of the other manage sections.'))}\n
\n`: ''}\n
\n`;\n","import styles from './template.css';\nimport template from './template';\nimport {storeInstance} from '@aofl/store/dist/legacy';\nimport {AoflElement, customElement, property} from '@aofl/element';\nimport {mapStatePropertiesMixin} from '@aofl/map-state-properties-mixin';\nimport {i18nMixin} from '@aofl/i18n-mixin';\n\nimport translations from '../../i18n';\nimport '../../../../modules/session-sdo';\nimport '../../../../modules/sdo-licenses';\nimport {sdoNs} from '@modules/constants-enumerate';\n\nconst setTranslations = (ctx) => {\n return {\n licenseDuration: {\n D: (days) => {\n if (days <= 1) {\n return ctx._r(ctx.__('', '%r1% Day'), days);\n }\n return ctx._r(ctx.__('', '%r1% Days'), days);\n },\n M: (months) => {\n if (months <= 1) {\n return ctx._r(ctx.__('', '%r1% Month'), months);\n }\n return ctx._r(ctx.__('', '%r1% Months'), months);\n },\n Y: (years) => {\n if (years <= 1) {\n return ctx._r(ctx.__('', '%r1% Year'), years);\n }\n return ctx._r(ctx.__('', '%r1% Years'), years);\n },\n }\n };\n};\n\n/**\n * @summary LicenseInfo\n * @extends {mapStatePropertiesMixin(i18nMixin(AoflElement))}\n */\n@customElement('license-info')\nclass LicenseInfo extends mapStatePropertiesMixin(i18nMixin(AoflElement)) {\n /**\n * Creates an instance of LicenseInfo.\n */\n constructor() {\n super();\n this.translations = translations;\n this.storeInstance = storeInstance;\n }\n\n @property({type: String, mapState: `${sdoNs.SESSION}.current_role.group_name`, store: storeInstance})\n groupName = '';\n\n @property({type: Object, mapState: `${sdoNs.LICENSES}.$details`, store: storeInstance})\n info = {};\n\n @property({type: Object, mapState: `${sdoNs.LICENSES}.currentGroupLicenseCount`, store: storeInstance})\n currentGroupLicenseCount = {};\n\n @property({type: Object, mapState: `${sdoNs.LICENSES}.childGroupsLicenseCount`, store: storeInstance})\n childGroupsLicenseCount = {};\n\n @property({type: String})\n product = '';\n\n @property({type: Number, mapState: `${sdoNs.SESSION}.$levels`, store: storeInstance})\n tierLevels = 0;\n\n scrollIntoView(id) {\n this.dispatchEvent(new CustomEvent('scroll-to', {\n composed: true,\n detail: {\n id\n }\n }));\n }\n\n /**\n * @readonly\n */\n static is = 'license-info';\n\n connectedCallback() {\n super.connectedCallback();\n\n const t10s = setTranslations(this);\n if (this.info.fixed_duration !== '') {\n const durationSplit = this.info.fixed_duration.match(/P(\\d+)([YMD])/);\n const duration = durationSplit[1];\n const term = durationSplit[2];\n this.info.fixed_duration_label = t10s.licenseDuration[term](duration);\n }\n }\n\n mapStateProperties() {\n this.product = this.info.product;\n }\n\n /**\n *\n * @return {Object}\n */\n render() {\n return super.render({\n default: {\n template,\n styles: [styles]\n }\n });\n }\n}\n\nexport default LicenseInfo;\n","import {until} from 'lit-html/directives/until';\n\nexport default (ctx, html) => html`\n
\n ${until(ctx.__('', 'Looks like you made some edits, do you want to save your changes before continuing?'))}\n
\n\n
\n
\n \n
\n
\n \n
\n
\n`;\n","import styles from './template.css';\nimport template from './template';\nimport {AoflElement, customElement} from '@aofl/element';\nimport {i18nMixin} from '@aofl/i18n-mixin';\nimport translations from '@modules/i18n';\n\n/**\n * @summary UnsavedChangesConfirmation\n * @extends {i18nMixin(AoflElement)}\n */\n@customElement('unsaved-changes-confirmation')\nclass UnsavedChangesConfirmation extends i18nMixin(AoflElement) {\n /**\n * @readonly\n */\n static is = 'unsaved-changes-confirmation';\n\n /**\n * Creates an instance of UnsavedChangesConfirmation.\n */\n constructor() {\n super();\n this.translations = translations;\n }\n\n /**\n *\n * @return {Object}\n */\n render() {\n return super.render({\n default: {template, styles: [styles]}\n });\n }\n\n back() {\n this.dispatch(false);\n }\n\n proceed() {\n this.dispatch(true);\n }\n\n dispatch(proceed) {\n this.dispatchEvent(new CustomEvent('submit', {\n detail: {\n proceed\n }\n }));\n }\n}\n\nexport default UnsavedChangesConfirmation;\n","import {until} from 'lit-html/directives/until';\nimport {repeat} from 'lit-html/directives/repeat';\nimport {formLabels} from '@modules/i18n-labels';\n\nconst renderChild = (ctx, html, child) => {\n const nameClass = child.linked ? 'student-name disabled' : '';\n let wrapperClass = child.linked ? 'disabled' : 'cursor-pointer';\n let radioClass = child.linked ? 'invisible' : '';\n if (ctx.currentActivation.child_profile_id === child.profile_id) {\n wrapperClass += ' selected';\n radioClass += 'selected';\n }\n\n return html`\n
ctx.toggle(child)}>\n
\n \n
\n
\n ${until(child.name)}\n
\n
`;\n};\n\nexport default (ctx, html) => html`\n
\n
\n
\n
${until(ctx.__('', 'Child Selection'))}
\n
\n
${until(ctx._r(ctx.__('', 'We found existing children in your account. Please choose the account names to sync with %r1%.'), ctx.currentActivation.student.name))}
\n
\n
\n \n
\n
\n
\n ${repeat(ctx.currentActivation.children, (child) => child, (child) => renderChild(ctx, html, child))}\n
ctx.toggle({profile_id: 'new'})}>\n
\n \n
\n
\n ${until(ctx.__('', 'Add New Child'))}\n
\n
\n
\n
\n
\n ${until(formLabels.submit)}\n \n
\n
\n
\n
\n`;\n","import styles from './template.css';\nimport template from './template';\nimport {AoflElement, customElement, property} from '@aofl/element';\nimport {i18nMixin} from '@aofl/i18n-mixin';\nimport translations from '@routes/parent/i18n';\nimport {SimpleModal} from '@modules/simple-modal';\n\n/**\n * @summary SelectChildModal\n * @extends {AoflElement}\n */\n@customElement('select-child-modal')\nclass SelectChildModal extends i18nMixin(AoflElement) {\n /**\n * Creates an instance of SelectChildModal.\n */\n constructor() {\n super();\n this.translations = translations;\n }\n\n /**\n * @readonly\n */\n static is = 'select-child-modal';\n\n @property({type: Object, attribute: true})\n currentActivation = {};\n\n @property({type: Boolean})\n disabled = true;\n\n toggle(child) {\n if (child.linked) {\n return;\n }\n\n this.currentActivation.child_profile_id = child.profile_id;\n this.disabled = false;\n this.requestUpdate();\n }\n\n onSubmit(e) {\n e.preventDefault();\n this.dispatchEvent(new Event('submit'));\n }\n\n onSkip(e) {\n e.preventDefault();\n this.dispatchEvent(new Event('skip'));\n }\n\n firstUpdated(changedProperties) {\n this.shadowRoot.querySelector('[tabindex=\"0\"]').focus();\n }\n\n close() {\n SimpleModal.hide();\n }\n\n /**\n * @return {Object}\n */\n render() {\n return super.render({\n default: {template, styles: [styles]}\n });\n }\n}\n\nexport default SelectChildModal;\n","import {AoflElement, customElement, property} from '@aofl/element';\nimport styles from './select-list.css';\n\n\n@customElement('aofl-select-list')\nclass AoflSelectList extends AoflElement {\n /**\n *\n */\n constructor() {\n super();\n this.options = [];\n this.value = '';\n this.focusIndex = 0;\n }\n\n static is = 'aofl-select-list';\n\n @property({type: Boolean})\n ['focus-trap'] = false;\n /**\n * If the element losing focus is not a child of the list reset the focusIndex\n *\n * @param {Event} e\n */\n /* istanbul ignore next */\n focusoutCallback(e) {\n if (e.relatedTarget && e.relatedTarget.parentNode === this) { return; }\n\n this.focusIndex = 0;\n }\n /**\n * @param {Event} e\n */\n keydownCallback(e) {\n if (!this['focus-trap']) {\n return;\n }\n e.preventDefault();\n if (e.keyCode === 38 || (e.shiftKey && e.keyCode === 9)) { // up arrow or shift tab\n if (this.focusIndex > 0) {\n this.options[--this.focusIndex].focus();\n }\n } else if (e.keyCode === 40 || e.keyCode === 9) { // down arrow or tab\n if (this.focusIndex < this.options.length - 1) {\n this.options[++this.focusIndex].focus();\n }\n }\n }\n /**\n * @param {Event} e\n */\n mouseoverCallback(e) {\n const index = this.options.indexOf(e.target);\n if (index > -1) {\n this.focusIndex = index;\n }\n }\n /**\n * Updated selected value and dispatches a custom event with that value\n *\n * @param {Boolean} dispatch\n * @fires AoflSelectList.change\n */\n updateSelected(option, dispatch = true, init = false) {\n option.setAttribute('selected', '');\n option.selected = true;\n this.value = option.value;\n if (dispatch) {\n this.dispatchEvent(new CustomEvent('change', {composed: true, bubbles: true}));\n }\n for (let i = 0; i < this.options.length; i++) {\n if (this.options[i] !== option) {\n this.options[i].selected = false;\n }\n }\n }\n /**\n * Add an option to be selected\n *\n * @param {String} option\n */\n addOption(option) {\n this.options.push(option);\n\n if (this.options.length === 1) {\n this.value = option.value;\n } else if (option.selected) {\n this.updateSelected(option, false);\n }\n }\n /**\n *\n */\n connectedCallback() {\n super.connectedCallback();\n this.addEventListener('keydown', this.keydownCallback);\n this.addEventListener('focusout', this.focusoutCallback);\n this.addEventListener('mouseover', this.mouseoverCallback);\n }\n /**\n * @return {Object}\n */\n render() {\n return super.render((ctx, html) => html``, [styles]);\n }\n /**\n *\n */\n disconnectedCallback() {\n super.disconnectedCallback();\n this.removeEventListener('keydown', this.keydownCallback);\n this.removeEventListener('focusout', this.focusoutCallback);\n this.removeEventListener('mouseover', this.mouseoverCallback);\n }\n}\n\n// if (window.customElements.get(AoflSelectList.is) === void 0) {\n// window.customElements.define(AoflSelectList.is, AoflSelectList);\n// }\n\nexport default AoflSelectList;\n","import {AoflElement, customElement} from '@aofl/element';\nimport styles from './multi-select-list';\n/**\n * Similar to select multi\n *\n * @memberof module:@aofl/select\n * @extends {AoflElement}\n */\n@customElement('aofl-multiselect-list')\nclass AoflMultiselectList extends AoflElement {\n static is = 'aofl-multiselect-list';\n\n /**\n * @readonly\n * @type {Object}\n */\n static get properties() {\n return {\n options: {type: Array, attribute: false},\n selected: {type: Array, attribute: false}\n };\n }\n\n /**\n *\n */\n constructor() {\n super();\n this.options = [];\n this.selected = [];\n this.focusIndex = 0;\n }\n\n /**\n *\n */\n connectedCallback() {\n super.connectedCallback();\n this.addEventListener('keydown', this.keydownCallback);\n this.addEventListener('focusout', this.focusoutCallback);\n this.addEventListener('mouseover', this.mouseoverCallback);\n }\n\n /**\n * @return {Object}\n */\n render() {\n return super.render((ctx, html) => html``, [styles]);\n }\n\n /**\n * If the element losing focus is not a child of the list reset the focusIndex\n *\n * @param {Event} e\n */\n /* istanbul ignore next */\n focusoutCallback(e) {\n if (e.relatedTarget && e.relatedTarget.parentNode === this) { return; }\n\n this.focusIndex = 0;\n }\n\n /**\n * Handle the tab and arrow focus logic within the list\n *\n * @param {Event} e\n */\n keydownCallback(e) {\n e.preventDefault();\n if (e.keyCode === 38 || (e.shiftKey && e.keyCode === 9)) { // up arrow or shift tab\n if (this.focusIndex > 0) {\n this.options[--this.focusIndex].focus();\n }\n } else if (e.keyCode === 40 || e.keyCode === 9) { // down arrow or tab\n if (this.focusIndex < this.options.length - 1) {\n this.options[++this.focusIndex].focus();\n }\n }\n }\n\n /**\n * Focus list options that are hovered over\n *\n * @param {Event} e\n */\n mouseoverCallback(e) {\n const index = this.options.indexOf(e.target);\n if (index > -1) {\n this.focusIndex = index;\n }\n }\n\n /**\n * Toggle selected on list element and dispatch custom change event\n *\n * @param {Boolean} dispatch\n * @fires AoflMultiselectList.change\n */\n updateSelected(option, dispatch = true) {\n const selected = [];\n for (let i = 0; i < this.options.length; i++) {\n if (this.options[i] === option) {\n if (option.selected) {\n option.selected = false;\n } else {\n option.selected = true;\n if (selected.indexOf(option.value) === -1) {\n selected.push(option.value);\n }\n }\n } else {\n if (this.options[i].selected && selected.indexOf(this.options[i].value) === -1) {\n selected.push(this.options[i].value);\n }\n }\n }\n\n this.selected = selected;\n\n if (dispatch) {\n this.dispatchEvent(new CustomEvent('change', {\n composed: true,\n bubbles: true\n }));\n }\n }\n\n /**\n * Remove all items from selected array and remove selected attributes from all list options\n *\n */\n clearSelected() {\n this.selected.length = 0;\n for (let i = 0; i < this.options.length; i++) {\n this.options[i].removeAttribute('selected');\n }\n\n this.dispatchEvent(new CustomEvent('change'));\n }\n\n /**\n * Add an option to be selected\n *\n * @param {String} option\n */\n addOption(option) {\n this.options.push(option);\n if (option.selected && this.selected.indexOf(option.value) === -1) {\n this.selected.push(option.value);\n }\n }\n\n /**\n *\n */\n disconnectedCallback() {\n super.disconnectedCallback();\n this.removeEventListener('keydown', this.keydownCallback);\n this.removeEventListener('focusout', this.focusoutCallback);\n this.removeEventListener('mouseover', this.mouseoverCallback);\n }\n}\n\nexport default AoflMultiselectList;\n","import {AoflElement, customElement} from '@aofl/element';\nimport {findParent} from '@aofl/component-utils';\nimport styles from './list-option.css';\n\n/**\n * Similar to option tag can be combined with or \n *\n * @memberof module:@aofl/select\n * @extends {AoflElement}\n */\n@customElement('aofl-list-option')\nclass AoflListOption extends AoflElement {\n /**\n * Creates an instance of AoflListOption.\n */\n constructor() {\n super();\n }\n static is = 'aofl-list-option';\n /**\n *\n * @readonly\n * @type {Object}\n */\n static get properties() {\n return {\n selected: {type: Boolean, reflect: true},\n disabled: {type: Boolean},\n value: {type: String}\n };\n }\n /**\n * @param {Event} e\n */\n keydownCallback(e) {\n if (e.keyCode === 13 || e.keyCode === 32) { // If user hits enter or space\n this.select();\n } else if (e.keyCode === 37 || e.keyCode === 39) // If user hits left or right arrow\n {\n const index = this.listElement.options.indexOf(this);\n let nextIndex = index + 1;\n if (e.keyCode === 37) {\n nextIndex = index - 1;\n }\n if (nextIndex < 0) {\n nextIndex = 0;\n } else if (nextIndex >= this.listElement.options.length) {\n nextIndex = nextIndex = this.listElement.options.length - 1;\n }\n this.listElement.options[nextIndex].focus();\n }\n }\n\n /**\n * Update selected value in the parent list\n */\n select(e) {\n this.listElement.updateSelected(this, true);\n }\n /**\n *\n */\n connectedCallback() {\n super.connectedCallback();\n this.addEventListener('click', this.select);\n this.addEventListener('keydown', this.keydownCallback);\n\n this.updateComplete.then(() => {\n this.value = this.value || this.textContent;\n this.listElement = findParent(this, 'addOption');\n this.listElement.addOption(this);\n });\n }\n /**\n * @return {Object}\n */\n render() {\n return super.render((ctx, html) => html``, [styles]);\n }\n /**\n *\n */\n disconnectedCallback() {\n super.disconnectedCallback();\n this.removeEventListener('click', this.select);\n this.removeEventListener('keydown', this.keydownCallback);\n }\n}\n\nexport default AoflListOption;\n","\"use strict\";\nif (typeof Object.assign !== \"function\") {\n Object.assign = function (target) {\n var args = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n args[_i - 1] = arguments[_i];\n }\n if (!target) {\n throw TypeError(\"Cannot convert undefined or null to object\");\n }\n var _loop_1 = function (source) {\n if (source) {\n Object.keys(source).forEach(function (key) { return (target[key] = source[key]); });\n }\n };\n for (var _a = 0, args_1 = args; _a < args_1.length; _a++) {\n var source = args_1[_a];\n _loop_1(source);\n }\n return target;\n };\n}\n","exports = module.exports = require(\"../../../node_modules/css-loader/dist/runtime/api.js\")(false);\n// Imports\nvar getUrl = require(\"../../../node_modules/css-loader/dist/runtime/getUrl.js\");\nvar ___CSS_LOADER_URL___0___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-light.woff2\"));\nvar ___CSS_LOADER_URL___1___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-lightit.woff2\"));\nvar ___CSS_LOADER_URL___2___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-reg.woff2\"));\nvar ___CSS_LOADER_URL___3___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-regit.woff2\"));\nvar ___CSS_LOADER_URL___4___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-sbold.woff2\"));\nvar ___CSS_LOADER_URL___5___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-sboldit.woff2\"));\nvar ___CSS_LOADER_URL___6___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-bold.woff2\"));\nvar ___CSS_LOADER_URL___7___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-boldit.woff2\"));\nvar ___CSS_LOADER_URL___8___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-Light.woff2\"));\nvar ___CSS_LOADER_URL___9___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-LightIt.woff2\"));\nvar ___CSS_LOADER_URL___10___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-Regular.woff2\"));\nvar ___CSS_LOADER_URL___11___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-RegularIt.woff2\"));\nvar ___CSS_LOADER_URL___12___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-Semibold.woff2\"));\nvar ___CSS_LOADER_URL___13___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-SemiboldIt.woff2\"));\nvar ___CSS_LOADER_URL___14___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-Bold.woff2\"));\nvar ___CSS_LOADER_URL___15___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-BoldIt.woff2\"));\nvar ___CSS_LOADER_URL___16___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-ExtraBold.woff2\"));\nvar ___CSS_LOADER_URL___17___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-ExtraBoldIt.woff2\"));\nvar ___CSS_LOADER_URL___18___ = getUrl(require(\"../../template/main/fonts/aofl-icons/icomoon.woff2?c6f21u\"));\n// Module\nexports.push([module.id, \"/*! @aofl-component */:root{--blue:#0d6efd;--indigo:#6610f2;--purple:#8b42ca;--pink:#e83e8c;--red:#e50b0a;--orange:#e17a05;--yellow:#ffc107;--green:#3c8104;--teal:#20c997;--cyan:#53c9dc;--white:#fff;--gray:#6b6b6b;--gray-dark:#343a40;--light-green:#b1dd53;--table-border-color:#d8d8d8;--gray-100:#f2f2f2;--gray-200:#d9d9d9;--gray-300:#d8d8d8;--gray-400:#ced4da;--gray-500:#adb5bd;--gray-600:#6c757d;--gray-700:#4a4a4a;--gray-800:#343a40;--gray-900:#212529;--gray-accessibility:#6b6b6b;--primary:#0d6efd;--secondary:#adb5bd;--success:#3c8104;--info:#cfe2ff;--warning:#e17a05;--danger:#d20a09;--light:#f8f9fa;--dark:#000;--breakpoint-xxs:0;--breakpoint-xs:375px;--breakpoint-sm:576px;--breakpoint-md:768px;--breakpoint-lg:992px;--breakpoint-xl:1200px;--font-family-sans-serif:aofl-sans,Arial,Helvetica,sans-serif;--font-family-monospace:SFMono-Regular,Menlo,Monaco,Consolas,\\\"Liberation Mono\\\",\\\"Courier New\\\",monospace;--z-index-dropdown:1000;--z-index-sticky:1020;--z-index-fixed:1030;--z-index-modal-backdrop:1040;--z-index-modal:1050;--z-index-popover:1060;--z-index-tooltip:1070;--header-height:6rem;--content-height:calc(100vh - 6rem);--sidepanel-width:20rem;--purple-color:#641da3;--purple-600:#956abc;--purple-400:#c7afdd;--purple-200:#e0d2ed;--struggling:#f6993b;--below-target:#ffcf00;--in_progress:#1280f5;--prior_knowledge:#edf887;--mastery_achieved:#69d112;--inactive:#d8d8d8}route-view{max-width:1200px}@font-face{font-family:aofl-sans;font-style:normal;font-weight:300;src:url(\" + ___CSS_LOADER_URL___0___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:italic;font-weight:300;src:url(\" + ___CSS_LOADER_URL___1___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:normal;font-weight:400;src:url(\" + ___CSS_LOADER_URL___2___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:italic;font-weight:400;src:url(\" + ___CSS_LOADER_URL___3___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:normal;font-weight:600;src:url(\" + ___CSS_LOADER_URL___4___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:italic;font-weight:600;src:url(\" + ___CSS_LOADER_URL___5___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:normal;font-weight:700;src:url(\" + ___CSS_LOADER_URL___6___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:italic;font-weight:700;src:url(\" + ___CSS_LOADER_URL___7___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:normal;font-weight:300;src:url(\" + ___CSS_LOADER_URL___8___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:italic;font-weight:300;src:url(\" + ___CSS_LOADER_URL___9___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:normal;font-weight:400;src:url(\" + ___CSS_LOADER_URL___10___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:italic;font-weight:400;src:url(\" + ___CSS_LOADER_URL___11___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:normal;font-weight:600;src:url(\" + ___CSS_LOADER_URL___12___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:italic;font-weight:600;src:url(\" + ___CSS_LOADER_URL___13___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:normal;font-weight:700;src:url(\" + ___CSS_LOADER_URL___14___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:italic;font-weight:700;src:url(\" + ___CSS_LOADER_URL___15___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:normal;font-weight:800;src:url(\" + ___CSS_LOADER_URL___16___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:italic;font-weight:800;src:url(\" + ___CSS_LOADER_URL___17___ + \") format(\\\"woff2\\\")}@font-face{font-family:icomoon;src:url(\" + ___CSS_LOADER_URL___18___ + \") format(\\\"woff2\\\");font-weight:400;font-style:normal;font-display:block}[class*=\\\" ai-\\\"],[class^=ai-]{font-family:icomoon!important;speak:never;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.ai-search:before{content:\\\"\\\\e929\\\"}*,:after,:before{box-sizing:border-box}html{font-family:sans-serif;line-height:1.15;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:rgba(0,0,0,0)}figcaption,main,nav,section{display:block}[tabindex=\\\"-1\\\"]:focus{outline:0!important}strong{font-weight:bolder}caption{padding-top:.75rem;padding-bottom:.75rem;color:#6c757d;text-align:left;caption-side:bottom}label{display:inline-block;margin-bottom:.8rem}button{border-radius:0}button:focus{outline:1px dotted;outline:5px auto -webkit-focus-ring-color}button,input,select{margin:0;font-family:inherit;font-size:inherit;line-height:inherit}button,input{overflow:visible}button,select{text-transform:none}select{word-wrap:normal}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]:not(:disabled),[type=reset]:not(:disabled),[type=submit]:not(:disabled),button:not(:disabled){cursor:pointer}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{padding:0;border-style:none}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}input[type=date],input[type=datetime-local],input[type=month],input[type=time]{-webkit-appearance:listbox}legend{display:block;width:100%;max-width:100%;padding:0;margin-bottom:.5rem;font-size:1.5rem;line-height:inherit;color:inherit;white-space:normal}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:none}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}summary{display:list-item;cursor:pointer}template{display:none}[hidden]{display:none!important}*{-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important}html{font-size:62.5%;height:100%}link-to{color:#0d6efd;text-decoration:none;background-color:transparent}link-to:hover{color:rgb(0,86.1,178.5);text-decoration:none;cursor:pointer}route-view{display:none;flex:1}site-header{background-color:#fff;display:none;position:-webkit-sticky;position:sticky;top:0;height:var(--header-height)}#main{display:none;flex:1 auto;max-width:100%;overflow:hidden;flex-direction:column;overflow-y:scroll}.loaded #main,.loaded site-header,body.loaded,route-view.loaded{display:flex}route-view.left-panel-active{padding-left:var(--sidepanel-width)}.form-control{display:block;width:100%;height:calc(1.5em + .75rem + 2px);padding:.375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:#495057;background-color:#fff;background-clip:padding-box;border:1px solid #ced4da;border-radius:.25rem;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.form-control{transition:none}}.form-control::-ms-expand{background-color:transparent;border:0}.form-control:focus{color:#495057;background-color:#fff;border-color:rgb(127.5,189,255);outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.form-control::-webkit-input-placeholder{color:#6c757d;opacity:1}.form-control::-moz-placeholder{color:#6c757d;opacity:1}.form-control:-ms-input-placeholder{color:#6c757d;opacity:1}.form-control::-ms-input-placeholder{color:#6c757d;opacity:1}.form-control::placeholder{color:#6c757d;opacity:1}.form-control:disabled,.form-control[readonly]{background-color:#e9ecef;opacity:1}select.form-control:focus::-ms-value{color:#495057;background-color:#fff}select.form-control[multiple],select.form-control[size]{height:auto}.form-group{margin-bottom:1.6rem}.form-control{font-size:1.5rem;height:4.8rem;padding:1.2rem 1rem}.form-control[multiple]{padding:0}.form-control[multiple] option{padding:.8rem 1.2rem}input[type=checkbox],input[type=radio]{cursor:pointer}input[type=checkbox]+label,input[type=radio]+label{cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}form .form-control::-webkit-input-placeholder{color:#6b6b6b;border-color:#6b6b6b}form .form-control::-moz-placeholder,form .form-control::-ms-input-placeholder,form .form-control::-webkit-input-placeholder,form .form-control::placeholder{color:#6b6b6b;border-color:#6b6b6b}.form-control{border:1px solid #6b6b6b}.form-control:focus{border-color:#0d6efd}.btn{display:inline-block;font-weight:400;color:#000;text-align:center;vertical-align:middle;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;background-color:transparent;border:1px solid transparent;padding:.375rem .75rem;font-size:1.6rem;line-height:1.5;border-radius:.25rem;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.btn{transition:none}}.btn:hover{color:#000;text-decoration:none}.btn.focus,.btn:focus{outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.btn:disabled{opacity:.65;cursor:not-allowed}link-to.btn:disabled,link-to.btn[disabled]{pointer-events:none}button,button:active{outline:none}.btn:focus-visible,[tabindex=\\\"0\\\"]:focus-visible,aofl-list-option:focus-visible,button[type=button]:focus-visible,collapse-button:focus-visible{outline:1px solid #e50b0a;border:1px solid #e50b0a}.btn:disabled{background:#cfe2ff;border-color:#cfe2ff;color:#0d6efd;opacity:1}.dropdown{position:relative;display:inline-block}ems-dropdown>button.btn{display:flex;align-items:center;border:1px solid var(--gray)}.search-form-group{position:relative}.search-form-group .search-btns{position:absolute;top:0;right:0}.search-btns .btn{height:4.8rem;line-height:4.425rem}@keyframes progress-bar-stripes{0%{background-position:1.6rem 0}to{background-position:0 0}}.modal-container{background-color:rgba(0,0,0,.2);position:fixed;top:0;bottom:0;right:0;left:0;z-index:var(--z-index-modal)}.modal-container :first-child{overflow:auto}.modal{position:relative;display:block;height:100vh}.modal-dialog-centered.modal-dialog-scrollable{height:auto;max-height:calc(100% - 2.8rem);min-height:auto}.modal-body,.modal-content,.modal-footer,.modal-header{border:none}.modal-header{font-size:2rem;padding:2.4rem}.modal-body{padding:0 2.4rem 4.8rem}.colored-header{color:#fff}.modal-body p{text-align:left}.colored-header-primary{background-color:#0d6efd}.colored-header-secondary{background-color:#adb5bd}.colored-header-success{background-color:#3c8104}.colored-header-info{background-color:#cfe2ff}.colored-header-warning{background-color:#e17a05}.colored-header-danger{background-color:#d20a09}.colored-header-light{background-color:#f8f9fa}.colored-header-dark{background-color:#000}@keyframes spinner-border{to{transform:rotate(1turn)}}@keyframes spinner-grow{0%{transform:scale(0)}50%{opacity:1}}.align-middle{vertical-align:middle!important}.d-inline-block{display:inline-block!important}.m-0{margin:0!important}.mb-0{margin-bottom:0!important}.mr-2{margin-right:.5rem!important}.mb-3{margin-bottom:1rem!important}.font-weight-semibold{font-weight:600!important}[hidden]{visibility:hidden!important;height:0!important;width:0!important;min-height:unset!important}@media print{*,:after,:before{text-shadow:none!important;box-shadow:none!important}@page{size:a3}}@media print{main::-webkit-scrollbar{display:none}main{-ms-overflow-style:none;scrollbar-width:none}}@page{size:A4;margin:20mm 16mm 20mm 16mm}:host{display:inline-block;width:100%}.search-form-group input{padding-right:4.3rem;padding-bottom:7px;padding-top:7px;height:auto;font-size:1.6rem}.search-btns .btn{font-size:2rem;height:unset;line-height:4rem;padding-top:0;padding-bottom:0;margin-top:-1px}.filter-active .search-form-group input{padding-right:8.2rem}aofl-list-option:hover{cursor:pointer}aofl-list-option[selected]{background:var(--primary);color:var(--white)}\", \"\"]);\n","import toInteger from '../_lib/toInteger/index.js';\nimport toDate from '../toDate/index.js';\nimport getDaysInMonth from '../getDaysInMonth/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name addMonths\n * @category Month Helpers\n * @summary Add the specified number of months to the given date.\n *\n * @description\n * Add the specified number of months to the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of months to be added\n * @returns {Date} the new date with the months added\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Add 5 months to 1 September 2014:\n * var result = addMonths(new Date(2014, 8, 1), 5)\n * //=> Sun Feb 01 2015 00:00:00\n */\n\nexport default function addMonths(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var date = toDate(dirtyDate);\n var amount = toInteger(dirtyAmount);\n var desiredMonth = date.getMonth() + amount;\n var dateWithDesiredMonth = new Date(0);\n dateWithDesiredMonth.setFullYear(date.getFullYear(), desiredMonth, 1);\n dateWithDesiredMonth.setHours(0, 0, 0, 0);\n var daysInMonth = getDaysInMonth(dateWithDesiredMonth); // Set the last day of the new month\n // if the original date was the last day of the longer month\n\n date.setMonth(desiredMonth, Math.min(daysInMonth, date.getDate()));\n return date;\n}","import toDate from '../toDate/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name getDaysInMonth\n * @category Month Helpers\n * @summary Get the number of days in a month of the given date.\n *\n * @description\n * Get the number of days in a month of the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the given date\n * @returns {Number} the number of days in a month\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // How many days are in February 2000?\n * var result = getDaysInMonth(new Date(2000, 1))\n * //=> 29\n */\n\nexport default function getDaysInMonth(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var year = date.getFullYear();\n var monthIndex = date.getMonth();\n var lastDayOfMonth = new Date(0);\n lastDayOfMonth.setFullYear(year, monthIndex + 1, 0);\n lastDayOfMonth.setHours(0, 0, 0, 0);\n return lastDayOfMonth.getDate();\n}","import '../dropdown';\nimport {until} from 'lit-html/directives/until';\n\nexport default (ctx, html) => html`\n \n \n
\n ${ctx.productOptions.map((item, itemIndex) => html`\n \n `)}\n
\n
\n\n${ctx.showLicenses ? html`\n\n \n
\n ${ctx.licenseOptions.map((item, itemIndex) => html`\n \n `)}\n
\n
`: ''}\n\n\n\n \n
\n ${ctx.licenseStatuses.map((item, itemIndex) => html`\n \n `)}\n
\n
\n\n`;\n","import styles from './template.css';\nimport template from './template';\nimport {AoflElement, customElement, property} from '@aofl/element';\nimport {storeInstance} from '@aofl/store/dist/legacy';\nimport {productLabels, productStatuses, sdoNs} from '@modules/constants-enumerate';\nimport {ApiService} from '@modules/api-service';\nimport {i18nMixin} from '@aofl/i18n-mixin';\nimport translations from '@modules/i18n';\nimport {until} from 'lit-html/directives/until';\n\nconst setTranslations = (ctx) => {\n return {\n labels: {\n selectProduct: ctx.__('', 'Select Product'),\n selectLicense: ctx.__('', 'Select License'),\n }\n };\n};\n\n/**\n * @summary LicenseFilters\n * @extends {AoflElement}\n */\n@customElement('license-filters')\nclass LicenseFilters extends i18nMixin(AoflElement) {\n /**\n * Creates an instance of LicenseFilters.\n */\n constructor() {\n super();\n this.translations = translations;\n }\n\n /**\n * @readonly\n */\n static is = 'license-filters';\n\n @property({type: String})\n licenseStatus = '';\n\n @property({type: Number})\n licenseStatusIndex = 0;\n\n @property({type: Array})\n licenseStatuses = [];\n\n @property({type: String})\n currentLicenseStatusLabel = null;\n\n @property({type: Number})\n license = '';\n\n @property({type: Number})\n licenseIndex = 0;\n\n @property({type: Array})\n licenseOptions = [];\n\n @property({type: String})\n currentLicenseLabel = null;\n\n @property({type: String})\n product = '';\n\n @property({type: Number})\n productIndex = 0;\n\n @property({type: Array})\n productOptions = [];\n\n @property({type: String})\n currentProductLabel = null;\n\n @property({type: Boolean})\n showLicenses = null;\n\n @property({type: Boolean})\n showLicensesFromRoot = null;\n\n @property({type: Array})\n licenseResults = null;\n\n buildLicenseDropdownOptions() {\n const temp = [\n {\n label: until(this.t10s.labels.selectLicense),\n value: '',\n product: ''\n }\n ];\n const productsForThisGroup = [];\n\n for (let i = 0; i < this.licenseResults.results.length; i++) {\n if (this.licenseResults.results[i].product === this.product || this.product === '') {\n temp.push({\n label: this.licenseResults.results[i].name,\n value: this.licenseResults.results[i].id,\n product: this.licenseResults.results[i].product\n });\n }\n productsForThisGroup[this.licenseResults.results[i].product] = true;\n }\n this.licenseOptions = temp; // this is set because pushing individual values will not cause an update\n\n // set license value to blank in case the currently selected license does not match the current Product license list\n this.currentLicenseLabel = this.licenseOptions[0].label;\n this.license = '';\n\n return productsForThisGroup;\n }\n\n setLicenseStatusToAssignedInvitedRedeemed() {\n if (this.licenseStatusIndex === 0) {\n for (let i = 0; i < this.licenseStatuses.length; i++) {\n if (this.licenseStatuses[i].value === productStatuses.ASSIGNED_INVITED_REDEEMED) {\n this.licenseStatusIndex = i;\n this.licenseStatus = this.licenseStatuses[i].value;\n this.currentLicenseStatusLabel = this.licenseStatuses[i].label;\n }\n }\n }\n }\n\n selectOption(source, index) {\n if (source === 'aofl_product') {\n this.productIndex = index;\n this.product = this.productOptions[index].value;\n this.currentProductLabel = this.productOptions[index].label;\n\n // Selecting product reduces the options under license name to only show licenses for that product\n this.buildLicenseDropdownOptions();\n\n // Selecting product sets the status filter to \"assigned + invited + redeemed\" if status does not already have a value\n this.setLicenseStatusToAssignedInvitedRedeemed();\n } else if (source === 'license_id') {\n this.licenseIndex = index;\n this.license = this.licenseOptions[index].value;\n this.currentLicenseLabel = this.licenseOptions[index].label;\n\n // Selecting product reduces the options under license name to only show licenses for that product\n for (let i = 0; i < this.productOptions.length; i++) {\n if (this.productOptions[i].value === this.licenseOptions[index].product) {\n this.productIndex = i;\n this.product = this.productOptions[i].value;\n this.currentProductLabel = this.productOptions[i].label;\n }\n }\n\n // Selecting license sets the status filter to \"assigned + invited + redeemed\" if status does not already have a value\n this.setLicenseStatusToAssignedInvitedRedeemed();\n } else if (source === 'license_status') {\n this.licenseStatusIndex = index;\n this.licenseStatus = this.licenseStatuses[index].value;\n this.currentLicenseStatusLabel = this.licenseStatuses[index].label;\n }\n\n this.dispatchEvent(new CustomEvent('license-status-change', {\n composed: true,\n bubbles: true\n }));\n }\n\n async connectedCallback() {\n super.connectedCallback();\n\n // Retrieve product and license data for this group\n const state = storeInstance.getState();\n const filters = {};\n filters.group_path = state[sdoNs.SESSION].group_info.path + state[sdoNs.SESSION].group_info.id + '.';\n filters.hide_expired = true;\n filters.show_licenses_from_root = this.showLicensesFromRoot;\n this.licenseResults = await ApiService.licenseSearch([], filters);\n\n this.t10s = setTranslations(this);\n\n // Generate dropdown options for licenses\n const productsForThisGroup = this.buildLicenseDropdownOptions();\n\n // Generate dropdown options for products\n const temp = [\n {\n label: until(this.t10s.labels.selectProduct),\n value: ''\n }\n ];\n for (const productOption in productsForThisGroup) {\n temp.push({\n label: productLabels[productOption],\n value: productOption\n });\n }\n this.productOptions = temp; // this is set because pushing individual values will not cause an update, might need to sort this\n\n // Set dropdowns to any values passed in\n this.currentProductLabel = this.productOptions[0].label;\n this.productOptions.forEach(function(item, index) {\n if (item.value === this.product) {\n this.productIndex = index;\n this.currentProductLabel = item.label;\n }\n }, this);\n\n this.currentLicenseLabel = this.licenseOptions[0].label;\n this.licenseOptions.forEach(function(item, index) {\n if (item.value === this.license) {\n this.licenseIndex = index;\n this.currentLicenseLabel = item.label;\n }\n }, this);\n\n this.currentLicenseStatusLabel = this.licenseStatuses[0].label;\n this.licenseStatuses.forEach(function(item, index) {\n if (item.value === this.licenseStatus) {\n this.licenseStatusIndex = index;\n this.currentLicenseStatusLabel = item.label;\n }\n }, this);\n }\n\n\n /**\n *\n * @return {Object}\n */\n render() {\n return super.render({\n default: {\n template,\n styles: [styles]\n }\n });\n }\n}\n\nexport default LicenseFilters;\n","import '../license-filters';\n\nexport default (ctx, html) => html`\n \n`;\n","import styles from './template.css';\nimport template from './template';\nimport {AoflElement, customElement, property} from '@aofl/element';\nimport {storeInstance} from '@aofl/store/dist/legacy';\n/**\n * @summary BaseSearchLicenseFilters\n * @extends {mAoflElement}\n */\n@customElement('base-search-license-filters')\nclass BaseSearchLicenseFilters extends AoflElement {\n /**\n * Creates an instance of BaseSearchLicenseFilters.\n */\n constructor() {\n super();\n this.storeInstance = storeInstance;\n }\n\n /**\n * @readonly\n */\n static is = 'base-search-license-filters';\n\n @property({type: String, attribute: false})\n licenseStatus = '';\n\n @property({type: Array})\n licenseStatuses = [];\n\n @property({type: String, attribute: false})\n license = '';\n\n @property({type: String, attribute: false})\n product = '';\n\n @property({type: Boolean})\n showLicenses = true;\n\n @property({type: Boolean, attribute: false})\n showLicensesFromRoot = false;\n\n /**\n *\n * @protected\n * @param {CustomEvent} e\n */\n filterUpdated(e) {}\n\n /**\n *\n * @return {Object}\n */\n render() {\n return super.render(template, [styles]);\n }\n}\n\nexport {\n BaseSearchLicenseFilters\n};\n","import {customElement} from '@aofl/element';\nimport {sdoNs} from '../constants-enumerate';\nimport {BaseSearchLicenseFilters} from '../base-search-license-filters';\nimport {mapStatePropertiesMixin} from '@aofl/map-state-properties-mixin';\n\n/**\n * @summary UserSearchLicenseFilters\n * @extends {BaseSearchLicenseFilters}\n */\n@customElement('user-search-license-filters')\nclass UserSearchLicenseFilters extends mapStatePropertiesMixin(BaseSearchLicenseFilters) {\n static is = 'user-search-license-filters';\n\n filterUpdated(e) {\n const aoflProduct = e.target.product;\n this.storeInstance.commit({\n namespace: sdoNs.USER_SEARCH,\n mutationId: 'setPendingFiltersProduct',\n payload: aoflProduct\n });\n\n if (this.showLicenses === true) {\n const licenseId = e.target.license;\n this.storeInstance.commit({\n namespace: sdoNs.USER_SEARCH,\n mutationId: 'setPendingFiltersLicense',\n payload: licenseId\n });\n }\n\n const licenseStatus = e.target.licenseStatus;\n this.storeInstance.commit({\n namespace: sdoNs.USER_SEARCH,\n mutationId: 'setPendingFiltersLicenseStatus',\n payload: licenseStatus\n });\n this.dispatchEvent(new CustomEvent('changed'));\n }\n\n mapStateProperties() {\n const state = this.storeInstance.getState();\n this.product = state[sdoNs.USER_SEARCH].$filterProduct;\n this.license = state[sdoNs.USER_SEARCH].$filterLicense;\n this.licenseStatus = state[sdoNs.USER_SEARCH].$filterLicenseStatus;\n }\n}\n\nexport default UserSearchLicenseFilters;\n","import '../data-table';\n\nexport default (ctx, html) => html`\n \n`;\n","import styles from './template.css';\nimport template from './template';\nimport {AoflElement, customElement, property} from '@aofl/element';\nimport {mapStatePropertiesMixin} from '@aofl/map-state-properties-mixin';\nimport {storeInstance} from '@aofl/store/dist/legacy';\nimport {sdoNs} from '../constants-enumerate';\nimport {routerInstance} from '@aofl/router';\nimport {SearchParams} from '../search-url-params';\n\n/**\n * @summary SearchDataTable\n * @extends {mapStatePropertiesMixin(AoflElement)}\n */\n@customElement('search-data-table')\nclass SearchDataTable extends mapStatePropertiesMixin(AoflElement) {\n /**\n * Creates an instance of SearchDataTable.\n */\n constructor() {\n super();\n\n this.storeInstance = storeInstance;\n }\n\n /**\n * @readonly\n */\n static is = 'search-data-table';\n\n searchTargetUrl = '';\n profileTargetUrl = '';\n\n @property({type: Array, attribute: false, hasChanged(val, oldVal) {\n if (typeof oldVal === 'undefined') return false;\n return oldVal !== val;\n }})\n results = [];\n\n @property({type: Array, attribute: false})\n config = [];\n\n @property({type: Boolean, attribute: false})\n allSelected = false;\n\n @property({type: String})\n ['search-namespace'] = sdoNs.GROUP_SEARCH;\n\n @property({type: Boolean})\n ['disable-selection'] = false;\n\n @property({type: Array, attribute: true})\n styles = [];\n\n @property({type: String})\n ['on-select-modal'] = '';\n\n @property({type: String})\n ['aria-label'] = '';\n\n async changeSortHandler(e) {\n this.storeInstance.commit({\n namespace: this['search-namespace'],\n mutationId: 'updateSortOrder',\n payload: {\n index: e.detail.index,\n field: e.detail.item.key\n }\n }, {\n namespace: this['search-namespace'],\n mutationId: 'removeSortLastValues'\n });\n try {\n const state = storeInstance.getState();\n const queryObj = state[this['search-namespace']].queryObj;\n const searchParams = SearchParams.encode(queryObj);\n await routerInstance.navigate(`${this.searchTargetUrl}?${searchParams}`, {});\n } catch (e) {}\n }\n\n rowClickHandler(e) {\n if (!this['on-select-modal']) {\n routerInstance.navigate(`${this.profileTargetUrl}${e.detail.data.id}/`, {});\n }\n }\n\n allToggleHandler(e) {\n this.allSelected = e.detail.checked;\n if (this.allSelected) {\n this.storeInstance.commit({namespace: this['search-namespace'], mutationId: 'selectAll', payload: e.detail});\n this.dispatchEvent(new CustomEvent('select-all-triggered', {\n composed: true,\n }));\n } else {\n this.storeInstance.commit({namespace: this['search-namespace'], mutationId: 'deselectAll'});\n }\n }\n\n pageToggleHandler(e) {\n this.allSelected = e.detail.checked;\n if (this.allSelected) {\n this.storeInstance.commit({namespace: this['search-namespace'], mutationId: 'selectPage', payload: e.detail});\n } else {\n this.storeInstance.commit({namespace: this['search-namespace'], mutationId: 'deselectAll'});\n }\n }\n\n persistentSelectionToggleHandler(e) {\n this.storeInstance.commit({namespace: this['search-namespace'], mutationId: 'selectPage', payload: e.detail});\n }\n\n rowToggleHandler(e) {\n const checked = e.detail.checked;\n const id = e.detail.data.id;\n this.allSelected = false;\n\n if (checked) {\n this.storeInstance.commit(\n {namespace: this['search-namespace'], mutationId: 'select', payload: {id}}\n );\n } else {\n this.storeInstance.commit(\n {namespace: this['search-namespace'], mutationId: 'deselect', payload: {id}}\n );\n }\n }\n\n mapStateProperties() {\n const state = this.storeInstance.getState();\n const searchState = state[this['search-namespace']];\n\n this.results = searchState.results;\n this.config = searchState.tableConfig;\n this.searchTargetUrl = searchState.searchTargetUrl;\n this.profileTargetUrl = searchState.profileTargetUrl;\n this.allSelected = (\n searchState.queryObj.selection_mode === 'all'\n ||\n searchState.selected.length === searchState.queryObj.sort.limit\n );\n this.ariaLabel = this['aria-label'];\n }\n\n /**\n *\n * @return {Object}\n */\n render() {\n return super.render(template, [styles]);\n }\n}\n\nexport default SearchDataTable;\n","export default {\n 'es-US': () => import('./translations_es-US.json'),\n\n 'ja-JP': () => import('./translations_ja-JP.json'),\n\n 'zh-CN': () => import('./translations_zh-CN.json'),\n\n 'zh-TW': () => import('./translations_zh-TW.json'),\n}","exports = module.exports = require(\"../../../../../node_modules/css-loader/dist/runtime/api.js\")(false);\n// Imports\nvar getUrl = require(\"../../../../../node_modules/css-loader/dist/runtime/getUrl.js\");\nvar ___CSS_LOADER_URL___0___ = getUrl(require(\"../../../../template/main/fonts/aofl-sans/aoflsans-light.woff2\"));\nvar ___CSS_LOADER_URL___1___ = getUrl(require(\"../../../../template/main/fonts/aofl-sans/aoflsans-lightit.woff2\"));\nvar ___CSS_LOADER_URL___2___ = getUrl(require(\"../../../../template/main/fonts/aofl-sans/aoflsans-reg.woff2\"));\nvar ___CSS_LOADER_URL___3___ = getUrl(require(\"../../../../template/main/fonts/aofl-sans/aoflsans-regit.woff2\"));\nvar ___CSS_LOADER_URL___4___ = getUrl(require(\"../../../../template/main/fonts/aofl-sans/aoflsans-sbold.woff2\"));\nvar ___CSS_LOADER_URL___5___ = getUrl(require(\"../../../../template/main/fonts/aofl-sans/aoflsans-sboldit.woff2\"));\nvar ___CSS_LOADER_URL___6___ = getUrl(require(\"../../../../template/main/fonts/aofl-sans/aoflsans-bold.woff2\"));\nvar ___CSS_LOADER_URL___7___ = getUrl(require(\"../../../../template/main/fonts/aofl-sans/aoflsans-boldit.woff2\"));\nvar ___CSS_LOADER_URL___8___ = getUrl(require(\"../../../../template/main/fonts/abcmouse-sans/ABCmouseSans-Light.woff2\"));\nvar ___CSS_LOADER_URL___9___ = getUrl(require(\"../../../../template/main/fonts/abcmouse-sans/ABCmouseSans-LightIt.woff2\"));\nvar ___CSS_LOADER_URL___10___ = getUrl(require(\"../../../../template/main/fonts/abcmouse-sans/ABCmouseSans-Regular.woff2\"));\nvar ___CSS_LOADER_URL___11___ = getUrl(require(\"../../../../template/main/fonts/abcmouse-sans/ABCmouseSans-RegularIt.woff2\"));\nvar ___CSS_LOADER_URL___12___ = getUrl(require(\"../../../../template/main/fonts/abcmouse-sans/ABCmouseSans-Semibold.woff2\"));\nvar ___CSS_LOADER_URL___13___ = getUrl(require(\"../../../../template/main/fonts/abcmouse-sans/ABCmouseSans-SemiboldIt.woff2\"));\nvar ___CSS_LOADER_URL___14___ = getUrl(require(\"../../../../template/main/fonts/abcmouse-sans/ABCmouseSans-Bold.woff2\"));\nvar ___CSS_LOADER_URL___15___ = getUrl(require(\"../../../../template/main/fonts/abcmouse-sans/ABCmouseSans-BoldIt.woff2\"));\nvar ___CSS_LOADER_URL___16___ = getUrl(require(\"../../../../template/main/fonts/abcmouse-sans/ABCmouseSans-ExtraBold.woff2\"));\nvar ___CSS_LOADER_URL___17___ = getUrl(require(\"../../../../template/main/fonts/abcmouse-sans/ABCmouseSans-ExtraBoldIt.woff2\"));\nvar ___CSS_LOADER_URL___18___ = getUrl(require(\"../../../../template/main/fonts/aofl-icons/icomoon.woff2?c6f21u\"));\n// Module\nexports.push([module.id, \"/*! @aofl-component */:root{--blue:#0d6efd;--indigo:#6610f2;--purple:#8b42ca;--pink:#e83e8c;--red:#e50b0a;--orange:#e17a05;--yellow:#ffc107;--green:#3c8104;--teal:#20c997;--cyan:#53c9dc;--white:#fff;--gray:#6b6b6b;--gray-dark:#343a40;--light-green:#b1dd53;--table-border-color:#d8d8d8;--gray-100:#f2f2f2;--gray-200:#d9d9d9;--gray-300:#d8d8d8;--gray-400:#ced4da;--gray-500:#adb5bd;--gray-600:#6c757d;--gray-700:#4a4a4a;--gray-800:#343a40;--gray-900:#212529;--gray-accessibility:#6b6b6b;--primary:#0d6efd;--secondary:#adb5bd;--success:#3c8104;--info:#cfe2ff;--warning:#e17a05;--danger:#d20a09;--light:#f8f9fa;--dark:#000;--breakpoint-xxs:0;--breakpoint-xs:375px;--breakpoint-sm:576px;--breakpoint-md:768px;--breakpoint-lg:992px;--breakpoint-xl:1200px;--font-family-sans-serif:aofl-sans,Arial,Helvetica,sans-serif;--font-family-monospace:SFMono-Regular,Menlo,Monaco,Consolas,\\\"Liberation Mono\\\",\\\"Courier New\\\",monospace;--z-index-dropdown:1000;--z-index-sticky:1020;--z-index-fixed:1030;--z-index-modal-backdrop:1040;--z-index-modal:1050;--z-index-popover:1060;--z-index-tooltip:1070;--header-height:6rem;--content-height:calc(100vh - 6rem);--sidepanel-width:20rem;--purple-color:#641da3;--purple-600:#956abc;--purple-400:#c7afdd;--purple-200:#e0d2ed;--struggling:#f6993b;--below-target:#ffcf00;--in_progress:#1280f5;--prior_knowledge:#edf887;--mastery_achieved:#69d112;--inactive:#d8d8d8}route-view{max-width:1200px}@font-face{font-family:aofl-sans;font-style:normal;font-weight:300;src:url(\" + ___CSS_LOADER_URL___0___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:italic;font-weight:300;src:url(\" + ___CSS_LOADER_URL___1___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:normal;font-weight:400;src:url(\" + ___CSS_LOADER_URL___2___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:italic;font-weight:400;src:url(\" + ___CSS_LOADER_URL___3___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:normal;font-weight:600;src:url(\" + ___CSS_LOADER_URL___4___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:italic;font-weight:600;src:url(\" + ___CSS_LOADER_URL___5___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:normal;font-weight:700;src:url(\" + ___CSS_LOADER_URL___6___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:italic;font-weight:700;src:url(\" + ___CSS_LOADER_URL___7___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:normal;font-weight:300;src:url(\" + ___CSS_LOADER_URL___8___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:italic;font-weight:300;src:url(\" + ___CSS_LOADER_URL___9___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:normal;font-weight:400;src:url(\" + ___CSS_LOADER_URL___10___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:italic;font-weight:400;src:url(\" + ___CSS_LOADER_URL___11___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:normal;font-weight:600;src:url(\" + ___CSS_LOADER_URL___12___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:italic;font-weight:600;src:url(\" + ___CSS_LOADER_URL___13___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:normal;font-weight:700;src:url(\" + ___CSS_LOADER_URL___14___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:italic;font-weight:700;src:url(\" + ___CSS_LOADER_URL___15___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:normal;font-weight:800;src:url(\" + ___CSS_LOADER_URL___16___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:italic;font-weight:800;src:url(\" + ___CSS_LOADER_URL___17___ + \") format(\\\"woff2\\\")}@font-face{font-family:icomoon;src:url(\" + ___CSS_LOADER_URL___18___ + \") format(\\\"woff2\\\");font-weight:400;font-style:normal;font-display:block}[class*=\\\" ai-\\\"],[class^=ai-]{font-family:icomoon!important;speak:never;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.ai-chevron-down:before{content:\\\"\\\\e90d\\\"}*,:after,:before{box-sizing:border-box}html{font-family:sans-serif;line-height:1.15;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:rgba(0,0,0,0)}figcaption,main,nav,section{display:block}[tabindex=\\\"-1\\\"]:focus{outline:0!important}h1,h2{margin-top:0;margin-bottom:1rem}strong{font-weight:bolder}caption{padding-top:.75rem;padding-bottom:.75rem;color:#6c757d;text-align:left;caption-side:bottom}label{display:inline-block;margin-bottom:.8rem}button{border-radius:0}button:focus{outline:1px dotted;outline:5px auto -webkit-focus-ring-color}button,input{margin:0;font-family:inherit;font-size:inherit;line-height:inherit;overflow:visible}button{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]:not(:disabled),[type=reset]:not(:disabled),[type=submit]:not(:disabled),button:not(:disabled){cursor:pointer}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{padding:0;border-style:none}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}input[type=date],input[type=datetime-local],input[type=month],input[type=time]{-webkit-appearance:listbox}legend{display:block;width:100%;max-width:100%;padding:0;margin-bottom:.5rem;font-size:1.5rem;line-height:inherit;color:inherit;white-space:normal}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:none}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}summary{display:list-item;cursor:pointer}template{display:none}[hidden]{display:none!important}*{-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important}html{font-size:62.5%;height:100%}link-to{color:#0d6efd;text-decoration:none;background-color:transparent}link-to:hover{color:rgb(0,86.1,178.5);text-decoration:none;cursor:pointer}route-view{display:none;flex:1}site-header{background-color:#fff;display:none;position:-webkit-sticky;position:sticky;top:0;height:var(--header-height)}#main{display:none;flex:1 auto;max-width:100%;overflow:hidden;flex-direction:column;overflow-y:scroll}.loaded #main,.loaded site-header,body.loaded,route-view.loaded{display:flex}route-view.left-panel-active{padding-left:var(--sidepanel-width)}.h1,.h2,h1,h2{margin-bottom:1rem;font-weight:500;line-height:1.2}.h1,h1{font-size:6rem}.h2,h2{font-size:2rem}.row{display:flex;flex-wrap:wrap;margin-right:-15px;margin-left:-15px}.col-12,.col-lg-3,.col-lg-4,.col-lg-8,.col-md-4,.col-sm-4,.col-sm-6,.col-sm-12,.col-xs-6{position:relative;width:100%;padding-right:15px;padding-left:15px}.col-12{flex:0 0 100%;max-width:100%}@media (min-width:375px){.col-xs-6{flex:0 0 50%;max-width:50%}}@media (min-width:576px){.col-sm-4{flex:0 0 33.3333333333%;max-width:33.3333333333%}.col-sm-6{flex:0 0 50%;max-width:50%}.col-sm-12{flex:0 0 100%;max-width:100%}}@media (min-width:768px){.col-md-4{flex:0 0 33.3333333333%;max-width:33.3333333333%}}@media (min-width:992px){.col-lg-3{flex:0 0 25%;max-width:25%}.col-lg-4{flex:0 0 33.3333333333%;max-width:33.3333333333%}.col-lg-8{flex:0 0 66.6666666667%;max-width:66.6666666667%}}input[type=checkbox],input[type=radio]{cursor:pointer}input[type=checkbox]+label,input[type=radio]+label{cursor:pointer}.btn,input[type=checkbox]+label,input[type=radio]+label{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.btn{display:inline-block;font-weight:400;color:#000;text-align:center;vertical-align:middle;background-color:transparent;border:1px solid transparent;padding:.375rem .75rem;font-size:1.6rem;line-height:1.5;border-radius:.25rem;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.btn{transition:none}}.btn:hover{color:#000;text-decoration:none}.btn:focus{outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.btn.disabled,.btn:disabled{opacity:.65}.btn-primary{color:#fff;background-color:#0d6efd;border-color:#0d6efd}.btn-primary:hover{color:#fff;background-color:rgb(1.8668032787,92.4067622951,225.8831967213);border-color:rgb(1.762295082,87.2336065574,213.237704918)}.btn-primary:focus{box-shadow:0 0 0 .2rem rgba(49.3,131.75,253.3,.5)}.btn-primary.disabled,.btn-primary:disabled{color:#fff;background-color:#0d6efd;border-color:#0d6efd}.btn-primary:not(:disabled):not(.disabled):active{color:#fff;background-color:rgb(1.762295082,87.2336065574,213.237704918);border-color:rgb(1.6577868852,82.0604508197,200.5922131148)}.btn-primary:not(:disabled):not(.disabled):active:focus{box-shadow:0 0 0 .2rem rgba(49.3,131.75,253.3,.5)}.btn-link{font-weight:400;color:#0d6efd;text-decoration:none}.btn-link:hover{color:rgb(0,86.1,178.5);text-decoration:none}.btn-link:focus{text-decoration:none;box-shadow:none}.btn-link.disabled,.btn-link:disabled{color:#6c757d;pointer-events:none}.btn-lg{padding:.5rem 1rem;font-size:1.9rem;line-height:1.5;border-radius:.3rem}.btn-block{display:block;width:100%}.btn-block+.btn-block{margin-top:.8rem}input[type=button].btn-block,input[type=reset].btn-block,input[type=submit].btn-block{width:100%}.btn:disabled{cursor:not-allowed}.btn.disabled,link-to.btn.disabled,link-to.btn:disabled,link-to.btn[disabled]{pointer-events:none}button,button:active{outline:none}.btn:focus-visible,[tabindex=\\\"0\\\"]:focus-visible,aofl-list-option:focus-visible,button[type=button]:focus-visible,collapse-button:focus-visible{outline:1px solid #e50b0a;border:1px solid #e50b0a}.btn-link:focus-visible{border:2px solid #e50b0a}.btn-primary{font-weight:600;border-width:2px}.btn.disabled,.btn:disabled{background:#cfe2ff;border-color:#cfe2ff;color:#0d6efd;opacity:1}collapse-button .ai.ai-chevron-down:before{transform:rotate(-90deg);display:inline-block}ems-dropdown>button.btn{display:flex;align-items:center;border:1px solid var(--gray)}collapse-button[open] .ai.ai-chevron-down:before{transform:rotate(180deg)}collapse-button .ai.ai-chevron-down,ems-dropdown .ai.ai-chevron-down{font-size:.8rem}collapse-button .ai-chevron-down:before,ems-dropdown .ai-chevron-down:before{content:\\\"\\\\e90d\\\"}collapse-button[open] .ai-chevron-down:before,ems-dropdown[open] .ai-chevron-down:before{content:\\\"\\\\e90f\\\"}@keyframes progress-bar-stripes{0%{background-position:1.6rem 0}to{background-position:0 0}}.list-group-item{position:relative;display:block;padding:1.2rem 2rem;margin-bottom:-1px;background-color:#fff;border:1px solid rgba(0,0,0,.125)}.list-group-item:first-child{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.list-group-item:last-child{margin-bottom:0;border-bottom-right-radius:.25rem;border-bottom-left-radius:.25rem}.list-group-item.disabled,.list-group-item:disabled{color:#6c757d;background-color:#fff}.list-group-item.d-flex{align-items:center}.list-group-item.disabled,.list-group-item:disabled{color:#878787;pointer-events:none;background-color:#ececec}.modal-container{background-color:rgba(0,0,0,.2);position:fixed;top:0;bottom:0;right:0;left:0;z-index:var(--z-index-modal)}.modal-container :first-child{overflow:auto}.modal{position:relative;display:block;height:100vh}.modal-dialog-centered.modal-dialog-scrollable{height:auto;max-height:calc(100% - 2.8rem);min-height:auto}.modal-body,.modal-content,.modal-footer,.modal-header{border:none}.modal-header{font-size:2rem;padding:2.4rem}.modal-body{padding:0 2.4rem 4.8rem}.colored-header{color:#fff}.modal-body p{text-align:left}.colored-header-primary{background-color:#0d6efd}.colored-header-secondary{background-color:#adb5bd}.colored-header-success{background-color:#3c8104}.colored-header-info{background-color:#cfe2ff}.colored-header-warning{background-color:#e17a05}.colored-header-danger{background-color:#d20a09}.colored-header-light{background-color:#f8f9fa}.colored-header-dark{background-color:#000}@keyframes spinner-border{to{transform:rotate(1turn)}}.spinner-border{display:inline-block;width:2rem;height:2rem;vertical-align:text-bottom;border:.25em solid;border-right:.25em solid transparent;border-radius:50%;animation:spinner-border .75s linear infinite}@keyframes spinner-grow{0%{transform:scale(0)}50%{opacity:1}}.rounded-pill{border-radius:80rem!important}.d-flex{display:flex!important}.flex-fill{flex:1 1 auto!important}.justify-content-start{justify-content:flex-start!important}.justify-content-center{justify-content:center!important}.justify-content-between{justify-content:space-between!important}@media (min-width:768px){.justify-content-md-center{justify-content:center!important}}.float-right{float:right!important}.sr-only{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.m-0{margin:0!important}.my-3{margin-top:1rem!important}.mr-3{margin-right:1rem!important}.my-3{margin-bottom:1rem!important}.mr-4{margin-right:1.5rem!important}.my-5{margin-top:3rem!important}.mb-5,.my-5{margin-bottom:3rem!important}.pt-3{padding-top:1rem!important}@media (min-width:992px){.my-lg-0{margin-top:0!important;margin-bottom:0!important}}.float-right{float:right}.h1,.h2{font-weight:600}[hidden]{visibility:hidden!important;height:0!important;width:0!important;min-height:unset!important}@media print{*,:after,:before{text-shadow:none!important;box-shadow:none!important}h2{orphans:3;widows:3;page-break-after:avoid}@page{size:a3}}@media print{main::-webkit-scrollbar{display:none}main{-ms-overflow-style:none;scrollbar-width:none}}@page{size:A4;margin:20mm 16mm 20mm 16mm}:host{display:flex;padding:2rem;max-width:100rem;flex-direction:column;width:100%;margin:0 auto}\", \"\"]);\n","export default (ctx, html) => html`\n\n ${ctx.content}\n\n`;\n","import styles from './template.css';\nimport template from './template';\nimport {routerInstance} from '@aofl/router';\nimport {AoflElement, customElement, property} from '@aofl/element';\n\n/**\n * @summary UserInitialsButton\n * @extends {AoflElement}\n */\n@customElement('user-initials-button')\nclass UserInitialsButton extends AoflElement {\n /**\n * Creates an instance of UserInitialsButton.\n */\n constructor() {\n super();\n }\n\n @property({type: String})\n content = '';\n\n @property({type: String})\n color = '';\n\n @property({type: String})\n textColor = '#FFFFFF';\n\n @property({type: String})\n isBold = true;\n\n @property({type: String, attribute: true})\n id = '';\n\n navigate(href) {\n // eventually pop the user modal\n }\n\n /**\n * @readonly\n */\n static is = 'user-initials-button';\n\n /**\n *\n * @return {Object}\n */\n render() {\n return super.render(template, [styles]);\n }\n}\n\nexport default UserInitialsButton;\n","import {until} from 'lit-html/directives/until';\nimport {repeat} from 'lit-html/directives/repeat';\nimport{LoadingEllipses} from '@epg/epg-components';\nimport {productLabels, products as aoflProducts, productLogos, productKeepGrayScale} from '../constants-enumerate';\n// This has to be here for dynamic styling!!! (otherwise the css linter\n// will clean the dynamic styles out :'(\nconst dynamicCss = ['.product-logo', '.abcmouse', '.mathmastery', '.readingmastery', '.readingiq', '.abcmouse_english'];\nimport {generalLabels} from '@modules/i18n-labels';\nimport {wrapUnsafeHtml} from '@modules/wrap-unsafe-html';\n\nconst renderEstimate = (ctx, html, product, license) => {\n if (ctx.estimating[license.id]) {\n return html``;\n }\n\n if (ctx.selectedLicenseInfo[product] !== license.id) {\n return '';\n }\n\n const total = ctx.estimates[license.id].total_license_cost || 0;\n\n if (total === 0) {\n return html`\n
\n ${until(ctx.__('', 'No students to license'))}\n
`;\n }\n\n if (ctx.errors[license.id]) {\n return html`\n
\n ${total} (${until(ctx.__('', 'You don\\'t have enough licenses'))})\n
`;\n }\n\n return html`${total}`;\n};\n\nconst renderLicenseRow = (ctx, html, product, license) => {\n if (license.expired) {\n return '';\n }\n return html`\n
{\n ctx.toggle(product, license.id);\n}}\n @keypress=\"${(e) => (e.key === 'Enter') ? ctx.toggle(product, license.id): null}\"\n >\n
\n
\n
\n
\n
\n
${until(ctx.__('', 'License Name'))}
\n
${license.license_name}
\n
\n
\n
${until(ctx.__('', 'License Type'))}
\n
${until((license.expiration_type === 'duration') ? generalLabels.DurationLabel : generalLabels.FixedEndDateLabel)}
\n
${until(generalLabels.TransferableLicense)}
\n
${license.transferable ? until(generalLabels.Yes) : until(generalLabels.No)}
\n
\n
\n
${until(ctx.__('', 'Home Access Type'))}
\n
${until(wrapUnsafeHtml(license.home_access_type))}
\n ${license.fspk ? html`\n
${until(ctx.__('', 'FSPK'))}
\n
${until(generalLabels.Yes)}
\n ` : ''}\n
\n
\n
\n
\n
${until(ctx.__('', 'Total #'))}
\n
${license.total}
\n
\n
\n
${until(ctx.__('', 'Available #'))}
\n
${license.available}
\n
\n
\n
${until(ctx.__('', 'Licenses to be Used'))}
\n
${renderEstimate(ctx, html, product, license)}
\n
\n ${license.test ? html`\n
\n
${until(ctx.__('', 'Test'))}
\n
${until(generalLabels.Yes)}
\n
` : ''}\n
\n
\n
\n ${until(ctx.__('', 'Select'))}\n
\n
\n
\n
\n`;\n};\n\nconst renderSection = (ctx, html, product, content) => html`\n
\n \"${productLabels[product]}\"/\n
\n\n ${content}\n`;\n\nconst renderLicenseSection = (ctx, html, product) => {\n if (!ctx.aoflProducts[product]) {\n return '';\n }\n\n let content;\n\n const products = ctx.licensesByProduct[product] || [];\n if (products.length > 0) {\n content = html`\n
\n ${repeat(ctx.licensesByProduct[product] || [], (license) => license.id, (license) => renderLicenseRow(ctx, html, product, license))}\n
\n `;\n } else {\n content = renderNoLicensesMessage(ctx, html);\n }\n\n return renderSection(ctx, html, product, content);\n};\n\nconst renderNoLicensesMessage = (ctx, html) => html`\n

${until(ctx.__('', 'You do not have any licenses to assign yet. To request product licenses, please contact your admin.'))}

\n`;\n\nconst renderLicenseAssignFooter = (ctx, html) => html`\n
\n
${(ctx.disableAssign && ctx.showErrorMsg) ? until(ctx.__('', 'One or more selected licenses do not have enough available inventory to assign to all selected students, or the selected students already have the license and cannot receive it again. Please deselect them and choose different licenses.')) : ''}
\n
\n \n
\n
${until(ctx.__('', 'Assign Licenses'))}\n \n
\n
\n`;\n\nconst renderLicenseSelection = (ctx, html) => html`\n ${!ctx.orgHasProducts ? renderNoLicensesMessage(ctx, html) : ''}\n ${renderLicenseSection(ctx, html, aoflProducts.MY_MATH_ACADEMY)}\n ${renderLicenseSection(ctx, html, aoflProducts.MY_READING_ACADEMY)}\n ${renderLicenseSection(ctx, html, aoflProducts.MY_READING_ACADEMY_ES)}\n ${renderLicenseSection(ctx, html, aoflProducts.MATH_ACADEMY)}\n ${renderLicenseSection(ctx, html, aoflProducts.ABCMOUSE)}\n ${renderLicenseSection(ctx, html, aoflProducts.ABCMOUSE_ENGLISH)}\n ${renderLicenseSection(ctx, html, aoflProducts.READINGIQ)}\n ${renderLicenseAssignFooter(ctx, html)}\n`;\n\nconst renderConfirmation = (ctx, html) => html`\n
\n
${until(ctx.__('', 'Confirmation'))}
\n
\n\n
\n ${getConfirmMessage(ctx, html)}\n

${until(ctx.__('', 'Continue?'))}

\n
\n\n
\n
\n
\n \n ${until(ctx.__('', 'Back'))}\n \n
\n
\n \n\n
\n
${until(ctx.__('', 'Continue Assigning'))}\n \n
\n
\n
\n`;\n\nconst getConfirmMessage = (ctx, html) => {\n if (ctx.objectType === 'student' && ctx.objectIds?.length === 1 && Object.keys(ctx.conflictCount).length === 0) {\n return Object.keys(ctx.selectedLicenseInfo)\n .map((product) => {\n let content;\n\n const licenseId = ctx.selectedLicenseInfo[product];\n\n const result = ctx.studentLicenseResults.licenses[licenseId];\n if (result.status === 'unassigned' || result.status === 'expired') {\n return '';\n }\n\n if (result.compatible) {\n content = html`\n

${until(ctx.__('', 'This student already has an active license with the same details as the new one you want to assign. You can still use your available license to update it (i.e. extend its duration or update the end date).'))}

\n

${until(ctx.__('', 'If you do not wish to update the existing license, we recommend you revoke the license before assigning a new one.'))}

\n `;\n } else {\n content = html`\n

${until(ctx.__('', 'This student already has a license for this product, but the license details are different. Assigning this new license will fully replace the existing license, including its duration/expiration.'))}

\n

${until(ctx.__('', 'If you do not wish to overwrite the current license, we recommend you wait until it expires before assigning a new one.'))}

\n `;\n }\n\n return renderSection(ctx, html, product, content);\n });\n } else if (Object.keys(ctx.conflictCount).length > 0) {\n return Object.keys(ctx.selectedLicenseInfo)\n .map((product) => {\n const licenseId = ctx.selectedLicenseInfo[product];\n\n return html`\n

${until(ctx._r(\n ctx._c('',\n '%c1% already have access to %r2% through a different provider and they cannot receive a redeem code for home access.',\n {1: '1 student', '%other%': '%r1% students'},\n ctx.conflictCount[licenseId]\n ),\n ctx.conflictCount[licenseId], productLabels[product]))}

\n `;\n });\n }\n\n return html`\n

${until(ctx.__('', 'Some of your selected students already have an active license. Assigning a new one will use your available license inventory and cause one of the following changes:'))}

\n
    \n
  • ${until(ctx.__('', 'If the new license details are same as the current except for the duration or end date, the new license will simply update (i.e. extend its duration or update the end date)'))}
  • \n
  • ${until(ctx.__('', 'If the new license details are different than the current license, the old license will be replaced by the new one.'))}
  • \n
\n

${until(ctx.__('', 'Note: If you do not wish to update or replace the current license, we recommend you revoke or wait until the existing licenses expire before assigning a new one.'))}

\n `;\n};\n\n\nexport default (ctx, html) => {\n return ctx.screen === 'selection' ? renderLicenseSelection(ctx, html) : renderConfirmation(ctx, html);\n};\n","import styles from './template.css';\nimport template from './template';\nimport {storeInstance} from '@aofl/store/dist/legacy';\nimport {AoflElement, customElement, property} from '@aofl/element';\nimport {i18nMixin} from '@aofl/i18n-mixin';\nimport translations from '../i18n';\nimport {sdoNs, licenseAssignMode} from '../constants-enumerate';\nimport {ApiService} from '../api-service';\nimport '../sdo-licenses';\n\n/**\n * @summary LicenseAssign\n * @extends {AoflElement}\n */\n@customElement('license-assign')\nclass LicenseAssign extends i18nMixin(AoflElement) {\n static is = 'license-assign';\n /**\n * Creates an instance of LicenseAssign.\n */\n constructor() {\n super();\n this.translations = translations;\n }\n\n @property({\n store: storeInstance,\n mapState: `${sdoNs.LICENSES}.$licenses`\n })\n licenses = [];\n\n @property({type: Object})\n selectedLicenseInfo = {};\n\n @property({\n store: storeInstance,\n mapState: `${sdoNs.LICENSES}.$licensesByProduct`\n })\n licensesByProduct = {};\n\n @property({type: Array, store: storeInstance, mapState: `${sdoNs.LICENSES}.licenses`})\n licensesFromApi = [];\n\n @property({type: Object})\n estimating = {};\n\n @property()\n estimates = {};\n\n @property()\n errors = {};\n\n @property()\n disableAssign = true;\n\n @property({type: Boolean, attribute: false})\n uploading = false;\n\n @property({type: String, mapState: `${sdoNs.LICENSE_ASSIGN}.objectType`, store: storeInstance})\n objectType = '';\n @property({type: String, mapState: `${sdoNs.LICENSE_ASSIGN}.objectIds`, store: storeInstance})\n objectIds = [];\n @property({type: Boolean, mapState: `${sdoNs.SESSION}.settings.aofl_products`, store: storeInstance})\n aoflProducts = {};\n @property({type: Object, mapState: `${sdoNs.SESSION}.settings`, store: storeInstance})\n settings = {};\n @property({type: String, attribute: false})\n screen = 'selection';\n @property({type: Object, attribute: false})\n studentLicenseResults = {};\n @property({type: Object})\n conflictCount = {};\n @property({type: Boolean})\n orgHasProducts = false;\n @property({type: Boolean})\n showErrorMsg = false;\n\n // Selected licenses for students after they clicked the assign button and is returned to student modal\n @property({type: Object})\n prevSelectedLicenses = {};\n\n async connectedCallback() {\n super.connectedCallback();\n\n const state = storeInstance.getState();\n this.orgHasProducts = Object.entries(state[sdoNs.SESSION].settings.aofl_products)\n .filter((entry) => entry[1]).length > 0;\n const filters = {};\n filters.group_id = state[sdoNs.SESSION].group_info.id;\n filters.hide_expired = true;\n const result = await ApiService.licenseSearch({limit: 1000}, filters);\n for (const [product, licenseId] of Object.entries(this.prevSelectedLicenses)) {\n await this.toggle(product, licenseId);\n }\n\n storeInstance.commit({\n namespace: sdoNs.LICENSES,\n mutationId: 'setLicenses',\n payload: result.results\n });\n }\n\n back() {\n this.changeChange('selection');\n }\n\n changeChange(screen) {\n this.screen = screen;\n this.dispatchEvent(new CustomEvent('screen-change', {\n composed: true,\n bubbles: true,\n detail: {screen}\n }));\n }\n\n async confirmation() {\n let needsConfirmation = false;\n if (this.objectType === 'student' && this.objectIds?.length === 1) {\n // check specific case for individual student\n this.studentLicenseResults = await ApiService.licenseCheckCompatibility({\n student_id: this.objectIds[0],\n license_ids: this.selectedLicenseInfo,\n });\n\n needsConfirmation = this.studentLicenseResults.has_incompatibility;\n if (!needsConfirmation) {\n needsConfirmation = Object.values(this.selectedLicenseInfo).some((licenseId) => {\n const result = this.studentLicenseResults.licenses[licenseId];\n return result.status !== 'unassigned' && result.status !== 'expired';\n });\n }\n } else {\n needsConfirmation = Object.values(this.estimates).some((estimate) => estimate.active_license_count > 0);\n }\n\n if (Object.keys(this.conflictCount).length > 0) {\n needsConfirmation = true;\n }\n\n if (needsConfirmation) {\n return this.changeChange('confirmation');\n }\n\n return this.assignLicenses();\n }\n\n getApiArgs(licenseId) {\n const args = {\n license_id: parseInt(licenseId, 10)\n };\n const state = storeInstance.getState();\n const licenseAssignState = state[sdoNs.LICENSE_ASSIGN];\n if (licenseAssignState.assignMode === licenseAssignMode.SELECTED) {\n if (state[sdoNs.LICENSE_ASSIGN].studentIds) {\n args.object_ids = state[sdoNs.LICENSE_ASSIGN];\n args.object_type = 'student';\n }\n if (licenseAssignState.rosterId) {\n args.roster_job_id = licenseAssignState.rosterId;\n }\n if (state[sdoNs.LICENSE_ASSIGN].groupIds) {\n args.object_ids = state[sdoNs.LICENSE_ASSIGN].groupIds;\n }\n if (licenseAssignState.objectIds) {\n args.object_ids = licenseAssignState.objectIds;\n }\n } else if (licenseAssignState.filtered) {\n args.filtered = licenseAssignState.filtered;\n }\n\n if (licenseAssignState.objectType) {\n args.object_type = licenseAssignState.objectType;\n }\n\n return args;\n }\n\n checkEnableAssign() {\n if (Object.keys(this.selectedLicenseInfo).length === 0) {\n this.disableAssign = true;\n return;\n }\n\n const errorCodes = Object.keys(this.errors);\n let hasErrors = false;\n for (const [_, licenseId] of Object.entries(this.selectedLicenseInfo)) {\n if (errorCodes.indexOf(String(licenseId)) !== -1) {\n hasErrors = true;\n break;\n }\n\n if (this.estimates[licenseId].total_license_cost < 1) {\n hasErrors = true;\n break;\n }\n }\n\n this.disableAssign = hasErrors;\n }\n\n async toggle(product, licenseId) {\n const selected = Object.assign({}, this.selectedLicenseInfo);\n if (this.selectedLicenseInfo[product] && this.selectedLicenseInfo[product] === licenseId) {\n delete selected[product];\n } else {\n selected[product] = licenseId;\n }\n\n if (this.selectedLicenseInfo[product]) {\n delete this.errors[this.selectedLicenseInfo[product]];\n delete this.conflictCount[this.selectedLicenseInfo[product]];\n }\n\n this.selectedLicenseInfo = selected;\n\n if (selected[product]) {\n this.disableAssign = true;\n this.estimating[licenseId] = true;\n this.requestUpdate();\n\n const state = storeInstance.getState();\n const licenseAssignState = state[sdoNs.LICENSE_ASSIGN];\n\n if (licenseAssignState.newStudent) {\n const index = this.licenses.findIndex((license) => license.id === licenseId);\n if (this.licenses[index].group_available < 1) {\n this.errors[licenseId] = true;\n }\n this.estimates[licenseId] = {\n total_license_cost: 1\n };\n } else {\n const estimate = await ApiService.licenseGetInvoice(this.getApiArgs(licenseId));\n if (estimate.available_license_inventory < estimate.total_license_cost) {\n this.errors[licenseId] = true;\n }\n this.estimates[licenseId] = estimate;\n if (this.estimates[licenseId].total_license_cost === 0) {\n this.errors[licenseId] = true;\n }\n if (estimate.linked_student_count > 0) {\n this.conflictCount[licenseId] = estimate.linked_student_count;\n }\n }\n this.estimating[licenseId] = false;\n\n this.requestUpdate();\n }\n\n this.showErrorMsg = Object.keys(this.errors).length > 0;\n\n this.checkEnableAssign();\n }\n\n async assignLicenses() {\n this.uploading = true;\n const args = [];\n const licenseInfo = {};\n this.disableAssign = true;\n const selectedLicenseInfo = this.selectedLicenseInfo;\n for (const [_, licenseId] of Object.entries(this.selectedLicenseInfo)) {\n if (typeof this.errors[licenseId] !== 'undefined') continue;\n\n this.licensesFromApi.map((info) => {\n if (licenseId === info.id) {\n licenseInfo[licenseId] = info;\n }\n });\n\n args.push(this.getApiArgs(licenseId));\n }\n this.showErrorMsg = false;\n this.dispatchEvent(new CustomEvent('on-submit', {\n composed: true,\n detail: {\n args,\n licenseInfo,\n selectedLicenseInfo\n }\n }));\n }\n\n /**\n * @return {Object}\n */\n render() {\n return super.render({\n default: {\n template,\n styles: [styles]\n }\n });\n }\n}\n\nexport default LicenseAssign;\n","import {repeat} from 'lit-html/directives/repeat';\nimport {until} from 'lit-html/directives/until';\nimport {generalLabels, searchLabels} from '@modules/i18n-labels';\nimport '@modules/dropdown';\nimport {LoadingEllipses} from '@epg/epg-components';\nimport '@modules/object-search-form';\n\nconst getButtonLabel = (ctx, html, groupId, index) => {\n if (ctx.selectedGroupsInfo?.[groupId]?.name) {\n return ctx.selectedGroupsInfo?.[groupId]?.name;\n }\n if (ctx.tierStructureLabels?.[index + ctx.adminGroup.level - 1]) {\n return until(ctx._r(ctx.__('', 'Select %r1%'), ctx.tierStructureLabels?.[index + ctx.adminGroup.level - 1]));\n }\n return until(ctx.__('', 'Select Class'));\n};\n\nconst renderRegularDropDownFilter = (ctx, html, groupId, level, i) => {\n return html`\n ctx.toggleDropdown(groupId, i)}\">\n \n
\n ${getSearchBar(ctx.groupsAtLevel?.[level]?.has_more, groupId, i, level, ctx, html)}\n ${ctx.loading ?\n html`\n ` :\n (ctx.groupsAtLevel?.[level]?.results?.length) ?\n html`\n ${repeat(ctx.groupsAtLevel?.[level]?.results, (group) => group, (group) => renderButton(ctx, html, group, groupId))}\n ${ctx.groupsAtLevel?.[level]?.has_more ? html`\n
\n ${until(searchLabels.showingFirstOfAmount(ctx.limit))}\n
\n ` : ``}\n ` :\n html`
${until(searchLabels.NO_MATCHING_RESULTS)}
`}\n
\n \n `;\n};\n\nconst getSearchBar = (hasMore, groupId, dropdownIndex, level, ctx, html) => {\n if (hasMore || ctx.search?.query) {\n return html`\n ctx.triggerSearch(e, groupId, dropdownIndex)}\"\n .placeholder=\"${until(ctx.tierStructureLabels?.[level - 2] ? ctx.i18n._r(ctx.i18n.__('', 'Search %r1%'), ctx.tierStructureLabels?.[level - 2]) : ctx.i18n.__('', 'Search Class'))}\"\n .column-layout=\"${true}\"\n reset-text=\"Reset\">`;\n }\n};\n\nconst renderButton = (ctx, html, group, selectedGroupId) => {\n return html ` ctx.selectGroup(group) }\"\n data-hide-pii=\"true\"\n data-bi-id=\"group_select_${group.id}\"\n data-bi-action=\"Group Select ${group.id}\">\n ${group.name}\n `;\n};\n\nexport default (ctx, html) => {\n const itemTemplates = [];\n for (let i = 0; i <= ctx['selected-groups']?.length; i++) {\n const groupId = ctx['selected-groups'][i];\n const level = groupId ?\n ctx.selectedGroupsInfo[groupId]?.path?.split('.').length :\n i + ctx.adminGroup.level + 1;\n if (\n (ctx['max-level'] && i >= ctx['max-level']) ||\n level > ctx.classLevel ||\n ctx.adminGroup.level > level\n ) {\n continue;\n }\n\n itemTemplates.push(renderRegularDropDownFilter(ctx, html, groupId, level, i));\n }\n\n if (ctx['show-reset'] && ctx['selected-groups']?.length > 0) {\n itemTemplates.push(\n html``\n );\n }\n return html`${itemTemplates}`;\n};\n","import {storeInstance} from '@aofl/store/dist/legacy';\nimport {deepAssign} from '@aofl/object-utils';\nimport {\n sdoNs,\n} from '@modules/constants-enumerate';\n\nconst sdo = {\n namespace: sdoNs.GROUP_FILTERS,\n mutations: {\n init() {\n return {\n loading: false,\n groupsAtLevel: {}\n };\n },\n },\n decorators: [\n (nextState) => { // $levelBelowTopOrg\n const state = storeInstance.getState();\n const sessionNextState = nextState[sdoNs.SESSION];\n const nextSubState = nextState[sdoNs.GROUP_FILTERS];\n if (\n typeof nextSubState.$levelBelowAdminOrg === 'undefined' ||\n sessionNextState.group_info !== state[sdoNs.SESSION].groupInfo\n ) {\n let $levelBelowAdminOrg = 1;\n if (sessionNextState?.group_info?.level) {\n $levelBelowAdminOrg = sessionNextState?.group_info?.level + 1;\n }\n nextState = deepAssign(nextState, sdoNs.GROUP_FILTERS, {\n $levelBelowAdminOrg,\n });\n }\n return nextState;\n }\n ]\n};\n\nstoreInstance.addState(sdo);\n\n","import styles from './template.css';\nimport template from './template';\nimport {AoflElement, customElement, property} from '@aofl/element';\nimport {i18nMixin} from '@aofl/i18n-mixin';\nimport {ApiService} from '@modules/api-service';\nimport {groupTypes, pages, sdoNs} from '@modules/constants-enumerate';\nimport {storeInstance} from '@aofl/store/dist/legacy';\nimport {uuid} from '@aofl/uuid';\nimport './sdo';\nimport translations from '@modules/i18n';\n\n/**\n * @summary GroupFilters\n * @extends {AoflElement}\n */\n@customElement('group-filters')\nclass GroupFilters extends i18nMixin(AoflElement) {\n /**\n * Creates an instance of GroupFilters.\n */\n constructor() {\n super();\n this.storeInstance = storeInstance;\n this._resetSearchQuery();\n this.limit = 10;\n this.translations = translations;\n }\n /**\n * @readonly\n */\n static is = 'group-filters';\n\n @property({type: Boolean, attribute: true})\n ['show-reset'] = false;\n\n @property({type: Array})\n ['selected-groups'] = [];\n\n @property({type: Array, attribute: false, mapState: `${sdoNs.SESSION}.settings.tier_structure.labels`, store: storeInstance})\n tierStructureLabels = [];\n\n @property({type: Object, mapState: `${sdoNs.SESSION}.group_info`, store: storeInstance})\n adminGroup = {};\n\n @property({type: Number, attribute: false, mapState: `${sdoNs.GROUP_FILTERS}.$levelBelowAdminOrg`, store: storeInstance})\n levelBelowAdminOrg = 2;\n\n @property({type: Boolean, attribute: false, mapState: `${sdoNs.GROUP_FILTERS}.loading`, store: storeInstance})\n loading = true;\n\n @property({type: Number, mapState: `${sdoNs.SESSION}.$classLevel`, store: storeInstance})\n classLevel = null;\n\n @property({type: String, mapState: `${sdoNs.DASHBOARD}.pendingFilters.stats_path`, store: storeInstance})\n statsPath;\n\n @property({type: Object})\n groupsAtLevel = {};\n\n @property({type: Object})\n groupsAtTopLevel = {};\n\n @property({type: Object})\n selectedGroupsInfo = {};\n\n @property({type: String})\n rndId = uuid();\n\n @property({type: Number, attribute: true})\n ['max-level'] = null;\n\n @property({type: Boolean})\n ['full-width'] = false;\n\n @property({type: Boolean})\n scrollIntoView = false;\n\n @property({type: Boolean})\n showThirdPartyConnected = true;\n\n connectedCallback() {\n super.connectedCallback();\n this.getGroupInfo();\n }\n\n async getGroupInfo() {\n // if there are existing selections in group filters\n if (this['selected-groups'].length) {\n const lastGroupId = [...this['selected-groups']].pop();\n const selectedGroups = this['selected-groups'].map(id => parseInt(id, 10));\n const response = await ApiService.groupGet(selectedGroups, ['id', 'name', 'path', 'type']);\n this.selectedGroupsInfo = response.results;\n const lastGroupInfo = response.results[lastGroupId];\n\n storeInstance.commit({\n namespace: sdoNs.SESSION,\n mutationId: 'setSelectedGroup',\n payload: lastGroupInfo\n });\n this.searchGroups(lastGroupInfo.path, lastGroupInfo.level);\n }\n }\n\n getSiblings(groupId, dropdownIndex, doReset = true) {\n if (doReset) {\n this._resetSearchQuery();\n }\n // added the one because levels start at one because dropdown counts start\n // at zero and org level index starts at 1;\n let path = '';\n if (groupId) {\n const groupInfo = this.selectedGroupsInfo[groupId];\n path = groupInfo.path;\n } else {\n const previouslySelectedGroupId = this['selected-groups'][dropdownIndex - 1] || null;\n if (previouslySelectedGroupId) {\n path = this.selectedGroupsInfo[previouslySelectedGroupId].path + this.selectedGroupsInfo[previouslySelectedGroupId].id + '.';\n }\n }\n const level = this.adminGroup.level + dropdownIndex + 1;\n this.searchGroups(\n path,\n level\n );\n }\n\n async searchGroups(path, level) {\n this.storeInstance.commit({namespace: sdoNs.GROUP_FILTERS, mutationId: 'setLoading', payload: true});\n const search = (this.search?.query) ? this.search : void 0;\n\n const groupType = (level === this.classLevel) ? groupTypes.CLASSROOM : groupTypes.MANAGEMENT;\n\n const resp = await ApiService.groupSearch(\n search,\n {\n path,\n level,\n type: groupType\n },\n {\n fields: ['id', 'name'],\n direction: 'asc',\n limit: this.limit,\n },\n this.showThirdPartyConnected\n );\n\n this.groupsAtLevel = {\n ...this.groupsAtLevel,\n [level]: resp\n };\n this.storeInstance.commit({namespace: sdoNs.GROUP_FILTERS, mutationId: 'setLoading', payload: false});\n }\n\n triggerSearch(e, groupId, dropdownIndex) {\n this.search = e.detail;\n this.getSiblings(groupId, dropdownIndex, false);\n }\n\n triggerTopOrgSearch(e) {\n this.search = e.detail;\n this.getSiblings(null, 1, false);\n }\n\n toggleDropdown(groupId, dropdownIndex) {\n const state = storeInstance.getState();\n const dropDownBoxOpened = state[sdoNs.DROPDOWN]['group-dropdown-' + this.rndId + '-' + dropdownIndex];\n if (dropDownBoxOpened) {\n this.getSiblings(groupId, dropdownIndex);\n setTimeout(() => {\n this.shadowRoot.getElementById(`obj-search-form-${dropdownIndex}`)\n ?.focusSearch();\n if (this.scrollIntoView) {\n this.shadowRoot.getElementById(`obj-dropdown-${dropdownIndex}`)\n ?.scrollIntoView({\n block: 'center',\n behavior: 'smooth'\n });\n }\n }, 210);\n }\n }\n\n selectGroup(groupInfo) {\n // this['selected-groups'] was added for the\n // base-search-org-filter compatibility\n const statsPath = groupInfo.path.split('.');\n statsPath.pop();\n statsPath.push(groupInfo.id);\n if (statsPath.length > 0) {\n this['selected-groups'] = statsPath.slice(this.adminGroup.level);\n }\n // everything below this is not for the base-search-org\n this.selectedGroupsInfo[groupInfo.id] = groupInfo;\n this.dispatchEvent(new CustomEvent('group-change', {\n detail: {\n groupInfo\n },\n composed: true,\n bubbles: true\n }));\n this.storeInstance.commit({\n namespace: sdoNs.DROPDOWN,\n mutationId: 'closeAll'\n });\n this._resetSearchQuery();\n }\n\n _resetSearchQuery() {\n this.search = {\n query: '',\n field: 'name'\n };\n }\n\n resetFilter() {\n // this['selected-groups'] was added for the\n // base-search-org-filter compatibility\n this['selected-groups'] = [];\n this.checkedGroupCheckboxes = [];\n\n storeInstance.commit({\n namespace: sdoNs.SESSION,\n mutationId: 'setSelectedGroup',\n payload: this.adminGroup\n });\n\n this.dispatchEvent(new CustomEvent('group-change', {\n composed: true,\n bubbles: true\n }));\n\n // Force a page reload because:\n // When the dashboard is on http://localhost:9004/dashboard/ and you hit the group-filter reset, the page\n // does not reload and rerun the constructor to get a value for iSInternalDashboard value because the URL\n // does not change.\n // When you are on the MRA tab, the URL is http://localhost:9004/dashboard/?product=my_reading_academy and a\n // Reset filter there does change the URL and reload.\n // The reload also works when hitting reset when you are on http://localhost:9004/dashboard/?product=mathmastery\n window.location = pages.DASHBOARD;\n }\n\n update(changedProperties) {\n if (changedProperties.has('statsPath')) {\n this.getGroupInfo();\n }\n super.update(changedProperties);\n }\n\n /**\n * @return {Object}\n */\n render() {\n return super.render({\n default: {template, styles: [styles]}\n });\n }\n}\n\nexport default GroupFilters;\n","import {storeInstance} from '@aofl/store/dist/legacy';\nimport {sdoNs} from './constants-enumerate';\nimport {deepAssign} from '@aofl/object-utils';\n\nconst sdo = {\n namespace: sdoNs.USER_SEARCH,\n mutations: {\n init() {\n return {\n queryObj: {\n search: {},\n filters: {},\n sort: {},\n selection_mode: null,\n persistent_selection: [],\n not_selected: [],\n total_results: 0\n },\n results: [],\n tableConfig: [],\n allSelected: false,\n hasMore: false,\n selected: [],\n searchTargetUrl: '',\n profileTargetUrl: '',\n defaultQueryObj: {},\n pendingFilters: {}\n };\n },\n setQuerySearchQuery(subState, query) {\n return deepAssign(subState, 'queryObj.search', {\n query\n });\n },\n setQuerySearchField(subState, field) {\n return deepAssign(subState, 'queryObj.search', {\n field\n });\n },\n setQuerySortFields(subState, field) {\n return deepAssign(subState, 'queryObj.sort', {\n fields: [field, 'id']\n });\n },\n setQueryFilters(subState, filters) {\n return deepAssign(subState, 'queryObj', {\n filters\n });\n },\n setFiltersGroupPath(subState, path) {\n return deepAssign(subState, 'queryObj.filters', {\n group_path: path\n });\n },\n setPendingFiltersGroupPath(subState, path) {\n return deepAssign(subState, 'pendingFilters', {\n group_path: path\n });\n },\n setPendingFiltersLicenseStatus(subState, status) {\n return deepAssign(subState, 'pendingFilters', {\n license_status: status,\n });\n },\n setPendingFiltersProduct(subState, product) {\n return deepAssign(subState, 'pendingFilters', {\n aofl_product: product\n });\n },\n setPendingFiltersLicense(subState, license) {\n return deepAssign(subState, 'pendingFilters', {\n license_id: license\n });\n },\n setPendingFiltersGrade(subState, grade) {\n return deepAssign(subState, 'pendingFilters', {grade});\n },\n setPendingFiltersProductConflict(subState, productConflict) {\n return deepAssign(subState, 'pendingFilters', {product_conflict: productConflict});\n },\n setPendingFiltersInvitationStatus(subState, status) {\n return deepAssign(subState, 'pendingFilters', {\n invitation_status: status\n });\n },\n setPendingFiltersClassroomId(subState, id) {\n return deepAssign(subState, 'pendingFilters', {\n classroom_id: id\n });\n },\n setPendingFiltersRosterId(subState, id) {\n return deepAssign(subState, 'pendingFilters', {\n roster_job_id: id\n });\n },\n setClassAssignment(subState, assignment) {\n return deepAssign(subState, 'pendingFilters', {\n class_assigned: assignment\n });\n },\n setRoleAssignment(subState, assignment) {\n return deepAssign(subState, 'pendingFilters', {\n role_assigned: assignment\n });\n },\n updateSortOrder(subState, {index, field}) {\n let direction = subState.queryObj.sort.direction;\n if (direction === 'asc') {\n direction = 'desc';\n } else if (direction === 'desc') {\n direction = '';\n } else {\n direction = 'asc';\n }\n\n let fields = [field, 'id'];\n if (direction === '') fields = ['id'];\n\n return deepAssign(subState, 'queryObj.sort', {\n direction,\n fields,\n });\n },\n removeSortLastValues(subState) {\n const nextSubState = deepAssign(subState, 'queryObj.sort', {});\n\n nextSubState.queryObj.sort.is_forward = true;\n if (typeof nextSubState.queryObj.sort.last_values !== 'undefined') {\n delete nextSubState.queryObj.sort.last_values;\n }\n\n return nextSubState;\n },\n select(subState, {id}) {\n const index = subState.selected.indexOf(id);\n if (index === -1) {\n subState = Object.assign({}, subState, {\n selected: [\n ...subState.selected,\n id\n ]\n });\n }\n if (subState.queryObj.persistent_selection.indexOf(id) === -1 && subState.queryObj.selection_mode !== 'all') {\n subState.queryObj.persistent_selection.push(id);\n }\n\n const indexNotSelected = subState.queryObj.not_selected.indexOf(id);\n if (indexNotSelected !== -1) {\n subState.queryObj.not_selected = [\n ...subState.queryObj.not_selected.slice(0, indexNotSelected),\n ...subState.queryObj.not_selected.slice(indexNotSelected + 1)\n ];\n }\n\n return subState;\n },\n selectAll(subState, {selectionMode}) {\n let newSubState = Object.assign({}, subState);\n newSubState.queryObj.selection_mode = selectionMode;\n\n for (let i = 0; i < subState.results.length; i++) {\n newSubState = sdo.mutations.select(newSubState, {id: subState.results[i].id});\n }\n\n if (selectionMode === 'all') {\n newSubState.queryObj.persistent_selection = [];\n }\n newSubState.queryObj.not_selected = [];\n\n return newSubState;\n },\n selectPage(subState, {selectionMode}) {\n return this.selectAll(subState, {selectionMode});\n },\n deselect(subState, {id}) {\n const index = subState.selected.indexOf(id);\n if (index > -1) {\n subState = Object.assign({}, subState, {\n selected: [\n ...subState.selected.slice(0, index),\n ...subState.selected.slice(index + 1)\n ]\n });\n }\n\n const persistentSelectionIndex = subState.queryObj.persistent_selection.indexOf(id);\n if (persistentSelectionIndex > -1) {\n subState.queryObj.persistent_selection = [\n ...subState.queryObj.persistent_selection.slice(0, persistentSelectionIndex),\n ...subState.queryObj.persistent_selection.slice(persistentSelectionIndex + 1)\n ];\n }\n\n if (subState.queryObj.selection_mode === 'all' && subState.queryObj.not_selected.indexOf(id) === -1) {\n subState.queryObj.not_selected.push(id);\n }\n return subState;\n },\n deselectAll(subState) {\n const newSubState = Object.assign({}, subState);\n newSubState.queryObj.selection_mode = null;\n newSubState.queryObj.persistent_selection = [];\n newSubState.queryObj.not_selected = [];\n newSubState.selected = [];\n return Object.assign({}, subState, newSubState);\n },\n },\n decorators: [\n (nextState) => { // prev search query\n const state = storeInstance.getState();\n const nextSubState = nextState[sdoNs.USER_SEARCH];\n const subState = state[sdoNs.USER_SEARCH];\n\n if (typeof nextSubState.$prevQueryObj === 'undefined' || nextSubState.queryObj !== subState.queryObj) {\n const $prevQueryObj = subState.queryObj;\n\n nextState = deepAssign(nextState, `${sdoNs.USER_SEARCH}`, {$prevQueryObj});\n }\n\n return nextState;\n },\n (nextState) => { // prev pointer items\n const state = storeInstance.getState();\n const nextSubState = nextState[sdoNs.USER_SEARCH];\n const subState = state[sdoNs.USER_SEARCH];\n\n if (typeof nextSubState.$prev === 'undefined' || nextSubState.results !== subState.results) {\n let $prev = '';\n if (nextSubState.results.length > 0) {\n $prev = nextSubState.results[0]; /** @todo assign needed props */\n }\n\n nextState = deepAssign(nextState, `${sdoNs.USER_SEARCH}`, {$prev});\n }\n\n return nextState;\n },\n (nextState) => { // next pointer items\n const state = storeInstance.getState();\n const nextSubState = nextState[sdoNs.USER_SEARCH];\n const subState = state[sdoNs.USER_SEARCH];\n\n if (typeof nextSubState.$next === 'undefined' ||\n nextSubState.results !== subState.results) {\n let $next = '';\n if (nextSubState.results.length > 0) {\n $next = nextSubState.results[nextSubState.results.length - 1]; /** @todo assign needed props */\n }\n\n nextState = deepAssign(nextState, `${sdoNs.USER_SEARCH}`, {$next});\n }\n\n return nextState;\n },\n (nextState) => { // set results[].{$selected}\n const state = storeInstance.getState();\n const nextSubState = nextState[sdoNs.USER_SEARCH];\n const subState = state[sdoNs.USER_SEARCH];\n if (nextSubState.results !== subState.results ||\n nextSubState.selected !== subState.selected ||\n nextSubState.queryObj.selection_mode !== subState.queryObj.selection_mode) {\n const results = [];\n\n for (let i = 0; i < nextSubState.results.length; i++) {\n const group = nextSubState.results[i];\n if (\n nextSubState.selected.indexOf(group.id) !== -1 ||\n nextSubState.queryObj.selection_mode === 'all' ||\n nextSubState.queryObj.persistent_selection.indexOf(group.id) !== -1\n ) {\n let isSelected = true;\n if (nextSubState.queryObj.not_selected.indexOf(group.id) > -1) {\n isSelected = false;\n }\n results.push(Object.assign({}, group, {\n $selected: isSelected\n }));\n } else if (group.$selected === true) {\n results.push(Object.assign({}, group, {\n $selected: false\n }));\n } else {\n results.push(group);\n }\n }\n nextState = deepAssign(nextState, `${sdoNs.USER_SEARCH}`, {results});\n }\n\n return nextState;\n },\n (nextState) => { // set $transferableLicensesSelected\n const state = storeInstance.getState();\n const nextSubState = nextState[sdoNs.USER_SEARCH];\n const subState = state[sdoNs.USER_SEARCH];\n if (nextSubState.results !== subState.results || nextSubState.selected !== subState.selected) {\n let $transferableLicensesSelected = false;\n for (let i = 0; i < nextSubState.results.length; i++) {\n const group = nextSubState.results[i];\n if (group.$selected && group.has_transferable_license) {\n $transferableLicensesSelected = true;\n break;\n }\n }\n nextState = deepAssign(nextState, `${sdoNs.USER_SEARCH}`, {$transferableLicensesSelected});\n }\n\n return nextState;\n },\n (nextState) => { // $search to make api call\n const state = storeInstance.getState();\n\n const nextSubState = nextState[sdoNs.USER_SEARCH];\n const subState = state[sdoNs.USER_SEARCH];\n\n if (typeof nextSubState.$search === 'undefined' ||\n nextSubState.queryObj.search !== subState.queryObj.search) {\n let $search = void 0;\n\n if (nextSubState.queryObj.search.query && nextSubState.queryObj.search.query !== '') {\n $search = Object.assign({}, nextSubState.queryObj.search);\n }\n\n nextState = deepAssign(nextState, sdoNs.USER_SEARCH, {\n $search\n });\n }\n\n return nextState;\n },\n (nextState) => { // $filters to make api call\n /** @todo remove group filter cases */\n const state = storeInstance.getState();\n\n const nextSubState = nextState[sdoNs.USER_SEARCH];\n const subState = state[sdoNs.USER_SEARCH];\n\n if (\n typeof nextSubState.$filters === 'undefined' ||\n nextSubState.queryObj.filters !== subState.queryObj.filters\n ) {\n let $filters = Object.assign({}, nextSubState.queryObj.filters);\n\n if (Array.isArray($filters.parent_group_id) && $filters.parent_group_id.length > 0) {\n $filters = Object.assign({}, $filters, {\n parent_group_id: $filters.parent_group_id[$filters.parent_group_id.length - 1]\n });\n } else if (Array.isArray(nextSubState.queryObj.filters.group_path)\n && nextSubState.queryObj.filters.group_path.length) {\n const path = nextSubState.queryObj.filters.group_path;\n let sessionPath = state[sdoNs.SESSION].group_info.path + state[sdoNs.SESSION].group_info.id;\n sessionPath = sessionPath.split('.');\n\n path.forEach((value, key) => {\n if (sessionPath.indexOf(value.toString()) < 0) {\n sessionPath.push(value);\n }\n });\n\n $filters = Object.assign({}, $filters, {\n group_path: sessionPath.join('.') + '.'\n });\n } else if (Array.isArray($filters.classes_path)) {\n const path = nextSubState.queryObj.filters.classes_path;\n $filters = Object.assign({}, $filters, {\n path: nextState[sdoNs.SESSION].group_info.id + '.' + path.join('.') + '.'\n });\n delete $filters.classes_path;\n } else {\n delete $filters.parent_group_id;\n delete $filters.group_path;\n }\n nextState = deepAssign(nextState, sdoNs.USER_SEARCH, {\n $filters\n });\n }\n\n return nextState;\n },\n (nextState) => { // $filterLicenseStatus\n const state = storeInstance.getState();\n\n const nextSubState = nextState[sdoNs.USER_SEARCH];\n const subState = state[sdoNs.USER_SEARCH];\n\n if (typeof nextSubState.$filterLicenseStatus === 'undefined' ||\n nextSubState.pendingFilters.license_status !== subState.pendingFilters.license_status) {\n const $filterLicenseStatus = nextSubState.pendingFilters.license_status;\n nextState = deepAssign(nextState, sdoNs.USER_SEARCH, {$filterLicenseStatus});\n }\n return nextState;\n },\n (nextState) => { // $filterProduct\n const state = storeInstance.getState();\n\n const nextSubState = nextState[sdoNs.USER_SEARCH];\n const subState = state[sdoNs.USER_SEARCH];\n\n if (typeof nextSubState.$filterProduct === 'undefined' ||\n nextSubState.pendingFilters.aofl_product !== subState.pendingFilters.product) {\n const $filterProduct = nextSubState.pendingFilters.aofl_product;\n nextState = deepAssign(nextState, sdoNs.USER_SEARCH, {$filterProduct});\n }\n return nextState;\n },\n (nextState) => { // $filterLicense\n const state = storeInstance.getState();\n\n const nextSubState = nextState[sdoNs.USER_SEARCH];\n const subState = state[sdoNs.USER_SEARCH];\n\n if (typeof nextSubState.$filterLicense === 'undefined' ||\n nextSubState.pendingFilters.license_id !== subState.pendingFilters.license) {\n const $filterLicense = nextSubState.pendingFilters.license_id;\n nextState = deepAssign(nextState, sdoNs.USER_SEARCH, {$filterLicense});\n }\n return nextState;\n },\n (nextState) => { // $filterGrade\n const state = storeInstance.getState();\n\n const nextSubState = nextState[sdoNs.USER_SEARCH];\n const subState = state[sdoNs.USER_SEARCH];\n\n if (typeof nextSubState.$filterGrade === 'undefined' ||\n nextSubState.pendingFilters.grade !== subState.pendingFilters.grade) {\n const $filterGrade = nextSubState.pendingFilters.grade;\n nextState = deepAssign(nextState, sdoNs.USER_SEARCH, {$filterGrade});\n }\n return nextState;\n },\n (nextState) => { // $sort to make api call\n const state = storeInstance.getState();\n\n const nextSubState = nextState[sdoNs.USER_SEARCH];\n const subState = state[sdoNs.USER_SEARCH];\n\n if (typeof nextSubState.$sort === 'undefined' ||\n nextSubState.queryObj.sort !== subState.queryObj.sort) {\n const $sort = Object.assign({}, nextSubState.queryObj.sort);\n if ($sort.direction === '') {\n $sort.direction = 'asc';\n }\n\n nextState = deepAssign(nextState, sdoNs.USER_SEARCH, {\n $sort\n });\n }\n\n return nextState;\n },\n (nextState) => { // $filterInvitationStatus\n const state = storeInstance.getState();\n\n const nextSubState = nextState[sdoNs.USER_SEARCH];\n const subState = state[sdoNs.USER_SEARCH];\n\n if (typeof nextSubState.$filterInvitationStatus === 'undefined' ||\n nextSubState.pendingFilters.invitation_status !== subState.pendingFilters.invitation_status) {\n const $filterInvitationStatus = nextSubState.pendingFilters.invitation_status;\n nextState = deepAssign(nextState, sdoNs.USER_SEARCH, {$filterInvitationStatus});\n }\n return nextState;\n },\n (nextState) => { // $filtered results\n /** @todo revisit logic */\n const state = storeInstance.getState();\n\n const nextSubState = nextState[sdoNs.USER_SEARCH];\n const subState = state[sdoNs.USER_SEARCH];\n\n if (typeof nextSubState.$filtered === 'undefined' ||\n nextSubState.queryObj.filters !== subState.queryObj.filters) {\n let $filtered = false;\n if (Object.keys(nextSubState.$filters).length > 1 ||\n (typeof nextSubState.$filters.level === 'undefined')) {\n $filtered = true;\n }\n\n nextState = deepAssign(nextState, sdoNs.USER_SEARCH, {\n $filtered\n });\n }\n\n return nextState;\n },\n (nextState) => { // $pageNumber\n const state = storeInstance.getState();\n const nextSubState = nextState[sdoNs.USER_SEARCH];\n const subState = state[sdoNs.USER_SEARCH];\n\n if (\n typeof nextSubState.$pageNumber === 'undefined'\n ||\n nextSubState.hasMore !== subState.hasMore\n ||\n nextSubState.$sort !== subState.$sort\n ) {\n const hasOffset = Boolean(nextSubState.$sort.last_values);\n let $pageNumber = 1;\n let $numPages = 3;\n\n if (nextSubState.$sort.is_forward) {\n if (hasOffset) {\n $pageNumber = 2;\n }\n\n if (!nextSubState.hasMore) {\n $numPages = $pageNumber;\n }\n } else {\n $pageNumber = nextSubState.hasMore ? 2 : 1;\n }\n\n nextState = deepAssign(nextState, `${sdoNs.USER_SEARCH}`, {$pageNumber, $numPages});\n }\n\n return nextState;\n },\n (nextState) => { // $selectedRosterFile\n const state = storeInstance.getState();\n const nextSubState = nextState[sdoNs.USER_SEARCH];\n const subState = state[sdoNs.USER_SEARCH];\n\n if (typeof nextSubState.$selectedRosterFile === 'undefined' ||\n nextSubState.pendingFilters?.roster_job_id !== subState.pendingFilters?.roster_job_id || // eslint-disable-line\n nextState[sdoNs.USER_JOBS].$rosterFiles !== state[sdoNs.USER_JOBS].$rosterFiles\n ) {\n const $selectedRosterFile = nextState[sdoNs.USER_JOBS].$rosterFiles\n .find((item) => item.id === parseInt(nextSubState.pendingFilters?.roster_job_id, 10)); // eslint-disable-line\n\n nextState = deepAssign(nextState, sdoNs.USER_SEARCH, {$selectedRosterFile});\n }\n\n return nextState;\n }\n ]\n};\n\nstoreInstance.addState(sdo);\n","import dotOrange from '../../images/dot-orange.webp';\nimport dotGrey from '../../images/dot-grey.webp';\n\nexport default (ctx, html) => html`\n
\n ${renderImages(ctx, html)}\n
\n
\n \n ${html`${renderButtons(ctx, html)}`}\n \n
\n`;\n\nconst renderButtons = (ctx, html) => {\n return ctx.config.items.map((item, index) => {\n const isSelected = ctx.selectedIndex === index;\n const src = isSelected ? dotOrange : dotGrey;\n return html`\n
\n ctx.selectIndex(index, true)}\">\n
\n `;\n });\n};\n\nconst renderImages = (ctx, html) => {\n return ctx.config.items.map((item, index) => {\n const className = ctx.selectedIndex === index ? 'visible in' : 'invisible';\n return html``;\n });\n};\n","import styles from './template.css';\nimport template from './template';\nimport {AoflElement, customElement, property} from '@aofl/element';\n\n/**\n * @summary CarouselElement\n * @extends {AoflElement}\n */\n@customElement('carousel-element')\nclass CarouselElement extends AoflElement {\n /**\n * Creates an instance of Carousel.\n */\n constructor() {\n super();\n }\n\n /**\n * @readonly\n */\n static is = 'carousel-element';\n\n @property({type: Object, attribute: true})\n config = {};\n\n @property({type: Number, attribute: false})\n selectedIndex = 0;\n\n interval = null;\n\n selectIndex(index, clearInterval) {\n this.selectedIndex = index;\n if (clearInterval) {\n this.clearInterval();\n }\n }\n\n nextItem(clearInterval) {\n if (clearInterval) {\n this.clearInterval();\n }\n\n let nextIndex = this.selectedIndex + 1;\n if (nextIndex > this.config.items.length - 1) {\n nextIndex = 0;\n }\n this.selectedIndex = nextIndex;\n }\n\n prevItem(clearInterval) {\n if (clearInterval) {\n this.clearInterval();\n }\n\n let nextIndex = this.selectedIndex - 1;\n if (nextIndex < 0) {\n nextIndex = this.config.items.length - 1;\n }\n this.selectedIndex = nextIndex;\n }\n\n connectedCallback() {\n super.connectedCallback();\n // this.interval = setInterval(() => this.nextItem(), 3000);\n }\n\n disconnectedCallback() {\n super.disconnectedCallback();\n this.clearInterval();\n }\n\n clearInterval() {\n if (this.interval) {\n clearInterval(this.interval);\n }\n }\n\n /**\n *\n * @return {Object}\n */\n render() {\n return super.render(template, [styles]);\n }\n}\n\nexport default CarouselElement;\n","exports = module.exports = require(\"../../../node_modules/css-loader/dist/runtime/api.js\")(false);\n// Imports\nvar getUrl = require(\"../../../node_modules/css-loader/dist/runtime/getUrl.js\");\nvar ___CSS_LOADER_URL___0___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-light.woff2\"));\nvar ___CSS_LOADER_URL___1___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-lightit.woff2\"));\nvar ___CSS_LOADER_URL___2___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-reg.woff2\"));\nvar ___CSS_LOADER_URL___3___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-regit.woff2\"));\nvar ___CSS_LOADER_URL___4___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-sbold.woff2\"));\nvar ___CSS_LOADER_URL___5___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-sboldit.woff2\"));\nvar ___CSS_LOADER_URL___6___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-bold.woff2\"));\nvar ___CSS_LOADER_URL___7___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-boldit.woff2\"));\nvar ___CSS_LOADER_URL___8___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-Light.woff2\"));\nvar ___CSS_LOADER_URL___9___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-LightIt.woff2\"));\nvar ___CSS_LOADER_URL___10___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-Regular.woff2\"));\nvar ___CSS_LOADER_URL___11___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-RegularIt.woff2\"));\nvar ___CSS_LOADER_URL___12___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-Semibold.woff2\"));\nvar ___CSS_LOADER_URL___13___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-SemiboldIt.woff2\"));\nvar ___CSS_LOADER_URL___14___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-Bold.woff2\"));\nvar ___CSS_LOADER_URL___15___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-BoldIt.woff2\"));\nvar ___CSS_LOADER_URL___16___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-ExtraBold.woff2\"));\nvar ___CSS_LOADER_URL___17___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-ExtraBoldIt.woff2\"));\nvar ___CSS_LOADER_URL___18___ = getUrl(require(\"../../template/main/fonts/aofl-icons/icomoon.woff2?c6f21u\"));\n// Module\nexports.push([module.id, \"/*! @aofl-component */:root{--blue:#0d6efd;--indigo:#6610f2;--purple:#8b42ca;--pink:#e83e8c;--red:#e50b0a;--orange:#e17a05;--yellow:#ffc107;--green:#3c8104;--teal:#20c997;--cyan:#53c9dc;--white:#fff;--gray:#6b6b6b;--gray-dark:#343a40;--light-green:#b1dd53;--table-border-color:#d8d8d8;--gray-100:#f2f2f2;--gray-200:#d9d9d9;--gray-300:#d8d8d8;--gray-400:#ced4da;--gray-500:#adb5bd;--gray-600:#6c757d;--gray-700:#4a4a4a;--gray-800:#343a40;--gray-900:#212529;--gray-accessibility:#6b6b6b;--primary:#0d6efd;--secondary:#adb5bd;--success:#3c8104;--info:#cfe2ff;--warning:#e17a05;--danger:#d20a09;--light:#f8f9fa;--dark:#000;--breakpoint-xxs:0;--breakpoint-xs:375px;--breakpoint-sm:576px;--breakpoint-md:768px;--breakpoint-lg:992px;--breakpoint-xl:1200px;--font-family-sans-serif:aofl-sans,Arial,Helvetica,sans-serif;--font-family-monospace:SFMono-Regular,Menlo,Monaco,Consolas,\\\"Liberation Mono\\\",\\\"Courier New\\\",monospace;--z-index-dropdown:1000;--z-index-sticky:1020;--z-index-fixed:1030;--z-index-modal-backdrop:1040;--z-index-modal:1050;--z-index-popover:1060;--z-index-tooltip:1070;--header-height:6rem;--content-height:calc(100vh - 6rem);--sidepanel-width:20rem;--purple-color:#641da3;--purple-600:#956abc;--purple-400:#c7afdd;--purple-200:#e0d2ed;--struggling:#f6993b;--below-target:#ffcf00;--in_progress:#1280f5;--prior_knowledge:#edf887;--mastery_achieved:#69d112;--inactive:#d8d8d8}route-view{max-width:1200px}@font-face{font-family:aofl-sans;font-style:normal;font-weight:300;src:url(\" + ___CSS_LOADER_URL___0___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:italic;font-weight:300;src:url(\" + ___CSS_LOADER_URL___1___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:normal;font-weight:400;src:url(\" + ___CSS_LOADER_URL___2___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:italic;font-weight:400;src:url(\" + ___CSS_LOADER_URL___3___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:normal;font-weight:600;src:url(\" + ___CSS_LOADER_URL___4___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:italic;font-weight:600;src:url(\" + ___CSS_LOADER_URL___5___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:normal;font-weight:700;src:url(\" + ___CSS_LOADER_URL___6___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:italic;font-weight:700;src:url(\" + ___CSS_LOADER_URL___7___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:normal;font-weight:300;src:url(\" + ___CSS_LOADER_URL___8___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:italic;font-weight:300;src:url(\" + ___CSS_LOADER_URL___9___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:normal;font-weight:400;src:url(\" + ___CSS_LOADER_URL___10___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:italic;font-weight:400;src:url(\" + ___CSS_LOADER_URL___11___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:normal;font-weight:600;src:url(\" + ___CSS_LOADER_URL___12___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:italic;font-weight:600;src:url(\" + ___CSS_LOADER_URL___13___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:normal;font-weight:700;src:url(\" + ___CSS_LOADER_URL___14___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:italic;font-weight:700;src:url(\" + ___CSS_LOADER_URL___15___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:normal;font-weight:800;src:url(\" + ___CSS_LOADER_URL___16___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:italic;font-weight:800;src:url(\" + ___CSS_LOADER_URL___17___ + \") format(\\\"woff2\\\")}@font-face{font-family:icomoon;src:url(\" + ___CSS_LOADER_URL___18___ + \") format(\\\"woff2\\\");font-weight:400;font-style:normal;font-display:block}[class*=\\\" ai-\\\"],[class^=ai-]{font-family:icomoon!important;speak:never;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*,:after,:before{box-sizing:border-box}html{font-family:sans-serif;line-height:1.15;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:rgba(0,0,0,0)}figcaption,main,nav,section{display:block}[tabindex=\\\"-1\\\"]:focus{outline:0!important}p{margin-top:0;margin-bottom:1.6rem}strong{font-weight:bolder}a{color:#0d6efd;background-color:transparent}a,a:hover{text-decoration:none}a:hover{color:rgb(0,86.1,178.5)}a:not([href]):not([tabindex]),a:not([href]):not([tabindex]):focus,a:not([href]):not([tabindex]):hover{color:inherit;text-decoration:none}a:not([href]):not([tabindex]):focus{outline:0}caption{padding-top:.75rem;padding-bottom:.75rem;color:#6c757d;text-align:left;caption-side:bottom}label{display:inline-block;margin-bottom:.8rem}button{border-radius:0}button:focus{outline:1px dotted;outline:5px auto -webkit-focus-ring-color}button,input,select{margin:0;font-family:inherit;font-size:inherit;line-height:inherit}button,input{overflow:visible}button,select{text-transform:none}select{word-wrap:normal}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]:not(:disabled),[type=reset]:not(:disabled),[type=submit]:not(:disabled),button:not(:disabled){cursor:pointer}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{padding:0;border-style:none}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}input[type=date],input[type=datetime-local],input[type=month],input[type=time]{-webkit-appearance:listbox}legend{display:block;width:100%;max-width:100%;padding:0;margin-bottom:.5rem;font-size:1.5rem;line-height:inherit;color:inherit;white-space:normal}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:none}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}summary{display:list-item;cursor:pointer}template{display:none}[hidden]{display:none!important}*{-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important}html{font-size:62.5%;height:100%}link-to{color:#0d6efd;text-decoration:none;background-color:transparent}link-to:hover{color:rgb(0,86.1,178.5);text-decoration:none;cursor:pointer}route-view{display:none;flex:1}site-header{background-color:#fff;display:none;position:-webkit-sticky;position:sticky;top:0;height:var(--header-height)}#main{display:none;flex:1 auto;max-width:100%;overflow:hidden;flex-direction:column;overflow-y:scroll}.loaded #main,.loaded site-header,body.loaded,route-view.loaded{display:flex}route-view.left-panel-active{padding-left:var(--sidepanel-width)}.form-control{display:block;width:100%;height:calc(1.5em + .75rem + 2px);padding:.375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:#495057;background-color:#fff;background-clip:padding-box;border:1px solid #ced4da;border-radius:.25rem;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.form-control{transition:none}}.form-control::-ms-expand{background-color:transparent;border:0}.form-control:focus{color:#495057;background-color:#fff;border-color:rgb(127.5,189,255);outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.form-control::-webkit-input-placeholder{color:#6c757d;opacity:1}.form-control::-moz-placeholder{color:#6c757d;opacity:1}.form-control:-ms-input-placeholder{color:#6c757d;opacity:1}.form-control::-ms-input-placeholder{color:#6c757d;opacity:1}.form-control::placeholder{color:#6c757d;opacity:1}.form-control:disabled,.form-control[readonly]{background-color:#e9ecef;opacity:1}select.form-control:focus::-ms-value{color:#495057;background-color:#fff}.col-form-label{padding-top:calc(.375rem + 1px);padding-bottom:calc(.375rem + 1px);margin-bottom:0;font-size:inherit;line-height:1.5}.form-control-sm{height:calc(1.5em + .5rem + 2px);padding:.25rem .5rem;font-size:.875rem;line-height:1.5;border-radius:.2rem}select.form-control[multiple],select.form-control[size]{height:auto}.invalid-feedback{display:none;width:100%;margin-top:.25rem;font-size:80%;color:#e50b0a}.form-control.is-invalid{border-color:#e50b0a;padding-right:calc(1.5em + .75rem);background-image:url(\\\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23dc3545' viewBox='-2 -2 7 7'%3E%3Cpath stroke='%23dc3545' d='M0 0l3 3m0-3L0 3'/%3E%3Ccircle r='.5'/%3E%3Ccircle cx='3' r='.5'/%3E%3Ccircle cy='3' r='.5'/%3E%3Ccircle cx='3' cy='3' r='.5'/%3E%3C/svg%3E\\\");background-repeat:no-repeat;background-position:100% calc(.375em + .1875rem);background-size:calc(.75em + .375rem) calc(.75em + .375rem)}.form-control.is-invalid:focus{border-color:#e50b0a;box-shadow:0 0 0 .2rem rgba(229,11,10,.25)}.form-control.is-invalid~.invalid-feedback{display:block}.col-form-label{display:flex;align-items:center;font-weight:600}.form-control{font-size:1.5rem;height:4.8rem;padding:1.2rem 1rem}.form-control[multiple]{padding:0}.form-control[multiple] option{padding:.8rem 1.2rem}.form-control.is-invalid{background-position:99%}.form-control-sm{height:3.2rem;padding:.4rem .8rem;border-radius:.32rem}input[type=checkbox].is-invalid+label{color:#e50b0a}input[type=checkbox],input[type=radio]{cursor:pointer}input[type=checkbox]+label,input[type=radio]+label{cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.invalid-feedback{color:#d20a09}.form-control.is-invalid{border-color:#d20a09;background:none}.form-control{border:1px solid #6b6b6b}.form-control:focus{border-color:#0d6efd}button,button:active{outline:none}[tabindex=\\\"0\\\"]:focus-visible,a:focus-visible,aofl-list-option:focus-visible,button[type=button]:focus-visible,collapse-button:focus-visible{outline:1px solid #e50b0a;border:1px solid #e50b0a}.dropdown{position:relative;display:inline-block}@keyframes progress-bar-stripes{0%{background-position:1.6rem 0}to{background-position:0 0}}.modal-container{background-color:rgba(0,0,0,.2);position:fixed;top:0;bottom:0;right:0;left:0;z-index:var(--z-index-modal)}.modal-container :first-child{overflow:auto}.modal{position:relative;display:block;height:100vh}.modal-dialog-centered.modal-dialog-scrollable{height:auto;max-height:calc(100% - 2.8rem);min-height:auto}.modal-body,.modal-content,.modal-footer,.modal-header{border:none}.modal-header{font-size:2rem;padding:2.4rem}.modal-body{padding:0 2.4rem 4.8rem}.colored-header{color:#fff}.modal-body p{text-align:left}.colored-header-primary{background-color:#0d6efd}.colored-header-secondary{background-color:#adb5bd}.colored-header-success{background-color:#3c8104}.colored-header-info{background-color:#cfe2ff}.colored-header-warning{background-color:#e17a05}.colored-header-danger{background-color:#d20a09}.colored-header-light{background-color:#f8f9fa}.colored-header-dark{background-color:#000}@keyframes spinner-border{to{transform:rotate(1turn)}}@keyframes spinner-grow{0%{transform:scale(0)}50%{opacity:1}}.d-block{display:block!important}.d-flex{display:flex!important}.mb-0{margin-bottom:0!important}.mb-5{margin-bottom:3rem!important}@media (min-width:992px){.mr-lg-5{margin-right:3rem!important}}[hidden]{visibility:hidden!important;height:0!important;width:0!important;min-height:unset!important}@media print{*,:after,:before{text-shadow:none!important;box-shadow:none!important}a:not(.btn){text-decoration:underline}p{orphans:3;widows:3}@page{size:a3}}@media print{main::-webkit-scrollbar{display:none}main{-ms-overflow-style:none;scrollbar-width:none}}@page{size:A4;margin:20mm 16mm 20mm 16mm}:host{display:inline-block}\", \"\"]);\n","import '@aofl/picture';\nimport logo from '@assets/images/aofl-logo.webp';\n\nexport const template = (ctx, html) => html`\n
\n
\n \n \n \n \n
\n \n \n
\n`;\n","import styles from './template.css';\nimport {template} from './template';\nimport {AoflElement, customElement} from '@aofl/element';\nimport {i18nMixin} from '@aofl/i18n-mixin';\n\n/**\n * @summary ParentLayout\n * @extends {AoflElement}\n */\n@customElement('parent-layout')\nclass ParentLayout extends i18nMixin(AoflElement) {\n /**\n * Creates an instance of ParentLayout.\n */\n constructor() {\n super();\n }\n\n /**\n * @readonly\n */\n static is = 'parent-layout';\n\n /**\n *\n * @return {Object}\n */\n render() {\n return super.render({\n default: {template, styles: [styles]}\n });\n }\n}\n\nexport default ParentLayout;\n","import '../pagination-element';\nimport {until} from 'lit-html/directives/until';\n\nexport default (ctx, html) => html`\n \n ${until(ctx.__('', 'Prev'))}\n ${until(ctx.__('', 'Next'))}\n \n`;\n","import styles from './template.css';\nimport template from './template';\nimport {AoflElement, customElement, property} from '@aofl/element';\nimport {storeInstance} from '@aofl/store/dist/legacy';\nimport {routerInstance} from '@aofl/router';\nimport {sdoNs} from '../constants-enumerate';\nimport {deepAssign} from '@aofl/object-utils';\nimport {SearchParams} from '../search-url-params';\nimport {mapStatePropertiesMixin} from '@aofl/map-state-properties-mixin';\nimport {i18nMixin} from '@aofl/i18n-mixin';\nimport translations from '@modules/i18n';\n\n/**\n * @summary SearchPagination\n * @extends {mapStatePropertiesMixin(i18nMixin(AoflElement))}\n */\n@customElement('search-pagination')\nclass SearchPagination extends mapStatePropertiesMixin(i18nMixin(AoflElement)) {\n /**\n * Creates an instance of SearchPagination.\n */\n constructor() {\n super();\n this.storeInstance = storeInstance;\n this.translations = translations;\n }\n\n /**\n * @readonly\n */\n static is = 'search-pagination';\n @property({type: Number, attribute: false})\n numPages = 3;\n\n @property({type: Number, attribute: false})\n totalResults = 0;\n\n @property({type: Array, attribute: false})\n notSelected = [];\n\n @property({type: Number, attribute: false})\n currentPage = 2;\n\n @property({type: Boolean})\n disabled = false;\n\n @property({type: Boolean})\n ['disable-routing']\n\n @property({type: String})\n ['search-namespace'] = sdoNs.GROUP_SEARCH;\n\n searchTargetUrl = '';\n\n async pageChange(e) {\n this.disabled = true;\n await this.updateComplete;\n\n const currentPage = e.detail.pageNumber;\n const searchState = storeInstance.getState()[this['search-namespace']];\n\n let sortedField = 'name';\n\n if (typeof searchState.$sort.fields[0] !== 'undefined') {\n sortedField = searchState.$sort.fields[0];\n }\n\n const paging = currentPage > this.currentPage ? searchState.$next : searchState.$prev;\n const column = searchState.tableConfig.find((item) => item.key === sortedField);\n const lastValue = column?.sortValue ? column.sortValue(paging) : paging[sortedField];\n const lastValues = [lastValue];\n if (sortedField !== 'id') {\n lastValues.push(paging.id);\n }\n\n const queryObj = deepAssign(searchState.queryObj, 'sort', {\n last_values: lastValues,\n is_forward: currentPage > this.currentPage\n });\n\n if (this['disable-routing']) {\n storeInstance.commit({namespace: this['search-namespace'], mutationId: 'setQueryObj', payload: queryObj});\n this.dispatchEvent(new CustomEvent('change-page', {\n detail: {queryObj},\n composed: true\n }));\n this.disabled = false;\n } else {\n const searchParams = SearchParams.encode(queryObj);\n\n try {\n await routerInstance.navigate(`${this.searchTargetUrl}?${searchParams}`, {});\n } catch (e) {\n this.disabled = false;\n } finally {\n const commits = [];\n if (searchState.lastPage) {\n commits.push({\n namespace: this['search-namespace'],\n mutationId: 'setLastPage',\n payload: false\n });\n }\n const state = this.storeInstance.getState();\n const persistentSelection = state[this['search-namespace']].queryObj.persistent_selection;\n if (persistentSelection.length > 0) {\n commits.push({\n namespace: this['search-namespace'],\n mutationId: 'persistentSelection',\n payload: false\n });\n }\n if (commits.length) {\n storeInstance.commit(...commits);\n }\n }\n }\n }\n\n mapStateProperties() {\n const state = this.storeInstance.getState();\n\n this.currentPage = state[this['search-namespace']].$pageNumber;\n this.numPages = state[this['search-namespace']].$numPages;\n this.searchTargetUrl = state[this['search-namespace']].searchTargetUrl;\n }\n /**\n *\n * @return {Object}\n */\n render() {\n return super.render({\n default: {template, styles: [styles]}\n });\n }\n}\n\nexport default SearchPagination;\n","export default {\n 'es-US': () => import('./translations_es-US.json'),\n\n 'ja-JP': () => import('./translations_ja-JP.json'),\n\n 'zh-CN': () => import('./translations_zh-CN.json'),\n\n 'zh-TW': () => import('./translations_zh-TW.json'),\n}","import {gradesLabels} from './i18n-labels';\nimport {grades} from './constants-enumerate';\n\nconst gradesList = [\n {\n label: gradesLabels[grades.NOT_SET],\n value: grades.NOT_SET,\n },\n {\n label: gradesLabels[grades.PREKINDERGARTEN],\n value: grades.PREKINDERGARTEN,\n },\n {\n label: gradesLabels[grades.KINDERGARTEN],\n value: grades.KINDERGARTEN,\n },\n {\n label: gradesLabels[grades.GRADE_1],\n value: grades.GRADE_1,\n },\n {\n label: gradesLabels[grades.GRADE_2],\n value: grades.GRADE_2,\n },\n {\n label: gradesLabels[grades.GRADE_3],\n value: grades.GRADE_3,\n },\n {\n label: gradesLabels[grades.GRADE_4],\n value: grades.GRADE_4,\n },\n {\n label: gradesLabels[grades.GRADE_5],\n value: grades.GRADE_5,\n },\n {\n label: gradesLabels[grades.OTHER],\n value: grades.OTHER,\n },\n];\n\n\nexport {\n gradesList,\n};\n","module.exports = __webpack_public_path__ + \"06ea27b87a7f5dca9db699d85a4cd818.webp\";","module.exports=function(t){var e={};function n(r){if(e[r])return e[r].exports;var o=e[r]={i:r,l:!1,exports:{}};return t[r].call(o.exports,o,o.exports,n),o.l=!0,o.exports}return n.m=t,n.c=e,n.d=function(t,e,r){n.o(t,e)||Object.defineProperty(t,e,{enumerable:!0,get:r})},n.r=function(t){\"undefined\"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:\"Module\"}),Object.defineProperty(t,\"__esModule\",{value:!0})},n.t=function(t,e){if(1&e&&(t=n(t)),8&e)return t;if(4&e&&\"object\"==typeof t&&t&&t.__esModule)return t;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,\"default\",{enumerable:!0,value:t}),2&e&&\"string\"!=typeof t)for(var o in t)n.d(r,o,function(e){return t[e]}.bind(null,o));return r},n.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return n.d(e,\"a\",e),e},n.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},n.p=\"/\",n(n.s=\"QfWi\")}({\"+IV6\":function(t,e){function n(e){return t.exports=n=Object.setPrototypeOf?Object.getPrototypeOf:function(t){return t.__proto__||Object.getPrototypeOf(t)},n(e)}t.exports=n},\"5WRv\":function(t,e,n){var r=n(\"iNmH\"),o=n(\"Qatm\"),i=n(\"kluZ\");t.exports=function(t){return r(t)||o(t)||i()}},K4DB:function(t,e,n){var r=n(\"e+GP\"),o=n(\"T1e2\");t.exports=function(t,e){return!e||\"object\"!==r(e)&&\"function\"!=typeof e?o(t):e}},NToG:function(t,e){function n(t,e){for(var n=0;n2&&void 0!==arguments[2]?arguments[2]:\"\";for(var i in o()(this,t),Object.defineProperty(this,\"resolve\",{writable:!0}),Object.defineProperty(this,\"validateCompleteResolved\",{writable:!0}),Object.defineProperty(this,\"validateCompletePromise\",{writable:!0}),n)if(Object.prototype.hasOwnProperty.call(n,i)){if(Object.prototype.hasOwnProperty.call(this,i))throw new Error(\"\".concat(i,\" is a reserved keyword and cannot be used as a validator name.\"));var s=r;0===s.length?s=i:s+=\".\"+i,\"function\"==typeof n[i]?this[i]=new b(e,n[i],s):this[i]=new t(e,n[i],s)}this.reset()}return d()(t,[{key:\"reset\",value:function(){var e=this;for(var n in this.validateCompletePromise=new Promise((function(t){e.resolve=t})),this.validateCompleteResolved=!1,this)Object.prototype.hasOwnProperty.call(this,n)&&(this[n]instanceof t||this[n]instanceof b)&&this[n].reset()}},{key:\"validate\",value:function(){for(var e in this)Object.prototype.hasOwnProperty.call(this,e)&&(this[e]instanceof t||this[e]instanceof b)&&this[e].validate()}},{key:\"getKeys\",value:function(){var t=[\"valid\",\"pending\",\"observed\"];for(var e in this)Object.prototype.hasOwnProperty.call(this,e)&&(t.push(e),t.push.apply(t,v()(this[e].getKeys())));return t}},{key:\"toString\",value:function(){var t=this.getKeys();return JSON.stringify(this,t,2)}},{key:\"valid\",get:function(){for(var e in this)if(Object.prototype.hasOwnProperty.call(this,e)&&(this[e]instanceof t||this[e]instanceof b)&&!1===this[e].valid)return!1;return!0}},{key:\"pending\",get:function(){for(var e in this)if(Object.prototype.hasOwnProperty.call(this,e)&&(this[e]instanceof t||this[e]instanceof b)&&!0===this[e].pending)return!0;return!1}},{key:\"observed\",get:function(){for(var e in this)if(Object.prototype.hasOwnProperty.call(this,e)&&(this[e]instanceof t||this[e]instanceof b)&&!0===this[e].observed)return!0;return!1}},{key:\"validateComplete\",get:function(){var t=this;this.pending&&this.validateCompleteResolved&&(this.validateCompleteResolved=!1,this.validateCompletePromise=new Promise((function(e){t.resolve=e})));return function e(){var n=Object.keys(t).map((function(e){return t[e].validateComplete}));Promise.all(n).then((function(){if(t.pending)return e();t.resolve(),t.validateCompleteResolved=!0}))}(),this.validateCompletePromise}}]),t}(),g=function(t){return function(t){function e(){var t,n;o()(this,e);for(var r=arguments.length,i=new Array(r),a=0;a=t}},x=function(t){return function(e){return\"string\"==typeof e&&e.length<=t}};function S(t){return\"string\"==typeof t&&\"\"!==t}n.d(e,\"validationMixin\",(function(){return g})),n.d(e,\"isAllDigits\",(function(){return P})),n.d(e,\"isEqual\",(function(){return w})),n.d(e,\"isRequired\",(function(){return S})),n.d(e,\"minLength\",(function(){return j})),n.d(e,\"maxLength\",(function(){return x}))},SDJZ:function(t,e){t.exports=function(t,e){if(!(t instanceof e))throw new TypeError(\"Cannot call a class as a function\")}},T1e2:function(t,e){t.exports=function(t){if(void 0===t)throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");return t}},WI9V:function(t,e){function n(e,r){return t.exports=n=Object.setPrototypeOf||function(t,e){return t.__proto__=e,t},n(e,r)}t.exports=n},\"e+GP\":function(t,e){function n(t){return(n=\"function\"==typeof Symbol&&\"symbol\"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&\"function\"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?\"symbol\":typeof t})(t)}function r(e){return\"function\"==typeof Symbol&&\"symbol\"===n(Symbol.iterator)?t.exports=r=function(t){return n(t)}:t.exports=r=function(t){return t&&\"function\"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?\"symbol\":n(t)},r(e)}t.exports=r},\"eef+\":function(t,e,n){var r=n(\"WI9V\");t.exports=function(t,e){if(\"function\"!=typeof e&&null!==e)throw new TypeError(\"Super expression must either be null or a function\");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),e&&r(t,e)}},iNmH:function(t,e){t.exports=function(t){if(Array.isArray(t)){for(var e=0,n=new Array(t.length);e html`${ctx.hide? '' : html``}`;\n","import styles from './template.css';\nimport template from './template';\nimport {AoflElement, customElement, property} from '@aofl/element';\nimport {sdoNs} from '../constants-enumerate';\nimport {storeInstance} from '@aofl/store/dist/legacy';\nimport '../session-sdo';\n\n/**\n * @summary HideForLevel\n * @extends {AoflElement}\n */\n@customElement('hide-for-level')\nclass HideForLevel extends AoflElement {\n /**\n * Creates an instance of HideForLevel.\n */\n constructor() {\n super();\n }\n /**\n * @readonly\n */\n static is = 'hide-for-level';\n @property({type: Number, mapState: `${sdoNs.SESSION}.group_info.level`, store: storeInstance})\n currentLevel = 0;\n\n @property({type: Number, mapState: `${sdoNs.SESSION}.$topLevel`, store: storeInstance})\n topLevel = 0;\n\n @property({type: Number, mapState: `${sdoNs.SESSION}.$classLevel`, store: storeInstance})\n classLevel = 0;\n\n @property({type: Array, attribute: 'disable-levels'})\n disableLevels = [];\n\n @property({type: Boolean, attribute: 'disable-classes'})\n disableClasses = false;\n\n @property({type: Boolean, attribute: 'disable-top'})\n disableTop = false;\n\n @property({type: Boolean})\n hide = false;\n\n shouldUpdate(changedProperties) {\n if (\n (this.disableLevels.indexOf(this.currentLevel) !== -1) || // hide if specified\n (this.disableClasses && this.currentLevel === this.classLevel) || // hide if class matches\n (this.disable && this.currentLevel === this.topLevel) // hide org level\n ) {\n this.hide = true;\n } else {\n this.hide = false;\n }\n\n return true;\n }\n /**\n *\n * @return {Object}\n */\n render() {\n return super.render(template, [styles]);\n }\n}\n\nexport default HideForLevel;\n","import {until} from 'lit-html/directives/until';\n\nexport default (ctx, html) => html`\n
\n
\n ${ctx.row.label ? ctx.row.label : until(ctx._r(ctx.__('', '%r1% Licenses:'), ctx.row.groupName))}\n
\n
\n
${until(ctx.__('', 'Total'))}
\n
${ctx.row.total}
\n
\n
\n
${until(ctx.__('', 'Available'))}
\n
${ctx.row.unassigned}
\n
\n
\n
\n
${until(ctx.__('', 'Assigned'))}
\n
${ctx.row.assigned}
\n
\n
\n
\n
${until(ctx.__('', 'Redeemed'))}
\n
${ctx.row.redeemed}
\n
\n
\n
\n
\n`;\n","import styles from './template.css';\nimport template from './template';\nimport {AoflElement, customElement, property} from '@aofl/element';\nimport {i18nMixin} from '@aofl/i18n-mixin';\nimport translations from '../../i18n';\n\n/**\n * @summary LicenseInfoRow\n * @extends {AoflElement}\n */\n@customElement('license-info-row')\nclass LicenseInfoRow extends i18nMixin(AoflElement) {\n /**\n * Creates an instance of LicenseInfoRow.\n */\n constructor() {\n super();\n this.translations = translations;\n }\n\n @property({type: Object})\n row = {};\n\n @property({type: Array, attribute: true})\n styles = [];\n\n @property({type: Boolean})\n loading = false;\n\n /**\n * @readonly\n */\n static is = 'license-info-row';\n /**\n *\n * @return {Object}\n */\n render() {\n return super.render({\n default: {\n template,\n styles: [styles, ...this.styles]\n }\n });\n }\n}\n\nexport default LicenseInfoRow;\n","export default {\n 'es-US': () => import('./translations_es-US.json'),\n\n 'ja-JP': () => import('./translations_ja-JP.json'),\n\n 'zh-CN': () => import('./translations_zh-CN.json'),\n\n 'zh-TW': () => import('./translations_zh-TW.json'),\n}","exports = module.exports = require(\"../../../../node_modules/css-loader/dist/runtime/api.js\")(false);\n// Module\nexports.push([module.id, \":host{display:inline-block}\", \"\"]);\n","import {repeat} from 'lit-html/directives/repeat';\nimport {until} from 'lit-html/directives/until';\nimport {generalLabels, searchLabels} from '@modules/i18n-labels';\nimport '@modules/dropdown';\nimport {LoadingEllipses} from '@epg/epg-components';\nimport '@modules/object-search-form';\n\nconst getButtonLabel = (ctx, html, groupId, index) => {\n if (ctx.selectedGroupsInfo?.[groupId]?.name) {\n return ctx.selectedGroupsInfo?.[groupId]?.name;\n }\n if (ctx.tierStructureLabels?.[index + ctx.adminGroup.level - 1]) {\n return until(ctx._r(ctx.__('', '%r1%'), ctx.tierStructureLabels?.[index + ctx.adminGroup.level - 1]));\n }\n return until(ctx.__('', 'Class'));\n};\nconst renderRegularDropDownFilter = (ctx, html, groupId, level, i) => {\n return html`\n ctx.toggleDropdown(groupId, i)}\"\n style=\"border-bottom: 1px solid #e5e5e5; padding: 0.25em 1em;\"\n >\n\n \n
\n ${getSearchBar(ctx.groupsAtLevel?.[level]?.has_more, groupId, i, level, ctx, html)}\n ${ctx.loading ?\n html`\n ` :\n (ctx.groupsAtLevel?.[level]?.results?.length) ?\n html`\n ${repeat(ctx.groupsAtLevel?.[level]?.results, (group) => group, (group) => renderButton(ctx, html, group, groupId))}\n ${ctx.groupsAtLevel?.[level]?.has_more ? html`\n
\n ${until(searchLabels.showingFirstOfAmount(ctx.limit))}\n
\n ` : ``}\n ` :\n html`
${until(searchLabels.NO_MATCHING_RESULTS)}
`}\n
\n \n `;\n};\n\nconst getSearchBar = (hasMore, groupId, dropdownIndex, level, ctx, html) => {\n if (hasMore || ctx.search?.query) {\n return html`\n ctx.triggerSearch(e, groupId, dropdownIndex)}\"\n .placeholder=\"${until(ctx.tierStructureLabels?.[level - 2] ? ctx.i18n._r(ctx.i18n.__('', 'Search %r1%'), ctx.tierStructureLabels?.[level - 2]) : ctx.i18n.__('', 'Search Class'))}\"\n .column-layout=\"${true}\"\n reset-text=\"Reset All Filters\">`;\n }\n};\n\nconst renderButton = (ctx, html, group, selectedGroupId) => {\n return html ` ctx.selectGroup(group) }\"\n data-hide-pii=\"true\"\n data-bi-id=\"group_select_${group.id}\"\n data-bi-action=\"Group Select ${group.id}\">\n ${group.name}\n `;\n};\n\nexport default (ctx, html) => {\n const itemTemplates = [];\n\n for (let i = 0; i <= ctx['selected-groups']?.length; i++) {\n const groupId = ctx['selected-groups'][i];\n const level = groupId ?\n ctx.selectedGroupsInfo[groupId]?.path?.split('.').length :\n i + ctx.adminGroup.level + 1;\n if (\n (ctx['max-level'] && i >= ctx['max-level']) ||\n level > ctx.classLevel ||\n ctx.adminGroup.level > level\n ) {\n continue;\n }\n\n itemTemplates.push(renderRegularDropDownFilter(ctx, html, groupId, level, i));\n }\n\n if ((ctx['show-reset'] && ctx['selected-groups']?.length > 0)) {\n itemTemplates.push(\n html``\n );\n }\n return html`${itemTemplates}`;\n};\n","import {storeInstance} from '@aofl/store/dist/legacy';\nimport {deepAssign} from '@aofl/object-utils';\nimport {\n sdoNs,\n} from '@modules/constants-enumerate';\n\nconst sdo = {\n namespace: sdoNs.GROUP_FILTERS_MENU,\n mutations: {\n init() {\n return {\n loading: false,\n groupsAtLevel: {}\n };\n },\n },\n decorators: [\n (nextState) => { // $levelBelowTopOrg\n const state = storeInstance.getState();\n const sessionNextState = nextState[sdoNs.SESSION];\n const nextSubState = nextState[sdoNs.GROUP_FILTERS_MENU];\n if (\n typeof nextSubState.$levelBelowAdminOrg === 'undefined' ||\n sessionNextState.group_info !== state[sdoNs.SESSION].groupInfo\n ) {\n let $levelBelowAdminOrg = 1;\n if (sessionNextState?.group_info?.level) {\n $levelBelowAdminOrg = sessionNextState?.group_info?.level + 1;\n }\n nextState = deepAssign(nextState, sdoNs.GROUP_FILTERS_MENU, {\n $levelBelowAdminOrg,\n });\n }\n return nextState;\n }\n ]\n};\n\nstoreInstance.addState(sdo);\n\n","import styles from './template.css';\nimport template from './template';\nimport {AoflElement, customElement, property} from '@aofl/element';\nimport {i18nMixin} from '@aofl/i18n-mixin';\nimport {ApiService} from '@modules/api-service';\nimport {groupTypes, pages, sdoNs} from '@modules/constants-enumerate';\nimport {storeInstance} from '@aofl/store/dist/legacy';\nimport {uuid} from '@aofl/uuid';\nimport './sdo';\nimport translations from '@modules/i18n';\n\n/**\n * @summary GroupFiltersMenu\n * @extends {AoflElement}\n */\n@customElement('group-filters-menu')\nclass GroupFiltersMenu extends i18nMixin(AoflElement) {\n /**\n * Creates an instance of GroupFiltersMenu.\n */\n constructor() {\n super();\n this.storeInstance = storeInstance;\n this._resetSearchQuery();\n this.limit = 10;\n this.translations = translations;\n }\n /**\n * @readonly\n */\n static is = 'group-filters-menu';\n\n @property({type: Boolean, attribute: true})\n ['show-reset'] = false;\n\n @property({type: Array})\n ['selected-groups'] = [];\n\n @property({type: Array, attribute: false, mapState: `${sdoNs.SESSION}.settings.tier_structure.labels`, store: storeInstance})\n tierStructureLabels = [];\n\n @property({type: Object, mapState: `${sdoNs.SESSION}.group_info`, store: storeInstance})\n adminGroup = {};\n\n @property({type: Number, attribute: false, mapState: `${sdoNs.GROUP_FILTERS_MENU}.$levelBelowAdminOrg`, store: storeInstance})\n levelBelowAdminOrg = 2;\n\n @property({type: Boolean, attribute: false, mapState: `${sdoNs.GROUP_FILTERS_MENU}.loading`, store: storeInstance})\n loading = true;\n\n @property({type: Number, mapState: `${sdoNs.SESSION}.$classLevel`, store: storeInstance})\n classLevel = null;\n\n @property({type: String, mapState: `${sdoNs.DASHBOARD}.pendingFilters.stats_path`, store: storeInstance})\n statsPath;\n\n @property({type: Object})\n groupsAtLevel = {};\n\n @property({type: Object})\n groupsAtTopLevel = {};\n\n @property({type: Object})\n selectedGroupsInfo = {};\n\n @property({type: String})\n rndId = uuid();\n\n @property({type: Number, attribute: true})\n ['max-level'] = null;\n\n @property({type: Boolean})\n ['full-width'] = false;\n\n @property({type: Boolean})\n scrollIntoView = false;\n\n @property({type: Boolean})\n showThirdPartyConnected = true;\n\n @property({type: String})\n page = pages.DASHBOARD;\n\n connectedCallback() {\n super.connectedCallback();\n this.getGroupInfo();\n }\n\n async getGroupInfo() {\n // if there are existing selections in group filters\n if (this['selected-groups'].length) {\n const lastGroupId = [...this['selected-groups']].pop();\n const selectedGroups = this['selected-groups'].map(id => parseInt(id, 10));\n const response = await ApiService.groupGet(selectedGroups, ['id', 'name', 'path', 'type', 'teachers']);\n this.selectedGroupsInfo = response.results;\n const lastGroupInfo = response.results[lastGroupId];\n storeInstance.commit({\n namespace: sdoNs.SESSION,\n mutationId: 'setSelectedGroup',\n payload: lastGroupInfo\n });\n this.searchGroups(lastGroupInfo.path, lastGroupInfo.level);\n }\n }\n\n getSiblings(groupId, dropdownIndex, doReset = true) {\n if (doReset) {\n this._resetSearchQuery();\n }\n // added the one because levels start at one because dropdown counts start\n // at zero and org level index starts at 1;\n let path = '';\n if (groupId) {\n const groupInfo = this.selectedGroupsInfo[groupId];\n path = groupInfo.path;\n } else {\n const previouslySelectedGroupId = this['selected-groups'][dropdownIndex - 1] || null;\n if (previouslySelectedGroupId) {\n path = this.selectedGroupsInfo[previouslySelectedGroupId].path + this.selectedGroupsInfo[previouslySelectedGroupId].id + '.';\n }\n }\n const level = this.adminGroup.level + dropdownIndex + 1;\n this.searchGroups(\n path,\n level\n );\n }\n\n async searchGroups(path, level) {\n this.storeInstance.commit({namespace: sdoNs.GROUP_FILTERS_MENU, mutationId: 'setLoading', payload: true});\n const search = (this.search?.query) ? this.search : void 0;\n\n let groupType = (level === this.classLevel) ? groupTypes.CLASSROOM : groupTypes.MANAGEMENT;\n const resp = await ApiService.groupSearch(\n search,\n {\n path,\n level,\n type: groupType\n },\n {\n fields: ['id', 'name'],\n direction: 'asc',\n limit: this.limit,\n },\n this.showThirdPartyConnected\n );\n\n this.groupsAtLevel = {\n ...this.groupsAtLevel,\n [level]: resp\n };\n this.storeInstance.commit({namespace: sdoNs.GROUP_FILTERS_MENU, mutationId: 'setLoading', payload: false});\n }\n\n triggerSearch(e, groupId, dropdownIndex) {\n this.search = e.detail;\n this.getSiblings(groupId, dropdownIndex, false);\n }\n\n triggerTopOrgSearch(e) {\n this.search = e.detail;\n this.getSiblings(null, 1, false);\n }\n\n toggleDropdown(groupId, dropdownIndex) {\n const state = storeInstance.getState();\n const dropDownBoxOpened = state[sdoNs.DROPDOWN]['group-dropdown-' + this.rndId + '-' + dropdownIndex];\n if (dropDownBoxOpened) {\n this.getSiblings(groupId, dropdownIndex);\n setTimeout(() => {\n this.shadowRoot.getElementById(`obj-search-form-${dropdownIndex}`)\n ?.focusSearch();\n if (this.scrollIntoView) {\n this.shadowRoot.getElementById(`obj-dropdown-${dropdownIndex}`)\n ?.scrollIntoView({\n block: 'center',\n behavior: 'smooth'\n });\n }\n }, 210);\n }\n }\n\n selectGroup(groupInfo) {\n // this['selected-groups'] was added for the\n // base-search-org-filter compatibility\n const statsPath = groupInfo.path.split('.');\n statsPath.pop();\n statsPath.push(groupInfo.id);\n if (statsPath.length > 0) {\n this['selected-groups'] = statsPath.slice(this.adminGroup.level);\n }\n // everything below this is not for the base-search-org\n this.selectedGroupsInfo[groupInfo.id] = groupInfo;\n\n const url = new URL(location.href);\n const productInUrl = decodeURIComponent(url.searchParams.get('product'));\n url.searchParams.set('filter.stats_path[], product', [, productInUrl]);\n\n this.dispatchEvent(new CustomEvent('group-change', {\n detail: {\n groupInfo\n },\n composed: true,\n bubbles: true\n }));\n this.storeInstance.commit({\n namespace: sdoNs.DROPDOWN,\n mutationId: 'closeAll'\n });\n this._resetSearchQuery();\n }\n\n _resetSearchQuery() {\n this.search = {\n query: '',\n field: 'name'\n };\n }\n\n resetFilter() {\n // this['selected-groups'] was added for the\n // base-search-org-filter compatibility\n this['selected-groups'] = [];\n this.checkedGroupCheckboxes = [];\n\n storeInstance.commit({\n namespace: sdoNs.SESSION,\n mutationId: 'setSelectedGroup',\n payload: this.adminGroup\n });\n this.dispatchEvent(new CustomEvent('group-change', {\n composed: true,\n bubbles: true\n }));\n\n // Force a page reload because:\n // When the dashboard is on http://localhost:9004/dashboard/ and you hit the group-filter reset, the page\n // does not reload and rerun the constructor to get a value for iSInternalDashboard value because the URL\n // does not change.\n // When you are on the MRA tab, the URL is http://localhost:9004/dashboard/?product=my_reading_academy and a\n // Reset filter there does change the URL and reload.\n // The reload also works when hitting reset when you are on http://localhost:9004/dashboard/?product=mathmastery\n window.location = this.page;\n }\n\n update(changedProperties) {\n if (changedProperties.has('statsPath')) {\n this.getGroupInfo();\n }\n super.update(changedProperties);\n }\n\n /**\n * @return {Object}\n */\n render() {\n return super.render({\n default: {template, styles: [styles]}\n });\n }\n}\n\nexport default GroupFiltersMenu;\n","/*!\n * Chart.js v3.4.1\n * https://www.chartjs.org\n * (c) 2021 Chart.js Contributors\n * Released under the MIT License\n */\nimport { r as requestAnimFrame, a as resolve, e as effects, c as color, i as isObject, b as isArray, d as defaults, v as valueOrDefault, u as unlistenArrayEvents, l as listenArrayEvents, f as resolveObjectKey, g as isNumberFinite, h as defined, s as sign, j as isNullOrUndef, _ as _arrayUnique, t as toRadians, k as toPercentage, m as toDimension, T as TAU, n as formatNumber, o as _angleBetween, H as HALF_PI, P as PI, p as isNumber, q as _limitValue, w as _lookupByKey, x as getRelativePosition$1, y as _isPointInArea, z as _rlookupByKey, A as toPadding, B as each, C as getMaximumSize, D as _getParentNode, E as readUsedSize, F as throttled, G as supportsEventListenerOptions, I as log10, J as _factorize, K as finiteOrDefault, L as callback, M as _addGrace, N as toDegrees, O as _measureText, Q as _int16Range, R as _alignPixel, S as clipArea, U as renderText, V as unclipArea, W as toFont, X as _toLeftRightCenter, Y as _alignStartEnd, Z as overrides, $ as merge, a0 as _capitalize, a1 as descriptors, a2 as isFunction, a3 as _attachContext, a4 as _createResolver, a5 as _descriptors, a6 as mergeIf, a7 as uid, a8 as debounce, a9 as retinaScale, aa as clearCanvas, ab as setsEqual, ac as _elementsEqual, ad as getAngleFromPoint, ae as _readValueToProps, af as _updateBezierControlPoints, ag as _computeSegments, ah as _boundSegments, ai as _steppedInterpolation, aj as _bezierInterpolation, ak as _pointInLine, al as _steppedLineTo, am as _bezierCurveTo, an as drawPoint, ao as addRoundedRectPath, ap as toTRBL, aq as toTRBLCorners, ar as _boundSegment, as as _normalizeAngle, at as getRtlAdapter, au as overrideTextDirection, av as _textX, aw as restoreTextDirection, ax as noop, ay as distanceBetweenPoints, az as _setMinAndMaxByKey, aA as niceNum, aB as almostWhole, aC as almostEquals, aD as _decimalPlaces, aE as _longestText, aF as _filterBetween, aG as _lookup } from './chunks/helpers.segment.js';\nexport { d as defaults } from './chunks/helpers.segment.js';\n\nclass Animator {\n constructor() {\n this._request = null;\n this._charts = new Map();\n this._running = false;\n this._lastDate = undefined;\n }\n _notify(chart, anims, date, type) {\n const callbacks = anims.listeners[type];\n const numSteps = anims.duration;\n callbacks.forEach(fn => fn({\n chart,\n initial: anims.initial,\n numSteps,\n currentStep: Math.min(date - anims.start, numSteps)\n }));\n }\n _refresh() {\n const me = this;\n if (me._request) {\n return;\n }\n me._running = true;\n me._request = requestAnimFrame.call(window, () => {\n me._update();\n me._request = null;\n if (me._running) {\n me._refresh();\n }\n });\n }\n _update(date = Date.now()) {\n const me = this;\n let remaining = 0;\n me._charts.forEach((anims, chart) => {\n if (!anims.running || !anims.items.length) {\n return;\n }\n const items = anims.items;\n let i = items.length - 1;\n let draw = false;\n let item;\n for (; i >= 0; --i) {\n item = items[i];\n if (item._active) {\n if (item._total > anims.duration) {\n anims.duration = item._total;\n }\n item.tick(date);\n draw = true;\n } else {\n items[i] = items[items.length - 1];\n items.pop();\n }\n }\n if (draw) {\n chart.draw();\n me._notify(chart, anims, date, 'progress');\n }\n if (!items.length) {\n anims.running = false;\n me._notify(chart, anims, date, 'complete');\n anims.initial = false;\n }\n remaining += items.length;\n });\n me._lastDate = date;\n if (remaining === 0) {\n me._running = false;\n }\n }\n _getAnims(chart) {\n const charts = this._charts;\n let anims = charts.get(chart);\n if (!anims) {\n anims = {\n running: false,\n initial: true,\n items: [],\n listeners: {\n complete: [],\n progress: []\n }\n };\n charts.set(chart, anims);\n }\n return anims;\n }\n listen(chart, event, cb) {\n this._getAnims(chart).listeners[event].push(cb);\n }\n add(chart, items) {\n if (!items || !items.length) {\n return;\n }\n this._getAnims(chart).items.push(...items);\n }\n has(chart) {\n return this._getAnims(chart).items.length > 0;\n }\n start(chart) {\n const anims = this._charts.get(chart);\n if (!anims) {\n return;\n }\n anims.running = true;\n anims.start = Date.now();\n anims.duration = anims.items.reduce((acc, cur) => Math.max(acc, cur._duration), 0);\n this._refresh();\n }\n running(chart) {\n if (!this._running) {\n return false;\n }\n const anims = this._charts.get(chart);\n if (!anims || !anims.running || !anims.items.length) {\n return false;\n }\n return true;\n }\n stop(chart) {\n const anims = this._charts.get(chart);\n if (!anims || !anims.items.length) {\n return;\n }\n const items = anims.items;\n let i = items.length - 1;\n for (; i >= 0; --i) {\n items[i].cancel();\n }\n anims.items = [];\n this._notify(chart, anims, Date.now(), 'complete');\n }\n remove(chart) {\n return this._charts.delete(chart);\n }\n}\nvar animator = new Animator();\n\nconst transparent = 'transparent';\nconst interpolators = {\n boolean(from, to, factor) {\n return factor > 0.5 ? to : from;\n },\n color(from, to, factor) {\n const c0 = color(from || transparent);\n const c1 = c0.valid && color(to || transparent);\n return c1 && c1.valid\n ? c1.mix(c0, factor).hexString()\n : to;\n },\n number(from, to, factor) {\n return from + (to - from) * factor;\n }\n};\nclass Animation {\n constructor(cfg, target, prop, to) {\n const currentValue = target[prop];\n to = resolve([cfg.to, to, currentValue, cfg.from]);\n const from = resolve([cfg.from, currentValue, to]);\n this._active = true;\n this._fn = cfg.fn || interpolators[cfg.type || typeof from];\n this._easing = effects[cfg.easing] || effects.linear;\n this._start = Math.floor(Date.now() + (cfg.delay || 0));\n this._duration = this._total = Math.floor(cfg.duration);\n this._loop = !!cfg.loop;\n this._target = target;\n this._prop = prop;\n this._from = from;\n this._to = to;\n this._promises = undefined;\n }\n active() {\n return this._active;\n }\n update(cfg, to, date) {\n const me = this;\n if (me._active) {\n me._notify(false);\n const currentValue = me._target[me._prop];\n const elapsed = date - me._start;\n const remain = me._duration - elapsed;\n me._start = date;\n me._duration = Math.floor(Math.max(remain, cfg.duration));\n me._total += elapsed;\n me._loop = !!cfg.loop;\n me._to = resolve([cfg.to, to, currentValue, cfg.from]);\n me._from = resolve([cfg.from, currentValue, to]);\n }\n }\n cancel() {\n const me = this;\n if (me._active) {\n me.tick(Date.now());\n me._active = false;\n me._notify(false);\n }\n }\n tick(date) {\n const me = this;\n const elapsed = date - me._start;\n const duration = me._duration;\n const prop = me._prop;\n const from = me._from;\n const loop = me._loop;\n const to = me._to;\n let factor;\n me._active = from !== to && (loop || (elapsed < duration));\n if (!me._active) {\n me._target[prop] = to;\n me._notify(true);\n return;\n }\n if (elapsed < 0) {\n me._target[prop] = from;\n return;\n }\n factor = (elapsed / duration) % 2;\n factor = loop && factor > 1 ? 2 - factor : factor;\n factor = me._easing(Math.min(1, Math.max(0, factor)));\n me._target[prop] = me._fn(from, to, factor);\n }\n wait() {\n const promises = this._promises || (this._promises = []);\n return new Promise((res, rej) => {\n promises.push({res, rej});\n });\n }\n _notify(resolved) {\n const method = resolved ? 'res' : 'rej';\n const promises = this._promises || [];\n for (let i = 0; i < promises.length; i++) {\n promises[i][method]();\n }\n }\n}\n\nconst numbers = ['x', 'y', 'borderWidth', 'radius', 'tension'];\nconst colors = ['color', 'borderColor', 'backgroundColor'];\ndefaults.set('animation', {\n delay: undefined,\n duration: 1000,\n easing: 'easeOutQuart',\n fn: undefined,\n from: undefined,\n loop: undefined,\n to: undefined,\n type: undefined,\n});\nconst animationOptions = Object.keys(defaults.animation);\ndefaults.describe('animation', {\n _fallback: false,\n _indexable: false,\n _scriptable: (name) => name !== 'onProgress' && name !== 'onComplete' && name !== 'fn',\n});\ndefaults.set('animations', {\n colors: {\n type: 'color',\n properties: colors\n },\n numbers: {\n type: 'number',\n properties: numbers\n },\n});\ndefaults.describe('animations', {\n _fallback: 'animation',\n});\ndefaults.set('transitions', {\n active: {\n animation: {\n duration: 400\n }\n },\n resize: {\n animation: {\n duration: 0\n }\n },\n show: {\n animations: {\n colors: {\n from: 'transparent'\n },\n visible: {\n type: 'boolean',\n duration: 0\n },\n }\n },\n hide: {\n animations: {\n colors: {\n to: 'transparent'\n },\n visible: {\n type: 'boolean',\n easing: 'linear',\n fn: v => v | 0\n },\n }\n }\n});\nclass Animations {\n constructor(chart, config) {\n this._chart = chart;\n this._properties = new Map();\n this.configure(config);\n }\n configure(config) {\n if (!isObject(config)) {\n return;\n }\n const animatedProps = this._properties;\n Object.getOwnPropertyNames(config).forEach(key => {\n const cfg = config[key];\n if (!isObject(cfg)) {\n return;\n }\n const resolved = {};\n for (const option of animationOptions) {\n resolved[option] = cfg[option];\n }\n (isArray(cfg.properties) && cfg.properties || [key]).forEach((prop) => {\n if (prop === key || !animatedProps.has(prop)) {\n animatedProps.set(prop, resolved);\n }\n });\n });\n }\n _animateOptions(target, values) {\n const newOptions = values.options;\n const options = resolveTargetOptions(target, newOptions);\n if (!options) {\n return [];\n }\n const animations = this._createAnimations(options, newOptions);\n if (newOptions.$shared) {\n awaitAll(target.options.$animations, newOptions).then(() => {\n target.options = newOptions;\n }, () => {\n });\n }\n return animations;\n }\n _createAnimations(target, values) {\n const animatedProps = this._properties;\n const animations = [];\n const running = target.$animations || (target.$animations = {});\n const props = Object.keys(values);\n const date = Date.now();\n let i;\n for (i = props.length - 1; i >= 0; --i) {\n const prop = props[i];\n if (prop.charAt(0) === '$') {\n continue;\n }\n if (prop === 'options') {\n animations.push(...this._animateOptions(target, values));\n continue;\n }\n const value = values[prop];\n let animation = running[prop];\n const cfg = animatedProps.get(prop);\n if (animation) {\n if (cfg && animation.active()) {\n animation.update(cfg, value, date);\n continue;\n } else {\n animation.cancel();\n }\n }\n if (!cfg || !cfg.duration) {\n target[prop] = value;\n continue;\n }\n running[prop] = animation = new Animation(cfg, target, prop, value);\n animations.push(animation);\n }\n return animations;\n }\n update(target, values) {\n if (this._properties.size === 0) {\n Object.assign(target, values);\n return;\n }\n const animations = this._createAnimations(target, values);\n if (animations.length) {\n animator.add(this._chart, animations);\n return true;\n }\n }\n}\nfunction awaitAll(animations, properties) {\n const running = [];\n const keys = Object.keys(properties);\n for (let i = 0; i < keys.length; i++) {\n const anim = animations[keys[i]];\n if (anim && anim.active()) {\n running.push(anim.wait());\n }\n }\n return Promise.all(running);\n}\nfunction resolveTargetOptions(target, newOptions) {\n if (!newOptions) {\n return;\n }\n let options = target.options;\n if (!options) {\n target.options = newOptions;\n return;\n }\n if (options.$shared) {\n target.options = options = Object.assign({}, options, {$shared: false, $animations: {}});\n }\n return options;\n}\n\nfunction scaleClip(scale, allowedOverflow) {\n const opts = scale && scale.options || {};\n const reverse = opts.reverse;\n const min = opts.min === undefined ? allowedOverflow : 0;\n const max = opts.max === undefined ? allowedOverflow : 0;\n return {\n start: reverse ? max : min,\n end: reverse ? min : max\n };\n}\nfunction defaultClip(xScale, yScale, allowedOverflow) {\n if (allowedOverflow === false) {\n return false;\n }\n const x = scaleClip(xScale, allowedOverflow);\n const y = scaleClip(yScale, allowedOverflow);\n return {\n top: y.end,\n right: x.end,\n bottom: y.start,\n left: x.start\n };\n}\nfunction toClip(value) {\n let t, r, b, l;\n if (isObject(value)) {\n t = value.top;\n r = value.right;\n b = value.bottom;\n l = value.left;\n } else {\n t = r = b = l = value;\n }\n return {\n top: t,\n right: r,\n bottom: b,\n left: l,\n disabled: value === false\n };\n}\nfunction getSortedDatasetIndices(chart, filterVisible) {\n const keys = [];\n const metasets = chart._getSortedDatasetMetas(filterVisible);\n let i, ilen;\n for (i = 0, ilen = metasets.length; i < ilen; ++i) {\n keys.push(metasets[i].index);\n }\n return keys;\n}\nfunction applyStack(stack, value, dsIndex, options) {\n const keys = stack.keys;\n const singleMode = options.mode === 'single';\n let i, ilen, datasetIndex, otherValue;\n if (value === null) {\n return;\n }\n for (i = 0, ilen = keys.length; i < ilen; ++i) {\n datasetIndex = +keys[i];\n if (datasetIndex === dsIndex) {\n if (options.all) {\n continue;\n }\n break;\n }\n otherValue = stack.values[datasetIndex];\n if (isNumberFinite(otherValue) && (singleMode || (value === 0 || sign(value) === sign(otherValue)))) {\n value += otherValue;\n }\n }\n return value;\n}\nfunction convertObjectDataToArray(data) {\n const keys = Object.keys(data);\n const adata = new Array(keys.length);\n let i, ilen, key;\n for (i = 0, ilen = keys.length; i < ilen; ++i) {\n key = keys[i];\n adata[i] = {\n x: key,\n y: data[key]\n };\n }\n return adata;\n}\nfunction isStacked(scale, meta) {\n const stacked = scale && scale.options.stacked;\n return stacked || (stacked === undefined && meta.stack !== undefined);\n}\nfunction getStackKey(indexScale, valueScale, meta) {\n return `${indexScale.id}.${valueScale.id}.${meta.stack || meta.type}`;\n}\nfunction getUserBounds(scale) {\n const {min, max, minDefined, maxDefined} = scale.getUserBounds();\n return {\n min: minDefined ? min : Number.NEGATIVE_INFINITY,\n max: maxDefined ? max : Number.POSITIVE_INFINITY\n };\n}\nfunction getOrCreateStack(stacks, stackKey, indexValue) {\n const subStack = stacks[stackKey] || (stacks[stackKey] = {});\n return subStack[indexValue] || (subStack[indexValue] = {});\n}\nfunction getLastIndexInStack(stack, vScale, positive) {\n for (const meta of vScale.getMatchingVisibleMetas('bar').reverse()) {\n const value = stack[meta.index];\n if ((positive && value > 0) || (!positive && value < 0)) {\n return meta.index;\n }\n }\n return null;\n}\nfunction updateStacks(controller, parsed) {\n const {chart, _cachedMeta: meta} = controller;\n const stacks = chart._stacks || (chart._stacks = {});\n const {iScale, vScale, index: datasetIndex} = meta;\n const iAxis = iScale.axis;\n const vAxis = vScale.axis;\n const key = getStackKey(iScale, vScale, meta);\n const ilen = parsed.length;\n let stack;\n for (let i = 0; i < ilen; ++i) {\n const item = parsed[i];\n const {[iAxis]: index, [vAxis]: value} = item;\n const itemStacks = item._stacks || (item._stacks = {});\n stack = itemStacks[vAxis] = getOrCreateStack(stacks, key, index);\n stack[datasetIndex] = value;\n stack._top = getLastIndexInStack(stack, vScale, true);\n stack._bottom = getLastIndexInStack(stack, vScale, false);\n }\n}\nfunction getFirstScaleId(chart, axis) {\n const scales = chart.scales;\n return Object.keys(scales).filter(key => scales[key].axis === axis).shift();\n}\nfunction createDatasetContext(parent, index) {\n return Object.assign(Object.create(parent),\n {\n active: false,\n dataset: undefined,\n datasetIndex: index,\n index,\n mode: 'default',\n type: 'dataset'\n }\n );\n}\nfunction createDataContext(parent, index, element) {\n return Object.assign(Object.create(parent), {\n active: false,\n dataIndex: index,\n parsed: undefined,\n raw: undefined,\n element,\n index,\n mode: 'default',\n type: 'data'\n });\n}\nfunction clearStacks(meta, items) {\n const axis = meta.vScale && meta.vScale.axis;\n if (!axis) {\n return;\n }\n items = items || meta._parsed;\n for (const parsed of items) {\n const stacks = parsed._stacks;\n if (!stacks || stacks[axis] === undefined || stacks[axis][meta.index] === undefined) {\n return;\n }\n delete stacks[axis][meta.index];\n }\n}\nconst isDirectUpdateMode = (mode) => mode === 'reset' || mode === 'none';\nconst cloneIfNotShared = (cached, shared) => shared ? cached : Object.assign({}, cached);\nclass DatasetController {\n constructor(chart, datasetIndex) {\n this.chart = chart;\n this._ctx = chart.ctx;\n this.index = datasetIndex;\n this._cachedDataOpts = {};\n this._cachedMeta = this.getMeta();\n this._type = this._cachedMeta.type;\n this.options = undefined;\n this._parsing = false;\n this._data = undefined;\n this._objectData = undefined;\n this._sharedOptions = undefined;\n this._drawStart = undefined;\n this._drawCount = undefined;\n this.enableOptionSharing = false;\n this.$context = undefined;\n this._syncList = [];\n this.initialize();\n }\n initialize() {\n const me = this;\n const meta = me._cachedMeta;\n me.configure();\n me.linkScales();\n meta._stacked = isStacked(meta.vScale, meta);\n me.addElements();\n }\n updateIndex(datasetIndex) {\n if (this.index !== datasetIndex) {\n clearStacks(this._cachedMeta);\n }\n this.index = datasetIndex;\n }\n linkScales() {\n const me = this;\n const chart = me.chart;\n const meta = me._cachedMeta;\n const dataset = me.getDataset();\n const chooseId = (axis, x, y, r) => axis === 'x' ? x : axis === 'r' ? r : y;\n const xid = meta.xAxisID = valueOrDefault(dataset.xAxisID, getFirstScaleId(chart, 'x'));\n const yid = meta.yAxisID = valueOrDefault(dataset.yAxisID, getFirstScaleId(chart, 'y'));\n const rid = meta.rAxisID = valueOrDefault(dataset.rAxisID, getFirstScaleId(chart, 'r'));\n const indexAxis = meta.indexAxis;\n const iid = meta.iAxisID = chooseId(indexAxis, xid, yid, rid);\n const vid = meta.vAxisID = chooseId(indexAxis, yid, xid, rid);\n meta.xScale = me.getScaleForId(xid);\n meta.yScale = me.getScaleForId(yid);\n meta.rScale = me.getScaleForId(rid);\n meta.iScale = me.getScaleForId(iid);\n meta.vScale = me.getScaleForId(vid);\n }\n getDataset() {\n return this.chart.data.datasets[this.index];\n }\n getMeta() {\n return this.chart.getDatasetMeta(this.index);\n }\n getScaleForId(scaleID) {\n return this.chart.scales[scaleID];\n }\n _getOtherScale(scale) {\n const meta = this._cachedMeta;\n return scale === meta.iScale\n ? meta.vScale\n : meta.iScale;\n }\n reset() {\n this._update('reset');\n }\n _destroy() {\n const meta = this._cachedMeta;\n if (this._data) {\n unlistenArrayEvents(this._data, this);\n }\n if (meta._stacked) {\n clearStacks(meta);\n }\n }\n _dataCheck() {\n const me = this;\n const dataset = me.getDataset();\n const data = dataset.data || (dataset.data = []);\n const _data = me._data;\n if (isObject(data)) {\n me._data = convertObjectDataToArray(data);\n } else if (_data !== data) {\n if (_data) {\n unlistenArrayEvents(_data, me);\n const meta = me._cachedMeta;\n clearStacks(meta);\n meta._parsed = [];\n }\n if (data && Object.isExtensible(data)) {\n listenArrayEvents(data, me);\n }\n me._syncList = [];\n me._data = data;\n }\n }\n addElements() {\n const me = this;\n const meta = me._cachedMeta;\n me._dataCheck();\n if (me.datasetElementType) {\n meta.dataset = new me.datasetElementType();\n }\n }\n buildOrUpdateElements(resetNewElements) {\n const me = this;\n const meta = me._cachedMeta;\n const dataset = me.getDataset();\n let stackChanged = false;\n me._dataCheck();\n const oldStacked = meta._stacked;\n meta._stacked = isStacked(meta.vScale, meta);\n if (meta.stack !== dataset.stack) {\n stackChanged = true;\n clearStacks(meta);\n meta.stack = dataset.stack;\n }\n me._resyncElements(resetNewElements);\n if (stackChanged || oldStacked !== meta._stacked) {\n updateStacks(me, meta._parsed);\n }\n }\n configure() {\n const me = this;\n const config = me.chart.config;\n const scopeKeys = config.datasetScopeKeys(me._type);\n const scopes = config.getOptionScopes(me.getDataset(), scopeKeys, true);\n me.options = config.createResolver(scopes, me.getContext());\n me._parsing = me.options.parsing;\n }\n parse(start, count) {\n const me = this;\n const {_cachedMeta: meta, _data: data} = me;\n const {iScale, _stacked} = meta;\n const iAxis = iScale.axis;\n let sorted = start === 0 && count === data.length ? true : meta._sorted;\n let prev = start > 0 && meta._parsed[start - 1];\n let i, cur, parsed;\n if (me._parsing === false) {\n meta._parsed = data;\n meta._sorted = true;\n parsed = data;\n } else {\n if (isArray(data[start])) {\n parsed = me.parseArrayData(meta, data, start, count);\n } else if (isObject(data[start])) {\n parsed = me.parseObjectData(meta, data, start, count);\n } else {\n parsed = me.parsePrimitiveData(meta, data, start, count);\n }\n const isNotInOrderComparedToPrev = () => cur[iAxis] === null || (prev && cur[iAxis] < prev[iAxis]);\n for (i = 0; i < count; ++i) {\n meta._parsed[i + start] = cur = parsed[i];\n if (sorted) {\n if (isNotInOrderComparedToPrev()) {\n sorted = false;\n }\n prev = cur;\n }\n }\n meta._sorted = sorted;\n }\n if (_stacked) {\n updateStacks(me, parsed);\n }\n }\n parsePrimitiveData(meta, data, start, count) {\n const {iScale, vScale} = meta;\n const iAxis = iScale.axis;\n const vAxis = vScale.axis;\n const labels = iScale.getLabels();\n const singleScale = iScale === vScale;\n const parsed = new Array(count);\n let i, ilen, index;\n for (i = 0, ilen = count; i < ilen; ++i) {\n index = i + start;\n parsed[i] = {\n [iAxis]: singleScale || iScale.parse(labels[index], index),\n [vAxis]: vScale.parse(data[index], index)\n };\n }\n return parsed;\n }\n parseArrayData(meta, data, start, count) {\n const {xScale, yScale} = meta;\n const parsed = new Array(count);\n let i, ilen, index, item;\n for (i = 0, ilen = count; i < ilen; ++i) {\n index = i + start;\n item = data[index];\n parsed[i] = {\n x: xScale.parse(item[0], index),\n y: yScale.parse(item[1], index)\n };\n }\n return parsed;\n }\n parseObjectData(meta, data, start, count) {\n const {xScale, yScale} = meta;\n const {xAxisKey = 'x', yAxisKey = 'y'} = this._parsing;\n const parsed = new Array(count);\n let i, ilen, index, item;\n for (i = 0, ilen = count; i < ilen; ++i) {\n index = i + start;\n item = data[index];\n parsed[i] = {\n x: xScale.parse(resolveObjectKey(item, xAxisKey), index),\n y: yScale.parse(resolveObjectKey(item, yAxisKey), index)\n };\n }\n return parsed;\n }\n getParsed(index) {\n return this._cachedMeta._parsed[index];\n }\n getDataElement(index) {\n return this._cachedMeta.data[index];\n }\n applyStack(scale, parsed, mode) {\n const chart = this.chart;\n const meta = this._cachedMeta;\n const value = parsed[scale.axis];\n const stack = {\n keys: getSortedDatasetIndices(chart, true),\n values: parsed._stacks[scale.axis]\n };\n return applyStack(stack, value, meta.index, {mode});\n }\n updateRangeFromParsed(range, scale, parsed, stack) {\n const parsedValue = parsed[scale.axis];\n let value = parsedValue === null ? NaN : parsedValue;\n const values = stack && parsed._stacks[scale.axis];\n if (stack && values) {\n stack.values = values;\n range.min = Math.min(range.min, value);\n range.max = Math.max(range.max, value);\n value = applyStack(stack, parsedValue, this._cachedMeta.index, {all: true});\n }\n range.min = Math.min(range.min, value);\n range.max = Math.max(range.max, value);\n }\n getMinMax(scale, canStack) {\n const me = this;\n const meta = me._cachedMeta;\n const _parsed = meta._parsed;\n const sorted = meta._sorted && scale === meta.iScale;\n const ilen = _parsed.length;\n const otherScale = me._getOtherScale(scale);\n const stack = canStack && meta._stacked && {keys: getSortedDatasetIndices(me.chart, true), values: null};\n const range = {min: Number.POSITIVE_INFINITY, max: Number.NEGATIVE_INFINITY};\n const {min: otherMin, max: otherMax} = getUserBounds(otherScale);\n let i, value, parsed, otherValue;\n function _skip() {\n parsed = _parsed[i];\n value = parsed[scale.axis];\n otherValue = parsed[otherScale.axis];\n return !isNumberFinite(value) || otherMin > otherValue || otherMax < otherValue;\n }\n for (i = 0; i < ilen; ++i) {\n if (_skip()) {\n continue;\n }\n me.updateRangeFromParsed(range, scale, parsed, stack);\n if (sorted) {\n break;\n }\n }\n if (sorted) {\n for (i = ilen - 1; i >= 0; --i) {\n if (_skip()) {\n continue;\n }\n me.updateRangeFromParsed(range, scale, parsed, stack);\n break;\n }\n }\n return range;\n }\n getAllParsedValues(scale) {\n const parsed = this._cachedMeta._parsed;\n const values = [];\n let i, ilen, value;\n for (i = 0, ilen = parsed.length; i < ilen; ++i) {\n value = parsed[i][scale.axis];\n if (isNumberFinite(value)) {\n values.push(value);\n }\n }\n return values;\n }\n getMaxOverflow() {\n return false;\n }\n getLabelAndValue(index) {\n const me = this;\n const meta = me._cachedMeta;\n const iScale = meta.iScale;\n const vScale = meta.vScale;\n const parsed = me.getParsed(index);\n return {\n label: iScale ? '' + iScale.getLabelForValue(parsed[iScale.axis]) : '',\n value: vScale ? '' + vScale.getLabelForValue(parsed[vScale.axis]) : ''\n };\n }\n _update(mode) {\n const me = this;\n const meta = me._cachedMeta;\n me.configure();\n me._cachedDataOpts = {};\n me.update(mode || 'default');\n meta._clip = toClip(valueOrDefault(me.options.clip, defaultClip(meta.xScale, meta.yScale, me.getMaxOverflow())));\n }\n update(mode) {}\n draw() {\n const me = this;\n const ctx = me._ctx;\n const chart = me.chart;\n const meta = me._cachedMeta;\n const elements = meta.data || [];\n const area = chart.chartArea;\n const active = [];\n const start = me._drawStart || 0;\n const count = me._drawCount || (elements.length - start);\n let i;\n if (meta.dataset) {\n meta.dataset.draw(ctx, area, start, count);\n }\n for (i = start; i < start + count; ++i) {\n const element = elements[i];\n if (element.active) {\n active.push(element);\n } else {\n element.draw(ctx, area);\n }\n }\n for (i = 0; i < active.length; ++i) {\n active[i].draw(ctx, area);\n }\n }\n getStyle(index, active) {\n const mode = active ? 'active' : 'default';\n return index === undefined && this._cachedMeta.dataset\n ? this.resolveDatasetElementOptions(mode)\n : this.resolveDataElementOptions(index || 0, mode);\n }\n getContext(index, active, mode) {\n const me = this;\n const dataset = me.getDataset();\n let context;\n if (index >= 0 && index < me._cachedMeta.data.length) {\n const element = me._cachedMeta.data[index];\n context = element.$context ||\n (element.$context = createDataContext(me.getContext(), index, element));\n context.parsed = me.getParsed(index);\n context.raw = dataset.data[index];\n context.index = context.dataIndex = index;\n } else {\n context = me.$context ||\n (me.$context = createDatasetContext(me.chart.getContext(), me.index));\n context.dataset = dataset;\n context.index = context.datasetIndex = me.index;\n }\n context.active = !!active;\n context.mode = mode;\n return context;\n }\n resolveDatasetElementOptions(mode) {\n return this._resolveElementOptions(this.datasetElementType.id, mode);\n }\n resolveDataElementOptions(index, mode) {\n return this._resolveElementOptions(this.dataElementType.id, mode, index);\n }\n _resolveElementOptions(elementType, mode = 'default', index) {\n const me = this;\n const active = mode === 'active';\n const cache = me._cachedDataOpts;\n const cacheKey = elementType + '-' + mode;\n const cached = cache[cacheKey];\n const sharing = me.enableOptionSharing && defined(index);\n if (cached) {\n return cloneIfNotShared(cached, sharing);\n }\n const config = me.chart.config;\n const scopeKeys = config.datasetElementScopeKeys(me._type, elementType);\n const prefixes = active ? [`${elementType}Hover`, 'hover', elementType, ''] : [elementType, ''];\n const scopes = config.getOptionScopes(me.getDataset(), scopeKeys);\n const names = Object.keys(defaults.elements[elementType]);\n const context = () => me.getContext(index, active);\n const values = config.resolveNamedOptions(scopes, names, context, prefixes);\n if (values.$shared) {\n values.$shared = sharing;\n cache[cacheKey] = Object.freeze(cloneIfNotShared(values, sharing));\n }\n return values;\n }\n _resolveAnimations(index, transition, active) {\n const me = this;\n const chart = me.chart;\n const cache = me._cachedDataOpts;\n const cacheKey = `animation-${transition}`;\n const cached = cache[cacheKey];\n if (cached) {\n return cached;\n }\n let options;\n if (chart.options.animation !== false) {\n const config = me.chart.config;\n const scopeKeys = config.datasetAnimationScopeKeys(me._type, transition);\n const scopes = config.getOptionScopes(me.getDataset(), scopeKeys);\n options = config.createResolver(scopes, me.getContext(index, active, transition));\n }\n const animations = new Animations(chart, options && options.animations);\n if (options && options._cacheable) {\n cache[cacheKey] = Object.freeze(animations);\n }\n return animations;\n }\n getSharedOptions(options) {\n if (!options.$shared) {\n return;\n }\n return this._sharedOptions || (this._sharedOptions = Object.assign({}, options));\n }\n includeOptions(mode, sharedOptions) {\n return !sharedOptions || isDirectUpdateMode(mode) || this.chart._animationsDisabled;\n }\n updateElement(element, index, properties, mode) {\n if (isDirectUpdateMode(mode)) {\n Object.assign(element, properties);\n } else {\n this._resolveAnimations(index, mode).update(element, properties);\n }\n }\n updateSharedOptions(sharedOptions, mode, newOptions) {\n if (sharedOptions && !isDirectUpdateMode(mode)) {\n this._resolveAnimations(undefined, mode).update(sharedOptions, newOptions);\n }\n }\n _setStyle(element, index, mode, active) {\n element.active = active;\n const options = this.getStyle(index, active);\n this._resolveAnimations(index, mode, active).update(element, {\n options: (!active && this.getSharedOptions(options)) || options\n });\n }\n removeHoverStyle(element, datasetIndex, index) {\n this._setStyle(element, index, 'active', false);\n }\n setHoverStyle(element, datasetIndex, index) {\n this._setStyle(element, index, 'active', true);\n }\n _removeDatasetHoverStyle() {\n const element = this._cachedMeta.dataset;\n if (element) {\n this._setStyle(element, undefined, 'active', false);\n }\n }\n _setDatasetHoverStyle() {\n const element = this._cachedMeta.dataset;\n if (element) {\n this._setStyle(element, undefined, 'active', true);\n }\n }\n _resyncElements(resetNewElements) {\n const me = this;\n const data = me._data;\n const elements = me._cachedMeta.data;\n for (const [method, arg1, arg2] of me._syncList) {\n me[method](arg1, arg2);\n }\n me._syncList = [];\n const numMeta = elements.length;\n const numData = data.length;\n const count = Math.min(numData, numMeta);\n if (count) {\n me.parse(0, count);\n }\n if (numData > numMeta) {\n me._insertElements(numMeta, numData - numMeta, resetNewElements);\n } else if (numData < numMeta) {\n me._removeElements(numData, numMeta - numData);\n }\n }\n _insertElements(start, count, resetNewElements = true) {\n const me = this;\n const meta = me._cachedMeta;\n const data = meta.data;\n const end = start + count;\n let i;\n const move = (arr) => {\n arr.length += count;\n for (i = arr.length - 1; i >= end; i--) {\n arr[i] = arr[i - count];\n }\n };\n move(data);\n for (i = start; i < end; ++i) {\n data[i] = new me.dataElementType();\n }\n if (me._parsing) {\n move(meta._parsed);\n }\n me.parse(start, count);\n if (resetNewElements) {\n me.updateElements(data, start, count, 'reset');\n }\n }\n updateElements(element, start, count, mode) {}\n _removeElements(start, count) {\n const me = this;\n const meta = me._cachedMeta;\n if (me._parsing) {\n const removed = meta._parsed.splice(start, count);\n if (meta._stacked) {\n clearStacks(meta, removed);\n }\n }\n meta.data.splice(start, count);\n }\n _onDataPush() {\n const count = arguments.length;\n this._syncList.push(['_insertElements', this.getDataset().data.length - count, count]);\n }\n _onDataPop() {\n this._syncList.push(['_removeElements', this._cachedMeta.data.length - 1, 1]);\n }\n _onDataShift() {\n this._syncList.push(['_removeElements', 0, 1]);\n }\n _onDataSplice(start, count) {\n this._syncList.push(['_removeElements', start, count]);\n this._syncList.push(['_insertElements', start, arguments.length - 2]);\n }\n _onDataUnshift() {\n this._syncList.push(['_insertElements', 0, arguments.length]);\n }\n}\nDatasetController.defaults = {};\nDatasetController.prototype.datasetElementType = null;\nDatasetController.prototype.dataElementType = null;\n\nfunction getAllScaleValues(scale) {\n if (!scale._cache.$bar) {\n const metas = scale.getMatchingVisibleMetas('bar');\n let values = [];\n for (let i = 0, ilen = metas.length; i < ilen; i++) {\n values = values.concat(metas[i].controller.getAllParsedValues(scale));\n }\n scale._cache.$bar = _arrayUnique(values.sort((a, b) => a - b));\n }\n return scale._cache.$bar;\n}\nfunction computeMinSampleSize(scale) {\n const values = getAllScaleValues(scale);\n let min = scale._length;\n let i, ilen, curr, prev;\n const updateMinAndPrev = () => {\n if (curr === 32767 || curr === -32768) {\n return;\n }\n if (defined(prev)) {\n min = Math.min(min, Math.abs(curr - prev) || min);\n }\n prev = curr;\n };\n for (i = 0, ilen = values.length; i < ilen; ++i) {\n curr = scale.getPixelForValue(values[i]);\n updateMinAndPrev();\n }\n prev = undefined;\n for (i = 0, ilen = scale.ticks.length; i < ilen; ++i) {\n curr = scale.getPixelForTick(i);\n updateMinAndPrev();\n }\n return min;\n}\nfunction computeFitCategoryTraits(index, ruler, options, stackCount) {\n const thickness = options.barThickness;\n let size, ratio;\n if (isNullOrUndef(thickness)) {\n size = ruler.min * options.categoryPercentage;\n ratio = options.barPercentage;\n } else {\n size = thickness * stackCount;\n ratio = 1;\n }\n return {\n chunk: size / stackCount,\n ratio,\n start: ruler.pixels[index] - (size / 2)\n };\n}\nfunction computeFlexCategoryTraits(index, ruler, options, stackCount) {\n const pixels = ruler.pixels;\n const curr = pixels[index];\n let prev = index > 0 ? pixels[index - 1] : null;\n let next = index < pixels.length - 1 ? pixels[index + 1] : null;\n const percent = options.categoryPercentage;\n if (prev === null) {\n prev = curr - (next === null ? ruler.end - ruler.start : next - curr);\n }\n if (next === null) {\n next = curr + curr - prev;\n }\n const start = curr - (curr - Math.min(prev, next)) / 2 * percent;\n const size = Math.abs(next - prev) / 2 * percent;\n return {\n chunk: size / stackCount,\n ratio: options.barPercentage,\n start\n };\n}\nfunction parseFloatBar(entry, item, vScale, i) {\n const startValue = vScale.parse(entry[0], i);\n const endValue = vScale.parse(entry[1], i);\n const min = Math.min(startValue, endValue);\n const max = Math.max(startValue, endValue);\n let barStart = min;\n let barEnd = max;\n if (Math.abs(min) > Math.abs(max)) {\n barStart = max;\n barEnd = min;\n }\n item[vScale.axis] = barEnd;\n item._custom = {\n barStart,\n barEnd,\n start: startValue,\n end: endValue,\n min,\n max\n };\n}\nfunction parseValue(entry, item, vScale, i) {\n if (isArray(entry)) {\n parseFloatBar(entry, item, vScale, i);\n } else {\n item[vScale.axis] = vScale.parse(entry, i);\n }\n return item;\n}\nfunction parseArrayOrPrimitive(meta, data, start, count) {\n const iScale = meta.iScale;\n const vScale = meta.vScale;\n const labels = iScale.getLabels();\n const singleScale = iScale === vScale;\n const parsed = [];\n let i, ilen, item, entry;\n for (i = start, ilen = start + count; i < ilen; ++i) {\n entry = data[i];\n item = {};\n item[iScale.axis] = singleScale || iScale.parse(labels[i], i);\n parsed.push(parseValue(entry, item, vScale, i));\n }\n return parsed;\n}\nfunction isFloatBar(custom) {\n return custom && custom.barStart !== undefined && custom.barEnd !== undefined;\n}\nclass BarController extends DatasetController {\n parsePrimitiveData(meta, data, start, count) {\n return parseArrayOrPrimitive(meta, data, start, count);\n }\n parseArrayData(meta, data, start, count) {\n return parseArrayOrPrimitive(meta, data, start, count);\n }\n parseObjectData(meta, data, start, count) {\n const {iScale, vScale} = meta;\n const {xAxisKey = 'x', yAxisKey = 'y'} = this._parsing;\n const iAxisKey = iScale.axis === 'x' ? xAxisKey : yAxisKey;\n const vAxisKey = vScale.axis === 'x' ? xAxisKey : yAxisKey;\n const parsed = [];\n let i, ilen, item, obj;\n for (i = start, ilen = start + count; i < ilen; ++i) {\n obj = data[i];\n item = {};\n item[iScale.axis] = iScale.parse(resolveObjectKey(obj, iAxisKey), i);\n parsed.push(parseValue(resolveObjectKey(obj, vAxisKey), item, vScale, i));\n }\n return parsed;\n }\n updateRangeFromParsed(range, scale, parsed, stack) {\n super.updateRangeFromParsed(range, scale, parsed, stack);\n const custom = parsed._custom;\n if (custom && scale === this._cachedMeta.vScale) {\n range.min = Math.min(range.min, custom.min);\n range.max = Math.max(range.max, custom.max);\n }\n }\n getMaxOverflow() {\n return 0;\n }\n getLabelAndValue(index) {\n const me = this;\n const meta = me._cachedMeta;\n const {iScale, vScale} = meta;\n const parsed = me.getParsed(index);\n const custom = parsed._custom;\n const value = isFloatBar(custom)\n ? '[' + custom.start + ', ' + custom.end + ']'\n : '' + vScale.getLabelForValue(parsed[vScale.axis]);\n return {\n label: '' + iScale.getLabelForValue(parsed[iScale.axis]),\n value\n };\n }\n initialize() {\n const me = this;\n me.enableOptionSharing = true;\n super.initialize();\n const meta = me._cachedMeta;\n meta.stack = me.getDataset().stack;\n }\n update(mode) {\n const me = this;\n const meta = me._cachedMeta;\n me.updateElements(meta.data, 0, meta.data.length, mode);\n }\n updateElements(bars, start, count, mode) {\n const me = this;\n const reset = mode === 'reset';\n const vScale = me._cachedMeta.vScale;\n const base = vScale.getBasePixel();\n const horizontal = vScale.isHorizontal();\n const ruler = me._getRuler();\n const firstOpts = me.resolveDataElementOptions(start, mode);\n const sharedOptions = me.getSharedOptions(firstOpts);\n const includeOptions = me.includeOptions(mode, sharedOptions);\n me.updateSharedOptions(sharedOptions, mode, firstOpts);\n for (let i = start; i < start + count; i++) {\n const parsed = me.getParsed(i);\n const vpixels = reset || isNullOrUndef(parsed[vScale.axis]) ? {base, head: base} : me._calculateBarValuePixels(i);\n const ipixels = me._calculateBarIndexPixels(i, ruler);\n const stack = (parsed._stacks || {})[vScale.axis];\n const properties = {\n horizontal,\n base: vpixels.base,\n enableBorderRadius: !stack || isFloatBar(parsed._custom) || (me.index === stack._top || me.index === stack._bottom),\n x: horizontal ? vpixels.head : ipixels.center,\n y: horizontal ? ipixels.center : vpixels.head,\n height: horizontal ? ipixels.size : Math.abs(vpixels.size),\n width: horizontal ? Math.abs(vpixels.size) : ipixels.size\n };\n if (includeOptions) {\n properties.options = sharedOptions || me.resolveDataElementOptions(i, bars[i].active ? 'active' : mode);\n }\n me.updateElement(bars[i], i, properties, mode);\n }\n }\n _getStacks(last, dataIndex) {\n const me = this;\n const meta = me._cachedMeta;\n const iScale = meta.iScale;\n const metasets = iScale.getMatchingVisibleMetas(me._type);\n const stacked = iScale.options.stacked;\n const ilen = metasets.length;\n const stacks = [];\n let i, item;\n for (i = 0; i < ilen; ++i) {\n item = metasets[i];\n if (!item.controller.options.grouped) {\n continue;\n }\n if (typeof dataIndex !== 'undefined') {\n const val = item.controller.getParsed(dataIndex)[\n item.controller._cachedMeta.vScale.axis\n ];\n if (isNullOrUndef(val) || isNaN(val)) {\n continue;\n }\n }\n if (stacked === false || stacks.indexOf(item.stack) === -1 ||\n\t\t\t\t(stacked === undefined && item.stack === undefined)) {\n stacks.push(item.stack);\n }\n if (item.index === last) {\n break;\n }\n }\n if (!stacks.length) {\n stacks.push(undefined);\n }\n return stacks;\n }\n _getStackCount(index) {\n return this._getStacks(undefined, index).length;\n }\n _getStackIndex(datasetIndex, name, dataIndex) {\n const stacks = this._getStacks(datasetIndex, dataIndex);\n const index = (name !== undefined)\n ? stacks.indexOf(name)\n : -1;\n return (index === -1)\n ? stacks.length - 1\n : index;\n }\n _getRuler() {\n const me = this;\n const opts = me.options;\n const meta = me._cachedMeta;\n const iScale = meta.iScale;\n const pixels = [];\n let i, ilen;\n for (i = 0, ilen = meta.data.length; i < ilen; ++i) {\n pixels.push(iScale.getPixelForValue(me.getParsed(i)[iScale.axis], i));\n }\n const barThickness = opts.barThickness;\n const min = barThickness || computeMinSampleSize(iScale);\n return {\n min,\n pixels,\n start: iScale._startPixel,\n end: iScale._endPixel,\n stackCount: me._getStackCount(),\n scale: iScale,\n grouped: opts.grouped,\n ratio: barThickness ? 1 : opts.categoryPercentage * opts.barPercentage\n };\n }\n _calculateBarValuePixels(index) {\n const me = this;\n const {vScale, _stacked} = me._cachedMeta;\n const {base: baseValue, minBarLength} = me.options;\n const parsed = me.getParsed(index);\n const custom = parsed._custom;\n const floating = isFloatBar(custom);\n let value = parsed[vScale.axis];\n let start = 0;\n let length = _stacked ? me.applyStack(vScale, parsed, _stacked) : value;\n let head, size;\n if (length !== value) {\n start = length - value;\n length = value;\n }\n if (floating) {\n value = custom.barStart;\n length = custom.barEnd - custom.barStart;\n if (value !== 0 && sign(value) !== sign(custom.barEnd)) {\n start = 0;\n }\n start += value;\n }\n const startValue = !isNullOrUndef(baseValue) && !floating ? baseValue : start;\n let base = vScale.getPixelForValue(startValue);\n if (this.chart.getDataVisibility(index)) {\n head = vScale.getPixelForValue(start + length);\n } else {\n head = base;\n }\n size = head - base;\n if (minBarLength !== undefined && Math.abs(size) < minBarLength) {\n size = size < 0 ? -minBarLength : minBarLength;\n if (value === 0) {\n base -= size / 2;\n }\n head = base + size;\n }\n const actualBase = baseValue || 0;\n if (base === vScale.getPixelForValue(actualBase)) {\n const halfGrid = vScale.getLineWidthForValue(actualBase) / 2;\n if (size > 0) {\n base += halfGrid;\n size -= halfGrid;\n } else if (size < 0) {\n base -= halfGrid;\n size += halfGrid;\n }\n }\n return {\n size,\n base,\n head,\n center: head + size / 2\n };\n }\n _calculateBarIndexPixels(index, ruler) {\n const me = this;\n const scale = ruler.scale;\n const options = me.options;\n const skipNull = options.skipNull;\n const maxBarThickness = valueOrDefault(options.maxBarThickness, Infinity);\n let center, size;\n if (ruler.grouped) {\n const stackCount = skipNull ? me._getStackCount(index) : ruler.stackCount;\n const range = options.barThickness === 'flex'\n ? computeFlexCategoryTraits(index, ruler, options, stackCount)\n : computeFitCategoryTraits(index, ruler, options, stackCount);\n const stackIndex = me._getStackIndex(me.index, me._cachedMeta.stack, skipNull ? index : undefined);\n center = range.start + (range.chunk * stackIndex) + (range.chunk / 2);\n size = Math.min(maxBarThickness, range.chunk * range.ratio);\n } else {\n center = scale.getPixelForValue(me.getParsed(index)[scale.axis], index);\n size = Math.min(maxBarThickness, ruler.min * ruler.ratio);\n }\n return {\n base: center - size / 2,\n head: center + size / 2,\n center,\n size\n };\n }\n draw() {\n const me = this;\n const meta = me._cachedMeta;\n const vScale = meta.vScale;\n const rects = meta.data;\n const ilen = rects.length;\n let i = 0;\n for (; i < ilen; ++i) {\n if (me.getParsed(i)[vScale.axis] !== null) {\n rects[i].draw(me._ctx);\n }\n }\n }\n}\nBarController.id = 'bar';\nBarController.defaults = {\n datasetElementType: false,\n dataElementType: 'bar',\n categoryPercentage: 0.8,\n barPercentage: 0.9,\n grouped: true,\n animations: {\n numbers: {\n type: 'number',\n properties: ['x', 'y', 'base', 'width', 'height']\n }\n }\n};\nBarController.overrides = {\n interaction: {\n mode: 'index'\n },\n scales: {\n _index_: {\n type: 'category',\n offset: true,\n grid: {\n offset: true\n }\n },\n _value_: {\n type: 'linear',\n beginAtZero: true,\n }\n }\n};\n\nclass BubbleController extends DatasetController {\n initialize() {\n this.enableOptionSharing = true;\n super.initialize();\n }\n parseObjectData(meta, data, start, count) {\n const {xScale, yScale} = meta;\n const {xAxisKey = 'x', yAxisKey = 'y'} = this._parsing;\n const parsed = [];\n let i, ilen, item;\n for (i = start, ilen = start + count; i < ilen; ++i) {\n item = data[i];\n parsed.push({\n x: xScale.parse(resolveObjectKey(item, xAxisKey), i),\n y: yScale.parse(resolveObjectKey(item, yAxisKey), i),\n _custom: item && item.r && +item.r\n });\n }\n return parsed;\n }\n getMaxOverflow() {\n const {data, _parsed} = this._cachedMeta;\n let max = 0;\n for (let i = data.length - 1; i >= 0; --i) {\n max = Math.max(max, data[i].size() / 2, _parsed[i]._custom);\n }\n return max > 0 && max;\n }\n getLabelAndValue(index) {\n const me = this;\n const meta = me._cachedMeta;\n const {xScale, yScale} = meta;\n const parsed = me.getParsed(index);\n const x = xScale.getLabelForValue(parsed.x);\n const y = yScale.getLabelForValue(parsed.y);\n const r = parsed._custom;\n return {\n label: meta.label,\n value: '(' + x + ', ' + y + (r ? ', ' + r : '') + ')'\n };\n }\n update(mode) {\n const me = this;\n const points = me._cachedMeta.data;\n me.updateElements(points, 0, points.length, mode);\n }\n updateElements(points, start, count, mode) {\n const me = this;\n const reset = mode === 'reset';\n const {iScale, vScale} = me._cachedMeta;\n const firstOpts = me.resolveDataElementOptions(start, mode);\n const sharedOptions = me.getSharedOptions(firstOpts);\n const includeOptions = me.includeOptions(mode, sharedOptions);\n const iAxis = iScale.axis;\n const vAxis = vScale.axis;\n for (let i = start; i < start + count; i++) {\n const point = points[i];\n const parsed = !reset && me.getParsed(i);\n const properties = {};\n const iPixel = properties[iAxis] = reset ? iScale.getPixelForDecimal(0.5) : iScale.getPixelForValue(parsed[iAxis]);\n const vPixel = properties[vAxis] = reset ? vScale.getBasePixel() : vScale.getPixelForValue(parsed[vAxis]);\n properties.skip = isNaN(iPixel) || isNaN(vPixel);\n if (includeOptions) {\n properties.options = me.resolveDataElementOptions(i, point.active ? 'active' : mode);\n if (reset) {\n properties.options.radius = 0;\n }\n }\n me.updateElement(point, i, properties, mode);\n }\n me.updateSharedOptions(sharedOptions, mode, firstOpts);\n }\n resolveDataElementOptions(index, mode) {\n const parsed = this.getParsed(index);\n let values = super.resolveDataElementOptions(index, mode);\n if (values.$shared) {\n values = Object.assign({}, values, {$shared: false});\n }\n const radius = values.radius;\n if (mode !== 'active') {\n values.radius = 0;\n }\n values.radius += valueOrDefault(parsed && parsed._custom, radius);\n return values;\n }\n}\nBubbleController.id = 'bubble';\nBubbleController.defaults = {\n datasetElementType: false,\n dataElementType: 'point',\n animations: {\n numbers: {\n type: 'number',\n properties: ['x', 'y', 'borderWidth', 'radius']\n }\n }\n};\nBubbleController.overrides = {\n scales: {\n x: {\n type: 'linear'\n },\n y: {\n type: 'linear'\n }\n },\n plugins: {\n tooltip: {\n callbacks: {\n title() {\n return '';\n }\n }\n }\n }\n};\n\nfunction getRatioAndOffset(rotation, circumference, cutout) {\n let ratioX = 1;\n let ratioY = 1;\n let offsetX = 0;\n let offsetY = 0;\n if (circumference < TAU) {\n const startAngle = rotation;\n const endAngle = startAngle + circumference;\n const startX = Math.cos(startAngle);\n const startY = Math.sin(startAngle);\n const endX = Math.cos(endAngle);\n const endY = Math.sin(endAngle);\n const calcMax = (angle, a, b) => _angleBetween(angle, startAngle, endAngle, true) ? 1 : Math.max(a, a * cutout, b, b * cutout);\n const calcMin = (angle, a, b) => _angleBetween(angle, startAngle, endAngle, true) ? -1 : Math.min(a, a * cutout, b, b * cutout);\n const maxX = calcMax(0, startX, endX);\n const maxY = calcMax(HALF_PI, startY, endY);\n const minX = calcMin(PI, startX, endX);\n const minY = calcMin(PI + HALF_PI, startY, endY);\n ratioX = (maxX - minX) / 2;\n ratioY = (maxY - minY) / 2;\n offsetX = -(maxX + minX) / 2;\n offsetY = -(maxY + minY) / 2;\n }\n return {ratioX, ratioY, offsetX, offsetY};\n}\nclass DoughnutController extends DatasetController {\n constructor(chart, datasetIndex) {\n super(chart, datasetIndex);\n this.enableOptionSharing = true;\n this.innerRadius = undefined;\n this.outerRadius = undefined;\n this.offsetX = undefined;\n this.offsetY = undefined;\n }\n linkScales() {}\n parse(start, count) {\n const data = this.getDataset().data;\n const meta = this._cachedMeta;\n let i, ilen;\n for (i = start, ilen = start + count; i < ilen; ++i) {\n meta._parsed[i] = +data[i];\n }\n }\n _getRotation() {\n return toRadians(this.options.rotation - 90);\n }\n _getCircumference() {\n return toRadians(this.options.circumference);\n }\n _getRotationExtents() {\n let min = TAU;\n let max = -TAU;\n const me = this;\n for (let i = 0; i < me.chart.data.datasets.length; ++i) {\n if (me.chart.isDatasetVisible(i)) {\n const controller = me.chart.getDatasetMeta(i).controller;\n const rotation = controller._getRotation();\n const circumference = controller._getCircumference();\n min = Math.min(min, rotation);\n max = Math.max(max, rotation + circumference);\n }\n }\n return {\n rotation: min,\n circumference: max - min,\n };\n }\n update(mode) {\n const me = this;\n const chart = me.chart;\n const {chartArea} = chart;\n const meta = me._cachedMeta;\n const arcs = meta.data;\n const spacing = me.getMaxBorderWidth() + me.getMaxOffset(arcs) + me.options.spacing;\n const maxSize = Math.max((Math.min(chartArea.width, chartArea.height) - spacing) / 2, 0);\n const cutout = Math.min(toPercentage(me.options.cutout, maxSize), 1);\n const chartWeight = me._getRingWeight(me.index);\n const {circumference, rotation} = me._getRotationExtents();\n const {ratioX, ratioY, offsetX, offsetY} = getRatioAndOffset(rotation, circumference, cutout);\n const maxWidth = (chartArea.width - spacing) / ratioX;\n const maxHeight = (chartArea.height - spacing) / ratioY;\n const maxRadius = Math.max(Math.min(maxWidth, maxHeight) / 2, 0);\n const outerRadius = toDimension(me.options.radius, maxRadius);\n const innerRadius = Math.max(outerRadius * cutout, 0);\n const radiusLength = (outerRadius - innerRadius) / me._getVisibleDatasetWeightTotal();\n me.offsetX = offsetX * outerRadius;\n me.offsetY = offsetY * outerRadius;\n meta.total = me.calculateTotal();\n me.outerRadius = outerRadius - radiusLength * me._getRingWeightOffset(me.index);\n me.innerRadius = Math.max(me.outerRadius - radiusLength * chartWeight, 0);\n me.updateElements(arcs, 0, arcs.length, mode);\n }\n _circumference(i, reset) {\n const me = this;\n const opts = me.options;\n const meta = me._cachedMeta;\n const circumference = me._getCircumference();\n if ((reset && opts.animation.animateRotate) || !this.chart.getDataVisibility(i) || meta._parsed[i] === null) {\n return 0;\n }\n return me.calculateCircumference(meta._parsed[i] * circumference / TAU);\n }\n updateElements(arcs, start, count, mode) {\n const me = this;\n const reset = mode === 'reset';\n const chart = me.chart;\n const chartArea = chart.chartArea;\n const opts = chart.options;\n const animationOpts = opts.animation;\n const centerX = (chartArea.left + chartArea.right) / 2;\n const centerY = (chartArea.top + chartArea.bottom) / 2;\n const animateScale = reset && animationOpts.animateScale;\n const innerRadius = animateScale ? 0 : me.innerRadius;\n const outerRadius = animateScale ? 0 : me.outerRadius;\n const firstOpts = me.resolveDataElementOptions(start, mode);\n const sharedOptions = me.getSharedOptions(firstOpts);\n const includeOptions = me.includeOptions(mode, sharedOptions);\n let startAngle = me._getRotation();\n let i;\n for (i = 0; i < start; ++i) {\n startAngle += me._circumference(i, reset);\n }\n for (i = start; i < start + count; ++i) {\n const circumference = me._circumference(i, reset);\n const arc = arcs[i];\n const properties = {\n x: centerX + me.offsetX,\n y: centerY + me.offsetY,\n startAngle,\n endAngle: startAngle + circumference,\n circumference,\n outerRadius,\n innerRadius\n };\n if (includeOptions) {\n properties.options = sharedOptions || me.resolveDataElementOptions(i, arc.active ? 'active' : mode);\n }\n startAngle += circumference;\n me.updateElement(arc, i, properties, mode);\n }\n me.updateSharedOptions(sharedOptions, mode, firstOpts);\n }\n calculateTotal() {\n const meta = this._cachedMeta;\n const metaData = meta.data;\n let total = 0;\n let i;\n for (i = 0; i < metaData.length; i++) {\n const value = meta._parsed[i];\n if (value !== null && !isNaN(value) && this.chart.getDataVisibility(i)) {\n total += Math.abs(value);\n }\n }\n return total;\n }\n calculateCircumference(value) {\n const total = this._cachedMeta.total;\n if (total > 0 && !isNaN(value)) {\n return TAU * (Math.abs(value) / total);\n }\n return 0;\n }\n getLabelAndValue(index) {\n const me = this;\n const meta = me._cachedMeta;\n const chart = me.chart;\n const labels = chart.data.labels || [];\n const value = formatNumber(meta._parsed[index], chart.options.locale);\n return {\n label: labels[index] || '',\n value,\n };\n }\n getMaxBorderWidth(arcs) {\n const me = this;\n let max = 0;\n const chart = me.chart;\n let i, ilen, meta, controller, options;\n if (!arcs) {\n for (i = 0, ilen = chart.data.datasets.length; i < ilen; ++i) {\n if (chart.isDatasetVisible(i)) {\n meta = chart.getDatasetMeta(i);\n arcs = meta.data;\n controller = meta.controller;\n if (controller !== me) {\n controller.configure();\n }\n break;\n }\n }\n }\n if (!arcs) {\n return 0;\n }\n for (i = 0, ilen = arcs.length; i < ilen; ++i) {\n options = controller.resolveDataElementOptions(i);\n if (options.borderAlign !== 'inner') {\n max = Math.max(max, options.borderWidth || 0, options.hoverBorderWidth || 0);\n }\n }\n return max;\n }\n getMaxOffset(arcs) {\n let max = 0;\n for (let i = 0, ilen = arcs.length; i < ilen; ++i) {\n const options = this.resolveDataElementOptions(i);\n max = Math.max(max, options.offset || 0, options.hoverOffset || 0);\n }\n return max;\n }\n _getRingWeightOffset(datasetIndex) {\n let ringWeightOffset = 0;\n for (let i = 0; i < datasetIndex; ++i) {\n if (this.chart.isDatasetVisible(i)) {\n ringWeightOffset += this._getRingWeight(i);\n }\n }\n return ringWeightOffset;\n }\n _getRingWeight(datasetIndex) {\n return Math.max(valueOrDefault(this.chart.data.datasets[datasetIndex].weight, 1), 0);\n }\n _getVisibleDatasetWeightTotal() {\n return this._getRingWeightOffset(this.chart.data.datasets.length) || 1;\n }\n}\nDoughnutController.id = 'doughnut';\nDoughnutController.defaults = {\n datasetElementType: false,\n dataElementType: 'arc',\n animation: {\n animateRotate: true,\n animateScale: false\n },\n animations: {\n numbers: {\n type: 'number',\n properties: ['circumference', 'endAngle', 'innerRadius', 'outerRadius', 'startAngle', 'x', 'y', 'offset', 'borderWidth', 'spacing']\n },\n },\n cutout: '50%',\n rotation: 0,\n circumference: 360,\n radius: '100%',\n spacing: 0,\n indexAxis: 'r',\n};\nDoughnutController.descriptors = {\n _scriptable: (name) => name !== 'spacing',\n _indexable: (name) => name !== 'spacing',\n};\nDoughnutController.overrides = {\n aspectRatio: 1,\n plugins: {\n legend: {\n labels: {\n generateLabels(chart) {\n const data = chart.data;\n if (data.labels.length && data.datasets.length) {\n const {labels: {pointStyle}} = chart.legend.options;\n return data.labels.map((label, i) => {\n const meta = chart.getDatasetMeta(0);\n const style = meta.controller.getStyle(i);\n return {\n text: label,\n fillStyle: style.backgroundColor,\n strokeStyle: style.borderColor,\n lineWidth: style.borderWidth,\n pointStyle: pointStyle,\n hidden: !chart.getDataVisibility(i),\n index: i\n };\n });\n }\n return [];\n }\n },\n onClick(e, legendItem, legend) {\n legend.chart.toggleDataVisibility(legendItem.index);\n legend.chart.update();\n }\n },\n tooltip: {\n callbacks: {\n title() {\n return '';\n },\n label(tooltipItem) {\n let dataLabel = tooltipItem.label;\n const value = ': ' + tooltipItem.formattedValue;\n if (isArray(dataLabel)) {\n dataLabel = dataLabel.slice();\n dataLabel[0] += value;\n } else {\n dataLabel += value;\n }\n return dataLabel;\n }\n }\n }\n }\n};\n\nclass LineController extends DatasetController {\n initialize() {\n this.enableOptionSharing = true;\n super.initialize();\n }\n update(mode) {\n const me = this;\n const meta = me._cachedMeta;\n const {dataset: line, data: points = [], _dataset} = meta;\n const animationsDisabled = me.chart._animationsDisabled;\n let {start, count} = getStartAndCountOfVisiblePoints(meta, points, animationsDisabled);\n me._drawStart = start;\n me._drawCount = count;\n if (scaleRangesChanged(meta)) {\n start = 0;\n count = points.length;\n }\n line._decimated = !!_dataset._decimated;\n line.points = points;\n const options = me.resolveDatasetElementOptions(mode);\n if (!me.options.showLine) {\n options.borderWidth = 0;\n }\n options.segment = me.options.segment;\n me.updateElement(line, undefined, {\n animated: !animationsDisabled,\n options\n }, mode);\n me.updateElements(points, start, count, mode);\n }\n updateElements(points, start, count, mode) {\n const me = this;\n const reset = mode === 'reset';\n const {iScale, vScale, _stacked} = me._cachedMeta;\n const firstOpts = me.resolveDataElementOptions(start, mode);\n const sharedOptions = me.getSharedOptions(firstOpts);\n const includeOptions = me.includeOptions(mode, sharedOptions);\n const iAxis = iScale.axis;\n const vAxis = vScale.axis;\n const spanGaps = me.options.spanGaps;\n const maxGapLength = isNumber(spanGaps) ? spanGaps : Number.POSITIVE_INFINITY;\n const directUpdate = me.chart._animationsDisabled || reset || mode === 'none';\n let prevParsed = start > 0 && me.getParsed(start - 1);\n for (let i = start; i < start + count; ++i) {\n const point = points[i];\n const parsed = me.getParsed(i);\n const properties = directUpdate ? point : {};\n const nullData = isNullOrUndef(parsed[vAxis]);\n const iPixel = properties[iAxis] = iScale.getPixelForValue(parsed[iAxis], i);\n const vPixel = properties[vAxis] = reset || nullData ? vScale.getBasePixel() : vScale.getPixelForValue(_stacked ? me.applyStack(vScale, parsed, _stacked) : parsed[vAxis], i);\n properties.skip = isNaN(iPixel) || isNaN(vPixel) || nullData;\n properties.stop = i > 0 && (parsed[iAxis] - prevParsed[iAxis]) > maxGapLength;\n properties.parsed = parsed;\n if (includeOptions) {\n properties.options = sharedOptions || me.resolveDataElementOptions(i, point.active ? 'active' : mode);\n }\n if (!directUpdate) {\n me.updateElement(point, i, properties, mode);\n }\n prevParsed = parsed;\n }\n me.updateSharedOptions(sharedOptions, mode, firstOpts);\n }\n getMaxOverflow() {\n const me = this;\n const meta = me._cachedMeta;\n const dataset = meta.dataset;\n const border = dataset.options && dataset.options.borderWidth || 0;\n const data = meta.data || [];\n if (!data.length) {\n return border;\n }\n const firstPoint = data[0].size(me.resolveDataElementOptions(0));\n const lastPoint = data[data.length - 1].size(me.resolveDataElementOptions(data.length - 1));\n return Math.max(border, firstPoint, lastPoint) / 2;\n }\n draw() {\n const meta = this._cachedMeta;\n meta.dataset.updateControlPoints(this.chart.chartArea, meta.iScale.axis);\n super.draw();\n }\n}\nLineController.id = 'line';\nLineController.defaults = {\n datasetElementType: 'line',\n dataElementType: 'point',\n showLine: true,\n spanGaps: false,\n};\nLineController.overrides = {\n scales: {\n _index_: {\n type: 'category',\n },\n _value_: {\n type: 'linear',\n },\n }\n};\nfunction getStartAndCountOfVisiblePoints(meta, points, animationsDisabled) {\n const pointCount = points.length;\n let start = 0;\n let count = pointCount;\n if (meta._sorted) {\n const {iScale, _parsed} = meta;\n const axis = iScale.axis;\n const {min, max, minDefined, maxDefined} = iScale.getUserBounds();\n if (minDefined) {\n start = _limitValue(Math.min(\n _lookupByKey(_parsed, iScale.axis, min).lo,\n animationsDisabled ? pointCount : _lookupByKey(points, axis, iScale.getPixelForValue(min)).lo),\n 0, pointCount - 1);\n }\n if (maxDefined) {\n count = _limitValue(Math.max(\n _lookupByKey(_parsed, iScale.axis, max).hi + 1,\n animationsDisabled ? 0 : _lookupByKey(points, axis, iScale.getPixelForValue(max)).hi + 1),\n start, pointCount) - start;\n } else {\n count = pointCount - start;\n }\n }\n return {start, count};\n}\nfunction scaleRangesChanged(meta) {\n const {xScale, yScale, _scaleRanges} = meta;\n const newRanges = {\n xmin: xScale.min,\n xmax: xScale.max,\n ymin: yScale.min,\n ymax: yScale.max\n };\n if (!_scaleRanges) {\n meta._scaleRanges = newRanges;\n return true;\n }\n const changed = _scaleRanges.xmin !== xScale.min\n\t\t|| _scaleRanges.xmax !== xScale.max\n\t\t|| _scaleRanges.ymin !== yScale.min\n\t\t|| _scaleRanges.ymax !== yScale.max;\n Object.assign(_scaleRanges, newRanges);\n return changed;\n}\n\nclass PolarAreaController extends DatasetController {\n constructor(chart, datasetIndex) {\n super(chart, datasetIndex);\n this.innerRadius = undefined;\n this.outerRadius = undefined;\n }\n getLabelAndValue(index) {\n const me = this;\n const meta = me._cachedMeta;\n const chart = me.chart;\n const labels = chart.data.labels || [];\n const value = formatNumber(meta._parsed[index].r, chart.options.locale);\n return {\n label: labels[index] || '',\n value,\n };\n }\n update(mode) {\n const arcs = this._cachedMeta.data;\n this._updateRadius();\n this.updateElements(arcs, 0, arcs.length, mode);\n }\n _updateRadius() {\n const me = this;\n const chart = me.chart;\n const chartArea = chart.chartArea;\n const opts = chart.options;\n const minSize = Math.min(chartArea.right - chartArea.left, chartArea.bottom - chartArea.top);\n const outerRadius = Math.max(minSize / 2, 0);\n const innerRadius = Math.max(opts.cutoutPercentage ? (outerRadius / 100) * (opts.cutoutPercentage) : 1, 0);\n const radiusLength = (outerRadius - innerRadius) / chart.getVisibleDatasetCount();\n me.outerRadius = outerRadius - (radiusLength * me.index);\n me.innerRadius = me.outerRadius - radiusLength;\n }\n updateElements(arcs, start, count, mode) {\n const me = this;\n const reset = mode === 'reset';\n const chart = me.chart;\n const dataset = me.getDataset();\n const opts = chart.options;\n const animationOpts = opts.animation;\n const scale = me._cachedMeta.rScale;\n const centerX = scale.xCenter;\n const centerY = scale.yCenter;\n const datasetStartAngle = scale.getIndexAngle(0) - 0.5 * PI;\n let angle = datasetStartAngle;\n let i;\n const defaultAngle = 360 / me.countVisibleElements();\n for (i = 0; i < start; ++i) {\n angle += me._computeAngle(i, mode, defaultAngle);\n }\n for (i = start; i < start + count; i++) {\n const arc = arcs[i];\n let startAngle = angle;\n let endAngle = angle + me._computeAngle(i, mode, defaultAngle);\n let outerRadius = chart.getDataVisibility(i) ? scale.getDistanceFromCenterForValue(dataset.data[i]) : 0;\n angle = endAngle;\n if (reset) {\n if (animationOpts.animateScale) {\n outerRadius = 0;\n }\n if (animationOpts.animateRotate) {\n startAngle = endAngle = datasetStartAngle;\n }\n }\n const properties = {\n x: centerX,\n y: centerY,\n innerRadius: 0,\n outerRadius,\n startAngle,\n endAngle,\n options: me.resolveDataElementOptions(i, arc.active ? 'active' : mode)\n };\n me.updateElement(arc, i, properties, mode);\n }\n }\n countVisibleElements() {\n const dataset = this.getDataset();\n const meta = this._cachedMeta;\n let count = 0;\n meta.data.forEach((element, index) => {\n if (!isNaN(dataset.data[index]) && this.chart.getDataVisibility(index)) {\n count++;\n }\n });\n return count;\n }\n _computeAngle(index, mode, defaultAngle) {\n return this.chart.getDataVisibility(index)\n ? toRadians(this.resolveDataElementOptions(index, mode).angle || defaultAngle)\n : 0;\n }\n}\nPolarAreaController.id = 'polarArea';\nPolarAreaController.defaults = {\n dataElementType: 'arc',\n animation: {\n animateRotate: true,\n animateScale: true\n },\n animations: {\n numbers: {\n type: 'number',\n properties: ['x', 'y', 'startAngle', 'endAngle', 'innerRadius', 'outerRadius']\n },\n },\n indexAxis: 'r',\n startAngle: 0,\n};\nPolarAreaController.overrides = {\n aspectRatio: 1,\n plugins: {\n legend: {\n labels: {\n generateLabels(chart) {\n const data = chart.data;\n if (data.labels.length && data.datasets.length) {\n const {labels: {pointStyle}} = chart.legend.options;\n return data.labels.map((label, i) => {\n const meta = chart.getDatasetMeta(0);\n const style = meta.controller.getStyle(i);\n return {\n text: label,\n fillStyle: style.backgroundColor,\n strokeStyle: style.borderColor,\n lineWidth: style.borderWidth,\n pointStyle: pointStyle,\n hidden: !chart.getDataVisibility(i),\n index: i\n };\n });\n }\n return [];\n }\n },\n onClick(e, legendItem, legend) {\n legend.chart.toggleDataVisibility(legendItem.index);\n legend.chart.update();\n }\n },\n tooltip: {\n callbacks: {\n title() {\n return '';\n },\n label(context) {\n return context.chart.data.labels[context.dataIndex] + ': ' + context.formattedValue;\n }\n }\n }\n },\n scales: {\n r: {\n type: 'radialLinear',\n angleLines: {\n display: false\n },\n beginAtZero: true,\n grid: {\n circular: true\n },\n pointLabels: {\n display: false\n },\n startAngle: 0\n }\n }\n};\n\nclass PieController extends DoughnutController {\n}\nPieController.id = 'pie';\nPieController.defaults = {\n cutout: 0,\n rotation: 0,\n circumference: 360,\n radius: '100%'\n};\n\nclass RadarController extends DatasetController {\n getLabelAndValue(index) {\n const me = this;\n const vScale = me._cachedMeta.vScale;\n const parsed = me.getParsed(index);\n return {\n label: vScale.getLabels()[index],\n value: '' + vScale.getLabelForValue(parsed[vScale.axis])\n };\n }\n update(mode) {\n const me = this;\n const meta = me._cachedMeta;\n const line = meta.dataset;\n const points = meta.data || [];\n const labels = meta.iScale.getLabels();\n line.points = points;\n if (mode !== 'resize') {\n const options = me.resolveDatasetElementOptions(mode);\n if (!me.options.showLine) {\n options.borderWidth = 0;\n }\n const properties = {\n _loop: true,\n _fullLoop: labels.length === points.length,\n options\n };\n me.updateElement(line, undefined, properties, mode);\n }\n me.updateElements(points, 0, points.length, mode);\n }\n updateElements(points, start, count, mode) {\n const me = this;\n const dataset = me.getDataset();\n const scale = me._cachedMeta.rScale;\n const reset = mode === 'reset';\n for (let i = start; i < start + count; i++) {\n const point = points[i];\n const options = me.resolveDataElementOptions(i, point.active ? 'active' : mode);\n const pointPosition = scale.getPointPositionForValue(i, dataset.data[i]);\n const x = reset ? scale.xCenter : pointPosition.x;\n const y = reset ? scale.yCenter : pointPosition.y;\n const properties = {\n x,\n y,\n angle: pointPosition.angle,\n skip: isNaN(x) || isNaN(y),\n options\n };\n me.updateElement(point, i, properties, mode);\n }\n }\n}\nRadarController.id = 'radar';\nRadarController.defaults = {\n datasetElementType: 'line',\n dataElementType: 'point',\n indexAxis: 'r',\n showLine: true,\n elements: {\n line: {\n fill: 'start'\n }\n },\n};\nRadarController.overrides = {\n aspectRatio: 1,\n scales: {\n r: {\n type: 'radialLinear',\n }\n }\n};\n\nclass ScatterController extends LineController {\n}\nScatterController.id = 'scatter';\nScatterController.defaults = {\n showLine: false,\n fill: false\n};\nScatterController.overrides = {\n interaction: {\n mode: 'point'\n },\n plugins: {\n tooltip: {\n callbacks: {\n title() {\n return '';\n },\n label(item) {\n return '(' + item.label + ', ' + item.formattedValue + ')';\n }\n }\n }\n },\n scales: {\n x: {\n type: 'linear'\n },\n y: {\n type: 'linear'\n }\n }\n};\n\nvar controllers = /*#__PURE__*/Object.freeze({\n__proto__: null,\nBarController: BarController,\nBubbleController: BubbleController,\nDoughnutController: DoughnutController,\nLineController: LineController,\nPolarAreaController: PolarAreaController,\nPieController: PieController,\nRadarController: RadarController,\nScatterController: ScatterController\n});\n\nfunction abstract() {\n throw new Error('This method is not implemented: Check that a complete date adapter is provided.');\n}\nclass DateAdapter {\n constructor(options) {\n this.options = options || {};\n }\n formats() {\n return abstract();\n }\n parse(value, format) {\n return abstract();\n }\n format(timestamp, format) {\n return abstract();\n }\n add(timestamp, amount, unit) {\n return abstract();\n }\n diff(a, b, unit) {\n return abstract();\n }\n startOf(timestamp, unit, weekday) {\n return abstract();\n }\n endOf(timestamp, unit) {\n return abstract();\n }\n}\nDateAdapter.override = function(members) {\n Object.assign(DateAdapter.prototype, members);\n};\nvar adapters = {\n _date: DateAdapter\n};\n\nfunction getRelativePosition(e, chart) {\n if ('native' in e) {\n return {\n x: e.x,\n y: e.y\n };\n }\n return getRelativePosition$1(e, chart);\n}\nfunction evaluateAllVisibleItems(chart, handler) {\n const metasets = chart.getSortedVisibleDatasetMetas();\n let index, data, element;\n for (let i = 0, ilen = metasets.length; i < ilen; ++i) {\n ({index, data} = metasets[i]);\n for (let j = 0, jlen = data.length; j < jlen; ++j) {\n element = data[j];\n if (!element.skip) {\n handler(element, index, j);\n }\n }\n }\n}\nfunction binarySearch(metaset, axis, value, intersect) {\n const {controller, data, _sorted} = metaset;\n const iScale = controller._cachedMeta.iScale;\n if (iScale && axis === iScale.axis && _sorted && data.length) {\n const lookupMethod = iScale._reversePixels ? _rlookupByKey : _lookupByKey;\n if (!intersect) {\n return lookupMethod(data, axis, value);\n } else if (controller._sharedOptions) {\n const el = data[0];\n const range = typeof el.getRange === 'function' && el.getRange(axis);\n if (range) {\n const start = lookupMethod(data, axis, value - range);\n const end = lookupMethod(data, axis, value + range);\n return {lo: start.lo, hi: end.hi};\n }\n }\n }\n return {lo: 0, hi: data.length - 1};\n}\nfunction optimizedEvaluateItems(chart, axis, position, handler, intersect) {\n const metasets = chart.getSortedVisibleDatasetMetas();\n const value = position[axis];\n for (let i = 0, ilen = metasets.length; i < ilen; ++i) {\n const {index, data} = metasets[i];\n const {lo, hi} = binarySearch(metasets[i], axis, value, intersect);\n for (let j = lo; j <= hi; ++j) {\n const element = data[j];\n if (!element.skip) {\n handler(element, index, j);\n }\n }\n }\n}\nfunction getDistanceMetricForAxis(axis) {\n const useX = axis.indexOf('x') !== -1;\n const useY = axis.indexOf('y') !== -1;\n return function(pt1, pt2) {\n const deltaX = useX ? Math.abs(pt1.x - pt2.x) : 0;\n const deltaY = useY ? Math.abs(pt1.y - pt2.y) : 0;\n return Math.sqrt(Math.pow(deltaX, 2) + Math.pow(deltaY, 2));\n };\n}\nfunction getIntersectItems(chart, position, axis, useFinalPosition) {\n const items = [];\n if (!_isPointInArea(position, chart.chartArea, chart._minPadding)) {\n return items;\n }\n const evaluationFunc = function(element, datasetIndex, index) {\n if (element.inRange(position.x, position.y, useFinalPosition)) {\n items.push({element, datasetIndex, index});\n }\n };\n optimizedEvaluateItems(chart, axis, position, evaluationFunc, true);\n return items;\n}\nfunction getNearestItems(chart, position, axis, intersect, useFinalPosition) {\n const distanceMetric = getDistanceMetricForAxis(axis);\n let minDistance = Number.POSITIVE_INFINITY;\n let items = [];\n if (!_isPointInArea(position, chart.chartArea, chart._minPadding)) {\n return items;\n }\n const evaluationFunc = function(element, datasetIndex, index) {\n if (intersect && !element.inRange(position.x, position.y, useFinalPosition)) {\n return;\n }\n const center = element.getCenterPoint(useFinalPosition);\n if (!_isPointInArea(center, chart.chartArea, chart._minPadding)) {\n return;\n }\n const distance = distanceMetric(position, center);\n if (distance < minDistance) {\n items = [{element, datasetIndex, index}];\n minDistance = distance;\n } else if (distance === minDistance) {\n items.push({element, datasetIndex, index});\n }\n };\n optimizedEvaluateItems(chart, axis, position, evaluationFunc);\n return items;\n}\nfunction getAxisItems(chart, e, options, useFinalPosition) {\n const position = getRelativePosition(e, chart);\n const items = [];\n const axis = options.axis;\n const rangeMethod = axis === 'x' ? 'inXRange' : 'inYRange';\n let intersectsItem = false;\n evaluateAllVisibleItems(chart, (element, datasetIndex, index) => {\n if (element[rangeMethod](position[axis], useFinalPosition)) {\n items.push({element, datasetIndex, index});\n }\n if (element.inRange(position.x, position.y, useFinalPosition)) {\n intersectsItem = true;\n }\n });\n if (options.intersect && !intersectsItem) {\n return [];\n }\n return items;\n}\nvar Interaction = {\n modes: {\n index(chart, e, options, useFinalPosition) {\n const position = getRelativePosition(e, chart);\n const axis = options.axis || 'x';\n const items = options.intersect\n ? getIntersectItems(chart, position, axis, useFinalPosition)\n : getNearestItems(chart, position, axis, false, useFinalPosition);\n const elements = [];\n if (!items.length) {\n return [];\n }\n chart.getSortedVisibleDatasetMetas().forEach((meta) => {\n const index = items[0].index;\n const element = meta.data[index];\n if (element && !element.skip) {\n elements.push({element, datasetIndex: meta.index, index});\n }\n });\n return elements;\n },\n dataset(chart, e, options, useFinalPosition) {\n const position = getRelativePosition(e, chart);\n const axis = options.axis || 'xy';\n let items = options.intersect\n ? getIntersectItems(chart, position, axis, useFinalPosition) :\n getNearestItems(chart, position, axis, false, useFinalPosition);\n if (items.length > 0) {\n const datasetIndex = items[0].datasetIndex;\n const data = chart.getDatasetMeta(datasetIndex).data;\n items = [];\n for (let i = 0; i < data.length; ++i) {\n items.push({element: data[i], datasetIndex, index: i});\n }\n }\n return items;\n },\n point(chart, e, options, useFinalPosition) {\n const position = getRelativePosition(e, chart);\n const axis = options.axis || 'xy';\n return getIntersectItems(chart, position, axis, useFinalPosition);\n },\n nearest(chart, e, options, useFinalPosition) {\n const position = getRelativePosition(e, chart);\n const axis = options.axis || 'xy';\n return getNearestItems(chart, position, axis, options.intersect, useFinalPosition);\n },\n x(chart, e, options, useFinalPosition) {\n options.axis = 'x';\n return getAxisItems(chart, e, options, useFinalPosition);\n },\n y(chart, e, options, useFinalPosition) {\n options.axis = 'y';\n return getAxisItems(chart, e, options, useFinalPosition);\n }\n }\n};\n\nconst STATIC_POSITIONS = ['left', 'top', 'right', 'bottom'];\nfunction filterByPosition(array, position) {\n return array.filter(v => v.pos === position);\n}\nfunction filterDynamicPositionByAxis(array, axis) {\n return array.filter(v => STATIC_POSITIONS.indexOf(v.pos) === -1 && v.box.axis === axis);\n}\nfunction sortByWeight(array, reverse) {\n return array.sort((a, b) => {\n const v0 = reverse ? b : a;\n const v1 = reverse ? a : b;\n return v0.weight === v1.weight ?\n v0.index - v1.index :\n v0.weight - v1.weight;\n });\n}\nfunction wrapBoxes(boxes) {\n const layoutBoxes = [];\n let i, ilen, box;\n for (i = 0, ilen = (boxes || []).length; i < ilen; ++i) {\n box = boxes[i];\n layoutBoxes.push({\n index: i,\n box,\n pos: box.position,\n horizontal: box.isHorizontal(),\n weight: box.weight\n });\n }\n return layoutBoxes;\n}\nfunction setLayoutDims(layouts, params) {\n let i, ilen, layout;\n for (i = 0, ilen = layouts.length; i < ilen; ++i) {\n layout = layouts[i];\n if (layout.horizontal) {\n layout.width = layout.box.fullSize && params.availableWidth;\n layout.height = params.hBoxMaxHeight;\n } else {\n layout.width = params.vBoxMaxWidth;\n layout.height = layout.box.fullSize && params.availableHeight;\n }\n }\n}\nfunction buildLayoutBoxes(boxes) {\n const layoutBoxes = wrapBoxes(boxes);\n const fullSize = sortByWeight(layoutBoxes.filter(wrap => wrap.box.fullSize), true);\n const left = sortByWeight(filterByPosition(layoutBoxes, 'left'), true);\n const right = sortByWeight(filterByPosition(layoutBoxes, 'right'));\n const top = sortByWeight(filterByPosition(layoutBoxes, 'top'), true);\n const bottom = sortByWeight(filterByPosition(layoutBoxes, 'bottom'));\n const centerHorizontal = filterDynamicPositionByAxis(layoutBoxes, 'x');\n const centerVertical = filterDynamicPositionByAxis(layoutBoxes, 'y');\n return {\n fullSize,\n leftAndTop: left.concat(top),\n rightAndBottom: right.concat(centerVertical).concat(bottom).concat(centerHorizontal),\n chartArea: filterByPosition(layoutBoxes, 'chartArea'),\n vertical: left.concat(right).concat(centerVertical),\n horizontal: top.concat(bottom).concat(centerHorizontal)\n };\n}\nfunction getCombinedMax(maxPadding, chartArea, a, b) {\n return Math.max(maxPadding[a], chartArea[a]) + Math.max(maxPadding[b], chartArea[b]);\n}\nfunction updateMaxPadding(maxPadding, boxPadding) {\n maxPadding.top = Math.max(maxPadding.top, boxPadding.top);\n maxPadding.left = Math.max(maxPadding.left, boxPadding.left);\n maxPadding.bottom = Math.max(maxPadding.bottom, boxPadding.bottom);\n maxPadding.right = Math.max(maxPadding.right, boxPadding.right);\n}\nfunction updateDims(chartArea, params, layout) {\n const box = layout.box;\n const maxPadding = chartArea.maxPadding;\n if (!isObject(layout.pos)) {\n if (layout.size) {\n chartArea[layout.pos] -= layout.size;\n }\n layout.size = layout.horizontal ? box.height : box.width;\n chartArea[layout.pos] += layout.size;\n }\n if (box.getPadding) {\n updateMaxPadding(maxPadding, box.getPadding());\n }\n const newWidth = Math.max(0, params.outerWidth - getCombinedMax(maxPadding, chartArea, 'left', 'right'));\n const newHeight = Math.max(0, params.outerHeight - getCombinedMax(maxPadding, chartArea, 'top', 'bottom'));\n const widthChanged = newWidth !== chartArea.w;\n const heightChanged = newHeight !== chartArea.h;\n chartArea.w = newWidth;\n chartArea.h = newHeight;\n return layout.horizontal\n ? {same: widthChanged, other: heightChanged}\n : {same: heightChanged, other: widthChanged};\n}\nfunction handleMaxPadding(chartArea) {\n const maxPadding = chartArea.maxPadding;\n function updatePos(pos) {\n const change = Math.max(maxPadding[pos] - chartArea[pos], 0);\n chartArea[pos] += change;\n return change;\n }\n chartArea.y += updatePos('top');\n chartArea.x += updatePos('left');\n updatePos('right');\n updatePos('bottom');\n}\nfunction getMargins(horizontal, chartArea) {\n const maxPadding = chartArea.maxPadding;\n function marginForPositions(positions) {\n const margin = {left: 0, top: 0, right: 0, bottom: 0};\n positions.forEach((pos) => {\n margin[pos] = Math.max(chartArea[pos], maxPadding[pos]);\n });\n return margin;\n }\n return horizontal\n ? marginForPositions(['left', 'right'])\n : marginForPositions(['top', 'bottom']);\n}\nfunction fitBoxes(boxes, chartArea, params) {\n const refitBoxes = [];\n let i, ilen, layout, box, refit, changed;\n for (i = 0, ilen = boxes.length, refit = 0; i < ilen; ++i) {\n layout = boxes[i];\n box = layout.box;\n box.update(\n layout.width || chartArea.w,\n layout.height || chartArea.h,\n getMargins(layout.horizontal, chartArea)\n );\n const {same, other} = updateDims(chartArea, params, layout);\n refit |= same && refitBoxes.length;\n changed = changed || other;\n if (!box.fullSize) {\n refitBoxes.push(layout);\n }\n }\n return refit && fitBoxes(refitBoxes, chartArea, params) || changed;\n}\nfunction placeBoxes(boxes, chartArea, params) {\n const userPadding = params.padding;\n let x = chartArea.x;\n let y = chartArea.y;\n let i, ilen, layout, box;\n for (i = 0, ilen = boxes.length; i < ilen; ++i) {\n layout = boxes[i];\n box = layout.box;\n if (layout.horizontal) {\n box.left = box.fullSize ? userPadding.left : chartArea.left;\n box.right = box.fullSize ? params.outerWidth - userPadding.right : chartArea.left + chartArea.w;\n box.top = y;\n box.bottom = y + box.height;\n box.width = box.right - box.left;\n y = box.bottom;\n } else {\n box.left = x;\n box.right = x + box.width;\n box.top = box.fullSize ? userPadding.top : chartArea.top;\n box.bottom = box.fullSize ? params.outerHeight - userPadding.bottom : chartArea.top + chartArea.h;\n box.height = box.bottom - box.top;\n x = box.right;\n }\n }\n chartArea.x = x;\n chartArea.y = y;\n}\ndefaults.set('layout', {\n padding: {\n top: 0,\n right: 0,\n bottom: 0,\n left: 0\n }\n});\nvar layouts = {\n addBox(chart, item) {\n if (!chart.boxes) {\n chart.boxes = [];\n }\n item.fullSize = item.fullSize || false;\n item.position = item.position || 'top';\n item.weight = item.weight || 0;\n item._layers = item._layers || function() {\n return [{\n z: 0,\n draw(chartArea) {\n item.draw(chartArea);\n }\n }];\n };\n chart.boxes.push(item);\n },\n removeBox(chart, layoutItem) {\n const index = chart.boxes ? chart.boxes.indexOf(layoutItem) : -1;\n if (index !== -1) {\n chart.boxes.splice(index, 1);\n }\n },\n configure(chart, item, options) {\n item.fullSize = options.fullSize;\n item.position = options.position;\n item.weight = options.weight;\n },\n update(chart, width, height, minPadding) {\n if (!chart) {\n return;\n }\n const padding = toPadding(chart.options.layout.padding);\n const availableWidth = Math.max(width - padding.width, 0);\n const availableHeight = Math.max(height - padding.height, 0);\n const boxes = buildLayoutBoxes(chart.boxes);\n const verticalBoxes = boxes.vertical;\n const horizontalBoxes = boxes.horizontal;\n each(chart.boxes, box => {\n if (typeof box.beforeLayout === 'function') {\n box.beforeLayout();\n }\n });\n const visibleVerticalBoxCount = verticalBoxes.reduce((total, wrap) =>\n wrap.box.options && wrap.box.options.display === false ? total : total + 1, 0) || 1;\n const params = Object.freeze({\n outerWidth: width,\n outerHeight: height,\n padding,\n availableWidth,\n availableHeight,\n vBoxMaxWidth: availableWidth / 2 / visibleVerticalBoxCount,\n hBoxMaxHeight: availableHeight / 2\n });\n const maxPadding = Object.assign({}, padding);\n updateMaxPadding(maxPadding, toPadding(minPadding));\n const chartArea = Object.assign({\n maxPadding,\n w: availableWidth,\n h: availableHeight,\n x: padding.left,\n y: padding.top\n }, padding);\n setLayoutDims(verticalBoxes.concat(horizontalBoxes), params);\n fitBoxes(boxes.fullSize, chartArea, params);\n fitBoxes(verticalBoxes, chartArea, params);\n if (fitBoxes(horizontalBoxes, chartArea, params)) {\n fitBoxes(verticalBoxes, chartArea, params);\n }\n handleMaxPadding(chartArea);\n placeBoxes(boxes.leftAndTop, chartArea, params);\n chartArea.x += chartArea.w;\n chartArea.y += chartArea.h;\n placeBoxes(boxes.rightAndBottom, chartArea, params);\n chart.chartArea = {\n left: chartArea.left,\n top: chartArea.top,\n right: chartArea.left + chartArea.w,\n bottom: chartArea.top + chartArea.h,\n height: chartArea.h,\n width: chartArea.w,\n };\n each(boxes.chartArea, (layout) => {\n const box = layout.box;\n Object.assign(box, chart.chartArea);\n box.update(chartArea.w, chartArea.h);\n });\n }\n};\n\nclass BasePlatform {\n acquireContext(canvas, aspectRatio) {}\n releaseContext(context) {\n return false;\n }\n addEventListener(chart, type, listener) {}\n removeEventListener(chart, type, listener) {}\n getDevicePixelRatio() {\n return 1;\n }\n getMaximumSize(element, width, height, aspectRatio) {\n width = Math.max(0, width || element.width);\n height = height || element.height;\n return {\n width,\n height: Math.max(0, aspectRatio ? Math.floor(width / aspectRatio) : height)\n };\n }\n isAttached(canvas) {\n return true;\n }\n}\n\nclass BasicPlatform extends BasePlatform {\n acquireContext(item) {\n return item && item.getContext && item.getContext('2d') || null;\n }\n}\n\nconst EXPANDO_KEY = '$chartjs';\nconst EVENT_TYPES = {\n touchstart: 'mousedown',\n touchmove: 'mousemove',\n touchend: 'mouseup',\n pointerenter: 'mouseenter',\n pointerdown: 'mousedown',\n pointermove: 'mousemove',\n pointerup: 'mouseup',\n pointerleave: 'mouseout',\n pointerout: 'mouseout'\n};\nconst isNullOrEmpty = value => value === null || value === '';\nfunction initCanvas(canvas, aspectRatio) {\n const style = canvas.style;\n const renderHeight = canvas.getAttribute('height');\n const renderWidth = canvas.getAttribute('width');\n canvas[EXPANDO_KEY] = {\n initial: {\n height: renderHeight,\n width: renderWidth,\n style: {\n display: style.display,\n height: style.height,\n width: style.width\n }\n }\n };\n style.display = style.display || 'block';\n style.boxSizing = style.boxSizing || 'border-box';\n if (isNullOrEmpty(renderWidth)) {\n const displayWidth = readUsedSize(canvas, 'width');\n if (displayWidth !== undefined) {\n canvas.width = displayWidth;\n }\n }\n if (isNullOrEmpty(renderHeight)) {\n if (canvas.style.height === '') {\n canvas.height = canvas.width / (aspectRatio || 2);\n } else {\n const displayHeight = readUsedSize(canvas, 'height');\n if (displayHeight !== undefined) {\n canvas.height = displayHeight;\n }\n }\n }\n return canvas;\n}\nconst eventListenerOptions = supportsEventListenerOptions ? {passive: true} : false;\nfunction addListener(node, type, listener) {\n node.addEventListener(type, listener, eventListenerOptions);\n}\nfunction removeListener(chart, type, listener) {\n chart.canvas.removeEventListener(type, listener, eventListenerOptions);\n}\nfunction fromNativeEvent(event, chart) {\n const type = EVENT_TYPES[event.type] || event.type;\n const {x, y} = getRelativePosition$1(event, chart);\n return {\n type,\n chart,\n native: event,\n x: x !== undefined ? x : null,\n y: y !== undefined ? y : null,\n };\n}\nfunction createAttachObserver(chart, type, listener) {\n const canvas = chart.canvas;\n const container = canvas && _getParentNode(canvas);\n const element = container || canvas;\n const observer = new MutationObserver(entries => {\n const parent = _getParentNode(element);\n entries.forEach(entry => {\n for (let i = 0; i < entry.addedNodes.length; i++) {\n const added = entry.addedNodes[i];\n if (added === element || added === parent) {\n listener(entry.target);\n }\n }\n });\n });\n observer.observe(document, {childList: true, subtree: true});\n return observer;\n}\nfunction createDetachObserver(chart, type, listener) {\n const canvas = chart.canvas;\n const container = canvas && _getParentNode(canvas);\n if (!container) {\n return;\n }\n const observer = new MutationObserver(entries => {\n entries.forEach(entry => {\n for (let i = 0; i < entry.removedNodes.length; i++) {\n if (entry.removedNodes[i] === canvas) {\n listener();\n break;\n }\n }\n });\n });\n observer.observe(container, {childList: true});\n return observer;\n}\nconst drpListeningCharts = new Map();\nlet oldDevicePixelRatio = 0;\nfunction onWindowResize() {\n const dpr = window.devicePixelRatio;\n if (dpr === oldDevicePixelRatio) {\n return;\n }\n oldDevicePixelRatio = dpr;\n drpListeningCharts.forEach((resize, chart) => {\n if (chart.currentDevicePixelRatio !== dpr) {\n resize();\n }\n });\n}\nfunction listenDevicePixelRatioChanges(chart, resize) {\n if (!drpListeningCharts.size) {\n window.addEventListener('resize', onWindowResize);\n }\n drpListeningCharts.set(chart, resize);\n}\nfunction unlistenDevicePixelRatioChanges(chart) {\n drpListeningCharts.delete(chart);\n if (!drpListeningCharts.size) {\n window.removeEventListener('resize', onWindowResize);\n }\n}\nfunction createResizeObserver(chart, type, listener) {\n const canvas = chart.canvas;\n const container = canvas && _getParentNode(canvas);\n if (!container) {\n return;\n }\n const resize = throttled((width, height) => {\n const w = container.clientWidth;\n listener(width, height);\n if (w < container.clientWidth) {\n listener();\n }\n }, window);\n const observer = new ResizeObserver(entries => {\n const entry = entries[0];\n const width = entry.contentRect.width;\n const height = entry.contentRect.height;\n if (width === 0 && height === 0) {\n return;\n }\n resize(width, height);\n });\n observer.observe(container);\n listenDevicePixelRatioChanges(chart, resize);\n return observer;\n}\nfunction releaseObserver(chart, type, observer) {\n if (observer) {\n observer.disconnect();\n }\n if (type === 'resize') {\n unlistenDevicePixelRatioChanges(chart);\n }\n}\nfunction createProxyAndListen(chart, type, listener) {\n const canvas = chart.canvas;\n const proxy = throttled((event) => {\n if (chart.ctx !== null) {\n listener(fromNativeEvent(event, chart));\n }\n }, chart, (args) => {\n const event = args[0];\n return [event, event.offsetX, event.offsetY];\n });\n addListener(canvas, type, proxy);\n return proxy;\n}\nclass DomPlatform extends BasePlatform {\n acquireContext(canvas, aspectRatio) {\n const context = canvas && canvas.getContext && canvas.getContext('2d');\n if (context && context.canvas === canvas) {\n initCanvas(canvas, aspectRatio);\n return context;\n }\n return null;\n }\n releaseContext(context) {\n const canvas = context.canvas;\n if (!canvas[EXPANDO_KEY]) {\n return false;\n }\n const initial = canvas[EXPANDO_KEY].initial;\n ['height', 'width'].forEach((prop) => {\n const value = initial[prop];\n if (isNullOrUndef(value)) {\n canvas.removeAttribute(prop);\n } else {\n canvas.setAttribute(prop, value);\n }\n });\n const style = initial.style || {};\n Object.keys(style).forEach((key) => {\n canvas.style[key] = style[key];\n });\n canvas.width = canvas.width;\n delete canvas[EXPANDO_KEY];\n return true;\n }\n addEventListener(chart, type, listener) {\n this.removeEventListener(chart, type);\n const proxies = chart.$proxies || (chart.$proxies = {});\n const handlers = {\n attach: createAttachObserver,\n detach: createDetachObserver,\n resize: createResizeObserver\n };\n const handler = handlers[type] || createProxyAndListen;\n proxies[type] = handler(chart, type, listener);\n }\n removeEventListener(chart, type) {\n const proxies = chart.$proxies || (chart.$proxies = {});\n const proxy = proxies[type];\n if (!proxy) {\n return;\n }\n const handlers = {\n attach: releaseObserver,\n detach: releaseObserver,\n resize: releaseObserver\n };\n const handler = handlers[type] || removeListener;\n handler(chart, type, proxy);\n proxies[type] = undefined;\n }\n getDevicePixelRatio() {\n return window.devicePixelRatio;\n }\n getMaximumSize(canvas, width, height, aspectRatio) {\n return getMaximumSize(canvas, width, height, aspectRatio);\n }\n isAttached(canvas) {\n const container = _getParentNode(canvas);\n return !!(container && _getParentNode(container));\n }\n}\n\nclass Element {\n constructor() {\n this.x = undefined;\n this.y = undefined;\n this.active = false;\n this.options = undefined;\n this.$animations = undefined;\n }\n tooltipPosition(useFinalPosition) {\n const {x, y} = this.getProps(['x', 'y'], useFinalPosition);\n return {x, y};\n }\n hasValue() {\n return isNumber(this.x) && isNumber(this.y);\n }\n getProps(props, final) {\n const me = this;\n const anims = this.$animations;\n if (!final || !anims) {\n return me;\n }\n const ret = {};\n props.forEach(prop => {\n ret[prop] = anims[prop] && anims[prop].active() ? anims[prop]._to : me[prop];\n });\n return ret;\n }\n}\nElement.defaults = {};\nElement.defaultRoutes = undefined;\n\nconst formatters = {\n values(value) {\n return isArray(value) ? value : '' + value;\n },\n numeric(tickValue, index, ticks) {\n if (tickValue === 0) {\n return '0';\n }\n const locale = this.chart.options.locale;\n let notation;\n let delta = tickValue;\n if (ticks.length > 1) {\n const maxTick = Math.max(Math.abs(ticks[0].value), Math.abs(ticks[ticks.length - 1].value));\n if (maxTick < 1e-4 || maxTick > 1e+15) {\n notation = 'scientific';\n }\n delta = calculateDelta(tickValue, ticks);\n }\n const logDelta = log10(Math.abs(delta));\n const numDecimal = Math.max(Math.min(-1 * Math.floor(logDelta), 20), 0);\n const options = {notation, minimumFractionDigits: numDecimal, maximumFractionDigits: numDecimal};\n Object.assign(options, this.options.ticks.format);\n return formatNumber(tickValue, locale, options);\n },\n logarithmic(tickValue, index, ticks) {\n if (tickValue === 0) {\n return '0';\n }\n const remain = tickValue / (Math.pow(10, Math.floor(log10(tickValue))));\n if (remain === 1 || remain === 2 || remain === 5) {\n return formatters.numeric.call(this, tickValue, index, ticks);\n }\n return '';\n }\n};\nfunction calculateDelta(tickValue, ticks) {\n let delta = ticks.length > 3 ? ticks[2].value - ticks[1].value : ticks[1].value - ticks[0].value;\n if (Math.abs(delta) >= 1 && tickValue !== Math.floor(tickValue)) {\n delta = tickValue - Math.floor(tickValue);\n }\n return delta;\n}\nvar Ticks = {formatters};\n\ndefaults.set('scale', {\n display: true,\n offset: false,\n reverse: false,\n beginAtZero: false,\n bounds: 'ticks',\n grace: 0,\n grid: {\n display: true,\n lineWidth: 1,\n drawBorder: true,\n drawOnChartArea: true,\n drawTicks: true,\n tickLength: 8,\n tickWidth: (_ctx, options) => options.lineWidth,\n tickColor: (_ctx, options) => options.color,\n offset: false,\n borderDash: [],\n borderDashOffset: 0.0,\n borderWidth: 1\n },\n title: {\n display: false,\n text: '',\n padding: {\n top: 4,\n bottom: 4\n }\n },\n ticks: {\n minRotation: 0,\n maxRotation: 50,\n mirror: false,\n textStrokeWidth: 0,\n textStrokeColor: '',\n padding: 3,\n display: true,\n autoSkip: true,\n autoSkipPadding: 3,\n labelOffset: 0,\n callback: Ticks.formatters.values,\n minor: {},\n major: {},\n align: 'center',\n crossAlign: 'near',\n showLabelBackdrop: false,\n backdropColor: 'rgba(255, 255, 255, 0.75)',\n backdropPadding: 2,\n }\n});\ndefaults.route('scale.ticks', 'color', '', 'color');\ndefaults.route('scale.grid', 'color', '', 'borderColor');\ndefaults.route('scale.grid', 'borderColor', '', 'borderColor');\ndefaults.route('scale.title', 'color', '', 'color');\ndefaults.describe('scale', {\n _fallback: false,\n _scriptable: (name) => !name.startsWith('before') && !name.startsWith('after') && name !== 'callback' && name !== 'parser',\n _indexable: (name) => name !== 'borderDash' && name !== 'tickBorderDash',\n});\ndefaults.describe('scales', {\n _fallback: 'scale',\n});\ndefaults.describe('scale.ticks', {\n _scriptable: (name) => name !== 'backdropPadding' && name !== 'callback',\n _indexable: (name) => name !== 'backdropPadding',\n});\n\nfunction autoSkip(scale, ticks) {\n const tickOpts = scale.options.ticks;\n const ticksLimit = tickOpts.maxTicksLimit || determineMaxTicks(scale);\n const majorIndices = tickOpts.major.enabled ? getMajorIndices(ticks) : [];\n const numMajorIndices = majorIndices.length;\n const first = majorIndices[0];\n const last = majorIndices[numMajorIndices - 1];\n const newTicks = [];\n if (numMajorIndices > ticksLimit) {\n skipMajors(ticks, newTicks, majorIndices, numMajorIndices / ticksLimit);\n return newTicks;\n }\n const spacing = calculateSpacing(majorIndices, ticks, ticksLimit);\n if (numMajorIndices > 0) {\n let i, ilen;\n const avgMajorSpacing = numMajorIndices > 1 ? Math.round((last - first) / (numMajorIndices - 1)) : null;\n skip(ticks, newTicks, spacing, isNullOrUndef(avgMajorSpacing) ? 0 : first - avgMajorSpacing, first);\n for (i = 0, ilen = numMajorIndices - 1; i < ilen; i++) {\n skip(ticks, newTicks, spacing, majorIndices[i], majorIndices[i + 1]);\n }\n skip(ticks, newTicks, spacing, last, isNullOrUndef(avgMajorSpacing) ? ticks.length : last + avgMajorSpacing);\n return newTicks;\n }\n skip(ticks, newTicks, spacing);\n return newTicks;\n}\nfunction determineMaxTicks(scale) {\n const offset = scale.options.offset;\n const tickLength = scale._tickSize();\n const maxScale = scale._length / tickLength + (offset ? 0 : 1);\n const maxChart = scale._maxLength / tickLength;\n return Math.floor(Math.min(maxScale, maxChart));\n}\nfunction calculateSpacing(majorIndices, ticks, ticksLimit) {\n const evenMajorSpacing = getEvenSpacing(majorIndices);\n const spacing = ticks.length / ticksLimit;\n if (!evenMajorSpacing) {\n return Math.max(spacing, 1);\n }\n const factors = _factorize(evenMajorSpacing);\n for (let i = 0, ilen = factors.length - 1; i < ilen; i++) {\n const factor = factors[i];\n if (factor > spacing) {\n return factor;\n }\n }\n return Math.max(spacing, 1);\n}\nfunction getMajorIndices(ticks) {\n const result = [];\n let i, ilen;\n for (i = 0, ilen = ticks.length; i < ilen; i++) {\n if (ticks[i].major) {\n result.push(i);\n }\n }\n return result;\n}\nfunction skipMajors(ticks, newTicks, majorIndices, spacing) {\n let count = 0;\n let next = majorIndices[0];\n let i;\n spacing = Math.ceil(spacing);\n for (i = 0; i < ticks.length; i++) {\n if (i === next) {\n newTicks.push(ticks[i]);\n count++;\n next = majorIndices[count * spacing];\n }\n }\n}\nfunction skip(ticks, newTicks, spacing, majorStart, majorEnd) {\n const start = valueOrDefault(majorStart, 0);\n const end = Math.min(valueOrDefault(majorEnd, ticks.length), ticks.length);\n let count = 0;\n let length, i, next;\n spacing = Math.ceil(spacing);\n if (majorEnd) {\n length = majorEnd - majorStart;\n spacing = length / Math.floor(length / spacing);\n }\n next = start;\n while (next < 0) {\n count++;\n next = Math.round(start + count * spacing);\n }\n for (i = Math.max(start, 0); i < end; i++) {\n if (i === next) {\n newTicks.push(ticks[i]);\n count++;\n next = Math.round(start + count * spacing);\n }\n }\n}\nfunction getEvenSpacing(arr) {\n const len = arr.length;\n let i, diff;\n if (len < 2) {\n return false;\n }\n for (diff = arr[0], i = 1; i < len; ++i) {\n if (arr[i] - arr[i - 1] !== diff) {\n return false;\n }\n }\n return diff;\n}\n\nconst reverseAlign = (align) => align === 'left' ? 'right' : align === 'right' ? 'left' : align;\nconst offsetFromEdge = (scale, edge, offset) => edge === 'top' || edge === 'left' ? scale[edge] + offset : scale[edge] - offset;\nfunction sample(arr, numItems) {\n const result = [];\n const increment = arr.length / numItems;\n const len = arr.length;\n let i = 0;\n for (; i < len; i += increment) {\n result.push(arr[Math.floor(i)]);\n }\n return result;\n}\nfunction getPixelForGridLine(scale, index, offsetGridLines) {\n const length = scale.ticks.length;\n const validIndex = Math.min(index, length - 1);\n const start = scale._startPixel;\n const end = scale._endPixel;\n const epsilon = 1e-6;\n let lineValue = scale.getPixelForTick(validIndex);\n let offset;\n if (offsetGridLines) {\n if (length === 1) {\n offset = Math.max(lineValue - start, end - lineValue);\n } else if (index === 0) {\n offset = (scale.getPixelForTick(1) - lineValue) / 2;\n } else {\n offset = (lineValue - scale.getPixelForTick(validIndex - 1)) / 2;\n }\n lineValue += validIndex < index ? offset : -offset;\n if (lineValue < start - epsilon || lineValue > end + epsilon) {\n return;\n }\n }\n return lineValue;\n}\nfunction garbageCollect(caches, length) {\n each(caches, (cache) => {\n const gc = cache.gc;\n const gcLen = gc.length / 2;\n let i;\n if (gcLen > length) {\n for (i = 0; i < gcLen; ++i) {\n delete cache.data[gc[i]];\n }\n gc.splice(0, gcLen);\n }\n });\n}\nfunction getTickMarkLength(options) {\n return options.drawTicks ? options.tickLength : 0;\n}\nfunction getTitleHeight(options, fallback) {\n if (!options.display) {\n return 0;\n }\n const font = toFont(options.font, fallback);\n const padding = toPadding(options.padding);\n const lines = isArray(options.text) ? options.text.length : 1;\n return (lines * font.lineHeight) + padding.height;\n}\nfunction createScaleContext(parent, scale) {\n return Object.assign(Object.create(parent), {\n scale,\n type: 'scale'\n });\n}\nfunction createTickContext(parent, index, tick) {\n return Object.assign(Object.create(parent), {\n tick,\n index,\n type: 'tick'\n });\n}\nfunction titleAlign(align, position, reverse) {\n let ret = _toLeftRightCenter(align);\n if ((reverse && position !== 'right') || (!reverse && position === 'right')) {\n ret = reverseAlign(ret);\n }\n return ret;\n}\nfunction titleArgs(scale, offset, position, align) {\n const {top, left, bottom, right} = scale;\n let rotation = 0;\n let maxWidth, titleX, titleY;\n if (scale.isHorizontal()) {\n titleX = _alignStartEnd(align, left, right);\n titleY = offsetFromEdge(scale, position, offset);\n maxWidth = right - left;\n } else {\n titleX = offsetFromEdge(scale, position, offset);\n titleY = _alignStartEnd(align, bottom, top);\n rotation = position === 'left' ? -HALF_PI : HALF_PI;\n }\n return {titleX, titleY, maxWidth, rotation};\n}\nclass Scale extends Element {\n constructor(cfg) {\n super();\n this.id = cfg.id;\n this.type = cfg.type;\n this.options = undefined;\n this.ctx = cfg.ctx;\n this.chart = cfg.chart;\n this.top = undefined;\n this.bottom = undefined;\n this.left = undefined;\n this.right = undefined;\n this.width = undefined;\n this.height = undefined;\n this._margins = {\n left: 0,\n right: 0,\n top: 0,\n bottom: 0\n };\n this.maxWidth = undefined;\n this.maxHeight = undefined;\n this.paddingTop = undefined;\n this.paddingBottom = undefined;\n this.paddingLeft = undefined;\n this.paddingRight = undefined;\n this.axis = undefined;\n this.labelRotation = undefined;\n this.min = undefined;\n this.max = undefined;\n this._range = undefined;\n this.ticks = [];\n this._gridLineItems = null;\n this._labelItems = null;\n this._labelSizes = null;\n this._length = 0;\n this._maxLength = 0;\n this._longestTextCache = {};\n this._startPixel = undefined;\n this._endPixel = undefined;\n this._reversePixels = false;\n this._userMax = undefined;\n this._userMin = undefined;\n this._suggestedMax = undefined;\n this._suggestedMin = undefined;\n this._ticksLength = 0;\n this._borderValue = 0;\n this._cache = {};\n this._dataLimitsCached = false;\n this.$context = undefined;\n }\n init(options) {\n const me = this;\n me.options = options.setContext(me.getContext());\n me.axis = options.axis;\n me._userMin = me.parse(options.min);\n me._userMax = me.parse(options.max);\n me._suggestedMin = me.parse(options.suggestedMin);\n me._suggestedMax = me.parse(options.suggestedMax);\n }\n parse(raw, index) {\n return raw;\n }\n getUserBounds() {\n let {_userMin, _userMax, _suggestedMin, _suggestedMax} = this;\n _userMin = finiteOrDefault(_userMin, Number.POSITIVE_INFINITY);\n _userMax = finiteOrDefault(_userMax, Number.NEGATIVE_INFINITY);\n _suggestedMin = finiteOrDefault(_suggestedMin, Number.POSITIVE_INFINITY);\n _suggestedMax = finiteOrDefault(_suggestedMax, Number.NEGATIVE_INFINITY);\n return {\n min: finiteOrDefault(_userMin, _suggestedMin),\n max: finiteOrDefault(_userMax, _suggestedMax),\n minDefined: isNumberFinite(_userMin),\n maxDefined: isNumberFinite(_userMax)\n };\n }\n getMinMax(canStack) {\n const me = this;\n let {min, max, minDefined, maxDefined} = me.getUserBounds();\n let range;\n if (minDefined && maxDefined) {\n return {min, max};\n }\n const metas = me.getMatchingVisibleMetas();\n for (let i = 0, ilen = metas.length; i < ilen; ++i) {\n range = metas[i].controller.getMinMax(me, canStack);\n if (!minDefined) {\n min = Math.min(min, range.min);\n }\n if (!maxDefined) {\n max = Math.max(max, range.max);\n }\n }\n return {\n min: finiteOrDefault(min, finiteOrDefault(max, min)),\n max: finiteOrDefault(max, finiteOrDefault(min, max))\n };\n }\n getPadding() {\n const me = this;\n return {\n left: me.paddingLeft || 0,\n top: me.paddingTop || 0,\n right: me.paddingRight || 0,\n bottom: me.paddingBottom || 0\n };\n }\n getTicks() {\n return this.ticks;\n }\n getLabels() {\n const data = this.chart.data;\n return this.options.labels || (this.isHorizontal() ? data.xLabels : data.yLabels) || data.labels || [];\n }\n beforeLayout() {\n this._cache = {};\n this._dataLimitsCached = false;\n }\n beforeUpdate() {\n callback(this.options.beforeUpdate, [this]);\n }\n update(maxWidth, maxHeight, margins) {\n const me = this;\n const tickOpts = me.options.ticks;\n const sampleSize = tickOpts.sampleSize;\n me.beforeUpdate();\n me.maxWidth = maxWidth;\n me.maxHeight = maxHeight;\n me._margins = margins = Object.assign({\n left: 0,\n right: 0,\n top: 0,\n bottom: 0\n }, margins);\n me.ticks = null;\n me._labelSizes = null;\n me._gridLineItems = null;\n me._labelItems = null;\n me.beforeSetDimensions();\n me.setDimensions();\n me.afterSetDimensions();\n me._maxLength = me.isHorizontal()\n ? me.width + margins.left + margins.right\n : me.height + margins.top + margins.bottom;\n if (!me._dataLimitsCached) {\n me.beforeDataLimits();\n me.determineDataLimits();\n me.afterDataLimits();\n me._range = _addGrace(me, me.options.grace);\n me._dataLimitsCached = true;\n }\n me.beforeBuildTicks();\n me.ticks = me.buildTicks() || [];\n me.afterBuildTicks();\n const samplingEnabled = sampleSize < me.ticks.length;\n me._convertTicksToLabels(samplingEnabled ? sample(me.ticks, sampleSize) : me.ticks);\n me.configure();\n me.beforeCalculateLabelRotation();\n me.calculateLabelRotation();\n me.afterCalculateLabelRotation();\n if (tickOpts.display && (tickOpts.autoSkip || tickOpts.source === 'auto')) {\n me.ticks = autoSkip(me, me.ticks);\n me._labelSizes = null;\n }\n if (samplingEnabled) {\n me._convertTicksToLabels(me.ticks);\n }\n me.beforeFit();\n me.fit();\n me.afterFit();\n me.afterUpdate();\n }\n configure() {\n const me = this;\n let reversePixels = me.options.reverse;\n let startPixel, endPixel;\n if (me.isHorizontal()) {\n startPixel = me.left;\n endPixel = me.right;\n } else {\n startPixel = me.top;\n endPixel = me.bottom;\n reversePixels = !reversePixels;\n }\n me._startPixel = startPixel;\n me._endPixel = endPixel;\n me._reversePixels = reversePixels;\n me._length = endPixel - startPixel;\n me._alignToPixels = me.options.alignToPixels;\n }\n afterUpdate() {\n callback(this.options.afterUpdate, [this]);\n }\n beforeSetDimensions() {\n callback(this.options.beforeSetDimensions, [this]);\n }\n setDimensions() {\n const me = this;\n if (me.isHorizontal()) {\n me.width = me.maxWidth;\n me.left = 0;\n me.right = me.width;\n } else {\n me.height = me.maxHeight;\n me.top = 0;\n me.bottom = me.height;\n }\n me.paddingLeft = 0;\n me.paddingTop = 0;\n me.paddingRight = 0;\n me.paddingBottom = 0;\n }\n afterSetDimensions() {\n callback(this.options.afterSetDimensions, [this]);\n }\n _callHooks(name) {\n const me = this;\n me.chart.notifyPlugins(name, me.getContext());\n callback(me.options[name], [me]);\n }\n beforeDataLimits() {\n this._callHooks('beforeDataLimits');\n }\n determineDataLimits() {}\n afterDataLimits() {\n this._callHooks('afterDataLimits');\n }\n beforeBuildTicks() {\n this._callHooks('beforeBuildTicks');\n }\n buildTicks() {\n return [];\n }\n afterBuildTicks() {\n this._callHooks('afterBuildTicks');\n }\n beforeTickToLabelConversion() {\n callback(this.options.beforeTickToLabelConversion, [this]);\n }\n generateTickLabels(ticks) {\n const me = this;\n const tickOpts = me.options.ticks;\n let i, ilen, tick;\n for (i = 0, ilen = ticks.length; i < ilen; i++) {\n tick = ticks[i];\n tick.label = callback(tickOpts.callback, [tick.value, i, ticks], me);\n }\n }\n afterTickToLabelConversion() {\n callback(this.options.afterTickToLabelConversion, [this]);\n }\n beforeCalculateLabelRotation() {\n callback(this.options.beforeCalculateLabelRotation, [this]);\n }\n calculateLabelRotation() {\n const me = this;\n const options = me.options;\n const tickOpts = options.ticks;\n const numTicks = me.ticks.length;\n const minRotation = tickOpts.minRotation || 0;\n const maxRotation = tickOpts.maxRotation;\n let labelRotation = minRotation;\n let tickWidth, maxHeight, maxLabelDiagonal;\n if (!me._isVisible() || !tickOpts.display || minRotation >= maxRotation || numTicks <= 1 || !me.isHorizontal()) {\n me.labelRotation = minRotation;\n return;\n }\n const labelSizes = me._getLabelSizes();\n const maxLabelWidth = labelSizes.widest.width;\n const maxLabelHeight = labelSizes.highest.height;\n const maxWidth = _limitValue(me.chart.width - maxLabelWidth, 0, me.maxWidth);\n tickWidth = options.offset ? me.maxWidth / numTicks : maxWidth / (numTicks - 1);\n if (maxLabelWidth + 6 > tickWidth) {\n tickWidth = maxWidth / (numTicks - (options.offset ? 0.5 : 1));\n maxHeight = me.maxHeight - getTickMarkLength(options.grid)\n\t\t\t\t- tickOpts.padding - getTitleHeight(options.title, me.chart.options.font);\n maxLabelDiagonal = Math.sqrt(maxLabelWidth * maxLabelWidth + maxLabelHeight * maxLabelHeight);\n labelRotation = toDegrees(Math.min(\n Math.asin(Math.min((labelSizes.highest.height + 6) / tickWidth, 1)),\n Math.asin(Math.min(maxHeight / maxLabelDiagonal, 1)) - Math.asin(maxLabelHeight / maxLabelDiagonal)\n ));\n labelRotation = Math.max(minRotation, Math.min(maxRotation, labelRotation));\n }\n me.labelRotation = labelRotation;\n }\n afterCalculateLabelRotation() {\n callback(this.options.afterCalculateLabelRotation, [this]);\n }\n beforeFit() {\n callback(this.options.beforeFit, [this]);\n }\n fit() {\n const me = this;\n const minSize = {\n width: 0,\n height: 0\n };\n const {chart, options: {ticks: tickOpts, title: titleOpts, grid: gridOpts}} = me;\n const display = me._isVisible();\n const isHorizontal = me.isHorizontal();\n if (display) {\n const titleHeight = getTitleHeight(titleOpts, chart.options.font);\n if (isHorizontal) {\n minSize.width = me.maxWidth;\n minSize.height = getTickMarkLength(gridOpts) + titleHeight;\n } else {\n minSize.height = me.maxHeight;\n minSize.width = getTickMarkLength(gridOpts) + titleHeight;\n }\n if (tickOpts.display && me.ticks.length) {\n const {first, last, widest, highest} = me._getLabelSizes();\n const tickPadding = tickOpts.padding * 2;\n const angleRadians = toRadians(me.labelRotation);\n const cos = Math.cos(angleRadians);\n const sin = Math.sin(angleRadians);\n if (isHorizontal) {\n const labelHeight = tickOpts.mirror ? 0 : sin * widest.width + cos * highest.height;\n minSize.height = Math.min(me.maxHeight, minSize.height + labelHeight + tickPadding);\n } else {\n const labelWidth = tickOpts.mirror ? 0 : cos * widest.width + sin * highest.height;\n minSize.width = Math.min(me.maxWidth, minSize.width + labelWidth + tickPadding);\n }\n me._calculatePadding(first, last, sin, cos);\n }\n }\n me._handleMargins();\n if (isHorizontal) {\n me.width = me._length = chart.width - me._margins.left - me._margins.right;\n me.height = minSize.height;\n } else {\n me.width = minSize.width;\n me.height = me._length = chart.height - me._margins.top - me._margins.bottom;\n }\n }\n _calculatePadding(first, last, sin, cos) {\n const me = this;\n const {ticks: {align, padding}, position} = me.options;\n const isRotated = me.labelRotation !== 0;\n const labelsBelowTicks = position !== 'top' && me.axis === 'x';\n if (me.isHorizontal()) {\n const offsetLeft = me.getPixelForTick(0) - me.left;\n const offsetRight = me.right - me.getPixelForTick(me.ticks.length - 1);\n let paddingLeft = 0;\n let paddingRight = 0;\n if (isRotated) {\n if (labelsBelowTicks) {\n paddingLeft = cos * first.width;\n paddingRight = sin * last.height;\n } else {\n paddingLeft = sin * first.height;\n paddingRight = cos * last.width;\n }\n } else if (align === 'start') {\n paddingRight = last.width;\n } else if (align === 'end') {\n paddingLeft = first.width;\n } else {\n paddingLeft = first.width / 2;\n paddingRight = last.width / 2;\n }\n me.paddingLeft = Math.max((paddingLeft - offsetLeft + padding) * me.width / (me.width - offsetLeft), 0);\n me.paddingRight = Math.max((paddingRight - offsetRight + padding) * me.width / (me.width - offsetRight), 0);\n } else {\n let paddingTop = last.height / 2;\n let paddingBottom = first.height / 2;\n if (align === 'start') {\n paddingTop = 0;\n paddingBottom = first.height;\n } else if (align === 'end') {\n paddingTop = last.height;\n paddingBottom = 0;\n }\n me.paddingTop = paddingTop + padding;\n me.paddingBottom = paddingBottom + padding;\n }\n }\n _handleMargins() {\n const me = this;\n if (me._margins) {\n me._margins.left = Math.max(me.paddingLeft, me._margins.left);\n me._margins.top = Math.max(me.paddingTop, me._margins.top);\n me._margins.right = Math.max(me.paddingRight, me._margins.right);\n me._margins.bottom = Math.max(me.paddingBottom, me._margins.bottom);\n }\n }\n afterFit() {\n callback(this.options.afterFit, [this]);\n }\n isHorizontal() {\n const {axis, position} = this.options;\n return position === 'top' || position === 'bottom' || axis === 'x';\n }\n isFullSize() {\n return this.options.fullSize;\n }\n _convertTicksToLabels(ticks) {\n const me = this;\n me.beforeTickToLabelConversion();\n me.generateTickLabels(ticks);\n let i, ilen;\n for (i = 0, ilen = ticks.length; i < ilen; i++) {\n if (isNullOrUndef(ticks[i].label)) {\n ticks.splice(i, 1);\n ilen--;\n i--;\n }\n }\n me.afterTickToLabelConversion();\n }\n _getLabelSizes() {\n const me = this;\n let labelSizes = me._labelSizes;\n if (!labelSizes) {\n const sampleSize = me.options.ticks.sampleSize;\n let ticks = me.ticks;\n if (sampleSize < ticks.length) {\n ticks = sample(ticks, sampleSize);\n }\n me._labelSizes = labelSizes = me._computeLabelSizes(ticks, ticks.length);\n }\n return labelSizes;\n }\n _computeLabelSizes(ticks, length) {\n const {ctx, _longestTextCache: caches} = this;\n const widths = [];\n const heights = [];\n let widestLabelSize = 0;\n let highestLabelSize = 0;\n let i, j, jlen, label, tickFont, fontString, cache, lineHeight, width, height, nestedLabel;\n for (i = 0; i < length; ++i) {\n label = ticks[i].label;\n tickFont = this._resolveTickFontOptions(i);\n ctx.font = fontString = tickFont.string;\n cache = caches[fontString] = caches[fontString] || {data: {}, gc: []};\n lineHeight = tickFont.lineHeight;\n width = height = 0;\n if (!isNullOrUndef(label) && !isArray(label)) {\n width = _measureText(ctx, cache.data, cache.gc, width, label);\n height = lineHeight;\n } else if (isArray(label)) {\n for (j = 0, jlen = label.length; j < jlen; ++j) {\n nestedLabel = label[j];\n if (!isNullOrUndef(nestedLabel) && !isArray(nestedLabel)) {\n width = _measureText(ctx, cache.data, cache.gc, width, nestedLabel);\n height += lineHeight;\n }\n }\n }\n widths.push(width);\n heights.push(height);\n widestLabelSize = Math.max(width, widestLabelSize);\n highestLabelSize = Math.max(height, highestLabelSize);\n }\n garbageCollect(caches, length);\n const widest = widths.indexOf(widestLabelSize);\n const highest = heights.indexOf(highestLabelSize);\n const valueAt = (idx) => ({width: widths[idx] || 0, height: heights[idx] || 0});\n return {\n first: valueAt(0),\n last: valueAt(length - 1),\n widest: valueAt(widest),\n highest: valueAt(highest),\n widths,\n heights,\n };\n }\n getLabelForValue(value) {\n return value;\n }\n getPixelForValue(value, index) {\n return NaN;\n }\n getValueForPixel(pixel) {}\n getPixelForTick(index) {\n const ticks = this.ticks;\n if (index < 0 || index > ticks.length - 1) {\n return null;\n }\n return this.getPixelForValue(ticks[index].value);\n }\n getPixelForDecimal(decimal) {\n const me = this;\n if (me._reversePixels) {\n decimal = 1 - decimal;\n }\n const pixel = me._startPixel + decimal * me._length;\n return _int16Range(me._alignToPixels ? _alignPixel(me.chart, pixel, 0) : pixel);\n }\n getDecimalForPixel(pixel) {\n const decimal = (pixel - this._startPixel) / this._length;\n return this._reversePixels ? 1 - decimal : decimal;\n }\n getBasePixel() {\n return this.getPixelForValue(this.getBaseValue());\n }\n getBaseValue() {\n const {min, max} = this;\n return min < 0 && max < 0 ? max :\n min > 0 && max > 0 ? min :\n 0;\n }\n getContext(index) {\n const me = this;\n const ticks = me.ticks || [];\n if (index >= 0 && index < ticks.length) {\n const tick = ticks[index];\n return tick.$context ||\n\t\t\t\t(tick.$context = createTickContext(me.getContext(), index, tick));\n }\n return me.$context ||\n\t\t\t(me.$context = createScaleContext(me.chart.getContext(), me));\n }\n _tickSize() {\n const me = this;\n const optionTicks = me.options.ticks;\n const rot = toRadians(me.labelRotation);\n const cos = Math.abs(Math.cos(rot));\n const sin = Math.abs(Math.sin(rot));\n const labelSizes = me._getLabelSizes();\n const padding = optionTicks.autoSkipPadding || 0;\n const w = labelSizes ? labelSizes.widest.width + padding : 0;\n const h = labelSizes ? labelSizes.highest.height + padding : 0;\n return me.isHorizontal()\n ? h * cos > w * sin ? w / cos : h / sin\n : h * sin < w * cos ? h / cos : w / sin;\n }\n _isVisible() {\n const display = this.options.display;\n if (display !== 'auto') {\n return !!display;\n }\n return this.getMatchingVisibleMetas().length > 0;\n }\n _computeGridLineItems(chartArea) {\n const me = this;\n const axis = me.axis;\n const chart = me.chart;\n const options = me.options;\n const {grid, position} = options;\n const offset = grid.offset;\n const isHorizontal = me.isHorizontal();\n const ticks = me.ticks;\n const ticksLength = ticks.length + (offset ? 1 : 0);\n const tl = getTickMarkLength(grid);\n const items = [];\n const borderOpts = grid.setContext(me.getContext());\n const axisWidth = borderOpts.drawBorder ? borderOpts.borderWidth : 0;\n const axisHalfWidth = axisWidth / 2;\n const alignBorderValue = function(pixel) {\n return _alignPixel(chart, pixel, axisWidth);\n };\n let borderValue, i, lineValue, alignedLineValue;\n let tx1, ty1, tx2, ty2, x1, y1, x2, y2;\n if (position === 'top') {\n borderValue = alignBorderValue(me.bottom);\n ty1 = me.bottom - tl;\n ty2 = borderValue - axisHalfWidth;\n y1 = alignBorderValue(chartArea.top) + axisHalfWidth;\n y2 = chartArea.bottom;\n } else if (position === 'bottom') {\n borderValue = alignBorderValue(me.top);\n y1 = chartArea.top;\n y2 = alignBorderValue(chartArea.bottom) - axisHalfWidth;\n ty1 = borderValue + axisHalfWidth;\n ty2 = me.top + tl;\n } else if (position === 'left') {\n borderValue = alignBorderValue(me.right);\n tx1 = me.right - tl;\n tx2 = borderValue - axisHalfWidth;\n x1 = alignBorderValue(chartArea.left) + axisHalfWidth;\n x2 = chartArea.right;\n } else if (position === 'right') {\n borderValue = alignBorderValue(me.left);\n x1 = chartArea.left;\n x2 = alignBorderValue(chartArea.right) - axisHalfWidth;\n tx1 = borderValue + axisHalfWidth;\n tx2 = me.left + tl;\n } else if (axis === 'x') {\n if (position === 'center') {\n borderValue = alignBorderValue((chartArea.top + chartArea.bottom) / 2 + 0.5);\n } else if (isObject(position)) {\n const positionAxisID = Object.keys(position)[0];\n const value = position[positionAxisID];\n borderValue = alignBorderValue(me.chart.scales[positionAxisID].getPixelForValue(value));\n }\n y1 = chartArea.top;\n y2 = chartArea.bottom;\n ty1 = borderValue + axisHalfWidth;\n ty2 = ty1 + tl;\n } else if (axis === 'y') {\n if (position === 'center') {\n borderValue = alignBorderValue((chartArea.left + chartArea.right) / 2);\n } else if (isObject(position)) {\n const positionAxisID = Object.keys(position)[0];\n const value = position[positionAxisID];\n borderValue = alignBorderValue(me.chart.scales[positionAxisID].getPixelForValue(value));\n }\n tx1 = borderValue - axisHalfWidth;\n tx2 = tx1 - tl;\n x1 = chartArea.left;\n x2 = chartArea.right;\n }\n const limit = valueOrDefault(options.ticks.maxTicksLimit, ticksLength);\n const step = Math.max(1, Math.ceil(ticksLength / limit));\n for (i = 0; i < ticksLength; i += step) {\n const optsAtIndex = grid.setContext(me.getContext(i));\n const lineWidth = optsAtIndex.lineWidth;\n const lineColor = optsAtIndex.color;\n const borderDash = grid.borderDash || [];\n const borderDashOffset = optsAtIndex.borderDashOffset;\n const tickWidth = optsAtIndex.tickWidth;\n const tickColor = optsAtIndex.tickColor;\n const tickBorderDash = optsAtIndex.tickBorderDash || [];\n const tickBorderDashOffset = optsAtIndex.tickBorderDashOffset;\n lineValue = getPixelForGridLine(me, i, offset);\n if (lineValue === undefined) {\n continue;\n }\n alignedLineValue = _alignPixel(chart, lineValue, lineWidth);\n if (isHorizontal) {\n tx1 = tx2 = x1 = x2 = alignedLineValue;\n } else {\n ty1 = ty2 = y1 = y2 = alignedLineValue;\n }\n items.push({\n tx1,\n ty1,\n tx2,\n ty2,\n x1,\n y1,\n x2,\n y2,\n width: lineWidth,\n color: lineColor,\n borderDash,\n borderDashOffset,\n tickWidth,\n tickColor,\n tickBorderDash,\n tickBorderDashOffset,\n });\n }\n me._ticksLength = ticksLength;\n me._borderValue = borderValue;\n return items;\n }\n _computeLabelItems(chartArea) {\n const me = this;\n const axis = me.axis;\n const options = me.options;\n const {position, ticks: optionTicks} = options;\n const isHorizontal = me.isHorizontal();\n const ticks = me.ticks;\n const {align, crossAlign, padding, mirror} = optionTicks;\n const tl = getTickMarkLength(options.grid);\n const tickAndPadding = tl + padding;\n const hTickAndPadding = mirror ? -padding : tickAndPadding;\n const rotation = -toRadians(me.labelRotation);\n const items = [];\n let i, ilen, tick, label, x, y, textAlign, pixel, font, lineHeight, lineCount, textOffset;\n let textBaseline = 'middle';\n if (position === 'top') {\n y = me.bottom - hTickAndPadding;\n textAlign = me._getXAxisLabelAlignment();\n } else if (position === 'bottom') {\n y = me.top + hTickAndPadding;\n textAlign = me._getXAxisLabelAlignment();\n } else if (position === 'left') {\n const ret = me._getYAxisLabelAlignment(tl);\n textAlign = ret.textAlign;\n x = ret.x;\n } else if (position === 'right') {\n const ret = me._getYAxisLabelAlignment(tl);\n textAlign = ret.textAlign;\n x = ret.x;\n } else if (axis === 'x') {\n if (position === 'center') {\n y = ((chartArea.top + chartArea.bottom) / 2) + tickAndPadding;\n } else if (isObject(position)) {\n const positionAxisID = Object.keys(position)[0];\n const value = position[positionAxisID];\n y = me.chart.scales[positionAxisID].getPixelForValue(value) + tickAndPadding;\n }\n textAlign = me._getXAxisLabelAlignment();\n } else if (axis === 'y') {\n if (position === 'center') {\n x = ((chartArea.left + chartArea.right) / 2) - tickAndPadding;\n } else if (isObject(position)) {\n const positionAxisID = Object.keys(position)[0];\n const value = position[positionAxisID];\n x = me.chart.scales[positionAxisID].getPixelForValue(value);\n }\n textAlign = me._getYAxisLabelAlignment(tl).textAlign;\n }\n if (axis === 'y') {\n if (align === 'start') {\n textBaseline = 'top';\n } else if (align === 'end') {\n textBaseline = 'bottom';\n }\n }\n const labelSizes = me._getLabelSizes();\n for (i = 0, ilen = ticks.length; i < ilen; ++i) {\n tick = ticks[i];\n label = tick.label;\n const optsAtIndex = optionTicks.setContext(me.getContext(i));\n pixel = me.getPixelForTick(i) + optionTicks.labelOffset;\n font = me._resolveTickFontOptions(i);\n lineHeight = font.lineHeight;\n lineCount = isArray(label) ? label.length : 1;\n const halfCount = lineCount / 2;\n const color = optsAtIndex.color;\n const strokeColor = optsAtIndex.textStrokeColor;\n const strokeWidth = optsAtIndex.textStrokeWidth;\n if (isHorizontal) {\n x = pixel;\n if (position === 'top') {\n if (crossAlign === 'near' || rotation !== 0) {\n textOffset = -lineCount * lineHeight + lineHeight / 2;\n } else if (crossAlign === 'center') {\n textOffset = -labelSizes.highest.height / 2 - halfCount * lineHeight + lineHeight;\n } else {\n textOffset = -labelSizes.highest.height + lineHeight / 2;\n }\n } else {\n if (crossAlign === 'near' || rotation !== 0) {\n textOffset = lineHeight / 2;\n } else if (crossAlign === 'center') {\n textOffset = labelSizes.highest.height / 2 - halfCount * lineHeight;\n } else {\n textOffset = labelSizes.highest.height - lineCount * lineHeight;\n }\n }\n if (mirror) {\n textOffset *= -1;\n }\n } else {\n y = pixel;\n textOffset = (1 - lineCount) * lineHeight / 2;\n }\n let backdrop;\n if (optsAtIndex.showLabelBackdrop) {\n const labelPadding = toPadding(optsAtIndex.backdropPadding);\n const height = labelSizes.heights[i];\n const width = labelSizes.widths[i];\n let top = y + textOffset - labelPadding.top;\n let left = x - labelPadding.left;\n switch (textBaseline) {\n case 'middle':\n top -= height / 2;\n break;\n case 'bottom':\n top -= height;\n break;\n }\n switch (textAlign) {\n case 'center':\n left -= width / 2;\n break;\n case 'right':\n left -= width;\n break;\n }\n backdrop = {\n left,\n top,\n width: width + labelPadding.width,\n height: height + labelPadding.height,\n color: optsAtIndex.backdropColor,\n };\n }\n items.push({\n rotation,\n label,\n font,\n color,\n strokeColor,\n strokeWidth,\n textOffset,\n textAlign,\n textBaseline,\n translation: [x, y],\n backdrop,\n });\n }\n return items;\n }\n _getXAxisLabelAlignment() {\n const me = this;\n const {position, ticks} = me.options;\n const rotation = -toRadians(me.labelRotation);\n if (rotation) {\n return position === 'top' ? 'left' : 'right';\n }\n let align = 'center';\n if (ticks.align === 'start') {\n align = 'left';\n } else if (ticks.align === 'end') {\n align = 'right';\n }\n return align;\n }\n _getYAxisLabelAlignment(tl) {\n const me = this;\n const {position, ticks: {crossAlign, mirror, padding}} = me.options;\n const labelSizes = me._getLabelSizes();\n const tickAndPadding = tl + padding;\n const widest = labelSizes.widest.width;\n let textAlign;\n let x;\n if (position === 'left') {\n if (mirror) {\n textAlign = 'left';\n x = me.right + padding;\n } else {\n x = me.right - tickAndPadding;\n if (crossAlign === 'near') {\n textAlign = 'right';\n } else if (crossAlign === 'center') {\n textAlign = 'center';\n x -= (widest / 2);\n } else {\n textAlign = 'left';\n x = me.left;\n }\n }\n } else if (position === 'right') {\n if (mirror) {\n textAlign = 'right';\n x = me.left + padding;\n } else {\n x = me.left + tickAndPadding;\n if (crossAlign === 'near') {\n textAlign = 'left';\n } else if (crossAlign === 'center') {\n textAlign = 'center';\n x += widest / 2;\n } else {\n textAlign = 'right';\n x = me.right;\n }\n }\n } else {\n textAlign = 'right';\n }\n return {textAlign, x};\n }\n _computeLabelArea() {\n const me = this;\n if (me.options.ticks.mirror) {\n return;\n }\n const chart = me.chart;\n const position = me.options.position;\n if (position === 'left' || position === 'right') {\n return {top: 0, left: me.left, bottom: chart.height, right: me.right};\n } if (position === 'top' || position === 'bottom') {\n return {top: me.top, left: 0, bottom: me.bottom, right: chart.width};\n }\n }\n drawBackground() {\n const {ctx, options: {backgroundColor}, left, top, width, height} = this;\n if (backgroundColor) {\n ctx.save();\n ctx.fillStyle = backgroundColor;\n ctx.fillRect(left, top, width, height);\n ctx.restore();\n }\n }\n getLineWidthForValue(value) {\n const me = this;\n const grid = me.options.grid;\n if (!me._isVisible() || !grid.display) {\n return 0;\n }\n const ticks = me.ticks;\n const index = ticks.findIndex(t => t.value === value);\n if (index >= 0) {\n const opts = grid.setContext(me.getContext(index));\n return opts.lineWidth;\n }\n return 0;\n }\n drawGrid(chartArea) {\n const me = this;\n const grid = me.options.grid;\n const ctx = me.ctx;\n const items = me._gridLineItems || (me._gridLineItems = me._computeGridLineItems(chartArea));\n let i, ilen;\n const drawLine = (p1, p2, style) => {\n if (!style.width || !style.color) {\n return;\n }\n ctx.save();\n ctx.lineWidth = style.width;\n ctx.strokeStyle = style.color;\n ctx.setLineDash(style.borderDash || []);\n ctx.lineDashOffset = style.borderDashOffset;\n ctx.beginPath();\n ctx.moveTo(p1.x, p1.y);\n ctx.lineTo(p2.x, p2.y);\n ctx.stroke();\n ctx.restore();\n };\n if (grid.display) {\n for (i = 0, ilen = items.length; i < ilen; ++i) {\n const item = items[i];\n if (grid.drawOnChartArea) {\n drawLine(\n {x: item.x1, y: item.y1},\n {x: item.x2, y: item.y2},\n item\n );\n }\n if (grid.drawTicks) {\n drawLine(\n {x: item.tx1, y: item.ty1},\n {x: item.tx2, y: item.ty2},\n {\n color: item.tickColor,\n width: item.tickWidth,\n borderDash: item.tickBorderDash,\n borderDashOffset: item.tickBorderDashOffset\n }\n );\n }\n }\n }\n }\n drawBorder() {\n const me = this;\n const {chart, ctx, options: {grid}} = me;\n const borderOpts = grid.setContext(me.getContext());\n const axisWidth = grid.drawBorder ? borderOpts.borderWidth : 0;\n if (!axisWidth) {\n return;\n }\n const lastLineWidth = grid.setContext(me.getContext(0)).lineWidth;\n const borderValue = me._borderValue;\n let x1, x2, y1, y2;\n if (me.isHorizontal()) {\n x1 = _alignPixel(chart, me.left, axisWidth) - axisWidth / 2;\n x2 = _alignPixel(chart, me.right, lastLineWidth) + lastLineWidth / 2;\n y1 = y2 = borderValue;\n } else {\n y1 = _alignPixel(chart, me.top, axisWidth) - axisWidth / 2;\n y2 = _alignPixel(chart, me.bottom, lastLineWidth) + lastLineWidth / 2;\n x1 = x2 = borderValue;\n }\n ctx.save();\n ctx.lineWidth = borderOpts.borderWidth;\n ctx.strokeStyle = borderOpts.borderColor;\n ctx.beginPath();\n ctx.moveTo(x1, y1);\n ctx.lineTo(x2, y2);\n ctx.stroke();\n ctx.restore();\n }\n drawLabels(chartArea) {\n const me = this;\n const optionTicks = me.options.ticks;\n if (!optionTicks.display) {\n return;\n }\n const ctx = me.ctx;\n const area = me._computeLabelArea();\n if (area) {\n clipArea(ctx, area);\n }\n const items = me._labelItems || (me._labelItems = me._computeLabelItems(chartArea));\n let i, ilen;\n for (i = 0, ilen = items.length; i < ilen; ++i) {\n const item = items[i];\n const tickFont = item.font;\n const label = item.label;\n if (item.backdrop) {\n ctx.fillStyle = item.backdrop.color;\n ctx.fillRect(item.backdrop.left, item.backdrop.top, item.backdrop.width, item.backdrop.height);\n }\n let y = item.textOffset;\n renderText(ctx, label, 0, y, tickFont, item);\n }\n if (area) {\n unclipArea(ctx);\n }\n }\n drawTitle() {\n const {ctx, options: {position, title, reverse}} = this;\n if (!title.display) {\n return;\n }\n const font = toFont(title.font);\n const padding = toPadding(title.padding);\n const align = title.align;\n let offset = font.lineHeight / 2;\n if (position === 'bottom') {\n offset += padding.bottom;\n if (isArray(title.text)) {\n offset += font.lineHeight * (title.text.length - 1);\n }\n } else {\n offset += padding.top;\n }\n const {titleX, titleY, maxWidth, rotation} = titleArgs(this, offset, position, align);\n renderText(ctx, title.text, 0, 0, font, {\n color: title.color,\n maxWidth,\n rotation,\n textAlign: titleAlign(align, position, reverse),\n textBaseline: 'middle',\n translation: [titleX, titleY],\n });\n }\n draw(chartArea) {\n const me = this;\n if (!me._isVisible()) {\n return;\n }\n me.drawBackground();\n me.drawGrid(chartArea);\n me.drawBorder();\n me.drawTitle();\n me.drawLabels(chartArea);\n }\n _layers() {\n const me = this;\n const opts = me.options;\n const tz = opts.ticks && opts.ticks.z || 0;\n const gz = opts.grid && opts.grid.z || 0;\n if (!me._isVisible() || me.draw !== Scale.prototype.draw) {\n return [{\n z: tz,\n draw(chartArea) {\n me.draw(chartArea);\n }\n }];\n }\n return [{\n z: gz,\n draw(chartArea) {\n me.drawBackground();\n me.drawGrid(chartArea);\n me.drawTitle();\n }\n }, {\n z: gz + 1,\n draw() {\n me.drawBorder();\n }\n }, {\n z: tz,\n draw(chartArea) {\n me.drawLabels(chartArea);\n }\n }];\n }\n getMatchingVisibleMetas(type) {\n const me = this;\n const metas = me.chart.getSortedVisibleDatasetMetas();\n const axisID = me.axis + 'AxisID';\n const result = [];\n let i, ilen;\n for (i = 0, ilen = metas.length; i < ilen; ++i) {\n const meta = metas[i];\n if (meta[axisID] === me.id && (!type || meta.type === type)) {\n result.push(meta);\n }\n }\n return result;\n }\n _resolveTickFontOptions(index) {\n const opts = this.options.ticks.setContext(this.getContext(index));\n return toFont(opts.font);\n }\n _maxDigits() {\n const me = this;\n const fontSize = me._resolveTickFontOptions(0).lineHeight;\n return (me.isHorizontal() ? me.width : me.height) / fontSize;\n }\n}\n\nclass TypedRegistry {\n constructor(type, scope, override) {\n this.type = type;\n this.scope = scope;\n this.override = override;\n this.items = Object.create(null);\n }\n isForType(type) {\n return Object.prototype.isPrototypeOf.call(this.type.prototype, type.prototype);\n }\n register(item) {\n const me = this;\n const proto = Object.getPrototypeOf(item);\n let parentScope;\n if (isIChartComponent(proto)) {\n parentScope = me.register(proto);\n }\n const items = me.items;\n const id = item.id;\n const scope = me.scope + '.' + id;\n if (!id) {\n throw new Error('class does not have id: ' + item);\n }\n if (id in items) {\n return scope;\n }\n items[id] = item;\n registerDefaults(item, scope, parentScope);\n if (me.override) {\n defaults.override(item.id, item.overrides);\n }\n return scope;\n }\n get(id) {\n return this.items[id];\n }\n unregister(item) {\n const items = this.items;\n const id = item.id;\n const scope = this.scope;\n if (id in items) {\n delete items[id];\n }\n if (scope && id in defaults[scope]) {\n delete defaults[scope][id];\n if (this.override) {\n delete overrides[id];\n }\n }\n }\n}\nfunction registerDefaults(item, scope, parentScope) {\n const itemDefaults = merge(Object.create(null), [\n parentScope ? defaults.get(parentScope) : {},\n defaults.get(scope),\n item.defaults\n ]);\n defaults.set(scope, itemDefaults);\n if (item.defaultRoutes) {\n routeDefaults(scope, item.defaultRoutes);\n }\n if (item.descriptors) {\n defaults.describe(scope, item.descriptors);\n }\n}\nfunction routeDefaults(scope, routes) {\n Object.keys(routes).forEach(property => {\n const propertyParts = property.split('.');\n const sourceName = propertyParts.pop();\n const sourceScope = [scope].concat(propertyParts).join('.');\n const parts = routes[property].split('.');\n const targetName = parts.pop();\n const targetScope = parts.join('.');\n defaults.route(sourceScope, sourceName, targetScope, targetName);\n });\n}\nfunction isIChartComponent(proto) {\n return 'id' in proto && 'defaults' in proto;\n}\n\nclass Registry {\n constructor() {\n this.controllers = new TypedRegistry(DatasetController, 'datasets', true);\n this.elements = new TypedRegistry(Element, 'elements');\n this.plugins = new TypedRegistry(Object, 'plugins');\n this.scales = new TypedRegistry(Scale, 'scales');\n this._typedRegistries = [this.controllers, this.scales, this.elements];\n }\n add(...args) {\n this._each('register', args);\n }\n remove(...args) {\n this._each('unregister', args);\n }\n addControllers(...args) {\n this._each('register', args, this.controllers);\n }\n addElements(...args) {\n this._each('register', args, this.elements);\n }\n addPlugins(...args) {\n this._each('register', args, this.plugins);\n }\n addScales(...args) {\n this._each('register', args, this.scales);\n }\n getController(id) {\n return this._get(id, this.controllers, 'controller');\n }\n getElement(id) {\n return this._get(id, this.elements, 'element');\n }\n getPlugin(id) {\n return this._get(id, this.plugins, 'plugin');\n }\n getScale(id) {\n return this._get(id, this.scales, 'scale');\n }\n removeControllers(...args) {\n this._each('unregister', args, this.controllers);\n }\n removeElements(...args) {\n this._each('unregister', args, this.elements);\n }\n removePlugins(...args) {\n this._each('unregister', args, this.plugins);\n }\n removeScales(...args) {\n this._each('unregister', args, this.scales);\n }\n _each(method, args, typedRegistry) {\n const me = this;\n [...args].forEach(arg => {\n const reg = typedRegistry || me._getRegistryForType(arg);\n if (typedRegistry || reg.isForType(arg) || (reg === me.plugins && arg.id)) {\n me._exec(method, reg, arg);\n } else {\n each(arg, item => {\n const itemReg = typedRegistry || me._getRegistryForType(item);\n me._exec(method, itemReg, item);\n });\n }\n });\n }\n _exec(method, registry, component) {\n const camelMethod = _capitalize(method);\n callback(component['before' + camelMethod], [], component);\n registry[method](component);\n callback(component['after' + camelMethod], [], component);\n }\n _getRegistryForType(type) {\n for (let i = 0; i < this._typedRegistries.length; i++) {\n const reg = this._typedRegistries[i];\n if (reg.isForType(type)) {\n return reg;\n }\n }\n return this.plugins;\n }\n _get(id, typedRegistry, type) {\n const item = typedRegistry.get(id);\n if (item === undefined) {\n throw new Error('\"' + id + '\" is not a registered ' + type + '.');\n }\n return item;\n }\n}\nvar registry = new Registry();\n\nclass PluginService {\n constructor() {\n this._init = [];\n }\n notify(chart, hook, args, filter) {\n const me = this;\n if (hook === 'beforeInit') {\n me._init = me._createDescriptors(chart, true);\n me._notify(me._init, chart, 'install');\n }\n const descriptors = filter ? me._descriptors(chart).filter(filter) : me._descriptors(chart);\n const result = me._notify(descriptors, chart, hook, args);\n if (hook === 'destroy') {\n me._notify(descriptors, chart, 'stop');\n me._notify(me._init, chart, 'uninstall');\n }\n return result;\n }\n _notify(descriptors, chart, hook, args) {\n args = args || {};\n for (const descriptor of descriptors) {\n const plugin = descriptor.plugin;\n const method = plugin[hook];\n const params = [chart, args, descriptor.options];\n if (callback(method, params, plugin) === false && args.cancelable) {\n return false;\n }\n }\n return true;\n }\n invalidate() {\n if (!isNullOrUndef(this._cache)) {\n this._oldCache = this._cache;\n this._cache = undefined;\n }\n }\n _descriptors(chart) {\n if (this._cache) {\n return this._cache;\n }\n const descriptors = this._cache = this._createDescriptors(chart);\n this._notifyStateChanges(chart);\n return descriptors;\n }\n _createDescriptors(chart, all) {\n const config = chart && chart.config;\n const options = valueOrDefault(config.options && config.options.plugins, {});\n const plugins = allPlugins(config);\n return options === false && !all ? [] : createDescriptors(chart, plugins, options, all);\n }\n _notifyStateChanges(chart) {\n const previousDescriptors = this._oldCache || [];\n const descriptors = this._cache;\n const diff = (a, b) => a.filter(x => !b.some(y => x.plugin.id === y.plugin.id));\n this._notify(diff(previousDescriptors, descriptors), chart, 'stop');\n this._notify(diff(descriptors, previousDescriptors), chart, 'start');\n }\n}\nfunction allPlugins(config) {\n const plugins = [];\n const keys = Object.keys(registry.plugins.items);\n for (let i = 0; i < keys.length; i++) {\n plugins.push(registry.getPlugin(keys[i]));\n }\n const local = config.plugins || [];\n for (let i = 0; i < local.length; i++) {\n const plugin = local[i];\n if (plugins.indexOf(plugin) === -1) {\n plugins.push(plugin);\n }\n }\n return plugins;\n}\nfunction getOpts(options, all) {\n if (!all && options === false) {\n return null;\n }\n if (options === true) {\n return {};\n }\n return options;\n}\nfunction createDescriptors(chart, plugins, options, all) {\n const result = [];\n const context = chart.getContext();\n for (let i = 0; i < plugins.length; i++) {\n const plugin = plugins[i];\n const id = plugin.id;\n const opts = getOpts(options[id], all);\n if (opts === null) {\n continue;\n }\n result.push({\n plugin,\n options: pluginOpts(chart.config, plugin, opts, context)\n });\n }\n return result;\n}\nfunction pluginOpts(config, plugin, opts, context) {\n const keys = config.pluginScopeKeys(plugin);\n const scopes = config.getOptionScopes(opts, keys);\n return config.createResolver(scopes, context, [''], {scriptable: false, indexable: false, allKeys: true});\n}\n\nfunction getIndexAxis(type, options) {\n const datasetDefaults = defaults.datasets[type] || {};\n const datasetOptions = (options.datasets || {})[type] || {};\n return datasetOptions.indexAxis || options.indexAxis || datasetDefaults.indexAxis || 'x';\n}\nfunction getAxisFromDefaultScaleID(id, indexAxis) {\n let axis = id;\n if (id === '_index_') {\n axis = indexAxis;\n } else if (id === '_value_') {\n axis = indexAxis === 'x' ? 'y' : 'x';\n }\n return axis;\n}\nfunction getDefaultScaleIDFromAxis(axis, indexAxis) {\n return axis === indexAxis ? '_index_' : '_value_';\n}\nfunction axisFromPosition(position) {\n if (position === 'top' || position === 'bottom') {\n return 'x';\n }\n if (position === 'left' || position === 'right') {\n return 'y';\n }\n}\nfunction determineAxis(id, scaleOptions) {\n if (id === 'x' || id === 'y') {\n return id;\n }\n return scaleOptions.axis || axisFromPosition(scaleOptions.position) || id.charAt(0).toLowerCase();\n}\nfunction mergeScaleConfig(config, options) {\n const chartDefaults = overrides[config.type] || {scales: {}};\n const configScales = options.scales || {};\n const chartIndexAxis = getIndexAxis(config.type, options);\n const firstIDs = Object.create(null);\n const scales = Object.create(null);\n Object.keys(configScales).forEach(id => {\n const scaleConf = configScales[id];\n const axis = determineAxis(id, scaleConf);\n const defaultId = getDefaultScaleIDFromAxis(axis, chartIndexAxis);\n const defaultScaleOptions = chartDefaults.scales || {};\n firstIDs[axis] = firstIDs[axis] || id;\n scales[id] = mergeIf(Object.create(null), [{axis}, scaleConf, defaultScaleOptions[axis], defaultScaleOptions[defaultId]]);\n });\n config.data.datasets.forEach(dataset => {\n const type = dataset.type || config.type;\n const indexAxis = dataset.indexAxis || getIndexAxis(type, options);\n const datasetDefaults = overrides[type] || {};\n const defaultScaleOptions = datasetDefaults.scales || {};\n Object.keys(defaultScaleOptions).forEach(defaultID => {\n const axis = getAxisFromDefaultScaleID(defaultID, indexAxis);\n const id = dataset[axis + 'AxisID'] || firstIDs[axis] || axis;\n scales[id] = scales[id] || Object.create(null);\n mergeIf(scales[id], [{axis}, configScales[id], defaultScaleOptions[defaultID]]);\n });\n });\n Object.keys(scales).forEach(key => {\n const scale = scales[key];\n mergeIf(scale, [defaults.scales[scale.type], defaults.scale]);\n });\n return scales;\n}\nfunction initOptions(config) {\n const options = config.options || (config.options = {});\n options.plugins = valueOrDefault(options.plugins, {});\n options.scales = mergeScaleConfig(config, options);\n}\nfunction initData(data) {\n data = data || {};\n data.datasets = data.datasets || [];\n data.labels = data.labels || [];\n return data;\n}\nfunction initConfig(config) {\n config = config || {};\n config.data = initData(config.data);\n initOptions(config);\n return config;\n}\nconst keyCache = new Map();\nconst keysCached = new Set();\nfunction cachedKeys(cacheKey, generate) {\n let keys = keyCache.get(cacheKey);\n if (!keys) {\n keys = generate();\n keyCache.set(cacheKey, keys);\n keysCached.add(keys);\n }\n return keys;\n}\nconst addIfFound = (set, obj, key) => {\n const opts = resolveObjectKey(obj, key);\n if (opts !== undefined) {\n set.add(opts);\n }\n};\nclass Config {\n constructor(config) {\n this._config = initConfig(config);\n this._scopeCache = new Map();\n this._resolverCache = new Map();\n }\n get type() {\n return this._config.type;\n }\n set type(type) {\n this._config.type = type;\n }\n get data() {\n return this._config.data;\n }\n set data(data) {\n this._config.data = initData(data);\n }\n get options() {\n return this._config.options;\n }\n set options(options) {\n this._config.options = options;\n }\n get plugins() {\n return this._config.plugins;\n }\n update() {\n const config = this._config;\n this.clearCache();\n initOptions(config);\n }\n clearCache() {\n this._scopeCache.clear();\n this._resolverCache.clear();\n }\n datasetScopeKeys(datasetType) {\n return cachedKeys(datasetType,\n () => [[\n `datasets.${datasetType}`,\n ''\n ]]);\n }\n datasetAnimationScopeKeys(datasetType, transition) {\n return cachedKeys(`${datasetType}.transition.${transition}`,\n () => [\n [\n `datasets.${datasetType}.transitions.${transition}`,\n `transitions.${transition}`,\n ],\n [\n `datasets.${datasetType}`,\n ''\n ]\n ]);\n }\n datasetElementScopeKeys(datasetType, elementType) {\n return cachedKeys(`${datasetType}-${elementType}`,\n () => [[\n `datasets.${datasetType}.elements.${elementType}`,\n `datasets.${datasetType}`,\n `elements.${elementType}`,\n ''\n ]]);\n }\n pluginScopeKeys(plugin) {\n const id = plugin.id;\n const type = this.type;\n return cachedKeys(`${type}-plugin-${id}`,\n () => [[\n `plugins.${id}`,\n ...plugin.additionalOptionScopes || [],\n ]]);\n }\n _cachedScopes(mainScope, resetCache) {\n const _scopeCache = this._scopeCache;\n let cache = _scopeCache.get(mainScope);\n if (!cache || resetCache) {\n cache = new Map();\n _scopeCache.set(mainScope, cache);\n }\n return cache;\n }\n getOptionScopes(mainScope, keyLists, resetCache) {\n const {options, type} = this;\n const cache = this._cachedScopes(mainScope, resetCache);\n const cached = cache.get(keyLists);\n if (cached) {\n return cached;\n }\n const scopes = new Set();\n keyLists.forEach(keys => {\n if (mainScope) {\n scopes.add(mainScope);\n keys.forEach(key => addIfFound(scopes, mainScope, key));\n }\n keys.forEach(key => addIfFound(scopes, options, key));\n keys.forEach(key => addIfFound(scopes, overrides[type] || {}, key));\n keys.forEach(key => addIfFound(scopes, defaults, key));\n keys.forEach(key => addIfFound(scopes, descriptors, key));\n });\n const array = Array.from(scopes);\n if (keysCached.has(keyLists)) {\n cache.set(keyLists, array);\n }\n return array;\n }\n chartOptionScopes() {\n const {options, type} = this;\n return [\n options,\n overrides[type] || {},\n defaults.datasets[type] || {},\n {type},\n defaults,\n descriptors\n ];\n }\n resolveNamedOptions(scopes, names, context, prefixes = ['']) {\n const result = {$shared: true};\n const {resolver, subPrefixes} = getResolver(this._resolverCache, scopes, prefixes);\n let options = resolver;\n if (needContext(resolver, names)) {\n result.$shared = false;\n context = isFunction(context) ? context() : context;\n const subResolver = this.createResolver(scopes, context, subPrefixes);\n options = _attachContext(resolver, context, subResolver);\n }\n for (const prop of names) {\n result[prop] = options[prop];\n }\n return result;\n }\n createResolver(scopes, context, prefixes = [''], descriptorDefaults) {\n const {resolver} = getResolver(this._resolverCache, scopes, prefixes);\n return isObject(context)\n ? _attachContext(resolver, context, undefined, descriptorDefaults)\n : resolver;\n }\n}\nfunction getResolver(resolverCache, scopes, prefixes) {\n let cache = resolverCache.get(scopes);\n if (!cache) {\n cache = new Map();\n resolverCache.set(scopes, cache);\n }\n const cacheKey = prefixes.join();\n let cached = cache.get(cacheKey);\n if (!cached) {\n const resolver = _createResolver(scopes, prefixes);\n cached = {\n resolver,\n subPrefixes: prefixes.filter(p => !p.toLowerCase().includes('hover'))\n };\n cache.set(cacheKey, cached);\n }\n return cached;\n}\nfunction needContext(proxy, names) {\n const {isScriptable, isIndexable} = _descriptors(proxy);\n for (const prop of names) {\n if ((isScriptable(prop) && isFunction(proxy[prop]))\n || (isIndexable(prop) && isArray(proxy[prop]))) {\n return true;\n }\n }\n return false;\n}\n\nvar version = \"3.4.1\";\n\nconst KNOWN_POSITIONS = ['top', 'bottom', 'left', 'right', 'chartArea'];\nfunction positionIsHorizontal(position, axis) {\n return position === 'top' || position === 'bottom' || (KNOWN_POSITIONS.indexOf(position) === -1 && axis === 'x');\n}\nfunction compare2Level(l1, l2) {\n return function(a, b) {\n return a[l1] === b[l1]\n ? a[l2] - b[l2]\n : a[l1] - b[l1];\n };\n}\nfunction onAnimationsComplete(context) {\n const chart = context.chart;\n const animationOptions = chart.options.animation;\n chart.notifyPlugins('afterRender');\n callback(animationOptions && animationOptions.onComplete, [context], chart);\n}\nfunction onAnimationProgress(context) {\n const chart = context.chart;\n const animationOptions = chart.options.animation;\n callback(animationOptions && animationOptions.onProgress, [context], chart);\n}\nfunction isDomSupported() {\n return typeof window !== 'undefined' && typeof document !== 'undefined';\n}\nfunction getCanvas(item) {\n if (isDomSupported() && typeof item === 'string') {\n item = document.getElementById(item);\n } else if (item && item.length) {\n item = item[0];\n }\n if (item && item.canvas) {\n item = item.canvas;\n }\n return item;\n}\nconst instances = {};\nconst getChart = (key) => {\n const canvas = getCanvas(key);\n return Object.values(instances).filter((c) => c.canvas === canvas).pop();\n};\nclass Chart {\n constructor(item, config) {\n const me = this;\n this.config = config = new Config(config);\n const initialCanvas = getCanvas(item);\n const existingChart = getChart(initialCanvas);\n if (existingChart) {\n throw new Error(\n 'Canvas is already in use. Chart with ID \\'' + existingChart.id + '\\'' +\n\t\t\t\t' must be destroyed before the canvas can be reused.'\n );\n }\n const options = config.createResolver(config.chartOptionScopes(), me.getContext());\n this.platform = me._initializePlatform(initialCanvas, config);\n const context = me.platform.acquireContext(initialCanvas, options.aspectRatio);\n const canvas = context && context.canvas;\n const height = canvas && canvas.height;\n const width = canvas && canvas.width;\n this.id = uid();\n this.ctx = context;\n this.canvas = canvas;\n this.width = width;\n this.height = height;\n this._options = options;\n this._aspectRatio = this.aspectRatio;\n this._layers = [];\n this._metasets = [];\n this._stacks = undefined;\n this.boxes = [];\n this.currentDevicePixelRatio = undefined;\n this.chartArea = undefined;\n this._active = [];\n this._lastEvent = undefined;\n this._listeners = {};\n this._responsiveListeners = undefined;\n this._sortedMetasets = [];\n this.scales = {};\n this.scale = undefined;\n this._plugins = new PluginService();\n this.$proxies = {};\n this._hiddenIndices = {};\n this.attached = false;\n this._animationsDisabled = undefined;\n this.$context = undefined;\n this._doResize = debounce(() => this.update('resize'), options.resizeDelay || 0);\n instances[me.id] = me;\n if (!context || !canvas) {\n console.error(\"Failed to create chart: can't acquire context from the given item\");\n return;\n }\n animator.listen(me, 'complete', onAnimationsComplete);\n animator.listen(me, 'progress', onAnimationProgress);\n me._initialize();\n if (me.attached) {\n me.update();\n }\n }\n get aspectRatio() {\n const {options: {aspectRatio, maintainAspectRatio}, width, height, _aspectRatio} = this;\n if (!isNullOrUndef(aspectRatio)) {\n return aspectRatio;\n }\n if (maintainAspectRatio && _aspectRatio) {\n return _aspectRatio;\n }\n return height ? width / height : null;\n }\n get data() {\n return this.config.data;\n }\n set data(data) {\n this.config.data = data;\n }\n get options() {\n return this._options;\n }\n set options(options) {\n this.config.options = options;\n }\n _initialize() {\n const me = this;\n me.notifyPlugins('beforeInit');\n if (me.options.responsive) {\n me.resize();\n } else {\n retinaScale(me, me.options.devicePixelRatio);\n }\n me.bindEvents();\n me.notifyPlugins('afterInit');\n return me;\n }\n _initializePlatform(canvas, config) {\n if (config.platform) {\n return new config.platform();\n } else if (!isDomSupported() || (typeof OffscreenCanvas !== 'undefined' && canvas instanceof OffscreenCanvas)) {\n return new BasicPlatform();\n }\n return new DomPlatform();\n }\n clear() {\n clearCanvas(this.canvas, this.ctx);\n return this;\n }\n stop() {\n animator.stop(this);\n return this;\n }\n resize(width, height) {\n if (!animator.running(this)) {\n this._resize(width, height);\n } else {\n this._resizeBeforeDraw = {width, height};\n }\n }\n _resize(width, height) {\n const me = this;\n const options = me.options;\n const canvas = me.canvas;\n const aspectRatio = options.maintainAspectRatio && me.aspectRatio;\n const newSize = me.platform.getMaximumSize(canvas, width, height, aspectRatio);\n const newRatio = options.devicePixelRatio || me.platform.getDevicePixelRatio();\n me.width = newSize.width;\n me.height = newSize.height;\n me._aspectRatio = me.aspectRatio;\n if (!retinaScale(me, newRatio, true)) {\n return;\n }\n me.notifyPlugins('resize', {size: newSize});\n callback(options.onResize, [me, newSize], me);\n if (me.attached) {\n if (me._doResize()) {\n me.render();\n }\n }\n }\n ensureScalesHaveIDs() {\n const options = this.options;\n const scalesOptions = options.scales || {};\n each(scalesOptions, (axisOptions, axisID) => {\n axisOptions.id = axisID;\n });\n }\n buildOrUpdateScales() {\n const me = this;\n const options = me.options;\n const scaleOpts = options.scales;\n const scales = me.scales;\n const updated = Object.keys(scales).reduce((obj, id) => {\n obj[id] = false;\n return obj;\n }, {});\n let items = [];\n if (scaleOpts) {\n items = items.concat(\n Object.keys(scaleOpts).map((id) => {\n const scaleOptions = scaleOpts[id];\n const axis = determineAxis(id, scaleOptions);\n const isRadial = axis === 'r';\n const isHorizontal = axis === 'x';\n return {\n options: scaleOptions,\n dposition: isRadial ? 'chartArea' : isHorizontal ? 'bottom' : 'left',\n dtype: isRadial ? 'radialLinear' : isHorizontal ? 'category' : 'linear'\n };\n })\n );\n }\n each(items, (item) => {\n const scaleOptions = item.options;\n const id = scaleOptions.id;\n const axis = determineAxis(id, scaleOptions);\n const scaleType = valueOrDefault(scaleOptions.type, item.dtype);\n if (scaleOptions.position === undefined || positionIsHorizontal(scaleOptions.position, axis) !== positionIsHorizontal(item.dposition)) {\n scaleOptions.position = item.dposition;\n }\n updated[id] = true;\n let scale = null;\n if (id in scales && scales[id].type === scaleType) {\n scale = scales[id];\n } else {\n const scaleClass = registry.getScale(scaleType);\n scale = new scaleClass({\n id,\n type: scaleType,\n ctx: me.ctx,\n chart: me\n });\n scales[scale.id] = scale;\n }\n scale.init(scaleOptions, options);\n });\n each(updated, (hasUpdated, id) => {\n if (!hasUpdated) {\n delete scales[id];\n }\n });\n each(scales, (scale) => {\n layouts.configure(me, scale, scale.options);\n layouts.addBox(me, scale);\n });\n }\n _updateMetasets() {\n const me = this;\n const metasets = me._metasets;\n const numData = me.data.datasets.length;\n const numMeta = metasets.length;\n metasets.sort((a, b) => a.index - b.index);\n if (numMeta > numData) {\n for (let i = numData; i < numMeta; ++i) {\n me._destroyDatasetMeta(i);\n }\n metasets.splice(numData, numMeta - numData);\n }\n me._sortedMetasets = metasets.slice(0).sort(compare2Level('order', 'index'));\n }\n _removeUnreferencedMetasets() {\n const me = this;\n const {_metasets: metasets, data: {datasets}} = me;\n if (metasets.length > datasets.length) {\n delete me._stacks;\n }\n metasets.forEach((meta, index) => {\n if (datasets.filter(x => x === meta._dataset).length === 0) {\n me._destroyDatasetMeta(index);\n }\n });\n }\n buildOrUpdateControllers() {\n const me = this;\n const newControllers = [];\n const datasets = me.data.datasets;\n let i, ilen;\n me._removeUnreferencedMetasets();\n for (i = 0, ilen = datasets.length; i < ilen; i++) {\n const dataset = datasets[i];\n let meta = me.getDatasetMeta(i);\n const type = dataset.type || me.config.type;\n if (meta.type && meta.type !== type) {\n me._destroyDatasetMeta(i);\n meta = me.getDatasetMeta(i);\n }\n meta.type = type;\n meta.indexAxis = dataset.indexAxis || getIndexAxis(type, me.options);\n meta.order = dataset.order || 0;\n meta.index = i;\n meta.label = '' + dataset.label;\n meta.visible = me.isDatasetVisible(i);\n if (meta.controller) {\n meta.controller.updateIndex(i);\n meta.controller.linkScales();\n } else {\n const ControllerClass = registry.getController(type);\n const {datasetElementType, dataElementType} = defaults.datasets[type];\n Object.assign(ControllerClass.prototype, {\n dataElementType: registry.getElement(dataElementType),\n datasetElementType: datasetElementType && registry.getElement(datasetElementType)\n });\n meta.controller = new ControllerClass(me, i);\n newControllers.push(meta.controller);\n }\n }\n me._updateMetasets();\n return newControllers;\n }\n _resetElements() {\n const me = this;\n each(me.data.datasets, (dataset, datasetIndex) => {\n me.getDatasetMeta(datasetIndex).controller.reset();\n }, me);\n }\n reset() {\n this._resetElements();\n this.notifyPlugins('reset');\n }\n update(mode) {\n const me = this;\n const config = me.config;\n config.update();\n me._options = config.createResolver(config.chartOptionScopes(), me.getContext());\n each(me.scales, (scale) => {\n layouts.removeBox(me, scale);\n });\n const animsDisabled = me._animationsDisabled = !me.options.animation;\n me.ensureScalesHaveIDs();\n me.buildOrUpdateScales();\n const existingEvents = new Set(Object.keys(me._listeners));\n const newEvents = new Set(me.options.events);\n if (!setsEqual(existingEvents, newEvents) || !!this._responsiveListeners !== me.options.responsive) {\n me.unbindEvents();\n me.bindEvents();\n }\n me._plugins.invalidate();\n if (me.notifyPlugins('beforeUpdate', {mode, cancelable: true}) === false) {\n return;\n }\n const newControllers = me.buildOrUpdateControllers();\n me.notifyPlugins('beforeElementsUpdate');\n let minPadding = 0;\n for (let i = 0, ilen = me.data.datasets.length; i < ilen; i++) {\n const {controller} = me.getDatasetMeta(i);\n const reset = !animsDisabled && newControllers.indexOf(controller) === -1;\n controller.buildOrUpdateElements(reset);\n minPadding = Math.max(+controller.getMaxOverflow(), minPadding);\n }\n me._minPadding = minPadding;\n me._updateLayout(minPadding);\n if (!animsDisabled) {\n each(newControllers, (controller) => {\n controller.reset();\n });\n }\n me._updateDatasets(mode);\n me.notifyPlugins('afterUpdate', {mode});\n me._layers.sort(compare2Level('z', '_idx'));\n if (me._lastEvent) {\n me._eventHandler(me._lastEvent, true);\n }\n me.render();\n }\n _updateLayout(minPadding) {\n const me = this;\n if (me.notifyPlugins('beforeLayout', {cancelable: true}) === false) {\n return;\n }\n layouts.update(me, me.width, me.height, minPadding);\n const area = me.chartArea;\n const noArea = area.width <= 0 || area.height <= 0;\n me._layers = [];\n each(me.boxes, (box) => {\n if (noArea && box.position === 'chartArea') {\n return;\n }\n if (box.configure) {\n box.configure();\n }\n me._layers.push(...box._layers());\n }, me);\n me._layers.forEach((item, index) => {\n item._idx = index;\n });\n me.notifyPlugins('afterLayout');\n }\n _updateDatasets(mode) {\n const me = this;\n const isFunction = typeof mode === 'function';\n if (me.notifyPlugins('beforeDatasetsUpdate', {mode, cancelable: true}) === false) {\n return;\n }\n for (let i = 0, ilen = me.data.datasets.length; i < ilen; ++i) {\n me._updateDataset(i, isFunction ? mode({datasetIndex: i}) : mode);\n }\n me.notifyPlugins('afterDatasetsUpdate', {mode});\n }\n _updateDataset(index, mode) {\n const me = this;\n const meta = me.getDatasetMeta(index);\n const args = {meta, index, mode, cancelable: true};\n if (me.notifyPlugins('beforeDatasetUpdate', args) === false) {\n return;\n }\n meta.controller._update(mode);\n args.cancelable = false;\n me.notifyPlugins('afterDatasetUpdate', args);\n }\n render() {\n const me = this;\n if (me.notifyPlugins('beforeRender', {cancelable: true}) === false) {\n return;\n }\n if (animator.has(me)) {\n if (me.attached && !animator.running(me)) {\n animator.start(me);\n }\n } else {\n me.draw();\n onAnimationsComplete({chart: me});\n }\n }\n draw() {\n const me = this;\n let i;\n if (me._resizeBeforeDraw) {\n const {width, height} = me._resizeBeforeDraw;\n me._resize(width, height);\n me._resizeBeforeDraw = null;\n }\n me.clear();\n if (me.width <= 0 || me.height <= 0) {\n return;\n }\n if (me.notifyPlugins('beforeDraw', {cancelable: true}) === false) {\n return;\n }\n const layers = me._layers;\n for (i = 0; i < layers.length && layers[i].z <= 0; ++i) {\n layers[i].draw(me.chartArea);\n }\n me._drawDatasets();\n for (; i < layers.length; ++i) {\n layers[i].draw(me.chartArea);\n }\n me.notifyPlugins('afterDraw');\n }\n _getSortedDatasetMetas(filterVisible) {\n const me = this;\n const metasets = me._sortedMetasets;\n const result = [];\n let i, ilen;\n for (i = 0, ilen = metasets.length; i < ilen; ++i) {\n const meta = metasets[i];\n if (!filterVisible || meta.visible) {\n result.push(meta);\n }\n }\n return result;\n }\n getSortedVisibleDatasetMetas() {\n return this._getSortedDatasetMetas(true);\n }\n _drawDatasets() {\n const me = this;\n if (me.notifyPlugins('beforeDatasetsDraw', {cancelable: true}) === false) {\n return;\n }\n const metasets = me.getSortedVisibleDatasetMetas();\n for (let i = metasets.length - 1; i >= 0; --i) {\n me._drawDataset(metasets[i]);\n }\n me.notifyPlugins('afterDatasetsDraw');\n }\n _drawDataset(meta) {\n const me = this;\n const ctx = me.ctx;\n const clip = meta._clip;\n const useClip = !clip.disabled;\n const area = me.chartArea;\n const args = {\n meta,\n index: meta.index,\n cancelable: true\n };\n if (me.notifyPlugins('beforeDatasetDraw', args) === false) {\n return;\n }\n if (useClip) {\n clipArea(ctx, {\n left: clip.left === false ? 0 : area.left - clip.left,\n right: clip.right === false ? me.width : area.right + clip.right,\n top: clip.top === false ? 0 : area.top - clip.top,\n bottom: clip.bottom === false ? me.height : area.bottom + clip.bottom\n });\n }\n meta.controller.draw();\n if (useClip) {\n unclipArea(ctx);\n }\n args.cancelable = false;\n me.notifyPlugins('afterDatasetDraw', args);\n }\n getElementsAtEventForMode(e, mode, options, useFinalPosition) {\n const method = Interaction.modes[mode];\n if (typeof method === 'function') {\n return method(this, e, options, useFinalPosition);\n }\n return [];\n }\n getDatasetMeta(datasetIndex) {\n const me = this;\n const dataset = me.data.datasets[datasetIndex];\n const metasets = me._metasets;\n let meta = metasets.filter(x => x && x._dataset === dataset).pop();\n if (!meta) {\n meta = {\n type: null,\n data: [],\n dataset: null,\n controller: null,\n hidden: null,\n xAxisID: null,\n yAxisID: null,\n order: dataset && dataset.order || 0,\n index: datasetIndex,\n _dataset: dataset,\n _parsed: [],\n _sorted: false\n };\n metasets.push(meta);\n }\n return meta;\n }\n getContext() {\n return this.$context || (this.$context = {chart: this, type: 'chart'});\n }\n getVisibleDatasetCount() {\n return this.getSortedVisibleDatasetMetas().length;\n }\n isDatasetVisible(datasetIndex) {\n const dataset = this.data.datasets[datasetIndex];\n if (!dataset) {\n return false;\n }\n const meta = this.getDatasetMeta(datasetIndex);\n return typeof meta.hidden === 'boolean' ? !meta.hidden : !dataset.hidden;\n }\n setDatasetVisibility(datasetIndex, visible) {\n const meta = this.getDatasetMeta(datasetIndex);\n meta.hidden = !visible;\n }\n toggleDataVisibility(index) {\n this._hiddenIndices[index] = !this._hiddenIndices[index];\n }\n getDataVisibility(index) {\n return !this._hiddenIndices[index];\n }\n _updateDatasetVisibility(datasetIndex, visible) {\n const me = this;\n const mode = visible ? 'show' : 'hide';\n const meta = me.getDatasetMeta(datasetIndex);\n const anims = meta.controller._resolveAnimations(undefined, mode);\n me.setDatasetVisibility(datasetIndex, visible);\n anims.update(meta, {visible});\n me.update((ctx) => ctx.datasetIndex === datasetIndex ? mode : undefined);\n }\n hide(datasetIndex) {\n this._updateDatasetVisibility(datasetIndex, false);\n }\n show(datasetIndex) {\n this._updateDatasetVisibility(datasetIndex, true);\n }\n _destroyDatasetMeta(datasetIndex) {\n const me = this;\n const meta = me._metasets && me._metasets[datasetIndex];\n if (meta && meta.controller) {\n meta.controller._destroy();\n delete me._metasets[datasetIndex];\n }\n }\n destroy() {\n const me = this;\n const {canvas, ctx} = me;\n let i, ilen;\n me.stop();\n animator.remove(me);\n for (i = 0, ilen = me.data.datasets.length; i < ilen; ++i) {\n me._destroyDatasetMeta(i);\n }\n me.config.clearCache();\n if (canvas) {\n me.unbindEvents();\n clearCanvas(canvas, ctx);\n me.platform.releaseContext(ctx);\n me.canvas = null;\n me.ctx = null;\n }\n me.notifyPlugins('destroy');\n delete instances[me.id];\n }\n toBase64Image(...args) {\n return this.canvas.toDataURL(...args);\n }\n bindEvents() {\n this.bindUserEvents();\n if (this.options.responsive) {\n this.bindResponsiveEvents();\n } else {\n this.attached = true;\n }\n }\n bindUserEvents() {\n const me = this;\n const listeners = me._listeners;\n const platform = me.platform;\n const _add = (type, listener) => {\n platform.addEventListener(me, type, listener);\n listeners[type] = listener;\n };\n const listener = function(e, x, y) {\n e.offsetX = x;\n e.offsetY = y;\n me._eventHandler(e);\n };\n each(me.options.events, (type) => _add(type, listener));\n }\n bindResponsiveEvents() {\n const me = this;\n if (!me._responsiveListeners) {\n me._responsiveListeners = {};\n }\n const listeners = me._responsiveListeners;\n const platform = me.platform;\n const _add = (type, listener) => {\n platform.addEventListener(me, type, listener);\n listeners[type] = listener;\n };\n const _remove = (type, listener) => {\n if (listeners[type]) {\n platform.removeEventListener(me, type, listener);\n delete listeners[type];\n }\n };\n const listener = (width, height) => {\n if (me.canvas) {\n me.resize(width, height);\n }\n };\n let detached;\n const attached = () => {\n _remove('attach', attached);\n me.attached = true;\n me.resize();\n _add('resize', listener);\n _add('detach', detached);\n };\n detached = () => {\n me.attached = false;\n _remove('resize', listener);\n _add('attach', attached);\n };\n if (platform.isAttached(me.canvas)) {\n attached();\n } else {\n detached();\n }\n }\n unbindEvents() {\n const me = this;\n each(me._listeners, (listener, type) => {\n me.platform.removeEventListener(me, type, listener);\n });\n me._listeners = {};\n each(me._responsiveListeners, (listener, type) => {\n me.platform.removeEventListener(me, type, listener);\n });\n me._responsiveListeners = undefined;\n }\n updateHoverStyle(items, mode, enabled) {\n const prefix = enabled ? 'set' : 'remove';\n let meta, item, i, ilen;\n if (mode === 'dataset') {\n meta = this.getDatasetMeta(items[0].datasetIndex);\n meta.controller['_' + prefix + 'DatasetHoverStyle']();\n }\n for (i = 0, ilen = items.length; i < ilen; ++i) {\n item = items[i];\n const controller = item && this.getDatasetMeta(item.datasetIndex).controller;\n if (controller) {\n controller[prefix + 'HoverStyle'](item.element, item.datasetIndex, item.index);\n }\n }\n }\n getActiveElements() {\n return this._active || [];\n }\n setActiveElements(activeElements) {\n const me = this;\n const lastActive = me._active || [];\n const active = activeElements.map(({datasetIndex, index}) => {\n const meta = me.getDatasetMeta(datasetIndex);\n if (!meta) {\n throw new Error('No dataset found at index ' + datasetIndex);\n }\n return {\n datasetIndex,\n element: meta.data[index],\n index,\n };\n });\n const changed = !_elementsEqual(active, lastActive);\n if (changed) {\n me._active = active;\n me._updateHoverStyles(active, lastActive);\n }\n }\n notifyPlugins(hook, args, filter) {\n return this._plugins.notify(this, hook, args, filter);\n }\n _updateHoverStyles(active, lastActive, replay) {\n const me = this;\n const hoverOptions = me.options.hover;\n const diff = (a, b) => a.filter(x => !b.some(y => x.datasetIndex === y.datasetIndex && x.index === y.index));\n const deactivated = diff(lastActive, active);\n const activated = replay ? active : diff(active, lastActive);\n if (deactivated.length) {\n me.updateHoverStyle(deactivated, hoverOptions.mode, false);\n }\n if (activated.length && hoverOptions.mode) {\n me.updateHoverStyle(activated, hoverOptions.mode, true);\n }\n }\n _eventHandler(e, replay) {\n const me = this;\n const args = {event: e, replay, cancelable: true};\n const eventFilter = (plugin) => (plugin.options.events || this.options.events).includes(e.type);\n if (me.notifyPlugins('beforeEvent', args, eventFilter) === false) {\n return;\n }\n const changed = me._handleEvent(e, replay);\n args.cancelable = false;\n me.notifyPlugins('afterEvent', args, eventFilter);\n if (changed || args.changed) {\n me.render();\n }\n return me;\n }\n _handleEvent(e, replay) {\n const me = this;\n const {_active: lastActive = [], options} = me;\n const hoverOptions = options.hover;\n const useFinalPosition = replay;\n let active = [];\n let changed = false;\n let lastEvent = null;\n if (e.type !== 'mouseout') {\n active = me.getElementsAtEventForMode(e, hoverOptions.mode, hoverOptions, useFinalPosition);\n lastEvent = e.type === 'click' ? me._lastEvent : e;\n }\n me._lastEvent = null;\n if (_isPointInArea(e, me.chartArea, me._minPadding)) {\n callback(options.onHover, [e, active, me], me);\n if (e.type === 'mouseup' || e.type === 'click' || e.type === 'contextmenu') {\n callback(options.onClick, [e, active, me], me);\n }\n }\n changed = !_elementsEqual(active, lastActive);\n if (changed || replay) {\n me._active = active;\n me._updateHoverStyles(active, lastActive, replay);\n }\n me._lastEvent = lastEvent;\n return changed;\n }\n}\nconst invalidatePlugins = () => each(Chart.instances, (chart) => chart._plugins.invalidate());\nconst enumerable = true;\nObject.defineProperties(Chart, {\n defaults: {\n enumerable,\n value: defaults\n },\n instances: {\n enumerable,\n value: instances\n },\n overrides: {\n enumerable,\n value: overrides\n },\n registry: {\n enumerable,\n value: registry\n },\n version: {\n enumerable,\n value: version\n },\n getChart: {\n enumerable,\n value: getChart\n },\n register: {\n enumerable,\n value: (...items) => {\n registry.add(...items);\n invalidatePlugins();\n }\n },\n unregister: {\n enumerable,\n value: (...items) => {\n registry.remove(...items);\n invalidatePlugins();\n }\n }\n});\n\nfunction clipArc(ctx, element, endAngle) {\n const {startAngle, pixelMargin, x, y, outerRadius, innerRadius} = element;\n let angleMargin = pixelMargin / outerRadius;\n ctx.beginPath();\n ctx.arc(x, y, outerRadius, startAngle - angleMargin, endAngle + angleMargin);\n if (innerRadius > pixelMargin) {\n angleMargin = pixelMargin / innerRadius;\n ctx.arc(x, y, innerRadius, endAngle + angleMargin, startAngle - angleMargin, true);\n } else {\n ctx.arc(x, y, pixelMargin, endAngle + HALF_PI, startAngle - HALF_PI);\n }\n ctx.closePath();\n ctx.clip();\n}\nfunction toRadiusCorners(value) {\n return _readValueToProps(value, ['outerStart', 'outerEnd', 'innerStart', 'innerEnd']);\n}\nfunction parseBorderRadius$1(arc, innerRadius, outerRadius, angleDelta) {\n const o = toRadiusCorners(arc.options.borderRadius);\n const halfThickness = (outerRadius - innerRadius) / 2;\n const innerLimit = Math.min(halfThickness, angleDelta * innerRadius / 2);\n const computeOuterLimit = (val) => {\n const outerArcLimit = (outerRadius - Math.min(halfThickness, val)) * angleDelta / 2;\n return _limitValue(val, 0, Math.min(halfThickness, outerArcLimit));\n };\n return {\n outerStart: computeOuterLimit(o.outerStart),\n outerEnd: computeOuterLimit(o.outerEnd),\n innerStart: _limitValue(o.innerStart, 0, innerLimit),\n innerEnd: _limitValue(o.innerEnd, 0, innerLimit),\n };\n}\nfunction rThetaToXY(r, theta, x, y) {\n return {\n x: x + r * Math.cos(theta),\n y: y + r * Math.sin(theta),\n };\n}\nfunction pathArc(ctx, element, offset, spacing, end) {\n const {x, y, startAngle: start, pixelMargin, innerRadius: innerR} = element;\n const outerRadius = Math.max(element.outerRadius + spacing + offset - pixelMargin, 0);\n const innerRadius = innerR > 0 ? innerR + spacing + offset + pixelMargin : 0;\n let spacingOffset = 0;\n const alpha = end - start;\n if (spacing) {\n const noSpacingInnerRadius = innerR > 0 ? innerR - spacing : 0;\n const noSpacingOuterRadius = outerRadius > 0 ? outerRadius - spacing : 0;\n const avNogSpacingRadius = (noSpacingInnerRadius + noSpacingOuterRadius) / 2;\n const adjustedAngle = avNogSpacingRadius !== 0 ? (alpha * avNogSpacingRadius) / (avNogSpacingRadius + spacing) : alpha;\n spacingOffset = (alpha - adjustedAngle) / 2;\n }\n const beta = Math.max(0.001, alpha * outerRadius - offset / PI) / outerRadius;\n const angleOffset = (alpha - beta) / 2;\n const startAngle = start + angleOffset + spacingOffset;\n const endAngle = end - angleOffset - spacingOffset;\n const {outerStart, outerEnd, innerStart, innerEnd} = parseBorderRadius$1(element, innerRadius, outerRadius, endAngle - startAngle);\n const outerStartAdjustedRadius = outerRadius - outerStart;\n const outerEndAdjustedRadius = outerRadius - outerEnd;\n const outerStartAdjustedAngle = startAngle + outerStart / outerStartAdjustedRadius;\n const outerEndAdjustedAngle = endAngle - outerEnd / outerEndAdjustedRadius;\n const innerStartAdjustedRadius = innerRadius + innerStart;\n const innerEndAdjustedRadius = innerRadius + innerEnd;\n const innerStartAdjustedAngle = startAngle + innerStart / innerStartAdjustedRadius;\n const innerEndAdjustedAngle = endAngle - innerEnd / innerEndAdjustedRadius;\n ctx.beginPath();\n ctx.arc(x, y, outerRadius, outerStartAdjustedAngle, outerEndAdjustedAngle);\n if (outerEnd > 0) {\n const pCenter = rThetaToXY(outerEndAdjustedRadius, outerEndAdjustedAngle, x, y);\n ctx.arc(pCenter.x, pCenter.y, outerEnd, outerEndAdjustedAngle, endAngle + HALF_PI);\n }\n const p4 = rThetaToXY(innerEndAdjustedRadius, endAngle, x, y);\n ctx.lineTo(p4.x, p4.y);\n if (innerEnd > 0) {\n const pCenter = rThetaToXY(innerEndAdjustedRadius, innerEndAdjustedAngle, x, y);\n ctx.arc(pCenter.x, pCenter.y, innerEnd, endAngle + HALF_PI, innerEndAdjustedAngle + Math.PI);\n }\n ctx.arc(x, y, innerRadius, endAngle - (innerEnd / innerRadius), startAngle + (innerStart / innerRadius), true);\n if (innerStart > 0) {\n const pCenter = rThetaToXY(innerStartAdjustedRadius, innerStartAdjustedAngle, x, y);\n ctx.arc(pCenter.x, pCenter.y, innerStart, innerStartAdjustedAngle + Math.PI, startAngle - HALF_PI);\n }\n const p8 = rThetaToXY(outerStartAdjustedRadius, startAngle, x, y);\n ctx.lineTo(p8.x, p8.y);\n if (outerStart > 0) {\n const pCenter = rThetaToXY(outerStartAdjustedRadius, outerStartAdjustedAngle, x, y);\n ctx.arc(pCenter.x, pCenter.y, outerStart, startAngle - HALF_PI, outerStartAdjustedAngle);\n }\n ctx.closePath();\n}\nfunction drawArc(ctx, element, offset, spacing) {\n const {fullCircles, startAngle, circumference} = element;\n let endAngle = element.endAngle;\n if (fullCircles) {\n pathArc(ctx, element, offset, spacing, startAngle + TAU);\n for (let i = 0; i < fullCircles; ++i) {\n ctx.fill();\n }\n if (!isNaN(circumference)) {\n endAngle = startAngle + circumference % TAU;\n if (circumference % TAU === 0) {\n endAngle += TAU;\n }\n }\n }\n pathArc(ctx, element, offset, spacing, endAngle);\n ctx.fill();\n return endAngle;\n}\nfunction drawFullCircleBorders(ctx, element, inner) {\n const {x, y, startAngle, pixelMargin, fullCircles} = element;\n const outerRadius = Math.max(element.outerRadius - pixelMargin, 0);\n const innerRadius = element.innerRadius + pixelMargin;\n let i;\n if (inner) {\n clipArc(ctx, element, startAngle + TAU);\n }\n ctx.beginPath();\n ctx.arc(x, y, innerRadius, startAngle + TAU, startAngle, true);\n for (i = 0; i < fullCircles; ++i) {\n ctx.stroke();\n }\n ctx.beginPath();\n ctx.arc(x, y, outerRadius, startAngle, startAngle + TAU);\n for (i = 0; i < fullCircles; ++i) {\n ctx.stroke();\n }\n}\nfunction drawBorder(ctx, element, offset, spacing, endAngle) {\n const {options} = element;\n const inner = options.borderAlign === 'inner';\n if (!options.borderWidth) {\n return;\n }\n if (inner) {\n ctx.lineWidth = options.borderWidth * 2;\n ctx.lineJoin = 'round';\n } else {\n ctx.lineWidth = options.borderWidth;\n ctx.lineJoin = 'bevel';\n }\n if (element.fullCircles) {\n drawFullCircleBorders(ctx, element, inner);\n }\n if (inner) {\n clipArc(ctx, element, endAngle);\n }\n pathArc(ctx, element, offset, spacing, endAngle);\n ctx.stroke();\n}\nclass ArcElement extends Element {\n constructor(cfg) {\n super();\n this.options = undefined;\n this.circumference = undefined;\n this.startAngle = undefined;\n this.endAngle = undefined;\n this.innerRadius = undefined;\n this.outerRadius = undefined;\n this.pixelMargin = 0;\n this.fullCircles = 0;\n if (cfg) {\n Object.assign(this, cfg);\n }\n }\n inRange(chartX, chartY, useFinalPosition) {\n const point = this.getProps(['x', 'y'], useFinalPosition);\n const {angle, distance} = getAngleFromPoint(point, {x: chartX, y: chartY});\n const {startAngle, endAngle, innerRadius, outerRadius, circumference} = this.getProps([\n 'startAngle',\n 'endAngle',\n 'innerRadius',\n 'outerRadius',\n 'circumference'\n ], useFinalPosition);\n const rAdjust = this.options.spacing / 2;\n const betweenAngles = circumference >= TAU || _angleBetween(angle, startAngle, endAngle);\n const withinRadius = (distance >= innerRadius + rAdjust && distance <= outerRadius + rAdjust);\n return (betweenAngles && withinRadius);\n }\n getCenterPoint(useFinalPosition) {\n const {x, y, startAngle, endAngle, innerRadius, outerRadius} = this.getProps([\n 'x',\n 'y',\n 'startAngle',\n 'endAngle',\n 'innerRadius',\n 'outerRadius',\n 'circumference',\n ], useFinalPosition);\n const {offset, spacing} = this.options;\n const halfAngle = (startAngle + endAngle) / 2;\n const halfRadius = (innerRadius + outerRadius + spacing + offset) / 2;\n return {\n x: x + Math.cos(halfAngle) * halfRadius,\n y: y + Math.sin(halfAngle) * halfRadius\n };\n }\n tooltipPosition(useFinalPosition) {\n return this.getCenterPoint(useFinalPosition);\n }\n draw(ctx) {\n const me = this;\n const {options, circumference} = me;\n const offset = (options.offset || 0) / 2;\n const spacing = (options.spacing || 0) / 2;\n me.pixelMargin = (options.borderAlign === 'inner') ? 0.33 : 0;\n me.fullCircles = circumference > TAU ? Math.floor(circumference / TAU) : 0;\n if (circumference === 0 || me.innerRadius < 0 || me.outerRadius < 0) {\n return;\n }\n ctx.save();\n let radiusOffset = 0;\n if (offset) {\n radiusOffset = offset / 2;\n const halfAngle = (me.startAngle + me.endAngle) / 2;\n ctx.translate(Math.cos(halfAngle) * radiusOffset, Math.sin(halfAngle) * radiusOffset);\n if (me.circumference >= PI) {\n radiusOffset = offset;\n }\n }\n ctx.fillStyle = options.backgroundColor;\n ctx.strokeStyle = options.borderColor;\n const endAngle = drawArc(ctx, me, radiusOffset, spacing);\n drawBorder(ctx, me, radiusOffset, spacing, endAngle);\n ctx.restore();\n }\n}\nArcElement.id = 'arc';\nArcElement.defaults = {\n borderAlign: 'center',\n borderColor: '#fff',\n borderRadius: 0,\n borderWidth: 2,\n offset: 0,\n spacing: 0,\n angle: undefined,\n};\nArcElement.defaultRoutes = {\n backgroundColor: 'backgroundColor'\n};\n\nfunction setStyle(ctx, options, style = options) {\n ctx.lineCap = valueOrDefault(style.borderCapStyle, options.borderCapStyle);\n ctx.setLineDash(valueOrDefault(style.borderDash, options.borderDash));\n ctx.lineDashOffset = valueOrDefault(style.borderDashOffset, options.borderDashOffset);\n ctx.lineJoin = valueOrDefault(style.borderJoinStyle, options.borderJoinStyle);\n ctx.lineWidth = valueOrDefault(style.borderWidth, options.borderWidth);\n ctx.strokeStyle = valueOrDefault(style.borderColor, options.borderColor);\n}\nfunction lineTo(ctx, previous, target) {\n ctx.lineTo(target.x, target.y);\n}\nfunction getLineMethod(options) {\n if (options.stepped) {\n return _steppedLineTo;\n }\n if (options.tension || options.cubicInterpolationMode === 'monotone') {\n return _bezierCurveTo;\n }\n return lineTo;\n}\nfunction pathVars(points, segment, params = {}) {\n const count = points.length;\n const {start: paramsStart = 0, end: paramsEnd = count - 1} = params;\n const {start: segmentStart, end: segmentEnd} = segment;\n const start = Math.max(paramsStart, segmentStart);\n const end = Math.min(paramsEnd, segmentEnd);\n const outside = paramsStart < segmentStart && paramsEnd < segmentStart || paramsStart > segmentEnd && paramsEnd > segmentEnd;\n return {\n count,\n start,\n loop: segment.loop,\n ilen: end < start && !outside ? count + end - start : end - start\n };\n}\nfunction pathSegment(ctx, line, segment, params) {\n const {points, options} = line;\n const {count, start, loop, ilen} = pathVars(points, segment, params);\n const lineMethod = getLineMethod(options);\n let {move = true, reverse} = params || {};\n let i, point, prev;\n for (i = 0; i <= ilen; ++i) {\n point = points[(start + (reverse ? ilen - i : i)) % count];\n if (point.skip) {\n continue;\n } else if (move) {\n ctx.moveTo(point.x, point.y);\n move = false;\n } else {\n lineMethod(ctx, prev, point, reverse, options.stepped);\n }\n prev = point;\n }\n if (loop) {\n point = points[(start + (reverse ? ilen : 0)) % count];\n lineMethod(ctx, prev, point, reverse, options.stepped);\n }\n return !!loop;\n}\nfunction fastPathSegment(ctx, line, segment, params) {\n const points = line.points;\n const {count, start, ilen} = pathVars(points, segment, params);\n const {move = true, reverse} = params || {};\n let avgX = 0;\n let countX = 0;\n let i, point, prevX, minY, maxY, lastY;\n const pointIndex = (index) => (start + (reverse ? ilen - index : index)) % count;\n const drawX = () => {\n if (minY !== maxY) {\n ctx.lineTo(avgX, maxY);\n ctx.lineTo(avgX, minY);\n ctx.lineTo(avgX, lastY);\n }\n };\n if (move) {\n point = points[pointIndex(0)];\n ctx.moveTo(point.x, point.y);\n }\n for (i = 0; i <= ilen; ++i) {\n point = points[pointIndex(i)];\n if (point.skip) {\n continue;\n }\n const x = point.x;\n const y = point.y;\n const truncX = x | 0;\n if (truncX === prevX) {\n if (y < minY) {\n minY = y;\n } else if (y > maxY) {\n maxY = y;\n }\n avgX = (countX * avgX + x) / ++countX;\n } else {\n drawX();\n ctx.lineTo(x, y);\n prevX = truncX;\n countX = 0;\n minY = maxY = y;\n }\n lastY = y;\n }\n drawX();\n}\nfunction _getSegmentMethod(line) {\n const opts = line.options;\n const borderDash = opts.borderDash && opts.borderDash.length;\n const useFastPath = !line._decimated && !line._loop && !opts.tension && opts.cubicInterpolationMode !== 'monotone' && !opts.stepped && !borderDash;\n return useFastPath ? fastPathSegment : pathSegment;\n}\nfunction _getInterpolationMethod(options) {\n if (options.stepped) {\n return _steppedInterpolation;\n }\n if (options.tension || options.cubicInterpolationMode === 'monotone') {\n return _bezierInterpolation;\n }\n return _pointInLine;\n}\nfunction strokePathWithCache(ctx, line, start, count) {\n let path = line._path;\n if (!path) {\n path = line._path = new Path2D();\n if (line.path(path, start, count)) {\n path.closePath();\n }\n }\n setStyle(ctx, line.options);\n ctx.stroke(path);\n}\nfunction strokePathDirect(ctx, line, start, count) {\n const {segments, options} = line;\n const segmentMethod = _getSegmentMethod(line);\n for (const segment of segments) {\n setStyle(ctx, options, segment.style);\n ctx.beginPath();\n if (segmentMethod(ctx, line, segment, {start, end: start + count - 1})) {\n ctx.closePath();\n }\n ctx.stroke();\n }\n}\nconst usePath2D = typeof Path2D === 'function';\nfunction draw(ctx, line, start, count) {\n if (usePath2D && line.segments.length === 1) {\n strokePathWithCache(ctx, line, start, count);\n } else {\n strokePathDirect(ctx, line, start, count);\n }\n}\nclass LineElement extends Element {\n constructor(cfg) {\n super();\n this.animated = true;\n this.options = undefined;\n this._loop = undefined;\n this._fullLoop = undefined;\n this._path = undefined;\n this._points = undefined;\n this._segments = undefined;\n this._decimated = false;\n this._pointsUpdated = false;\n if (cfg) {\n Object.assign(this, cfg);\n }\n }\n updateControlPoints(chartArea, indexAxis) {\n const me = this;\n const options = me.options;\n if ((options.tension || options.cubicInterpolationMode === 'monotone') && !options.stepped && !me._pointsUpdated) {\n const loop = options.spanGaps ? me._loop : me._fullLoop;\n _updateBezierControlPoints(me._points, options, chartArea, loop, indexAxis);\n me._pointsUpdated = true;\n }\n }\n set points(points) {\n const me = this;\n me._points = points;\n delete me._segments;\n delete me._path;\n me._pointsUpdated = false;\n }\n get points() {\n return this._points;\n }\n get segments() {\n return this._segments || (this._segments = _computeSegments(this, this.options.segment));\n }\n first() {\n const segments = this.segments;\n const points = this.points;\n return segments.length && points[segments[0].start];\n }\n last() {\n const segments = this.segments;\n const points = this.points;\n const count = segments.length;\n return count && points[segments[count - 1].end];\n }\n interpolate(point, property) {\n const me = this;\n const options = me.options;\n const value = point[property];\n const points = me.points;\n const segments = _boundSegments(me, {property, start: value, end: value});\n if (!segments.length) {\n return;\n }\n const result = [];\n const _interpolate = _getInterpolationMethod(options);\n let i, ilen;\n for (i = 0, ilen = segments.length; i < ilen; ++i) {\n const {start, end} = segments[i];\n const p1 = points[start];\n const p2 = points[end];\n if (p1 === p2) {\n result.push(p1);\n continue;\n }\n const t = Math.abs((value - p1[property]) / (p2[property] - p1[property]));\n const interpolated = _interpolate(p1, p2, t, options.stepped);\n interpolated[property] = point[property];\n result.push(interpolated);\n }\n return result.length === 1 ? result[0] : result;\n }\n pathSegment(ctx, segment, params) {\n const segmentMethod = _getSegmentMethod(this);\n return segmentMethod(ctx, this, segment, params);\n }\n path(ctx, start, count) {\n const me = this;\n const segments = me.segments;\n const segmentMethod = _getSegmentMethod(me);\n let loop = me._loop;\n start = start || 0;\n count = count || (me.points.length - start);\n for (const segment of segments) {\n loop &= segmentMethod(ctx, me, segment, {start, end: start + count - 1});\n }\n return !!loop;\n }\n draw(ctx, chartArea, start, count) {\n const me = this;\n const options = me.options || {};\n const points = me.points || [];\n if (!points.length || !options.borderWidth) {\n return;\n }\n ctx.save();\n draw(ctx, me, start, count);\n ctx.restore();\n if (me.animated) {\n me._pointsUpdated = false;\n me._path = undefined;\n }\n }\n}\nLineElement.id = 'line';\nLineElement.defaults = {\n borderCapStyle: 'butt',\n borderDash: [],\n borderDashOffset: 0,\n borderJoinStyle: 'miter',\n borderWidth: 3,\n capBezierPoints: true,\n cubicInterpolationMode: 'default',\n fill: false,\n spanGaps: false,\n stepped: false,\n tension: 0,\n};\nLineElement.defaultRoutes = {\n backgroundColor: 'backgroundColor',\n borderColor: 'borderColor'\n};\nLineElement.descriptors = {\n _scriptable: true,\n _indexable: (name) => name !== 'borderDash' && name !== 'fill',\n};\n\nfunction inRange$1(el, pos, axis, useFinalPosition) {\n const options = el.options;\n const {[axis]: value} = el.getProps([axis], useFinalPosition);\n return (Math.abs(pos - value) < options.radius + options.hitRadius);\n}\nclass PointElement extends Element {\n constructor(cfg) {\n super();\n this.options = undefined;\n this.parsed = undefined;\n this.skip = undefined;\n this.stop = undefined;\n if (cfg) {\n Object.assign(this, cfg);\n }\n }\n inRange(mouseX, mouseY, useFinalPosition) {\n const options = this.options;\n const {x, y} = this.getProps(['x', 'y'], useFinalPosition);\n return ((Math.pow(mouseX - x, 2) + Math.pow(mouseY - y, 2)) < Math.pow(options.hitRadius + options.radius, 2));\n }\n inXRange(mouseX, useFinalPosition) {\n return inRange$1(this, mouseX, 'x', useFinalPosition);\n }\n inYRange(mouseY, useFinalPosition) {\n return inRange$1(this, mouseY, 'y', useFinalPosition);\n }\n getCenterPoint(useFinalPosition) {\n const {x, y} = this.getProps(['x', 'y'], useFinalPosition);\n return {x, y};\n }\n size(options) {\n options = options || this.options || {};\n let radius = options.radius || 0;\n radius = Math.max(radius, radius && options.hoverRadius || 0);\n const borderWidth = radius && options.borderWidth || 0;\n return (radius + borderWidth) * 2;\n }\n draw(ctx) {\n const me = this;\n const options = me.options;\n if (me.skip || options.radius < 0.1) {\n return;\n }\n ctx.strokeStyle = options.borderColor;\n ctx.lineWidth = options.borderWidth;\n ctx.fillStyle = options.backgroundColor;\n drawPoint(ctx, options, me.x, me.y);\n }\n getRange() {\n const options = this.options || {};\n return options.radius + options.hitRadius;\n }\n}\nPointElement.id = 'point';\nPointElement.defaults = {\n borderWidth: 1,\n hitRadius: 1,\n hoverBorderWidth: 1,\n hoverRadius: 4,\n pointStyle: 'circle',\n radius: 3,\n rotation: 0\n};\nPointElement.defaultRoutes = {\n backgroundColor: 'backgroundColor',\n borderColor: 'borderColor'\n};\n\nfunction getBarBounds(bar, useFinalPosition) {\n const {x, y, base, width, height} = bar.getProps(['x', 'y', 'base', 'width', 'height'], useFinalPosition);\n let left, right, top, bottom, half;\n if (bar.horizontal) {\n half = height / 2;\n left = Math.min(x, base);\n right = Math.max(x, base);\n top = y - half;\n bottom = y + half;\n } else {\n half = width / 2;\n left = x - half;\n right = x + half;\n top = Math.min(y, base);\n bottom = Math.max(y, base);\n }\n return {left, top, right, bottom};\n}\nfunction parseBorderSkipped(bar) {\n let edge = bar.options.borderSkipped;\n const res = {};\n if (!edge) {\n return res;\n }\n edge = bar.horizontal\n ? parseEdge(edge, 'left', 'right', bar.base > bar.x)\n : parseEdge(edge, 'bottom', 'top', bar.base < bar.y);\n res[edge] = true;\n return res;\n}\nfunction parseEdge(edge, a, b, reverse) {\n if (reverse) {\n edge = swap(edge, a, b);\n edge = startEnd(edge, b, a);\n } else {\n edge = startEnd(edge, a, b);\n }\n return edge;\n}\nfunction swap(orig, v1, v2) {\n return orig === v1 ? v2 : orig === v2 ? v1 : orig;\n}\nfunction startEnd(v, start, end) {\n return v === 'start' ? start : v === 'end' ? end : v;\n}\nfunction skipOrLimit(skip, value, min, max) {\n return skip ? 0 : Math.max(Math.min(value, max), min);\n}\nfunction parseBorderWidth(bar, maxW, maxH) {\n const value = bar.options.borderWidth;\n const skip = parseBorderSkipped(bar);\n const o = toTRBL(value);\n return {\n t: skipOrLimit(skip.top, o.top, 0, maxH),\n r: skipOrLimit(skip.right, o.right, 0, maxW),\n b: skipOrLimit(skip.bottom, o.bottom, 0, maxH),\n l: skipOrLimit(skip.left, o.left, 0, maxW)\n };\n}\nfunction parseBorderRadius(bar, maxW, maxH) {\n const {enableBorderRadius} = bar.getProps(['enableBorderRadius']);\n const value = bar.options.borderRadius;\n const o = toTRBLCorners(value);\n const maxR = Math.min(maxW, maxH);\n const skip = parseBorderSkipped(bar);\n const enableBorder = enableBorderRadius || isObject(value);\n return {\n topLeft: skipOrLimit(!enableBorder || skip.top || skip.left, o.topLeft, 0, maxR),\n topRight: skipOrLimit(!enableBorder || skip.top || skip.right, o.topRight, 0, maxR),\n bottomLeft: skipOrLimit(!enableBorder || skip.bottom || skip.left, o.bottomLeft, 0, maxR),\n bottomRight: skipOrLimit(!enableBorder || skip.bottom || skip.right, o.bottomRight, 0, maxR)\n };\n}\nfunction boundingRects(bar) {\n const bounds = getBarBounds(bar);\n const width = bounds.right - bounds.left;\n const height = bounds.bottom - bounds.top;\n const border = parseBorderWidth(bar, width / 2, height / 2);\n const radius = parseBorderRadius(bar, width / 2, height / 2);\n return {\n outer: {\n x: bounds.left,\n y: bounds.top,\n w: width,\n h: height,\n radius\n },\n inner: {\n x: bounds.left + border.l,\n y: bounds.top + border.t,\n w: width - border.l - border.r,\n h: height - border.t - border.b,\n radius: {\n topLeft: Math.max(0, radius.topLeft - Math.max(border.t, border.l)),\n topRight: Math.max(0, radius.topRight - Math.max(border.t, border.r)),\n bottomLeft: Math.max(0, radius.bottomLeft - Math.max(border.b, border.l)),\n bottomRight: Math.max(0, radius.bottomRight - Math.max(border.b, border.r)),\n }\n }\n };\n}\nfunction inRange(bar, x, y, useFinalPosition) {\n const skipX = x === null;\n const skipY = y === null;\n const skipBoth = skipX && skipY;\n const bounds = bar && !skipBoth && getBarBounds(bar, useFinalPosition);\n return bounds\n\t\t&& (skipX || x >= bounds.left && x <= bounds.right)\n\t\t&& (skipY || y >= bounds.top && y <= bounds.bottom);\n}\nfunction hasRadius(radius) {\n return radius.topLeft || radius.topRight || radius.bottomLeft || radius.bottomRight;\n}\nfunction addNormalRectPath(ctx, rect) {\n ctx.rect(rect.x, rect.y, rect.w, rect.h);\n}\nclass BarElement extends Element {\n constructor(cfg) {\n super();\n this.options = undefined;\n this.horizontal = undefined;\n this.base = undefined;\n this.width = undefined;\n this.height = undefined;\n if (cfg) {\n Object.assign(this, cfg);\n }\n }\n draw(ctx) {\n const options = this.options;\n const {inner, outer} = boundingRects(this);\n const addRectPath = hasRadius(outer.radius) ? addRoundedRectPath : addNormalRectPath;\n ctx.save();\n if (outer.w !== inner.w || outer.h !== inner.h) {\n ctx.beginPath();\n addRectPath(ctx, outer);\n ctx.clip();\n addRectPath(ctx, inner);\n ctx.fillStyle = options.borderColor;\n ctx.fill('evenodd');\n }\n ctx.beginPath();\n addRectPath(ctx, inner);\n ctx.fillStyle = options.backgroundColor;\n ctx.fill();\n ctx.restore();\n }\n inRange(mouseX, mouseY, useFinalPosition) {\n return inRange(this, mouseX, mouseY, useFinalPosition);\n }\n inXRange(mouseX, useFinalPosition) {\n return inRange(this, mouseX, null, useFinalPosition);\n }\n inYRange(mouseY, useFinalPosition) {\n return inRange(this, null, mouseY, useFinalPosition);\n }\n getCenterPoint(useFinalPosition) {\n const {x, y, base, horizontal} = this.getProps(['x', 'y', 'base', 'horizontal'], useFinalPosition);\n return {\n x: horizontal ? (x + base) / 2 : x,\n y: horizontal ? y : (y + base) / 2\n };\n }\n getRange(axis) {\n return axis === 'x' ? this.width / 2 : this.height / 2;\n }\n}\nBarElement.id = 'bar';\nBarElement.defaults = {\n borderSkipped: 'start',\n borderWidth: 0,\n borderRadius: 0,\n enableBorderRadius: true,\n pointStyle: undefined\n};\nBarElement.defaultRoutes = {\n backgroundColor: 'backgroundColor',\n borderColor: 'borderColor'\n};\n\nvar elements = /*#__PURE__*/Object.freeze({\n__proto__: null,\nArcElement: ArcElement,\nLineElement: LineElement,\nPointElement: PointElement,\nBarElement: BarElement\n});\n\nfunction lttbDecimation(data, start, count, availableWidth, options) {\n const samples = options.samples || availableWidth;\n if (samples >= count) {\n return data.slice(start, start + count);\n }\n const decimated = [];\n const bucketWidth = (count - 2) / (samples - 2);\n let sampledIndex = 0;\n const endIndex = start + count - 1;\n let a = start;\n let i, maxAreaPoint, maxArea, area, nextA;\n decimated[sampledIndex++] = data[a];\n for (i = 0; i < samples - 2; i++) {\n let avgX = 0;\n let avgY = 0;\n let j;\n const avgRangeStart = Math.floor((i + 1) * bucketWidth) + 1 + start;\n const avgRangeEnd = Math.min(Math.floor((i + 2) * bucketWidth) + 1, count) + start;\n const avgRangeLength = avgRangeEnd - avgRangeStart;\n for (j = avgRangeStart; j < avgRangeEnd; j++) {\n avgX += data[j].x;\n avgY += data[j].y;\n }\n avgX /= avgRangeLength;\n avgY /= avgRangeLength;\n const rangeOffs = Math.floor(i * bucketWidth) + 1 + start;\n const rangeTo = Math.floor((i + 1) * bucketWidth) + 1 + start;\n const {x: pointAx, y: pointAy} = data[a];\n maxArea = area = -1;\n for (j = rangeOffs; j < rangeTo; j++) {\n area = 0.5 * Math.abs(\n (pointAx - avgX) * (data[j].y - pointAy) -\n (pointAx - data[j].x) * (avgY - pointAy)\n );\n if (area > maxArea) {\n maxArea = area;\n maxAreaPoint = data[j];\n nextA = j;\n }\n }\n decimated[sampledIndex++] = maxAreaPoint;\n a = nextA;\n }\n decimated[sampledIndex++] = data[endIndex];\n return decimated;\n}\nfunction minMaxDecimation(data, start, count, availableWidth) {\n let avgX = 0;\n let countX = 0;\n let i, point, x, y, prevX, minIndex, maxIndex, startIndex, minY, maxY;\n const decimated = [];\n const endIndex = start + count - 1;\n const xMin = data[start].x;\n const xMax = data[endIndex].x;\n const dx = xMax - xMin;\n for (i = start; i < start + count; ++i) {\n point = data[i];\n x = (point.x - xMin) / dx * availableWidth;\n y = point.y;\n const truncX = x | 0;\n if (truncX === prevX) {\n if (y < minY) {\n minY = y;\n minIndex = i;\n } else if (y > maxY) {\n maxY = y;\n maxIndex = i;\n }\n avgX = (countX * avgX + point.x) / ++countX;\n } else {\n const lastIndex = i - 1;\n if (!isNullOrUndef(minIndex) && !isNullOrUndef(maxIndex)) {\n const intermediateIndex1 = Math.min(minIndex, maxIndex);\n const intermediateIndex2 = Math.max(minIndex, maxIndex);\n if (intermediateIndex1 !== startIndex && intermediateIndex1 !== lastIndex) {\n decimated.push({\n ...data[intermediateIndex1],\n x: avgX,\n });\n }\n if (intermediateIndex2 !== startIndex && intermediateIndex2 !== lastIndex) {\n decimated.push({\n ...data[intermediateIndex2],\n x: avgX\n });\n }\n }\n if (i > 0 && lastIndex !== startIndex) {\n decimated.push(data[lastIndex]);\n }\n decimated.push(point);\n prevX = truncX;\n countX = 0;\n minY = maxY = y;\n minIndex = maxIndex = startIndex = i;\n }\n }\n return decimated;\n}\nfunction cleanDecimatedDataset(dataset) {\n if (dataset._decimated) {\n const data = dataset._data;\n delete dataset._decimated;\n delete dataset._data;\n Object.defineProperty(dataset, 'data', {value: data});\n }\n}\nfunction cleanDecimatedData(chart) {\n chart.data.datasets.forEach((dataset) => {\n cleanDecimatedDataset(dataset);\n });\n}\nfunction getStartAndCountOfVisiblePointsSimplified(meta, points) {\n const pointCount = points.length;\n let start = 0;\n let count;\n const {iScale} = meta;\n const {min, max, minDefined, maxDefined} = iScale.getUserBounds();\n if (minDefined) {\n start = _limitValue(_lookupByKey(points, iScale.axis, min).lo, 0, pointCount - 1);\n }\n if (maxDefined) {\n count = _limitValue(_lookupByKey(points, iScale.axis, max).hi + 1, start, pointCount) - start;\n } else {\n count = pointCount - start;\n }\n return {start, count};\n}\nvar plugin_decimation = {\n id: 'decimation',\n defaults: {\n algorithm: 'min-max',\n enabled: false,\n },\n beforeElementsUpdate: (chart, args, options) => {\n if (!options.enabled) {\n cleanDecimatedData(chart);\n return;\n }\n const availableWidth = chart.width;\n chart.data.datasets.forEach((dataset, datasetIndex) => {\n const {_data, indexAxis} = dataset;\n const meta = chart.getDatasetMeta(datasetIndex);\n const data = _data || dataset.data;\n if (resolve([indexAxis, chart.options.indexAxis]) === 'y') {\n return;\n }\n if (meta.type !== 'line') {\n return;\n }\n const xAxis = chart.scales[meta.xAxisID];\n if (xAxis.type !== 'linear' && xAxis.type !== 'time') {\n return;\n }\n if (chart.options.parsing) {\n return;\n }\n let {start, count} = getStartAndCountOfVisiblePointsSimplified(meta, data);\n if (count <= 4 * availableWidth) {\n cleanDecimatedDataset(dataset);\n return;\n }\n if (isNullOrUndef(_data)) {\n dataset._data = data;\n delete dataset.data;\n Object.defineProperty(dataset, 'data', {\n configurable: true,\n enumerable: true,\n get: function() {\n return this._decimated;\n },\n set: function(d) {\n this._data = d;\n }\n });\n }\n let decimated;\n switch (options.algorithm) {\n case 'lttb':\n decimated = lttbDecimation(data, start, count, availableWidth, options);\n break;\n case 'min-max':\n decimated = minMaxDecimation(data, start, count, availableWidth);\n break;\n default:\n throw new Error(`Unsupported decimation algorithm '${options.algorithm}'`);\n }\n dataset._decimated = decimated;\n });\n },\n destroy(chart) {\n cleanDecimatedData(chart);\n }\n};\n\nfunction getLineByIndex(chart, index) {\n const meta = chart.getDatasetMeta(index);\n const visible = meta && chart.isDatasetVisible(index);\n return visible ? meta.dataset : null;\n}\nfunction parseFillOption(line) {\n const options = line.options;\n const fillOption = options.fill;\n let fill = valueOrDefault(fillOption && fillOption.target, fillOption);\n if (fill === undefined) {\n fill = !!options.backgroundColor;\n }\n if (fill === false || fill === null) {\n return false;\n }\n if (fill === true) {\n return 'origin';\n }\n return fill;\n}\nfunction decodeFill(line, index, count) {\n const fill = parseFillOption(line);\n if (isObject(fill)) {\n return isNaN(fill.value) ? false : fill;\n }\n let target = parseFloat(fill);\n if (isNumberFinite(target) && Math.floor(target) === target) {\n if (fill[0] === '-' || fill[0] === '+') {\n target = index + target;\n }\n if (target === index || target < 0 || target >= count) {\n return false;\n }\n return target;\n }\n return ['origin', 'start', 'end', 'stack'].indexOf(fill) >= 0 && fill;\n}\nfunction computeLinearBoundary(source) {\n const {scale = {}, fill} = source;\n let target = null;\n let horizontal;\n if (fill === 'start') {\n target = scale.bottom;\n } else if (fill === 'end') {\n target = scale.top;\n } else if (isObject(fill)) {\n target = scale.getPixelForValue(fill.value);\n } else if (scale.getBasePixel) {\n target = scale.getBasePixel();\n }\n if (isNumberFinite(target)) {\n horizontal = scale.isHorizontal();\n return {\n x: horizontal ? target : null,\n y: horizontal ? null : target\n };\n }\n return null;\n}\nclass simpleArc {\n constructor(opts) {\n this.x = opts.x;\n this.y = opts.y;\n this.radius = opts.radius;\n }\n pathSegment(ctx, bounds, opts) {\n const {x, y, radius} = this;\n bounds = bounds || {start: 0, end: TAU};\n ctx.arc(x, y, radius, bounds.end, bounds.start, true);\n return !opts.bounds;\n }\n interpolate(point) {\n const {x, y, radius} = this;\n const angle = point.angle;\n return {\n x: x + Math.cos(angle) * radius,\n y: y + Math.sin(angle) * radius,\n angle\n };\n }\n}\nfunction computeCircularBoundary(source) {\n const {scale, fill} = source;\n const options = scale.options;\n const length = scale.getLabels().length;\n const target = [];\n const start = options.reverse ? scale.max : scale.min;\n const end = options.reverse ? scale.min : scale.max;\n let i, center, value;\n if (fill === 'start') {\n value = start;\n } else if (fill === 'end') {\n value = end;\n } else if (isObject(fill)) {\n value = fill.value;\n } else {\n value = scale.getBaseValue();\n }\n if (options.grid.circular) {\n center = scale.getPointPositionForValue(0, start);\n return new simpleArc({\n x: center.x,\n y: center.y,\n radius: scale.getDistanceFromCenterForValue(value)\n });\n }\n for (i = 0; i < length; ++i) {\n target.push(scale.getPointPositionForValue(i, value));\n }\n return target;\n}\nfunction computeBoundary(source) {\n const scale = source.scale || {};\n if (scale.getPointPositionForValue) {\n return computeCircularBoundary(source);\n }\n return computeLinearBoundary(source);\n}\nfunction findSegmentEnd(start, end, points) {\n for (;end > start; end--) {\n const point = points[end];\n if (!isNaN(point.x) && !isNaN(point.y)) {\n break;\n }\n }\n return end;\n}\nfunction pointsFromSegments(boundary, line) {\n const {x = null, y = null} = boundary || {};\n const linePoints = line.points;\n const points = [];\n line.segments.forEach(({start, end}) => {\n end = findSegmentEnd(start, end, linePoints);\n const first = linePoints[start];\n const last = linePoints[end];\n if (y !== null) {\n points.push({x: first.x, y});\n points.push({x: last.x, y});\n } else if (x !== null) {\n points.push({x, y: first.y});\n points.push({x, y: last.y});\n }\n });\n return points;\n}\nfunction buildStackLine(source) {\n const {chart, scale, index, line} = source;\n const points = [];\n const segments = line.segments;\n const sourcePoints = line.points;\n const linesBelow = getLinesBelow(chart, index);\n linesBelow.push(createBoundaryLine({x: null, y: scale.bottom}, line));\n for (let i = 0; i < segments.length; i++) {\n const segment = segments[i];\n for (let j = segment.start; j <= segment.end; j++) {\n addPointsBelow(points, sourcePoints[j], linesBelow);\n }\n }\n return new LineElement({points, options: {}});\n}\nconst isLineAndNotInHideAnimation = (meta) => meta.type === 'line' && !meta.hidden;\nfunction getLinesBelow(chart, index) {\n const below = [];\n const metas = chart.getSortedVisibleDatasetMetas();\n for (let i = 0; i < metas.length; i++) {\n const meta = metas[i];\n if (meta.index === index) {\n break;\n }\n if (isLineAndNotInHideAnimation(meta)) {\n below.unshift(meta.dataset);\n }\n }\n return below;\n}\nfunction addPointsBelow(points, sourcePoint, linesBelow) {\n const postponed = [];\n for (let j = 0; j < linesBelow.length; j++) {\n const line = linesBelow[j];\n const {first, last, point} = findPoint(line, sourcePoint, 'x');\n if (!point || (first && last)) {\n continue;\n }\n if (first) {\n postponed.unshift(point);\n } else {\n points.push(point);\n if (!last) {\n break;\n }\n }\n }\n points.push(...postponed);\n}\nfunction findPoint(line, sourcePoint, property) {\n const point = line.interpolate(sourcePoint, property);\n if (!point) {\n return {};\n }\n const pointValue = point[property];\n const segments = line.segments;\n const linePoints = line.points;\n let first = false;\n let last = false;\n for (let i = 0; i < segments.length; i++) {\n const segment = segments[i];\n const firstValue = linePoints[segment.start][property];\n const lastValue = linePoints[segment.end][property];\n if (pointValue >= firstValue && pointValue <= lastValue) {\n first = pointValue === firstValue;\n last = pointValue === lastValue;\n break;\n }\n }\n return {first, last, point};\n}\nfunction getTarget(source) {\n const {chart, fill, line} = source;\n if (isNumberFinite(fill)) {\n return getLineByIndex(chart, fill);\n }\n if (fill === 'stack') {\n return buildStackLine(source);\n }\n const boundary = computeBoundary(source);\n if (boundary instanceof simpleArc) {\n return boundary;\n }\n return createBoundaryLine(boundary, line);\n}\nfunction createBoundaryLine(boundary, line) {\n let points = [];\n let _loop = false;\n if (isArray(boundary)) {\n _loop = true;\n points = boundary;\n } else {\n points = pointsFromSegments(boundary, line);\n }\n return points.length ? new LineElement({\n points,\n options: {tension: 0},\n _loop,\n _fullLoop: _loop\n }) : null;\n}\nfunction resolveTarget(sources, index, propagate) {\n const source = sources[index];\n let fill = source.fill;\n const visited = [index];\n let target;\n if (!propagate) {\n return fill;\n }\n while (fill !== false && visited.indexOf(fill) === -1) {\n if (!isNumberFinite(fill)) {\n return fill;\n }\n target = sources[fill];\n if (!target) {\n return false;\n }\n if (target.visible) {\n return fill;\n }\n visited.push(fill);\n fill = target.fill;\n }\n return false;\n}\nfunction _clip(ctx, target, clipY) {\n ctx.beginPath();\n target.path(ctx);\n ctx.lineTo(target.last().x, clipY);\n ctx.lineTo(target.first().x, clipY);\n ctx.closePath();\n ctx.clip();\n}\nfunction getBounds(property, first, last, loop) {\n if (loop) {\n return;\n }\n let start = first[property];\n let end = last[property];\n if (property === 'angle') {\n start = _normalizeAngle(start);\n end = _normalizeAngle(end);\n }\n return {property, start, end};\n}\nfunction _getEdge(a, b, prop, fn) {\n if (a && b) {\n return fn(a[prop], b[prop]);\n }\n return a ? a[prop] : b ? b[prop] : 0;\n}\nfunction _segments(line, target, property) {\n const segments = line.segments;\n const points = line.points;\n const tpoints = target.points;\n const parts = [];\n for (const segment of segments) {\n let {start, end} = segment;\n end = findSegmentEnd(start, end, points);\n const bounds = getBounds(property, points[start], points[end], segment.loop);\n if (!target.segments) {\n parts.push({\n source: segment,\n target: bounds,\n start: points[start],\n end: points[end]\n });\n continue;\n }\n const targetSegments = _boundSegments(target, bounds);\n for (const tgt of targetSegments) {\n const subBounds = getBounds(property, tpoints[tgt.start], tpoints[tgt.end], tgt.loop);\n const fillSources = _boundSegment(segment, points, subBounds);\n for (const fillSource of fillSources) {\n parts.push({\n source: fillSource,\n target: tgt,\n start: {\n [property]: _getEdge(bounds, subBounds, 'start', Math.max)\n },\n end: {\n [property]: _getEdge(bounds, subBounds, 'end', Math.min)\n }\n });\n }\n }\n }\n return parts;\n}\nfunction clipBounds(ctx, scale, bounds) {\n const {top, bottom} = scale.chart.chartArea;\n const {property, start, end} = bounds || {};\n if (property === 'x') {\n ctx.beginPath();\n ctx.rect(start, top, end - start, bottom - top);\n ctx.clip();\n }\n}\nfunction interpolatedLineTo(ctx, target, point, property) {\n const interpolatedPoint = target.interpolate(point, property);\n if (interpolatedPoint) {\n ctx.lineTo(interpolatedPoint.x, interpolatedPoint.y);\n }\n}\nfunction _fill(ctx, cfg) {\n const {line, target, property, color, scale} = cfg;\n const segments = _segments(line, target, property);\n for (const {source: src, target: tgt, start, end} of segments) {\n const {style: {backgroundColor = color} = {}} = src;\n ctx.save();\n ctx.fillStyle = backgroundColor;\n clipBounds(ctx, scale, getBounds(property, start, end));\n ctx.beginPath();\n const lineLoop = !!line.pathSegment(ctx, src);\n if (lineLoop) {\n ctx.closePath();\n } else {\n interpolatedLineTo(ctx, target, end, property);\n }\n const targetLoop = !!target.pathSegment(ctx, tgt, {move: lineLoop, reverse: true});\n const loop = lineLoop && targetLoop;\n if (!loop) {\n interpolatedLineTo(ctx, target, start, property);\n }\n ctx.closePath();\n ctx.fill(loop ? 'evenodd' : 'nonzero');\n ctx.restore();\n }\n}\nfunction doFill(ctx, cfg) {\n const {line, target, above, below, area, scale} = cfg;\n const property = line._loop ? 'angle' : cfg.axis;\n ctx.save();\n if (property === 'x' && below !== above) {\n _clip(ctx, target, area.top);\n _fill(ctx, {line, target, color: above, scale, property});\n ctx.restore();\n ctx.save();\n _clip(ctx, target, area.bottom);\n }\n _fill(ctx, {line, target, color: below, scale, property});\n ctx.restore();\n}\nfunction drawfill(ctx, source, area) {\n const target = getTarget(source);\n const {line, scale, axis} = source;\n const lineOpts = line.options;\n const fillOption = lineOpts.fill;\n const color = lineOpts.backgroundColor;\n const {above = color, below = color} = fillOption || {};\n if (target && line.points.length) {\n clipArea(ctx, area);\n doFill(ctx, {line, target, above, below, area, scale, axis});\n unclipArea(ctx);\n }\n}\nvar plugin_filler = {\n id: 'filler',\n afterDatasetsUpdate(chart, _args, options) {\n const count = (chart.data.datasets || []).length;\n const sources = [];\n let meta, i, line, source;\n for (i = 0; i < count; ++i) {\n meta = chart.getDatasetMeta(i);\n line = meta.dataset;\n source = null;\n if (line && line.options && line instanceof LineElement) {\n source = {\n visible: chart.isDatasetVisible(i),\n index: i,\n fill: decodeFill(line, i, count),\n chart,\n axis: meta.controller.options.indexAxis,\n scale: meta.vScale,\n line,\n };\n }\n meta.$filler = source;\n sources.push(source);\n }\n for (i = 0; i < count; ++i) {\n source = sources[i];\n if (!source || source.fill === false) {\n continue;\n }\n source.fill = resolveTarget(sources, i, options.propagate);\n }\n },\n beforeDraw(chart, _args, options) {\n const draw = options.drawTime === 'beforeDraw';\n const metasets = chart.getSortedVisibleDatasetMetas();\n const area = chart.chartArea;\n for (let i = metasets.length - 1; i >= 0; --i) {\n const source = metasets[i].$filler;\n if (!source) {\n continue;\n }\n source.line.updateControlPoints(area, source.axis);\n if (draw) {\n drawfill(chart.ctx, source, area);\n }\n }\n },\n beforeDatasetsDraw(chart, _args, options) {\n if (options.drawTime !== 'beforeDatasetsDraw') {\n return;\n }\n const metasets = chart.getSortedVisibleDatasetMetas();\n for (let i = metasets.length - 1; i >= 0; --i) {\n const source = metasets[i].$filler;\n if (source) {\n drawfill(chart.ctx, source, chart.chartArea);\n }\n }\n },\n beforeDatasetDraw(chart, args, options) {\n const source = args.meta.$filler;\n if (!source || source.fill === false || options.drawTime !== 'beforeDatasetDraw') {\n return;\n }\n drawfill(chart.ctx, source, chart.chartArea);\n },\n defaults: {\n propagate: true,\n drawTime: 'beforeDatasetDraw'\n }\n};\n\nconst getBoxSize = (labelOpts, fontSize) => {\n let {boxHeight = fontSize, boxWidth = fontSize} = labelOpts;\n if (labelOpts.usePointStyle) {\n boxHeight = Math.min(boxHeight, fontSize);\n boxWidth = Math.min(boxWidth, fontSize);\n }\n return {\n boxWidth,\n boxHeight,\n itemHeight: Math.max(fontSize, boxHeight)\n };\n};\nconst itemsEqual = (a, b) => a !== null && b !== null && a.datasetIndex === b.datasetIndex && a.index === b.index;\nclass Legend extends Element {\n constructor(config) {\n super();\n this._added = false;\n this.legendHitBoxes = [];\n this._hoveredItem = null;\n this.doughnutMode = false;\n this.chart = config.chart;\n this.options = config.options;\n this.ctx = config.ctx;\n this.legendItems = undefined;\n this.columnSizes = undefined;\n this.lineWidths = undefined;\n this.maxHeight = undefined;\n this.maxWidth = undefined;\n this.top = undefined;\n this.bottom = undefined;\n this.left = undefined;\n this.right = undefined;\n this.height = undefined;\n this.width = undefined;\n this._margins = undefined;\n this.position = undefined;\n this.weight = undefined;\n this.fullSize = undefined;\n }\n update(maxWidth, maxHeight, margins) {\n const me = this;\n me.maxWidth = maxWidth;\n me.maxHeight = maxHeight;\n me._margins = margins;\n me.setDimensions();\n me.buildLabels();\n me.fit();\n }\n setDimensions() {\n const me = this;\n if (me.isHorizontal()) {\n me.width = me.maxWidth;\n me.left = me._margins.left;\n me.right = me.width;\n } else {\n me.height = me.maxHeight;\n me.top = me._margins.top;\n me.bottom = me.height;\n }\n }\n buildLabels() {\n const me = this;\n const labelOpts = me.options.labels || {};\n let legendItems = callback(labelOpts.generateLabels, [me.chart], me) || [];\n if (labelOpts.filter) {\n legendItems = legendItems.filter((item) => labelOpts.filter(item, me.chart.data));\n }\n if (labelOpts.sort) {\n legendItems = legendItems.sort((a, b) => labelOpts.sort(a, b, me.chart.data));\n }\n if (me.options.reverse) {\n legendItems.reverse();\n }\n me.legendItems = legendItems;\n }\n fit() {\n const me = this;\n const {options, ctx} = me;\n if (!options.display) {\n me.width = me.height = 0;\n return;\n }\n const labelOpts = options.labels;\n const labelFont = toFont(labelOpts.font);\n const fontSize = labelFont.size;\n const titleHeight = me._computeTitleHeight();\n const {boxWidth, itemHeight} = getBoxSize(labelOpts, fontSize);\n let width, height;\n ctx.font = labelFont.string;\n if (me.isHorizontal()) {\n width = me.maxWidth;\n height = me._fitRows(titleHeight, fontSize, boxWidth, itemHeight) + 10;\n } else {\n height = me.maxHeight;\n width = me._fitCols(titleHeight, fontSize, boxWidth, itemHeight) + 10;\n }\n me.width = Math.min(width, options.maxWidth || me.maxWidth);\n me.height = Math.min(height, options.maxHeight || me.maxHeight);\n }\n _fitRows(titleHeight, fontSize, boxWidth, itemHeight) {\n const me = this;\n const {ctx, maxWidth, options: {labels: {padding}}} = me;\n const hitboxes = me.legendHitBoxes = [];\n const lineWidths = me.lineWidths = [0];\n const lineHeight = itemHeight + padding;\n let totalHeight = titleHeight;\n ctx.textAlign = 'left';\n ctx.textBaseline = 'middle';\n let row = -1;\n let top = -lineHeight;\n me.legendItems.forEach((legendItem, i) => {\n const itemWidth = boxWidth + (fontSize / 2) + ctx.measureText(legendItem.text).width;\n if (i === 0 || lineWidths[lineWidths.length - 1] + itemWidth + 2 * padding > maxWidth) {\n totalHeight += lineHeight;\n lineWidths[lineWidths.length - (i > 0 ? 0 : 1)] = 0;\n top += lineHeight;\n row++;\n }\n hitboxes[i] = {left: 0, top, row, width: itemWidth, height: itemHeight};\n lineWidths[lineWidths.length - 1] += itemWidth + padding;\n });\n return totalHeight;\n }\n _fitCols(titleHeight, fontSize, boxWidth, itemHeight) {\n const me = this;\n const {ctx, maxHeight, options: {labels: {padding}}} = me;\n const hitboxes = me.legendHitBoxes = [];\n const columnSizes = me.columnSizes = [];\n const heightLimit = maxHeight - titleHeight;\n let totalWidth = padding;\n let currentColWidth = 0;\n let currentColHeight = 0;\n let left = 0;\n let col = 0;\n me.legendItems.forEach((legendItem, i) => {\n const itemWidth = boxWidth + (fontSize / 2) + ctx.measureText(legendItem.text).width;\n if (i > 0 && currentColHeight + itemHeight + 2 * padding > heightLimit) {\n totalWidth += currentColWidth + padding;\n columnSizes.push({width: currentColWidth, height: currentColHeight});\n left += currentColWidth + padding;\n col++;\n currentColWidth = currentColHeight = 0;\n }\n hitboxes[i] = {left, top: currentColHeight, col, width: itemWidth, height: itemHeight};\n currentColWidth = Math.max(currentColWidth, itemWidth);\n currentColHeight += itemHeight + padding;\n });\n totalWidth += currentColWidth;\n columnSizes.push({width: currentColWidth, height: currentColHeight});\n return totalWidth;\n }\n adjustHitBoxes() {\n const me = this;\n if (!me.options.display) {\n return;\n }\n const titleHeight = me._computeTitleHeight();\n const {legendHitBoxes: hitboxes, options: {align, labels: {padding}, rtl}} = me;\n if (this.isHorizontal()) {\n let row = 0;\n let left = _alignStartEnd(align, me.left + padding, me.right - me.lineWidths[row]);\n for (const hitbox of hitboxes) {\n if (row !== hitbox.row) {\n row = hitbox.row;\n left = _alignStartEnd(align, me.left + padding, me.right - me.lineWidths[row]);\n }\n hitbox.top += me.top + titleHeight + padding;\n hitbox.left = left;\n left += hitbox.width + padding;\n }\n if (rtl) {\n const boxMap = hitboxes.reduce((map, box) => {\n map[box.row] = map[box.row] || [];\n map[box.row].push(box);\n return map;\n }, {});\n const newBoxes = [];\n Object.keys(boxMap).forEach(key => {\n boxMap[key].reverse();\n newBoxes.push(...boxMap[key]);\n });\n me.legendHitBoxes = newBoxes;\n }\n } else {\n let col = 0;\n let top = _alignStartEnd(align, me.top + titleHeight + padding, me.bottom - me.columnSizes[col].height);\n for (const hitbox of hitboxes) {\n if (hitbox.col !== col) {\n col = hitbox.col;\n top = _alignStartEnd(align, me.top + titleHeight + padding, me.bottom - me.columnSizes[col].height);\n }\n hitbox.top = top;\n hitbox.left += me.left + padding;\n top += hitbox.height + padding;\n }\n }\n }\n isHorizontal() {\n return this.options.position === 'top' || this.options.position === 'bottom';\n }\n draw() {\n const me = this;\n if (me.options.display) {\n const ctx = me.ctx;\n clipArea(ctx, me);\n me._draw();\n unclipArea(ctx);\n }\n }\n _draw() {\n const me = this;\n const {options: opts, columnSizes, lineWidths, ctx} = me;\n const {align, labels: labelOpts} = opts;\n const defaultColor = defaults.color;\n const rtlHelper = getRtlAdapter(opts.rtl, me.left, me.width);\n const labelFont = toFont(labelOpts.font);\n const {color: fontColor, padding} = labelOpts;\n const fontSize = labelFont.size;\n const halfFontSize = fontSize / 2;\n let cursor;\n me.drawTitle();\n ctx.textAlign = rtlHelper.textAlign('left');\n ctx.textBaseline = 'middle';\n ctx.lineWidth = 0.5;\n ctx.font = labelFont.string;\n const {boxWidth, boxHeight, itemHeight} = getBoxSize(labelOpts, fontSize);\n const drawLegendBox = function(x, y, legendItem) {\n if (isNaN(boxWidth) || boxWidth <= 0 || isNaN(boxHeight) || boxHeight < 0) {\n return;\n }\n ctx.save();\n const lineWidth = valueOrDefault(legendItem.lineWidth, 1);\n ctx.fillStyle = valueOrDefault(legendItem.fillStyle, defaultColor);\n ctx.lineCap = valueOrDefault(legendItem.lineCap, 'butt');\n ctx.lineDashOffset = valueOrDefault(legendItem.lineDashOffset, 0);\n ctx.lineJoin = valueOrDefault(legendItem.lineJoin, 'miter');\n ctx.lineWidth = lineWidth;\n ctx.strokeStyle = valueOrDefault(legendItem.strokeStyle, defaultColor);\n ctx.setLineDash(valueOrDefault(legendItem.lineDash, []));\n if (labelOpts.usePointStyle) {\n const drawOptions = {\n radius: boxWidth * Math.SQRT2 / 2,\n pointStyle: legendItem.pointStyle,\n rotation: legendItem.rotation,\n borderWidth: lineWidth\n };\n const centerX = rtlHelper.xPlus(x, boxWidth / 2);\n const centerY = y + halfFontSize;\n drawPoint(ctx, drawOptions, centerX, centerY);\n } else {\n const yBoxTop = y + Math.max((fontSize - boxHeight) / 2, 0);\n const xBoxLeft = rtlHelper.leftForLtr(x, boxWidth);\n const borderRadius = toTRBLCorners(legendItem.borderRadius);\n ctx.beginPath();\n if (Object.values(borderRadius).some(v => v !== 0)) {\n addRoundedRectPath(ctx, {\n x: xBoxLeft,\n y: yBoxTop,\n w: boxWidth,\n h: boxHeight,\n radius: borderRadius,\n });\n } else {\n ctx.rect(xBoxLeft, yBoxTop, boxWidth, boxHeight);\n }\n ctx.fill();\n if (lineWidth !== 0) {\n ctx.stroke();\n }\n }\n ctx.restore();\n };\n const fillText = function(x, y, legendItem) {\n renderText(ctx, legendItem.text, x, y + (itemHeight / 2), labelFont, {\n strikethrough: legendItem.hidden,\n textAlign: rtlHelper.textAlign(legendItem.textAlign)\n });\n };\n const isHorizontal = me.isHorizontal();\n const titleHeight = this._computeTitleHeight();\n if (isHorizontal) {\n cursor = {\n x: _alignStartEnd(align, me.left + padding, me.right - lineWidths[0]),\n y: me.top + padding + titleHeight,\n line: 0\n };\n } else {\n cursor = {\n x: me.left + padding,\n y: _alignStartEnd(align, me.top + titleHeight + padding, me.bottom - columnSizes[0].height),\n line: 0\n };\n }\n overrideTextDirection(me.ctx, opts.textDirection);\n const lineHeight = itemHeight + padding;\n me.legendItems.forEach((legendItem, i) => {\n ctx.strokeStyle = legendItem.fontColor || fontColor;\n ctx.fillStyle = legendItem.fontColor || fontColor;\n const textWidth = ctx.measureText(legendItem.text).width;\n const textAlign = rtlHelper.textAlign(legendItem.textAlign || (legendItem.textAlign = labelOpts.textAlign));\n const width = boxWidth + halfFontSize + textWidth;\n let x = cursor.x;\n let y = cursor.y;\n rtlHelper.setWidth(me.width);\n if (isHorizontal) {\n if (i > 0 && x + width + padding > me.right) {\n y = cursor.y += lineHeight;\n cursor.line++;\n x = cursor.x = _alignStartEnd(align, me.left + padding, me.right - lineWidths[cursor.line]);\n }\n } else if (i > 0 && y + lineHeight > me.bottom) {\n x = cursor.x = x + columnSizes[cursor.line].width + padding;\n cursor.line++;\n y = cursor.y = _alignStartEnd(align, me.top + titleHeight + padding, me.bottom - columnSizes[cursor.line].height);\n }\n const realX = rtlHelper.x(x);\n drawLegendBox(realX, y, legendItem);\n x = _textX(textAlign, x + boxWidth + halfFontSize, isHorizontal ? x + width : me.right, opts.rtl);\n fillText(rtlHelper.x(x), y, legendItem);\n if (isHorizontal) {\n cursor.x += width + padding;\n } else {\n cursor.y += lineHeight;\n }\n });\n restoreTextDirection(me.ctx, opts.textDirection);\n }\n drawTitle() {\n const me = this;\n const opts = me.options;\n const titleOpts = opts.title;\n const titleFont = toFont(titleOpts.font);\n const titlePadding = toPadding(titleOpts.padding);\n if (!titleOpts.display) {\n return;\n }\n const rtlHelper = getRtlAdapter(opts.rtl, me.left, me.width);\n const ctx = me.ctx;\n const position = titleOpts.position;\n const halfFontSize = titleFont.size / 2;\n const topPaddingPlusHalfFontSize = titlePadding.top + halfFontSize;\n let y;\n let left = me.left;\n let maxWidth = me.width;\n if (this.isHorizontal()) {\n maxWidth = Math.max(...me.lineWidths);\n y = me.top + topPaddingPlusHalfFontSize;\n left = _alignStartEnd(opts.align, left, me.right - maxWidth);\n } else {\n const maxHeight = me.columnSizes.reduce((acc, size) => Math.max(acc, size.height), 0);\n y = topPaddingPlusHalfFontSize + _alignStartEnd(opts.align, me.top, me.bottom - maxHeight - opts.labels.padding - me._computeTitleHeight());\n }\n const x = _alignStartEnd(position, left, left + maxWidth);\n ctx.textAlign = rtlHelper.textAlign(_toLeftRightCenter(position));\n ctx.textBaseline = 'middle';\n ctx.strokeStyle = titleOpts.color;\n ctx.fillStyle = titleOpts.color;\n ctx.font = titleFont.string;\n renderText(ctx, titleOpts.text, x, y, titleFont);\n }\n _computeTitleHeight() {\n const titleOpts = this.options.title;\n const titleFont = toFont(titleOpts.font);\n const titlePadding = toPadding(titleOpts.padding);\n return titleOpts.display ? titleFont.lineHeight + titlePadding.height : 0;\n }\n _getLegendItemAt(x, y) {\n const me = this;\n let i, hitBox, lh;\n if (x >= me.left && x <= me.right && y >= me.top && y <= me.bottom) {\n lh = me.legendHitBoxes;\n for (i = 0; i < lh.length; ++i) {\n hitBox = lh[i];\n if (x >= hitBox.left && x <= hitBox.left + hitBox.width && y >= hitBox.top && y <= hitBox.top + hitBox.height) {\n return me.legendItems[i];\n }\n }\n }\n return null;\n }\n handleEvent(e) {\n const me = this;\n const opts = me.options;\n if (!isListened(e.type, opts)) {\n return;\n }\n const hoveredItem = me._getLegendItemAt(e.x, e.y);\n if (e.type === 'mousemove') {\n const previous = me._hoveredItem;\n const sameItem = itemsEqual(previous, hoveredItem);\n if (previous && !sameItem) {\n callback(opts.onLeave, [e, previous, me], me);\n }\n me._hoveredItem = hoveredItem;\n if (hoveredItem && !sameItem) {\n callback(opts.onHover, [e, hoveredItem, me], me);\n }\n } else if (hoveredItem) {\n callback(opts.onClick, [e, hoveredItem, me], me);\n }\n }\n}\nfunction isListened(type, opts) {\n if (type === 'mousemove' && (opts.onHover || opts.onLeave)) {\n return true;\n }\n if (opts.onClick && (type === 'click' || type === 'mouseup')) {\n return true;\n }\n return false;\n}\nvar plugin_legend = {\n id: 'legend',\n _element: Legend,\n start(chart, _args, options) {\n const legend = chart.legend = new Legend({ctx: chart.ctx, options, chart});\n layouts.configure(chart, legend, options);\n layouts.addBox(chart, legend);\n },\n stop(chart) {\n layouts.removeBox(chart, chart.legend);\n delete chart.legend;\n },\n beforeUpdate(chart, _args, options) {\n const legend = chart.legend;\n layouts.configure(chart, legend, options);\n legend.options = options;\n },\n afterUpdate(chart) {\n const legend = chart.legend;\n legend.buildLabels();\n legend.adjustHitBoxes();\n },\n afterEvent(chart, args) {\n if (!args.replay) {\n chart.legend.handleEvent(args.event);\n }\n },\n defaults: {\n display: true,\n position: 'top',\n align: 'center',\n fullSize: true,\n reverse: false,\n weight: 1000,\n onClick(e, legendItem, legend) {\n const index = legendItem.datasetIndex;\n const ci = legend.chart;\n if (ci.isDatasetVisible(index)) {\n ci.hide(index);\n legendItem.hidden = true;\n } else {\n ci.show(index);\n legendItem.hidden = false;\n }\n },\n onHover: null,\n onLeave: null,\n labels: {\n color: (ctx) => ctx.chart.options.color,\n boxWidth: 40,\n padding: 10,\n generateLabels(chart) {\n const datasets = chart.data.datasets;\n const {labels: {usePointStyle, pointStyle, textAlign, color}} = chart.legend.options;\n return chart._getSortedDatasetMetas().map((meta) => {\n const style = meta.controller.getStyle(usePointStyle ? 0 : undefined);\n const borderWidth = toPadding(style.borderWidth);\n return {\n text: datasets[meta.index].label,\n fillStyle: style.backgroundColor,\n fontColor: color,\n hidden: !meta.visible,\n lineCap: style.borderCapStyle,\n lineDash: style.borderDash,\n lineDashOffset: style.borderDashOffset,\n lineJoin: style.borderJoinStyle,\n lineWidth: (borderWidth.width + borderWidth.height) / 4,\n strokeStyle: style.borderColor,\n pointStyle: pointStyle || style.pointStyle,\n rotation: style.rotation,\n textAlign: textAlign || style.textAlign,\n borderRadius: 0,\n datasetIndex: meta.index\n };\n }, this);\n }\n },\n title: {\n color: (ctx) => ctx.chart.options.color,\n display: false,\n position: 'center',\n text: '',\n }\n },\n descriptors: {\n _scriptable: (name) => !name.startsWith('on'),\n labels: {\n _scriptable: (name) => !['generateLabels', 'filter', 'sort'].includes(name),\n }\n },\n};\n\nclass Title extends Element {\n constructor(config) {\n super();\n this.chart = config.chart;\n this.options = config.options;\n this.ctx = config.ctx;\n this._padding = undefined;\n this.top = undefined;\n this.bottom = undefined;\n this.left = undefined;\n this.right = undefined;\n this.width = undefined;\n this.height = undefined;\n this.position = undefined;\n this.weight = undefined;\n this.fullSize = undefined;\n }\n update(maxWidth, maxHeight) {\n const me = this;\n const opts = me.options;\n me.left = 0;\n me.top = 0;\n if (!opts.display) {\n me.width = me.height = me.right = me.bottom = 0;\n return;\n }\n me.width = me.right = maxWidth;\n me.height = me.bottom = maxHeight;\n const lineCount = isArray(opts.text) ? opts.text.length : 1;\n me._padding = toPadding(opts.padding);\n const textSize = lineCount * toFont(opts.font).lineHeight + me._padding.height;\n if (me.isHorizontal()) {\n me.height = textSize;\n } else {\n me.width = textSize;\n }\n }\n isHorizontal() {\n const pos = this.options.position;\n return pos === 'top' || pos === 'bottom';\n }\n _drawArgs(offset) {\n const {top, left, bottom, right, options} = this;\n const align = options.align;\n let rotation = 0;\n let maxWidth, titleX, titleY;\n if (this.isHorizontal()) {\n titleX = _alignStartEnd(align, left, right);\n titleY = top + offset;\n maxWidth = right - left;\n } else {\n if (options.position === 'left') {\n titleX = left + offset;\n titleY = _alignStartEnd(align, bottom, top);\n rotation = PI * -0.5;\n } else {\n titleX = right - offset;\n titleY = _alignStartEnd(align, top, bottom);\n rotation = PI * 0.5;\n }\n maxWidth = bottom - top;\n }\n return {titleX, titleY, maxWidth, rotation};\n }\n draw() {\n const me = this;\n const ctx = me.ctx;\n const opts = me.options;\n if (!opts.display) {\n return;\n }\n const fontOpts = toFont(opts.font);\n const lineHeight = fontOpts.lineHeight;\n const offset = lineHeight / 2 + me._padding.top;\n const {titleX, titleY, maxWidth, rotation} = me._drawArgs(offset);\n renderText(ctx, opts.text, 0, 0, fontOpts, {\n color: opts.color,\n maxWidth,\n rotation,\n textAlign: _toLeftRightCenter(opts.align),\n textBaseline: 'middle',\n translation: [titleX, titleY],\n });\n }\n}\nfunction createTitle(chart, titleOpts) {\n const title = new Title({\n ctx: chart.ctx,\n options: titleOpts,\n chart\n });\n layouts.configure(chart, title, titleOpts);\n layouts.addBox(chart, title);\n chart.titleBlock = title;\n}\nvar plugin_title = {\n id: 'title',\n _element: Title,\n start(chart, _args, options) {\n createTitle(chart, options);\n },\n stop(chart) {\n const titleBlock = chart.titleBlock;\n layouts.removeBox(chart, titleBlock);\n delete chart.titleBlock;\n },\n beforeUpdate(chart, _args, options) {\n const title = chart.titleBlock;\n layouts.configure(chart, title, options);\n title.options = options;\n },\n defaults: {\n align: 'center',\n display: false,\n font: {\n weight: 'bold',\n },\n fullSize: true,\n padding: 10,\n position: 'top',\n text: '',\n weight: 2000\n },\n defaultRoutes: {\n color: 'color'\n },\n descriptors: {\n _scriptable: true,\n _indexable: false,\n },\n};\n\nconst map = new WeakMap();\nvar plugin_subtitle = {\n id: 'subtitle',\n start(chart, _args, options) {\n const title = new Title({\n ctx: chart.ctx,\n options,\n chart\n });\n layouts.configure(chart, title, options);\n layouts.addBox(chart, title);\n map.set(chart, title);\n },\n stop(chart) {\n layouts.removeBox(chart, map.get(chart));\n map.delete(chart);\n },\n beforeUpdate(chart, _args, options) {\n const title = map.get(chart);\n layouts.configure(chart, title, options);\n title.options = options;\n },\n defaults: {\n align: 'center',\n display: false,\n font: {\n weight: 'normal',\n },\n fullSize: true,\n padding: 0,\n position: 'top',\n text: '',\n weight: 1500\n },\n defaultRoutes: {\n color: 'color'\n },\n descriptors: {\n _scriptable: true,\n _indexable: false,\n },\n};\n\nconst positioners = {\n average(items) {\n if (!items.length) {\n return false;\n }\n let i, len;\n let x = 0;\n let y = 0;\n let count = 0;\n for (i = 0, len = items.length; i < len; ++i) {\n const el = items[i].element;\n if (el && el.hasValue()) {\n const pos = el.tooltipPosition();\n x += pos.x;\n y += pos.y;\n ++count;\n }\n }\n return {\n x: x / count,\n y: y / count\n };\n },\n nearest(items, eventPosition) {\n if (!items.length) {\n return false;\n }\n let x = eventPosition.x;\n let y = eventPosition.y;\n let minDistance = Number.POSITIVE_INFINITY;\n let i, len, nearestElement;\n for (i = 0, len = items.length; i < len; ++i) {\n const el = items[i].element;\n if (el && el.hasValue()) {\n const center = el.getCenterPoint();\n const d = distanceBetweenPoints(eventPosition, center);\n if (d < minDistance) {\n minDistance = d;\n nearestElement = el;\n }\n }\n }\n if (nearestElement) {\n const tp = nearestElement.tooltipPosition();\n x = tp.x;\n y = tp.y;\n }\n return {\n x,\n y\n };\n }\n};\nfunction pushOrConcat(base, toPush) {\n if (toPush) {\n if (isArray(toPush)) {\n Array.prototype.push.apply(base, toPush);\n } else {\n base.push(toPush);\n }\n }\n return base;\n}\nfunction splitNewlines(str) {\n if ((typeof str === 'string' || str instanceof String) && str.indexOf('\\n') > -1) {\n return str.split('\\n');\n }\n return str;\n}\nfunction createTooltipItem(chart, item) {\n const {element, datasetIndex, index} = item;\n const controller = chart.getDatasetMeta(datasetIndex).controller;\n const {label, value} = controller.getLabelAndValue(index);\n return {\n chart,\n label,\n parsed: controller.getParsed(index),\n raw: chart.data.datasets[datasetIndex].data[index],\n formattedValue: value,\n dataset: controller.getDataset(),\n dataIndex: index,\n datasetIndex,\n element\n };\n}\nfunction getTooltipSize(tooltip, options) {\n const ctx = tooltip._chart.ctx;\n const {body, footer, title} = tooltip;\n const {boxWidth, boxHeight} = options;\n const bodyFont = toFont(options.bodyFont);\n const titleFont = toFont(options.titleFont);\n const footerFont = toFont(options.footerFont);\n const titleLineCount = title.length;\n const footerLineCount = footer.length;\n const bodyLineItemCount = body.length;\n const padding = toPadding(options.padding);\n let height = padding.height;\n let width = 0;\n let combinedBodyLength = body.reduce((count, bodyItem) => count + bodyItem.before.length + bodyItem.lines.length + bodyItem.after.length, 0);\n combinedBodyLength += tooltip.beforeBody.length + tooltip.afterBody.length;\n if (titleLineCount) {\n height += titleLineCount * titleFont.lineHeight\n\t\t\t+ (titleLineCount - 1) * options.titleSpacing\n\t\t\t+ options.titleMarginBottom;\n }\n if (combinedBodyLength) {\n const bodyLineHeight = options.displayColors ? Math.max(boxHeight, bodyFont.lineHeight) : bodyFont.lineHeight;\n height += bodyLineItemCount * bodyLineHeight\n\t\t\t+ (combinedBodyLength - bodyLineItemCount) * bodyFont.lineHeight\n\t\t\t+ (combinedBodyLength - 1) * options.bodySpacing;\n }\n if (footerLineCount) {\n height += options.footerMarginTop\n\t\t\t+ footerLineCount * footerFont.lineHeight\n\t\t\t+ (footerLineCount - 1) * options.footerSpacing;\n }\n let widthPadding = 0;\n const maxLineWidth = function(line) {\n width = Math.max(width, ctx.measureText(line).width + widthPadding);\n };\n ctx.save();\n ctx.font = titleFont.string;\n each(tooltip.title, maxLineWidth);\n ctx.font = bodyFont.string;\n each(tooltip.beforeBody.concat(tooltip.afterBody), maxLineWidth);\n widthPadding = options.displayColors ? (boxWidth + 2) : 0;\n each(body, (bodyItem) => {\n each(bodyItem.before, maxLineWidth);\n each(bodyItem.lines, maxLineWidth);\n each(bodyItem.after, maxLineWidth);\n });\n widthPadding = 0;\n ctx.font = footerFont.string;\n each(tooltip.footer, maxLineWidth);\n ctx.restore();\n width += padding.width;\n return {width, height};\n}\nfunction determineYAlign(chart, size) {\n const {y, height} = size;\n if (y < height / 2) {\n return 'top';\n } else if (y > (chart.height - height / 2)) {\n return 'bottom';\n }\n return 'center';\n}\nfunction doesNotFitWithAlign(xAlign, chart, options, size) {\n const {x, width} = size;\n const caret = options.caretSize + options.caretPadding;\n if (xAlign === 'left' && x + width + caret > chart.width) {\n return true;\n }\n if (xAlign === 'right' && x - width - caret < 0) {\n return true;\n }\n}\nfunction determineXAlign(chart, options, size, yAlign) {\n const {x, width} = size;\n const {width: chartWidth, chartArea: {left, right}} = chart;\n let xAlign = 'center';\n if (yAlign === 'center') {\n xAlign = x <= (left + right) / 2 ? 'left' : 'right';\n } else if (x <= width / 2) {\n xAlign = 'left';\n } else if (x >= chartWidth - width / 2) {\n xAlign = 'right';\n }\n if (doesNotFitWithAlign(xAlign, chart, options, size)) {\n xAlign = 'center';\n }\n return xAlign;\n}\nfunction determineAlignment(chart, options, size) {\n const yAlign = options.yAlign || determineYAlign(chart, size);\n return {\n xAlign: options.xAlign || determineXAlign(chart, options, size, yAlign),\n yAlign\n };\n}\nfunction alignX(size, xAlign) {\n let {x, width} = size;\n if (xAlign === 'right') {\n x -= width;\n } else if (xAlign === 'center') {\n x -= (width / 2);\n }\n return x;\n}\nfunction alignY(size, yAlign, paddingAndSize) {\n let {y, height} = size;\n if (yAlign === 'top') {\n y += paddingAndSize;\n } else if (yAlign === 'bottom') {\n y -= height + paddingAndSize;\n } else {\n y -= (height / 2);\n }\n return y;\n}\nfunction getBackgroundPoint(options, size, alignment, chart) {\n const {caretSize, caretPadding, cornerRadius} = options;\n const {xAlign, yAlign} = alignment;\n const paddingAndSize = caretSize + caretPadding;\n const radiusAndPadding = cornerRadius + caretPadding;\n let x = alignX(size, xAlign);\n const y = alignY(size, yAlign, paddingAndSize);\n if (yAlign === 'center') {\n if (xAlign === 'left') {\n x += paddingAndSize;\n } else if (xAlign === 'right') {\n x -= paddingAndSize;\n }\n } else if (xAlign === 'left') {\n x -= radiusAndPadding;\n } else if (xAlign === 'right') {\n x += radiusAndPadding;\n }\n return {\n x: _limitValue(x, 0, chart.width - size.width),\n y: _limitValue(y, 0, chart.height - size.height)\n };\n}\nfunction getAlignedX(tooltip, align, options) {\n const padding = toPadding(options.padding);\n return align === 'center'\n ? tooltip.x + tooltip.width / 2\n : align === 'right'\n ? tooltip.x + tooltip.width - padding.right\n : tooltip.x + padding.left;\n}\nfunction getBeforeAfterBodyLines(callback) {\n return pushOrConcat([], splitNewlines(callback));\n}\nfunction createTooltipContext(parent, tooltip, tooltipItems) {\n return Object.assign(Object.create(parent), {\n tooltip,\n tooltipItems,\n type: 'tooltip'\n });\n}\nfunction overrideCallbacks(callbacks, context) {\n const override = context && context.dataset && context.dataset.tooltip && context.dataset.tooltip.callbacks;\n return override ? callbacks.override(override) : callbacks;\n}\nclass Tooltip extends Element {\n constructor(config) {\n super();\n this.opacity = 0;\n this._active = [];\n this._chart = config._chart;\n this._eventPosition = undefined;\n this._size = undefined;\n this._cachedAnimations = undefined;\n this._tooltipItems = [];\n this.$animations = undefined;\n this.$context = undefined;\n this.options = config.options;\n this.dataPoints = undefined;\n this.title = undefined;\n this.beforeBody = undefined;\n this.body = undefined;\n this.afterBody = undefined;\n this.footer = undefined;\n this.xAlign = undefined;\n this.yAlign = undefined;\n this.x = undefined;\n this.y = undefined;\n this.height = undefined;\n this.width = undefined;\n this.caretX = undefined;\n this.caretY = undefined;\n this.labelColors = undefined;\n this.labelPointStyles = undefined;\n this.labelTextColors = undefined;\n }\n initialize(options) {\n this.options = options;\n this._cachedAnimations = undefined;\n this.$context = undefined;\n }\n _resolveAnimations() {\n const me = this;\n const cached = me._cachedAnimations;\n if (cached) {\n return cached;\n }\n const chart = me._chart;\n const options = me.options.setContext(me.getContext());\n const opts = options.enabled && chart.options.animation && options.animations;\n const animations = new Animations(me._chart, opts);\n if (opts._cacheable) {\n me._cachedAnimations = Object.freeze(animations);\n }\n return animations;\n }\n getContext() {\n const me = this;\n return me.$context ||\n\t\t\t(me.$context = createTooltipContext(me._chart.getContext(), me, me._tooltipItems));\n }\n getTitle(context, options) {\n const me = this;\n const {callbacks} = options;\n const beforeTitle = callbacks.beforeTitle.apply(me, [context]);\n const title = callbacks.title.apply(me, [context]);\n const afterTitle = callbacks.afterTitle.apply(me, [context]);\n let lines = [];\n lines = pushOrConcat(lines, splitNewlines(beforeTitle));\n lines = pushOrConcat(lines, splitNewlines(title));\n lines = pushOrConcat(lines, splitNewlines(afterTitle));\n return lines;\n }\n getBeforeBody(tooltipItems, options) {\n return getBeforeAfterBodyLines(options.callbacks.beforeBody.apply(this, [tooltipItems]));\n }\n getBody(tooltipItems, options) {\n const me = this;\n const {callbacks} = options;\n const bodyItems = [];\n each(tooltipItems, (context) => {\n const bodyItem = {\n before: [],\n lines: [],\n after: []\n };\n const scoped = overrideCallbacks(callbacks, context);\n pushOrConcat(bodyItem.before, splitNewlines(scoped.beforeLabel.call(me, context)));\n pushOrConcat(bodyItem.lines, scoped.label.call(me, context));\n pushOrConcat(bodyItem.after, splitNewlines(scoped.afterLabel.call(me, context)));\n bodyItems.push(bodyItem);\n });\n return bodyItems;\n }\n getAfterBody(tooltipItems, options) {\n return getBeforeAfterBodyLines(options.callbacks.afterBody.apply(this, [tooltipItems]));\n }\n getFooter(tooltipItems, options) {\n const me = this;\n const {callbacks} = options;\n const beforeFooter = callbacks.beforeFooter.apply(me, [tooltipItems]);\n const footer = callbacks.footer.apply(me, [tooltipItems]);\n const afterFooter = callbacks.afterFooter.apply(me, [tooltipItems]);\n let lines = [];\n lines = pushOrConcat(lines, splitNewlines(beforeFooter));\n lines = pushOrConcat(lines, splitNewlines(footer));\n lines = pushOrConcat(lines, splitNewlines(afterFooter));\n return lines;\n }\n _createItems(options) {\n const me = this;\n const active = me._active;\n const data = me._chart.data;\n const labelColors = [];\n const labelPointStyles = [];\n const labelTextColors = [];\n let tooltipItems = [];\n let i, len;\n for (i = 0, len = active.length; i < len; ++i) {\n tooltipItems.push(createTooltipItem(me._chart, active[i]));\n }\n if (options.filter) {\n tooltipItems = tooltipItems.filter((element, index, array) => options.filter(element, index, array, data));\n }\n if (options.itemSort) {\n tooltipItems = tooltipItems.sort((a, b) => options.itemSort(a, b, data));\n }\n each(tooltipItems, (context) => {\n const scoped = overrideCallbacks(options.callbacks, context);\n labelColors.push(scoped.labelColor.call(me, context));\n labelPointStyles.push(scoped.labelPointStyle.call(me, context));\n labelTextColors.push(scoped.labelTextColor.call(me, context));\n });\n me.labelColors = labelColors;\n me.labelPointStyles = labelPointStyles;\n me.labelTextColors = labelTextColors;\n me.dataPoints = tooltipItems;\n return tooltipItems;\n }\n update(changed, replay) {\n const me = this;\n const options = me.options.setContext(me.getContext());\n const active = me._active;\n let properties;\n let tooltipItems = [];\n if (!active.length) {\n if (me.opacity !== 0) {\n properties = {\n opacity: 0\n };\n }\n } else {\n const position = positioners[options.position].call(me, active, me._eventPosition);\n tooltipItems = me._createItems(options);\n me.title = me.getTitle(tooltipItems, options);\n me.beforeBody = me.getBeforeBody(tooltipItems, options);\n me.body = me.getBody(tooltipItems, options);\n me.afterBody = me.getAfterBody(tooltipItems, options);\n me.footer = me.getFooter(tooltipItems, options);\n const size = me._size = getTooltipSize(me, options);\n const positionAndSize = Object.assign({}, position, size);\n const alignment = determineAlignment(me._chart, options, positionAndSize);\n const backgroundPoint = getBackgroundPoint(options, positionAndSize, alignment, me._chart);\n me.xAlign = alignment.xAlign;\n me.yAlign = alignment.yAlign;\n properties = {\n opacity: 1,\n x: backgroundPoint.x,\n y: backgroundPoint.y,\n width: size.width,\n height: size.height,\n caretX: position.x,\n caretY: position.y\n };\n }\n me._tooltipItems = tooltipItems;\n me.$context = undefined;\n if (properties) {\n me._resolveAnimations().update(me, properties);\n }\n if (changed && options.external) {\n options.external.call(me, {chart: me._chart, tooltip: me, replay});\n }\n }\n drawCaret(tooltipPoint, ctx, size, options) {\n const caretPosition = this.getCaretPosition(tooltipPoint, size, options);\n ctx.lineTo(caretPosition.x1, caretPosition.y1);\n ctx.lineTo(caretPosition.x2, caretPosition.y2);\n ctx.lineTo(caretPosition.x3, caretPosition.y3);\n }\n getCaretPosition(tooltipPoint, size, options) {\n const {xAlign, yAlign} = this;\n const {cornerRadius, caretSize} = options;\n const {x: ptX, y: ptY} = tooltipPoint;\n const {width, height} = size;\n let x1, x2, x3, y1, y2, y3;\n if (yAlign === 'center') {\n y2 = ptY + (height / 2);\n if (xAlign === 'left') {\n x1 = ptX;\n x2 = x1 - caretSize;\n y1 = y2 + caretSize;\n y3 = y2 - caretSize;\n } else {\n x1 = ptX + width;\n x2 = x1 + caretSize;\n y1 = y2 - caretSize;\n y3 = y2 + caretSize;\n }\n x3 = x1;\n } else {\n if (xAlign === 'left') {\n x2 = ptX + cornerRadius + (caretSize);\n } else if (xAlign === 'right') {\n x2 = ptX + width - cornerRadius - caretSize;\n } else {\n x2 = this.caretX;\n }\n if (yAlign === 'top') {\n y1 = ptY;\n y2 = y1 - caretSize;\n x1 = x2 - caretSize;\n x3 = x2 + caretSize;\n } else {\n y1 = ptY + height;\n y2 = y1 + caretSize;\n x1 = x2 + caretSize;\n x3 = x2 - caretSize;\n }\n y3 = y1;\n }\n return {x1, x2, x3, y1, y2, y3};\n }\n drawTitle(pt, ctx, options) {\n const me = this;\n const title = me.title;\n const length = title.length;\n let titleFont, titleSpacing, i;\n if (length) {\n const rtlHelper = getRtlAdapter(options.rtl, me.x, me.width);\n pt.x = getAlignedX(me, options.titleAlign, options);\n ctx.textAlign = rtlHelper.textAlign(options.titleAlign);\n ctx.textBaseline = 'middle';\n titleFont = toFont(options.titleFont);\n titleSpacing = options.titleSpacing;\n ctx.fillStyle = options.titleColor;\n ctx.font = titleFont.string;\n for (i = 0; i < length; ++i) {\n ctx.fillText(title[i], rtlHelper.x(pt.x), pt.y + titleFont.lineHeight / 2);\n pt.y += titleFont.lineHeight + titleSpacing;\n if (i + 1 === length) {\n pt.y += options.titleMarginBottom - titleSpacing;\n }\n }\n }\n }\n _drawColorBox(ctx, pt, i, rtlHelper, options) {\n const me = this;\n const labelColors = me.labelColors[i];\n const labelPointStyle = me.labelPointStyles[i];\n const {boxHeight, boxWidth} = options;\n const bodyFont = toFont(options.bodyFont);\n const colorX = getAlignedX(me, 'left', options);\n const rtlColorX = rtlHelper.x(colorX);\n const yOffSet = boxHeight < bodyFont.lineHeight ? (bodyFont.lineHeight - boxHeight) / 2 : 0;\n const colorY = pt.y + yOffSet;\n if (options.usePointStyle) {\n const drawOptions = {\n radius: Math.min(boxWidth, boxHeight) / 2,\n pointStyle: labelPointStyle.pointStyle,\n rotation: labelPointStyle.rotation,\n borderWidth: 1\n };\n const centerX = rtlHelper.leftForLtr(rtlColorX, boxWidth) + boxWidth / 2;\n const centerY = colorY + boxHeight / 2;\n ctx.strokeStyle = options.multiKeyBackground;\n ctx.fillStyle = options.multiKeyBackground;\n drawPoint(ctx, drawOptions, centerX, centerY);\n ctx.strokeStyle = labelColors.borderColor;\n ctx.fillStyle = labelColors.backgroundColor;\n drawPoint(ctx, drawOptions, centerX, centerY);\n } else {\n ctx.lineWidth = labelColors.borderWidth || 1;\n ctx.strokeStyle = labelColors.borderColor;\n ctx.setLineDash(labelColors.borderDash || []);\n ctx.lineDashOffset = labelColors.borderDashOffset || 0;\n const outerX = rtlHelper.leftForLtr(rtlColorX, boxWidth);\n const innerX = rtlHelper.leftForLtr(rtlHelper.xPlus(rtlColorX, 1), boxWidth - 2);\n const borderRadius = toTRBLCorners(labelColors.borderRadius);\n if (Object.values(borderRadius).some(v => v !== 0)) {\n ctx.beginPath();\n ctx.fillStyle = options.multiKeyBackground;\n addRoundedRectPath(ctx, {\n x: outerX,\n y: colorY,\n w: boxWidth,\n h: boxHeight,\n radius: borderRadius,\n });\n ctx.fill();\n ctx.stroke();\n ctx.fillStyle = labelColors.backgroundColor;\n ctx.beginPath();\n addRoundedRectPath(ctx, {\n x: innerX,\n y: colorY + 1,\n w: boxWidth - 2,\n h: boxHeight - 2,\n radius: borderRadius,\n });\n ctx.fill();\n } else {\n ctx.fillStyle = options.multiKeyBackground;\n ctx.fillRect(outerX, colorY, boxWidth, boxHeight);\n ctx.strokeRect(outerX, colorY, boxWidth, boxHeight);\n ctx.fillStyle = labelColors.backgroundColor;\n ctx.fillRect(innerX, colorY + 1, boxWidth - 2, boxHeight - 2);\n }\n }\n ctx.fillStyle = me.labelTextColors[i];\n }\n drawBody(pt, ctx, options) {\n const me = this;\n const {body} = me;\n const {bodySpacing, bodyAlign, displayColors, boxHeight, boxWidth} = options;\n const bodyFont = toFont(options.bodyFont);\n let bodyLineHeight = bodyFont.lineHeight;\n let xLinePadding = 0;\n const rtlHelper = getRtlAdapter(options.rtl, me.x, me.width);\n const fillLineOfText = function(line) {\n ctx.fillText(line, rtlHelper.x(pt.x + xLinePadding), pt.y + bodyLineHeight / 2);\n pt.y += bodyLineHeight + bodySpacing;\n };\n const bodyAlignForCalculation = rtlHelper.textAlign(bodyAlign);\n let bodyItem, textColor, lines, i, j, ilen, jlen;\n ctx.textAlign = bodyAlign;\n ctx.textBaseline = 'middle';\n ctx.font = bodyFont.string;\n pt.x = getAlignedX(me, bodyAlignForCalculation, options);\n ctx.fillStyle = options.bodyColor;\n each(me.beforeBody, fillLineOfText);\n xLinePadding = displayColors && bodyAlignForCalculation !== 'right'\n ? bodyAlign === 'center' ? (boxWidth / 2 + 1) : (boxWidth + 2)\n : 0;\n for (i = 0, ilen = body.length; i < ilen; ++i) {\n bodyItem = body[i];\n textColor = me.labelTextColors[i];\n ctx.fillStyle = textColor;\n each(bodyItem.before, fillLineOfText);\n lines = bodyItem.lines;\n if (displayColors && lines.length) {\n me._drawColorBox(ctx, pt, i, rtlHelper, options);\n bodyLineHeight = Math.max(bodyFont.lineHeight, boxHeight);\n }\n for (j = 0, jlen = lines.length; j < jlen; ++j) {\n fillLineOfText(lines[j]);\n bodyLineHeight = bodyFont.lineHeight;\n }\n each(bodyItem.after, fillLineOfText);\n }\n xLinePadding = 0;\n bodyLineHeight = bodyFont.lineHeight;\n each(me.afterBody, fillLineOfText);\n pt.y -= bodySpacing;\n }\n drawFooter(pt, ctx, options) {\n const me = this;\n const footer = me.footer;\n const length = footer.length;\n let footerFont, i;\n if (length) {\n const rtlHelper = getRtlAdapter(options.rtl, me.x, me.width);\n pt.x = getAlignedX(me, options.footerAlign, options);\n pt.y += options.footerMarginTop;\n ctx.textAlign = rtlHelper.textAlign(options.footerAlign);\n ctx.textBaseline = 'middle';\n footerFont = toFont(options.footerFont);\n ctx.fillStyle = options.footerColor;\n ctx.font = footerFont.string;\n for (i = 0; i < length; ++i) {\n ctx.fillText(footer[i], rtlHelper.x(pt.x), pt.y + footerFont.lineHeight / 2);\n pt.y += footerFont.lineHeight + options.footerSpacing;\n }\n }\n }\n drawBackground(pt, ctx, tooltipSize, options) {\n const {xAlign, yAlign} = this;\n const {x, y} = pt;\n const {width, height} = tooltipSize;\n const radius = options.cornerRadius;\n ctx.fillStyle = options.backgroundColor;\n ctx.strokeStyle = options.borderColor;\n ctx.lineWidth = options.borderWidth;\n ctx.beginPath();\n ctx.moveTo(x + radius, y);\n if (yAlign === 'top') {\n this.drawCaret(pt, ctx, tooltipSize, options);\n }\n ctx.lineTo(x + width - radius, y);\n ctx.quadraticCurveTo(x + width, y, x + width, y + radius);\n if (yAlign === 'center' && xAlign === 'right') {\n this.drawCaret(pt, ctx, tooltipSize, options);\n }\n ctx.lineTo(x + width, y + height - radius);\n ctx.quadraticCurveTo(x + width, y + height, x + width - radius, y + height);\n if (yAlign === 'bottom') {\n this.drawCaret(pt, ctx, tooltipSize, options);\n }\n ctx.lineTo(x + radius, y + height);\n ctx.quadraticCurveTo(x, y + height, x, y + height - radius);\n if (yAlign === 'center' && xAlign === 'left') {\n this.drawCaret(pt, ctx, tooltipSize, options);\n }\n ctx.lineTo(x, y + radius);\n ctx.quadraticCurveTo(x, y, x + radius, y);\n ctx.closePath();\n ctx.fill();\n if (options.borderWidth > 0) {\n ctx.stroke();\n }\n }\n _updateAnimationTarget(options) {\n const me = this;\n const chart = me._chart;\n const anims = me.$animations;\n const animX = anims && anims.x;\n const animY = anims && anims.y;\n if (animX || animY) {\n const position = positioners[options.position].call(me, me._active, me._eventPosition);\n if (!position) {\n return;\n }\n const size = me._size = getTooltipSize(me, options);\n const positionAndSize = Object.assign({}, position, me._size);\n const alignment = determineAlignment(chart, options, positionAndSize);\n const point = getBackgroundPoint(options, positionAndSize, alignment, chart);\n if (animX._to !== point.x || animY._to !== point.y) {\n me.xAlign = alignment.xAlign;\n me.yAlign = alignment.yAlign;\n me.width = size.width;\n me.height = size.height;\n me.caretX = position.x;\n me.caretY = position.y;\n me._resolveAnimations().update(me, point);\n }\n }\n }\n draw(ctx) {\n const me = this;\n const options = me.options.setContext(me.getContext());\n let opacity = me.opacity;\n if (!opacity) {\n return;\n }\n me._updateAnimationTarget(options);\n const tooltipSize = {\n width: me.width,\n height: me.height\n };\n const pt = {\n x: me.x,\n y: me.y\n };\n opacity = Math.abs(opacity) < 1e-3 ? 0 : opacity;\n const padding = toPadding(options.padding);\n const hasTooltipContent = me.title.length || me.beforeBody.length || me.body.length || me.afterBody.length || me.footer.length;\n if (options.enabled && hasTooltipContent) {\n ctx.save();\n ctx.globalAlpha = opacity;\n me.drawBackground(pt, ctx, tooltipSize, options);\n overrideTextDirection(ctx, options.textDirection);\n pt.y += padding.top;\n me.drawTitle(pt, ctx, options);\n me.drawBody(pt, ctx, options);\n me.drawFooter(pt, ctx, options);\n restoreTextDirection(ctx, options.textDirection);\n ctx.restore();\n }\n }\n getActiveElements() {\n return this._active || [];\n }\n setActiveElements(activeElements, eventPosition) {\n const me = this;\n const lastActive = me._active;\n const active = activeElements.map(({datasetIndex, index}) => {\n const meta = me._chart.getDatasetMeta(datasetIndex);\n if (!meta) {\n throw new Error('Cannot find a dataset at index ' + datasetIndex);\n }\n return {\n datasetIndex,\n element: meta.data[index],\n index,\n };\n });\n const changed = !_elementsEqual(lastActive, active);\n const positionChanged = me._positionChanged(active, eventPosition);\n if (changed || positionChanged) {\n me._active = active;\n me._eventPosition = eventPosition;\n me.update(true);\n }\n }\n handleEvent(e, replay) {\n const me = this;\n const options = me.options;\n const lastActive = me._active || [];\n let changed = false;\n let active = [];\n if (e.type !== 'mouseout') {\n active = me._chart.getElementsAtEventForMode(e, options.mode, options, replay);\n if (options.reverse) {\n active.reverse();\n }\n }\n const positionChanged = me._positionChanged(active, e);\n changed = replay || !_elementsEqual(active, lastActive) || positionChanged;\n if (changed) {\n me._active = active;\n if (options.enabled || options.external) {\n me._eventPosition = {\n x: e.x,\n y: e.y\n };\n me.update(true, replay);\n }\n }\n return changed;\n }\n _positionChanged(active, e) {\n const {caretX, caretY, options} = this;\n const position = positioners[options.position].call(this, active, e);\n return position !== false && (caretX !== position.x || caretY !== position.y);\n }\n}\nTooltip.positioners = positioners;\nvar plugin_tooltip = {\n id: 'tooltip',\n _element: Tooltip,\n positioners,\n afterInit(chart, _args, options) {\n if (options) {\n chart.tooltip = new Tooltip({_chart: chart, options});\n }\n },\n beforeUpdate(chart, _args, options) {\n if (chart.tooltip) {\n chart.tooltip.initialize(options);\n }\n },\n reset(chart, _args, options) {\n if (chart.tooltip) {\n chart.tooltip.initialize(options);\n }\n },\n afterDraw(chart) {\n const tooltip = chart.tooltip;\n const args = {\n tooltip\n };\n if (chart.notifyPlugins('beforeTooltipDraw', args) === false) {\n return;\n }\n if (tooltip) {\n tooltip.draw(chart.ctx);\n }\n chart.notifyPlugins('afterTooltipDraw', args);\n },\n afterEvent(chart, args) {\n if (chart.tooltip) {\n const useFinalPosition = args.replay;\n if (chart.tooltip.handleEvent(args.event, useFinalPosition)) {\n args.changed = true;\n }\n }\n },\n defaults: {\n enabled: true,\n external: null,\n position: 'average',\n backgroundColor: 'rgba(0,0,0,0.8)',\n titleColor: '#fff',\n titleFont: {\n weight: 'bold',\n },\n titleSpacing: 2,\n titleMarginBottom: 6,\n titleAlign: 'left',\n bodyColor: '#fff',\n bodySpacing: 2,\n bodyFont: {\n },\n bodyAlign: 'left',\n footerColor: '#fff',\n footerSpacing: 2,\n footerMarginTop: 6,\n footerFont: {\n weight: 'bold',\n },\n footerAlign: 'left',\n padding: 6,\n caretPadding: 2,\n caretSize: 5,\n cornerRadius: 6,\n boxHeight: (ctx, opts) => opts.bodyFont.size,\n boxWidth: (ctx, opts) => opts.bodyFont.size,\n multiKeyBackground: '#fff',\n displayColors: true,\n borderColor: 'rgba(0,0,0,0)',\n borderWidth: 0,\n animation: {\n duration: 400,\n easing: 'easeOutQuart',\n },\n animations: {\n numbers: {\n type: 'number',\n properties: ['x', 'y', 'width', 'height', 'caretX', 'caretY'],\n },\n opacity: {\n easing: 'linear',\n duration: 200\n }\n },\n callbacks: {\n beforeTitle: noop,\n title(tooltipItems) {\n if (tooltipItems.length > 0) {\n const item = tooltipItems[0];\n const labels = item.chart.data.labels;\n const labelCount = labels ? labels.length : 0;\n if (this && this.options && this.options.mode === 'dataset') {\n return item.dataset.label || '';\n } else if (item.label) {\n return item.label;\n } else if (labelCount > 0 && item.dataIndex < labelCount) {\n return labels[item.dataIndex];\n }\n }\n return '';\n },\n afterTitle: noop,\n beforeBody: noop,\n beforeLabel: noop,\n label(tooltipItem) {\n if (this && this.options && this.options.mode === 'dataset') {\n return tooltipItem.label + ': ' + tooltipItem.formattedValue || tooltipItem.formattedValue;\n }\n let label = tooltipItem.dataset.label || '';\n if (label) {\n label += ': ';\n }\n const value = tooltipItem.formattedValue;\n if (!isNullOrUndef(value)) {\n label += value;\n }\n return label;\n },\n labelColor(tooltipItem) {\n const meta = tooltipItem.chart.getDatasetMeta(tooltipItem.datasetIndex);\n const options = meta.controller.getStyle(tooltipItem.dataIndex);\n return {\n borderColor: options.borderColor,\n backgroundColor: options.backgroundColor,\n borderWidth: options.borderWidth,\n borderDash: options.borderDash,\n borderDashOffset: options.borderDashOffset,\n borderRadius: 0,\n };\n },\n labelTextColor() {\n return this.options.bodyColor;\n },\n labelPointStyle(tooltipItem) {\n const meta = tooltipItem.chart.getDatasetMeta(tooltipItem.datasetIndex);\n const options = meta.controller.getStyle(tooltipItem.dataIndex);\n return {\n pointStyle: options.pointStyle,\n rotation: options.rotation,\n };\n },\n afterLabel: noop,\n afterBody: noop,\n beforeFooter: noop,\n footer: noop,\n afterFooter: noop\n }\n },\n defaultRoutes: {\n bodyFont: 'font',\n footerFont: 'font',\n titleFont: 'font'\n },\n descriptors: {\n _scriptable: (name) => name !== 'filter' && name !== 'itemSort' && name !== 'external',\n _indexable: false,\n callbacks: {\n _scriptable: false,\n _indexable: false,\n },\n animation: {\n _fallback: false\n },\n animations: {\n _fallback: 'animation'\n }\n },\n additionalOptionScopes: ['interaction']\n};\n\nvar plugins = /*#__PURE__*/Object.freeze({\n__proto__: null,\nDecimation: plugin_decimation,\nFiller: plugin_filler,\nLegend: plugin_legend,\nSubTitle: plugin_subtitle,\nTitle: plugin_title,\nTooltip: plugin_tooltip\n});\n\nconst addIfString = (labels, raw, index) => typeof raw === 'string'\n ? labels.push(raw) - 1\n : isNaN(raw) ? null : index;\nfunction findOrAddLabel(labels, raw, index) {\n const first = labels.indexOf(raw);\n if (first === -1) {\n return addIfString(labels, raw, index);\n }\n const last = labels.lastIndexOf(raw);\n return first !== last ? index : first;\n}\nconst validIndex = (index, max) => index === null ? null : _limitValue(Math.round(index), 0, max);\nclass CategoryScale extends Scale {\n constructor(cfg) {\n super(cfg);\n this._startValue = undefined;\n this._valueRange = 0;\n }\n parse(raw, index) {\n if (isNullOrUndef(raw)) {\n return null;\n }\n const labels = this.getLabels();\n index = isFinite(index) && labels[index] === raw ? index\n : findOrAddLabel(labels, raw, valueOrDefault(index, raw));\n return validIndex(index, labels.length - 1);\n }\n determineDataLimits() {\n const me = this;\n const {minDefined, maxDefined} = me.getUserBounds();\n let {min, max} = me.getMinMax(true);\n if (me.options.bounds === 'ticks') {\n if (!minDefined) {\n min = 0;\n }\n if (!maxDefined) {\n max = me.getLabels().length - 1;\n }\n }\n me.min = min;\n me.max = max;\n }\n buildTicks() {\n const me = this;\n const min = me.min;\n const max = me.max;\n const offset = me.options.offset;\n const ticks = [];\n let labels = me.getLabels();\n labels = (min === 0 && max === labels.length - 1) ? labels : labels.slice(min, max + 1);\n me._valueRange = Math.max(labels.length - (offset ? 0 : 1), 1);\n me._startValue = me.min - (offset ? 0.5 : 0);\n for (let value = min; value <= max; value++) {\n ticks.push({value});\n }\n return ticks;\n }\n getLabelForValue(value) {\n const me = this;\n const labels = me.getLabels();\n if (value >= 0 && value < labels.length) {\n return labels[value];\n }\n return value;\n }\n configure() {\n const me = this;\n super.configure();\n if (!me.isHorizontal()) {\n me._reversePixels = !me._reversePixels;\n }\n }\n getPixelForValue(value) {\n const me = this;\n if (typeof value !== 'number') {\n value = me.parse(value);\n }\n return value === null ? NaN : me.getPixelForDecimal((value - me._startValue) / me._valueRange);\n }\n getPixelForTick(index) {\n const me = this;\n const ticks = me.ticks;\n if (index < 0 || index > ticks.length - 1) {\n return null;\n }\n return me.getPixelForValue(ticks[index].value);\n }\n getValueForPixel(pixel) {\n const me = this;\n return Math.round(me._startValue + me.getDecimalForPixel(pixel) * me._valueRange);\n }\n getBasePixel() {\n return this.bottom;\n }\n}\nCategoryScale.id = 'category';\nCategoryScale.defaults = {\n ticks: {\n callback: CategoryScale.prototype.getLabelForValue\n }\n};\n\nfunction generateTicks$1(generationOptions, dataRange) {\n const ticks = [];\n const MIN_SPACING = 1e-14;\n const {bounds, step, min, max, precision, count, maxTicks, maxDigits, includeBounds} = generationOptions;\n const unit = step || 1;\n const maxSpaces = maxTicks - 1;\n const {min: rmin, max: rmax} = dataRange;\n const minDefined = !isNullOrUndef(min);\n const maxDefined = !isNullOrUndef(max);\n const countDefined = !isNullOrUndef(count);\n const minSpacing = (rmax - rmin) / (maxDigits + 1);\n let spacing = niceNum((rmax - rmin) / maxSpaces / unit) * unit;\n let factor, niceMin, niceMax, numSpaces;\n if (spacing < MIN_SPACING && !minDefined && !maxDefined) {\n return [{value: rmin}, {value: rmax}];\n }\n numSpaces = Math.ceil(rmax / spacing) - Math.floor(rmin / spacing);\n if (numSpaces > maxSpaces) {\n spacing = niceNum(numSpaces * spacing / maxSpaces / unit) * unit;\n }\n if (!isNullOrUndef(precision)) {\n factor = Math.pow(10, precision);\n spacing = Math.ceil(spacing * factor) / factor;\n }\n if (bounds === 'ticks') {\n niceMin = Math.floor(rmin / spacing) * spacing;\n niceMax = Math.ceil(rmax / spacing) * spacing;\n } else {\n niceMin = rmin;\n niceMax = rmax;\n }\n if (minDefined && maxDefined && step && almostWhole((max - min) / step, spacing / 1000)) {\n numSpaces = Math.round(Math.min((max - min) / spacing, maxTicks));\n spacing = (max - min) / numSpaces;\n niceMin = min;\n niceMax = max;\n } else if (countDefined) {\n niceMin = minDefined ? min : niceMin;\n niceMax = maxDefined ? max : niceMax;\n numSpaces = count - 1;\n spacing = (niceMax - niceMin) / numSpaces;\n } else {\n numSpaces = (niceMax - niceMin) / spacing;\n if (almostEquals(numSpaces, Math.round(numSpaces), spacing / 1000)) {\n numSpaces = Math.round(numSpaces);\n } else {\n numSpaces = Math.ceil(numSpaces);\n }\n }\n const decimalPlaces = Math.max(\n _decimalPlaces(spacing),\n _decimalPlaces(niceMin)\n );\n factor = Math.pow(10, isNullOrUndef(precision) ? decimalPlaces : precision);\n niceMin = Math.round(niceMin * factor) / factor;\n niceMax = Math.round(niceMax * factor) / factor;\n let j = 0;\n if (minDefined) {\n if (includeBounds && niceMin !== min) {\n ticks.push({value: min});\n if (niceMin < min) {\n j++;\n }\n if (almostEquals(Math.round((niceMin + j * spacing) * factor) / factor, min, relativeLabelSize(min, minSpacing, generationOptions))) {\n j++;\n }\n } else if (niceMin < min) {\n j++;\n }\n }\n for (; j < numSpaces; ++j) {\n ticks.push({value: Math.round((niceMin + j * spacing) * factor) / factor});\n }\n if (maxDefined && includeBounds && niceMax !== max) {\n if (almostEquals(ticks[ticks.length - 1].value, max, relativeLabelSize(max, minSpacing, generationOptions))) {\n ticks[ticks.length - 1].value = max;\n } else {\n ticks.push({value: max});\n }\n } else if (!maxDefined || niceMax === max) {\n ticks.push({value: niceMax});\n }\n return ticks;\n}\nfunction relativeLabelSize(value, minSpacing, {horizontal, minRotation}) {\n const rad = toRadians(minRotation);\n const ratio = (horizontal ? Math.sin(rad) : Math.cos(rad)) || 0.001;\n const length = 0.75 * minSpacing * ('' + value).length;\n return Math.min(minSpacing / ratio, length);\n}\nclass LinearScaleBase extends Scale {\n constructor(cfg) {\n super(cfg);\n this.start = undefined;\n this.end = undefined;\n this._startValue = undefined;\n this._endValue = undefined;\n this._valueRange = 0;\n }\n parse(raw, index) {\n if (isNullOrUndef(raw)) {\n return null;\n }\n if ((typeof raw === 'number' || raw instanceof Number) && !isFinite(+raw)) {\n return null;\n }\n return +raw;\n }\n handleTickRangeOptions() {\n const me = this;\n const {beginAtZero} = me.options;\n const {minDefined, maxDefined} = me.getUserBounds();\n let {min, max} = me;\n const setMin = v => (min = minDefined ? min : v);\n const setMax = v => (max = maxDefined ? max : v);\n if (beginAtZero) {\n const minSign = sign(min);\n const maxSign = sign(max);\n if (minSign < 0 && maxSign < 0) {\n setMax(0);\n } else if (minSign > 0 && maxSign > 0) {\n setMin(0);\n }\n }\n if (min === max) {\n setMax(max + 1);\n if (!beginAtZero) {\n setMin(min - 1);\n }\n }\n me.min = min;\n me.max = max;\n }\n getTickLimit() {\n const me = this;\n const tickOpts = me.options.ticks;\n let {maxTicksLimit, stepSize} = tickOpts;\n let maxTicks;\n if (stepSize) {\n maxTicks = Math.ceil(me.max / stepSize) - Math.floor(me.min / stepSize) + 1;\n } else {\n maxTicks = me.computeTickLimit();\n maxTicksLimit = maxTicksLimit || 11;\n }\n if (maxTicksLimit) {\n maxTicks = Math.min(maxTicksLimit, maxTicks);\n }\n return maxTicks;\n }\n computeTickLimit() {\n return Number.POSITIVE_INFINITY;\n }\n buildTicks() {\n const me = this;\n const opts = me.options;\n const tickOpts = opts.ticks;\n let maxTicks = me.getTickLimit();\n maxTicks = Math.max(2, maxTicks);\n const numericGeneratorOptions = {\n maxTicks,\n bounds: opts.bounds,\n min: opts.min,\n max: opts.max,\n precision: tickOpts.precision,\n step: tickOpts.stepSize,\n count: tickOpts.count,\n maxDigits: me._maxDigits(),\n horizontal: me.isHorizontal(),\n minRotation: tickOpts.minRotation || 0,\n includeBounds: tickOpts.includeBounds !== false\n };\n const dataRange = me._range || me;\n const ticks = generateTicks$1(numericGeneratorOptions, dataRange);\n if (opts.bounds === 'ticks') {\n _setMinAndMaxByKey(ticks, me, 'value');\n }\n if (opts.reverse) {\n ticks.reverse();\n me.start = me.max;\n me.end = me.min;\n } else {\n me.start = me.min;\n me.end = me.max;\n }\n return ticks;\n }\n configure() {\n const me = this;\n const ticks = me.ticks;\n let start = me.min;\n let end = me.max;\n super.configure();\n if (me.options.offset && ticks.length) {\n const offset = (end - start) / Math.max(ticks.length - 1, 1) / 2;\n start -= offset;\n end += offset;\n }\n me._startValue = start;\n me._endValue = end;\n me._valueRange = end - start;\n }\n getLabelForValue(value) {\n return formatNumber(value, this.chart.options.locale);\n }\n}\n\nclass LinearScale extends LinearScaleBase {\n determineDataLimits() {\n const me = this;\n const {min, max} = me.getMinMax(true);\n me.min = isNumberFinite(min) ? min : 0;\n me.max = isNumberFinite(max) ? max : 1;\n me.handleTickRangeOptions();\n }\n computeTickLimit() {\n const me = this;\n const horizontal = me.isHorizontal();\n const length = horizontal ? me.width : me.height;\n const minRotation = toRadians(me.options.ticks.minRotation);\n const ratio = (horizontal ? Math.sin(minRotation) : Math.cos(minRotation)) || 0.001;\n const tickFont = me._resolveTickFontOptions(0);\n return Math.ceil(length / Math.min(40, tickFont.lineHeight / ratio));\n }\n getPixelForValue(value) {\n return value === null ? NaN : this.getPixelForDecimal((value - this._startValue) / this._valueRange);\n }\n getValueForPixel(pixel) {\n return this._startValue + this.getDecimalForPixel(pixel) * this._valueRange;\n }\n}\nLinearScale.id = 'linear';\nLinearScale.defaults = {\n ticks: {\n callback: Ticks.formatters.numeric\n }\n};\n\nfunction isMajor(tickVal) {\n const remain = tickVal / (Math.pow(10, Math.floor(log10(tickVal))));\n return remain === 1;\n}\nfunction generateTicks(generationOptions, dataRange) {\n const endExp = Math.floor(log10(dataRange.max));\n const endSignificand = Math.ceil(dataRange.max / Math.pow(10, endExp));\n const ticks = [];\n let tickVal = finiteOrDefault(generationOptions.min, Math.pow(10, Math.floor(log10(dataRange.min))));\n let exp = Math.floor(log10(tickVal));\n let significand = Math.floor(tickVal / Math.pow(10, exp));\n let precision = exp < 0 ? Math.pow(10, Math.abs(exp)) : 1;\n do {\n ticks.push({value: tickVal, major: isMajor(tickVal)});\n ++significand;\n if (significand === 10) {\n significand = 1;\n ++exp;\n precision = exp >= 0 ? 1 : precision;\n }\n tickVal = Math.round(significand * Math.pow(10, exp) * precision) / precision;\n } while (exp < endExp || (exp === endExp && significand < endSignificand));\n const lastTick = finiteOrDefault(generationOptions.max, tickVal);\n ticks.push({value: lastTick, major: isMajor(tickVal)});\n return ticks;\n}\nclass LogarithmicScale extends Scale {\n constructor(cfg) {\n super(cfg);\n this.start = undefined;\n this.end = undefined;\n this._startValue = undefined;\n this._valueRange = 0;\n }\n parse(raw, index) {\n const value = LinearScaleBase.prototype.parse.apply(this, [raw, index]);\n if (value === 0) {\n this._zero = true;\n return undefined;\n }\n return isNumberFinite(value) && value > 0 ? value : null;\n }\n determineDataLimits() {\n const me = this;\n const {min, max} = me.getMinMax(true);\n me.min = isNumberFinite(min) ? Math.max(0, min) : null;\n me.max = isNumberFinite(max) ? Math.max(0, max) : null;\n if (me.options.beginAtZero) {\n me._zero = true;\n }\n me.handleTickRangeOptions();\n }\n handleTickRangeOptions() {\n const me = this;\n const {minDefined, maxDefined} = me.getUserBounds();\n let min = me.min;\n let max = me.max;\n const setMin = v => (min = minDefined ? min : v);\n const setMax = v => (max = maxDefined ? max : v);\n const exp = (v, m) => Math.pow(10, Math.floor(log10(v)) + m);\n if (min === max) {\n if (min <= 0) {\n setMin(1);\n setMax(10);\n } else {\n setMin(exp(min, -1));\n setMax(exp(max, +1));\n }\n }\n if (min <= 0) {\n setMin(exp(max, -1));\n }\n if (max <= 0) {\n setMax(exp(min, +1));\n }\n if (me._zero && me.min !== me._suggestedMin && min === exp(me.min, 0)) {\n setMin(exp(min, -1));\n }\n me.min = min;\n me.max = max;\n }\n buildTicks() {\n const me = this;\n const opts = me.options;\n const generationOptions = {\n min: me._userMin,\n max: me._userMax\n };\n const ticks = generateTicks(generationOptions, me);\n if (opts.bounds === 'ticks') {\n _setMinAndMaxByKey(ticks, me, 'value');\n }\n if (opts.reverse) {\n ticks.reverse();\n me.start = me.max;\n me.end = me.min;\n } else {\n me.start = me.min;\n me.end = me.max;\n }\n return ticks;\n }\n getLabelForValue(value) {\n return value === undefined ? '0' : formatNumber(value, this.chart.options.locale);\n }\n configure() {\n const me = this;\n const start = me.min;\n super.configure();\n me._startValue = log10(start);\n me._valueRange = log10(me.max) - log10(start);\n }\n getPixelForValue(value) {\n const me = this;\n if (value === undefined || value === 0) {\n value = me.min;\n }\n if (value === null || isNaN(value)) {\n return NaN;\n }\n return me.getPixelForDecimal(value === me.min\n ? 0\n : (log10(value) - me._startValue) / me._valueRange);\n }\n getValueForPixel(pixel) {\n const me = this;\n const decimal = me.getDecimalForPixel(pixel);\n return Math.pow(10, me._startValue + decimal * me._valueRange);\n }\n}\nLogarithmicScale.id = 'logarithmic';\nLogarithmicScale.defaults = {\n ticks: {\n callback: Ticks.formatters.logarithmic,\n major: {\n enabled: true\n }\n }\n};\n\nfunction getTickBackdropHeight(opts) {\n const tickOpts = opts.ticks;\n if (tickOpts.display && opts.display) {\n const padding = toPadding(tickOpts.backdropPadding);\n return valueOrDefault(tickOpts.font && tickOpts.font.size, defaults.font.size) + padding.height;\n }\n return 0;\n}\nfunction measureLabelSize(ctx, font, label) {\n label = isArray(label) ? label : [label];\n return {\n w: _longestText(ctx, font.string, label),\n h: label.length * font.lineHeight\n };\n}\nfunction determineLimits(angle, pos, size, min, max) {\n if (angle === min || angle === max) {\n return {\n start: pos - (size / 2),\n end: pos + (size / 2)\n };\n } else if (angle < min || angle > max) {\n return {\n start: pos - size,\n end: pos\n };\n }\n return {\n start: pos,\n end: pos + size\n };\n}\nfunction fitWithPointLabels(scale) {\n const furthestLimits = {\n l: 0,\n r: scale.width,\n t: 0,\n b: scale.height - scale.paddingTop\n };\n const furthestAngles = {};\n const labelSizes = [];\n const padding = [];\n const valueCount = scale.getLabels().length;\n for (let i = 0; i < valueCount; i++) {\n const opts = scale.options.pointLabels.setContext(scale.getContext(i));\n padding[i] = opts.padding;\n const pointPosition = scale.getPointPosition(i, scale.drawingArea + padding[i]);\n const plFont = toFont(opts.font);\n const textSize = measureLabelSize(scale.ctx, plFont, scale._pointLabels[i]);\n labelSizes[i] = textSize;\n const angleRadians = scale.getIndexAngle(i);\n const angle = toDegrees(angleRadians);\n const hLimits = determineLimits(angle, pointPosition.x, textSize.w, 0, 180);\n const vLimits = determineLimits(angle, pointPosition.y, textSize.h, 90, 270);\n if (hLimits.start < furthestLimits.l) {\n furthestLimits.l = hLimits.start;\n furthestAngles.l = angleRadians;\n }\n if (hLimits.end > furthestLimits.r) {\n furthestLimits.r = hLimits.end;\n furthestAngles.r = angleRadians;\n }\n if (vLimits.start < furthestLimits.t) {\n furthestLimits.t = vLimits.start;\n furthestAngles.t = angleRadians;\n }\n if (vLimits.end > furthestLimits.b) {\n furthestLimits.b = vLimits.end;\n furthestAngles.b = angleRadians;\n }\n }\n scale._setReductions(scale.drawingArea, furthestLimits, furthestAngles);\n scale._pointLabelItems = buildPointLabelItems(scale, labelSizes, padding);\n}\nfunction buildPointLabelItems(scale, labelSizes, padding) {\n const items = [];\n const valueCount = scale.getLabels().length;\n const opts = scale.options;\n const tickBackdropHeight = getTickBackdropHeight(opts);\n const outerDistance = scale.getDistanceFromCenterForValue(opts.ticks.reverse ? scale.min : scale.max);\n for (let i = 0; i < valueCount; i++) {\n const extra = (i === 0 ? tickBackdropHeight / 2 : 0);\n const pointLabelPosition = scale.getPointPosition(i, outerDistance + extra + padding[i]);\n const angle = toDegrees(scale.getIndexAngle(i));\n const size = labelSizes[i];\n const y = yForAngle(pointLabelPosition.y, size.h, angle);\n const textAlign = getTextAlignForAngle(angle);\n const left = leftForTextAlign(pointLabelPosition.x, size.w, textAlign);\n items.push({\n x: pointLabelPosition.x,\n y,\n textAlign,\n left,\n top: y,\n right: left + size.w,\n bottom: y + size.h\n });\n }\n return items;\n}\nfunction getTextAlignForAngle(angle) {\n if (angle === 0 || angle === 180) {\n return 'center';\n } else if (angle < 180) {\n return 'left';\n }\n return 'right';\n}\nfunction leftForTextAlign(x, w, align) {\n if (align === 'right') {\n x -= w;\n } else if (align === 'center') {\n x -= (w / 2);\n }\n return x;\n}\nfunction yForAngle(y, h, angle) {\n if (angle === 90 || angle === 270) {\n y -= (h / 2);\n } else if (angle > 270 || angle < 90) {\n y -= h;\n }\n return y;\n}\nfunction drawPointLabels(scale, labelCount) {\n const {ctx, options: {pointLabels}} = scale;\n for (let i = labelCount - 1; i >= 0; i--) {\n const optsAtIndex = pointLabels.setContext(scale.getContext(i));\n const plFont = toFont(optsAtIndex.font);\n const {x, y, textAlign, left, top, right, bottom} = scale._pointLabelItems[i];\n const {backdropColor} = optsAtIndex;\n if (!isNullOrUndef(backdropColor)) {\n const padding = toPadding(optsAtIndex.backdropPadding);\n ctx.fillStyle = backdropColor;\n ctx.fillRect(left - padding.left, top - padding.top, right - left + padding.width, bottom - top + padding.height);\n }\n renderText(\n ctx,\n scale._pointLabels[i],\n x,\n y + (plFont.lineHeight / 2),\n plFont,\n {\n color: optsAtIndex.color,\n textAlign: textAlign,\n textBaseline: 'middle'\n }\n );\n }\n}\nfunction pathRadiusLine(scale, radius, circular, labelCount) {\n const {ctx} = scale;\n if (circular) {\n ctx.arc(scale.xCenter, scale.yCenter, radius, 0, TAU);\n } else {\n let pointPosition = scale.getPointPosition(0, radius);\n ctx.moveTo(pointPosition.x, pointPosition.y);\n for (let i = 1; i < labelCount; i++) {\n pointPosition = scale.getPointPosition(i, radius);\n ctx.lineTo(pointPosition.x, pointPosition.y);\n }\n }\n}\nfunction drawRadiusLine(scale, gridLineOpts, radius, labelCount) {\n const ctx = scale.ctx;\n const circular = gridLineOpts.circular;\n const {color, lineWidth} = gridLineOpts;\n if ((!circular && !labelCount) || !color || !lineWidth || radius < 0) {\n return;\n }\n ctx.save();\n ctx.strokeStyle = color;\n ctx.lineWidth = lineWidth;\n ctx.setLineDash(gridLineOpts.borderDash);\n ctx.lineDashOffset = gridLineOpts.borderDashOffset;\n ctx.beginPath();\n pathRadiusLine(scale, radius, circular, labelCount);\n ctx.closePath();\n ctx.stroke();\n ctx.restore();\n}\nfunction numberOrZero(param) {\n return isNumber(param) ? param : 0;\n}\nclass RadialLinearScale extends LinearScaleBase {\n constructor(cfg) {\n super(cfg);\n this.xCenter = undefined;\n this.yCenter = undefined;\n this.drawingArea = undefined;\n this._pointLabels = [];\n this._pointLabelItems = [];\n }\n setDimensions() {\n const me = this;\n me.width = me.maxWidth;\n me.height = me.maxHeight;\n me.paddingTop = getTickBackdropHeight(me.options) / 2;\n me.xCenter = Math.floor(me.width / 2);\n me.yCenter = Math.floor((me.height - me.paddingTop) / 2);\n me.drawingArea = Math.min(me.height - me.paddingTop, me.width) / 2;\n }\n determineDataLimits() {\n const me = this;\n const {min, max} = me.getMinMax(false);\n me.min = isNumberFinite(min) && !isNaN(min) ? min : 0;\n me.max = isNumberFinite(max) && !isNaN(max) ? max : 0;\n me.handleTickRangeOptions();\n }\n computeTickLimit() {\n return Math.ceil(this.drawingArea / getTickBackdropHeight(this.options));\n }\n generateTickLabels(ticks) {\n const me = this;\n LinearScaleBase.prototype.generateTickLabels.call(me, ticks);\n me._pointLabels = me.getLabels().map((value, index) => {\n const label = callback(me.options.pointLabels.callback, [value, index], me);\n return label || label === 0 ? label : '';\n });\n }\n fit() {\n const me = this;\n const opts = me.options;\n if (opts.display && opts.pointLabels.display) {\n fitWithPointLabels(me);\n } else {\n me.setCenterPoint(0, 0, 0, 0);\n }\n }\n _setReductions(largestPossibleRadius, furthestLimits, furthestAngles) {\n const me = this;\n let radiusReductionLeft = furthestLimits.l / Math.sin(furthestAngles.l);\n let radiusReductionRight = Math.max(furthestLimits.r - me.width, 0) / Math.sin(furthestAngles.r);\n let radiusReductionTop = -furthestLimits.t / Math.cos(furthestAngles.t);\n let radiusReductionBottom = -Math.max(furthestLimits.b - (me.height - me.paddingTop), 0) / Math.cos(furthestAngles.b);\n radiusReductionLeft = numberOrZero(radiusReductionLeft);\n radiusReductionRight = numberOrZero(radiusReductionRight);\n radiusReductionTop = numberOrZero(radiusReductionTop);\n radiusReductionBottom = numberOrZero(radiusReductionBottom);\n me.drawingArea = Math.max(largestPossibleRadius / 2, Math.min(\n Math.floor(largestPossibleRadius - (radiusReductionLeft + radiusReductionRight) / 2),\n Math.floor(largestPossibleRadius - (radiusReductionTop + radiusReductionBottom) / 2)));\n me.setCenterPoint(radiusReductionLeft, radiusReductionRight, radiusReductionTop, radiusReductionBottom);\n }\n setCenterPoint(leftMovement, rightMovement, topMovement, bottomMovement) {\n const me = this;\n const maxRight = me.width - rightMovement - me.drawingArea;\n const maxLeft = leftMovement + me.drawingArea;\n const maxTop = topMovement + me.drawingArea;\n const maxBottom = (me.height - me.paddingTop) - bottomMovement - me.drawingArea;\n me.xCenter = Math.floor(((maxLeft + maxRight) / 2) + me.left);\n me.yCenter = Math.floor(((maxTop + maxBottom) / 2) + me.top + me.paddingTop);\n }\n getIndexAngle(index) {\n const angleMultiplier = TAU / this.getLabels().length;\n const startAngle = this.options.startAngle || 0;\n return _normalizeAngle(index * angleMultiplier + toRadians(startAngle));\n }\n getDistanceFromCenterForValue(value) {\n const me = this;\n if (isNullOrUndef(value)) {\n return NaN;\n }\n const scalingFactor = me.drawingArea / (me.max - me.min);\n if (me.options.reverse) {\n return (me.max - value) * scalingFactor;\n }\n return (value - me.min) * scalingFactor;\n }\n getValueForDistanceFromCenter(distance) {\n if (isNullOrUndef(distance)) {\n return NaN;\n }\n const me = this;\n const scaledDistance = distance / (me.drawingArea / (me.max - me.min));\n return me.options.reverse ? me.max - scaledDistance : me.min + scaledDistance;\n }\n getPointPosition(index, distanceFromCenter) {\n const me = this;\n const angle = me.getIndexAngle(index) - HALF_PI;\n return {\n x: Math.cos(angle) * distanceFromCenter + me.xCenter,\n y: Math.sin(angle) * distanceFromCenter + me.yCenter,\n angle\n };\n }\n getPointPositionForValue(index, value) {\n return this.getPointPosition(index, this.getDistanceFromCenterForValue(value));\n }\n getBasePosition(index) {\n return this.getPointPositionForValue(index || 0, this.getBaseValue());\n }\n getPointLabelPosition(index) {\n const {left, top, right, bottom} = this._pointLabelItems[index];\n return {\n left,\n top,\n right,\n bottom,\n };\n }\n drawBackground() {\n const me = this;\n const {backgroundColor, grid: {circular}} = me.options;\n if (backgroundColor) {\n const ctx = me.ctx;\n ctx.save();\n ctx.beginPath();\n pathRadiusLine(me, me.getDistanceFromCenterForValue(me._endValue), circular, me.getLabels().length);\n ctx.closePath();\n ctx.fillStyle = backgroundColor;\n ctx.fill();\n ctx.restore();\n }\n }\n drawGrid() {\n const me = this;\n const ctx = me.ctx;\n const opts = me.options;\n const {angleLines, grid} = opts;\n const labelCount = me.getLabels().length;\n let i, offset, position;\n if (opts.pointLabels.display) {\n drawPointLabels(me, labelCount);\n }\n if (grid.display) {\n me.ticks.forEach((tick, index) => {\n if (index !== 0) {\n offset = me.getDistanceFromCenterForValue(tick.value);\n const optsAtIndex = grid.setContext(me.getContext(index - 1));\n drawRadiusLine(me, optsAtIndex, offset, labelCount);\n }\n });\n }\n if (angleLines.display) {\n ctx.save();\n for (i = me.getLabels().length - 1; i >= 0; i--) {\n const optsAtIndex = angleLines.setContext(me.getContext(i));\n const {color, lineWidth} = optsAtIndex;\n if (!lineWidth || !color) {\n continue;\n }\n ctx.lineWidth = lineWidth;\n ctx.strokeStyle = color;\n ctx.setLineDash(optsAtIndex.borderDash);\n ctx.lineDashOffset = optsAtIndex.borderDashOffset;\n offset = me.getDistanceFromCenterForValue(opts.ticks.reverse ? me.min : me.max);\n position = me.getPointPosition(i, offset);\n ctx.beginPath();\n ctx.moveTo(me.xCenter, me.yCenter);\n ctx.lineTo(position.x, position.y);\n ctx.stroke();\n }\n ctx.restore();\n }\n }\n drawBorder() {}\n drawLabels() {\n const me = this;\n const ctx = me.ctx;\n const opts = me.options;\n const tickOpts = opts.ticks;\n if (!tickOpts.display) {\n return;\n }\n const startAngle = me.getIndexAngle(0);\n let offset, width;\n ctx.save();\n ctx.translate(me.xCenter, me.yCenter);\n ctx.rotate(startAngle);\n ctx.textAlign = 'center';\n ctx.textBaseline = 'middle';\n me.ticks.forEach((tick, index) => {\n if (index === 0 && !opts.reverse) {\n return;\n }\n const optsAtIndex = tickOpts.setContext(me.getContext(index));\n const tickFont = toFont(optsAtIndex.font);\n offset = me.getDistanceFromCenterForValue(me.ticks[index].value);\n if (optsAtIndex.showLabelBackdrop) {\n ctx.font = tickFont.string;\n width = ctx.measureText(tick.label).width;\n ctx.fillStyle = optsAtIndex.backdropColor;\n const padding = toPadding(optsAtIndex.backdropPadding);\n ctx.fillRect(\n -width / 2 - padding.left,\n -offset - tickFont.size / 2 - padding.top,\n width + padding.width,\n tickFont.size + padding.height\n );\n }\n renderText(ctx, tick.label, 0, -offset, tickFont, {\n color: optsAtIndex.color,\n });\n });\n ctx.restore();\n }\n drawTitle() {}\n}\nRadialLinearScale.id = 'radialLinear';\nRadialLinearScale.defaults = {\n display: true,\n animate: true,\n position: 'chartArea',\n angleLines: {\n display: true,\n lineWidth: 1,\n borderDash: [],\n borderDashOffset: 0.0\n },\n grid: {\n circular: false\n },\n startAngle: 0,\n ticks: {\n showLabelBackdrop: true,\n callback: Ticks.formatters.numeric\n },\n pointLabels: {\n backdropColor: undefined,\n backdropPadding: 2,\n display: true,\n font: {\n size: 10\n },\n callback(label) {\n return label;\n },\n padding: 5\n }\n};\nRadialLinearScale.defaultRoutes = {\n 'angleLines.color': 'borderColor',\n 'pointLabels.color': 'color',\n 'ticks.color': 'color'\n};\nRadialLinearScale.descriptors = {\n angleLines: {\n _fallback: 'grid'\n }\n};\n\nconst INTERVALS = {\n millisecond: {common: true, size: 1, steps: 1000},\n second: {common: true, size: 1000, steps: 60},\n minute: {common: true, size: 60000, steps: 60},\n hour: {common: true, size: 3600000, steps: 24},\n day: {common: true, size: 86400000, steps: 30},\n week: {common: false, size: 604800000, steps: 4},\n month: {common: true, size: 2.628e9, steps: 12},\n quarter: {common: false, size: 7.884e9, steps: 4},\n year: {common: true, size: 3.154e10}\n};\nconst UNITS = (Object.keys(INTERVALS));\nfunction sorter(a, b) {\n return a - b;\n}\nfunction parse(scale, input) {\n if (isNullOrUndef(input)) {\n return null;\n }\n const adapter = scale._adapter;\n const {parser, round, isoWeekday} = scale._parseOpts;\n let value = input;\n if (typeof parser === 'function') {\n value = parser(value);\n }\n if (!isNumberFinite(value)) {\n value = typeof parser === 'string'\n ? adapter.parse(value, parser)\n : adapter.parse(value);\n }\n if (value === null) {\n return null;\n }\n if (round) {\n value = round === 'week' && (isNumber(isoWeekday) || isoWeekday === true)\n ? adapter.startOf(value, 'isoWeek', isoWeekday)\n : adapter.startOf(value, round);\n }\n return +value;\n}\nfunction determineUnitForAutoTicks(minUnit, min, max, capacity) {\n const ilen = UNITS.length;\n for (let i = UNITS.indexOf(minUnit); i < ilen - 1; ++i) {\n const interval = INTERVALS[UNITS[i]];\n const factor = interval.steps ? interval.steps : Number.MAX_SAFE_INTEGER;\n if (interval.common && Math.ceil((max - min) / (factor * interval.size)) <= capacity) {\n return UNITS[i];\n }\n }\n return UNITS[ilen - 1];\n}\nfunction determineUnitForFormatting(scale, numTicks, minUnit, min, max) {\n for (let i = UNITS.length - 1; i >= UNITS.indexOf(minUnit); i--) {\n const unit = UNITS[i];\n if (INTERVALS[unit].common && scale._adapter.diff(max, min, unit) >= numTicks - 1) {\n return unit;\n }\n }\n return UNITS[minUnit ? UNITS.indexOf(minUnit) : 0];\n}\nfunction determineMajorUnit(unit) {\n for (let i = UNITS.indexOf(unit) + 1, ilen = UNITS.length; i < ilen; ++i) {\n if (INTERVALS[UNITS[i]].common) {\n return UNITS[i];\n }\n }\n}\nfunction addTick(ticks, time, timestamps) {\n if (!timestamps) {\n ticks[time] = true;\n } else if (timestamps.length) {\n const {lo, hi} = _lookup(timestamps, time);\n const timestamp = timestamps[lo] >= time ? timestamps[lo] : timestamps[hi];\n ticks[timestamp] = true;\n }\n}\nfunction setMajorTicks(scale, ticks, map, majorUnit) {\n const adapter = scale._adapter;\n const first = +adapter.startOf(ticks[0].value, majorUnit);\n const last = ticks[ticks.length - 1].value;\n let major, index;\n for (major = first; major <= last; major = +adapter.add(major, 1, majorUnit)) {\n index = map[major];\n if (index >= 0) {\n ticks[index].major = true;\n }\n }\n return ticks;\n}\nfunction ticksFromTimestamps(scale, values, majorUnit) {\n const ticks = [];\n const map = {};\n const ilen = values.length;\n let i, value;\n for (i = 0; i < ilen; ++i) {\n value = values[i];\n map[value] = i;\n ticks.push({\n value,\n major: false\n });\n }\n return (ilen === 0 || !majorUnit) ? ticks : setMajorTicks(scale, ticks, map, majorUnit);\n}\nclass TimeScale extends Scale {\n constructor(props) {\n super(props);\n this._cache = {\n data: [],\n labels: [],\n all: []\n };\n this._unit = 'day';\n this._majorUnit = undefined;\n this._offsets = {};\n this._normalized = false;\n this._parseOpts = undefined;\n }\n init(scaleOpts, opts) {\n const time = scaleOpts.time || (scaleOpts.time = {});\n const adapter = this._adapter = new adapters._date(scaleOpts.adapters.date);\n mergeIf(time.displayFormats, adapter.formats());\n this._parseOpts = {\n parser: time.parser,\n round: time.round,\n isoWeekday: time.isoWeekday\n };\n super.init(scaleOpts);\n this._normalized = opts.normalized;\n }\n parse(raw, index) {\n if (raw === undefined) {\n return null;\n }\n return parse(this, raw);\n }\n beforeLayout() {\n super.beforeLayout();\n this._cache = {\n data: [],\n labels: [],\n all: []\n };\n }\n determineDataLimits() {\n const me = this;\n const options = me.options;\n const adapter = me._adapter;\n const unit = options.time.unit || 'day';\n let {min, max, minDefined, maxDefined} = me.getUserBounds();\n function _applyBounds(bounds) {\n if (!minDefined && !isNaN(bounds.min)) {\n min = Math.min(min, bounds.min);\n }\n if (!maxDefined && !isNaN(bounds.max)) {\n max = Math.max(max, bounds.max);\n }\n }\n if (!minDefined || !maxDefined) {\n _applyBounds(me._getLabelBounds());\n if (options.bounds !== 'ticks' || options.ticks.source !== 'labels') {\n _applyBounds(me.getMinMax(false));\n }\n }\n min = isNumberFinite(min) && !isNaN(min) ? min : +adapter.startOf(Date.now(), unit);\n max = isNumberFinite(max) && !isNaN(max) ? max : +adapter.endOf(Date.now(), unit) + 1;\n me.min = Math.min(min, max - 1);\n me.max = Math.max(min + 1, max);\n }\n _getLabelBounds() {\n const arr = this.getLabelTimestamps();\n let min = Number.POSITIVE_INFINITY;\n let max = Number.NEGATIVE_INFINITY;\n if (arr.length) {\n min = arr[0];\n max = arr[arr.length - 1];\n }\n return {min, max};\n }\n buildTicks() {\n const me = this;\n const options = me.options;\n const timeOpts = options.time;\n const tickOpts = options.ticks;\n const timestamps = tickOpts.source === 'labels' ? me.getLabelTimestamps() : me._generate();\n if (options.bounds === 'ticks' && timestamps.length) {\n me.min = me._userMin || timestamps[0];\n me.max = me._userMax || timestamps[timestamps.length - 1];\n }\n const min = me.min;\n const max = me.max;\n const ticks = _filterBetween(timestamps, min, max);\n me._unit = timeOpts.unit || (tickOpts.autoSkip\n ? determineUnitForAutoTicks(timeOpts.minUnit, me.min, me.max, me._getLabelCapacity(min))\n : determineUnitForFormatting(me, ticks.length, timeOpts.minUnit, me.min, me.max));\n me._majorUnit = !tickOpts.major.enabled || me._unit === 'year' ? undefined\n : determineMajorUnit(me._unit);\n me.initOffsets(timestamps);\n if (options.reverse) {\n ticks.reverse();\n }\n return ticksFromTimestamps(me, ticks, me._majorUnit);\n }\n initOffsets(timestamps) {\n const me = this;\n let start = 0;\n let end = 0;\n let first, last;\n if (me.options.offset && timestamps.length) {\n first = me.getDecimalForValue(timestamps[0]);\n if (timestamps.length === 1) {\n start = 1 - first;\n } else {\n start = (me.getDecimalForValue(timestamps[1]) - first) / 2;\n }\n last = me.getDecimalForValue(timestamps[timestamps.length - 1]);\n if (timestamps.length === 1) {\n end = last;\n } else {\n end = (last - me.getDecimalForValue(timestamps[timestamps.length - 2])) / 2;\n }\n }\n const limit = timestamps.length < 3 ? 0.5 : 0.25;\n start = _limitValue(start, 0, limit);\n end = _limitValue(end, 0, limit);\n me._offsets = {start, end, factor: 1 / (start + 1 + end)};\n }\n _generate() {\n const me = this;\n const adapter = me._adapter;\n const min = me.min;\n const max = me.max;\n const options = me.options;\n const timeOpts = options.time;\n const minor = timeOpts.unit || determineUnitForAutoTicks(timeOpts.minUnit, min, max, me._getLabelCapacity(min));\n const stepSize = valueOrDefault(timeOpts.stepSize, 1);\n const weekday = minor === 'week' ? timeOpts.isoWeekday : false;\n const hasWeekday = isNumber(weekday) || weekday === true;\n const ticks = {};\n let first = min;\n let time, count;\n if (hasWeekday) {\n first = +adapter.startOf(first, 'isoWeek', weekday);\n }\n first = +adapter.startOf(first, hasWeekday ? 'day' : minor);\n if (adapter.diff(max, min, minor) > 100000 * stepSize) {\n throw new Error(min + ' and ' + max + ' are too far apart with stepSize of ' + stepSize + ' ' + minor);\n }\n const timestamps = options.ticks.source === 'data' && me.getDataTimestamps();\n for (time = first, count = 0; time < max; time = +adapter.add(time, stepSize, minor), count++) {\n addTick(ticks, time, timestamps);\n }\n if (time === max || options.bounds === 'ticks' || count === 1) {\n addTick(ticks, time, timestamps);\n }\n return Object.keys(ticks).sort((a, b) => a - b).map(x => +x);\n }\n getLabelForValue(value) {\n const me = this;\n const adapter = me._adapter;\n const timeOpts = me.options.time;\n if (timeOpts.tooltipFormat) {\n return adapter.format(value, timeOpts.tooltipFormat);\n }\n return adapter.format(value, timeOpts.displayFormats.datetime);\n }\n _tickFormatFunction(time, index, ticks, format) {\n const me = this;\n const options = me.options;\n const formats = options.time.displayFormats;\n const unit = me._unit;\n const majorUnit = me._majorUnit;\n const minorFormat = unit && formats[unit];\n const majorFormat = majorUnit && formats[majorUnit];\n const tick = ticks[index];\n const major = majorUnit && majorFormat && tick && tick.major;\n const label = me._adapter.format(time, format || (major ? majorFormat : minorFormat));\n const formatter = options.ticks.callback;\n return formatter ? callback(formatter, [label, index, ticks], me) : label;\n }\n generateTickLabels(ticks) {\n let i, ilen, tick;\n for (i = 0, ilen = ticks.length; i < ilen; ++i) {\n tick = ticks[i];\n tick.label = this._tickFormatFunction(tick.value, i, ticks);\n }\n }\n getDecimalForValue(value) {\n const me = this;\n return value === null ? NaN : (value - me.min) / (me.max - me.min);\n }\n getPixelForValue(value) {\n const me = this;\n const offsets = me._offsets;\n const pos = me.getDecimalForValue(value);\n return me.getPixelForDecimal((offsets.start + pos) * offsets.factor);\n }\n getValueForPixel(pixel) {\n const me = this;\n const offsets = me._offsets;\n const pos = me.getDecimalForPixel(pixel) / offsets.factor - offsets.end;\n return me.min + pos * (me.max - me.min);\n }\n _getLabelSize(label) {\n const me = this;\n const ticksOpts = me.options.ticks;\n const tickLabelWidth = me.ctx.measureText(label).width;\n const angle = toRadians(me.isHorizontal() ? ticksOpts.maxRotation : ticksOpts.minRotation);\n const cosRotation = Math.cos(angle);\n const sinRotation = Math.sin(angle);\n const tickFontSize = me._resolveTickFontOptions(0).size;\n return {\n w: (tickLabelWidth * cosRotation) + (tickFontSize * sinRotation),\n h: (tickLabelWidth * sinRotation) + (tickFontSize * cosRotation)\n };\n }\n _getLabelCapacity(exampleTime) {\n const me = this;\n const timeOpts = me.options.time;\n const displayFormats = timeOpts.displayFormats;\n const format = displayFormats[timeOpts.unit] || displayFormats.millisecond;\n const exampleLabel = me._tickFormatFunction(exampleTime, 0, ticksFromTimestamps(me, [exampleTime], me._majorUnit), format);\n const size = me._getLabelSize(exampleLabel);\n const capacity = Math.floor(me.isHorizontal() ? me.width / size.w : me.height / size.h) - 1;\n return capacity > 0 ? capacity : 1;\n }\n getDataTimestamps() {\n const me = this;\n let timestamps = me._cache.data || [];\n let i, ilen;\n if (timestamps.length) {\n return timestamps;\n }\n const metas = me.getMatchingVisibleMetas();\n if (me._normalized && metas.length) {\n return (me._cache.data = metas[0].controller.getAllParsedValues(me));\n }\n for (i = 0, ilen = metas.length; i < ilen; ++i) {\n timestamps = timestamps.concat(metas[i].controller.getAllParsedValues(me));\n }\n return (me._cache.data = me.normalize(timestamps));\n }\n getLabelTimestamps() {\n const me = this;\n const timestamps = me._cache.labels || [];\n let i, ilen;\n if (timestamps.length) {\n return timestamps;\n }\n const labels = me.getLabels();\n for (i = 0, ilen = labels.length; i < ilen; ++i) {\n timestamps.push(parse(me, labels[i]));\n }\n return (me._cache.labels = me._normalized ? timestamps : me.normalize(timestamps));\n }\n normalize(values) {\n return _arrayUnique(values.sort(sorter));\n }\n}\nTimeScale.id = 'time';\nTimeScale.defaults = {\n bounds: 'data',\n adapters: {},\n time: {\n parser: false,\n unit: false,\n round: false,\n isoWeekday: false,\n minUnit: 'millisecond',\n displayFormats: {}\n },\n ticks: {\n source: 'auto',\n major: {\n enabled: false\n }\n }\n};\n\nfunction interpolate(table, val, reverse) {\n let lo = 0;\n let hi = table.length - 1;\n let prevSource, nextSource, prevTarget, nextTarget;\n if (reverse) {\n if (val >= table[lo].pos && val <= table[hi].pos) {\n ({lo, hi} = _lookupByKey(table, 'pos', val));\n }\n ({pos: prevSource, time: prevTarget} = table[lo]);\n ({pos: nextSource, time: nextTarget} = table[hi]);\n } else {\n if (val >= table[lo].time && val <= table[hi].time) {\n ({lo, hi} = _lookupByKey(table, 'time', val));\n }\n ({time: prevSource, pos: prevTarget} = table[lo]);\n ({time: nextSource, pos: nextTarget} = table[hi]);\n }\n const span = nextSource - prevSource;\n return span ? prevTarget + (nextTarget - prevTarget) * (val - prevSource) / span : prevTarget;\n}\nclass TimeSeriesScale extends TimeScale {\n constructor(props) {\n super(props);\n this._table = [];\n this._minPos = undefined;\n this._tableRange = undefined;\n }\n initOffsets() {\n const me = this;\n const timestamps = me._getTimestampsForTable();\n const table = me._table = me.buildLookupTable(timestamps);\n me._minPos = interpolate(table, me.min);\n me._tableRange = interpolate(table, me.max) - me._minPos;\n super.initOffsets(timestamps);\n }\n buildLookupTable(timestamps) {\n const {min, max} = this;\n const items = [];\n const table = [];\n let i, ilen, prev, curr, next;\n for (i = 0, ilen = timestamps.length; i < ilen; ++i) {\n curr = timestamps[i];\n if (curr >= min && curr <= max) {\n items.push(curr);\n }\n }\n if (items.length < 2) {\n return [\n {time: min, pos: 0},\n {time: max, pos: 1}\n ];\n }\n for (i = 0, ilen = items.length; i < ilen; ++i) {\n next = items[i + 1];\n prev = items[i - 1];\n curr = items[i];\n if (Math.round((next + prev) / 2) !== curr) {\n table.push({time: curr, pos: i / (ilen - 1)});\n }\n }\n return table;\n }\n _getTimestampsForTable() {\n const me = this;\n let timestamps = me._cache.all || [];\n if (timestamps.length) {\n return timestamps;\n }\n const data = me.getDataTimestamps();\n const label = me.getLabelTimestamps();\n if (data.length && label.length) {\n timestamps = me.normalize(data.concat(label));\n } else {\n timestamps = data.length ? data : label;\n }\n timestamps = me._cache.all = timestamps;\n return timestamps;\n }\n getDecimalForValue(value) {\n return (interpolate(this._table, value) - this._minPos) / this._tableRange;\n }\n getValueForPixel(pixel) {\n const me = this;\n const offsets = me._offsets;\n const decimal = me.getDecimalForPixel(pixel) / offsets.factor - offsets.end;\n return interpolate(me._table, decimal * me._tableRange + me._minPos, true);\n }\n}\nTimeSeriesScale.id = 'timeseries';\nTimeSeriesScale.defaults = TimeScale.defaults;\n\nvar scales = /*#__PURE__*/Object.freeze({\n__proto__: null,\nCategoryScale: CategoryScale,\nLinearScale: LinearScale,\nLogarithmicScale: LogarithmicScale,\nRadialLinearScale: RadialLinearScale,\nTimeScale: TimeScale,\nTimeSeriesScale: TimeSeriesScale\n});\n\nconst registerables = [\n controllers,\n elements,\n plugins,\n scales,\n];\n\nexport { Animation, Animations, ArcElement, BarController, BarElement, BasePlatform, BasicPlatform, BubbleController, CategoryScale, Chart, DatasetController, plugin_decimation as Decimation, DomPlatform, DoughnutController, Element, plugin_filler as Filler, Interaction, plugin_legend as Legend, LineController, LineElement, LinearScale, LogarithmicScale, PieController, PointElement, PolarAreaController, RadarController, RadialLinearScale, Scale, ScatterController, plugin_subtitle as SubTitle, Ticks, TimeScale, TimeSeriesScale, plugin_title as Title, plugin_tooltip as Tooltip, adapters as _adapters, animator, controllers, elements, layouts, plugins, registerables, registry, scales };\n","exports = module.exports = require(\"../../../node_modules/css-loader/dist/runtime/api.js\")(false);\n// Imports\nvar getUrl = require(\"../../../node_modules/css-loader/dist/runtime/getUrl.js\");\nvar ___CSS_LOADER_URL___0___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-light.woff2\"));\nvar ___CSS_LOADER_URL___1___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-lightit.woff2\"));\nvar ___CSS_LOADER_URL___2___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-reg.woff2\"));\nvar ___CSS_LOADER_URL___3___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-regit.woff2\"));\nvar ___CSS_LOADER_URL___4___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-sbold.woff2\"));\nvar ___CSS_LOADER_URL___5___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-sboldit.woff2\"));\nvar ___CSS_LOADER_URL___6___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-bold.woff2\"));\nvar ___CSS_LOADER_URL___7___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-boldit.woff2\"));\nvar ___CSS_LOADER_URL___8___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-Light.woff2\"));\nvar ___CSS_LOADER_URL___9___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-LightIt.woff2\"));\nvar ___CSS_LOADER_URL___10___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-Regular.woff2\"));\nvar ___CSS_LOADER_URL___11___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-RegularIt.woff2\"));\nvar ___CSS_LOADER_URL___12___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-Semibold.woff2\"));\nvar ___CSS_LOADER_URL___13___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-SemiboldIt.woff2\"));\nvar ___CSS_LOADER_URL___14___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-Bold.woff2\"));\nvar ___CSS_LOADER_URL___15___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-BoldIt.woff2\"));\nvar ___CSS_LOADER_URL___16___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-ExtraBold.woff2\"));\nvar ___CSS_LOADER_URL___17___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-ExtraBoldIt.woff2\"));\nvar ___CSS_LOADER_URL___18___ = getUrl(require(\"../../template/main/fonts/aofl-icons/icomoon.woff2?c6f21u\"));\n// Module\nexports.push([module.id, \"/*! @aofl-component */:root{--blue:#0d6efd;--indigo:#6610f2;--purple:#8b42ca;--pink:#e83e8c;--red:#e50b0a;--orange:#e17a05;--yellow:#ffc107;--green:#3c8104;--teal:#20c997;--cyan:#53c9dc;--white:#fff;--gray:#6b6b6b;--gray-dark:#343a40;--light-green:#b1dd53;--table-border-color:#d8d8d8;--gray-100:#f2f2f2;--gray-200:#d9d9d9;--gray-300:#d8d8d8;--gray-400:#ced4da;--gray-500:#adb5bd;--gray-600:#6c757d;--gray-700:#4a4a4a;--gray-800:#343a40;--gray-900:#212529;--gray-accessibility:#6b6b6b;--primary:#0d6efd;--secondary:#adb5bd;--success:#3c8104;--info:#cfe2ff;--warning:#e17a05;--danger:#d20a09;--light:#f8f9fa;--dark:#000;--breakpoint-xxs:0;--breakpoint-xs:375px;--breakpoint-sm:576px;--breakpoint-md:768px;--breakpoint-lg:992px;--breakpoint-xl:1200px;--font-family-sans-serif:aofl-sans,Arial,Helvetica,sans-serif;--font-family-monospace:SFMono-Regular,Menlo,Monaco,Consolas,\\\"Liberation Mono\\\",\\\"Courier New\\\",monospace;--z-index-dropdown:1000;--z-index-sticky:1020;--z-index-fixed:1030;--z-index-modal-backdrop:1040;--z-index-modal:1050;--z-index-popover:1060;--z-index-tooltip:1070;--header-height:6rem;--content-height:calc(100vh - 6rem);--sidepanel-width:20rem;--purple-color:#641da3;--purple-600:#956abc;--purple-400:#c7afdd;--purple-200:#e0d2ed;--struggling:#f6993b;--below-target:#ffcf00;--in_progress:#1280f5;--prior_knowledge:#edf887;--mastery_achieved:#69d112;--inactive:#d8d8d8}route-view{max-width:1200px}@font-face{font-family:aofl-sans;font-style:normal;font-weight:300;src:url(\" + ___CSS_LOADER_URL___0___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:italic;font-weight:300;src:url(\" + ___CSS_LOADER_URL___1___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:normal;font-weight:400;src:url(\" + ___CSS_LOADER_URL___2___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:italic;font-weight:400;src:url(\" + ___CSS_LOADER_URL___3___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:normal;font-weight:600;src:url(\" + ___CSS_LOADER_URL___4___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:italic;font-weight:600;src:url(\" + ___CSS_LOADER_URL___5___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:normal;font-weight:700;src:url(\" + ___CSS_LOADER_URL___6___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:italic;font-weight:700;src:url(\" + ___CSS_LOADER_URL___7___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:normal;font-weight:300;src:url(\" + ___CSS_LOADER_URL___8___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:italic;font-weight:300;src:url(\" + ___CSS_LOADER_URL___9___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:normal;font-weight:400;src:url(\" + ___CSS_LOADER_URL___10___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:italic;font-weight:400;src:url(\" + ___CSS_LOADER_URL___11___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:normal;font-weight:600;src:url(\" + ___CSS_LOADER_URL___12___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:italic;font-weight:600;src:url(\" + ___CSS_LOADER_URL___13___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:normal;font-weight:700;src:url(\" + ___CSS_LOADER_URL___14___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:italic;font-weight:700;src:url(\" + ___CSS_LOADER_URL___15___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:normal;font-weight:800;src:url(\" + ___CSS_LOADER_URL___16___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:italic;font-weight:800;src:url(\" + ___CSS_LOADER_URL___17___ + \") format(\\\"woff2\\\")}@font-face{font-family:icomoon;src:url(\" + ___CSS_LOADER_URL___18___ + \") format(\\\"woff2\\\");font-weight:400;font-style:normal;font-display:block}[class*=\\\" ai-\\\"],[class^=ai-]{font-family:icomoon!important;speak:never;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*,:after,:before{box-sizing:border-box}html{font-family:sans-serif;line-height:1.15;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:rgba(0,0,0,0)}figcaption,main,nav,section{display:block}[tabindex=\\\"-1\\\"]:focus{outline:0!important}strong{font-weight:bolder}caption{padding-top:.75rem;padding-bottom:.75rem;color:#6c757d;text-align:left;caption-side:bottom}label{display:inline-block;margin-bottom:.8rem}button{border-radius:0}button:focus{outline:1px dotted;outline:5px auto -webkit-focus-ring-color}button,input{margin:0;font-family:inherit;font-size:inherit;line-height:inherit;overflow:visible}button{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]:not(:disabled),[type=reset]:not(:disabled),[type=submit]:not(:disabled),button:not(:disabled){cursor:pointer}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{padding:0;border-style:none}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}input[type=date],input[type=datetime-local],input[type=month],input[type=time]{-webkit-appearance:listbox}legend{display:block;width:100%;max-width:100%;padding:0;margin-bottom:.5rem;font-size:1.5rem;line-height:inherit;color:inherit;white-space:normal}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:none}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}summary{display:list-item;cursor:pointer}template{display:none}[hidden]{display:none!important}*{-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important}html{font-size:62.5%;height:100%}link-to{color:#0d6efd;text-decoration:none;background-color:transparent}link-to:hover{color:rgb(0,86.1,178.5);text-decoration:none;cursor:pointer}route-view{display:none;flex:1}site-header{background-color:#fff;display:none;position:-webkit-sticky;position:sticky;top:0;height:var(--header-height)}#main{display:none;flex:1 auto;max-width:100%;overflow:hidden;flex-direction:column;overflow-y:scroll}.loaded #main,.loaded site-header,body.loaded,route-view.loaded{display:flex}route-view.left-panel-active{padding-left:var(--sidepanel-width)}input[type=checkbox],input[type=radio]{cursor:pointer}input[type=checkbox]+label,input[type=radio]+label{cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}button,button:active{outline:none}[tabindex=\\\"0\\\"]:focus-visible,aofl-list-option:focus-visible,button[type=button]:focus-visible,collapse-button:focus-visible{outline:1px solid #e50b0a;border:1px solid #e50b0a}@keyframes progress-bar-stripes{0%{background-position:1.6rem 0}to{background-position:0 0}}.modal-container{background-color:rgba(0,0,0,.2);position:fixed;top:0;bottom:0;right:0;left:0;z-index:var(--z-index-modal)}.modal-container :first-child{overflow:auto}.modal{position:relative;display:block;height:100vh}.modal-dialog-centered.modal-dialog-scrollable{height:auto;max-height:calc(100% - 2.8rem);min-height:auto}.modal-body,.modal-content,.modal-footer,.modal-header{border:none}.modal-header{font-size:2rem;padding:2.4rem}.modal-body{padding:0 2.4rem 4.8rem}.colored-header{color:#fff}.modal-body p{text-align:left}.colored-header-primary{background-color:#0d6efd}.colored-header-secondary{background-color:#adb5bd}.colored-header-success{background-color:#3c8104}.colored-header-info{background-color:#cfe2ff}.colored-header-warning{background-color:#e17a05}.colored-header-danger{background-color:#d20a09}.colored-header-light{background-color:#f8f9fa}.colored-header-dark{background-color:#000}@keyframes spinner-border{to{transform:rotate(1turn)}}@keyframes spinner-grow{0%{transform:scale(0)}50%{opacity:1}}.d-flex{display:flex!important}.d-inline-flex{display:inline-flex!important}.flex-wrap{flex-wrap:wrap!important}.justify-content-center{justify-content:center!important}.align-items-center{align-items:center!important}.mr-2{margin-right:.5rem!important}.mr-3{margin-right:1rem!important}[hidden]{visibility:hidden!important;height:0!important;width:0!important;min-height:unset!important}@media print{*,:after,:before{text-shadow:none!important;box-shadow:none!important}@page{size:a3}}.key-icon{width:14px;height:14px;border-radius:50%;display:inline-block}@media print{main::-webkit-scrollbar{display:none}main{-ms-overflow-style:none;scrollbar-width:none}}@page{size:A4;margin:20mm 16mm 20mm 16mm}:host{display:inline-block}.key-icon,.key-label{font-size:inherit}.key-label{white-space:nowrap}.key-label:last-of-type{margin-right:0}.key-icon{border:2px solid rgba(0,0,0,.5)}\", \"\"]);\n","import {until} from 'lit-html/directives/until';\nimport {generalLabels} from '@modules/i18n-labels';\n\nexport default (ctx, html) => html`\n
\n \n
\n\n
\n
\n \n
\n
\n \n
\n
\n`;\n","import styles from './template.css';\nimport template from './template';\nimport {AoflElement, customElement, property} from '@aofl/element';\nimport {i18nMixin} from '@aofl/i18n-mixin';\nimport translations from '../i18n';\n\n/**\n * @summary DeleteConfirmation\n * @extends {i18nMixin(AoflElement)}\n */\n@customElement('archive-confirmation')\nclass ArchiveConfirmation extends i18nMixin(AoflElement) {\n /**\n * @readonly\n */\n static is = 'archive-confirmation';\n\n @property({type: Boolean, attribute: true})\n submitting = false;\n\n /**\n * Creates an instance of ArchiveConfirmation.\n */\n constructor() {\n super();\n this.translations = translations;\n }\n\n @property({type: Object, attribute: true})\n data = {};\n\n cancel() {\n this.dispatchEvent(new CustomEvent('cancel'));\n }\n\n submit() {\n this.dispatchEvent(new CustomEvent('submit'));\n }\n\n /**\n * @return {Object}\n */\n render() {\n return super.render({\n default: {template, styles: [styles]}\n });\n }\n}\n\nexport default ArchiveConfirmation;\n","module.exports = __webpack_public_path__ + \"647ad16573ecd829e37cc31055b1015e.png\";","exports = module.exports = require(\"../../../node_modules/css-loader/dist/runtime/api.js\")(false);\n// Imports\nvar getUrl = require(\"../../../node_modules/css-loader/dist/runtime/getUrl.js\");\nvar ___CSS_LOADER_URL___0___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-light.woff2\"));\nvar ___CSS_LOADER_URL___1___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-lightit.woff2\"));\nvar ___CSS_LOADER_URL___2___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-reg.woff2\"));\nvar ___CSS_LOADER_URL___3___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-regit.woff2\"));\nvar ___CSS_LOADER_URL___4___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-sbold.woff2\"));\nvar ___CSS_LOADER_URL___5___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-sboldit.woff2\"));\nvar ___CSS_LOADER_URL___6___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-bold.woff2\"));\nvar ___CSS_LOADER_URL___7___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-boldit.woff2\"));\nvar ___CSS_LOADER_URL___8___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-Light.woff2\"));\nvar ___CSS_LOADER_URL___9___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-LightIt.woff2\"));\nvar ___CSS_LOADER_URL___10___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-Regular.woff2\"));\nvar ___CSS_LOADER_URL___11___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-RegularIt.woff2\"));\nvar ___CSS_LOADER_URL___12___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-Semibold.woff2\"));\nvar ___CSS_LOADER_URL___13___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-SemiboldIt.woff2\"));\nvar ___CSS_LOADER_URL___14___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-Bold.woff2\"));\nvar ___CSS_LOADER_URL___15___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-BoldIt.woff2\"));\nvar ___CSS_LOADER_URL___16___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-ExtraBold.woff2\"));\nvar ___CSS_LOADER_URL___17___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-ExtraBoldIt.woff2\"));\nvar ___CSS_LOADER_URL___18___ = getUrl(require(\"../../template/main/fonts/aofl-icons/icomoon.woff2?c6f21u\"));\n// Module\nexports.push([module.id, \"/*! @aofl-component */:root{--blue:#0d6efd;--indigo:#6610f2;--purple:#8b42ca;--pink:#e83e8c;--red:#e50b0a;--orange:#e17a05;--yellow:#ffc107;--green:#3c8104;--teal:#20c997;--cyan:#53c9dc;--white:#fff;--gray:#6b6b6b;--gray-dark:#343a40;--light-green:#b1dd53;--table-border-color:#d8d8d8;--gray-100:#f2f2f2;--gray-200:#d9d9d9;--gray-300:#d8d8d8;--gray-400:#ced4da;--gray-500:#adb5bd;--gray-600:#6c757d;--gray-700:#4a4a4a;--gray-800:#343a40;--gray-900:#212529;--gray-accessibility:#6b6b6b;--primary:#0d6efd;--secondary:#adb5bd;--success:#3c8104;--info:#cfe2ff;--warning:#e17a05;--danger:#d20a09;--light:#f8f9fa;--dark:#000;--breakpoint-xxs:0;--breakpoint-xs:375px;--breakpoint-sm:576px;--breakpoint-md:768px;--breakpoint-lg:992px;--breakpoint-xl:1200px;--font-family-sans-serif:aofl-sans,Arial,Helvetica,sans-serif;--font-family-monospace:SFMono-Regular,Menlo,Monaco,Consolas,\\\"Liberation Mono\\\",\\\"Courier New\\\",monospace;--z-index-dropdown:1000;--z-index-sticky:1020;--z-index-fixed:1030;--z-index-modal-backdrop:1040;--z-index-modal:1050;--z-index-popover:1060;--z-index-tooltip:1070;--header-height:6rem;--content-height:calc(100vh - 6rem);--sidepanel-width:20rem;--purple-color:#641da3;--purple-600:#956abc;--purple-400:#c7afdd;--purple-200:#e0d2ed;--struggling:#f6993b;--below-target:#ffcf00;--in_progress:#1280f5;--prior_knowledge:#edf887;--mastery_achieved:#69d112;--inactive:#d8d8d8}route-view{max-width:1200px}@font-face{font-family:aofl-sans;font-style:normal;font-weight:300;src:url(\" + ___CSS_LOADER_URL___0___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:italic;font-weight:300;src:url(\" + ___CSS_LOADER_URL___1___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:normal;font-weight:400;src:url(\" + ___CSS_LOADER_URL___2___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:italic;font-weight:400;src:url(\" + ___CSS_LOADER_URL___3___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:normal;font-weight:600;src:url(\" + ___CSS_LOADER_URL___4___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:italic;font-weight:600;src:url(\" + ___CSS_LOADER_URL___5___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:normal;font-weight:700;src:url(\" + ___CSS_LOADER_URL___6___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:italic;font-weight:700;src:url(\" + ___CSS_LOADER_URL___7___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:normal;font-weight:300;src:url(\" + ___CSS_LOADER_URL___8___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:italic;font-weight:300;src:url(\" + ___CSS_LOADER_URL___9___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:normal;font-weight:400;src:url(\" + ___CSS_LOADER_URL___10___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:italic;font-weight:400;src:url(\" + ___CSS_LOADER_URL___11___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:normal;font-weight:600;src:url(\" + ___CSS_LOADER_URL___12___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:italic;font-weight:600;src:url(\" + ___CSS_LOADER_URL___13___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:normal;font-weight:700;src:url(\" + ___CSS_LOADER_URL___14___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:italic;font-weight:700;src:url(\" + ___CSS_LOADER_URL___15___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:normal;font-weight:800;src:url(\" + ___CSS_LOADER_URL___16___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:italic;font-weight:800;src:url(\" + ___CSS_LOADER_URL___17___ + \") format(\\\"woff2\\\")}@font-face{font-family:icomoon;src:url(\" + ___CSS_LOADER_URL___18___ + \") format(\\\"woff2\\\");font-weight:400;font-style:normal;font-display:block}[class*=\\\" ai-\\\"],[class^=ai-]{font-family:icomoon!important;speak:never;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*,:after,:before{box-sizing:border-box}html{font-family:sans-serif;line-height:1.15;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:rgba(0,0,0,0)}figcaption,main,nav,section{display:block}[tabindex=\\\"-1\\\"]:focus{outline:0!important}strong{font-weight:bolder}caption{padding-top:.75rem;padding-bottom:.75rem;color:#6c757d;text-align:left;caption-side:bottom}button{border-radius:0}button:focus{outline:1px dotted;outline:5px auto -webkit-focus-ring-color}button,input{margin:0;font-family:inherit;font-size:inherit;line-height:inherit;overflow:visible}button{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]:not(:disabled),[type=reset]:not(:disabled),[type=submit]:not(:disabled),button:not(:disabled){cursor:pointer}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{padding:0;border-style:none}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}input[type=date],input[type=datetime-local],input[type=month],input[type=time]{-webkit-appearance:listbox}legend{display:block;width:100%;max-width:100%;padding:0;margin-bottom:.5rem;font-size:1.5rem;line-height:inherit;color:inherit;white-space:normal}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:none}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}summary{display:list-item;cursor:pointer}template{display:none}[hidden]{display:none!important}*{-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important}html{font-size:62.5%;height:100%}link-to{color:#0d6efd;text-decoration:none;background-color:transparent}link-to:hover{color:rgb(0,86.1,178.5);text-decoration:none;cursor:pointer}route-view{display:none;flex:1}site-header{background-color:#fff;display:none;position:-webkit-sticky;position:sticky;top:0;height:var(--header-height)}#main{display:none;flex:1 auto;max-width:100%;overflow:hidden;flex-direction:column;overflow-y:scroll}.loaded #main,.loaded site-header,body.loaded,route-view.loaded{display:flex}route-view.left-panel-active{padding-left:var(--sidepanel-width)}input[type=checkbox],input[type=radio]{cursor:pointer}button,button:active{outline:none}[tabindex=\\\"0\\\"]:focus-visible,aofl-list-option:focus-visible,button[type=button]:focus-visible,collapse-button:focus-visible{outline:1px solid #e50b0a;border:1px solid #e50b0a}@keyframes progress-bar-stripes{0%{background-position:1.6rem 0}to{background-position:0 0}}.modal-container{background-color:rgba(0,0,0,.2);position:fixed;top:0;bottom:0;right:0;left:0;z-index:var(--z-index-modal)}.modal-container :first-child{overflow:auto}.modal{position:relative;display:block;height:100vh}.modal-dialog-centered.modal-dialog-scrollable{height:auto;max-height:calc(100% - 2.8rem);min-height:auto}.modal-body,.modal-content,.modal-footer,.modal-header{border:none}.modal-header{font-size:2rem;padding:2.4rem}.modal-body{padding:0 2.4rem 4.8rem}.colored-header{color:#fff}.modal-body p{text-align:left}.colored-header-primary{background-color:#0d6efd}.colored-header-secondary{background-color:#adb5bd}.colored-header-success{background-color:#3c8104}.colored-header-info{background-color:#cfe2ff}.colored-header-warning{background-color:#e17a05}.colored-header-danger{background-color:#d20a09}.colored-header-light{background-color:#f8f9fa}.colored-header-dark{background-color:#000}@keyframes spinner-border{to{transform:rotate(1turn)}}@keyframes spinner-grow{0%{transform:scale(0)}50%{opacity:1}}.border-bottom{border-bottom:1px solid #d8d8d8!important}.rounded{border-radius:.4rem!important}.d-inline-block{display:inline-block!important}.mb-1{margin-bottom:.25rem!important}.mr-3{margin-right:1rem!important}.py-1{padding-top:.25rem!important;padding-bottom:.25rem!important}.py-3{padding-top:1rem!important}.px-3{padding-right:1rem!important}.py-3{padding-bottom:1rem!important}.px-3{padding-left:1rem!important}.text-center{text-align:center!important}[hidden]{visibility:hidden!important;height:0!important;width:0!important;min-height:unset!important}@media print{*,:after,:before{text-shadow:none!important;box-shadow:none!important}@page{size:a3}}@media print{main::-webkit-scrollbar{display:none}main{-ms-overflow-style:none;scrollbar-width:none}}@page{size:A4;margin:20mm 16mm 20mm 16mm}:host{display:block}.standard-code{min-width:115px}\", \"\"]);\n","module.exports = __webpack_public_path__ + \"9942a2cf91d7029f6437e451e21362d0.webp\";","import {storeInstance} from '@aofl/store/dist/legacy';\nimport {deepAssign} from '@aofl/object-utils';\nimport {\n sdoNs,\n} from '@modules/constants-enumerate';\nimport '@routes/dashboard/modules/teacher-dashboard/sdo';\n\nconst sdo = {\n namespace: sdoNs.MM_TEACHER_DASHBOARD,\n mutations: {\n\n /**\n * @return {Object}\n */\n init() {\n return {\n activeNodeId: null,\n studentInfo: {},\n nodes: {},\n };\n },\n setNodeInfo(subState, payload) {\n const nodes = {...subState.nodes};\n nodes[payload.id] = payload;\n return {\n ...subState,\n nodes,\n activeNodeId: payload.id\n };\n },\n setTeacherDashData(subState, payload) {\n return Object.assign(\n {...subState},\n {\n usage: payload?.usage,\n activityStatus: payload?.activity_statuses,\n studentActivity: payload?.student_activity,\n studentInfo: payload?.student_info,\n nodes: payload?.nodes,\n recommendedActivities: payload?.recommended_activities,\n activeInWeek: payload?.active_in_week,\n });\n },\n },\n decorators: [\n (nextState) => { // $actionItems\n const nextSubState = nextState[sdoNs.MM_TEACHER_DASHBOARD];\n const state = storeInstance.getState();\n const $studentInfo = {};\n if (typeof nextSubState.$studentInfo === 'undefined' ||\n nextSubState.studentInfo !== state[sdoNs.MM_TEACHER_DASHBOARD].studentInfo\n ) {\n for (const [studentId, student] of Object.entries(nextSubState.studentInfo)) {\n const capsLastNameFirstLetter = student.last_name?.charAt(0)?.toUpperCase();\n $studentInfo[studentId] = {\n id: studentId,\n first_name: student.first_name,\n last_name: student.last_name,\n initials: student.first_name ? student.first_name.charAt(0).toUpperCase() + capsLastNameFirstLetter : '',\n abbreviated: student.first_name ? student.first_name + ' ' + capsLastNameFirstLetter + '.' : '',\n };\n }\n\n nextState = deepAssign(nextState, sdoNs.MM_TEACHER_DASHBOARD, {\n $studentInfo,\n });\n }\n\n return nextState;\n },\n ],\n};\n\nstoreInstance.addState(sdo);\n","exports = module.exports = require(\"../../../../../node_modules/css-loader/dist/runtime/api.js\")(false);\n// Imports\nvar getUrl = require(\"../../../../../node_modules/css-loader/dist/runtime/getUrl.js\");\nvar ___CSS_LOADER_URL___0___ = getUrl(require(\"../../../../template/main/fonts/aofl-sans/aoflsans-light.woff2\"));\nvar ___CSS_LOADER_URL___1___ = getUrl(require(\"../../../../template/main/fonts/aofl-sans/aoflsans-lightit.woff2\"));\nvar ___CSS_LOADER_URL___2___ = getUrl(require(\"../../../../template/main/fonts/aofl-sans/aoflsans-reg.woff2\"));\nvar ___CSS_LOADER_URL___3___ = getUrl(require(\"../../../../template/main/fonts/aofl-sans/aoflsans-regit.woff2\"));\nvar ___CSS_LOADER_URL___4___ = getUrl(require(\"../../../../template/main/fonts/aofl-sans/aoflsans-sbold.woff2\"));\nvar ___CSS_LOADER_URL___5___ = getUrl(require(\"../../../../template/main/fonts/aofl-sans/aoflsans-sboldit.woff2\"));\nvar ___CSS_LOADER_URL___6___ = getUrl(require(\"../../../../template/main/fonts/aofl-sans/aoflsans-bold.woff2\"));\nvar ___CSS_LOADER_URL___7___ = getUrl(require(\"../../../../template/main/fonts/aofl-sans/aoflsans-boldit.woff2\"));\nvar ___CSS_LOADER_URL___8___ = getUrl(require(\"../../../../template/main/fonts/abcmouse-sans/ABCmouseSans-Light.woff2\"));\nvar ___CSS_LOADER_URL___9___ = getUrl(require(\"../../../../template/main/fonts/abcmouse-sans/ABCmouseSans-LightIt.woff2\"));\nvar ___CSS_LOADER_URL___10___ = getUrl(require(\"../../../../template/main/fonts/abcmouse-sans/ABCmouseSans-Regular.woff2\"));\nvar ___CSS_LOADER_URL___11___ = getUrl(require(\"../../../../template/main/fonts/abcmouse-sans/ABCmouseSans-RegularIt.woff2\"));\nvar ___CSS_LOADER_URL___12___ = getUrl(require(\"../../../../template/main/fonts/abcmouse-sans/ABCmouseSans-Semibold.woff2\"));\nvar ___CSS_LOADER_URL___13___ = getUrl(require(\"../../../../template/main/fonts/abcmouse-sans/ABCmouseSans-SemiboldIt.woff2\"));\nvar ___CSS_LOADER_URL___14___ = getUrl(require(\"../../../../template/main/fonts/abcmouse-sans/ABCmouseSans-Bold.woff2\"));\nvar ___CSS_LOADER_URL___15___ = getUrl(require(\"../../../../template/main/fonts/abcmouse-sans/ABCmouseSans-BoldIt.woff2\"));\nvar ___CSS_LOADER_URL___16___ = getUrl(require(\"../../../../template/main/fonts/abcmouse-sans/ABCmouseSans-ExtraBold.woff2\"));\nvar ___CSS_LOADER_URL___17___ = getUrl(require(\"../../../../template/main/fonts/abcmouse-sans/ABCmouseSans-ExtraBoldIt.woff2\"));\nvar ___CSS_LOADER_URL___18___ = getUrl(require(\"../../../../template/main/fonts/aofl-icons/icomoon.woff2?c6f21u\"));\n// Module\nexports.push([module.id, \"/*! @aofl-component */:root{--blue:#0d6efd;--indigo:#6610f2;--purple:#8b42ca;--pink:#e83e8c;--red:#e50b0a;--orange:#e17a05;--yellow:#ffc107;--green:#3c8104;--teal:#20c997;--cyan:#53c9dc;--white:#fff;--gray:#6b6b6b;--gray-dark:#343a40;--light-green:#b1dd53;--table-border-color:#d8d8d8;--gray-100:#f2f2f2;--gray-200:#d9d9d9;--gray-300:#d8d8d8;--gray-400:#ced4da;--gray-500:#adb5bd;--gray-600:#6c757d;--gray-700:#4a4a4a;--gray-800:#343a40;--gray-900:#212529;--gray-accessibility:#6b6b6b;--primary:#0d6efd;--secondary:#adb5bd;--success:#3c8104;--info:#cfe2ff;--warning:#e17a05;--danger:#d20a09;--light:#f8f9fa;--dark:#000;--breakpoint-xxs:0;--breakpoint-xs:375px;--breakpoint-sm:576px;--breakpoint-md:768px;--breakpoint-lg:992px;--breakpoint-xl:1200px;--font-family-sans-serif:aofl-sans,Arial,Helvetica,sans-serif;--font-family-monospace:SFMono-Regular,Menlo,Monaco,Consolas,\\\"Liberation Mono\\\",\\\"Courier New\\\",monospace;--z-index-dropdown:1000;--z-index-sticky:1020;--z-index-fixed:1030;--z-index-modal-backdrop:1040;--z-index-modal:1050;--z-index-popover:1060;--z-index-tooltip:1070;--header-height:6rem;--content-height:calc(100vh - 6rem);--sidepanel-width:20rem;--purple-color:#641da3;--purple-600:#956abc;--purple-400:#c7afdd;--purple-200:#e0d2ed;--struggling:#f6993b;--below-target:#ffcf00;--in_progress:#1280f5;--prior_knowledge:#edf887;--mastery_achieved:#69d112;--inactive:#d8d8d8}route-view{max-width:1200px}@font-face{font-family:aofl-sans;font-style:normal;font-weight:300;src:url(\" + ___CSS_LOADER_URL___0___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:italic;font-weight:300;src:url(\" + ___CSS_LOADER_URL___1___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:normal;font-weight:400;src:url(\" + ___CSS_LOADER_URL___2___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:italic;font-weight:400;src:url(\" + ___CSS_LOADER_URL___3___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:normal;font-weight:600;src:url(\" + ___CSS_LOADER_URL___4___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:italic;font-weight:600;src:url(\" + ___CSS_LOADER_URL___5___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:normal;font-weight:700;src:url(\" + ___CSS_LOADER_URL___6___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:italic;font-weight:700;src:url(\" + ___CSS_LOADER_URL___7___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:normal;font-weight:300;src:url(\" + ___CSS_LOADER_URL___8___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:italic;font-weight:300;src:url(\" + ___CSS_LOADER_URL___9___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:normal;font-weight:400;src:url(\" + ___CSS_LOADER_URL___10___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:italic;font-weight:400;src:url(\" + ___CSS_LOADER_URL___11___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:normal;font-weight:600;src:url(\" + ___CSS_LOADER_URL___12___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:italic;font-weight:600;src:url(\" + ___CSS_LOADER_URL___13___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:normal;font-weight:700;src:url(\" + ___CSS_LOADER_URL___14___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:italic;font-weight:700;src:url(\" + ___CSS_LOADER_URL___15___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:normal;font-weight:800;src:url(\" + ___CSS_LOADER_URL___16___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:italic;font-weight:800;src:url(\" + ___CSS_LOADER_URL___17___ + \") format(\\\"woff2\\\")}@font-face{font-family:icomoon;src:url(\" + ___CSS_LOADER_URL___18___ + \") format(\\\"woff2\\\");font-weight:400;font-style:normal;font-display:block}[class*=\\\" ai-\\\"],[class^=ai-]{font-family:icomoon!important;speak:never;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.ai-download:before{content:\\\"\\\\e916\\\"}*,:after,:before{box-sizing:border-box}html{font-family:sans-serif;line-height:1.15;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:rgba(0,0,0,0)}figcaption,main,nav,section{display:block}[tabindex=\\\"-1\\\"]:focus{outline:0!important}strong{font-weight:bolder}caption{padding-top:.75rem;padding-bottom:.75rem;color:#6c757d;text-align:left;caption-side:bottom}label{display:inline-block;margin-bottom:.8rem}button{border-radius:0}button:focus{outline:1px dotted;outline:5px auto -webkit-focus-ring-color}button,input{margin:0;font-family:inherit;font-size:inherit;line-height:inherit;overflow:visible}button{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]:not(:disabled),[type=reset]:not(:disabled),[type=submit]:not(:disabled),button:not(:disabled){cursor:pointer}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{padding:0;border-style:none}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}input[type=date],input[type=datetime-local],input[type=month],input[type=time]{-webkit-appearance:listbox}legend{display:block;width:100%;max-width:100%;padding:0;margin-bottom:.5rem;font-size:1.5rem;line-height:inherit;color:inherit;white-space:normal}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:none}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}summary{display:list-item;cursor:pointer}template{display:none}[hidden]{display:none!important}*{-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important}html{font-size:62.5%;height:100%}link-to{color:#0d6efd;text-decoration:none;background-color:transparent}link-to:hover{color:rgb(0,86.1,178.5);text-decoration:none;cursor:pointer}route-view{display:none;flex:1}site-header{background-color:#fff;display:none;position:-webkit-sticky;position:sticky;top:0;height:var(--header-height)}#main{display:none;flex:1 auto;max-width:100%;overflow:hidden;flex-direction:column;overflow-y:scroll}.loaded #main,.loaded site-header,body.loaded,route-view.loaded{display:flex}route-view.left-panel-active{padding-left:var(--sidepanel-width)}input[type=checkbox],input[type=radio]{cursor:pointer}input[type=checkbox]+label,input[type=radio]+label{cursor:pointer}.btn,input[type=checkbox]+label,input[type=radio]+label{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.btn{display:inline-block;font-weight:400;color:#000;text-align:center;vertical-align:middle;background-color:transparent;border:1px solid transparent;padding:.375rem .75rem;font-size:1.6rem;line-height:1.5;border-radius:.25rem;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.btn{transition:none}}.btn:hover{color:#000;text-decoration:none}.btn:focus{outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.btn.disabled,.btn:disabled{opacity:.65}.btn-link{font-weight:400;color:#0d6efd;text-decoration:none}.btn-link:hover{color:rgb(0,86.1,178.5);text-decoration:none}.btn-link:focus{text-decoration:none;box-shadow:none}.btn-link.disabled,.btn-link:disabled{color:#6c757d;pointer-events:none}.btn:disabled{cursor:not-allowed}.btn.disabled,link-to.btn.disabled,link-to.btn:disabled,link-to.btn[disabled]{pointer-events:none}button,button:active{outline:none}.btn:focus-visible,[tabindex=\\\"0\\\"]:focus-visible,aofl-list-option:focus-visible,button[type=button]:focus-visible,collapse-button:focus-visible{outline:1px solid #e50b0a;border:1px solid #e50b0a}.btn-link:focus-visible{border:2px solid #e50b0a}.btn.disabled,.btn:disabled{background:#cfe2ff;border-color:#cfe2ff;color:#0d6efd;opacity:1}ems-dropdown>button.btn{display:flex;align-items:center;border:1px solid var(--gray)}@keyframes progress-bar-stripes{0%{background-position:1.6rem 0}to{background-position:0 0}}.modal-container{background-color:rgba(0,0,0,.2);position:fixed;top:0;bottom:0;right:0;left:0;z-index:var(--z-index-modal)}.modal-container :first-child{overflow:auto}.modal{position:relative;display:block;height:100vh}.modal-dialog-centered.modal-dialog-scrollable{height:auto;max-height:calc(100% - 2.8rem);min-height:auto}.modal-body,.modal-content,.modal-footer,.modal-header{border:none}.modal-header{font-size:2rem;padding:2.4rem}.modal-body{padding:0 2.4rem 4.8rem}.colored-header{color:#fff}.modal-body p{text-align:left}.colored-header-primary{background-color:#0d6efd}.colored-header-secondary{background-color:#adb5bd}.colored-header-success{background-color:#3c8104}.colored-header-info{background-color:#cfe2ff}.colored-header-warning{background-color:#e17a05}.colored-header-danger{background-color:#d20a09}.colored-header-light{background-color:#f8f9fa}.colored-header-dark{background-color:#000}@keyframes spinner-border{to{transform:rotate(1turn)}}.spinner-border{display:inline-block;width:2rem;height:2rem;vertical-align:text-bottom;border:.25em solid;border-right:.25em solid transparent;border-radius:50%;animation:spinner-border .75s linear infinite}@keyframes spinner-grow{0%{transform:scale(0)}50%{opacity:1}}.d-flex{display:flex!important}.justify-content-end{justify-content:flex-end!important}.sr-only{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.mr-3{margin-right:1rem!important}.py-0{padding-top:0!important;padding-bottom:0!important}[hidden]{visibility:hidden!important;height:0!important;width:0!important;min-height:unset!important}@media print{*,:after,:before{text-shadow:none!important;box-shadow:none!important}@page{size:a3}}@media print{main::-webkit-scrollbar{display:none}main{-ms-overflow-style:none;scrollbar-width:none}}@page{size:A4;margin:20mm 16mm 20mm 16mm}:host{width:100%}\", \"\"]);\n","exports = module.exports = require(\"../../../node_modules/css-loader/dist/runtime/api.js\")(false);\n// Imports\nvar getUrl = require(\"../../../node_modules/css-loader/dist/runtime/getUrl.js\");\nvar ___CSS_LOADER_URL___0___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-light.woff2\"));\nvar ___CSS_LOADER_URL___1___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-lightit.woff2\"));\nvar ___CSS_LOADER_URL___2___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-reg.woff2\"));\nvar ___CSS_LOADER_URL___3___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-regit.woff2\"));\nvar ___CSS_LOADER_URL___4___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-sbold.woff2\"));\nvar ___CSS_LOADER_URL___5___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-sboldit.woff2\"));\nvar ___CSS_LOADER_URL___6___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-bold.woff2\"));\nvar ___CSS_LOADER_URL___7___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-boldit.woff2\"));\nvar ___CSS_LOADER_URL___8___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-Light.woff2\"));\nvar ___CSS_LOADER_URL___9___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-LightIt.woff2\"));\nvar ___CSS_LOADER_URL___10___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-Regular.woff2\"));\nvar ___CSS_LOADER_URL___11___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-RegularIt.woff2\"));\nvar ___CSS_LOADER_URL___12___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-Semibold.woff2\"));\nvar ___CSS_LOADER_URL___13___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-SemiboldIt.woff2\"));\nvar ___CSS_LOADER_URL___14___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-Bold.woff2\"));\nvar ___CSS_LOADER_URL___15___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-BoldIt.woff2\"));\nvar ___CSS_LOADER_URL___16___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-ExtraBold.woff2\"));\nvar ___CSS_LOADER_URL___17___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-ExtraBoldIt.woff2\"));\nvar ___CSS_LOADER_URL___18___ = getUrl(require(\"../../template/main/fonts/aofl-icons/icomoon.woff2?c6f21u\"));\n// Module\nexports.push([module.id, \"/*! @aofl-component */:root{--blue:#0d6efd;--indigo:#6610f2;--purple:#8b42ca;--pink:#e83e8c;--red:#e50b0a;--orange:#e17a05;--yellow:#ffc107;--green:#3c8104;--teal:#20c997;--cyan:#53c9dc;--white:#fff;--gray:#6b6b6b;--gray-dark:#343a40;--light-green:#b1dd53;--table-border-color:#d8d8d8;--gray-100:#f2f2f2;--gray-200:#d9d9d9;--gray-300:#d8d8d8;--gray-400:#ced4da;--gray-500:#adb5bd;--gray-600:#6c757d;--gray-700:#4a4a4a;--gray-800:#343a40;--gray-900:#212529;--gray-accessibility:#6b6b6b;--primary:#0d6efd;--secondary:#adb5bd;--success:#3c8104;--info:#cfe2ff;--warning:#e17a05;--danger:#d20a09;--light:#f8f9fa;--dark:#000;--breakpoint-xxs:0;--breakpoint-xs:375px;--breakpoint-sm:576px;--breakpoint-md:768px;--breakpoint-lg:992px;--breakpoint-xl:1200px;--font-family-sans-serif:aofl-sans,Arial,Helvetica,sans-serif;--font-family-monospace:SFMono-Regular,Menlo,Monaco,Consolas,\\\"Liberation Mono\\\",\\\"Courier New\\\",monospace;--z-index-dropdown:1000;--z-index-sticky:1020;--z-index-fixed:1030;--z-index-modal-backdrop:1040;--z-index-modal:1050;--z-index-popover:1060;--z-index-tooltip:1070;--header-height:6rem;--content-height:calc(100vh - 6rem);--sidepanel-width:20rem;--purple-color:#641da3;--purple-600:#956abc;--purple-400:#c7afdd;--purple-200:#e0d2ed;--struggling:#f6993b;--below-target:#ffcf00;--in_progress:#1280f5;--prior_knowledge:#edf887;--mastery_achieved:#69d112;--inactive:#d8d8d8}route-view{max-width:1200px}@font-face{font-family:aofl-sans;font-style:normal;font-weight:300;src:url(\" + ___CSS_LOADER_URL___0___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:italic;font-weight:300;src:url(\" + ___CSS_LOADER_URL___1___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:normal;font-weight:400;src:url(\" + ___CSS_LOADER_URL___2___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:italic;font-weight:400;src:url(\" + ___CSS_LOADER_URL___3___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:normal;font-weight:600;src:url(\" + ___CSS_LOADER_URL___4___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:italic;font-weight:600;src:url(\" + ___CSS_LOADER_URL___5___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:normal;font-weight:700;src:url(\" + ___CSS_LOADER_URL___6___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:italic;font-weight:700;src:url(\" + ___CSS_LOADER_URL___7___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:normal;font-weight:300;src:url(\" + ___CSS_LOADER_URL___8___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:italic;font-weight:300;src:url(\" + ___CSS_LOADER_URL___9___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:normal;font-weight:400;src:url(\" + ___CSS_LOADER_URL___10___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:italic;font-weight:400;src:url(\" + ___CSS_LOADER_URL___11___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:normal;font-weight:600;src:url(\" + ___CSS_LOADER_URL___12___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:italic;font-weight:600;src:url(\" + ___CSS_LOADER_URL___13___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:normal;font-weight:700;src:url(\" + ___CSS_LOADER_URL___14___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:italic;font-weight:700;src:url(\" + ___CSS_LOADER_URL___15___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:normal;font-weight:800;src:url(\" + ___CSS_LOADER_URL___16___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:italic;font-weight:800;src:url(\" + ___CSS_LOADER_URL___17___ + \") format(\\\"woff2\\\")}@font-face{font-family:icomoon;src:url(\" + ___CSS_LOADER_URL___18___ + \") format(\\\"woff2\\\");font-weight:400;font-style:normal;font-display:block}[class*=\\\" ai-\\\"],[class^=ai-]{font-family:icomoon!important;speak:never;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.ai-chevron-right:before{content:\\\"\\\\e90f\\\"}.ai-create:before{content:\\\"\\\\e913\\\"}*,:after,:before{box-sizing:border-box}html{font-family:sans-serif;line-height:1.15;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:rgba(0,0,0,0)}figcaption,main,nav,section{display:block}[tabindex=\\\"-1\\\"]:focus{outline:0!important}h3{margin-bottom:1rem}h3,p{margin-top:0}p{margin-bottom:1.6rem}strong{font-weight:bolder}small{font-size:80%}a{color:#0d6efd;background-color:transparent}a,a:hover{text-decoration:none}a:hover{color:rgb(0,86.1,178.5)}a:not([href]):not([tabindex]),a:not([href]):not([tabindex]):focus,a:not([href]):not([tabindex]):hover{color:inherit;text-decoration:none}a:not([href]):not([tabindex]):focus{outline:0}caption{padding-top:.75rem;padding-bottom:.75rem;color:#6c757d;text-align:left;caption-side:bottom}label{display:inline-block;margin-bottom:.8rem}button{border-radius:0}button:focus{outline:1px dotted;outline:5px auto -webkit-focus-ring-color}button,input{margin:0;font-family:inherit;font-size:inherit;line-height:inherit;overflow:visible}button{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]:not(:disabled),[type=reset]:not(:disabled),[type=submit]:not(:disabled),button:not(:disabled){cursor:pointer}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{padding:0;border-style:none}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}input[type=date],input[type=datetime-local],input[type=month],input[type=time]{-webkit-appearance:listbox}legend{display:block;width:100%;max-width:100%;padding:0;margin-bottom:.5rem;font-size:1.5rem;line-height:inherit;color:inherit;white-space:normal}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:none}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}summary{display:list-item;cursor:pointer}template{display:none}[hidden]{display:none!important}*{-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important}html{font-size:62.5%;height:100%}link-to{color:#0d6efd;text-decoration:none;background-color:transparent}link-to:hover{color:rgb(0,86.1,178.5);text-decoration:none;cursor:pointer}route-view{display:none;flex:1}site-header{background-color:#fff;display:none;position:-webkit-sticky;position:sticky;top:0;height:var(--header-height)}#main{display:none;flex:1 auto;max-width:100%;overflow:hidden;flex-direction:column;overflow-y:scroll}.loaded #main,.loaded site-header,body.loaded,route-view.loaded{display:flex}route-view.left-panel-active{padding-left:var(--sidepanel-width)}.h3,h3{margin-bottom:1rem;font-weight:500;line-height:1.2;font-size:1.8rem}.small,small{font-size:85%;font-weight:400}.row{display:flex;flex-wrap:wrap;margin-right:-15px;margin-left:-15px}.no-gutters{margin-right:0;margin-left:0}.no-gutters>[class*=col-]{padding-right:0;padding-left:0}.col-12,.col-lg-4,.col-md-6{position:relative;width:100%;padding-right:15px;padding-left:15px}.col-12{flex:0 0 100%;max-width:100%}@media (min-width:768px){.col-md-6{flex:0 0 50%;max-width:50%}}@media (min-width:992px){.col-lg-4{flex:0 0 33.3333333333%;max-width:33.3333333333%}}input[type=checkbox],input[type=radio]{cursor:pointer}input[type=checkbox]+label,input[type=radio]+label{cursor:pointer}.btn,input[type=checkbox]+label,input[type=radio]+label{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.btn{display:inline-block;font-weight:400;color:#000;text-align:center;vertical-align:middle;background-color:transparent;border:1px solid transparent;padding:.375rem .75rem;font-size:1.6rem;line-height:1.5;border-radius:.25rem;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.btn{transition:none}}.btn:hover{color:#000;text-decoration:none}.btn:focus{outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.btn.disabled,.btn:disabled{opacity:.65}a.btn.disabled{pointer-events:none}.btn-link{font-weight:400;color:#0d6efd;text-decoration:none}.btn-link:hover{color:rgb(0,86.1,178.5);text-decoration:none}.btn-link:focus{text-decoration:none;box-shadow:none}.btn-link.disabled,.btn-link:disabled{color:#6c757d;pointer-events:none}.btn:disabled{cursor:not-allowed}.btn.disabled,link-to.btn.disabled,link-to.btn:disabled,link-to.btn[disabled]{pointer-events:none}button,button:active{outline:none}.btn:focus-visible,[tabindex=\\\"0\\\"]:focus-visible,a:focus-visible,aofl-list-option:focus-visible,button[type=button]:focus-visible,collapse-button:focus-visible{outline:1px solid #e50b0a;border:1px solid #e50b0a}.btn-link:focus-visible{border:2px solid #e50b0a}.btn.disabled,.btn:disabled{background:#cfe2ff;border-color:#cfe2ff;color:#0d6efd;opacity:1}ems-dropdown>button.btn{display:flex;align-items:center;border:1px solid var(--gray)}.card{position:relative;display:flex;flex-direction:column;min-width:0;word-wrap:break-word;background-color:#fff;background-clip:border-box;border:1px solid rgba(0,0,0,.125);border-radius:.25rem}.card-border-color-left{border-left:.5rem solid #c9c9c9}.card-border-color-left.card-border-color-primary{border-left-color:#0d6efd}.card-border-color-left.card-border-color-success{border-left-color:#3c8104}.card-border-color-left.card-border-color-info{border-left-color:#cfe2ff}.card-border-color-left.card-border-color-warning{border-left-color:#e17a05}.card-border-color-left.card-border-color-danger{border-left-color:#d20a09}@keyframes progress-bar-stripes{0%{background-position:1.6rem 0}to{background-position:0 0}}.modal-container{background-color:rgba(0,0,0,.2);position:fixed;top:0;bottom:0;right:0;left:0;z-index:var(--z-index-modal)}.modal-container :first-child{overflow:auto}.modal{position:relative;display:block;height:100vh}.modal-dialog-centered.modal-dialog-scrollable{height:auto;max-height:calc(100% - 2.8rem);min-height:auto}.modal-body,.modal-content,.modal-footer,.modal-header{border:none}.modal-header{font-size:2rem;padding:2.4rem}.modal-body{padding:0 2.4rem 4.8rem}.colored-header{color:#fff}.modal-body p{text-align:left}.colored-header-primary{background-color:#0d6efd}.colored-header-secondary{background-color:#adb5bd}.colored-header-success{background-color:#3c8104}.colored-header-info{background-color:#cfe2ff}.colored-header-warning{background-color:#e17a05}.colored-header-danger{background-color:#d20a09}.colored-header-light{background-color:#f8f9fa}.colored-header-dark{background-color:#000}@keyframes spinner-border{to{transform:rotate(1turn)}}.spinner-border{display:inline-block;width:2rem;height:2rem;vertical-align:text-bottom;border:.25em solid;border-right:.25em solid transparent;border-radius:50%;animation:spinner-border .75s linear infinite}@keyframes spinner-grow{0%{transform:scale(0)}50%{opacity:1}}.border-top-0{border-top:0!important}.border-right-0{border-right:0!important}.d-flex{display:flex!important}.flex-column{flex-direction:column!important}.justify-content-between{justify-content:space-between!important}.align-items-end{align-items:flex-end!important}@media (min-width:576px){.flex-sm-row{flex-direction:row!important}}.sr-only{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.w-50{width:50%!important}.m-0{margin:0!important}.mb-4{margin-bottom:1.5rem!important}.pb-0{padding-bottom:0!important}.pl-2{padding-left:.5rem!important}.pr-5{padding-right:3rem!important}.m-auto{margin:auto!important}.text-center{text-align:center!important}.text-body{color:#000!important}.text-muted{color:#6c757d!important}[hidden]{visibility:hidden!important;height:0!important;width:0!important;min-height:unset!important}@media print{*,:after,:before{text-shadow:none!important;box-shadow:none!important}a:not(.btn){text-decoration:underline}h3,p{orphans:3;widows:3}h3{page-break-after:avoid}@page{size:a3}}@media print{main::-webkit-scrollbar{display:none}main{-ms-overflow-style:none;scrollbar-width:none}}@page{size:A4;margin:20mm 16mm 20mm 16mm}:host{display:inline-block}.card-border-color-purple{border-left-color:var(--purple)}.card-nowrap{white-space:nowrap}h3{font-size:2.4rem}\", \"\"]);\n","/* eslint no-invalid-this: \"off\" */\n\nconst EMAIL_REGEX = /^(?!(?:(?:\\x22?\\x5C[\\x00-\\x7E]\\x22?)|(?:\\x22?[^\\x5C\\x22]\\x22?)){255,})(?!(?:(?:\\x22?\\x5C[\\x00-\\x7E]\\x22?)|(?:\\x22?[^\\x5C\\x22]\\x22?)){65,}@)(?:(?:[\\x21\\x23-\\x27\\x2A\\x2B\\x2D\\x2F-\\x39\\x3D\\x3F\\x5E-\\x7E]+)|(?:\\x22(?:[\\x01-\\x08\\x0B\\x0C\\x0E-\\x1F\\x21\\x23-\\x5B\\x5D-\\x7F]|(?:\\x5C[\\x00-\\x7F]))*\\x22))(?:\\.(?:(?:[\\x21\\x23-\\x27\\x2A\\x2B\\x2D\\x2F-\\x39\\x3D\\x3F\\x5E-\\x7E]+)|(?:\\x22(?:[\\x01-\\x08\\x0B\\x0C\\x0E-\\x1F\\x21\\x23-\\x5B\\x5D-\\x7F]|(?:\\x5C[\\x00-\\x7F]))*\\x22)))*@(?:(?:(?!.*[^.]{64,})(?:(?:(?:xn--)?[a-z0-9]+(?:-+[a-z0-9]+)*\\.){1,126})+(?:(?:[a-z][a-z0-9]*)|(?:(?:xn--)[a-z0-9]+))(?:-+[a-z0-9]+)*)|(?:\\[(?:(?:IPv6:(?:(?:[a-f0-9]{1,4}(?::[a-f0-9]{1,4}){7})|(?:(?!(?:.*[a-f0-9][:\\]]){7,})(?:[a-f0-9]{1,4}(?::[a-f0-9]{1,4}){0,5})?::(?:[a-f0-9]{1,4}(?::[a-f0-9]{1,4}){0,5})?)))|(?:(?:IPv6:(?:(?:[a-f0-9]{1,4}(?::[a-f0-9]{1,4}){5}:)|(?:(?!(?:.*[a-f0-9]:){5,})(?:[a-f0-9]{1,4}(?::[a-f0-9]{1,4}){0,3})?::(?:[a-f0-9]{1,4}(?::[a-f0-9]{1,4}){0,3}:)?)))?(?:(?:25[0-5])|(?:2[0-4][0-9])|(?:1[0-9]{2})|(?:[1-9]?[0-9]))(?:\\.(?:(?:25[0-5])|(?:2[0-4][0-9])|(?:1[0-9]{2})|(?:[1-9]?[0-9]))){3}))]))$/i;\nconst CHECKABLE_DOMAINS = {\n gmail: 6,\n hotmail: 4,\n live: 4,\n msn: 4,\n yahoo: 4,\n ymail: 4\n};\n\nconst optionalRequired = (propName) => {\n return function optionalRequiredValidator(value) {\n if (typeof this.target[propName] === 'undefined') return false;\n return Boolean(this.target[propName]) || Boolean(value);\n };\n};\n\nconst hasUppercaseLetter = (input) => {\n return /(?=.*[A-Z])/.test(input);\n};\n\nconst hasAtLeastOneNumber = (input) => {\n return /(?=.*[0-9])/.test(input);\n};\n\nconst hasSpecialCharacter = (input) => {\n return /(?=.*[^a-zA-Z0-9\\s])/.test(input);\n};\n\nconst doesMatchEmail = (input, email) => {\n const emailUser = email.substring(0, email.indexOf('@'));\n const regex = new RegExp(`\\\\w*${emailUser}\\\\w*`, 'i');\n return regex.test(input);\n}\n\nconst doesMatchString = (input, name) => {\n const caseInsensitiveInput = input.toLowerCase();\n const caseInsensitiveName = name.toLowerCase();\n return caseInsensitiveInput.includes(caseInsensitiveName);\n};\n\nconst hasNoBlankSpace = (input) => {\n return !/\\s/.test(input);\n};\n\nconst emailLike = (email) => {\n if (email === null) {\n return true;\n }\n const e = email.trim();\n if (e.length === 0) {\n return true;\n }\n const validEmail = EMAIL_REGEX.test(e);\n if (validEmail) {\n const emailParts = email.split('@');\n if (emailParts.length === 2) {\n for (const key in CHECKABLE_DOMAINS) {\n /* istanbul ignore next */\n if (!CHECKABLE_DOMAINS.hasOwnProperty(key)) continue;\n if (emailParts[1].indexOf(key) === -1 || emailParts[0].length >= CHECKABLE_DOMAINS[key]) continue;\n return false;\n }\n }\n }\n\n return validEmail;\n};\n\nconst phoneLike = (phone) => {\n if (phone === null) {\n return true;\n }\n phone = phone.trim();\n if (phone.length === 0) {\n return true;\n }\n const empty = new RegExp('^[\\+][0-9]{1,3}$');\n if (empty.test(phone)) {\n return true;\n }\n if (phone.substring(0, 3) === '+1 ') {\n return phone.length === 17;\n }\n if (phone.substring(0, 4) === '+01 ') {\n return phone.length === 18;\n }\n phone = phone.replace(/\\D/g, '');\n const regex = new RegExp('^[0-9]{7,15}$');\n return regex.test(phone);\n};\n\nexport {\n optionalRequired,\n emailLike,\n phoneLike,\n hasAtLeastOneNumber,\n hasUppercaseLetter,\n hasSpecialCharacter,\n doesMatchEmail,\n doesMatchString,\n hasNoBlankSpace,\n};\n","import {repeat} from 'lit-html/directives/repeat';\nimport {until} from 'lit-html/directives/until';\nexport default (ctx, html) => html`\n
\n ${repeat(ctx.legend, (i) => i.label, (i) => html`\n
\n
\n
${until(i.label)}
\n
\n `)}\n
\n`;\n","import styles from './template.css';\nimport template from './template';\nimport {AoflElement, property, customElement} from '@aofl/element';\nimport {i18nMixin} from '@aofl/i18n-mixin';\nimport translations from '../i18n';\n/**\n * @summary LegendElement\n * @extends {AoflElement}\n */\n@customElement('legend-element')\nclass LegendElement extends i18nMixin(AoflElement) {\n /**\n * Creates an instance of LegendElement.\n */\n constructor() {\n super();\n this.translations = translations;\n }\n\n @property({type: Array})\n legend = [];\n\n /**\n * @readonly\n */\n static is = 'legend-element';\n\n /**\n *\n * @return {Object}\n */\n render() {\n return super.render({\n default: {template, styles: [styles]}\n });\n }\n}\n\nexport default LegendElement;\n","export default (ctx, html) => html`\n \n`;\n","import styles from './template.css';\nimport template from './template';\nimport {AoflElement, customElement} from '@aofl/element';\nimport {property} from 'lit-element';\nimport {ApiService} from './../api-service';\nimport {mapStatePropertiesMixin} from '@aofl/map-state-properties-mixin';\nimport {storeInstance} from '@aofl/store/dist/legacy';\n\n/**\n * @summary SearchExportButton\n * @extends {mapStatePropertiesMixin(AoflElement)}\n */\n@customElement('search-export-button')\nclass SearchExportButton extends mapStatePropertiesMixin(AoflElement) {\n /**\n * Creates an instance of SearchExportButton.\n */\n constructor() {\n super();\n this.storeInstance = storeInstance;\n }\n\n /**\n * @readonly\n */\n static get is() {\n return 'search-export-button';\n }\n\n @property({type: String})\n ['search-type'] = '';\n\n @property({type: String})\n ['search-namespace'] = '';\n\n @property({type: Array, attribute: false})\n tableConfig = [];\n\n @property({type: Array, attribute: false})\n results = [];\n\n @property({type: Array, attribute: false})\n filterIds = [];\n\n @property({type: Array, attribute: false})\n notSelected = [];\n\n @property({type: String, attribute: false})\n selectionMode = '';\n\n exportSearch = async (e) => {\n e.preventDefault();\n const searchState = storeInstance.getState()[this['search-namespace']];\n const {$search, $filters, $sort} = searchState;\n const promises = this.tableConfig.map((item) => item.label);\n const results = await Promise.all(promises);\n const fields = this.tableConfig.map((item, index) => {\n return {\n key: item.key,\n label: results[index].strings[0]\n };\n });\n const form = document.createElement('form');\n form.method = 'POST';\n form.action = await ApiService.getDownloadRequestURL('search_download_export');\n const args = document.createElement('input');\n args.type = 'hidden';\n args.name = 'arguments';\n args.value = JSON.stringify({\n search_type: this['search-type'],\n search_params: {\n search: $search,\n filters: $filters,\n sort: $sort\n },\n fields,\n filter_ids: this.filterIds,\n not_selected: this.notSelected,\n selection_mode: this.selectionMode,\n i18n: [],\n });\n form.appendChild(args);\n\n document.body.appendChild(form);\n form.submit();\n };\n\n keyPressHandler = (e) => {\n if (e.key === 'Enter') {\n this.exportSearch();\n }\n }\n\n connectedCallback() {\n super.connectedCallback();\n\n this.addEventListener('click', this.exportSearch);\n this.addEventListener('keypress', this.keyPressHandler);\n }\n /**\n *\n * @return {Object}\n */\n render() {\n return super.render(template, [styles]);\n }\n\n disconnectedCallback() {\n this.removeEventListener('click', this.exportSearch);\n super.disconnectedCallback();\n }\n}\n\nexport default SearchExportButton;\n","exports = module.exports = require(\"../../../node_modules/css-loader/dist/runtime/api.js\")(false);\n// Imports\nvar getUrl = require(\"../../../node_modules/css-loader/dist/runtime/getUrl.js\");\nvar ___CSS_LOADER_URL___0___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-light.woff2\"));\nvar ___CSS_LOADER_URL___1___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-lightit.woff2\"));\nvar ___CSS_LOADER_URL___2___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-reg.woff2\"));\nvar ___CSS_LOADER_URL___3___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-regit.woff2\"));\nvar ___CSS_LOADER_URL___4___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-sbold.woff2\"));\nvar ___CSS_LOADER_URL___5___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-sboldit.woff2\"));\nvar ___CSS_LOADER_URL___6___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-bold.woff2\"));\nvar ___CSS_LOADER_URL___7___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-boldit.woff2\"));\nvar ___CSS_LOADER_URL___8___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-Light.woff2\"));\nvar ___CSS_LOADER_URL___9___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-LightIt.woff2\"));\nvar ___CSS_LOADER_URL___10___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-Regular.woff2\"));\nvar ___CSS_LOADER_URL___11___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-RegularIt.woff2\"));\nvar ___CSS_LOADER_URL___12___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-Semibold.woff2\"));\nvar ___CSS_LOADER_URL___13___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-SemiboldIt.woff2\"));\nvar ___CSS_LOADER_URL___14___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-Bold.woff2\"));\nvar ___CSS_LOADER_URL___15___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-BoldIt.woff2\"));\nvar ___CSS_LOADER_URL___16___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-ExtraBold.woff2\"));\nvar ___CSS_LOADER_URL___17___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-ExtraBoldIt.woff2\"));\nvar ___CSS_LOADER_URL___18___ = getUrl(require(\"../../template/main/fonts/aofl-icons/icomoon.woff2?c6f21u\"));\n// Module\nexports.push([module.id, \"/*! @aofl-component */:root{--blue:#0d6efd;--indigo:#6610f2;--purple:#8b42ca;--pink:#e83e8c;--red:#e50b0a;--orange:#e17a05;--yellow:#ffc107;--green:#3c8104;--teal:#20c997;--cyan:#53c9dc;--white:#fff;--gray:#6b6b6b;--gray-dark:#343a40;--light-green:#b1dd53;--table-border-color:#d8d8d8;--gray-100:#f2f2f2;--gray-200:#d9d9d9;--gray-300:#d8d8d8;--gray-400:#ced4da;--gray-500:#adb5bd;--gray-600:#6c757d;--gray-700:#4a4a4a;--gray-800:#343a40;--gray-900:#212529;--gray-accessibility:#6b6b6b;--primary:#0d6efd;--secondary:#adb5bd;--success:#3c8104;--info:#cfe2ff;--warning:#e17a05;--danger:#d20a09;--light:#f8f9fa;--dark:#000;--breakpoint-xxs:0;--breakpoint-xs:375px;--breakpoint-sm:576px;--breakpoint-md:768px;--breakpoint-lg:992px;--breakpoint-xl:1200px;--font-family-sans-serif:aofl-sans,Arial,Helvetica,sans-serif;--font-family-monospace:SFMono-Regular,Menlo,Monaco,Consolas,\\\"Liberation Mono\\\",\\\"Courier New\\\",monospace;--z-index-dropdown:1000;--z-index-sticky:1020;--z-index-fixed:1030;--z-index-modal-backdrop:1040;--z-index-modal:1050;--z-index-popover:1060;--z-index-tooltip:1070;--header-height:6rem;--content-height:calc(100vh - 6rem);--sidepanel-width:20rem;--purple-color:#641da3;--purple-600:#956abc;--purple-400:#c7afdd;--purple-200:#e0d2ed;--struggling:#f6993b;--below-target:#ffcf00;--in_progress:#1280f5;--prior_knowledge:#edf887;--mastery_achieved:#69d112;--inactive:#d8d8d8}route-view{max-width:1200px}@font-face{font-family:aofl-sans;font-style:normal;font-weight:300;src:url(\" + ___CSS_LOADER_URL___0___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:italic;font-weight:300;src:url(\" + ___CSS_LOADER_URL___1___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:normal;font-weight:400;src:url(\" + ___CSS_LOADER_URL___2___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:italic;font-weight:400;src:url(\" + ___CSS_LOADER_URL___3___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:normal;font-weight:600;src:url(\" + ___CSS_LOADER_URL___4___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:italic;font-weight:600;src:url(\" + ___CSS_LOADER_URL___5___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:normal;font-weight:700;src:url(\" + ___CSS_LOADER_URL___6___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:italic;font-weight:700;src:url(\" + ___CSS_LOADER_URL___7___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:normal;font-weight:300;src:url(\" + ___CSS_LOADER_URL___8___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:italic;font-weight:300;src:url(\" + ___CSS_LOADER_URL___9___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:normal;font-weight:400;src:url(\" + ___CSS_LOADER_URL___10___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:italic;font-weight:400;src:url(\" + ___CSS_LOADER_URL___11___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:normal;font-weight:600;src:url(\" + ___CSS_LOADER_URL___12___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:italic;font-weight:600;src:url(\" + ___CSS_LOADER_URL___13___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:normal;font-weight:700;src:url(\" + ___CSS_LOADER_URL___14___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:italic;font-weight:700;src:url(\" + ___CSS_LOADER_URL___15___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:normal;font-weight:800;src:url(\" + ___CSS_LOADER_URL___16___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:italic;font-weight:800;src:url(\" + ___CSS_LOADER_URL___17___ + \") format(\\\"woff2\\\")}@font-face{font-family:icomoon;src:url(\" + ___CSS_LOADER_URL___18___ + \") format(\\\"woff2\\\");font-weight:400;font-style:normal;font-display:block}[class*=\\\" ai-\\\"],[class^=ai-]{font-family:icomoon!important;speak:never;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.ai-target:before{content:\\\"\\\\e904\\\"}.ai-English-Support:before{content:\\\"\\\\e917\\\"}.ai-Math-Practices:before{content:\\\"\\\\e921\\\"}.ai-Social-Emotional:before{content:\\\"\\\\e92b\\\"}.ai-Try-It:before{content:\\\"\\\\e935\\\"}.ai-Chevron_Black:before{content:\\\"\\\\e938\\\"}*,:after,:before{box-sizing:border-box}html{font-family:sans-serif;line-height:1.15;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:rgba(0,0,0,0)}figcaption,main,nav,section{display:block}[tabindex=\\\"-1\\\"]:focus{outline:0!important}h2,h4,ul{margin-top:0;margin-bottom:1rem}ul ul{margin-bottom:0}strong{font-weight:bolder}a{color:#0d6efd;background-color:transparent}a,a:hover{text-decoration:none}a:hover{color:rgb(0,86.1,178.5)}a:not([href]):not([tabindex]),a:not([href]):not([tabindex]):focus,a:not([href]):not([tabindex]):hover{color:inherit;text-decoration:none}a:not([href]):not([tabindex]):focus{outline:0}code{font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:1em}img{border-style:none}img,svg{vertical-align:middle}svg{overflow:hidden}caption{padding-top:.75rem;padding-bottom:.75rem;color:#6c757d;text-align:left;caption-side:bottom}label{display:inline-block;margin-bottom:.8rem}button{border-radius:0}button:focus{outline:1px dotted;outline:5px auto -webkit-focus-ring-color}button,input{margin:0;font-family:inherit;font-size:inherit;line-height:inherit;overflow:visible}button{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]:not(:disabled),[type=reset]:not(:disabled),[type=submit]:not(:disabled),button:not(:disabled){cursor:pointer}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{padding:0;border-style:none}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}input[type=date],input[type=datetime-local],input[type=month],input[type=time]{-webkit-appearance:listbox}legend{display:block;width:100%;max-width:100%;padding:0;margin-bottom:.5rem;font-size:1.5rem;line-height:inherit;color:inherit;white-space:normal}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:none}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}summary{display:list-item;cursor:pointer}template{display:none}[hidden]{display:none!important}*{-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important}html{font-size:62.5%;height:100%}link-to{color:#0d6efd;text-decoration:none;background-color:transparent}link-to:hover{color:rgb(0,86.1,178.5);text-decoration:none;cursor:pointer}route-view{display:none;flex:1}site-header{background-color:#fff;display:none;position:-webkit-sticky;position:sticky;top:0;height:var(--header-height)}#main{display:none;flex:1 auto;max-width:100%;overflow:hidden;flex-direction:column;overflow-y:scroll}.loaded #main,.loaded site-header,body.loaded,route-view.loaded{display:flex}route-view.left-panel-active{padding-left:var(--sidepanel-width)}@media (max-width:767.98px){#content{padding-left:0!important}}.h2,.h4,h2,h4{margin-bottom:1rem;font-weight:500;line-height:1.2}.h2,h2{font-size:2rem}.h4,h4{font-size:1.6rem}code{font-size:87.5%;color:#e83e8c;word-break:break-word}a>code{color:inherit}input[type=checkbox],input[type=radio]{cursor:pointer}input[type=checkbox]+label,input[type=radio]+label{cursor:pointer}.btn,input[type=checkbox]+label,input[type=radio]+label{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.btn{display:inline-block;font-weight:400;color:#000;text-align:center;vertical-align:middle;background-color:transparent;border:1px solid transparent;padding:.375rem .75rem;font-size:1.6rem;line-height:1.5;border-radius:.25rem;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.btn{transition:none}}.btn:hover{color:#000;text-decoration:none}.btn:focus{outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.btn:disabled{opacity:.65}.btn-primary{color:#fff;background-color:#0d6efd;border-color:#0d6efd}.btn-primary:hover{color:#fff;background-color:rgb(1.8668032787,92.4067622951,225.8831967213);border-color:rgb(1.762295082,87.2336065574,213.237704918)}.btn-primary:focus{box-shadow:0 0 0 .2rem rgba(49.3,131.75,253.3,.5)}.btn-primary:disabled{color:#fff;background-color:#0d6efd;border-color:#0d6efd}.btn-primary:not(:disabled):not(.disabled):active{color:#fff;background-color:rgb(1.762295082,87.2336065574,213.237704918);border-color:rgb(1.6577868852,82.0604508197,200.5922131148)}.btn-primary:not(:disabled):not(.disabled):active:focus{box-shadow:0 0 0 .2rem rgba(49.3,131.75,253.3,.5)}.btn-outline-light{color:#f8f9fa;border-color:#f8f9fa}.btn-outline-light:hover{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-outline-light:focus{box-shadow:0 0 0 .2rem rgba(248,249,250,.5)}.btn-outline-light:disabled{color:#f8f9fa;background-color:transparent}.btn-outline-light:not(:disabled):not(.disabled):active{color:#212529;background-color:#f8f9fa;border-color:#f8f9fa}.btn-outline-light:not(:disabled):not(.disabled):active:focus{box-shadow:0 0 0 .2rem rgba(248,249,250,.5)}.btn:disabled{cursor:not-allowed}link-to.btn:disabled,link-to.btn[disabled]{pointer-events:none}.btn-outline-light{color:#000;border-color:#ced4da;background:#fff}.btn-outline-light:disabled{color:#000}.btn-outline-light:hover{border-color:#ced4da}button,button:active{outline:none}.btn:focus-visible,[tabindex=\\\"0\\\"]:focus-visible,a:focus-visible,aofl-list-option:focus-visible,button[type=button]:focus-visible,collapse-button:focus-visible{outline:1px solid #e50b0a;border:1px solid #e50b0a}.btn-primary{font-weight:600;border-width:2px}.btn:disabled{background:#cfe2ff;border-color:#cfe2ff;color:#0d6efd;opacity:1}ems-dropdown>button.btn{display:flex;align-items:center;border:1px solid var(--gray)}.btn-group{position:relative;display:inline-flex;vertical-align:middle}.btn-group>.btn{position:relative;flex:1 1 auto}.btn-group>.btn:active,.btn-group>.btn:focus,.btn-group>.btn:hover{z-index:1}.btn-group>.btn-group:not(:first-child),.btn-group>.btn:not(:first-child){margin-left:-1px}.btn-group>.btn-group:not(:last-child)>.btn,.btn-group>.btn:not(:last-child):not(.dropdown-toggle){border-top-right-radius:0;border-bottom-right-radius:0}.btn-group>.btn-group:not(:first-child)>.btn,.btn-group>.btn:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.btn-group-toggle>.btn,.btn-group-toggle>.btn-group>.btn{margin-bottom:0}.btn-group-toggle>.btn-group>.btn input[type=checkbox],.btn-group-toggle>.btn-group>.btn input[type=radio],.btn-group-toggle>.btn input[type=checkbox],.btn-group-toggle>.btn input[type=radio]{position:absolute;clip:rect(0,0,0,0);pointer-events:none}@keyframes progress-bar-stripes{0%{background-position:1.6rem 0}to{background-position:0 0}}.modal-container{background-color:rgba(0,0,0,.2);position:fixed;top:0;bottom:0;right:0;left:0;z-index:var(--z-index-modal)}.modal-container :first-child{overflow:auto}.modal{position:relative;display:block;height:100vh}.modal-dialog-centered.modal-dialog-scrollable{height:auto;max-height:calc(100% - 2.8rem);min-height:auto}.modal-body,.modal-content,.modal-footer,.modal-header{border:none}.modal-header{font-size:2rem;padding:2.4rem}.modal-body{padding:0 2.4rem 4.8rem}.colored-header{color:#fff}.modal-body p{text-align:left}.colored-header-primary{background-color:#0d6efd}.colored-header-secondary{background-color:#adb5bd}.colored-header-success{background-color:#3c8104}.colored-header-info{background-color:#cfe2ff}.colored-header-warning{background-color:#e17a05}.colored-header-danger{background-color:#d20a09}.colored-header-light{background-color:#f8f9fa}.colored-header-dark{background-color:#000}@keyframes spinner-border{to{transform:rotate(1turn)}}@keyframes spinner-grow{0%{transform:scale(0)}50%{opacity:1}}.align-middle{vertical-align:middle!important}.bg-light{background-color:#f8f9fa!important}a.bg-light:focus,a.bg-light:hover,button.bg-light:focus,button.bg-light:hover{background-color:rgb(218.25,223.5,228.75)!important}.border{border:1px solid #d8d8d8!important}.border-bottom{border-bottom:1px solid #d8d8d8!important}.rounded{border-radius:.4rem!important}.rounded-bottom{border-bottom-right-radius:.4rem!important;border-bottom-left-radius:.4rem!important}.d-none{display:none!important}.d-inline-block{display:inline-block!important}.d-block{display:block!important}.d-flex{display:flex!important}.flex-row{flex-direction:row!important}.flex-column{flex-direction:column!important}.justify-content-center{justify-content:center!important}.justify-content-between{justify-content:space-between!important}.align-items-center{align-items:center!important}@media (min-width:992px){.flex-lg-row{flex-direction:row!important}}.position-relative{position:relative!important}.w-50{width:50%!important}.w-100{width:100%!important}.mb-0{margin-bottom:0!important}.mr-2{margin-right:.5rem!important}.mb-2{margin-bottom:.5rem!important}.mr-3{margin-right:1rem!important}.mb-3{margin-bottom:1rem!important}.my-4{margin-top:1.5rem!important}.mb-4,.my-4{margin-bottom:1.5rem!important}.mr-5{margin-right:3rem!important}.px-3{padding-right:1rem!important;padding-left:1rem!important}.py-4{padding-top:1.5rem!important}.px-4{padding-right:1.5rem!important}.pb-4,.py-4{padding-bottom:1.5rem!important}.px-4{padding-left:1.5rem!important}.mx-auto{margin-right:auto!important;margin-left:auto!important}.text-center{text-align:center!important}.font-weight-normal{font-weight:400!important}.font-weight-bold{font-weight:700!important}.font-italic{font-style:italic!important}.text-body{color:#000!important}.cursor-pointer:hover{cursor:pointer!important}.font-weight-semibold{font-weight:600!important}.flex-1{flex:1}.font-size-small{font-size:1.4rem}.font-size-lg{font-size:1.9rem}.text-blue{color:#0d6efd}.border-dashed-bottom{border-bottom:2px dashed var(--gray-300)}.rotate-90{transform:rotate(90deg)}.h2{font-weight:600}[hidden]{visibility:hidden!important;height:0!important;width:0!important;min-height:unset!important}@media print{*,:after,:before{text-shadow:none!important;box-shadow:none!important}a:not(.btn){text-decoration:underline}img{page-break-inside:avoid}h2{orphans:3;widows:3;page-break-after:avoid}@page{size:a3}}@media print{main::-webkit-scrollbar{display:none}main{-ms-overflow-style:none;scrollbar-width:none}}@page{size:A4;margin:20mm 16mm 20mm 16mm}:host{display:block}.subtitle{font-weight:600}.subtitle-icon{font-size:2.2rem}.english_learner_supports,.social_emotional_supports{background-color:#1d448a}.english_language_supports,.success_strategies{background-color:#9e61a0}.collapse-wrapper .btn-collapse{border-radius:.4rem}.collapse-wrapper.open .btn-collapse{border-bottom-left-radius:0!important;border-bottom-right-radius:0!important;background-color:var(--white)}.english_language_supports,.english_learner_supports,.social_emotional_supports,.success_strategies{font-size:1.1rem;color:#fff;border-radius:2.4px;line-height:normal;padding-bottom:1px;padding-top:1px}.collapse-label{font-size:1.6rem}.materials-pdf-list{list-style:none}.material-pdf-item>*{vertical-align:middle}.materials-pdf-list .material-pdf-item img{margin:unset}.material-pdf-item .d-inline-block.text-body{max-width:calc(100% - 113px);overflow-x:hidden;text-overflow:ellipsis}.collapse-wrapper .btn-collapse .ai:not(.ai-Chevron_Black){font-size:2.5rem}.collapse-wrapper .ai-Chevron_Black{color:var(--blue)}.collapse-wrapper .btn-collapse{background-color:var(--white)}.collapse-wrapper.open .btn-collapse,.collapse-wrapper.open .btn-collapse .ai{color:var(--white)}.collapse-wrapper.open .btn-collapse.btn-english_language_supports,.collapse-wrapper.open .btn-collapse.btn-success_strategies{background:#9e61a0;border-color:#9e61a0!important}.collapse-wrapper.open .btn-collapse.btn-english_learner_supports,.collapse-wrapper.open .btn-collapse.btn-social_emotional_supports{background:#1d448a;border-color:#1d448a!important}.collapse-wrapper .ai-English-Support.field-english_language_supports,.collapse-wrapper .ai-target{color:#9e61a0}.collapse-wrapper .ai-English-Support.field-english_learner_supports,.collapse-wrapper .ai-Social-Emotional{color:#1d448a}.collapse-content{max-height:0;overflow-y:hidden;transition:height .3s}.collapse-wrapper.open .collapse-content{border-color:var(--gray-700)!important;max-height:unset;transition:max-height .3s}.btn-collapse .ai-Chevron_Black{font-size:1.4rem!important}.title{font-size:2rem}.content img{height:16px;margin-top:-3px;margin-left:5px;margin-right:5px}.content img:hover{cursor:pointer}.content-icon .ai-Social-Emotional{color:#1d448a}.collapse-wrapper .content img{margin-top:-3px;margin-right:5px}ul{padding-left:1.2rem;margin-bottom:0}ul li{line-height:1.57}ul li:last-of-type{padding-bottom:0}.ai-Try-It{color:#55b505;font-size:2.2rem}.ai-Math-Practices{color:var(--blue);font-size:2.3rem}.btn-outline-light:last-of-type{border-bottom-right-radius:.5rem;border-top-right-radius:.5rem}.btn-outline-light:not(:first-of-type){margin-left:-.5rem}.btn-outline-light.selected{background:#fff!important;border-color:var(--gray-700)!important}.btn-outline-light{border-radius:.5rem;background:var(--gray-100)}.ql-indent-1{padding-left:10px;border-left:solid;margin-bottom:0;border-color:var(--gray-500)!important;border-width:3px}.header-icon svg{height:22px}.ai-materials svg{fill:#7d2ac5}.ai-vocabulary svg{fill:#55b505}.ai-activity svg{fill:#1d448a}.ai-exit_ticket svg{fill:#006bff}.outline-black:focus-visible{outline:1px solid #000}\", \"\"]);\n","exports = module.exports = require(\"../../../node_modules/css-loader/dist/runtime/api.js\")(false);\n// Imports\nvar getUrl = require(\"../../../node_modules/css-loader/dist/runtime/getUrl.js\");\nvar ___CSS_LOADER_URL___0___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-light.woff2\"));\nvar ___CSS_LOADER_URL___1___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-lightit.woff2\"));\nvar ___CSS_LOADER_URL___2___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-reg.woff2\"));\nvar ___CSS_LOADER_URL___3___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-regit.woff2\"));\nvar ___CSS_LOADER_URL___4___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-sbold.woff2\"));\nvar ___CSS_LOADER_URL___5___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-sboldit.woff2\"));\nvar ___CSS_LOADER_URL___6___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-bold.woff2\"));\nvar ___CSS_LOADER_URL___7___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-boldit.woff2\"));\nvar ___CSS_LOADER_URL___8___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-Light.woff2\"));\nvar ___CSS_LOADER_URL___9___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-LightIt.woff2\"));\nvar ___CSS_LOADER_URL___10___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-Regular.woff2\"));\nvar ___CSS_LOADER_URL___11___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-RegularIt.woff2\"));\nvar ___CSS_LOADER_URL___12___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-Semibold.woff2\"));\nvar ___CSS_LOADER_URL___13___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-SemiboldIt.woff2\"));\nvar ___CSS_LOADER_URL___14___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-Bold.woff2\"));\nvar ___CSS_LOADER_URL___15___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-BoldIt.woff2\"));\nvar ___CSS_LOADER_URL___16___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-ExtraBold.woff2\"));\nvar ___CSS_LOADER_URL___17___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-ExtraBoldIt.woff2\"));\nvar ___CSS_LOADER_URL___18___ = getUrl(require(\"../../template/main/fonts/aofl-icons/icomoon.woff2?c6f21u\"));\n// Module\nexports.push([module.id, \"/*! @aofl-component */:root{--blue:#0d6efd;--indigo:#6610f2;--purple:#8b42ca;--pink:#e83e8c;--red:#e50b0a;--orange:#e17a05;--yellow:#ffc107;--green:#3c8104;--teal:#20c997;--cyan:#53c9dc;--white:#fff;--gray:#6b6b6b;--gray-dark:#343a40;--light-green:#b1dd53;--table-border-color:#d8d8d8;--gray-100:#f2f2f2;--gray-200:#d9d9d9;--gray-300:#d8d8d8;--gray-400:#ced4da;--gray-500:#adb5bd;--gray-600:#6c757d;--gray-700:#4a4a4a;--gray-800:#343a40;--gray-900:#212529;--gray-accessibility:#6b6b6b;--primary:#0d6efd;--secondary:#adb5bd;--success:#3c8104;--info:#cfe2ff;--warning:#e17a05;--danger:#d20a09;--light:#f8f9fa;--dark:#000;--breakpoint-xxs:0;--breakpoint-xs:375px;--breakpoint-sm:576px;--breakpoint-md:768px;--breakpoint-lg:992px;--breakpoint-xl:1200px;--font-family-sans-serif:aofl-sans,Arial,Helvetica,sans-serif;--font-family-monospace:SFMono-Regular,Menlo,Monaco,Consolas,\\\"Liberation Mono\\\",\\\"Courier New\\\",monospace;--z-index-dropdown:1000;--z-index-sticky:1020;--z-index-fixed:1030;--z-index-modal-backdrop:1040;--z-index-modal:1050;--z-index-popover:1060;--z-index-tooltip:1070;--header-height:6rem;--content-height:calc(100vh - 6rem);--sidepanel-width:20rem;--purple-color:#641da3;--purple-600:#956abc;--purple-400:#c7afdd;--purple-200:#e0d2ed;--struggling:#f6993b;--below-target:#ffcf00;--in_progress:#1280f5;--prior_knowledge:#edf887;--mastery_achieved:#69d112;--inactive:#d8d8d8}route-view{max-width:1200px}@font-face{font-family:aofl-sans;font-style:normal;font-weight:300;src:url(\" + ___CSS_LOADER_URL___0___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:italic;font-weight:300;src:url(\" + ___CSS_LOADER_URL___1___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:normal;font-weight:400;src:url(\" + ___CSS_LOADER_URL___2___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:italic;font-weight:400;src:url(\" + ___CSS_LOADER_URL___3___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:normal;font-weight:600;src:url(\" + ___CSS_LOADER_URL___4___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:italic;font-weight:600;src:url(\" + ___CSS_LOADER_URL___5___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:normal;font-weight:700;src:url(\" + ___CSS_LOADER_URL___6___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:italic;font-weight:700;src:url(\" + ___CSS_LOADER_URL___7___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:normal;font-weight:300;src:url(\" + ___CSS_LOADER_URL___8___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:italic;font-weight:300;src:url(\" + ___CSS_LOADER_URL___9___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:normal;font-weight:400;src:url(\" + ___CSS_LOADER_URL___10___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:italic;font-weight:400;src:url(\" + ___CSS_LOADER_URL___11___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:normal;font-weight:600;src:url(\" + ___CSS_LOADER_URL___12___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:italic;font-weight:600;src:url(\" + ___CSS_LOADER_URL___13___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:normal;font-weight:700;src:url(\" + ___CSS_LOADER_URL___14___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:italic;font-weight:700;src:url(\" + ___CSS_LOADER_URL___15___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:normal;font-weight:800;src:url(\" + ___CSS_LOADER_URL___16___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:italic;font-weight:800;src:url(\" + ___CSS_LOADER_URL___17___ + \") format(\\\"woff2\\\")}@font-face{font-family:icomoon;src:url(\" + ___CSS_LOADER_URL___18___ + \") format(\\\"woff2\\\");font-weight:400;font-style:normal;font-display:block}[class*=\\\" ai-\\\"],[class^=ai-]{font-family:icomoon!important;speak:never;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.ai-chevron-down:before{content:\\\"\\\\e90d\\\"}*,:after,:before{box-sizing:border-box}html{font-family:sans-serif;line-height:1.15;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:rgba(0,0,0,0)}figcaption,main,nav,section{display:block}[tabindex=\\\"-1\\\"]:focus{outline:0!important}h4,h5{margin-top:0;margin-bottom:1rem}strong{font-weight:bolder}a{color:#0d6efd;background-color:transparent}a,a:hover{text-decoration:none}a:hover{color:rgb(0,86.1,178.5)}a:not([href]):not([tabindex]),a:not([href]):not([tabindex]):focus,a:not([href]):not([tabindex]):hover{color:inherit;text-decoration:none}a:not([href]):not([tabindex]):focus{outline:0}caption{padding-top:.75rem;padding-bottom:.75rem;color:#6c757d;text-align:left;caption-side:bottom}button{border-radius:0}button:focus{outline:1px dotted;outline:5px auto -webkit-focus-ring-color}button,input{margin:0;font-family:inherit;font-size:inherit;line-height:inherit;overflow:visible}button{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]:not(:disabled),[type=reset]:not(:disabled),[type=submit]:not(:disabled),button:not(:disabled){cursor:pointer}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{padding:0;border-style:none}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}input[type=date],input[type=datetime-local],input[type=month],input[type=time]{-webkit-appearance:listbox}legend{display:block;width:100%;max-width:100%;padding:0;margin-bottom:.5rem;font-size:1.5rem;line-height:inherit;color:inherit;white-space:normal}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:none}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}summary{display:list-item;cursor:pointer}template{display:none}[hidden]{display:none!important}*{-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important}html{font-size:62.5%;height:100%}link-to{color:#0d6efd;text-decoration:none;background-color:transparent}link-to:hover{color:rgb(0,86.1,178.5);text-decoration:none;cursor:pointer}route-view{display:none;flex:1}site-header{background-color:#fff;display:none;position:-webkit-sticky;position:sticky;top:0;height:var(--header-height)}#main{display:none;flex:1 auto;max-width:100%;overflow:hidden;flex-direction:column;overflow-y:scroll}.loaded #main,.loaded site-header,body.loaded,route-view.loaded{display:flex}route-view.left-panel-active{padding-left:var(--sidepanel-width)}.h4,.h5,h4,h5{margin-bottom:1rem;font-weight:500;line-height:1.2}.h4,h4{font-size:1.6rem}.h5,h5{font-size:1.4rem}input[type=checkbox],input[type=radio]{cursor:pointer}.btn{display:inline-block;font-weight:400;color:#000;text-align:center;vertical-align:middle;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;background-color:transparent;border:1px solid transparent;padding:.375rem .75rem;font-size:1.6rem;line-height:1.5;border-radius:.25rem;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.btn{transition:none}}.btn:hover{color:#000;text-decoration:none}.btn:focus{outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.btn:disabled{opacity:.65}.btn-link{font-weight:400;color:#0d6efd;text-decoration:none}.btn-link:hover{color:rgb(0,86.1,178.5);text-decoration:none}.btn-link:focus{text-decoration:none;box-shadow:none}.btn-link:disabled{color:#6c757d;pointer-events:none}.btn:disabled{cursor:not-allowed}link-to.btn:disabled,link-to.btn[disabled]{pointer-events:none}button,button:active{outline:none}.btn:focus-visible,[tabindex=\\\"0\\\"]:focus-visible,a:focus-visible,aofl-list-option:focus-visible,button[type=button]:focus-visible,collapse-button:focus-visible{outline:1px solid #e50b0a;border:1px solid #e50b0a}.btn-link:focus-visible{border:2px solid #e50b0a}.btn:disabled{background:#cfe2ff;border-color:#cfe2ff;color:#0d6efd;opacity:1}.dropdown{position:relative}.dropdown-toggle{white-space:nowrap}.dropdown-toggle:after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:\\\"\\\";border-top:.3em solid;border-right:.3em solid transparent;border-bottom:0;border-left:.3em solid transparent}.dropdown-toggle:empty:after{margin-left:0}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:16rem;padding:.8rem 0;margin:.2rem 0 0;font-size:1.3rem;color:#212529;text-align:left;list-style:none;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.15);border-radius:.25rem}.dropdown-menu[x-placement^=bottom],.dropdown-menu[x-placement^=left],.dropdown-menu[x-placement^=right],.dropdown-menu[x-placement^=top]{right:auto;bottom:auto}.dropdown-item{display:block;width:100%;padding:.8rem 2rem;clear:both;font-weight:400;color:#212529;text-align:inherit;white-space:nowrap;background-color:transparent;border:0}.dropdown-item:focus,.dropdown-item:hover{color:rgb(21.6283783784,24.25,26.8716216216);text-decoration:none;background-color:#d8d8d8}.dropdown-item.active,.dropdown-item:active{color:#fff;text-decoration:none;background-color:#0d6efd}.dropdown-item:disabled{color:#6c757d;pointer-events:none;background-color:transparent}.dropdown,.dropdown-menu{display:inline-block}.dropdown-menu{box-shadow:0 0 .6rem 0 #d8d8d8;float:none;position:relative;margin:.2rem .4rem .4rem 0;min-width:1rem}bulk-actions-button+.dropdown-menu{max-width:270px;width:100%}bulk-actions-button+.dropdown-menu .btn{font-size:1.2rem;font-weight:600}collapse-button .ai.ai-chevron-down:before{transform:rotate(-90deg);display:inline-block}collapse-button[open] .ai.ai-chevron-down:before{transform:rotate(180deg)}collapse-button .ai.ai-chevron-down,ems-dropdown .ai.ai-chevron-down{font-size:.8rem}collapse-button .ai-chevron-down:before,ems-dropdown .ai-chevron-down:before{content:\\\"\\\\e90d\\\"}collapse-button[open] .ai-chevron-down:before,ems-dropdown[open] .ai-chevron-down:before{content:\\\"\\\\e90f\\\"}@keyframes progress-bar-stripes{0%{background-position:1.6rem 0}to{background-position:0 0}}.modal-container{background-color:rgba(0,0,0,.2);position:fixed;top:0;bottom:0;right:0;left:0;z-index:var(--z-index-modal)}.modal-container :first-child{overflow:auto}.modal{position:relative;display:block;height:100vh}.modal-dialog-centered.modal-dialog-scrollable{height:auto;max-height:calc(100% - 2.8rem);min-height:auto}.modal-body,.modal-content,.modal-footer,.modal-header{border:none}.modal-header{font-size:2rem;padding:2.4rem}.modal-body{padding:0 2.4rem 4.8rem}.colored-header{color:#fff}.modal-body p{text-align:left}.colored-header-primary{background-color:#0d6efd}.colored-header-secondary{background-color:#adb5bd}.colored-header-success{background-color:#3c8104}.colored-header-info{background-color:#cfe2ff}.colored-header-warning{background-color:#e17a05}.colored-header-danger{background-color:#d20a09}.colored-header-light{background-color:#f8f9fa}.colored-header-dark{background-color:#000}@keyframes spinner-border{to{transform:rotate(1turn)}}@keyframes spinner-grow{0%{transform:scale(0)}50%{opacity:1}}.border-bottom{border-bottom:1px solid #d8d8d8!important}.d-block{display:block!important}.d-flex{display:flex!important}.justify-content-between{justify-content:space-between!important}.w-100{width:100%!important}.m-0{margin:0!important}.mr-3{margin-right:1rem!important}.mb-3{margin-bottom:1rem!important}.py-2{padding-top:.5rem!important}.px-2{padding-right:.5rem!important}.py-2{padding-bottom:.5rem!important}.px-2{padding-left:.5rem!important}.pt-3{padding-top:1rem!important}.px-4{padding-right:1.5rem!important;padding-left:1.5rem!important}.mx-auto{margin-right:auto!important;margin-left:auto!important}.font-weight-normal{font-weight:400!important}.text-muted{color:#6c757d!important}.border-dashed-bottom{border-bottom:2px dashed var(--gray-300)}.border-dashed-top{border-top:2px dashed var(--gray-300)}[hidden]{visibility:hidden!important;height:0!important;width:0!important;min-height:unset!important}@media print{*,:after,:before{text-shadow:none!important;box-shadow:none!important}a:not(.btn){text-decoration:underline}@page{size:a3}}@media print{main::-webkit-scrollbar{display:none}main{-ms-overflow-style:none;scrollbar-width:none}}@page{size:A4;margin:20mm 16mm 20mm 16mm}:host{display:inline-block}[slot=dropdown-toggle]{width:208px;padding:.5em 0;border-bottom:1px solid #ccc}button[slot=dropdown-toggle]{background:none;border:none}div[slot=dropdown-menu]{max-height:300px;width:210px;min-width:210px;max-width:210px;overflow-y:auto;-ms-overflow-style:none}ems-dropdown>button.btn{display:flex;align-items:center;border:1px solid var(--gray)}ems-dropdown::part(chevron-down){font-size:1.5rem;margin-left:2rem}.reset-button{font-weight:600;font-size:.9em}#toggle-text{overflow:hidden;text-overflow:ellipsis;max-width:15rem;white-space:nowrap;margin-right:.5rem}ems-dropdown.full-width{width:100%!important;margin-right:0!important}@media (max-width:1024px){div[slot=dropdown-menu]{max-height:250px}}\", \"\"]);\n","import { until } from 'lit-html/directives/until';\nimport '../dropdown';\nimport '@modules/select';\nimport { generalAriaLabels } from '@modules/i18n-labels';\nimport '@modules/aofl-form';\n\nexport default (ctx, html) => html`\n \n
0 ? 'filter-active' : ''}\">\n
\n ${(ctx.searchFilters.length > 0) ? html`\n
${until(ctx.__('', 'Search By:'))}
\n ${ctx.searchFilters.map((item) => html`\n \n `)}\n ` : ''}\n
\n
\n \n
\n \n
\n
\n
\n
\n`;\n","import styles from './template.css';\nimport template from './template';\nimport {AoflElement, customElement, property} from '@aofl/element';\nimport {storeInstance} from '@aofl/store/dist/legacy';\nimport {routerInstance} from '@aofl/router';\nimport {environment, sdoNs} from '../constants-enumerate';\nimport {SearchParams} from '../search-url-params';\nimport {mapStatePropertiesMixin} from '@aofl/map-state-properties-mixin';\nimport {defaults} from '@aofl/object-utils';\nimport {i18nMixin} from '@aofl/i18n-mixin';\nimport translations from '../i18n';\nimport debounce from 'debounce';\n\n/**\n * @summary SearchForm\n * @extends {i18nMixin(mapStatePropertiesMixin(AoflElement))}\n */\n@customElement('search-form')\nclass SearchForm extends i18nMixin(mapStatePropertiesMixin(AoflElement)) {\n /**\n * Creates an instance of SearchForm.\n */\n constructor() {\n super();\n this.storeInstance = storeInstance;\n this.translations = translations;\n this.queryDebounce = debounce((e) => {\n this.storeInstance.commit(\n {namespace: this['search-namespace'], mutationId: 'removeSortLastValues'}\n );\n this.dispatchEvent(new CustomEvent('query-changed'));\n }, 200);\n }\n\n /**\n * @readonly\n */\n static is = 'search-form';\n @property({type: String})\n placeholder = '';\n\n @property({type: String, attribute: false})\n searchString = '';\n\n @property({type: String})\n ['search-namespace'] = sdoNs.GROUP_SEARCH;\n\n @property({type: Array, attribute: false})\n searchFilters = [];\n\n autofocus = false;\n searchTargetUrl = '';\n defaultQueryObj = {};\n\n inputHandler(e) {\n this.searchString = e.target.value;\n this.storeInstance.commit({namespace: this['search-namespace'], mutationId: 'setQuerySearchQuery', payload: this.searchString});\n this.queryDebounce();\n }\n\n filterChangedHandler(e) {\n const field = e.target.value;\n this.storeInstance.commit(\n {namespace: this['search-namespace'], mutationId: 'setQuerySearchField', payload: field},\n {namespace: this['search-namespace'], mutationId: 'removeSortLastValues'}\n );\n }\n\n submit(e) {\n e.preventDefault();\n const formData = new FormData(e.target);\n const payload = (formData.get('q') || '').trim();\n\n this.storeInstance.commit(\n {namespace: this['search-namespace'], mutationId: 'setQuerySearchQuery', payload},\n {namespace: this['search-namespace'], mutationId: 'removeSortLastValues'}\n );\n this.search();\n }\n\n async search() {\n const state = storeInstance.getState();\n const search = state[this['search-namespace']].queryObj.search;\n const sort = state[this['search-namespace']].queryObj.sort;\n const newQueryObj = {search};\n defaults(newQueryObj, this.defaultQueryObj);\n newQueryObj.sort.fields = sort.fields;\n const searchParams = SearchParams.encode(newQueryObj);\n try {\n await routerInstance.navigate(`${this.searchTargetUrl}?${searchParams}`, {});\n } catch (e) {}\n }\n\n firstUpdated() {\n super.firstUpdated();\n if (this.getAttribute('autofocus') !== null) {\n const searchElement = this.shadowRoot.querySelector('[name=q]');\n searchElement.focus();\n }\n }\n mapStateProperties() {\n const state = this.storeInstance.getState();\n\n this.searchString = state[this['search-namespace']].queryObj.search.query;\n this.defaultQueryObj = state[this['search-namespace']].defaultQueryObj;\n this.searchTargetUrl = state[this['search-namespace']].searchTargetUrl;\n }\n /**\n *\n * @return {Object}\n */\n render() {\n return super.render({\n default: {template, styles: [styles]}\n });\n }\n}\n\nexport default SearchForm;\n","module.exports = __webpack_public_path__ + \"732739552de95fe6425cdb2dcc0e5370.webp\";","exports = module.exports = require(\"../../../../../node_modules/css-loader/dist/runtime/api.js\")(false);\n// Imports\nvar getUrl = require(\"../../../../../node_modules/css-loader/dist/runtime/getUrl.js\");\nvar ___CSS_LOADER_URL___0___ = getUrl(require(\"../../../../template/main/fonts/aofl-sans/aoflsans-light.woff2\"));\nvar ___CSS_LOADER_URL___1___ = getUrl(require(\"../../../../template/main/fonts/aofl-sans/aoflsans-lightit.woff2\"));\nvar ___CSS_LOADER_URL___2___ = getUrl(require(\"../../../../template/main/fonts/aofl-sans/aoflsans-reg.woff2\"));\nvar ___CSS_LOADER_URL___3___ = getUrl(require(\"../../../../template/main/fonts/aofl-sans/aoflsans-regit.woff2\"));\nvar ___CSS_LOADER_URL___4___ = getUrl(require(\"../../../../template/main/fonts/aofl-sans/aoflsans-sbold.woff2\"));\nvar ___CSS_LOADER_URL___5___ = getUrl(require(\"../../../../template/main/fonts/aofl-sans/aoflsans-sboldit.woff2\"));\nvar ___CSS_LOADER_URL___6___ = getUrl(require(\"../../../../template/main/fonts/aofl-sans/aoflsans-bold.woff2\"));\nvar ___CSS_LOADER_URL___7___ = getUrl(require(\"../../../../template/main/fonts/aofl-sans/aoflsans-boldit.woff2\"));\nvar ___CSS_LOADER_URL___8___ = getUrl(require(\"../../../../template/main/fonts/abcmouse-sans/ABCmouseSans-Light.woff2\"));\nvar ___CSS_LOADER_URL___9___ = getUrl(require(\"../../../../template/main/fonts/abcmouse-sans/ABCmouseSans-LightIt.woff2\"));\nvar ___CSS_LOADER_URL___10___ = getUrl(require(\"../../../../template/main/fonts/abcmouse-sans/ABCmouseSans-Regular.woff2\"));\nvar ___CSS_LOADER_URL___11___ = getUrl(require(\"../../../../template/main/fonts/abcmouse-sans/ABCmouseSans-RegularIt.woff2\"));\nvar ___CSS_LOADER_URL___12___ = getUrl(require(\"../../../../template/main/fonts/abcmouse-sans/ABCmouseSans-Semibold.woff2\"));\nvar ___CSS_LOADER_URL___13___ = getUrl(require(\"../../../../template/main/fonts/abcmouse-sans/ABCmouseSans-SemiboldIt.woff2\"));\nvar ___CSS_LOADER_URL___14___ = getUrl(require(\"../../../../template/main/fonts/abcmouse-sans/ABCmouseSans-Bold.woff2\"));\nvar ___CSS_LOADER_URL___15___ = getUrl(require(\"../../../../template/main/fonts/abcmouse-sans/ABCmouseSans-BoldIt.woff2\"));\nvar ___CSS_LOADER_URL___16___ = getUrl(require(\"../../../../template/main/fonts/abcmouse-sans/ABCmouseSans-ExtraBold.woff2\"));\nvar ___CSS_LOADER_URL___17___ = getUrl(require(\"../../../../template/main/fonts/abcmouse-sans/ABCmouseSans-ExtraBoldIt.woff2\"));\nvar ___CSS_LOADER_URL___18___ = getUrl(require(\"../../../../template/main/fonts/aofl-icons/icomoon.woff2?c6f21u\"));\n// Module\nexports.push([module.id, \"/*! @aofl-component */:root{--blue:#0d6efd;--indigo:#6610f2;--purple:#8b42ca;--pink:#e83e8c;--red:#e50b0a;--orange:#e17a05;--yellow:#ffc107;--green:#3c8104;--teal:#20c997;--cyan:#53c9dc;--white:#fff;--gray:#6b6b6b;--gray-dark:#343a40;--light-green:#b1dd53;--table-border-color:#d8d8d8;--gray-100:#f2f2f2;--gray-200:#d9d9d9;--gray-300:#d8d8d8;--gray-400:#ced4da;--gray-500:#adb5bd;--gray-600:#6c757d;--gray-700:#4a4a4a;--gray-800:#343a40;--gray-900:#212529;--gray-accessibility:#6b6b6b;--primary:#0d6efd;--secondary:#adb5bd;--success:#3c8104;--info:#cfe2ff;--warning:#e17a05;--danger:#d20a09;--light:#f8f9fa;--dark:#000;--breakpoint-xxs:0;--breakpoint-xs:375px;--breakpoint-sm:576px;--breakpoint-md:768px;--breakpoint-lg:992px;--breakpoint-xl:1200px;--font-family-sans-serif:aofl-sans,Arial,Helvetica,sans-serif;--font-family-monospace:SFMono-Regular,Menlo,Monaco,Consolas,\\\"Liberation Mono\\\",\\\"Courier New\\\",monospace;--z-index-dropdown:1000;--z-index-sticky:1020;--z-index-fixed:1030;--z-index-modal-backdrop:1040;--z-index-modal:1050;--z-index-popover:1060;--z-index-tooltip:1070;--header-height:6rem;--content-height:calc(100vh - 6rem);--sidepanel-width:20rem;--purple-color:#641da3;--purple-600:#956abc;--purple-400:#c7afdd;--purple-200:#e0d2ed;--struggling:#f6993b;--below-target:#ffcf00;--in_progress:#1280f5;--prior_knowledge:#edf887;--mastery_achieved:#69d112;--inactive:#d8d8d8}route-view{max-width:1200px}@font-face{font-family:aofl-sans;font-style:normal;font-weight:300;src:url(\" + ___CSS_LOADER_URL___0___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:italic;font-weight:300;src:url(\" + ___CSS_LOADER_URL___1___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:normal;font-weight:400;src:url(\" + ___CSS_LOADER_URL___2___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:italic;font-weight:400;src:url(\" + ___CSS_LOADER_URL___3___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:normal;font-weight:600;src:url(\" + ___CSS_LOADER_URL___4___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:italic;font-weight:600;src:url(\" + ___CSS_LOADER_URL___5___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:normal;font-weight:700;src:url(\" + ___CSS_LOADER_URL___6___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:italic;font-weight:700;src:url(\" + ___CSS_LOADER_URL___7___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:normal;font-weight:300;src:url(\" + ___CSS_LOADER_URL___8___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:italic;font-weight:300;src:url(\" + ___CSS_LOADER_URL___9___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:normal;font-weight:400;src:url(\" + ___CSS_LOADER_URL___10___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:italic;font-weight:400;src:url(\" + ___CSS_LOADER_URL___11___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:normal;font-weight:600;src:url(\" + ___CSS_LOADER_URL___12___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:italic;font-weight:600;src:url(\" + ___CSS_LOADER_URL___13___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:normal;font-weight:700;src:url(\" + ___CSS_LOADER_URL___14___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:italic;font-weight:700;src:url(\" + ___CSS_LOADER_URL___15___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:normal;font-weight:800;src:url(\" + ___CSS_LOADER_URL___16___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:italic;font-weight:800;src:url(\" + ___CSS_LOADER_URL___17___ + \") format(\\\"woff2\\\")}@font-face{font-family:icomoon;src:url(\" + ___CSS_LOADER_URL___18___ + \") format(\\\"woff2\\\");font-weight:400;font-style:normal;font-display:block}[class*=\\\" ai-\\\"],[class^=ai-]{font-family:icomoon!important;speak:never;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*,:after,:before{box-sizing:border-box}html{font-family:sans-serif;line-height:1.15;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:rgba(0,0,0,0)}figcaption,main,nav,section{display:block}[tabindex=\\\"-1\\\"]:focus{outline:0!important}hr{box-sizing:content-box;height:0;overflow:visible}h4{margin-top:0;margin-bottom:1rem}strong{font-weight:bolder}caption{padding-top:.75rem;padding-bottom:.75rem;color:#6c757d;text-align:left;caption-side:bottom}label{display:inline-block;margin-bottom:.8rem}button{border-radius:0}button:focus{outline:1px dotted;outline:5px auto -webkit-focus-ring-color}button,input{margin:0;font-family:inherit;font-size:inherit;line-height:inherit;overflow:visible}button{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]:not(:disabled),[type=reset]:not(:disabled),[type=submit]:not(:disabled),button:not(:disabled){cursor:pointer}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{padding:0;border-style:none}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}input[type=date],input[type=datetime-local],input[type=month],input[type=time]{-webkit-appearance:listbox}legend{display:block;width:100%;max-width:100%;padding:0;margin-bottom:.5rem;font-size:1.5rem;line-height:inherit;color:inherit;white-space:normal}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:none}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}summary{display:list-item;cursor:pointer}template{display:none}[hidden]{display:none!important}*{-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important}html{font-size:62.5%;height:100%}link-to{color:#0d6efd;text-decoration:none;background-color:transparent}link-to:hover{color:rgb(0,86.1,178.5);text-decoration:none;cursor:pointer}route-view{display:none;flex:1}site-header{background-color:#fff;display:none;position:-webkit-sticky;position:sticky;top:0;height:var(--header-height)}#main{display:none;flex:1 auto;max-width:100%;overflow:hidden;flex-direction:column;overflow-y:scroll}.loaded #main,.loaded site-header,body.loaded,route-view.loaded{display:flex}route-view.left-panel-active{padding-left:var(--sidepanel-width)}.h4,h4{font-weight:500;line-height:1.2;font-size:1.6rem}.h4,h4,hr{margin-bottom:1rem}hr{margin-top:1rem;border:0;border-top:1px solid rgba(0,0,0,.1)}.row{display:flex;flex-wrap:wrap;margin-right:-15px;margin-left:-15px}.col{position:relative;width:100%;padding-right:15px;padding-left:15px;flex-basis:0;flex-grow:1;max-width:100%}input[type=checkbox],input[type=radio]{cursor:pointer}input[type=checkbox]+label,input[type=radio]+label{cursor:pointer}.btn,input[type=checkbox]+label,input[type=radio]+label{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.btn{display:inline-block;font-weight:400;color:#000;text-align:center;vertical-align:middle;background-color:transparent;border:1px solid transparent;padding:.375rem .75rem;font-size:1.6rem;line-height:1.5;border-radius:.25rem;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.btn{transition:none}}.btn:hover{color:#000;text-decoration:none}.btn:focus{outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.btn:disabled{opacity:.65}.btn-primary{color:#fff;background-color:#0d6efd;border-color:#0d6efd}.btn-primary:hover{color:#fff;background-color:rgb(1.8668032787,92.4067622951,225.8831967213);border-color:rgb(1.762295082,87.2336065574,213.237704918)}.btn-primary:focus{box-shadow:0 0 0 .2rem rgba(49.3,131.75,253.3,.5)}.btn-primary:disabled{color:#fff;background-color:#0d6efd;border-color:#0d6efd}.btn-primary:not(:disabled):not(.disabled):active{color:#fff;background-color:rgb(1.762295082,87.2336065574,213.237704918);border-color:rgb(1.6577868852,82.0604508197,200.5922131148)}.btn-primary:not(:disabled):not(.disabled):active:focus{box-shadow:0 0 0 .2rem rgba(49.3,131.75,253.3,.5)}.btn:disabled{cursor:not-allowed}link-to.btn:disabled,link-to.btn[disabled]{pointer-events:none}button,button:active{outline:none}.btn:focus-visible,[tabindex=\\\"0\\\"]:focus-visible,aofl-list-option:focus-visible,button[type=button]:focus-visible,collapse-button:focus-visible{outline:1px solid #e50b0a;border:1px solid #e50b0a}.btn-primary{font-weight:600;border-width:2px}.btn:disabled{background:#cfe2ff;border-color:#cfe2ff;color:#0d6efd;opacity:1}ems-dropdown>button.btn{display:flex;align-items:center;border:1px solid var(--gray)}.card{position:relative;display:flex;flex-direction:column;min-width:0;word-wrap:break-word;background-color:#fff;background-clip:border-box;border:1px solid rgba(0,0,0,.125);border-radius:.25rem}.card>hr{margin-right:0;margin-left:0}.card.shadow-sm{box-shadow:0 0 1.1rem #d8d8d8!important}.card.rounded{border-radius:.8rem!important}@keyframes progress-bar-stripes{0%{background-position:1.6rem 0}to{background-position:0 0}}.modal-container{background-color:rgba(0,0,0,.2);position:fixed;top:0;bottom:0;right:0;left:0;z-index:var(--z-index-modal)}.modal-container :first-child{overflow:auto}.modal{position:relative;display:block;height:100vh}.modal-dialog-centered.modal-dialog-scrollable{height:auto;max-height:calc(100% - 2.8rem);min-height:auto}.modal-body,.modal-content,.modal-footer,.modal-header{border:none}.modal-header{font-size:2rem;padding:2.4rem}.modal-body{padding:0 2.4rem 4.8rem}.colored-header{color:#fff}.modal-body p{text-align:left}.colored-header-primary{background-color:#0d6efd}.colored-header-secondary{background-color:#adb5bd}.colored-header-success{background-color:#3c8104}.colored-header-info{background-color:#cfe2ff}.colored-header-warning{background-color:#e17a05}.colored-header-danger{background-color:#d20a09}.colored-header-light{background-color:#f8f9fa}.colored-header-dark{background-color:#000}@keyframes spinner-border{to{transform:rotate(1turn)}}@keyframes spinner-grow{0%{transform:scale(0)}50%{opacity:1}}.border-bottom{border-bottom:1px solid #d8d8d8!important}.border-0{border:0!important}.rounded{border-radius:.4rem!important}.rounded-pill{border-radius:80rem!important}.d-flex{display:flex!important}.flex-column{flex-direction:column!important}.shadow-sm{box-shadow:0 .2rem .4rem #d8d8d8!important}.mb-0{margin-bottom:0!important}.mb-3{margin-bottom:1rem!important}.mt-5{margin-top:3rem!important}.mb-5{margin-bottom:3rem!important}.pb-2{padding-bottom:.5rem!important}.pt-3,.py-3{padding-top:1rem!important}.pb-3,.py-3{padding-bottom:1rem!important}.py-4{padding-top:1.5rem!important}.px-4{padding-right:1.5rem!important}.py-4{padding-bottom:1.5rem!important}.px-4{padding-left:1.5rem!important}.pt-5{padding-top:3rem!important}.px-5{padding-right:3rem!important;padding-left:3rem!important}.text-center{text-align:center!important}.font-weight-bold{font-weight:700!important}.text-primary{color:#0d6efd!important}.text-danger{color:#d20a09!important}.text-muted{color:#6c757d!important}.border-dashed-bottom{border-bottom:2px dashed var(--gray-300)}[hidden]{visibility:hidden!important;height:0!important;width:0!important;min-height:unset!important}@media print{*,:after,:before{text-shadow:none!important;box-shadow:none!important}@page{size:a3}}@media print{main::-webkit-scrollbar{display:none}main{-ms-overflow-style:none;scrollbar-width:none}}@page{size:A4;margin:20mm 16mm 20mm 16mm}:host{display:inline-block}.spacer-sm{height:4rem}.text-muted{color:var(--gray-500)!important}.font-size-bigger{font-size:2rem}\", \"\"]);\n","import '@modules/group-filters';\n\nexport default (ctx, html) => html`\n \n`;\n","import styles from './template.css';\nimport template from './template';\nimport {AoflElement, customElement, property} from '@aofl/element';\nimport {storeInstance} from '@aofl/store/dist/legacy';\nimport {sdoNs} from '../constants-enumerate';\nimport {mapStatePropertiesMixin} from '@aofl/map-state-properties-mixin';\n/**\n * @summary BaseSearchOrgFilters\n * @extends {mapStatePropertiesMixin(AoflElement)}\n */\n@customElement('base-search-org-filters')\nclass BaseSearchOrgFilters extends mapStatePropertiesMixin(AoflElement) {\n /**\n * Creates an instance of BaseSearchOrgFilters.\n */\n constructor() {\n super();\n this.storeInstance = storeInstance;\n }\n\n /**\n * @readonly\n */\n static is = 'base-search-org-filters';\n @property({type: Number})\n ['max-level'] = 0;\n\n @property({type: Boolean})\n ['show-reset'] = false;\n\n @property({type: Number, attribute: false})\n groupId = 0;\n\n @property({type: Array, attribute: false})\n selectedGroups = [];\n /**\n *\n * @protected\n * @param {CustomEvent} e\n */\n filterUpdated(e) {}\n\n mapStateProperties() {\n const state = this.storeInstance.getState();\n\n this.groupId = state[sdoNs.SESSION].group_info.id;\n }\n /**\n *\n * @return {Object}\n */\n render() {\n return super.render(template, [styles]);\n }\n}\n\nexport {\n BaseSearchOrgFilters\n};\n","import {customElement} from '@aofl/element';\nimport {sdoNs} from '../constants-enumerate';\nimport {BaseSearchOrgFilters} from '../base-search-org-filters';\n\n/**\n * @summary UserSearchOrgFilters\n * @extends {BaseSearchOrgFilters}\n */\n@customElement('user-search-org-filters')\nclass UserSearchOrgFilters extends BaseSearchOrgFilters {\n static is = 'user-search-org-filters';\n\n filterUpdated(e) {\n this.selectedGroups = e.target['selected-groups'];\n this.storeInstance.commit(\n {\n namespace: sdoNs.USER_SEARCH,\n mutationId: 'setFiltersGroupPath',\n payload: this.selectedGroups\n },\n {\n namespace: sdoNs.USER_SEARCH,\n mutationId: 'setPendingFiltersGroupPath',\n payload: this.selectedGroups\n }\n );\n this.dispatchEvent(new CustomEvent('changed'));\n }\n\n mapStateProperties() {\n super.mapStateProperties();\n const state = this.storeInstance.getState();\n\n this.selectedGroups = state[sdoNs.USER_SEARCH].pendingFilters.group_path;\n }\n\n\n /**\n * @readonly\n */\n}\n\nexport default UserSearchOrgFilters;\n","import toDate from '../toDate/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name endOfDay\n * @category Day Helpers\n * @summary Return the end of a day for the given date.\n *\n * @description\n * Return the end of a day for the given date.\n * The result will be in the local timezone.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the original date\n * @returns {Date} the end of a day\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // The end of a day for 2 September 2014 11:55:00:\n * var result = endOfDay(new Date(2014, 8, 2, 11, 55, 0))\n * //=> Tue Sep 02 2014 23:59:59.999\n */\n\nexport default function endOfDay(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n date.setHours(23, 59, 59, 999);\n return date;\n}","exports = module.exports = require(\"../../../../../node_modules/css-loader/dist/runtime/api.js\")(false);\n// Imports\nvar getUrl = require(\"../../../../../node_modules/css-loader/dist/runtime/getUrl.js\");\nvar ___CSS_LOADER_URL___0___ = getUrl(require(\"../../../../template/main/fonts/aofl-sans/aoflsans-light.woff2\"));\nvar ___CSS_LOADER_URL___1___ = getUrl(require(\"../../../../template/main/fonts/aofl-sans/aoflsans-lightit.woff2\"));\nvar ___CSS_LOADER_URL___2___ = getUrl(require(\"../../../../template/main/fonts/aofl-sans/aoflsans-reg.woff2\"));\nvar ___CSS_LOADER_URL___3___ = getUrl(require(\"../../../../template/main/fonts/aofl-sans/aoflsans-regit.woff2\"));\nvar ___CSS_LOADER_URL___4___ = getUrl(require(\"../../../../template/main/fonts/aofl-sans/aoflsans-sbold.woff2\"));\nvar ___CSS_LOADER_URL___5___ = getUrl(require(\"../../../../template/main/fonts/aofl-sans/aoflsans-sboldit.woff2\"));\nvar ___CSS_LOADER_URL___6___ = getUrl(require(\"../../../../template/main/fonts/aofl-sans/aoflsans-bold.woff2\"));\nvar ___CSS_LOADER_URL___7___ = getUrl(require(\"../../../../template/main/fonts/aofl-sans/aoflsans-boldit.woff2\"));\nvar ___CSS_LOADER_URL___8___ = getUrl(require(\"../../../../template/main/fonts/abcmouse-sans/ABCmouseSans-Light.woff2\"));\nvar ___CSS_LOADER_URL___9___ = getUrl(require(\"../../../../template/main/fonts/abcmouse-sans/ABCmouseSans-LightIt.woff2\"));\nvar ___CSS_LOADER_URL___10___ = getUrl(require(\"../../../../template/main/fonts/abcmouse-sans/ABCmouseSans-Regular.woff2\"));\nvar ___CSS_LOADER_URL___11___ = getUrl(require(\"../../../../template/main/fonts/abcmouse-sans/ABCmouseSans-RegularIt.woff2\"));\nvar ___CSS_LOADER_URL___12___ = getUrl(require(\"../../../../template/main/fonts/abcmouse-sans/ABCmouseSans-Semibold.woff2\"));\nvar ___CSS_LOADER_URL___13___ = getUrl(require(\"../../../../template/main/fonts/abcmouse-sans/ABCmouseSans-SemiboldIt.woff2\"));\nvar ___CSS_LOADER_URL___14___ = getUrl(require(\"../../../../template/main/fonts/abcmouse-sans/ABCmouseSans-Bold.woff2\"));\nvar ___CSS_LOADER_URL___15___ = getUrl(require(\"../../../../template/main/fonts/abcmouse-sans/ABCmouseSans-BoldIt.woff2\"));\nvar ___CSS_LOADER_URL___16___ = getUrl(require(\"../../../../template/main/fonts/abcmouse-sans/ABCmouseSans-ExtraBold.woff2\"));\nvar ___CSS_LOADER_URL___17___ = getUrl(require(\"../../../../template/main/fonts/abcmouse-sans/ABCmouseSans-ExtraBoldIt.woff2\"));\nvar ___CSS_LOADER_URL___18___ = getUrl(require(\"../../../../template/main/fonts/aofl-icons/icomoon.woff2?c6f21u\"));\n// Module\nexports.push([module.id, \"/*! @aofl-component */:root{--blue:#0d6efd;--indigo:#6610f2;--purple:#8b42ca;--pink:#e83e8c;--red:#e50b0a;--orange:#e17a05;--yellow:#ffc107;--green:#3c8104;--teal:#20c997;--cyan:#53c9dc;--white:#fff;--gray:#6b6b6b;--gray-dark:#343a40;--light-green:#b1dd53;--table-border-color:#d8d8d8;--gray-100:#f2f2f2;--gray-200:#d9d9d9;--gray-300:#d8d8d8;--gray-400:#ced4da;--gray-500:#adb5bd;--gray-600:#6c757d;--gray-700:#4a4a4a;--gray-800:#343a40;--gray-900:#212529;--gray-accessibility:#6b6b6b;--primary:#0d6efd;--secondary:#adb5bd;--success:#3c8104;--info:#cfe2ff;--warning:#e17a05;--danger:#d20a09;--light:#f8f9fa;--dark:#000;--breakpoint-xxs:0;--breakpoint-xs:375px;--breakpoint-sm:576px;--breakpoint-md:768px;--breakpoint-lg:992px;--breakpoint-xl:1200px;--font-family-sans-serif:aofl-sans,Arial,Helvetica,sans-serif;--font-family-monospace:SFMono-Regular,Menlo,Monaco,Consolas,\\\"Liberation Mono\\\",\\\"Courier New\\\",monospace;--z-index-dropdown:1000;--z-index-sticky:1020;--z-index-fixed:1030;--z-index-modal-backdrop:1040;--z-index-modal:1050;--z-index-popover:1060;--z-index-tooltip:1070;--header-height:6rem;--content-height:calc(100vh - 6rem);--sidepanel-width:20rem;--purple-color:#641da3;--purple-600:#956abc;--purple-400:#c7afdd;--purple-200:#e0d2ed;--struggling:#f6993b;--below-target:#ffcf00;--in_progress:#1280f5;--prior_knowledge:#edf887;--mastery_achieved:#69d112;--inactive:#d8d8d8}route-view{max-width:1200px}@font-face{font-family:aofl-sans;font-style:normal;font-weight:300;src:url(\" + ___CSS_LOADER_URL___0___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:italic;font-weight:300;src:url(\" + ___CSS_LOADER_URL___1___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:normal;font-weight:400;src:url(\" + ___CSS_LOADER_URL___2___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:italic;font-weight:400;src:url(\" + ___CSS_LOADER_URL___3___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:normal;font-weight:600;src:url(\" + ___CSS_LOADER_URL___4___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:italic;font-weight:600;src:url(\" + ___CSS_LOADER_URL___5___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:normal;font-weight:700;src:url(\" + ___CSS_LOADER_URL___6___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:italic;font-weight:700;src:url(\" + ___CSS_LOADER_URL___7___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:normal;font-weight:300;src:url(\" + ___CSS_LOADER_URL___8___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:italic;font-weight:300;src:url(\" + ___CSS_LOADER_URL___9___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:normal;font-weight:400;src:url(\" + ___CSS_LOADER_URL___10___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:italic;font-weight:400;src:url(\" + ___CSS_LOADER_URL___11___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:normal;font-weight:600;src:url(\" + ___CSS_LOADER_URL___12___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:italic;font-weight:600;src:url(\" + ___CSS_LOADER_URL___13___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:normal;font-weight:700;src:url(\" + ___CSS_LOADER_URL___14___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:italic;font-weight:700;src:url(\" + ___CSS_LOADER_URL___15___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:normal;font-weight:800;src:url(\" + ___CSS_LOADER_URL___16___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:italic;font-weight:800;src:url(\" + ___CSS_LOADER_URL___17___ + \") format(\\\"woff2\\\")}@font-face{font-family:icomoon;src:url(\" + ___CSS_LOADER_URL___18___ + \") format(\\\"woff2\\\");font-weight:400;font-style:normal;font-display:block}[class*=\\\" ai-\\\"],[class^=ai-]{font-family:icomoon!important;speak:never;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*,:after,:before{box-sizing:border-box}html{font-family:sans-serif;line-height:1.15;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:rgba(0,0,0,0)}figcaption,main,nav,section{display:block}[tabindex=\\\"-1\\\"]:focus{outline:0!important}p{margin-top:0;margin-bottom:1.6rem}strong{font-weight:bolder}a{color:#0d6efd;background-color:transparent}a,a:hover{text-decoration:none}a:hover{color:rgb(0,86.1,178.5)}a:not([href]):not([tabindex]),a:not([href]):not([tabindex]):focus,a:not([href]):not([tabindex]):hover{color:inherit;text-decoration:none}a:not([href]):not([tabindex]):focus{outline:0}code{font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:1em}caption{padding-top:.75rem;padding-bottom:.75rem;color:#6c757d;text-align:left;caption-side:bottom}label{display:inline-block;margin-bottom:.8rem}button{border-radius:0}button:focus{outline:1px dotted;outline:5px auto -webkit-focus-ring-color}button,input{margin:0;font-family:inherit;font-size:inherit;line-height:inherit;overflow:visible}button{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]:not(:disabled),[type=reset]:not(:disabled),[type=submit]:not(:disabled),button:not(:disabled){cursor:pointer}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{padding:0;border-style:none}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}input[type=date],input[type=datetime-local],input[type=month],input[type=time]{-webkit-appearance:listbox}legend{display:block;width:100%;max-width:100%;padding:0;margin-bottom:.5rem;font-size:1.5rem;line-height:inherit;color:inherit;white-space:normal}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:none}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}summary{display:list-item;cursor:pointer}template{display:none}[hidden]{display:none!important}*{-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important}html{font-size:62.5%;height:100%}link-to{color:#0d6efd;text-decoration:none;background-color:transparent}link-to:hover{color:rgb(0,86.1,178.5);text-decoration:none;cursor:pointer}route-view{display:none;flex:1}site-header{background-color:#fff;display:none;position:-webkit-sticky;position:sticky;top:0;height:var(--header-height)}#main{display:none;flex:1 auto;max-width:100%;overflow:hidden;flex-direction:column;overflow-y:scroll}.loaded #main,.loaded site-header,body.loaded,route-view.loaded{display:flex}route-view.left-panel-active{padding-left:var(--sidepanel-width)}code{font-size:87.5%;color:#e83e8c;word-break:break-word}a>code{color:inherit}.form-control{display:block;width:100%;height:calc(1.5em + .75rem + 2px);padding:.375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:#495057;background-color:#fff;background-clip:padding-box;border:1px solid #ced4da;border-radius:.25rem;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.form-control{transition:none}}.form-control::-ms-expand{background-color:transparent;border:0}.form-control:focus{color:#495057;background-color:#fff;border-color:rgb(127.5,189,255);outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.form-control::-webkit-input-placeholder{color:#6c757d;opacity:1}.form-control::-moz-placeholder{color:#6c757d;opacity:1}.form-control:-ms-input-placeholder{color:#6c757d;opacity:1}.form-control::-ms-input-placeholder{color:#6c757d;opacity:1}.form-control::placeholder{color:#6c757d;opacity:1}.form-control:disabled,.form-control[readonly]{background-color:#e9ecef;opacity:1}.form-control-sm{height:calc(1.5em + .5rem + 2px);padding:.25rem .5rem;font-size:.875rem;line-height:1.5;border-radius:.2rem}.form-group{margin-bottom:1.6rem}.invalid-feedback{display:none;width:100%;margin-top:.25rem;font-size:80%;color:#e50b0a}.form-control.is-invalid{border-color:#e50b0a;padding-right:calc(1.5em + .75rem);background-image:url(\\\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23dc3545' viewBox='-2 -2 7 7'%3E%3Cpath stroke='%23dc3545' d='M0 0l3 3m0-3L0 3'/%3E%3Ccircle r='.5'/%3E%3Ccircle cx='3' r='.5'/%3E%3Ccircle cy='3' r='.5'/%3E%3Ccircle cx='3' cy='3' r='.5'/%3E%3C/svg%3E\\\");background-repeat:no-repeat;background-position:100% calc(.375em + .1875rem);background-size:calc(.75em + .375rem) calc(.75em + .375rem)}.form-control.is-invalid:focus{border-color:#e50b0a;box-shadow:0 0 0 .2rem rgba(229,11,10,.25)}.form-control.is-invalid~.invalid-feedback{display:block}.form-control{font-size:1.5rem;height:4.8rem;padding:1.2rem 1rem}.form-control[multiple]{padding:0}.form-control[multiple] option{padding:.8rem 1.2rem}.form-control.is-invalid{background-position:99%}.form-control-sm{height:3.2rem;padding:.4rem .8rem;border-radius:.32rem}input[type=checkbox].is-invalid+label{color:#e50b0a}input[type=checkbox],input[type=radio]{cursor:pointer}input[type=checkbox]+label,input[type=radio]+label{cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.invalid-feedback{color:#d20a09}.form-control.is-invalid{border-color:#d20a09;background:none}form .form-control::-webkit-input-placeholder{color:#6b6b6b;border-color:#6b6b6b}form .form-control::-moz-placeholder,form .form-control::-ms-input-placeholder,form .form-control::-webkit-input-placeholder,form .form-control::placeholder{color:#6b6b6b;border-color:#6b6b6b}.form-control{border:1px solid #6b6b6b}.form-control:focus{border-color:#0d6efd}.btn{display:inline-block;font-weight:400;color:#000;text-align:center;vertical-align:middle;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;background-color:transparent;border:1px solid transparent;padding:.375rem .75rem;font-size:1.6rem;line-height:1.5;border-radius:.25rem;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.btn{transition:none}}.btn:hover{color:#000;text-decoration:none}.btn:focus{outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.btn.disabled,.btn:disabled{opacity:.65}a.btn.disabled{pointer-events:none}.btn-primary{color:#fff;background-color:#0d6efd;border-color:#0d6efd}.btn-primary:hover{color:#fff;background-color:rgb(1.8668032787,92.4067622951,225.8831967213);border-color:rgb(1.762295082,87.2336065574,213.237704918)}.btn-primary:focus{box-shadow:0 0 0 .2rem rgba(49.3,131.75,253.3,.5)}.btn-primary.disabled,.btn-primary:disabled{color:#fff;background-color:#0d6efd;border-color:#0d6efd}.btn-primary:not(:disabled):not(.disabled):active{color:#fff;background-color:rgb(1.762295082,87.2336065574,213.237704918);border-color:rgb(1.6577868852,82.0604508197,200.5922131148)}.btn-primary:not(:disabled):not(.disabled):active:focus{box-shadow:0 0 0 .2rem rgba(49.3,131.75,253.3,.5)}.btn-lg{padding:.5rem 1rem;font-size:1.9rem;line-height:1.5;border-radius:.3rem}.btn-block{display:block;width:100%}.btn-block+.btn-block{margin-top:.8rem}input[type=button].btn-block,input[type=reset].btn-block,input[type=submit].btn-block{width:100%}.btn:disabled{cursor:not-allowed}.btn.disabled,link-to.btn.disabled,link-to.btn:disabled,link-to.btn[disabled]{pointer-events:none}button,button:active{outline:none}.btn:focus-visible,[tabindex=\\\"0\\\"]:focus-visible,a:focus-visible,aofl-list-option:focus-visible,button[type=button]:focus-visible,collapse-button:focus-visible{outline:1px solid #e50b0a;border:1px solid #e50b0a}.btn-lg.btn-pill{border-radius:2.85rem}.btn-primary{font-weight:600;border-width:2px}.btn.disabled,.btn:disabled{background:#cfe2ff;border-color:#cfe2ff;color:#0d6efd;opacity:1}ems-dropdown>button.btn{display:flex;align-items:center;border:1px solid var(--gray)}@keyframes progress-bar-stripes{0%{background-position:1.6rem 0}to{background-position:0 0}}.close{float:right;font-size:1rem;font-weight:700;line-height:1;color:#000;text-shadow:0 1px 0 #fff;opacity:.5}.close:hover{color:#000;text-decoration:none}.close:not(:disabled):not(.disabled):focus,.close:not(:disabled):not(.disabled):hover{opacity:.75}button.close{padding:0;background-color:transparent;border:0;-webkit-appearance:none;-moz-appearance:none;appearance:none}a.close.disabled{pointer-events:none}.close,.close:not(:disabled):not(.disabled):focus,.close:not(:disabled):not(.disabled):hover{opacity:1}.modal-container{background-color:rgba(0,0,0,.2);position:fixed;top:0;bottom:0;right:0;left:0;z-index:var(--z-index-modal)}.modal-container :first-child{overflow:auto}.modal{position:relative;display:block;height:100vh}.modal-dialog-centered.modal-dialog-scrollable{height:auto;max-height:calc(100% - 2.8rem);min-height:auto}.modal-body,.modal-content,.modal-footer,.modal-header{border:none}.modal-header{font-size:2rem;padding:2.4rem}.modal-body{padding:0 2.4rem 4.8rem}.colored-header{color:#fff}.modal-body p{text-align:left}.colored-header-primary{background-color:#0d6efd}.colored-header-secondary{background-color:#adb5bd}.colored-header-success{background-color:#3c8104}.colored-header-info{background-color:#cfe2ff}.colored-header-warning{background-color:#e17a05}.colored-header-danger{background-color:#d20a09}.colored-header-light{background-color:#f8f9fa}.colored-header-dark{background-color:#000}@keyframes spinner-border{to{transform:rotate(1turn)}}@keyframes spinner-grow{0%{transform:scale(0)}50%{opacity:1}}.d-block{display:block!important}.m-0{margin:0!important}.mt-3{margin-top:1rem!important}.pb-3{padding-bottom:1rem!important}.mx-auto{margin-right:auto!important;margin-left:auto!important}[hidden]{visibility:hidden!important;height:0!important;width:0!important;min-height:unset!important}@media print{*,:after,:before{text-shadow:none!important;box-shadow:none!important}a:not(.btn){text-decoration:underline}p{orphans:3;widows:3}@page{size:a3}}@media print{main::-webkit-scrollbar{display:none}main{-ms-overflow-style:none;scrollbar-width:none}}@page{size:A4;margin:20mm 16mm 20mm 16mm}:host{display:block}button[type=submit]{max-width:250px}\", \"\"]);\n","import {repeat} from 'lit-html/directives/repeat';\nimport flags from './images/flags.png';\n\nexport default (ctx, html) => html`\n
\n
\n
ctx.showList()}\" style=\"${ctx.disabled ? 'cursor: default;' : ''}\">\n
\n
+${ctx.selected.phone_code}
\n
\n
\n
    \n ${repeat(ctx.countries, (country) => country.iso, (country, index) => html`\n
  • ctx.selectCode(country.iso, e)}\">\n
    \n ${country.name}\n +${country.phone_code}\n
  • \n `)}\n
\n
\n ctx.updatePhoneLocal(e)}\"\n @keyup=\"${(e) => ctx.updatePhoneLocal(e)}\"\n @click=\"${ctx.hideList}\" value=\"${ctx.phoneLocal}\"\n ?disabled=\"${ctx.disabled}\"\n maxlength=\"17\"\n placeholder=\"${ctx.placeholder}\"\n aria-label=\"Phone\"\n >\n
\n`;\n","export const countries = [\n {\n 'iso': 'af',\n 'name': 'Afghanistan',\n 'phone_code': '93',\n 'all_codes': ['93'],\n 'offset': 400\n },\n {\n 'iso': 'al',\n 'name': 'Albania',\n 'phone_code': '355',\n 'all_codes': ['355'],\n 'offset': 1000\n },\n {\n 'iso': 'dz',\n 'name': 'Algeria',\n 'phone_code': '213',\n 'all_codes': ['213'],\n 'offset': 11800\n },\n {\n 'iso': 'as',\n 'name': 'American Samoa',\n 'phone_code': '1',\n 'all_codes': ['1-684'],\n 'offset': 2200\n },\n {\n 'iso': 'ad',\n 'name': 'Andorra',\n 'phone_code': '376',\n 'all_codes': ['376'],\n 'offset': 0\n },\n {\n 'iso': 'ao',\n 'name': 'Angola',\n 'phone_code': '244',\n 'all_codes': ['244'],\n 'offset': 1600\n },\n {\n 'iso': 'ai',\n 'name': 'Anguilla',\n 'phone_code': '1',\n 'all_codes': ['1-264'],\n 'offset': 800\n },\n {\n 'iso': 'aq',\n 'name': 'Antarctica',\n 'phone_code': '672',\n 'all_codes': ['672'],\n 'offset': 1800\n },\n {\n 'iso': 'ag',\n 'name': 'Antigua and Barbuda',\n 'phone_code': '1',\n 'all_codes': ['1-268'],\n 'offset': 600\n },\n {\n 'iso': 'ar',\n 'name': 'Argentina',\n 'phone_code': '54',\n 'all_codes': ['54'],\n 'offset': 2000\n },\n {\n 'iso': 'am',\n 'name': 'Armenia',\n 'phone_code': '374',\n 'all_codes': ['374'],\n 'offset': 1200\n },\n {\n 'iso': 'aw',\n 'name': 'Aruba',\n 'phone_code': '297',\n 'all_codes': ['297'],\n 'offset': 2800\n },\n {\n 'iso': 'au',\n 'name': 'Australia',\n 'phone_code': '61',\n 'all_codes': ['61'],\n 'offset': 2600\n },\n {\n 'iso': 'at',\n 'name': 'Austria',\n 'phone_code': '43',\n 'all_codes': ['43'],\n 'offset': 2400\n },\n {\n 'iso': 'az',\n 'name': 'Azerbaijan',\n 'phone_code': '994',\n 'all_codes': ['994'],\n 'offset': 3000\n },\n {\n 'iso': 'bs',\n 'name': 'Bahamas',\n 'phone_code': '1',\n 'all_codes': ['1-242'],\n 'offset': 6000\n },\n {\n 'iso': 'bh',\n 'name': 'Bahrain',\n 'phone_code': '973',\n 'all_codes': ['973'],\n 'offset': 4400\n },\n {\n 'iso': 'bd',\n 'name': 'Bangladesh',\n 'phone_code': '880',\n 'all_codes': ['880'],\n 'offset': 3600\n },\n {\n 'iso': 'bb',\n 'name': 'Barbados',\n 'phone_code': '1',\n 'all_codes': ['1-246'],\n 'offset': 3400\n },\n {\n 'iso': 'by',\n 'name': 'Belarus',\n 'phone_code': '375',\n 'all_codes': ['375'],\n 'offset': 6600\n },\n {\n 'iso': 'be',\n 'name': 'Belgium',\n 'phone_code': '32',\n 'all_codes': ['32'],\n 'offset': 3800\n },\n {\n 'iso': 'bz',\n 'name': 'Belize',\n 'phone_code': '501',\n 'all_codes': ['501'],\n 'offset': 6800\n },\n {\n 'iso': 'bj',\n 'name': 'Benin',\n 'phone_code': '229',\n 'all_codes': ['229'],\n 'offset': 4800\n },\n {\n 'iso': 'bm',\n 'name': 'Bermuda',\n 'phone_code': '1',\n 'all_codes': ['1-441'],\n 'offset': 5200\n },\n {\n 'iso': 'bt',\n 'name': 'Bhutan',\n 'phone_code': '975',\n 'all_codes': ['975'],\n 'offset': 6200\n },\n {\n 'iso': 'bo',\n 'name': 'Bolivia',\n 'phone_code': '591',\n 'all_codes': ['591'],\n 'offset': 5600\n },\n {\n 'iso': 'ba',\n 'name': 'Bosnia and Herzegovina',\n 'phone_code': '387',\n 'all_codes': ['387'],\n 'offset': 3200\n },\n {\n 'iso': 'bw',\n 'name': 'Botswana',\n 'phone_code': '267',\n 'all_codes': ['267'],\n 'offset': 6400\n },\n {\n 'iso': 'br',\n 'name': 'Brazil',\n 'phone_code': '55',\n 'all_codes': ['55'],\n 'offset': 5800\n },\n {\n 'iso': 'io',\n 'name': 'British Indian Ocean Territory',\n 'phone_code': '246',\n 'all_codes': ['246'],\n 'offset': 19800\n },\n {\n 'iso': 'vg',\n 'name': 'British Virgin Islands',\n 'phone_code': '1',\n 'all_codes': ['1-284'],\n 'offset': 45600\n },\n {\n 'iso': 'bn',\n 'name': 'Brunei',\n 'phone_code': '673',\n 'all_codes': ['673'],\n 'offset': 5400\n },\n {\n 'iso': 'bg',\n 'name': 'Bulgaria',\n 'phone_code': '359',\n 'all_codes': ['359'],\n 'offset': 4200\n },\n {\n 'iso': 'bf',\n 'name': 'Burkina Faso',\n 'phone_code': '226',\n 'all_codes': ['226'],\n 'offset': 4000\n },\n {\n 'iso': 'bi',\n 'name': 'Burundi',\n 'phone_code': '257',\n 'all_codes': ['257'],\n 'offset': 4600\n },\n {\n 'iso': 'kh',\n 'name': 'Cambodia',\n 'phone_code': '855',\n 'all_codes': ['855'],\n 'offset': 22000\n },\n {\n 'iso': 'cm',\n 'name': 'Cameroon',\n 'phone_code': '237',\n 'all_codes': ['237'],\n 'offset': 8800\n },\n {\n 'iso': 'ca',\n 'name': 'Canada',\n 'phone_code': '1',\n 'all_codes': ['1-368', '1-403', '1-587', '1-780', '1-825', '1-236', '1-250', '1-604', '1-672', '1-778', '1-204', '1-431', '1-584', '1-428', '1-506', '1-709', '1-879', '1-867', '1-782', '1-902', '1-867', '1-226', '1-249', '1-289', '1-343', '1-365', '1-382', '1-387', '1-416', '1-437', '1-519', '1-548', '1-613', '1-647', '1-683', '1-705', '1-742', '1-753', '1-807', '1-905', '1-942', '1-782', '1-902', '1-263', '1-354', '1-367', '1-418', '1-438', '1-450', '1-468', '1-514', '1-579', '1-581', '1-819', '1-873', '1-306', '1-474', '1-639', '1-867'],\n 'offset': 7000\n },\n {\n 'iso': 'cv',\n 'name': 'Cape Verde',\n 'phone_code': '238',\n 'all_codes': ['238'],\n 'offset': 9800\n },\n {\n 'iso': 'ky',\n 'name': 'Cayman Islands',\n 'phone_code': '1',\n 'all_codes': ['1-345'],\n 'offset': 23400\n },\n {\n 'iso': 'cf',\n 'name': 'Central African Republic',\n 'phone_code': '236',\n 'all_codes': ['236'],\n 'offset': 7600\n },\n {\n 'iso': 'td',\n 'name': 'Chad',\n 'phone_code': '235',\n 'all_codes': ['235'],\n 'offset': 41200\n },\n {\n 'iso': 'cl',\n 'name': 'Chile',\n 'phone_code': '56',\n 'all_codes': ['56'],\n 'offset': 8600\n },\n {\n 'iso': 'cn',\n 'name': 'China',\n 'phone_code': '86',\n 'all_codes': ['86'],\n 'offset': 9000\n },\n {\n 'iso': 'cx',\n 'name': 'Christmas Island',\n 'phone_code': '61',\n 'all_codes': ['61'],\n 'offset': 10200\n },\n {\n 'iso': 'cc',\n 'name': 'Cocos Islands',\n 'phone_code': '61',\n 'all_codes': ['61'],\n 'offset': 7200\n },\n {\n 'iso': 'co',\n 'name': 'Colombia',\n 'phone_code': '57',\n 'all_codes': ['57'],\n 'offset': 9400\n },\n {\n 'iso': 'km',\n 'name': 'Comoros',\n 'phone_code': '269',\n 'all_codes': ['269'],\n 'offset': 22400\n },\n {\n 'iso': 'ck',\n 'name': 'Cook Islands',\n 'phone_code': '682',\n 'all_codes': ['682'],\n 'offset': 8400\n },\n {\n 'iso': 'cr',\n 'name': 'Costa Rica',\n 'phone_code': '506',\n 'all_codes': ['506'],\n 'offset': 9200\n },\n {\n 'iso': 'hr',\n 'name': 'Croatia',\n 'phone_code': '385',\n 'all_codes': ['385'],\n 'offset': 18200\n },\n {\n 'iso': 'cu',\n 'name': 'Cuba',\n 'phone_code': '53',\n 'all_codes': ['53'],\n 'offset': 9600\n },\n {\n 'iso': 'cw',\n 'name': 'Curacao',\n 'phone_code': '599',\n 'all_codes': ['599'],\n 'offset': 10000\n },\n {\n 'iso': 'cy',\n 'name': 'Cyprus',\n 'phone_code': '357',\n 'all_codes': ['357'],\n 'offset': 10400\n },\n {\n 'iso': 'cz',\n 'name': 'Czechia',\n 'phone_code': '420',\n 'all_codes': ['420'],\n 'offset': 10600\n },\n {\n 'iso': 'cd',\n 'name': 'Democratic Republic of the Congo',\n 'phone_code': '243',\n 'all_codes': ['243'],\n 'offset': 7400\n },\n {\n 'iso': 'dk',\n 'name': 'Denmark',\n 'phone_code': '45',\n 'all_codes': ['45'],\n 'offset': 11200\n },\n {\n 'iso': 'dj',\n 'name': 'Djibouti',\n 'phone_code': '253',\n 'all_codes': ['253'],\n 'offset': 11000\n },\n {\n 'iso': 'dm',\n 'name': 'Dominica',\n 'phone_code': '1',\n 'all_codes': ['1-767'],\n 'offset': 11600\n },\n {\n 'iso': 'do',\n 'name': 'Dominican Republic',\n 'phone_code': '1',\n 'all_codes': ['1-809', '1-829', '1-849'],\n 'offset': 11400\n },\n {\n 'iso': 'tl',\n 'name': 'East Timor',\n 'phone_code': '670',\n 'all_codes': ['670'],\n 'offset': 42200\n },\n {\n 'iso': 'ec',\n 'name': 'Ecuador',\n 'phone_code': '593',\n 'all_codes': ['593'],\n 'offset': 12000\n },\n {\n 'iso': 'eg',\n 'name': 'Egypt',\n 'phone_code': '20',\n 'all_codes': ['20'],\n 'offset': 12400\n },\n {\n 'iso': 'sv',\n 'name': 'El Salvador',\n 'phone_code': '503',\n 'all_codes': ['503'],\n 'offset': 40200\n },\n {\n 'iso': 'gq',\n 'name': 'Equatorial Guinea',\n 'phone_code': '240',\n 'all_codes': ['240'],\n 'offset': 16600\n },\n {\n 'iso': 'er',\n 'name': 'Eritrea',\n 'phone_code': '291',\n 'all_codes': ['291'],\n 'offset': 12800\n },\n {\n 'iso': 'ee',\n 'name': 'Estonia',\n 'phone_code': '372',\n 'all_codes': ['372'],\n 'offset': 12200\n },\n {\n 'iso': 'sz',\n 'name': 'Eswatini',\n 'phone_code': '268',\n 'all_codes': ['268'],\n 'offset': 40800\n },\n {\n 'iso': 'et',\n 'name': 'Ethiopia',\n 'phone_code': '251',\n 'all_codes': ['251'],\n 'offset': 13200\n },\n {\n 'iso': 'fk',\n 'name': 'Falkland Islands',\n 'phone_code': '500',\n 'all_codes': ['500'],\n 'offset': 14000\n },\n {\n 'iso': 'fo',\n 'name': 'Faroe Islands',\n 'phone_code': '298',\n 'all_codes': ['298'],\n 'offset': 13800\n },\n {\n 'iso': 'fj',\n 'name': 'Fiji',\n 'phone_code': '679',\n 'all_codes': ['679'],\n 'offset': 13600\n },\n {\n 'iso': 'fi',\n 'name': 'Finland',\n 'phone_code': '358',\n 'all_codes': ['358'],\n 'offset': 13400\n },\n {\n 'iso': 'fr',\n 'name': 'France',\n 'phone_code': '33',\n 'all_codes': ['33'],\n 'offset': 26800\n },\n {\n 'iso': 'pf',\n 'name': 'French Polynesia',\n 'phone_code': '689',\n 'all_codes': ['689'],\n 'offset': 33200\n },\n {\n 'iso': 'ga',\n 'name': 'Gabon',\n 'phone_code': '241',\n 'all_codes': ['241'],\n 'offset': 14400\n },\n {\n 'iso': 'gm',\n 'name': 'Gambia',\n 'phone_code': '220',\n 'all_codes': ['220'],\n 'offset': 16200\n },\n {\n 'iso': 'ge',\n 'name': 'Georgia',\n 'phone_code': '995',\n 'all_codes': ['995'],\n 'offset': 15200\n },\n {\n 'iso': 'de',\n 'name': 'Germany',\n 'phone_code': '49',\n 'all_codes': ['49'],\n 'offset': 10800\n },\n {\n 'iso': 'gh',\n 'name': 'Ghana',\n 'phone_code': '233',\n 'all_codes': ['233'],\n 'offset': 15600\n },\n {\n 'iso': 'gi',\n 'name': 'Gibraltar',\n 'phone_code': '350',\n 'all_codes': ['350'],\n 'offset': 15800\n },\n {\n 'iso': 'gr',\n 'name': 'Greece',\n 'phone_code': '30',\n 'all_codes': ['30'],\n 'offset': 16800\n },\n {\n 'iso': 'gl',\n 'name': 'Greenland',\n 'phone_code': '299',\n 'all_codes': ['299'],\n 'offset': 16000\n },\n {\n 'iso': 'gd',\n 'name': 'Grenada',\n 'phone_code': '1',\n 'all_codes': ['1-473'],\n 'offset': 15000\n },\n {\n 'iso': 'gu',\n 'name': 'Guam',\n 'phone_code': '1',\n 'all_codes': ['1-671'],\n 'offset': 17200\n },\n {\n 'iso': 'gt',\n 'name': 'Guatemala',\n 'phone_code': '502',\n 'all_codes': ['502'],\n 'offset': 17000\n },\n {\n 'iso': 'gg',\n 'name': 'Guernsey',\n 'phone_code': '44',\n 'all_codes': ['44-1481'],\n 'offset': 15400\n },\n {\n 'iso': 'gn',\n 'name': 'Guinea',\n 'phone_code': '224',\n 'all_codes': ['224'],\n 'offset': 16400\n },\n {\n 'iso': 'gw',\n 'name': 'Guinea-Bissau',\n 'phone_code': '245',\n 'all_codes': ['245'],\n 'offset': 17400\n },\n {\n 'iso': 'gy',\n 'name': 'Guyana',\n 'phone_code': '592',\n 'all_codes': ['592'],\n 'offset': 17600\n },\n {\n 'iso': 'ht',\n 'name': 'Haiti',\n 'phone_code': '509',\n 'all_codes': ['509'],\n 'offset': 18400\n },\n {\n 'iso': 'hn',\n 'name': 'Honduras',\n 'phone_code': '504',\n 'all_codes': ['504'],\n 'offset': 18000\n },\n {\n 'iso': 'hk',\n 'name': 'Hong Kong',\n 'phone_code': '852',\n 'all_codes': ['852'],\n 'offset': 17800\n },\n {\n 'iso': 'hu',\n 'name': 'Hungary',\n 'phone_code': '36',\n 'all_codes': ['36'],\n 'offset': 18800\n },\n {\n 'iso': 'is',\n 'name': 'Iceland',\n 'phone_code': '354',\n 'all_codes': ['354'],\n 'offset': 20400\n },\n {\n 'iso': 'in',\n 'name': 'India',\n 'phone_code': '91',\n 'all_codes': ['91'],\n 'offset': 19400\n },\n {\n 'iso': 'id',\n 'name': 'Indonesia',\n 'phone_code': '62',\n 'all_codes': ['62'],\n 'offset': 18600\n },\n {\n 'iso': 'ir',\n 'name': 'Iran',\n 'phone_code': '98',\n 'all_codes': ['98'],\n 'offset': 20200\n },\n {\n 'iso': 'iq',\n 'name': 'Iraq',\n 'phone_code': '964',\n 'all_codes': ['964'],\n 'offset': 20000\n },\n {\n 'iso': 'ie',\n 'name': 'Ireland',\n 'phone_code': '353',\n 'all_codes': ['353'],\n 'offset': 19000\n },\n {\n 'iso': 'im',\n 'name': 'Isle of Man',\n 'phone_code': '44',\n 'all_codes': ['44-1624'],\n 'offset': 19600\n },\n {\n 'iso': 'il',\n 'name': 'Israel',\n 'phone_code': '972',\n 'all_codes': ['972'],\n 'offset': 19200\n },\n {\n 'iso': 'it',\n 'name': 'Italy',\n 'phone_code': '39',\n 'all_codes': ['39'],\n 'offset': 20600\n },\n {\n 'iso': 'ci',\n 'name': 'Ivory Coast',\n 'phone_code': '225',\n 'all_codes': ['225'],\n 'offset': 8200\n },\n {\n 'iso': 'jm',\n 'name': 'Jamaica',\n 'phone_code': '1',\n 'all_codes': ['1-876'],\n 'offset': 21000\n },\n {\n 'iso': 'jp',\n 'name': 'Japan',\n 'phone_code': '81',\n 'all_codes': ['81'],\n 'offset': 21400\n },\n {\n 'iso': 'je',\n 'name': 'Jersey',\n 'phone_code': '44',\n 'all_codes': ['44-1534'],\n 'offset': 20800\n },\n {\n 'iso': 'jo',\n 'name': 'Jordan',\n 'phone_code': '962',\n 'all_codes': ['962'],\n 'offset': 21200\n },\n {\n 'iso': 'kz',\n 'name': 'Kazakhstan',\n 'phone_code': '7',\n 'all_codes': ['7'],\n 'offset': 23600\n },\n {\n 'iso': 'ke',\n 'name': 'Kenya',\n 'phone_code': '254',\n 'all_codes': ['254'],\n 'offset': 21600\n },\n {\n 'iso': 'ki',\n 'name': 'Kiribati',\n 'phone_code': '686',\n 'all_codes': ['686'],\n 'offset': 22200\n },\n {\n 'iso': 'xk',\n 'name': 'Kosovo',\n 'phone_code': '383',\n 'all_codes': ['383'],\n 'offset': 46800\n },\n {\n 'iso': 'kw',\n 'name': 'Kuwait',\n 'phone_code': '965',\n 'all_codes': ['965'],\n 'offset': 23200\n },\n {\n 'iso': 'kg',\n 'name': 'Kyrgyzstan',\n 'phone_code': '996',\n 'all_codes': ['996'],\n 'offset': 21800\n },\n {\n 'iso': 'la',\n 'name': 'Laos',\n 'phone_code': '856',\n 'all_codes': ['856'],\n 'offset': 23800\n },\n {\n 'iso': 'lv',\n 'name': 'Latvia',\n 'phone_code': '371',\n 'all_codes': ['371'],\n 'offset': 25600\n },\n {\n 'iso': 'lb',\n 'name': 'Lebanon',\n 'phone_code': '961',\n 'all_codes': ['961'],\n 'offset': 24000\n },\n {\n 'iso': 'ls',\n 'name': 'Lesotho',\n 'phone_code': '266',\n 'all_codes': ['266'],\n 'offset': 25000\n },\n {\n 'iso': 'lr',\n 'name': 'Liberia',\n 'phone_code': '231',\n 'all_codes': ['231'],\n 'offset': 24800\n },\n {\n 'iso': 'ly',\n 'name': 'Libya',\n 'phone_code': '218',\n 'all_codes': ['218'],\n 'offset': 25800\n },\n {\n 'iso': 'li',\n 'name': 'Liechtenstein',\n 'phone_code': '423',\n 'all_codes': ['423'],\n 'offset': 24400\n },\n {\n 'iso': 'lt',\n 'name': 'Lithuania',\n 'phone_code': '370',\n 'all_codes': ['370'],\n 'offset': 25200\n },\n {\n 'iso': 'lu',\n 'name': 'Luxembourg',\n 'phone_code': '352',\n 'all_codes': ['352'],\n 'offset': 25400\n },\n {\n 'iso': 'mo',\n 'name': 'Macau',\n 'phone_code': '853',\n 'all_codes': ['853'],\n 'offset': 28200\n },\n {\n 'iso': 'mg',\n 'name': 'Madagascar',\n 'phone_code': '261',\n 'all_codes': ['261'],\n 'offset': 27000\n },\n {\n 'iso': 'mw',\n 'name': 'Malawi',\n 'phone_code': '265',\n 'all_codes': ['265'],\n 'offset': 29600\n },\n {\n 'iso': 'my',\n 'name': 'Malaysia',\n 'phone_code': '60',\n 'all_codes': ['60'],\n 'offset': 30000\n },\n {\n 'iso': 'mv',\n 'name': 'Maldives',\n 'phone_code': '960',\n 'all_codes': ['960'],\n 'offset': 29400\n },\n {\n 'iso': 'ml',\n 'name': 'Mali',\n 'phone_code': '223',\n 'all_codes': ['223'],\n 'offset': 27600\n },\n {\n 'iso': 'mt',\n 'name': 'Malta',\n 'phone_code': '356',\n 'all_codes': ['356'],\n 'offset': 29000\n },\n {\n 'iso': 'mh',\n 'name': 'Marshall Islands',\n 'phone_code': '692',\n 'all_codes': ['692'],\n 'offset': 27200\n },\n {\n 'iso': 'mr',\n 'name': 'Mauritania',\n 'phone_code': '222',\n 'all_codes': ['222'],\n 'offset': 28600\n },\n {\n 'iso': 'mu',\n 'name': 'Mauritius',\n 'phone_code': '230',\n 'all_codes': ['230'],\n 'offset': 29200\n },\n {\n 'iso': 'yt',\n 'name': 'Mayotte',\n 'phone_code': '262',\n 'all_codes': ['262'],\n 'offset': 26800\n },\n {\n 'iso': 'mx',\n 'name': 'Mexico',\n 'phone_code': '52',\n 'all_codes': ['52'],\n 'offset': 29800\n },\n {\n 'iso': 'fm',\n 'name': 'Micronesia',\n 'phone_code': '691',\n 'all_codes': ['691'],\n 'offset': 14200\n },\n {\n 'iso': 'md',\n 'name': 'Moldova',\n 'phone_code': '373',\n 'all_codes': ['373'],\n 'offset': 26400\n },\n {\n 'iso': 'mc',\n 'name': 'Monaco',\n 'phone_code': '377',\n 'all_codes': ['377'],\n 'offset': 26200\n },\n {\n 'iso': 'mn',\n 'name': 'Mongolia',\n 'phone_code': '976',\n 'all_codes': ['976'],\n 'offset': 28000\n },\n {\n 'iso': 'me',\n 'name': 'Montenegro',\n 'phone_code': '382',\n 'all_codes': ['382'],\n 'offset': 26600\n },\n {\n 'iso': 'ms',\n 'name': 'Montserrat',\n 'phone_code': '1',\n 'all_codes': ['1-664'],\n 'offset': 28800\n },\n {\n 'iso': 'ma',\n 'name': 'Morocco',\n 'phone_code': '212',\n 'all_codes': ['212'],\n 'offset': 26000\n },\n {\n 'iso': 'mz',\n 'name': 'Mozambique',\n 'phone_code': '258',\n 'all_codes': ['258'],\n 'offset': 30200\n },\n {\n 'iso': 'mm',\n 'name': 'Myanmar',\n 'phone_code': '95',\n 'all_codes': ['95'],\n 'offset': 27800\n },\n {\n 'iso': 'na',\n 'name': 'Namibia',\n 'phone_code': '264',\n 'all_codes': ['264'],\n 'offset': 30400\n },\n {\n 'iso': 'nr',\n 'name': 'Nauru',\n 'phone_code': '674',\n 'all_codes': ['674'],\n 'offset': 32000\n },\n {\n 'iso': 'np',\n 'name': 'Nepal',\n 'phone_code': '977',\n 'all_codes': ['977'],\n 'offset': 31800\n },\n {\n 'iso': 'nl',\n 'name': 'Netherlands',\n 'phone_code': '31',\n 'all_codes': ['31'],\n 'offset': 31400\n },\n {\n 'iso': 'an',\n 'name': 'Netherlands Antilles',\n 'phone_code': '599',\n 'all_codes': ['599'],\n 'offset': 1400\n },\n {\n 'iso': 'nc',\n 'name': 'New Caledonia',\n 'phone_code': '687',\n 'all_codes': ['687'],\n /* 'offset': 30600 */\n 'offset': 26800\n },\n {\n 'iso': 'nz',\n 'name': 'New Zealand',\n 'phone_code': '64',\n 'all_codes': ['64'],\n 'offset': 32400\n },\n {\n 'iso': 'ni',\n 'name': 'Nicaragua',\n 'phone_code': '505',\n 'all_codes': ['505'],\n 'offset': 31200\n },\n {\n 'iso': 'ne',\n 'name': 'Niger',\n 'phone_code': '227',\n 'all_codes': ['227'],\n 'offset': 30800\n },\n {\n 'iso': 'ng',\n 'name': 'Nigeria',\n 'phone_code': '234',\n 'all_codes': ['234'],\n 'offset': 31000\n },\n {\n 'iso': 'nu',\n 'name': 'Niue',\n 'phone_code': '683',\n 'all_codes': ['683'],\n 'offset': 32200\n },\n {\n 'iso': 'kp',\n 'name': 'North Korea',\n 'phone_code': '850',\n 'all_codes': ['850'],\n 'offset': 22800\n },\n {\n 'iso': 'mk',\n 'name': 'North Macedonia',\n 'phone_code': '389',\n 'all_codes': ['389'],\n 'offset': 27400\n },\n {\n 'iso': 'mp',\n 'name': 'Northern Mariana Islands',\n 'phone_code': '1',\n 'all_codes': ['1-670'],\n 'offset': 28400\n },\n {\n 'iso': 'no',\n 'name': 'Norway',\n 'phone_code': '47',\n 'all_codes': ['47'],\n 'offset': 31600\n },\n {\n 'iso': 'om',\n 'name': 'Oman',\n 'phone_code': '968',\n 'all_codes': ['968'],\n 'offset': 32600\n },\n {\n 'iso': 'pk',\n 'name': 'Pakistan',\n 'phone_code': '92',\n 'all_codes': ['92'],\n 'offset': 33800\n },\n {\n 'iso': 'pw',\n 'name': 'Palau',\n 'phone_code': '680',\n 'all_codes': ['680'],\n 'offset': 35200\n },\n {\n 'iso': 'ps',\n 'name': 'Palestine',\n 'phone_code': '970',\n 'all_codes': ['970'],\n 'offset': 34800\n },\n {\n 'iso': 'pa',\n 'name': 'Panama',\n 'phone_code': '507',\n 'all_codes': ['507'],\n 'offset': 32800\n },\n {\n 'iso': 'pg',\n 'name': 'Papua New Guinea',\n 'phone_code': '675',\n 'all_codes': ['675'],\n 'offset': 33400\n },\n {\n 'iso': 'py',\n 'name': 'Paraguay',\n 'phone_code': '595',\n 'all_codes': ['595'],\n 'offset': 35400\n },\n {\n 'iso': 'pe',\n 'name': 'Peru',\n 'phone_code': '51',\n 'all_codes': ['51'],\n 'offset': 33000\n },\n {\n 'iso': 'ph',\n 'name': 'Philippines',\n 'phone_code': '63',\n 'all_codes': ['63'],\n 'offset': 33600\n },\n {\n 'iso': 'pn',\n 'name': 'Pitcairn',\n 'phone_code': '64',\n 'all_codes': ['64'],\n 'offset': 34400\n },\n {\n 'iso': 'pl',\n 'name': 'Poland',\n 'phone_code': '48',\n 'all_codes': ['48'],\n 'offset': 34000\n },\n {\n 'iso': 'pt',\n 'name': 'Portugal',\n 'phone_code': '351',\n 'all_codes': ['351'],\n 'offset': 35000\n },\n {\n 'iso': 'pr',\n 'name': 'Puerto Rico',\n 'phone_code': '1',\n 'all_codes': ['1-787', '1-939'],\n 'offset': 34600\n },\n {\n 'iso': 'qa',\n 'name': 'Qatar',\n 'phone_code': '974',\n 'all_codes': ['974'],\n 'offset': 35600\n },\n {\n 'iso': 'cg',\n 'name': 'Republic of the Congo',\n 'phone_code': '242',\n 'all_codes': ['242'],\n 'offset': 7800\n },\n {\n 'iso': 're',\n 'name': 'Reunion',\n 'phone_code': '262',\n 'all_codes': ['262'],\n 'offset': 35800\n },\n {\n 'iso': 'ro',\n 'name': 'Romania',\n 'phone_code': '40',\n 'all_codes': ['40'],\n 'offset': 36000\n },\n {\n 'iso': 'ru',\n 'name': 'Russia',\n 'phone_code': '7',\n 'all_codes': ['7'],\n 'offset': 36400\n },\n {\n 'iso': 'rw',\n 'name': 'Rwanda',\n 'phone_code': '250',\n 'all_codes': ['250'],\n 'offset': 36600\n },\n {\n 'iso': 'bl',\n 'name': 'Saint Barthelemy',\n 'phone_code': '590',\n 'all_codes': ['590'],\n 'offset': 5000\n },\n {\n 'iso': 'sh',\n 'name': 'Saint Helena',\n 'phone_code': '290',\n 'all_codes': ['290'],\n 'offset': 38000\n },\n {\n 'iso': 'kn',\n 'name': 'Saint Kitts and Nevis',\n 'phone_code': '1',\n 'all_codes': ['1-869'],\n 'offset': 22600\n },\n {\n 'iso': 'lc',\n 'name': 'Saint Lucia',\n 'phone_code': '1',\n 'all_codes': ['1-758'],\n 'offset': 24200\n },\n {\n 'iso': 'mf',\n 'name': 'Saint Martin',\n 'phone_code': '590',\n 'all_codes': ['590'],\n 'offset': 26800\n },\n {\n 'iso': 'pm',\n 'name': 'Saint Pierre and Miquelon',\n 'phone_code': '508',\n 'all_codes': ['508'],\n 'offset': 34200\n },\n {\n 'iso': 'vc',\n 'name': 'Saint Vincent and the Grenadines',\n 'phone_code': '1',\n 'all_codes': ['1-784'],\n 'offset': 45200\n },\n {\n 'iso': 'ws',\n 'name': 'Samoa',\n 'phone_code': '685',\n 'all_codes': ['685'],\n 'offset': 46600\n },\n {\n 'iso': 'sm',\n 'name': 'San Marino',\n 'phone_code': '378',\n 'all_codes': ['378'],\n 'offset': 39000\n },\n {\n 'iso': 'st',\n 'name': 'Sao Tome and Principe',\n 'phone_code': '239',\n 'all_codes': ['239'],\n 'offset': 40000\n },\n {\n 'iso': 'sa',\n 'name': 'Saudi Arabia',\n 'phone_code': '966',\n 'all_codes': ['966'],\n 'offset': 36800\n },\n {\n 'iso': 'sn',\n 'name': 'Senegal',\n 'phone_code': '221',\n 'all_codes': ['221'],\n 'offset': 39200\n },\n {\n 'iso': 'rs',\n 'name': 'Serbia',\n 'phone_code': '381',\n 'all_codes': ['381'],\n 'offset': 36200\n },\n {\n 'iso': 'sc',\n 'name': 'Seychelles',\n 'phone_code': '248',\n 'all_codes': ['248'],\n 'offset': 37200\n },\n {\n 'iso': 'sl',\n 'name': 'Sierra Leone',\n 'phone_code': '232',\n 'all_codes': ['232'],\n 'offset': 38800\n },\n {\n 'iso': 'sg',\n 'name': 'Singapore',\n 'phone_code': '65',\n 'all_codes': ['65'],\n 'offset': 37800\n },\n {\n 'iso': 'sx',\n 'name': 'Sint Maarten',\n 'phone_code': '1',\n 'all_codes': ['1-721'],\n 'offset': 40400\n },\n {\n 'iso': 'sk',\n 'name': 'Slovakia',\n 'phone_code': '421',\n 'all_codes': ['421'],\n 'offset': 38600\n },\n {\n 'iso': 'si',\n 'name': 'Slovenia',\n 'phone_code': '386',\n 'all_codes': ['386'],\n 'offset': 38200\n },\n {\n 'iso': 'sb',\n 'name': 'Solomon Islands',\n 'phone_code': '677',\n 'all_codes': ['677'],\n 'offset': 37000\n },\n {\n 'iso': 'so',\n 'name': 'Somalia',\n 'phone_code': '252',\n 'all_codes': ['252'],\n 'offset': 39400\n },\n {\n 'iso': 'za',\n 'name': 'South Africa',\n 'phone_code': '27',\n 'all_codes': ['27'],\n 'offset': 47200\n },\n {\n 'iso': 'kr',\n 'name': 'South Korea',\n 'phone_code': '82',\n 'all_codes': ['82'],\n 'offset': 23000\n },\n {\n 'iso': 'ss',\n 'name': 'South Sudan',\n 'phone_code': '211',\n 'all_codes': ['211'],\n 'offset': 39800\n },\n {\n 'iso': 'es',\n 'name': 'Spain',\n 'phone_code': '34',\n 'all_codes': ['34'],\n 'offset': 13000\n },\n {\n 'iso': 'lk',\n 'name': 'Sri Lanka',\n 'phone_code': '94',\n 'all_codes': ['94'],\n 'offset': 24600\n },\n {\n 'iso': 'sd',\n 'name': 'Sudan',\n 'phone_code': '249',\n 'all_codes': ['249'],\n 'offset': 37400\n },\n {\n 'iso': 'sr',\n 'name': 'Suriname',\n 'phone_code': '597',\n 'all_codes': ['597'],\n 'offset': 39600\n },\n {\n 'iso': 'sj',\n 'name': 'Svalbard and Jan Mayen',\n 'phone_code': '47',\n 'all_codes': ['47'],\n 'offset': 38400\n },\n {\n 'iso': 'se',\n 'name': 'Sweden',\n 'phone_code': '46',\n 'all_codes': ['46'],\n 'offset': 37600\n },\n {\n 'iso': 'ch',\n 'name': 'Switzerland',\n 'phone_code': '41',\n 'all_codes': ['41'],\n 'offset': 8000\n },\n {\n 'iso': 'sy',\n 'name': 'Syria',\n 'phone_code': '963',\n 'all_codes': ['963'],\n 'offset': 40600\n },\n {\n 'iso': 'tw',\n 'name': 'Taiwan',\n 'phone_code': '886',\n 'all_codes': ['886'],\n 'offset': 43600\n },\n {\n 'iso': 'tj',\n 'name': 'Tajikistan',\n 'phone_code': '992',\n 'all_codes': ['992'],\n 'offset': 41800\n },\n {\n 'iso': 'tz',\n 'name': 'Tanzania',\n 'phone_code': '255',\n 'all_codes': ['255'],\n 'offset': 43800\n },\n {\n 'iso': 'th',\n 'name': 'Thailand',\n 'phone_code': '66',\n 'all_codes': ['66'],\n 'offset': 41600\n },\n {\n 'iso': 'tg',\n 'name': 'Togo',\n 'phone_code': '228',\n 'all_codes': ['228'],\n 'offset': 41400\n },\n {\n 'iso': 'tk',\n 'name': 'Tokelau',\n 'phone_code': '690',\n 'all_codes': ['690'],\n 'offset': 42000\n },\n {\n 'iso': 'to',\n 'name': 'Tonga',\n 'phone_code': '676',\n 'all_codes': ['676'],\n 'offset': 42800\n },\n {\n 'iso': 'tt',\n 'name': 'Trinidad and Tobago',\n 'phone_code': '1',\n 'all_codes': ['1-868'],\n 'offset': 43200\n },\n {\n 'iso': 'tn',\n 'name': 'Tunisia',\n 'phone_code': '216',\n 'all_codes': ['216'],\n 'offset': 42600\n },\n {\n 'iso': 'tr',\n 'name': 'Turkey',\n 'phone_code': '90',\n 'all_codes': ['90'],\n 'offset': 43000\n },\n {\n 'iso': 'tm',\n 'name': 'Turkmenistan',\n 'phone_code': '993',\n 'all_codes': ['993'],\n 'offset': 42400\n },\n {\n 'iso': 'tc',\n 'name': 'Turks and Caicos Islands',\n 'phone_code': '1',\n 'all_codes': ['1-649'],\n 'offset': 41000\n },\n {\n 'iso': 'tv',\n 'name': 'Tuvalu',\n 'phone_code': '688',\n 'all_codes': ['688'],\n 'offset': 43400\n },\n {\n 'iso': 'vi',\n 'name': 'U.S. Virgin Islands',\n 'phone_code': '1',\n 'all_codes': ['1-340'],\n 'offset': 45800\n },\n {\n 'iso': 'ug',\n 'name': 'Uganda',\n 'phone_code': '256',\n 'all_codes': ['256'],\n 'offset': 44200\n },\n {\n 'iso': 'ua',\n 'name': 'Ukraine',\n 'phone_code': '380',\n 'all_codes': ['380'],\n 'offset': 44000\n },\n {\n 'iso': 'ae',\n 'name': 'United Arab Emirates',\n 'phone_code': '971',\n 'all_codes': ['971'],\n 'offset': 200\n },\n {\n 'iso': 'gb',\n 'name': 'United Kingdom',\n 'phone_code': '44',\n 'all_codes': ['44'],\n 'offset': 14600\n },\n {\n 'iso': 'us',\n 'name': 'United States',\n 'phone_code': '1',\n 'all_codes': ['1'],\n 'offset': 44400\n },\n {\n 'iso': 'uy',\n 'name': 'Uruguay',\n 'phone_code': '598',\n 'all_codes': ['598'],\n 'offset': 44600\n },\n {\n 'iso': 'uz',\n 'name': 'Uzbekistan',\n 'phone_code': '998',\n 'all_codes': ['998'],\n 'offset': 44800\n },\n {\n 'iso': 'vu',\n 'name': 'Vanuatu',\n 'phone_code': '678',\n 'all_codes': ['678'],\n 'offset': 46200\n },\n {\n 'iso': 'va',\n 'name': 'Vatican',\n 'phone_code': '379',\n 'all_codes': ['379'],\n 'offset': 45000\n },\n {\n 'iso': 've',\n 'name': 'Venezuela',\n 'phone_code': '58',\n 'all_codes': ['58'],\n 'offset': 45400\n },\n {\n 'iso': 'vn',\n 'name': 'Vietnam',\n 'phone_code': '84',\n 'all_codes': ['84'],\n 'offset': 46000\n },\n {\n 'iso': 'wf',\n 'name': 'Wallis and Futuna',\n 'phone_code': '681',\n 'all_codes': ['681'],\n 'offset': 26800\n },\n {\n 'iso': 'eh',\n 'name': 'Western Sahara',\n 'phone_code': '212',\n 'all_codes': ['212'],\n 'offset': 12600\n },\n {\n 'iso': 'ye',\n 'name': 'Yemen',\n 'phone_code': '967',\n 'all_codes': ['967'],\n 'offset': 47000\n },\n {\n 'iso': 'zm',\n 'name': 'Zambia',\n 'phone_code': '260',\n 'all_codes': ['260'],\n 'offset': 47400\n },\n {\n 'iso': 'zw',\n 'name': 'Zimbabwe',\n 'phone_code': '263',\n 'all_codes': ['263'],\n /* 'offset': 47800 */\n 'offset': 47600\n }\n];\n","import styles from './template.css';\nimport template from './template';\nimport {AoflElement, customElement, property} from '@aofl/element';\nimport {countries} from '@modules/phone-input/countries';\nimport {mapStatePropertiesMixin} from '@aofl/map-state-properties-mixin';\nimport {storeInstance} from '@aofl/store/dist/legacy';\nimport {sdoNs} from '@modules/constants-enumerate';\nimport '@modules/phone-input';\n\n/**\n * @summary Phone Number Input\n * @extends {AoflElement}\n */\n@customElement('phone-input')\nclass PhoneInput extends mapStatePropertiesMixin(AoflElement) {\n /**\n * Creates a phone input field.\n */\n constructor() {\n super();\n this.storeInstance = storeInstance;\n const state = this.storeInstance.getState();\n this.countries = countries;\n // rename Taiwan to Republic of China in China or if the current language is traditional Chinese\n if (state[sdoNs.SESSION].locale === 'zh-CN' || this.groupCountry?.toLowerCase() === 'cn') {\n for (let i in this.countries) {\n if (this.countries[i].iso === 'tw') {\n this.countries[i].name = 'Republic of China';\n }\n }\n }\n }\n\n connectedCallback() {\n super.connectedCallback();\n\n const state = this.storeInstance.getState();\n // find geoip iso\n const locale = state[sdoNs.LOCALE_DD];\n const localeIso = locale.geoipCountry.toLowerCase();\n let foundIso = null;\n for (let i in this.countries) {\n if (this.countries[i].iso == localeIso) {\n foundIso = this.countries[i].iso;\n break;\n }\n }\n\n if (typeof this.initialValue === 'string' && this.initialValue.length > 0) {\n const initial = this.parseInitial(this.initialValue);\n if (typeof initial === 'object') {\n this.selectCode(initial.iso);\n this.phoneLocal = this.formatLocal(initial.phone);\n } else if (typeof foundIso === 'string') {\n this.selectCode(foundIso);\n } else {\n this.selectCode('us');\n }\n } else {\n if (typeof foundIso === 'string') {\n this.selectCode(foundIso);\n } else {\n this.selectCode('us');\n }\n }\n this.setValue();\n }\n\n /**\n * @readonly\n */\n static is = 'phone-input';\n\n @property({type: Array})\n countries;\n\n @property({type: Object})\n selected;\n\n @property({type: String})\n iso;\n\n @property({type: String})\n number;\n\n @property({type: Boolean})\n toggleList = false;\n\n @property({type: Boolean})\n hasScrolled = false;\n\n @property({type: String})\n phoneLocal = '';\n\n @property({type: String, attribute: true})\n initialValue = '';\n\n @property({type: String, attribute: true})\n value = '';\n\n @property({type: Boolean, attribute: true})\n disabled = false;\n\n @property({type: String, attribute: true})\n placeholder = '';\n\n @property({type: String, mapState: `${sdoNs.ORG_GROUP_INFO}.country`, store: storeInstance})\n groupCountry;\n\n /**\n *\n * @return {Object}\n */\n render() {\n return super.render(template, [styles]);\n }\n\n showList() {\n if (this.disabled) {\n return;\n }\n this.toggleList = !this.toggleList;\n setTimeout(() => {\n for (let i in this.shadowRoot.firstElementChild.firstElementChild.children[1].children) {\n let el = this.shadowRoot.firstElementChild.firstElementChild.children[1].children[i];\n if (typeof el.getAttribute === 'undefined') {\n continue;\n }\n if (el.getAttribute('data-iso') === this.selected.iso) {\n const vertical = this.hasScrolled ? 'nearest' : 'center';\n el.scrollIntoView({block: vertical, inline: 'nearest'});\n this.hasScrolled = true;\n }\n }\n }, 1);\n }\n\n hideList() {\n this.toggleList = false;\n }\n\n selectCode(iso, e) {\n this.selected = this.findCountry(iso);\n if (this.selected.phone_code === '1' && this.phoneLocal.length === 0\n && this.selected.iso !== 'ca' && this.selected.iso !== 'us') {\n this.phoneLocal = this.formatLocal(this.selected.all_codes[0].substring(2));\n }\n if (typeof e !== 'undefined') {\n e.target.parentNode.parentNode.parentNode.parentNode.querySelector('input').value = this.phoneLocal;\n e.target.parentNode.parentNode.parentNode.parentNode.querySelector('input').focus();\n }\n this.setValue();\n this.hideList();\n }\n\n findCountry(iso) {\n for (let i in this.countries) {\n if (this.countries[i].iso === iso) {\n return this.countries[i];\n }\n }\n return null;\n }\n\n setValue() {\n // Only add area code if there is a number set otherwise set as empty\n if (this.phoneLocal !== '') {\n this.value = '+' + this.selected.phone_code + ' ' + this.phoneLocal;\n } else {\n this.value = '';\n }\n }\n\n updatePhoneLocal(e) {\n if (typeof e.key === 'string' && e.key !== 'Backspace' && e.key !== 'Delete' && e.target.selectionStart == e.target.value.length) {\n e.target.value = this.formatLocal(e.target.value);\n }\n this.phoneLocal = e.target.value;\n this.setValue();\n }\n\n formatLocal(value) {\n let result = '';\n const justNumbers = value.replace(/\\D/g, '');\n if (typeof this.selected !== 'undefined' && this.selected.phone_code === '1' && value.length > 0) {\n result = '(';\n result += justNumbers.substring(0, 3);\n if (justNumbers.length >= 3) {\n result += ') ';\n }\n result += justNumbers.substring(3, 6);\n if (justNumbers.length >= 6) {\n result += '-';\n }\n result += justNumbers.substring(6);\n } else {\n result = value;\n }\n return result;\n }\n\n parseInitial(value) {\n // the +01 format was to avoid maintaining all of Canada's area codes\n // this is no longer used and this code remains for legacy support\n if (value.substring(0, 3) === '+01') {\n return {iso: 'ca', phone: value.substring(3).trim()};\n }\n const justNumbers = value.replace(/\\D/g, '');\n let result = null;\n for (let i in this.countries) {\n let country = this.countries[i];\n for (let j in country.all_codes) {\n let code = country.all_codes[j].replace(/\\D/g, '');\n if (justNumbers.substring(0, code.length) === code) {\n if (value.substring(0, 1) === '+') {\n result = {iso: country.iso, phone: value.substring(1 + country.phone_code.length).trim()};\n } else {\n result = {iso: country.iso, phone: value.substring(country.phone_code.length).trim()};\n }\n // US only if no matches for other countries that start with +1\n if (country.iso !== 'us') {\n return result;\n }\n }\n }\n }\n return result;\n }\n}\n\nexport default PhoneInput;\n","exports = module.exports = require(\"../../../../../node_modules/css-loader/dist/runtime/api.js\")(false);\n// Imports\nvar getUrl = require(\"../../../../../node_modules/css-loader/dist/runtime/getUrl.js\");\nvar ___CSS_LOADER_URL___0___ = getUrl(require(\"../../../../template/main/fonts/aofl-sans/aoflsans-light.woff2\"));\nvar ___CSS_LOADER_URL___1___ = getUrl(require(\"../../../../template/main/fonts/aofl-sans/aoflsans-lightit.woff2\"));\nvar ___CSS_LOADER_URL___2___ = getUrl(require(\"../../../../template/main/fonts/aofl-sans/aoflsans-reg.woff2\"));\nvar ___CSS_LOADER_URL___3___ = getUrl(require(\"../../../../template/main/fonts/aofl-sans/aoflsans-regit.woff2\"));\nvar ___CSS_LOADER_URL___4___ = getUrl(require(\"../../../../template/main/fonts/aofl-sans/aoflsans-sbold.woff2\"));\nvar ___CSS_LOADER_URL___5___ = getUrl(require(\"../../../../template/main/fonts/aofl-sans/aoflsans-sboldit.woff2\"));\nvar ___CSS_LOADER_URL___6___ = getUrl(require(\"../../../../template/main/fonts/aofl-sans/aoflsans-bold.woff2\"));\nvar ___CSS_LOADER_URL___7___ = getUrl(require(\"../../../../template/main/fonts/aofl-sans/aoflsans-boldit.woff2\"));\nvar ___CSS_LOADER_URL___8___ = getUrl(require(\"../../../../template/main/fonts/abcmouse-sans/ABCmouseSans-Light.woff2\"));\nvar ___CSS_LOADER_URL___9___ = getUrl(require(\"../../../../template/main/fonts/abcmouse-sans/ABCmouseSans-LightIt.woff2\"));\nvar ___CSS_LOADER_URL___10___ = getUrl(require(\"../../../../template/main/fonts/abcmouse-sans/ABCmouseSans-Regular.woff2\"));\nvar ___CSS_LOADER_URL___11___ = getUrl(require(\"../../../../template/main/fonts/abcmouse-sans/ABCmouseSans-RegularIt.woff2\"));\nvar ___CSS_LOADER_URL___12___ = getUrl(require(\"../../../../template/main/fonts/abcmouse-sans/ABCmouseSans-Semibold.woff2\"));\nvar ___CSS_LOADER_URL___13___ = getUrl(require(\"../../../../template/main/fonts/abcmouse-sans/ABCmouseSans-SemiboldIt.woff2\"));\nvar ___CSS_LOADER_URL___14___ = getUrl(require(\"../../../../template/main/fonts/abcmouse-sans/ABCmouseSans-Bold.woff2\"));\nvar ___CSS_LOADER_URL___15___ = getUrl(require(\"../../../../template/main/fonts/abcmouse-sans/ABCmouseSans-BoldIt.woff2\"));\nvar ___CSS_LOADER_URL___16___ = getUrl(require(\"../../../../template/main/fonts/abcmouse-sans/ABCmouseSans-ExtraBold.woff2\"));\nvar ___CSS_LOADER_URL___17___ = getUrl(require(\"../../../../template/main/fonts/abcmouse-sans/ABCmouseSans-ExtraBoldIt.woff2\"));\nvar ___CSS_LOADER_URL___18___ = getUrl(require(\"../../../../template/main/fonts/aofl-icons/icomoon.woff2?c6f21u\"));\n// Module\nexports.push([module.id, \"/*! @aofl-component */:root{--blue:#0d6efd;--indigo:#6610f2;--purple:#8b42ca;--pink:#e83e8c;--red:#e50b0a;--orange:#e17a05;--yellow:#ffc107;--green:#3c8104;--teal:#20c997;--cyan:#53c9dc;--white:#fff;--gray:#6b6b6b;--gray-dark:#343a40;--light-green:#b1dd53;--table-border-color:#d8d8d8;--gray-100:#f2f2f2;--gray-200:#d9d9d9;--gray-300:#d8d8d8;--gray-400:#ced4da;--gray-500:#adb5bd;--gray-600:#6c757d;--gray-700:#4a4a4a;--gray-800:#343a40;--gray-900:#212529;--gray-accessibility:#6b6b6b;--primary:#0d6efd;--secondary:#adb5bd;--success:#3c8104;--info:#cfe2ff;--warning:#e17a05;--danger:#d20a09;--light:#f8f9fa;--dark:#000;--breakpoint-xxs:0;--breakpoint-xs:375px;--breakpoint-sm:576px;--breakpoint-md:768px;--breakpoint-lg:992px;--breakpoint-xl:1200px;--font-family-sans-serif:aofl-sans,Arial,Helvetica,sans-serif;--font-family-monospace:SFMono-Regular,Menlo,Monaco,Consolas,\\\"Liberation Mono\\\",\\\"Courier New\\\",monospace;--z-index-dropdown:1000;--z-index-sticky:1020;--z-index-fixed:1030;--z-index-modal-backdrop:1040;--z-index-modal:1050;--z-index-popover:1060;--z-index-tooltip:1070;--header-height:6rem;--content-height:calc(100vh - 6rem);--sidepanel-width:20rem;--purple-color:#641da3;--purple-600:#956abc;--purple-400:#c7afdd;--purple-200:#e0d2ed;--struggling:#f6993b;--below-target:#ffcf00;--in_progress:#1280f5;--prior_knowledge:#edf887;--mastery_achieved:#69d112;--inactive:#d8d8d8}route-view{max-width:1200px}@font-face{font-family:aofl-sans;font-style:normal;font-weight:300;src:url(\" + ___CSS_LOADER_URL___0___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:italic;font-weight:300;src:url(\" + ___CSS_LOADER_URL___1___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:normal;font-weight:400;src:url(\" + ___CSS_LOADER_URL___2___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:italic;font-weight:400;src:url(\" + ___CSS_LOADER_URL___3___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:normal;font-weight:600;src:url(\" + ___CSS_LOADER_URL___4___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:italic;font-weight:600;src:url(\" + ___CSS_LOADER_URL___5___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:normal;font-weight:700;src:url(\" + ___CSS_LOADER_URL___6___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:italic;font-weight:700;src:url(\" + ___CSS_LOADER_URL___7___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:normal;font-weight:300;src:url(\" + ___CSS_LOADER_URL___8___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:italic;font-weight:300;src:url(\" + ___CSS_LOADER_URL___9___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:normal;font-weight:400;src:url(\" + ___CSS_LOADER_URL___10___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:italic;font-weight:400;src:url(\" + ___CSS_LOADER_URL___11___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:normal;font-weight:600;src:url(\" + ___CSS_LOADER_URL___12___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:italic;font-weight:600;src:url(\" + ___CSS_LOADER_URL___13___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:normal;font-weight:700;src:url(\" + ___CSS_LOADER_URL___14___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:italic;font-weight:700;src:url(\" + ___CSS_LOADER_URL___15___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:normal;font-weight:800;src:url(\" + ___CSS_LOADER_URL___16___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:italic;font-weight:800;src:url(\" + ___CSS_LOADER_URL___17___ + \") format(\\\"woff2\\\")}@font-face{font-family:icomoon;src:url(\" + ___CSS_LOADER_URL___18___ + \") format(\\\"woff2\\\");font-weight:400;font-style:normal;font-display:block}[class*=\\\" ai-\\\"],[class^=ai-]{font-family:icomoon!important;speak:never;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.ai-create:before{content:\\\"\\\\e913\\\"}*,:after,:before{box-sizing:border-box}html{font-family:sans-serif;line-height:1.15;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:rgba(0,0,0,0)}figcaption,main,nav,section{display:block}[tabindex=\\\"-1\\\"]:focus{outline:0!important}hr{box-sizing:content-box;height:0;overflow:visible}h1,h3,h4{margin-bottom:1rem}h1,h3,h4,p{margin-top:0}p{margin-bottom:1.6rem}strong{font-weight:bolder}a{color:#0d6efd;background-color:transparent}a,a:hover{text-decoration:none}a:hover{color:rgb(0,86.1,178.5)}a:not([href]):not([tabindex]),a:not([href]):not([tabindex]):focus,a:not([href]):not([tabindex]):hover{color:inherit;text-decoration:none}a:not([href]):not([tabindex]):focus{outline:0}code{font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:1em}caption{padding-top:.75rem;padding-bottom:.75rem;color:#6c757d;text-align:left;caption-side:bottom}label{display:inline-block;margin-bottom:.8rem}button{border-radius:0}button:focus{outline:1px dotted;outline:5px auto -webkit-focus-ring-color}button,input{margin:0;font-family:inherit;font-size:inherit;line-height:inherit;overflow:visible}button{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]:not(:disabled),[type=reset]:not(:disabled),[type=submit]:not(:disabled),button:not(:disabled){cursor:pointer}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{padding:0;border-style:none}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}input[type=date],input[type=datetime-local],input[type=month],input[type=time]{-webkit-appearance:listbox}legend{display:block;width:100%;max-width:100%;padding:0;margin-bottom:.5rem;font-size:1.5rem;line-height:inherit;color:inherit;white-space:normal}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:none}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}summary{display:list-item;cursor:pointer}template{display:none}[hidden]{display:none!important}*{-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important}html{font-size:62.5%;height:100%}link-to{color:#0d6efd;text-decoration:none;background-color:transparent}link-to:hover{color:rgb(0,86.1,178.5);text-decoration:none;cursor:pointer}route-view{display:none;flex:1}site-header{background-color:#fff;display:none;position:-webkit-sticky;position:sticky;top:0;height:var(--header-height)}#main{display:none;flex:1 auto;max-width:100%;overflow:hidden;flex-direction:column;overflow-y:scroll}.loaded #main,.loaded site-header,body.loaded,route-view.loaded{display:flex}route-view.left-panel-active{padding-left:var(--sidepanel-width)}@media (max-width:767.98px){#content{padding-left:0!important}}.h1,.h3,.h4,h1,h3,h4{margin-bottom:1rem;font-weight:500;line-height:1.2}.h1,h1{font-size:6rem}.h3,h3{font-size:1.8rem}.h4,h4{font-size:1.6rem}hr{margin-top:1rem;margin-bottom:1rem;border:0;border-top:1px solid rgba(0,0,0,.1)}code{font-size:87.5%;color:#e83e8c;word-break:break-word}a>code{color:inherit}.row{display:flex;flex-wrap:wrap;margin-right:-15px;margin-left:-15px}.col,.col-12,.col-lg-6,.col-md-12,.col-sm-4,.col-sm-8{position:relative;width:100%;padding-right:15px;padding-left:15px}.col{flex-basis:0;flex-grow:1}.col,.col-12{max-width:100%}.col-12{flex:0 0 100%}@media (min-width:576px){.col-sm-4{flex:0 0 33.3333333333%;max-width:33.3333333333%}.col-sm-8{flex:0 0 66.6666666667%;max-width:66.6666666667%}.offset-sm-4{margin-left:33.3333333333%}}@media (min-width:768px){.col-md-12{flex:0 0 100%;max-width:100%}}@media (min-width:992px){.col-lg-6{flex:0 0 50%;max-width:50%}}.form-control{display:block;width:100%;height:calc(1.5em + .75rem + 2px);padding:.375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:#495057;background-color:#fff;background-clip:padding-box;border:1px solid #ced4da;border-radius:.25rem;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.form-control{transition:none}}.form-control::-ms-expand{background-color:transparent;border:0}.form-control:focus{color:#495057;background-color:#fff;border-color:rgb(127.5,189,255);outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.form-control::-webkit-input-placeholder{color:#6c757d;opacity:1}.form-control::-moz-placeholder{color:#6c757d;opacity:1}.form-control:-ms-input-placeholder{color:#6c757d;opacity:1}.form-control::-ms-input-placeholder{color:#6c757d;opacity:1}.form-control::placeholder{color:#6c757d;opacity:1}.form-control:disabled,.form-control[readonly]{background-color:#e9ecef;opacity:1}.col-form-label{padding-top:calc(.375rem + 1px);padding-bottom:calc(.375rem + 1px);margin-bottom:0;font-size:inherit;line-height:1.5}.form-control-sm{height:calc(1.5em + .5rem + 2px);padding:.25rem .5rem;font-size:.875rem;line-height:1.5;border-radius:.2rem}.form-group{margin-bottom:1.6rem}.invalid-feedback{display:none;width:100%;margin-top:.25rem;font-size:80%;color:#e50b0a}.form-control.is-invalid{border-color:#e50b0a;padding-right:calc(1.5em + .75rem);background-image:url(\\\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23dc3545' viewBox='-2 -2 7 7'%3E%3Cpath stroke='%23dc3545' d='M0 0l3 3m0-3L0 3'/%3E%3Ccircle r='.5'/%3E%3Ccircle cx='3' r='.5'/%3E%3Ccircle cy='3' r='.5'/%3E%3Ccircle cx='3' cy='3' r='.5'/%3E%3C/svg%3E\\\");background-repeat:no-repeat;background-position:100% calc(.375em + .1875rem);background-size:calc(.75em + .375rem) calc(.75em + .375rem)}.form-control.is-invalid:focus{border-color:#e50b0a;box-shadow:0 0 0 .2rem rgba(229,11,10,.25)}.form-control.is-invalid~.invalid-feedback{display:block}.col-form-label{display:flex;align-items:center;font-weight:600}.form-control{font-size:1.5rem;height:4.8rem;padding:1.2rem 1rem}.form-control[multiple]{padding:0}.form-control[multiple] option{padding:.8rem 1.2rem}.form-control.is-invalid{background-position:99%}.form-control-sm{height:3.2rem;padding:.4rem .8rem;border-radius:.32rem}input[type=checkbox].is-invalid+label{color:#e50b0a}input[type=checkbox],input[type=radio]{cursor:pointer}input[type=checkbox]+label,input[type=radio]+label{cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.invalid-feedback{color:#d20a09}.form-control.is-invalid{border-color:#d20a09;background:none}form .form-control::-webkit-input-placeholder{color:#6b6b6b;border-color:#6b6b6b}form .form-control::-moz-placeholder,form .form-control::-ms-input-placeholder,form .form-control::-webkit-input-placeholder,form .form-control::placeholder{color:#6b6b6b;border-color:#6b6b6b}.form-control{border:1px solid #6b6b6b}.form-control:focus{border-color:#0d6efd}.btn{display:inline-block;font-weight:400;color:#000;text-align:center;vertical-align:middle;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;background-color:transparent;border:1px solid transparent;padding:.375rem .75rem;font-size:1.6rem;line-height:1.5;border-radius:.25rem;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.btn{transition:none}}.btn:hover{color:#000;text-decoration:none}.btn:focus{outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.btn.disabled,.btn:disabled{opacity:.65}a.btn.disabled{pointer-events:none}.btn-link{font-weight:400;color:#0d6efd;text-decoration:none}.btn-link:hover{color:rgb(0,86.1,178.5);text-decoration:none}.btn-link:focus{text-decoration:none;box-shadow:none}.btn-link.disabled,.btn-link:disabled{color:#6c757d;pointer-events:none}.btn:disabled{cursor:not-allowed}.btn.disabled,link-to.btn.disabled,link-to.btn:disabled,link-to.btn[disabled]{pointer-events:none}button,button:active{outline:none}.btn:focus-visible,[tabindex=\\\"0\\\"]:focus-visible,a:focus-visible,aofl-list-option:focus-visible,button[type=button]:focus-visible,collapse-button:focus-visible{outline:1px solid #e50b0a;border:1px solid #e50b0a}.btn-link:focus-visible{border:2px solid #e50b0a}.btn.disabled,.btn:disabled{background:#cfe2ff;border-color:#cfe2ff;color:#0d6efd;opacity:1}ems-dropdown>button.btn{display:flex;align-items:center;border:1px solid var(--gray)}.alert{position:relative;padding:1.2rem;margin-bottom:1.6rem;border:0 solid transparent;border-radius:.25rem}.alert-warning{color:#fff;background-color:#e17a05;border-color:#e17a05}.alert-warning hr{border-top-color:rgb(200.0543478261,108.4739130435,4.4456521739)}.alert-warning{color:rgba(0,0,0,.7);background-color:#ffde77;border-color:#e4c76a}@keyframes progress-bar-stripes{0%{background-position:1.6rem 0}to{background-position:0 0}}.toast{max-width:350px;overflow:hidden;font-size:1.4rem;background-color:hsla(0,0%,100%,.85);background-clip:padding-box;border:1px solid rgba(0,0,0,.1);box-shadow:0 .4rem 1.2rem #d8d8d8;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);opacity:0;border-radius:.4rem}.toast:not(:last-child){margin-bottom:1.2rem}.toast.show{display:block;opacity:1}.modal-container{background-color:rgba(0,0,0,.2);position:fixed;top:0;bottom:0;right:0;left:0;z-index:var(--z-index-modal)}.modal-container :first-child{overflow:auto}.modal{position:relative;display:block;height:100vh}.modal-dialog-centered.modal-dialog-scrollable{height:auto;max-height:calc(100% - 2.8rem);min-height:auto}.modal-body,.modal-content,.modal-footer,.modal-header{border:none}.modal-header{font-size:2rem;padding:2.4rem}.modal-body{padding:0 2.4rem 4.8rem}.colored-header{color:#fff}.modal-body p{text-align:left}.colored-header-primary{background-color:#0d6efd}.colored-header-secondary{background-color:#adb5bd}.colored-header-success{background-color:#3c8104}.colored-header-info{background-color:#cfe2ff}.colored-header-warning{background-color:#e17a05}.colored-header-danger{background-color:#d20a09}.colored-header-light{background-color:#f8f9fa}.colored-header-dark{background-color:#000}@keyframes spinner-border{to{transform:rotate(1turn)}}@keyframes spinner-grow{0%{transform:scale(0)}50%{opacity:1}}.align-middle{vertical-align:middle!important}.border-0{border:0!important}.d-inline-block{display:inline-block!important}.d-block{display:block!important}.d-flex{display:flex!important}.justify-content-center{justify-content:center!important}.align-items-start{align-items:flex-start!important}.align-items-center{align-items:center!important}.m-0{margin:0!important}.mb-0{margin-bottom:0!important}.mr-2{margin-right:.5rem!important}.mb-3{margin-bottom:1rem!important}.mr-4{margin-right:1.5rem!important}.mr-5{margin-right:3rem!important}.mb-5{margin-bottom:3rem!important}.p-0{padding:0!important}.pb-2{padding-bottom:.5rem!important}.pr-5{padding-right:3rem!important}.text-right{text-align:right!important}.text-center{text-align:center!important}.h1{font-weight:600}[hidden]{visibility:hidden!important;height:0!important;width:0!important;min-height:unset!important}@media print{*,:after,:before{text-shadow:none!important;box-shadow:none!important}a:not(.btn){text-decoration:underline}h3,p{orphans:3;widows:3}h3{page-break-after:avoid}@page{size:a3}}@media print{main::-webkit-scrollbar{display:none}main{-ms-overflow-style:none;scrollbar-width:none}}@page{size:A4;margin:20mm 16mm 20mm 16mm}:host{display:block}@media (min-width:945px){label{justify-content:right;text-align:right}}\", \"\"]);\n","import toInteger from '../_lib/toInteger/index.js';\nimport addDays from '../addDays/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name addWeeks\n * @category Week Helpers\n * @summary Add the specified number of weeks to the given date.\n *\n * @description\n * Add the specified number of week to the given date.\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * @param {Date|Number} date - the date to be changed\n * @param {Number} amount - the amount of weeks to be added\n * @returns {Date} the new date with the weeks added\n * @throws {TypeError} 2 arguments required\n *\n * @example\n * // Add 4 weeks to 1 September 2014:\n * var result = addWeeks(new Date(2014, 8, 1), 4)\n * //=> Mon Sep 29 2014 00:00:00\n */\n\nexport default function addWeeks(dirtyDate, dirtyAmount) {\n requiredArgs(2, arguments);\n var amount = toInteger(dirtyAmount);\n var days = amount * 7;\n return addDays(dirtyDate, days);\n}","exports = module.exports = require(\"../../../../../node_modules/css-loader/dist/runtime/api.js\")(false);\n// Imports\nvar getUrl = require(\"../../../../../node_modules/css-loader/dist/runtime/getUrl.js\");\nvar ___CSS_LOADER_URL___0___ = getUrl(require(\"../../../../template/main/fonts/aofl-sans/aoflsans-light.woff2\"));\nvar ___CSS_LOADER_URL___1___ = getUrl(require(\"../../../../template/main/fonts/aofl-sans/aoflsans-lightit.woff2\"));\nvar ___CSS_LOADER_URL___2___ = getUrl(require(\"../../../../template/main/fonts/aofl-sans/aoflsans-reg.woff2\"));\nvar ___CSS_LOADER_URL___3___ = getUrl(require(\"../../../../template/main/fonts/aofl-sans/aoflsans-regit.woff2\"));\nvar ___CSS_LOADER_URL___4___ = getUrl(require(\"../../../../template/main/fonts/aofl-sans/aoflsans-sbold.woff2\"));\nvar ___CSS_LOADER_URL___5___ = getUrl(require(\"../../../../template/main/fonts/aofl-sans/aoflsans-sboldit.woff2\"));\nvar ___CSS_LOADER_URL___6___ = getUrl(require(\"../../../../template/main/fonts/aofl-sans/aoflsans-bold.woff2\"));\nvar ___CSS_LOADER_URL___7___ = getUrl(require(\"../../../../template/main/fonts/aofl-sans/aoflsans-boldit.woff2\"));\nvar ___CSS_LOADER_URL___8___ = getUrl(require(\"../../../../template/main/fonts/abcmouse-sans/ABCmouseSans-Light.woff2\"));\nvar ___CSS_LOADER_URL___9___ = getUrl(require(\"../../../../template/main/fonts/abcmouse-sans/ABCmouseSans-LightIt.woff2\"));\nvar ___CSS_LOADER_URL___10___ = getUrl(require(\"../../../../template/main/fonts/abcmouse-sans/ABCmouseSans-Regular.woff2\"));\nvar ___CSS_LOADER_URL___11___ = getUrl(require(\"../../../../template/main/fonts/abcmouse-sans/ABCmouseSans-RegularIt.woff2\"));\nvar ___CSS_LOADER_URL___12___ = getUrl(require(\"../../../../template/main/fonts/abcmouse-sans/ABCmouseSans-Semibold.woff2\"));\nvar ___CSS_LOADER_URL___13___ = getUrl(require(\"../../../../template/main/fonts/abcmouse-sans/ABCmouseSans-SemiboldIt.woff2\"));\nvar ___CSS_LOADER_URL___14___ = getUrl(require(\"../../../../template/main/fonts/abcmouse-sans/ABCmouseSans-Bold.woff2\"));\nvar ___CSS_LOADER_URL___15___ = getUrl(require(\"../../../../template/main/fonts/abcmouse-sans/ABCmouseSans-BoldIt.woff2\"));\nvar ___CSS_LOADER_URL___16___ = getUrl(require(\"../../../../template/main/fonts/abcmouse-sans/ABCmouseSans-ExtraBold.woff2\"));\nvar ___CSS_LOADER_URL___17___ = getUrl(require(\"../../../../template/main/fonts/abcmouse-sans/ABCmouseSans-ExtraBoldIt.woff2\"));\nvar ___CSS_LOADER_URL___18___ = getUrl(require(\"../../../../template/main/fonts/aofl-icons/icomoon.woff2?c6f21u\"));\n// Module\nexports.push([module.id, \"/*! @aofl-component */:root{--blue:#0d6efd;--indigo:#6610f2;--purple:#8b42ca;--pink:#e83e8c;--red:#e50b0a;--orange:#e17a05;--yellow:#ffc107;--green:#3c8104;--teal:#20c997;--cyan:#53c9dc;--white:#fff;--gray:#6b6b6b;--gray-dark:#343a40;--light-green:#b1dd53;--table-border-color:#d8d8d8;--gray-100:#f2f2f2;--gray-200:#d9d9d9;--gray-300:#d8d8d8;--gray-400:#ced4da;--gray-500:#adb5bd;--gray-600:#6c757d;--gray-700:#4a4a4a;--gray-800:#343a40;--gray-900:#212529;--gray-accessibility:#6b6b6b;--primary:#0d6efd;--secondary:#adb5bd;--success:#3c8104;--info:#cfe2ff;--warning:#e17a05;--danger:#d20a09;--light:#f8f9fa;--dark:#000;--breakpoint-xxs:0;--breakpoint-xs:375px;--breakpoint-sm:576px;--breakpoint-md:768px;--breakpoint-lg:992px;--breakpoint-xl:1200px;--font-family-sans-serif:aofl-sans,Arial,Helvetica,sans-serif;--font-family-monospace:SFMono-Regular,Menlo,Monaco,Consolas,\\\"Liberation Mono\\\",\\\"Courier New\\\",monospace;--z-index-dropdown:1000;--z-index-sticky:1020;--z-index-fixed:1030;--z-index-modal-backdrop:1040;--z-index-modal:1050;--z-index-popover:1060;--z-index-tooltip:1070;--header-height:6rem;--content-height:calc(100vh - 6rem);--sidepanel-width:20rem;--purple-color:#641da3;--purple-600:#956abc;--purple-400:#c7afdd;--purple-200:#e0d2ed;--struggling:#f6993b;--below-target:#ffcf00;--in_progress:#1280f5;--prior_knowledge:#edf887;--mastery_achieved:#69d112;--inactive:#d8d8d8}route-view{max-width:1200px}@font-face{font-family:aofl-sans;font-style:normal;font-weight:300;src:url(\" + ___CSS_LOADER_URL___0___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:italic;font-weight:300;src:url(\" + ___CSS_LOADER_URL___1___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:normal;font-weight:400;src:url(\" + ___CSS_LOADER_URL___2___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:italic;font-weight:400;src:url(\" + ___CSS_LOADER_URL___3___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:normal;font-weight:600;src:url(\" + ___CSS_LOADER_URL___4___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:italic;font-weight:600;src:url(\" + ___CSS_LOADER_URL___5___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:normal;font-weight:700;src:url(\" + ___CSS_LOADER_URL___6___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:italic;font-weight:700;src:url(\" + ___CSS_LOADER_URL___7___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:normal;font-weight:300;src:url(\" + ___CSS_LOADER_URL___8___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:italic;font-weight:300;src:url(\" + ___CSS_LOADER_URL___9___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:normal;font-weight:400;src:url(\" + ___CSS_LOADER_URL___10___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:italic;font-weight:400;src:url(\" + ___CSS_LOADER_URL___11___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:normal;font-weight:600;src:url(\" + ___CSS_LOADER_URL___12___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:italic;font-weight:600;src:url(\" + ___CSS_LOADER_URL___13___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:normal;font-weight:700;src:url(\" + ___CSS_LOADER_URL___14___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:italic;font-weight:700;src:url(\" + ___CSS_LOADER_URL___15___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:normal;font-weight:800;src:url(\" + ___CSS_LOADER_URL___16___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:italic;font-weight:800;src:url(\" + ___CSS_LOADER_URL___17___ + \") format(\\\"woff2\\\")}@font-face{font-family:icomoon;src:url(\" + ___CSS_LOADER_URL___18___ + \") format(\\\"woff2\\\");font-weight:400;font-style:normal;font-display:block}[class*=\\\" ai-\\\"],[class^=ai-]{font-family:icomoon!important;speak:never;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*,:after,:before{box-sizing:border-box}html{font-family:sans-serif;line-height:1.15;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:rgba(0,0,0,0)}figcaption,main,nav,section{display:block}[tabindex=\\\"-1\\\"]:focus{outline:0!important}h4{margin-bottom:1rem}h4,p{margin-top:0}p{margin-bottom:1.6rem}strong{font-weight:bolder}img{vertical-align:middle;border-style:none}caption{padding-top:.75rem;padding-bottom:.75rem;color:#6c757d;text-align:left;caption-side:bottom}button{border-radius:0}button:focus{outline:1px dotted;outline:5px auto -webkit-focus-ring-color}button,input,select{margin:0;font-family:inherit;font-size:inherit;line-height:inherit}button,input{overflow:visible}button,select{text-transform:none}select{word-wrap:normal}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]:not(:disabled),[type=reset]:not(:disabled),[type=submit]:not(:disabled),button:not(:disabled){cursor:pointer}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{padding:0;border-style:none}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}input[type=date],input[type=datetime-local],input[type=month],input[type=time]{-webkit-appearance:listbox}legend{display:block;width:100%;max-width:100%;padding:0;margin-bottom:.5rem;font-size:1.5rem;line-height:inherit;color:inherit;white-space:normal}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:none}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}summary{display:list-item;cursor:pointer}template{display:none}[hidden]{display:none!important}*{-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important}html{font-size:62.5%;height:100%}link-to{color:#0d6efd;text-decoration:none;background-color:transparent}link-to:hover{color:rgb(0,86.1,178.5);text-decoration:none;cursor:pointer}route-view{display:none;flex:1}site-header{background-color:#fff;display:none;position:-webkit-sticky;position:sticky;top:0;height:var(--header-height)}#main{display:none;flex:1 auto;max-width:100%;overflow:hidden;flex-direction:column;overflow-y:scroll}.loaded #main,.loaded site-header,body.loaded,route-view.loaded{display:flex}route-view.left-panel-active{padding-left:var(--sidepanel-width)}.h4,h4{margin-bottom:1rem;font-weight:500;line-height:1.2;font-size:1.6rem}.row{display:flex;flex-wrap:wrap;margin-right:-15px;margin-left:-15px}.col-12,.col-lg,.col-md-12{position:relative;width:100%;padding-right:15px;padding-left:15px}.col-12{flex:0 0 100%;max-width:100%}@media (min-width:768px){.col-md-12{flex:0 0 100%;max-width:100%}}@media (min-width:992px){.col-lg{flex-basis:0;flex-grow:1;max-width:100%}}.form-group{margin-bottom:1.6rem}input[type=checkbox],input[type=radio]{cursor:pointer}.btn{display:inline-block;font-weight:400;color:#000;text-align:center;vertical-align:middle;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;background-color:transparent;border:1px solid transparent;padding:.375rem .75rem;font-size:1.6rem;line-height:1.5;border-radius:.25rem;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.btn{transition:none}}.btn:hover{color:#000;text-decoration:none}.btn.focus,.btn:focus{outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.btn.disabled,.btn:disabled{opacity:.65}.btn-primary{color:#fff;background-color:#0d6efd;border-color:#0d6efd}.btn-primary:hover{color:#fff;background-color:rgb(1.8668032787,92.4067622951,225.8831967213);border-color:rgb(1.762295082,87.2336065574,213.237704918)}.btn-primary.focus,.btn-primary:focus{box-shadow:0 0 0 .2rem rgba(49.3,131.75,253.3,.5)}.btn-primary.disabled,.btn-primary:disabled{color:#fff;background-color:#0d6efd;border-color:#0d6efd}.btn-primary:not(:disabled):not(.disabled):active{color:#fff;background-color:rgb(1.762295082,87.2336065574,213.237704918);border-color:rgb(1.6577868852,82.0604508197,200.5922131148)}.btn-primary:not(:disabled):not(.disabled):active:focus{box-shadow:0 0 0 .2rem rgba(49.3,131.75,253.3,.5)}.btn-outline-primary{color:#0d6efd;border-color:#0d6efd}.btn-outline-primary:hover{color:#fff;background-color:#0d6efd;border-color:#0d6efd}.btn-outline-primary.focus,.btn-outline-primary:focus{box-shadow:0 0 0 .2rem rgba(13,110,253,.5)}.btn-outline-primary.disabled,.btn-outline-primary:disabled{color:#0d6efd;background-color:transparent}.btn-outline-primary:not(:disabled):not(.disabled):active{color:#fff;background-color:#0d6efd;border-color:#0d6efd}.btn-outline-primary:not(:disabled):not(.disabled):active:focus{box-shadow:0 0 0 .2rem rgba(13,110,253,.5)}.btn-lg{padding:.5rem 1rem;font-size:1.9rem;line-height:1.5;border-radius:.3rem}.btn-block{display:block;width:100%}.btn-block+.btn-block{margin-top:.8rem}input[type=button].btn-block,input[type=reset].btn-block,input[type=submit].btn-block{width:100%}.btn:disabled{cursor:not-allowed}.btn.disabled,link-to.btn.disabled,link-to.btn:disabled,link-to.btn[disabled]{pointer-events:none}button,button:active{outline:none}.btn:focus-visible,[tabindex=\\\"0\\\"]:focus-visible,aofl-list-option:focus-visible,button[type=button]:focus-visible,collapse-button:focus-visible{outline:1px solid #e50b0a;border:1px solid #e50b0a}.btn-primary:focus-visible .btn-outline-primary:focus-visible{outline-offset:2px;outline:2px solid #e50b0a}.btn-outline-primary,.btn-primary{font-weight:600;border-width:2px}.btn.disabled,.btn:disabled{background:#cfe2ff;border-color:#cfe2ff;color:#0d6efd;opacity:1}.dropdown{position:relative;display:inline-block}ems-dropdown>button.btn{display:flex;align-items:center;border:1px solid var(--gray)}@keyframes progress-bar-stripes{0%{background-position:1.6rem 0}to{background-position:0 0}}.close{float:right;font-size:1rem;font-weight:700;line-height:1;color:#000;text-shadow:0 1px 0 #fff;opacity:.5}.close:hover{color:#000;text-decoration:none}.close:not(:disabled):not(.disabled):focus,.close:not(:disabled):not(.disabled):hover{opacity:.75}button.close{padding:0;background-color:transparent;border:0;-webkit-appearance:none;-moz-appearance:none;appearance:none}.close,.close:not(:disabled):not(.disabled):focus,.close:not(:disabled):not(.disabled):hover{opacity:1}.toast{max-width:350px;overflow:hidden;font-size:1.4rem;background-color:hsla(0,0%,100%,.85);background-clip:padding-box;border:1px solid rgba(0,0,0,.1);box-shadow:0 .4rem 1.2rem #d8d8d8;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);opacity:0;border-radius:.4rem}.toast:not(:last-child){margin-bottom:1.2rem}.modal,.toast.hide{display:none}.modal{position:fixed;top:0;left:0;z-index:1050;width:100%;height:100%;overflow:hidden;outline:0}.modal-dialog{position:relative;width:auto;margin:.8rem;pointer-events:none}.modal-dialog-scrollable{display:flex;max-height:calc(100% - 1.6rem)}.modal-dialog-scrollable .modal-content{max-height:calc(100vh - 1.6rem);overflow:hidden}.modal-dialog-scrollable .modal-footer{flex-shrink:0}.modal-dialog-scrollable .modal-body{overflow-y:auto}.modal-dialog-centered{display:flex;align-items:center;min-height:calc(100% - 1.6rem)}.modal-dialog-centered:before{display:block;height:calc(100vh - 1.6rem);content:\\\"\\\"}.modal-dialog-centered.modal-dialog-scrollable{flex-direction:column;justify-content:center;height:100%}.modal-dialog-centered.modal-dialog-scrollable .modal-content{max-height:none}.modal-dialog-centered.modal-dialog-scrollable:before{content:none}.modal-content{position:relative;display:flex;flex-direction:column;width:100%;pointer-events:auto;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.2);border-radius:.3rem;outline:0}.modal-body{position:relative;flex:1 1 auto;padding:2.4rem}.modal-footer{display:flex;align-items:center;justify-content:flex-end;padding:2.4rem;border-top:1px solid #dee2e6;border-bottom-right-radius:.3rem;border-bottom-left-radius:.3rem}.modal-footer>:not(:first-child){margin-left:.25rem}.modal-footer>:not(:last-child){margin-right:.25rem}@media (min-width:576px){.modal-dialog{max-width:500px;margin:2.8rem auto}.modal-dialog-scrollable{max-height:calc(100% - 5.6rem)}.modal-dialog-scrollable .modal-content{max-height:calc(100vh - 5.6rem)}.modal-dialog-centered{min-height:calc(100% - 5.6rem)}.modal-dialog-centered:before{height:calc(100vh - 5.6rem)}}@media (min-width:992px){.modal-lg{max-width:800px}}.modal-container{background-color:rgba(0,0,0,.2);position:fixed;top:0;bottom:0;right:0;left:0;z-index:var(--z-index-modal)}.modal-container :first-child{overflow:auto}.modal{position:relative;display:block;height:100vh}.modal-dialog-centered.modal-dialog-scrollable{height:auto;max-height:calc(100% - 2.8rem);min-height:auto}.modal-body,.modal-content,.modal-footer,.modal-header{border:none}.modal-header{font-size:2rem;padding:2.4rem}.modal-body{padding:0 2.4rem 4.8rem}.colored-header{color:#fff}.modal-body p{text-align:left}.colored-header-primary{background-color:#0d6efd}.colored-header-secondary{background-color:#adb5bd}.colored-header-success{background-color:#3c8104}.colored-header-info{background-color:#cfe2ff}.colored-header-warning{background-color:#e17a05}.colored-header-danger{background-color:#d20a09}.colored-header-light{background-color:#f8f9fa}.colored-header-dark{background-color:#000}.carousel{position:relative}@keyframes spinner-border{to{transform:rotate(1turn)}}@keyframes spinner-grow{0%{transform:scale(0)}50%{opacity:1}}.rounded-pill{border-radius:80rem!important}.d-flex{display:flex!important}.justify-content-center{justify-content:center!important}.shadow{box-shadow:0 .8rem 1.6rem #d8d8d8!important}.w-100{width:100%!important}.p-3{padding:1rem!important}[hidden]{visibility:hidden!important;height:0!important;width:0!important;min-height:unset!important}@media print{*,:after,:before{text-shadow:none!important;box-shadow:none!important}img{page-break-inside:avoid}p{orphans:3;widows:3}@page{size:a3}}@media print{main::-webkit-scrollbar{display:none}main{-ms-overflow-style:none;scrollbar-width:none}}@page{size:A4;margin:20mm 16mm 20mm 16mm}:host{display:block}:host img{width:100%}:host p{margin-bottom:1rem}.disconnect-modal-body{margin:18px 24px 0 36px}.footer-btns{margin-bottom:12px}.leftbox,.leftright{flex-direction:column}.leftbox{margin-right:0;margin-bottom:0}.rightbox{min-width:365px;width:365px;height:205px;margin-bottom:20px;border:1px solid grey}@media (min-width:992px){.rightbox{min-width:665px;width:665px;height:374px}}.step-number{min-width:26px;width:26px;margin-right:12px;cursor:pointer}.step-row{margin-bottom:4px}\", \"\"]);\n","/**\n * Returns a function, that, as long as it continues to be invoked, will not\n * be triggered. The function will be called after it stops being called for\n * N milliseconds. If `immediate` is passed, trigger the function on the\n * leading edge, instead of the trailing. The function also has a property 'clear' \n * that is a function which will clear the timer to prevent previously scheduled executions. \n *\n * @source underscore.js\n * @see http://unscriptable.com/2009/03/20/debouncing-javascript-methods/\n * @param {Function} function to wrap\n * @param {Number} timeout in ms (`100`)\n * @param {Boolean} whether to execute at the beginning (`false`)\n * @api public\n */\nfunction debounce(func, wait, immediate){\n var timeout, args, context, timestamp, result;\n if (null == wait) wait = 100;\n\n function later() {\n var last = Date.now() - timestamp;\n\n if (last < wait && last >= 0) {\n timeout = setTimeout(later, wait - last);\n } else {\n timeout = null;\n if (!immediate) {\n result = func.apply(context, args);\n context = args = null;\n }\n }\n };\n\n var debounced = function(){\n context = this;\n args = arguments;\n timestamp = Date.now();\n var callNow = immediate && !timeout;\n if (!timeout) timeout = setTimeout(later, wait);\n if (callNow) {\n result = func.apply(context, args);\n context = args = null;\n }\n\n return result;\n };\n\n debounced.clear = function() {\n if (timeout) {\n clearTimeout(timeout);\n timeout = null;\n }\n };\n \n debounced.flush = function() {\n if (timeout) {\n result = func.apply(context, args);\n context = args = null;\n \n clearTimeout(timeout);\n timeout = null;\n }\n };\n\n return debounced;\n};\n\n// Adds compatibility for ES modules\ndebounce.debounce = debounce;\n\nmodule.exports = debounce;\n","export default function addLeadingZeros(number, targetLength) {\n var sign = number < 0 ? '-' : '';\n var output = Math.abs(number).toString();\n\n while (output.length < targetLength) {\n output = '0' + output;\n }\n\n return sign + output;\n}","import addLeadingZeros from '../../addLeadingZeros/index.js';\n/*\n * | | Unit | | Unit |\n * |-----|--------------------------------|-----|--------------------------------|\n * | a | AM, PM | A* | |\n * | d | Day of month | D | |\n * | h | Hour [1-12] | H | Hour [0-23] |\n * | m | Minute | M | Month |\n * | s | Second | S | Fraction of second |\n * | y | Year (abs) | Y | |\n *\n * Letters marked by * are not implemented but reserved by Unicode standard.\n */\n\nvar formatters = {\n // Year\n y: function (date, token) {\n // From http://www.unicode.org/reports/tr35/tr35-31/tr35-dates.html#Date_Format_tokens\n // | Year | y | yy | yyy | yyyy | yyyyy |\n // |----------|-------|----|-------|-------|-------|\n // | AD 1 | 1 | 01 | 001 | 0001 | 00001 |\n // | AD 12 | 12 | 12 | 012 | 0012 | 00012 |\n // | AD 123 | 123 | 23 | 123 | 0123 | 00123 |\n // | AD 1234 | 1234 | 34 | 1234 | 1234 | 01234 |\n // | AD 12345 | 12345 | 45 | 12345 | 12345 | 12345 |\n var signedYear = date.getUTCFullYear(); // Returns 1 for 1 BC (which is year 0 in JavaScript)\n\n var year = signedYear > 0 ? signedYear : 1 - signedYear;\n return addLeadingZeros(token === 'yy' ? year % 100 : year, token.length);\n },\n // Month\n M: function (date, token) {\n var month = date.getUTCMonth();\n return token === 'M' ? String(month + 1) : addLeadingZeros(month + 1, 2);\n },\n // Day of the month\n d: function (date, token) {\n return addLeadingZeros(date.getUTCDate(), token.length);\n },\n // AM or PM\n a: function (date, token) {\n var dayPeriodEnumValue = date.getUTCHours() / 12 >= 1 ? 'pm' : 'am';\n\n switch (token) {\n case 'a':\n case 'aa':\n case 'aaa':\n return dayPeriodEnumValue.toUpperCase();\n\n case 'aaaaa':\n return dayPeriodEnumValue[0];\n\n case 'aaaa':\n default:\n return dayPeriodEnumValue === 'am' ? 'a.m.' : 'p.m.';\n }\n },\n // Hour [1-12]\n h: function (date, token) {\n return addLeadingZeros(date.getUTCHours() % 12 || 12, token.length);\n },\n // Hour [0-23]\n H: function (date, token) {\n return addLeadingZeros(date.getUTCHours(), token.length);\n },\n // Minute\n m: function (date, token) {\n return addLeadingZeros(date.getUTCMinutes(), token.length);\n },\n // Second\n s: function (date, token) {\n return addLeadingZeros(date.getUTCSeconds(), token.length);\n },\n // Fraction of second\n S: function (date, token) {\n var numberOfDigits = token.length;\n var milliseconds = date.getUTCMilliseconds();\n var fractionalSeconds = Math.floor(milliseconds * Math.pow(10, numberOfDigits - 3));\n return addLeadingZeros(fractionalSeconds, token.length);\n }\n};\nexport default formatters;","import toDate from '../../toDate/index.js';\nimport requiredArgs from '../requiredArgs/index.js';\nvar MILLISECONDS_IN_DAY = 86400000; // This function will be a part of public API when UTC function will be implemented.\n// See issue: https://github.com/date-fns/date-fns/issues/376\n\nexport default function getUTCDayOfYear(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n var timestamp = date.getTime();\n date.setUTCMonth(0, 1);\n date.setUTCHours(0, 0, 0, 0);\n var startOfYearTimestamp = date.getTime();\n var difference = timestamp - startOfYearTimestamp;\n return Math.floor(difference / MILLISECONDS_IN_DAY) + 1;\n}","import lightFormatters from '../lightFormatters/index.js';\nimport getUTCDayOfYear from '../../../_lib/getUTCDayOfYear/index.js';\nimport getUTCISOWeek from '../../../_lib/getUTCISOWeek/index.js';\nimport getUTCISOWeekYear from '../../../_lib/getUTCISOWeekYear/index.js';\nimport getUTCWeek from '../../../_lib/getUTCWeek/index.js';\nimport getUTCWeekYear from '../../../_lib/getUTCWeekYear/index.js';\nimport addLeadingZeros from '../../addLeadingZeros/index.js';\nvar dayPeriodEnum = {\n am: 'am',\n pm: 'pm',\n midnight: 'midnight',\n noon: 'noon',\n morning: 'morning',\n afternoon: 'afternoon',\n evening: 'evening',\n night: 'night'\n /*\n * | | Unit | | Unit |\n * |-----|--------------------------------|-----|--------------------------------|\n * | a | AM, PM | A* | Milliseconds in day |\n * | b | AM, PM, noon, midnight | B | Flexible day period |\n * | c | Stand-alone local day of week | C* | Localized hour w/ day period |\n * | d | Day of month | D | Day of year |\n * | e | Local day of week | E | Day of week |\n * | f | | F* | Day of week in month |\n * | g* | Modified Julian day | G | Era |\n * | h | Hour [1-12] | H | Hour [0-23] |\n * | i! | ISO day of week | I! | ISO week of year |\n * | j* | Localized hour w/ day period | J* | Localized hour w/o day period |\n * | k | Hour [1-24] | K | Hour [0-11] |\n * | l* | (deprecated) | L | Stand-alone month |\n * | m | Minute | M | Month |\n * | n | | N | |\n * | o! | Ordinal number modifier | O | Timezone (GMT) |\n * | p! | Long localized time | P! | Long localized date |\n * | q | Stand-alone quarter | Q | Quarter |\n * | r* | Related Gregorian year | R! | ISO week-numbering year |\n * | s | Second | S | Fraction of second |\n * | t! | Seconds timestamp | T! | Milliseconds timestamp |\n * | u | Extended year | U* | Cyclic year |\n * | v* | Timezone (generic non-locat.) | V* | Timezone (location) |\n * | w | Local week of year | W* | Week of month |\n * | x | Timezone (ISO-8601 w/o Z) | X | Timezone (ISO-8601) |\n * | y | Year (abs) | Y | Local week-numbering year |\n * | z | Timezone (specific non-locat.) | Z* | Timezone (aliases) |\n *\n * Letters marked by * are not implemented but reserved by Unicode standard.\n *\n * Letters marked by ! are non-standard, but implemented by date-fns:\n * - `o` modifies the previous token to turn it into an ordinal (see `format` docs)\n * - `i` is ISO day of week. For `i` and `ii` is returns numeric ISO week days,\n * i.e. 7 for Sunday, 1 for Monday, etc.\n * - `I` is ISO week of year, as opposed to `w` which is local week of year.\n * - `R` is ISO week-numbering year, as opposed to `Y` which is local week-numbering year.\n * `R` is supposed to be used in conjunction with `I` and `i`\n * for universal ISO week-numbering date, whereas\n * `Y` is supposed to be used in conjunction with `w` and `e`\n * for week-numbering date specific to the locale.\n * - `P` is long localized date format\n * - `p` is long localized time format\n */\n\n};\nvar formatters = {\n // Era\n G: function (date, token, localize) {\n var era = date.getUTCFullYear() > 0 ? 1 : 0;\n\n switch (token) {\n // AD, BC\n case 'G':\n case 'GG':\n case 'GGG':\n return localize.era(era, {\n width: 'abbreviated'\n });\n // A, B\n\n case 'GGGGG':\n return localize.era(era, {\n width: 'narrow'\n });\n // Anno Domini, Before Christ\n\n case 'GGGG':\n default:\n return localize.era(era, {\n width: 'wide'\n });\n }\n },\n // Year\n y: function (date, token, localize) {\n // Ordinal number\n if (token === 'yo') {\n var signedYear = date.getUTCFullYear(); // Returns 1 for 1 BC (which is year 0 in JavaScript)\n\n var year = signedYear > 0 ? signedYear : 1 - signedYear;\n return localize.ordinalNumber(year, {\n unit: 'year'\n });\n }\n\n return lightFormatters.y(date, token);\n },\n // Local week-numbering year\n Y: function (date, token, localize, options) {\n var signedWeekYear = getUTCWeekYear(date, options); // Returns 1 for 1 BC (which is year 0 in JavaScript)\n\n var weekYear = signedWeekYear > 0 ? signedWeekYear : 1 - signedWeekYear; // Two digit year\n\n if (token === 'YY') {\n var twoDigitYear = weekYear % 100;\n return addLeadingZeros(twoDigitYear, 2);\n } // Ordinal number\n\n\n if (token === 'Yo') {\n return localize.ordinalNumber(weekYear, {\n unit: 'year'\n });\n } // Padding\n\n\n return addLeadingZeros(weekYear, token.length);\n },\n // ISO week-numbering year\n R: function (date, token) {\n var isoWeekYear = getUTCISOWeekYear(date); // Padding\n\n return addLeadingZeros(isoWeekYear, token.length);\n },\n // Extended year. This is a single number designating the year of this calendar system.\n // The main difference between `y` and `u` localizers are B.C. years:\n // | Year | `y` | `u` |\n // |------|-----|-----|\n // | AC 1 | 1 | 1 |\n // | BC 1 | 1 | 0 |\n // | BC 2 | 2 | -1 |\n // Also `yy` always returns the last two digits of a year,\n // while `uu` pads single digit years to 2 characters and returns other years unchanged.\n u: function (date, token) {\n var year = date.getUTCFullYear();\n return addLeadingZeros(year, token.length);\n },\n // Quarter\n Q: function (date, token, localize) {\n var quarter = Math.ceil((date.getUTCMonth() + 1) / 3);\n\n switch (token) {\n // 1, 2, 3, 4\n case 'Q':\n return String(quarter);\n // 01, 02, 03, 04\n\n case 'QQ':\n return addLeadingZeros(quarter, 2);\n // 1st, 2nd, 3rd, 4th\n\n case 'Qo':\n return localize.ordinalNumber(quarter, {\n unit: 'quarter'\n });\n // Q1, Q2, Q3, Q4\n\n case 'QQQ':\n return localize.quarter(quarter, {\n width: 'abbreviated',\n context: 'formatting'\n });\n // 1, 2, 3, 4 (narrow quarter; could be not numerical)\n\n case 'QQQQQ':\n return localize.quarter(quarter, {\n width: 'narrow',\n context: 'formatting'\n });\n // 1st quarter, 2nd quarter, ...\n\n case 'QQQQ':\n default:\n return localize.quarter(quarter, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // Stand-alone quarter\n q: function (date, token, localize) {\n var quarter = Math.ceil((date.getUTCMonth() + 1) / 3);\n\n switch (token) {\n // 1, 2, 3, 4\n case 'q':\n return String(quarter);\n // 01, 02, 03, 04\n\n case 'qq':\n return addLeadingZeros(quarter, 2);\n // 1st, 2nd, 3rd, 4th\n\n case 'qo':\n return localize.ordinalNumber(quarter, {\n unit: 'quarter'\n });\n // Q1, Q2, Q3, Q4\n\n case 'qqq':\n return localize.quarter(quarter, {\n width: 'abbreviated',\n context: 'standalone'\n });\n // 1, 2, 3, 4 (narrow quarter; could be not numerical)\n\n case 'qqqqq':\n return localize.quarter(quarter, {\n width: 'narrow',\n context: 'standalone'\n });\n // 1st quarter, 2nd quarter, ...\n\n case 'qqqq':\n default:\n return localize.quarter(quarter, {\n width: 'wide',\n context: 'standalone'\n });\n }\n },\n // Month\n M: function (date, token, localize) {\n var month = date.getUTCMonth();\n\n switch (token) {\n case 'M':\n case 'MM':\n return lightFormatters.M(date, token);\n // 1st, 2nd, ..., 12th\n\n case 'Mo':\n return localize.ordinalNumber(month + 1, {\n unit: 'month'\n });\n // Jan, Feb, ..., Dec\n\n case 'MMM':\n return localize.month(month, {\n width: 'abbreviated',\n context: 'formatting'\n });\n // J, F, ..., D\n\n case 'MMMMM':\n return localize.month(month, {\n width: 'narrow',\n context: 'formatting'\n });\n // January, February, ..., December\n\n case 'MMMM':\n default:\n return localize.month(month, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // Stand-alone month\n L: function (date, token, localize) {\n var month = date.getUTCMonth();\n\n switch (token) {\n // 1, 2, ..., 12\n case 'L':\n return String(month + 1);\n // 01, 02, ..., 12\n\n case 'LL':\n return addLeadingZeros(month + 1, 2);\n // 1st, 2nd, ..., 12th\n\n case 'Lo':\n return localize.ordinalNumber(month + 1, {\n unit: 'month'\n });\n // Jan, Feb, ..., Dec\n\n case 'LLL':\n return localize.month(month, {\n width: 'abbreviated',\n context: 'standalone'\n });\n // J, F, ..., D\n\n case 'LLLLL':\n return localize.month(month, {\n width: 'narrow',\n context: 'standalone'\n });\n // January, February, ..., December\n\n case 'LLLL':\n default:\n return localize.month(month, {\n width: 'wide',\n context: 'standalone'\n });\n }\n },\n // Local week of year\n w: function (date, token, localize, options) {\n var week = getUTCWeek(date, options);\n\n if (token === 'wo') {\n return localize.ordinalNumber(week, {\n unit: 'week'\n });\n }\n\n return addLeadingZeros(week, token.length);\n },\n // ISO week of year\n I: function (date, token, localize) {\n var isoWeek = getUTCISOWeek(date);\n\n if (token === 'Io') {\n return localize.ordinalNumber(isoWeek, {\n unit: 'week'\n });\n }\n\n return addLeadingZeros(isoWeek, token.length);\n },\n // Day of the month\n d: function (date, token, localize) {\n if (token === 'do') {\n return localize.ordinalNumber(date.getUTCDate(), {\n unit: 'date'\n });\n }\n\n return lightFormatters.d(date, token);\n },\n // Day of year\n D: function (date, token, localize) {\n var dayOfYear = getUTCDayOfYear(date);\n\n if (token === 'Do') {\n return localize.ordinalNumber(dayOfYear, {\n unit: 'dayOfYear'\n });\n }\n\n return addLeadingZeros(dayOfYear, token.length);\n },\n // Day of week\n E: function (date, token, localize) {\n var dayOfWeek = date.getUTCDay();\n\n switch (token) {\n // Tue\n case 'E':\n case 'EE':\n case 'EEE':\n return localize.day(dayOfWeek, {\n width: 'abbreviated',\n context: 'formatting'\n });\n // T\n\n case 'EEEEE':\n return localize.day(dayOfWeek, {\n width: 'narrow',\n context: 'formatting'\n });\n // Tu\n\n case 'EEEEEE':\n return localize.day(dayOfWeek, {\n width: 'short',\n context: 'formatting'\n });\n // Tuesday\n\n case 'EEEE':\n default:\n return localize.day(dayOfWeek, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // Local day of week\n e: function (date, token, localize, options) {\n var dayOfWeek = date.getUTCDay();\n var localDayOfWeek = (dayOfWeek - options.weekStartsOn + 8) % 7 || 7;\n\n switch (token) {\n // Numerical value (Nth day of week with current locale or weekStartsOn)\n case 'e':\n return String(localDayOfWeek);\n // Padded numerical value\n\n case 'ee':\n return addLeadingZeros(localDayOfWeek, 2);\n // 1st, 2nd, ..., 7th\n\n case 'eo':\n return localize.ordinalNumber(localDayOfWeek, {\n unit: 'day'\n });\n\n case 'eee':\n return localize.day(dayOfWeek, {\n width: 'abbreviated',\n context: 'formatting'\n });\n // T\n\n case 'eeeee':\n return localize.day(dayOfWeek, {\n width: 'narrow',\n context: 'formatting'\n });\n // Tu\n\n case 'eeeeee':\n return localize.day(dayOfWeek, {\n width: 'short',\n context: 'formatting'\n });\n // Tuesday\n\n case 'eeee':\n default:\n return localize.day(dayOfWeek, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // Stand-alone local day of week\n c: function (date, token, localize, options) {\n var dayOfWeek = date.getUTCDay();\n var localDayOfWeek = (dayOfWeek - options.weekStartsOn + 8) % 7 || 7;\n\n switch (token) {\n // Numerical value (same as in `e`)\n case 'c':\n return String(localDayOfWeek);\n // Padded numerical value\n\n case 'cc':\n return addLeadingZeros(localDayOfWeek, token.length);\n // 1st, 2nd, ..., 7th\n\n case 'co':\n return localize.ordinalNumber(localDayOfWeek, {\n unit: 'day'\n });\n\n case 'ccc':\n return localize.day(dayOfWeek, {\n width: 'abbreviated',\n context: 'standalone'\n });\n // T\n\n case 'ccccc':\n return localize.day(dayOfWeek, {\n width: 'narrow',\n context: 'standalone'\n });\n // Tu\n\n case 'cccccc':\n return localize.day(dayOfWeek, {\n width: 'short',\n context: 'standalone'\n });\n // Tuesday\n\n case 'cccc':\n default:\n return localize.day(dayOfWeek, {\n width: 'wide',\n context: 'standalone'\n });\n }\n },\n // ISO day of week\n i: function (date, token, localize) {\n var dayOfWeek = date.getUTCDay();\n var isoDayOfWeek = dayOfWeek === 0 ? 7 : dayOfWeek;\n\n switch (token) {\n // 2\n case 'i':\n return String(isoDayOfWeek);\n // 02\n\n case 'ii':\n return addLeadingZeros(isoDayOfWeek, token.length);\n // 2nd\n\n case 'io':\n return localize.ordinalNumber(isoDayOfWeek, {\n unit: 'day'\n });\n // Tue\n\n case 'iii':\n return localize.day(dayOfWeek, {\n width: 'abbreviated',\n context: 'formatting'\n });\n // T\n\n case 'iiiii':\n return localize.day(dayOfWeek, {\n width: 'narrow',\n context: 'formatting'\n });\n // Tu\n\n case 'iiiiii':\n return localize.day(dayOfWeek, {\n width: 'short',\n context: 'formatting'\n });\n // Tuesday\n\n case 'iiii':\n default:\n return localize.day(dayOfWeek, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // AM or PM\n a: function (date, token, localize) {\n var hours = date.getUTCHours();\n var dayPeriodEnumValue = hours / 12 >= 1 ? 'pm' : 'am';\n\n switch (token) {\n case 'a':\n case 'aa':\n case 'aaa':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'abbreviated',\n context: 'formatting'\n });\n\n case 'aaaaa':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'narrow',\n context: 'formatting'\n });\n\n case 'aaaa':\n default:\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // AM, PM, midnight, noon\n b: function (date, token, localize) {\n var hours = date.getUTCHours();\n var dayPeriodEnumValue;\n\n if (hours === 12) {\n dayPeriodEnumValue = dayPeriodEnum.noon;\n } else if (hours === 0) {\n dayPeriodEnumValue = dayPeriodEnum.midnight;\n } else {\n dayPeriodEnumValue = hours / 12 >= 1 ? 'pm' : 'am';\n }\n\n switch (token) {\n case 'b':\n case 'bb':\n case 'bbb':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'abbreviated',\n context: 'formatting'\n });\n\n case 'bbbbb':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'narrow',\n context: 'formatting'\n });\n\n case 'bbbb':\n default:\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // in the morning, in the afternoon, in the evening, at night\n B: function (date, token, localize) {\n var hours = date.getUTCHours();\n var dayPeriodEnumValue;\n\n if (hours >= 17) {\n dayPeriodEnumValue = dayPeriodEnum.evening;\n } else if (hours >= 12) {\n dayPeriodEnumValue = dayPeriodEnum.afternoon;\n } else if (hours >= 4) {\n dayPeriodEnumValue = dayPeriodEnum.morning;\n } else {\n dayPeriodEnumValue = dayPeriodEnum.night;\n }\n\n switch (token) {\n case 'B':\n case 'BB':\n case 'BBB':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'abbreviated',\n context: 'formatting'\n });\n\n case 'BBBBB':\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'narrow',\n context: 'formatting'\n });\n\n case 'BBBB':\n default:\n return localize.dayPeriod(dayPeriodEnumValue, {\n width: 'wide',\n context: 'formatting'\n });\n }\n },\n // Hour [1-12]\n h: function (date, token, localize) {\n if (token === 'ho') {\n var hours = date.getUTCHours() % 12;\n if (hours === 0) hours = 12;\n return localize.ordinalNumber(hours, {\n unit: 'hour'\n });\n }\n\n return lightFormatters.h(date, token);\n },\n // Hour [0-23]\n H: function (date, token, localize) {\n if (token === 'Ho') {\n return localize.ordinalNumber(date.getUTCHours(), {\n unit: 'hour'\n });\n }\n\n return lightFormatters.H(date, token);\n },\n // Hour [0-11]\n K: function (date, token, localize) {\n var hours = date.getUTCHours() % 12;\n\n if (token === 'Ko') {\n return localize.ordinalNumber(hours, {\n unit: 'hour'\n });\n }\n\n return addLeadingZeros(hours, token.length);\n },\n // Hour [1-24]\n k: function (date, token, localize) {\n var hours = date.getUTCHours();\n if (hours === 0) hours = 24;\n\n if (token === 'ko') {\n return localize.ordinalNumber(hours, {\n unit: 'hour'\n });\n }\n\n return addLeadingZeros(hours, token.length);\n },\n // Minute\n m: function (date, token, localize) {\n if (token === 'mo') {\n return localize.ordinalNumber(date.getUTCMinutes(), {\n unit: 'minute'\n });\n }\n\n return lightFormatters.m(date, token);\n },\n // Second\n s: function (date, token, localize) {\n if (token === 'so') {\n return localize.ordinalNumber(date.getUTCSeconds(), {\n unit: 'second'\n });\n }\n\n return lightFormatters.s(date, token);\n },\n // Fraction of second\n S: function (date, token) {\n return lightFormatters.S(date, token);\n },\n // Timezone (ISO-8601. If offset is 0, output is always `'Z'`)\n X: function (date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timezoneOffset = originalDate.getTimezoneOffset();\n\n if (timezoneOffset === 0) {\n return 'Z';\n }\n\n switch (token) {\n // Hours and optional minutes\n case 'X':\n return formatTimezoneWithOptionalMinutes(timezoneOffset);\n // Hours, minutes and optional seconds without `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `XX`\n\n case 'XXXX':\n case 'XX':\n // Hours and minutes without `:` delimiter\n return formatTimezone(timezoneOffset);\n // Hours, minutes and optional seconds with `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `XXX`\n\n case 'XXXXX':\n case 'XXX': // Hours and minutes with `:` delimiter\n\n default:\n return formatTimezone(timezoneOffset, ':');\n }\n },\n // Timezone (ISO-8601. If offset is 0, output is `'+00:00'` or equivalent)\n x: function (date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timezoneOffset = originalDate.getTimezoneOffset();\n\n switch (token) {\n // Hours and optional minutes\n case 'x':\n return formatTimezoneWithOptionalMinutes(timezoneOffset);\n // Hours, minutes and optional seconds without `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `xx`\n\n case 'xxxx':\n case 'xx':\n // Hours and minutes without `:` delimiter\n return formatTimezone(timezoneOffset);\n // Hours, minutes and optional seconds with `:` delimiter\n // Note: neither ISO-8601 nor JavaScript supports seconds in timezone offsets\n // so this token always has the same output as `xxx`\n\n case 'xxxxx':\n case 'xxx': // Hours and minutes with `:` delimiter\n\n default:\n return formatTimezone(timezoneOffset, ':');\n }\n },\n // Timezone (GMT)\n O: function (date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timezoneOffset = originalDate.getTimezoneOffset();\n\n switch (token) {\n // Short\n case 'O':\n case 'OO':\n case 'OOO':\n return 'GMT' + formatTimezoneShort(timezoneOffset, ':');\n // Long\n\n case 'OOOO':\n default:\n return 'GMT' + formatTimezone(timezoneOffset, ':');\n }\n },\n // Timezone (specific non-location)\n z: function (date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timezoneOffset = originalDate.getTimezoneOffset();\n\n switch (token) {\n // Short\n case 'z':\n case 'zz':\n case 'zzz':\n return 'GMT' + formatTimezoneShort(timezoneOffset, ':');\n // Long\n\n case 'zzzz':\n default:\n return 'GMT' + formatTimezone(timezoneOffset, ':');\n }\n },\n // Seconds timestamp\n t: function (date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timestamp = Math.floor(originalDate.getTime() / 1000);\n return addLeadingZeros(timestamp, token.length);\n },\n // Milliseconds timestamp\n T: function (date, token, _localize, options) {\n var originalDate = options._originalDate || date;\n var timestamp = originalDate.getTime();\n return addLeadingZeros(timestamp, token.length);\n }\n};\n\nfunction formatTimezoneShort(offset, dirtyDelimiter) {\n var sign = offset > 0 ? '-' : '+';\n var absOffset = Math.abs(offset);\n var hours = Math.floor(absOffset / 60);\n var minutes = absOffset % 60;\n\n if (minutes === 0) {\n return sign + String(hours);\n }\n\n var delimiter = dirtyDelimiter || '';\n return sign + String(hours) + delimiter + addLeadingZeros(minutes, 2);\n}\n\nfunction formatTimezoneWithOptionalMinutes(offset, dirtyDelimiter) {\n if (offset % 60 === 0) {\n var sign = offset > 0 ? '-' : '+';\n return sign + addLeadingZeros(Math.abs(offset) / 60, 2);\n }\n\n return formatTimezone(offset, dirtyDelimiter);\n}\n\nfunction formatTimezone(offset, dirtyDelimiter) {\n var delimiter = dirtyDelimiter || '';\n var sign = offset > 0 ? '-' : '+';\n var absOffset = Math.abs(offset);\n var hours = addLeadingZeros(Math.floor(absOffset / 60), 2);\n var minutes = addLeadingZeros(absOffset % 60, 2);\n return sign + hours + delimiter + minutes;\n}\n\nexport default formatters;","import isValid from '../isValid/index.js';\nimport defaultLocale from '../locale/en-US/index.js';\nimport subMilliseconds from '../subMilliseconds/index.js';\nimport toDate from '../toDate/index.js';\nimport formatters from '../_lib/format/formatters/index.js';\nimport longFormatters from '../_lib/format/longFormatters/index.js';\nimport getTimezoneOffsetInMilliseconds from '../_lib/getTimezoneOffsetInMilliseconds/index.js';\nimport { isProtectedDayOfYearToken, isProtectedWeekYearToken, throwProtectedError } from '../_lib/protectedTokens/index.js';\nimport toInteger from '../_lib/toInteger/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js'; // This RegExp consists of three parts separated by `|`:\n// - [yYQqMLwIdDecihHKkms]o matches any available ordinal number token\n// (one of the certain letters followed by `o`)\n// - (\\w)\\1* matches any sequences of the same letter\n// - '' matches two quote characters in a row\n// - '(''|[^'])+('|$) matches anything surrounded by two quote characters ('),\n// except a single quote symbol, which ends the sequence.\n// Two quote characters do not end the sequence.\n// If there is no matching single quote\n// then the sequence will continue until the end of the string.\n// - . matches any single character unmatched by previous parts of the RegExps\n\nvar formattingTokensRegExp = /[yYQqMLwIdDecihHKkms]o|(\\w)\\1*|''|'(''|[^'])+('|$)|./g; // This RegExp catches symbols escaped by quotes, and also\n// sequences of symbols P, p, and the combinations like `PPPPPPPppppp`\n\nvar longFormattingTokensRegExp = /P+p+|P+|p+|''|'(''|[^'])+('|$)|./g;\nvar escapedStringRegExp = /^'([^]*?)'?$/;\nvar doubleQuoteRegExp = /''/g;\nvar unescapedLatinCharacterRegExp = /[a-zA-Z]/;\n/**\n * @name format\n * @category Common Helpers\n * @summary Format the date.\n *\n * @description\n * Return the formatted date string in the given format. The result may vary by locale.\n *\n * > ⚠️ Please note that the `format` tokens differ from Moment.js and other libraries.\n * > See: https://git.io/fxCyr\n *\n * The characters wrapped between two single quotes characters (') are escaped.\n * Two single quotes in a row, whether inside or outside a quoted sequence, represent a 'real' single quote.\n * (see the last example)\n *\n * Format of the string is based on Unicode Technical Standard #35:\n * https://www.unicode.org/reports/tr35/tr35-dates.html#Date_Field_Symbol_Table\n * with a few additions (see note 7 below the table).\n *\n * Accepted patterns:\n * | Unit | Pattern | Result examples | Notes |\n * |---------------------------------|---------|-----------------------------------|-------|\n * | Era | G..GGG | AD, BC | |\n * | | GGGG | Anno Domini, Before Christ | 2 |\n * | | GGGGG | A, B | |\n * | Calendar year | y | 44, 1, 1900, 2017 | 5 |\n * | | yo | 44th, 1st, 0th, 17th | 5,7 |\n * | | yy | 44, 01, 00, 17 | 5 |\n * | | yyy | 044, 001, 1900, 2017 | 5 |\n * | | yyyy | 0044, 0001, 1900, 2017 | 5 |\n * | | yyyyy | ... | 3,5 |\n * | Local week-numbering year | Y | 44, 1, 1900, 2017 | 5 |\n * | | Yo | 44th, 1st, 1900th, 2017th | 5,7 |\n * | | YY | 44, 01, 00, 17 | 5,8 |\n * | | YYY | 044, 001, 1900, 2017 | 5 |\n * | | YYYY | 0044, 0001, 1900, 2017 | 5,8 |\n * | | YYYYY | ... | 3,5 |\n * | ISO week-numbering year | R | -43, 0, 1, 1900, 2017 | 5,7 |\n * | | RR | -43, 00, 01, 1900, 2017 | 5,7 |\n * | | RRR | -043, 000, 001, 1900, 2017 | 5,7 |\n * | | RRRR | -0043, 0000, 0001, 1900, 2017 | 5,7 |\n * | | RRRRR | ... | 3,5,7 |\n * | Extended year | u | -43, 0, 1, 1900, 2017 | 5 |\n * | | uu | -43, 01, 1900, 2017 | 5 |\n * | | uuu | -043, 001, 1900, 2017 | 5 |\n * | | uuuu | -0043, 0001, 1900, 2017 | 5 |\n * | | uuuuu | ... | 3,5 |\n * | Quarter (formatting) | Q | 1, 2, 3, 4 | |\n * | | Qo | 1st, 2nd, 3rd, 4th | 7 |\n * | | QQ | 01, 02, 03, 04 | |\n * | | QQQ | Q1, Q2, Q3, Q4 | |\n * | | QQQQ | 1st quarter, 2nd quarter, ... | 2 |\n * | | QQQQQ | 1, 2, 3, 4 | 4 |\n * | Quarter (stand-alone) | q | 1, 2, 3, 4 | |\n * | | qo | 1st, 2nd, 3rd, 4th | 7 |\n * | | qq | 01, 02, 03, 04 | |\n * | | qqq | Q1, Q2, Q3, Q4 | |\n * | | qqqq | 1st quarter, 2nd quarter, ... | 2 |\n * | | qqqqq | 1, 2, 3, 4 | 4 |\n * | Month (formatting) | M | 1, 2, ..., 12 | |\n * | | Mo | 1st, 2nd, ..., 12th | 7 |\n * | | MM | 01, 02, ..., 12 | |\n * | | MMM | Jan, Feb, ..., Dec | |\n * | | MMMM | January, February, ..., December | 2 |\n * | | MMMMM | J, F, ..., D | |\n * | Month (stand-alone) | L | 1, 2, ..., 12 | |\n * | | Lo | 1st, 2nd, ..., 12th | 7 |\n * | | LL | 01, 02, ..., 12 | |\n * | | LLL | Jan, Feb, ..., Dec | |\n * | | LLLL | January, February, ..., December | 2 |\n * | | LLLLL | J, F, ..., D | |\n * | Local week of year | w | 1, 2, ..., 53 | |\n * | | wo | 1st, 2nd, ..., 53th | 7 |\n * | | ww | 01, 02, ..., 53 | |\n * | ISO week of year | I | 1, 2, ..., 53 | 7 |\n * | | Io | 1st, 2nd, ..., 53th | 7 |\n * | | II | 01, 02, ..., 53 | 7 |\n * | Day of month | d | 1, 2, ..., 31 | |\n * | | do | 1st, 2nd, ..., 31st | 7 |\n * | | dd | 01, 02, ..., 31 | |\n * | Day of year | D | 1, 2, ..., 365, 366 | 9 |\n * | | Do | 1st, 2nd, ..., 365th, 366th | 7 |\n * | | DD | 01, 02, ..., 365, 366 | 9 |\n * | | DDD | 001, 002, ..., 365, 366 | |\n * | | DDDD | ... | 3 |\n * | Day of week (formatting) | E..EEE | Mon, Tue, Wed, ..., Su | |\n * | | EEEE | Monday, Tuesday, ..., Sunday | 2 |\n * | | EEEEE | M, T, W, T, F, S, S | |\n * | | EEEEEE | Mo, Tu, We, Th, Fr, Su, Sa | |\n * | ISO day of week (formatting) | i | 1, 2, 3, ..., 7 | 7 |\n * | | io | 1st, 2nd, ..., 7th | 7 |\n * | | ii | 01, 02, ..., 07 | 7 |\n * | | iii | Mon, Tue, Wed, ..., Su | 7 |\n * | | iiii | Monday, Tuesday, ..., Sunday | 2,7 |\n * | | iiiii | M, T, W, T, F, S, S | 7 |\n * | | iiiiii | Mo, Tu, We, Th, Fr, Su, Sa | 7 |\n * | Local day of week (formatting) | e | 2, 3, 4, ..., 1 | |\n * | | eo | 2nd, 3rd, ..., 1st | 7 |\n * | | ee | 02, 03, ..., 01 | |\n * | | eee | Mon, Tue, Wed, ..., Su | |\n * | | eeee | Monday, Tuesday, ..., Sunday | 2 |\n * | | eeeee | M, T, W, T, F, S, S | |\n * | | eeeeee | Mo, Tu, We, Th, Fr, Su, Sa | |\n * | Local day of week (stand-alone) | c | 2, 3, 4, ..., 1 | |\n * | | co | 2nd, 3rd, ..., 1st | 7 |\n * | | cc | 02, 03, ..., 01 | |\n * | | ccc | Mon, Tue, Wed, ..., Su | |\n * | | cccc | Monday, Tuesday, ..., Sunday | 2 |\n * | | ccccc | M, T, W, T, F, S, S | |\n * | | cccccc | Mo, Tu, We, Th, Fr, Su, Sa | |\n * | AM, PM | a..aaa | AM, PM | |\n * | | aaaa | a.m., p.m. | 2 |\n * | | aaaaa | a, p | |\n * | AM, PM, noon, midnight | b..bbb | AM, PM, noon, midnight | |\n * | | bbbb | a.m., p.m., noon, midnight | 2 |\n * | | bbbbb | a, p, n, mi | |\n * | Flexible day period | B..BBB | at night, in the morning, ... | |\n * | | BBBB | at night, in the morning, ... | 2 |\n * | | BBBBB | at night, in the morning, ... | |\n * | Hour [1-12] | h | 1, 2, ..., 11, 12 | |\n * | | ho | 1st, 2nd, ..., 11th, 12th | 7 |\n * | | hh | 01, 02, ..., 11, 12 | |\n * | Hour [0-23] | H | 0, 1, 2, ..., 23 | |\n * | | Ho | 0th, 1st, 2nd, ..., 23rd | 7 |\n * | | HH | 00, 01, 02, ..., 23 | |\n * | Hour [0-11] | K | 1, 2, ..., 11, 0 | |\n * | | Ko | 1st, 2nd, ..., 11th, 0th | 7 |\n * | | KK | 1, 2, ..., 11, 0 | |\n * | Hour [1-24] | k | 24, 1, 2, ..., 23 | |\n * | | ko | 24th, 1st, 2nd, ..., 23rd | 7 |\n * | | kk | 24, 01, 02, ..., 23 | |\n * | Minute | m | 0, 1, ..., 59 | |\n * | | mo | 0th, 1st, ..., 59th | 7 |\n * | | mm | 00, 01, ..., 59 | |\n * | Second | s | 0, 1, ..., 59 | |\n * | | so | 0th, 1st, ..., 59th | 7 |\n * | | ss | 00, 01, ..., 59 | |\n * | Fraction of second | S | 0, 1, ..., 9 | |\n * | | SS | 00, 01, ..., 99 | |\n * | | SSS | 000, 0001, ..., 999 | |\n * | | SSSS | ... | 3 |\n * | Timezone (ISO-8601 w/ Z) | X | -08, +0530, Z | |\n * | | XX | -0800, +0530, Z | |\n * | | XXX | -08:00, +05:30, Z | |\n * | | XXXX | -0800, +0530, Z, +123456 | 2 |\n * | | XXXXX | -08:00, +05:30, Z, +12:34:56 | |\n * | Timezone (ISO-8601 w/o Z) | x | -08, +0530, +00 | |\n * | | xx | -0800, +0530, +0000 | |\n * | | xxx | -08:00, +05:30, +00:00 | 2 |\n * | | xxxx | -0800, +0530, +0000, +123456 | |\n * | | xxxxx | -08:00, +05:30, +00:00, +12:34:56 | |\n * | Timezone (GMT) | O...OOO | GMT-8, GMT+5:30, GMT+0 | |\n * | | OOOO | GMT-08:00, GMT+05:30, GMT+00:00 | 2 |\n * | Timezone (specific non-locat.) | z...zzz | GMT-8, GMT+5:30, GMT+0 | 6 |\n * | | zzzz | GMT-08:00, GMT+05:30, GMT+00:00 | 2,6 |\n * | Seconds timestamp | t | 512969520 | 7 |\n * | | tt | ... | 3,7 |\n * | Milliseconds timestamp | T | 512969520900 | 7 |\n * | | TT | ... | 3,7 |\n * | Long localized date | P | 05/29/1453 | 7 |\n * | | PP | May 29, 1453 | 7 |\n * | | PPP | May 29th, 1453 | 7 |\n * | | PPPP | Sunday, May 29th, 1453 | 2,7 |\n * | Long localized time | p | 12:00 AM | 7 |\n * | | pp | 12:00:00 AM | 7 |\n * | | ppp | 12:00:00 AM GMT+2 | 7 |\n * | | pppp | 12:00:00 AM GMT+02:00 | 2,7 |\n * | Combination of date and time | Pp | 05/29/1453, 12:00 AM | 7 |\n * | | PPpp | May 29, 1453, 12:00:00 AM | 7 |\n * | | PPPppp | May 29th, 1453 at ... | 7 |\n * | | PPPPpppp| Sunday, May 29th, 1453 at ... | 2,7 |\n * Notes:\n * 1. \"Formatting\" units (e.g. formatting quarter) in the default en-US locale\n * are the same as \"stand-alone\" units, but are different in some languages.\n * \"Formatting\" units are declined according to the rules of the language\n * in the context of a date. \"Stand-alone\" units are always nominative singular:\n *\n * `format(new Date(2017, 10, 6), 'do LLLL', {locale: cs}) //=> '6. listopad'`\n *\n * `format(new Date(2017, 10, 6), 'do MMMM', {locale: cs}) //=> '6. listopadu'`\n *\n * 2. Any sequence of the identical letters is a pattern, unless it is escaped by\n * the single quote characters (see below).\n * If the sequence is longer than listed in table (e.g. `EEEEEEEEEEE`)\n * the output will be the same as default pattern for this unit, usually\n * the longest one (in case of ISO weekdays, `EEEE`). Default patterns for units\n * are marked with \"2\" in the last column of the table.\n *\n * `format(new Date(2017, 10, 6), 'MMM') //=> 'Nov'`\n *\n * `format(new Date(2017, 10, 6), 'MMMM') //=> 'November'`\n *\n * `format(new Date(2017, 10, 6), 'MMMMM') //=> 'N'`\n *\n * `format(new Date(2017, 10, 6), 'MMMMMM') //=> 'November'`\n *\n * `format(new Date(2017, 10, 6), 'MMMMMMM') //=> 'November'`\n *\n * 3. Some patterns could be unlimited length (such as `yyyyyyyy`).\n * The output will be padded with zeros to match the length of the pattern.\n *\n * `format(new Date(2017, 10, 6), 'yyyyyyyy') //=> '00002017'`\n *\n * 4. `QQQQQ` and `qqqqq` could be not strictly numerical in some locales.\n * These tokens represent the shortest form of the quarter.\n *\n * 5. The main difference between `y` and `u` patterns are B.C. years:\n *\n * | Year | `y` | `u` |\n * |------|-----|-----|\n * | AC 1 | 1 | 1 |\n * | BC 1 | 1 | 0 |\n * | BC 2 | 2 | -1 |\n *\n * Also `yy` always returns the last two digits of a year,\n * while `uu` pads single digit years to 2 characters and returns other years unchanged:\n *\n * | Year | `yy` | `uu` |\n * |------|------|------|\n * | 1 | 01 | 01 |\n * | 14 | 14 | 14 |\n * | 376 | 76 | 376 |\n * | 1453 | 53 | 1453 |\n *\n * The same difference is true for local and ISO week-numbering years (`Y` and `R`),\n * except local week-numbering years are dependent on `options.weekStartsOn`\n * and `options.firstWeekContainsDate` (compare [getISOWeekYear]{@link https://date-fns.org/docs/getISOWeekYear}\n * and [getWeekYear]{@link https://date-fns.org/docs/getWeekYear}).\n *\n * 6. Specific non-location timezones are currently unavailable in `date-fns`,\n * so right now these tokens fall back to GMT timezones.\n *\n * 7. These patterns are not in the Unicode Technical Standard #35:\n * - `i`: ISO day of week\n * - `I`: ISO week of year\n * - `R`: ISO week-numbering year\n * - `t`: seconds timestamp\n * - `T`: milliseconds timestamp\n * - `o`: ordinal number modifier\n * - `P`: long localized date\n * - `p`: long localized time\n *\n * 8. `YY` and `YYYY` tokens represent week-numbering years but they are often confused with years.\n * You should enable `options.useAdditionalWeekYearTokens` to use them. See: https://git.io/fxCyr\n *\n * 9. `D` and `DD` tokens represent days of the year but they are ofthen confused with days of the month.\n * You should enable `options.useAdditionalDayOfYearTokens` to use them. See: https://git.io/fxCyr\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * - The second argument is now required for the sake of explicitness.\n *\n * ```javascript\n * // Before v2.0.0\n * format(new Date(2016, 0, 1))\n *\n * // v2.0.0 onward\n * format(new Date(2016, 0, 1), \"yyyy-MM-dd'T'HH:mm:ss.SSSxxx\")\n * ```\n *\n * - New format string API for `format` function\n * which is based on [Unicode Technical Standard #35](https://www.unicode.org/reports/tr35/tr35-dates.html#Date_Field_Symbol_Table).\n * See [this post](https://blog.date-fns.org/post/unicode-tokens-in-date-fns-v2-sreatyki91jg) for more details.\n *\n * - Characters are now escaped using single quote symbols (`'`) instead of square brackets.\n *\n * @param {Date|Number} date - the original date\n * @param {String} format - the string of tokens\n * @param {Object} [options] - an object with options.\n * @param {Locale} [options.locale=defaultLocale] - the locale object. See [Locale]{@link https://date-fns.org/docs/Locale}\n * @param {0|1|2|3|4|5|6} [options.weekStartsOn=0] - the index of the first day of the week (0 - Sunday)\n * @param {Number} [options.firstWeekContainsDate=1] - the day of January, which is\n * @param {Boolean} [options.useAdditionalWeekYearTokens=false] - if true, allows usage of the week-numbering year tokens `YY` and `YYYY`;\n * see: https://git.io/fxCyr\n * @param {Boolean} [options.useAdditionalDayOfYearTokens=false] - if true, allows usage of the day of year tokens `D` and `DD`;\n * see: https://git.io/fxCyr\n * @returns {String} the formatted date string\n * @throws {TypeError} 2 arguments required\n * @throws {RangeError} `date` must not be Invalid Date\n * @throws {RangeError} `options.locale` must contain `localize` property\n * @throws {RangeError} `options.locale` must contain `formatLong` property\n * @throws {RangeError} `options.weekStartsOn` must be between 0 and 6\n * @throws {RangeError} `options.firstWeekContainsDate` must be between 1 and 7\n * @throws {RangeError} use `yyyy` instead of `YYYY` for formatting years; see: https://git.io/fxCyr\n * @throws {RangeError} use `yy` instead of `YY` for formatting years; see: https://git.io/fxCyr\n * @throws {RangeError} use `d` instead of `D` for formatting days of the month; see: https://git.io/fxCyr\n * @throws {RangeError} use `dd` instead of `DD` for formatting days of the month; see: https://git.io/fxCyr\n * @throws {RangeError} format string contains an unescaped latin alphabet character\n *\n * @example\n * // Represent 11 February 2014 in middle-endian format:\n * var result = format(new Date(2014, 1, 11), 'MM/dd/yyyy')\n * //=> '02/11/2014'\n *\n * @example\n * // Represent 2 July 2014 in Esperanto:\n * import { eoLocale } from 'date-fns/locale/eo'\n * var result = format(new Date(2014, 6, 2), \"do 'de' MMMM yyyy\", {\n * locale: eoLocale\n * })\n * //=> '2-a de julio 2014'\n *\n * @example\n * // Escape string by single quote characters:\n * var result = format(new Date(2014, 6, 2, 15), \"h 'o''clock'\")\n * //=> \"3 o'clock\"\n */\n\nexport default function format(dirtyDate, dirtyFormatStr, dirtyOptions) {\n requiredArgs(2, arguments);\n var formatStr = String(dirtyFormatStr);\n var options = dirtyOptions || {};\n var locale = options.locale || defaultLocale;\n var localeFirstWeekContainsDate = locale.options && locale.options.firstWeekContainsDate;\n var defaultFirstWeekContainsDate = localeFirstWeekContainsDate == null ? 1 : toInteger(localeFirstWeekContainsDate);\n var firstWeekContainsDate = options.firstWeekContainsDate == null ? defaultFirstWeekContainsDate : toInteger(options.firstWeekContainsDate); // Test if weekStartsOn is between 1 and 7 _and_ is not NaN\n\n if (!(firstWeekContainsDate >= 1 && firstWeekContainsDate <= 7)) {\n throw new RangeError('firstWeekContainsDate must be between 1 and 7 inclusively');\n }\n\n var localeWeekStartsOn = locale.options && locale.options.weekStartsOn;\n var defaultWeekStartsOn = localeWeekStartsOn == null ? 0 : toInteger(localeWeekStartsOn);\n var weekStartsOn = options.weekStartsOn == null ? defaultWeekStartsOn : toInteger(options.weekStartsOn); // Test if weekStartsOn is between 0 and 6 _and_ is not NaN\n\n if (!(weekStartsOn >= 0 && weekStartsOn <= 6)) {\n throw new RangeError('weekStartsOn must be between 0 and 6 inclusively');\n }\n\n if (!locale.localize) {\n throw new RangeError('locale must contain localize property');\n }\n\n if (!locale.formatLong) {\n throw new RangeError('locale must contain formatLong property');\n }\n\n var originalDate = toDate(dirtyDate);\n\n if (!isValid(originalDate)) {\n throw new RangeError('Invalid time value');\n } // Convert the date in system timezone to the same date in UTC+00:00 timezone.\n // This ensures that when UTC functions will be implemented, locales will be compatible with them.\n // See an issue about UTC functions: https://github.com/date-fns/date-fns/issues/376\n\n\n var timezoneOffset = getTimezoneOffsetInMilliseconds(originalDate);\n var utcDate = subMilliseconds(originalDate, timezoneOffset);\n var formatterOptions = {\n firstWeekContainsDate: firstWeekContainsDate,\n weekStartsOn: weekStartsOn,\n locale: locale,\n _originalDate: originalDate\n };\n var result = formatStr.match(longFormattingTokensRegExp).map(function (substring) {\n var firstCharacter = substring[0];\n\n if (firstCharacter === 'p' || firstCharacter === 'P') {\n var longFormatter = longFormatters[firstCharacter];\n return longFormatter(substring, locale.formatLong, formatterOptions);\n }\n\n return substring;\n }).join('').match(formattingTokensRegExp).map(function (substring) {\n // Replace two single quote characters with one single quote character\n if (substring === \"''\") {\n return \"'\";\n }\n\n var firstCharacter = substring[0];\n\n if (firstCharacter === \"'\") {\n return cleanEscapedString(substring);\n }\n\n var formatter = formatters[firstCharacter];\n\n if (formatter) {\n if (!options.useAdditionalWeekYearTokens && isProtectedWeekYearToken(substring)) {\n throwProtectedError(substring);\n }\n\n if (!options.useAdditionalDayOfYearTokens && isProtectedDayOfYearToken(substring)) {\n throwProtectedError(substring);\n }\n\n return formatter(utcDate, substring, locale.localize, formatterOptions);\n }\n\n if (firstCharacter.match(unescapedLatinCharacterRegExp)) {\n throw new RangeError('Format string contains an unescaped latin alphabet character `' + firstCharacter + '`');\n }\n\n return substring;\n }).join('');\n return result;\n}\n\nfunction cleanEscapedString(input) {\n return input.match(escapedStringRegExp)[1].replace(doubleQuoteRegExp, \"'\");\n}","import toDate from '../toDate/index.js';\nimport requiredArgs from '../_lib/requiredArgs/index.js';\n/**\n * @name isValid\n * @category Common Helpers\n * @summary Is the given date valid?\n *\n * @description\n * Returns false if argument is Invalid Date and true otherwise.\n * Argument is converted to Date using `toDate`. See [toDate]{@link https://date-fns.org/docs/toDate}\n * Invalid Date is a Date, whose time value is NaN.\n *\n * Time value of Date: http://es5.github.io/#x15.9.1.1\n *\n * ### v2.0.0 breaking changes:\n *\n * - [Changes that are common for the whole library](https://github.com/date-fns/date-fns/blob/master/docs/upgradeGuide.md#Common-Changes).\n *\n * - Now `isValid` doesn't throw an exception\n * if the first argument is not an instance of Date.\n * Instead, argument is converted beforehand using `toDate`.\n *\n * Examples:\n *\n * | `isValid` argument | Before v2.0.0 | v2.0.0 onward |\n * |---------------------------|---------------|---------------|\n * | `new Date()` | `true` | `true` |\n * | `new Date('2016-01-01')` | `true` | `true` |\n * | `new Date('')` | `false` | `false` |\n * | `new Date(1488370835081)` | `true` | `true` |\n * | `new Date(NaN)` | `false` | `false` |\n * | `'2016-01-01'` | `TypeError` | `false` |\n * | `''` | `TypeError` | `false` |\n * | `1488370835081` | `TypeError` | `true` |\n * | `NaN` | `TypeError` | `false` |\n *\n * We introduce this change to make *date-fns* consistent with ECMAScript behavior\n * that try to coerce arguments to the expected type\n * (which is also the case with other *date-fns* functions).\n *\n * @param {*} date - the date to check\n * @returns {Boolean} the date is valid\n * @throws {TypeError} 1 argument required\n *\n * @example\n * // For the valid date:\n * var result = isValid(new Date(2014, 1, 31))\n * //=> true\n *\n * @example\n * // For the value, convertable into a date:\n * var result = isValid(1393804800000)\n * //=> true\n *\n * @example\n * // For the invalid date:\n * var result = isValid(new Date(''))\n * //=> false\n */\n\nexport default function isValid(dirtyDate) {\n requiredArgs(1, arguments);\n var date = toDate(dirtyDate);\n return !isNaN(date);\n}","/**\n * @summary validation-function\n *\n * @version 3.0.0\n * @since 1.0.0\n * @author Arian Khosravi \n */\n\n/**\n * ValidationFunction implementation\n *\n * @memberof module:@aofl/form-validate\n */\nclass ValidationFunction {\n /**\n * Creates an instance of ValidationFunction.\n *\n * @param {Object} target\n * @param {Object} validatorFn\n * @param {String} path\n */\n constructor(target, validatorFn, path) {\n Object.defineProperties(this, {\n target: {\n value: target\n },\n propName: {\n value: path\n },\n resolve: {\n writable: true\n },\n cachedPromise: {\n writable: true\n },\n validateCompletePromise: {\n writable: true\n },\n valid: {\n writable: true\n },\n observed: {\n writable: true\n },\n pending: {\n writable: true\n },\n validatorFn: {\n value: validatorFn\n }\n });\n\n this.reset();\n }\n\n /**\n *\n */\n reset() {\n this.cachedPromise = null;\n this.resolve = null;\n this.valid = true;\n this.observed = false;\n this.pending = false;\n this.validateCompletePromise = null;\n }\n\n /**\n *\n *\n */\n validate() {\n this.observed = true;\n let target = this.target; // @todo: move to object utils\n const propChain = this.propName.split('.');\n\n for (let i = 0; i < propChain.length - 1; i++) {\n target = target[propChain[i]];\n }\n\n const promise = Promise.resolve(this.validatorFn(target));\n\n this.cachedPromise = promise;\n\n if (this.pending === false) {\n this.validateCompletePromise = new Promise((resolve) => {\n this.resolve = resolve;\n });\n }\n\n this.pending = true;\n promise\n .then((valid) => {\n if (this.cachedPromise === promise) { // latest update\n this.valid = valid;\n this.pending = false;\n this.resolve();\n this.target.requestUpdate();\n }\n });\n }\n\n /**\n * @type {Promise}\n */\n get validateComplete() {\n return this.validateCompletePromise;\n }\n\n /* istanbul ignore next */\n /**\n *\n * @return {Array}\n */\n getKeys() {\n const keys = ['valid', 'pending', 'observed'];\n for (const key in this) {\n if (!Object.prototype.hasOwnProperty.call(this, key)) continue;\n keys.push(key);\n }\n return keys;\n }\n\n /* istanbul ignore next */\n /**\n * @return {String}\n */\n toString() {\n const keys = this.getKeys();\n return JSON.stringify(this, keys, 2);\n }\n}\n\nexport {\n ValidationFunction\n};\n","/**\n * @summary validation-property\n * @version 3.0.0\n * @since 1.0.0\n * @author Arian Khosravi \n */\nimport {ValidationFunction} from './validation-function';\n\n/**\n * ValidationProperty implementation\n *\n * @memberof module:@aofl/form-validate\n */\nclass ValidationProperty {\n /**\n * Creates an instance of ValidationProperty.\n *\n * @param {Object} target\n * @param {Object} validators\n * @param {String} _propName\n */\n constructor(target, validators, _propName = '') {\n Object.defineProperty(this, 'resolve', {\n writable: true\n });\n Object.defineProperty(this, 'validateCompleteResolved', {\n writable: true\n });\n Object.defineProperty(this, 'validateCompletePromise', {\n writable: true\n });\n\n for (const key in validators) {\n /* istanbul ignore next */\n if (!Object.prototype.hasOwnProperty.call(validators, key)) continue;\n /* istanbul ignore next */\n if (Object.prototype.hasOwnProperty.call(this, key)) {\n throw new Error(`${key} is a reserved keyword and cannot be used as a validator name.`);\n }\n\n let propName = _propName; // @todo: move to object-utils\n if (propName.length === 0) {\n propName = key;\n } else {\n propName += '.' + key;\n }\n\n if (typeof validators[key] === 'function') {\n this[key] = new ValidationFunction(target, validators[key], propName);\n } else {\n this[key] = new ValidationProperty(target, validators[key], propName);\n }\n }\n\n this.reset();\n }\n\n /**\n *\n */\n reset() {\n this.validateCompletePromise = new Promise((resolve) => {\n this.resolve = resolve;\n });\n this.validateCompleteResolved = false;\n\n for (const key in this) {\n /* istanbul ignore next */\n if (!Object.prototype.hasOwnProperty.call(this, key) ||\n !(this[key] instanceof ValidationProperty || this[key] instanceof ValidationFunction)) continue;\n\n this[key].reset();\n }\n }\n\n /**\n *\n * @readonly\n * @type {Boolean}\n */\n get valid() {\n for (const key in this) {\n /* istanbul ignore next */\n if (!Object.prototype.hasOwnProperty.call(this, key) ||\n !(this[key] instanceof ValidationProperty || this[key] instanceof ValidationFunction)) continue;\n\n if (this[key].valid === false) {\n return false;\n }\n }\n return true;\n }\n\n /**\n *\n * @readonly\n * @type {Boolean}\n */\n get pending() {\n for (const key in this) {\n /* istanbul ignore next */\n if (!Object.prototype.hasOwnProperty.call(this, key) ||\n !(this[key] instanceof ValidationProperty || this[key] instanceof ValidationFunction)) continue;\n\n if (this[key].pending === true) {\n return true;\n }\n }\n return false;\n }\n\n /**\n *\n * @readonly\n * @type {Boolean}\n */\n get observed() {\n for (const key in this) {\n /* istanbul ignore next */\n if (!Object.prototype.hasOwnProperty.call(this, key) ||\n !(this[key] instanceof ValidationProperty || this[key] instanceof ValidationFunction)) continue;\n\n if (this[key].observed === true) {\n return true;\n }\n }\n return false;\n }\n\n /**\n *\n *\n */\n validate() {\n for (const key in this) {\n /* istanbul ignore next */\n if (!Object.prototype.hasOwnProperty.call(this, key) ||\n !(this[key] instanceof ValidationProperty || this[key] instanceof ValidationFunction)) continue;\n\n this[key].validate();\n }\n }\n\n /**\n *\n * @readonly\n * @type {Promise}\n */\n get validateComplete() {\n if (this.pending && this.validateCompleteResolved) {\n this.validateCompleteResolved = false;\n this.validateCompletePromise = new Promise((resolve) => {\n this.resolve = resolve;\n });\n }\n\n const checkPendingPromises = () => {\n const promises = Object.keys(this).map((item) => this[item].validateComplete);\n Promise.all(promises)\n .then(() => {\n if (this.pending) {\n return checkPendingPromises();\n }\n\n this.resolve();\n this.validateCompleteResolved = true;\n });\n };\n\n checkPendingPromises();\n return this.validateCompletePromise;\n }\n\n /* istanbul ignore next */\n /**\n *\n * @return {Array}\n */\n getKeys() {\n const keys = ['valid', 'pending', 'observed'];\n for (const key in this) {\n /* istanbul ignore next */\n if (!Object.prototype.hasOwnProperty.call(this, key)) continue;\n keys.push(key);\n keys.push(...this[key].getKeys());\n }\n return keys;\n }\n\n /* istanbul ignore next */\n /**\n * @return {String}\n */\n toString() {\n const keys = this.getKeys();\n return JSON.stringify(this, keys, 2);\n }\n}\n\nexport {\n ValidationProperty\n};\n","module.exports = \"\"","exports = module.exports = require(\"../../../node_modules/css-loader/dist/runtime/api.js\")(false);\n// Imports\nvar getUrl = require(\"../../../node_modules/css-loader/dist/runtime/getUrl.js\");\nvar ___CSS_LOADER_URL___0___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-light.woff2\"));\nvar ___CSS_LOADER_URL___1___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-lightit.woff2\"));\nvar ___CSS_LOADER_URL___2___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-reg.woff2\"));\nvar ___CSS_LOADER_URL___3___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-regit.woff2\"));\nvar ___CSS_LOADER_URL___4___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-sbold.woff2\"));\nvar ___CSS_LOADER_URL___5___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-sboldit.woff2\"));\nvar ___CSS_LOADER_URL___6___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-bold.woff2\"));\nvar ___CSS_LOADER_URL___7___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-boldit.woff2\"));\nvar ___CSS_LOADER_URL___8___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-Light.woff2\"));\nvar ___CSS_LOADER_URL___9___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-LightIt.woff2\"));\nvar ___CSS_LOADER_URL___10___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-Regular.woff2\"));\nvar ___CSS_LOADER_URL___11___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-RegularIt.woff2\"));\nvar ___CSS_LOADER_URL___12___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-Semibold.woff2\"));\nvar ___CSS_LOADER_URL___13___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-SemiboldIt.woff2\"));\nvar ___CSS_LOADER_URL___14___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-Bold.woff2\"));\nvar ___CSS_LOADER_URL___15___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-BoldIt.woff2\"));\nvar ___CSS_LOADER_URL___16___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-ExtraBold.woff2\"));\nvar ___CSS_LOADER_URL___17___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-ExtraBoldIt.woff2\"));\nvar ___CSS_LOADER_URL___18___ = getUrl(require(\"../../template/main/fonts/aofl-icons/icomoon.woff2?c6f21u\"));\n// Module\nexports.push([module.id, \"/*! @aofl-component */:root{--blue:#0d6efd;--indigo:#6610f2;--purple:#8b42ca;--pink:#e83e8c;--red:#e50b0a;--orange:#e17a05;--yellow:#ffc107;--green:#3c8104;--teal:#20c997;--cyan:#53c9dc;--white:#fff;--gray:#6b6b6b;--gray-dark:#343a40;--light-green:#b1dd53;--table-border-color:#d8d8d8;--gray-100:#f2f2f2;--gray-200:#d9d9d9;--gray-300:#d8d8d8;--gray-400:#ced4da;--gray-500:#adb5bd;--gray-600:#6c757d;--gray-700:#4a4a4a;--gray-800:#343a40;--gray-900:#212529;--gray-accessibility:#6b6b6b;--primary:#0d6efd;--secondary:#adb5bd;--success:#3c8104;--info:#cfe2ff;--warning:#e17a05;--danger:#d20a09;--light:#f8f9fa;--dark:#000;--breakpoint-xxs:0;--breakpoint-xs:375px;--breakpoint-sm:576px;--breakpoint-md:768px;--breakpoint-lg:992px;--breakpoint-xl:1200px;--font-family-sans-serif:aofl-sans,Arial,Helvetica,sans-serif;--font-family-monospace:SFMono-Regular,Menlo,Monaco,Consolas,\\\"Liberation Mono\\\",\\\"Courier New\\\",monospace;--z-index-dropdown:1000;--z-index-sticky:1020;--z-index-fixed:1030;--z-index-modal-backdrop:1040;--z-index-modal:1050;--z-index-popover:1060;--z-index-tooltip:1070;--header-height:6rem;--content-height:calc(100vh - 6rem);--sidepanel-width:20rem;--purple-color:#641da3;--purple-600:#956abc;--purple-400:#c7afdd;--purple-200:#e0d2ed;--struggling:#f6993b;--below-target:#ffcf00;--in_progress:#1280f5;--prior_knowledge:#edf887;--mastery_achieved:#69d112;--inactive:#d8d8d8}route-view{max-width:1200px}@font-face{font-family:aofl-sans;font-style:normal;font-weight:300;src:url(\" + ___CSS_LOADER_URL___0___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:italic;font-weight:300;src:url(\" + ___CSS_LOADER_URL___1___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:normal;font-weight:400;src:url(\" + ___CSS_LOADER_URL___2___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:italic;font-weight:400;src:url(\" + ___CSS_LOADER_URL___3___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:normal;font-weight:600;src:url(\" + ___CSS_LOADER_URL___4___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:italic;font-weight:600;src:url(\" + ___CSS_LOADER_URL___5___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:normal;font-weight:700;src:url(\" + ___CSS_LOADER_URL___6___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:italic;font-weight:700;src:url(\" + ___CSS_LOADER_URL___7___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:normal;font-weight:300;src:url(\" + ___CSS_LOADER_URL___8___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:italic;font-weight:300;src:url(\" + ___CSS_LOADER_URL___9___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:normal;font-weight:400;src:url(\" + ___CSS_LOADER_URL___10___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:italic;font-weight:400;src:url(\" + ___CSS_LOADER_URL___11___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:normal;font-weight:600;src:url(\" + ___CSS_LOADER_URL___12___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:italic;font-weight:600;src:url(\" + ___CSS_LOADER_URL___13___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:normal;font-weight:700;src:url(\" + ___CSS_LOADER_URL___14___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:italic;font-weight:700;src:url(\" + ___CSS_LOADER_URL___15___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:normal;font-weight:800;src:url(\" + ___CSS_LOADER_URL___16___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:italic;font-weight:800;src:url(\" + ___CSS_LOADER_URL___17___ + \") format(\\\"woff2\\\")}@font-face{font-family:icomoon;src:url(\" + ___CSS_LOADER_URL___18___ + \") format(\\\"woff2\\\");font-weight:400;font-style:normal;font-display:block}[class*=\\\" ai-\\\"],[class^=ai-]{font-family:icomoon!important;speak:never;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*,:after,:before{box-sizing:border-box}html{font-family:sans-serif;line-height:1.15;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:rgba(0,0,0,0)}figcaption,main,nav,section{display:block}[tabindex=\\\"-1\\\"]:focus{outline:0!important}strong{font-weight:bolder}caption{padding-top:.75rem;padding-bottom:.75rem;color:#6c757d;text-align:left;caption-side:bottom}button{border-radius:0}button:focus{outline:1px dotted;outline:5px auto -webkit-focus-ring-color}button,input{margin:0;font-family:inherit;font-size:inherit;line-height:inherit;overflow:visible}button{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]:not(:disabled),[type=reset]:not(:disabled),[type=submit]:not(:disabled),button:not(:disabled){cursor:pointer}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{padding:0;border-style:none}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}input[type=date],input[type=datetime-local],input[type=month],input[type=time]{-webkit-appearance:listbox}legend{display:block;width:100%;max-width:100%;padding:0;margin-bottom:.5rem;font-size:1.5rem;line-height:inherit;color:inherit;white-space:normal}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:none}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}summary{display:list-item;cursor:pointer}template{display:none}[hidden]{display:none!important}*{-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important}html{font-size:62.5%;height:100%}link-to{color:#0d6efd;text-decoration:none;background-color:transparent}link-to:hover{color:rgb(0,86.1,178.5);text-decoration:none;cursor:pointer}route-view{display:none;flex:1}site-header{background-color:#fff;display:none;position:-webkit-sticky;position:sticky;top:0;height:var(--header-height)}#main{display:none;flex:1 auto;max-width:100%;overflow:hidden;flex-direction:column;overflow-y:scroll}.loaded #main,.loaded site-header,body.loaded,route-view.loaded{display:flex}route-view.left-panel-active{padding-left:var(--sidepanel-width)}input[type=checkbox],input[type=radio]{cursor:pointer}button,button:active{outline:none}[tabindex=\\\"0\\\"]:focus-visible,aofl-list-option:focus-visible,button[type=button]:focus-visible,collapse-button:focus-visible{outline:1px solid #e50b0a;border:1px solid #e50b0a}@keyframes progress-bar-stripes{0%{background-position:1.6rem 0}to{background-position:0 0}}.modal-container{background-color:rgba(0,0,0,.2);position:fixed;top:0;bottom:0;right:0;left:0;z-index:var(--z-index-modal)}.modal-container :first-child{overflow:auto}.modal{position:relative;display:block;height:100vh}.modal-dialog-centered.modal-dialog-scrollable{height:auto;max-height:calc(100% - 2.8rem);min-height:auto}.modal-body,.modal-content,.modal-footer,.modal-header{border:none}.modal-header{font-size:2rem;padding:2.4rem}.modal-body{padding:0 2.4rem 4.8rem}.colored-header{color:#fff}.modal-body p{text-align:left}.colored-header-primary{background-color:#0d6efd}.colored-header-secondary{background-color:#adb5bd}.colored-header-success{background-color:#3c8104}.colored-header-info{background-color:#cfe2ff}.colored-header-warning{background-color:#e17a05}.colored-header-danger{background-color:#d20a09}.colored-header-light{background-color:#f8f9fa}.colored-header-dark{background-color:#000}@keyframes spinner-border{to{transform:rotate(1turn)}}@keyframes spinner-grow{0%{transform:scale(0)}50%{opacity:1}}[hidden]{visibility:hidden!important;height:0!important;width:0!important;min-height:unset!important}@media print{*,:after,:before{text-shadow:none!important;box-shadow:none!important}@page{size:a3}}@media print{main::-webkit-scrollbar{display:none}main{-ms-overflow-style:none;scrollbar-width:none}}@page{size:A4;margin:20mm 16mm 20mm 16mm}:host{display:inline-block}\", \"\"]);\n","import '../dropdown';\nimport {until} from 'lit-html/directives/until';\n\nexport default (ctx, html) => html`\n \n \n
\n ${ctx.selections.map((item, itemIndex) => html`\n \n `)}\n
\n
\n`;\n","import styles from './template.css';\nimport template from './template';\nimport {AoflElement, customElement, property} from '@aofl/element';\nimport {storeInstance} from '@aofl/store/dist/legacy';\nimport {i18nMixin} from '@aofl/i18n-mixin';\nimport {sdoNs} from '@modules/constants-enumerate';\nimport translations from '@modules/i18n';\n\nconst setTranslations = (ctx) => {\n return {\n selections: [\n {\n label: ctx.__('', 'Select Class Assignment'),\n value: ''\n },\n {\n label: ctx.__('', 'Assigned to a Class'),\n value: 'assigned'\n },\n {\n label: ctx.__('', 'NOT assigned to a Class'),\n value: 'not_assigned'\n }\n ]\n };\n};\n\n/**\n * @summary UserSearchClassAssignmentFilters\n * @extends {AoflElement}\n */\n@customElement('user-search-class-assignment-filters')\nclass UserSearchClassAssignmentFilters extends i18nMixin(AoflElement) {\n /**\n * Creates an instance of UserSearchClassAssignmentFilters.\n */\n constructor() {\n super();\n this.storeInstance = storeInstance;\n this.translations = translations;\n }\n\n /**\n * @readonly\n */\n static is = 'user-search-class-assignment-filters';\n\n @property({type: Array})\n selections = [];\n\n @property({type: Number})\n currentClassAssignmentSelectionLabel = '';\n selectOption(index) {\n this.currentClassAssignmentSelectionLabel = this.selections[index].label;\n\n this.storeInstance.commit(\n {\n namespace: sdoNs.USER_SEARCH,\n mutationId: 'setClassAssignment',\n payload: this.selections[index].value\n }\n );\n\n this.dispatchEvent(new CustomEvent('changed', {\n composed: true,\n bubbles: true\n }));\n }\n\n async connectedCallback() {\n super.connectedCallback();\n const state = this.storeInstance.getState();\n\n const t10s = setTranslations(this);\n for (const index in t10s) {\n this[index] = t10s[index];\n }\n\n this.currentClassAssignmentSelectionLabel = this.selections[0].label;\n\n if (state[sdoNs.USER_SEARCH].pendingFilters.class_assigned) {\n const labelIndex = this.selections.findIndex((element) => {\n return element.value === state[sdoNs.USER_SEARCH].pendingFilters.class_assigned;\n });\n this.currentClassAssignmentSelectionLabel = this.selections[labelIndex].label;\n }\n }\n\n /**\n *\n * @return {Object}\n */\n render() {\n return super.render({\n default: {\n template,\n styles: [styles]\n }\n });\n }\n}\n\nexport {\n UserSearchClassAssignmentFilters\n};\n\n","exports = module.exports = require(\"../../../node_modules/css-loader/dist/runtime/api.js\")(false);\n// Imports\nvar getUrl = require(\"../../../node_modules/css-loader/dist/runtime/getUrl.js\");\nvar ___CSS_LOADER_URL___0___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-light.woff2\"));\nvar ___CSS_LOADER_URL___1___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-lightit.woff2\"));\nvar ___CSS_LOADER_URL___2___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-reg.woff2\"));\nvar ___CSS_LOADER_URL___3___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-regit.woff2\"));\nvar ___CSS_LOADER_URL___4___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-sbold.woff2\"));\nvar ___CSS_LOADER_URL___5___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-sboldit.woff2\"));\nvar ___CSS_LOADER_URL___6___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-bold.woff2\"));\nvar ___CSS_LOADER_URL___7___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-boldit.woff2\"));\nvar ___CSS_LOADER_URL___8___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-Light.woff2\"));\nvar ___CSS_LOADER_URL___9___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-LightIt.woff2\"));\nvar ___CSS_LOADER_URL___10___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-Regular.woff2\"));\nvar ___CSS_LOADER_URL___11___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-RegularIt.woff2\"));\nvar ___CSS_LOADER_URL___12___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-Semibold.woff2\"));\nvar ___CSS_LOADER_URL___13___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-SemiboldIt.woff2\"));\nvar ___CSS_LOADER_URL___14___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-Bold.woff2\"));\nvar ___CSS_LOADER_URL___15___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-BoldIt.woff2\"));\nvar ___CSS_LOADER_URL___16___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-ExtraBold.woff2\"));\nvar ___CSS_LOADER_URL___17___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-ExtraBoldIt.woff2\"));\nvar ___CSS_LOADER_URL___18___ = getUrl(require(\"../../template/main/fonts/aofl-icons/icomoon.woff2?c6f21u\"));\n// Module\nexports.push([module.id, \"/*! @aofl-component */:root{--blue:#0d6efd;--indigo:#6610f2;--purple:#8b42ca;--pink:#e83e8c;--red:#e50b0a;--orange:#e17a05;--yellow:#ffc107;--green:#3c8104;--teal:#20c997;--cyan:#53c9dc;--white:#fff;--gray:#6b6b6b;--gray-dark:#343a40;--light-green:#b1dd53;--table-border-color:#d8d8d8;--gray-100:#f2f2f2;--gray-200:#d9d9d9;--gray-300:#d8d8d8;--gray-400:#ced4da;--gray-500:#adb5bd;--gray-600:#6c757d;--gray-700:#4a4a4a;--gray-800:#343a40;--gray-900:#212529;--gray-accessibility:#6b6b6b;--primary:#0d6efd;--secondary:#adb5bd;--success:#3c8104;--info:#cfe2ff;--warning:#e17a05;--danger:#d20a09;--light:#f8f9fa;--dark:#000;--breakpoint-xxs:0;--breakpoint-xs:375px;--breakpoint-sm:576px;--breakpoint-md:768px;--breakpoint-lg:992px;--breakpoint-xl:1200px;--font-family-sans-serif:aofl-sans,Arial,Helvetica,sans-serif;--font-family-monospace:SFMono-Regular,Menlo,Monaco,Consolas,\\\"Liberation Mono\\\",\\\"Courier New\\\",monospace;--z-index-dropdown:1000;--z-index-sticky:1020;--z-index-fixed:1030;--z-index-modal-backdrop:1040;--z-index-modal:1050;--z-index-popover:1060;--z-index-tooltip:1070;--header-height:6rem;--content-height:calc(100vh - 6rem);--sidepanel-width:20rem;--purple-color:#641da3;--purple-600:#956abc;--purple-400:#c7afdd;--purple-200:#e0d2ed;--struggling:#f6993b;--below-target:#ffcf00;--in_progress:#1280f5;--prior_knowledge:#edf887;--mastery_achieved:#69d112;--inactive:#d8d8d8}route-view{max-width:1200px}@font-face{font-family:aofl-sans;font-style:normal;font-weight:300;src:url(\" + ___CSS_LOADER_URL___0___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:italic;font-weight:300;src:url(\" + ___CSS_LOADER_URL___1___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:normal;font-weight:400;src:url(\" + ___CSS_LOADER_URL___2___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:italic;font-weight:400;src:url(\" + ___CSS_LOADER_URL___3___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:normal;font-weight:600;src:url(\" + ___CSS_LOADER_URL___4___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:italic;font-weight:600;src:url(\" + ___CSS_LOADER_URL___5___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:normal;font-weight:700;src:url(\" + ___CSS_LOADER_URL___6___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:italic;font-weight:700;src:url(\" + ___CSS_LOADER_URL___7___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:normal;font-weight:300;src:url(\" + ___CSS_LOADER_URL___8___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:italic;font-weight:300;src:url(\" + ___CSS_LOADER_URL___9___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:normal;font-weight:400;src:url(\" + ___CSS_LOADER_URL___10___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:italic;font-weight:400;src:url(\" + ___CSS_LOADER_URL___11___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:normal;font-weight:600;src:url(\" + ___CSS_LOADER_URL___12___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:italic;font-weight:600;src:url(\" + ___CSS_LOADER_URL___13___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:normal;font-weight:700;src:url(\" + ___CSS_LOADER_URL___14___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:italic;font-weight:700;src:url(\" + ___CSS_LOADER_URL___15___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:normal;font-weight:800;src:url(\" + ___CSS_LOADER_URL___16___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:italic;font-weight:800;src:url(\" + ___CSS_LOADER_URL___17___ + \") format(\\\"woff2\\\")}@font-face{font-family:icomoon;src:url(\" + ___CSS_LOADER_URL___18___ + \") format(\\\"woff2\\\");font-weight:400;font-style:normal;font-display:block}[class*=\\\" ai-\\\"],[class^=ai-]{font-family:icomoon!important;speak:never;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*,:after,:before{box-sizing:border-box}html{font-family:sans-serif;line-height:1.15;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:rgba(0,0,0,0)}figcaption,main,nav,section{display:block}[tabindex=\\\"-1\\\"]:focus{outline:0!important}strong{font-weight:bolder}img{vertical-align:middle;border-style:none}caption{padding-top:.75rem;padding-bottom:.75rem;color:#6c757d;text-align:left;caption-side:bottom}button{border-radius:0}button:focus{outline:1px dotted;outline:5px auto -webkit-focus-ring-color}button,input{margin:0;font-family:inherit;font-size:inherit;line-height:inherit;overflow:visible}button{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]:not(:disabled),[type=reset]:not(:disabled),[type=submit]:not(:disabled),button:not(:disabled){cursor:pointer}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{padding:0;border-style:none}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}input[type=date],input[type=datetime-local],input[type=month],input[type=time]{-webkit-appearance:listbox}legend{display:block;width:100%;max-width:100%;padding:0;margin-bottom:.5rem;font-size:1.5rem;line-height:inherit;color:inherit;white-space:normal}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:none}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}summary{display:list-item;cursor:pointer}template{display:none}[hidden]{display:none!important}*{-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important}html{font-size:62.5%;height:100%}link-to{color:#0d6efd;text-decoration:none;background-color:transparent}link-to:hover{color:rgb(0,86.1,178.5);text-decoration:none;cursor:pointer}route-view{display:none;flex:1}site-header{background-color:#fff;display:none;position:-webkit-sticky;position:sticky;top:0;height:var(--header-height)}#main{display:none;flex:1 auto;max-width:100%;overflow:hidden;flex-direction:column;overflow-y:scroll}.loaded #main,.loaded site-header,body.loaded,route-view.loaded{display:flex}route-view.left-panel-active{padding-left:var(--sidepanel-width)}input[type=checkbox],input[type=radio]{cursor:pointer}button,button:active{outline:none}[tabindex=\\\"0\\\"]:focus-visible,aofl-list-option:focus-visible,button[type=button]:focus-visible,collapse-button:focus-visible{outline:1px solid #e50b0a;border:1px solid #e50b0a}@keyframes progress-bar-stripes{0%{background-position:1.6rem 0}to{background-position:0 0}}.modal-container{background-color:rgba(0,0,0,.2);position:fixed;top:0;bottom:0;right:0;left:0;z-index:var(--z-index-modal)}.modal-container :first-child{overflow:auto}.modal{position:relative;display:block;height:100vh}.modal-dialog-centered.modal-dialog-scrollable{height:auto;max-height:calc(100% - 2.8rem);min-height:auto}.modal-body,.modal-content,.modal-footer,.modal-header{border:none}.modal-header{font-size:2rem;padding:2.4rem}.modal-body{padding:0 2.4rem 4.8rem}.colored-header{color:#fff}.modal-body p{text-align:left}.colored-header-primary{background-color:#0d6efd}.colored-header-secondary{background-color:#adb5bd}.colored-header-success{background-color:#3c8104}.colored-header-info{background-color:#cfe2ff}.colored-header-warning{background-color:#e17a05}.colored-header-danger{background-color:#d20a09}.colored-header-light{background-color:#f8f9fa}.colored-header-dark{background-color:#000}@keyframes spinner-border{to{transform:rotate(1turn)}}@keyframes spinner-grow{0%{transform:scale(0)}50%{opacity:1}}.overlay{background-color:rgba(0,0,0,.1);display:none;position:fixed;top:0;bottom:0;right:0;left:0;z-index:var(--z-index-modal-backdrop)}.position-relative{position:relative!important}.position-absolute{position:absolute!important}[hidden]{visibility:hidden!important;height:0!important;width:0!important;min-height:unset!important}@media print{*,:after,:before{text-shadow:none!important;box-shadow:none!important}img{page-break-inside:avoid}@page{size:a3}}@media print{main::-webkit-scrollbar{display:none}main{-ms-overflow-style:none;scrollbar-width:none}}@page{size:A4;margin:20mm 16mm 20mm 16mm}:host{display:inline-block}.chart-wrapper{position:relative;width:100%;max-width:100%}.chart-overlay{width:100%;height:100%;top:0;pointer-events:none}\", \"\"]);\n","exports = module.exports = require(\"../../../node_modules/css-loader/dist/runtime/api.js\")(false);\n// Imports\nvar getUrl = require(\"../../../node_modules/css-loader/dist/runtime/getUrl.js\");\nvar ___CSS_LOADER_URL___0___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-light.woff2\"));\nvar ___CSS_LOADER_URL___1___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-lightit.woff2\"));\nvar ___CSS_LOADER_URL___2___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-reg.woff2\"));\nvar ___CSS_LOADER_URL___3___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-regit.woff2\"));\nvar ___CSS_LOADER_URL___4___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-sbold.woff2\"));\nvar ___CSS_LOADER_URL___5___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-sboldit.woff2\"));\nvar ___CSS_LOADER_URL___6___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-bold.woff2\"));\nvar ___CSS_LOADER_URL___7___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-boldit.woff2\"));\nvar ___CSS_LOADER_URL___8___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-Light.woff2\"));\nvar ___CSS_LOADER_URL___9___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-LightIt.woff2\"));\nvar ___CSS_LOADER_URL___10___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-Regular.woff2\"));\nvar ___CSS_LOADER_URL___11___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-RegularIt.woff2\"));\nvar ___CSS_LOADER_URL___12___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-Semibold.woff2\"));\nvar ___CSS_LOADER_URL___13___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-SemiboldIt.woff2\"));\nvar ___CSS_LOADER_URL___14___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-Bold.woff2\"));\nvar ___CSS_LOADER_URL___15___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-BoldIt.woff2\"));\nvar ___CSS_LOADER_URL___16___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-ExtraBold.woff2\"));\nvar ___CSS_LOADER_URL___17___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-ExtraBoldIt.woff2\"));\nvar ___CSS_LOADER_URL___18___ = getUrl(require(\"../../template/main/fonts/aofl-icons/icomoon.woff2?c6f21u\"));\n// Module\nexports.push([module.id, \"/*! @aofl-component */:root{--blue:#0d6efd;--indigo:#6610f2;--purple:#8b42ca;--pink:#e83e8c;--red:#e50b0a;--orange:#e17a05;--yellow:#ffc107;--green:#3c8104;--teal:#20c997;--cyan:#53c9dc;--white:#fff;--gray:#6b6b6b;--gray-dark:#343a40;--light-green:#b1dd53;--table-border-color:#d8d8d8;--gray-100:#f2f2f2;--gray-200:#d9d9d9;--gray-300:#d8d8d8;--gray-400:#ced4da;--gray-500:#adb5bd;--gray-600:#6c757d;--gray-700:#4a4a4a;--gray-800:#343a40;--gray-900:#212529;--gray-accessibility:#6b6b6b;--primary:#0d6efd;--secondary:#adb5bd;--success:#3c8104;--info:#cfe2ff;--warning:#e17a05;--danger:#d20a09;--light:#f8f9fa;--dark:#000;--breakpoint-xxs:0;--breakpoint-xs:375px;--breakpoint-sm:576px;--breakpoint-md:768px;--breakpoint-lg:992px;--breakpoint-xl:1200px;--font-family-sans-serif:aofl-sans,Arial,Helvetica,sans-serif;--font-family-monospace:SFMono-Regular,Menlo,Monaco,Consolas,\\\"Liberation Mono\\\",\\\"Courier New\\\",monospace;--z-index-dropdown:1000;--z-index-sticky:1020;--z-index-fixed:1030;--z-index-modal-backdrop:1040;--z-index-modal:1050;--z-index-popover:1060;--z-index-tooltip:1070;--header-height:6rem;--content-height:calc(100vh - 6rem);--sidepanel-width:20rem;--purple-color:#641da3;--purple-600:#956abc;--purple-400:#c7afdd;--purple-200:#e0d2ed;--struggling:#f6993b;--below-target:#ffcf00;--in_progress:#1280f5;--prior_knowledge:#edf887;--mastery_achieved:#69d112;--inactive:#d8d8d8}route-view{max-width:1200px}@font-face{font-family:aofl-sans;font-style:normal;font-weight:300;src:url(\" + ___CSS_LOADER_URL___0___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:italic;font-weight:300;src:url(\" + ___CSS_LOADER_URL___1___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:normal;font-weight:400;src:url(\" + ___CSS_LOADER_URL___2___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:italic;font-weight:400;src:url(\" + ___CSS_LOADER_URL___3___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:normal;font-weight:600;src:url(\" + ___CSS_LOADER_URL___4___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:italic;font-weight:600;src:url(\" + ___CSS_LOADER_URL___5___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:normal;font-weight:700;src:url(\" + ___CSS_LOADER_URL___6___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:italic;font-weight:700;src:url(\" + ___CSS_LOADER_URL___7___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:normal;font-weight:300;src:url(\" + ___CSS_LOADER_URL___8___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:italic;font-weight:300;src:url(\" + ___CSS_LOADER_URL___9___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:normal;font-weight:400;src:url(\" + ___CSS_LOADER_URL___10___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:italic;font-weight:400;src:url(\" + ___CSS_LOADER_URL___11___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:normal;font-weight:600;src:url(\" + ___CSS_LOADER_URL___12___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:italic;font-weight:600;src:url(\" + ___CSS_LOADER_URL___13___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:normal;font-weight:700;src:url(\" + ___CSS_LOADER_URL___14___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:italic;font-weight:700;src:url(\" + ___CSS_LOADER_URL___15___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:normal;font-weight:800;src:url(\" + ___CSS_LOADER_URL___16___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:italic;font-weight:800;src:url(\" + ___CSS_LOADER_URL___17___ + \") format(\\\"woff2\\\")}@font-face{font-family:icomoon;src:url(\" + ___CSS_LOADER_URL___18___ + \") format(\\\"woff2\\\");font-weight:400;font-style:normal;font-display:block}[class*=\\\" ai-\\\"],[class^=ai-]{font-family:icomoon!important;speak:never;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.ai-checkmark:before{content:\\\"\\\\e90c\\\"}.ai-close-icon:before{content:\\\"\\\\e912\\\"}*,:after,:before{box-sizing:border-box}html{font-family:sans-serif;line-height:1.15;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:rgba(0,0,0,0)}figcaption,main,nav,section{display:block}[tabindex=\\\"-1\\\"]:focus{outline:0!important}p{margin-top:0;margin-bottom:1.6rem}strong{font-weight:bolder}a{color:#0d6efd;background-color:transparent}a,a:hover{text-decoration:none}a:hover{color:rgb(0,86.1,178.5)}a:not([href]):not([tabindex]),a:not([href]):not([tabindex]):focus,a:not([href]):not([tabindex]):hover{color:inherit;text-decoration:none}a:not([href]):not([tabindex]):focus{outline:0}code{font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:1em}caption{padding-top:.75rem;padding-bottom:.75rem;color:#6c757d;text-align:left;caption-side:bottom}label{display:inline-block;margin-bottom:.8rem}button{border-radius:0}button:focus{outline:1px dotted;outline:5px auto -webkit-focus-ring-color}button,input,select{margin:0;font-family:inherit;font-size:inherit;line-height:inherit}button,input{overflow:visible}button,select{text-transform:none}select{word-wrap:normal}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]:not(:disabled),[type=reset]:not(:disabled),[type=submit]:not(:disabled),button:not(:disabled){cursor:pointer}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{padding:0;border-style:none}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}input[type=date],input[type=datetime-local],input[type=month],input[type=time]{-webkit-appearance:listbox}legend{display:block;width:100%;max-width:100%;padding:0;margin-bottom:.5rem;font-size:1.5rem;line-height:inherit;color:inherit;white-space:normal}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:none}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}summary{display:list-item;cursor:pointer}template{display:none}[hidden]{display:none!important}*{-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important}html{font-size:62.5%;height:100%}link-to{color:#0d6efd;text-decoration:none;background-color:transparent}link-to:hover{color:rgb(0,86.1,178.5);text-decoration:none;cursor:pointer}route-view{display:none;flex:1}site-header{background-color:#fff;display:none;position:-webkit-sticky;position:sticky;top:0;height:var(--header-height)}#main{display:none;flex:1 auto;max-width:100%;overflow:hidden;flex-direction:column;overflow-y:scroll}.loaded #main,.loaded site-header,body.loaded,route-view.loaded{display:flex}route-view.left-panel-active{padding-left:var(--sidepanel-width)}code{font-size:87.5%;color:#e83e8c;word-break:break-word}a>code{color:inherit}.row{display:flex;flex-wrap:wrap;margin-right:-15px;margin-left:-15px}.no-gutters{margin-right:0;margin-left:0}.no-gutters>[class*=col-]{padding-right:0;padding-left:0}.col-12,.col-lg-3,.col-sm-4,.col-xl-2{position:relative;width:100%;padding-right:15px;padding-left:15px}.col-12{flex:0 0 100%;max-width:100%}@media (min-width:576px){.col-sm-4{flex:0 0 33.3333333333%;max-width:33.3333333333%}}@media (min-width:992px){.col-lg-3{flex:0 0 25%;max-width:25%}}@media (min-width:1200px){.col-xl-2{flex:0 0 16.6666666667%;max-width:16.6666666667%}}input[type=checkbox],input[type=radio]{cursor:pointer}input[type=checkbox]+label,input[type=radio]+label{cursor:pointer;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.custom-control-input:focus-visible:checked~.custom-control-label:before,.custom-control-input:focus-visible:not(:checked)~.custom-control-label:before{outline:2px solid #e50b0a}.btn{display:inline-block;font-weight:400;color:#000;text-align:center;vertical-align:middle;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;background-color:transparent;border:1px solid transparent;padding:.375rem .75rem;font-size:1.6rem;line-height:1.5;border-radius:.25rem;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.btn{transition:none}}.btn:hover{color:#000;text-decoration:none}.btn:focus{outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.btn.disabled,.btn:disabled{opacity:.65}a.btn.disabled{pointer-events:none}.btn-link{font-weight:400;color:#0d6efd;text-decoration:none}.btn-link:hover{color:rgb(0,86.1,178.5);text-decoration:none}.btn-link:focus{text-decoration:none;box-shadow:none}.btn-link.disabled,.btn-link:disabled{color:#6c757d;pointer-events:none}.btn:disabled{cursor:not-allowed}.btn.disabled,link-to.btn.disabled,link-to.btn:disabled,link-to.btn[disabled]{pointer-events:none}button,button:active{outline:none}.btn:focus-visible,[tabindex=\\\"0\\\"]:focus-visible,a:focus-visible,aofl-list-option:focus-visible,button[type=button]:focus-visible,collapse-button:focus-visible{outline:1px solid #e50b0a;border:1px solid #e50b0a}.btn-link:focus-visible{border:2px solid #e50b0a}.btn.disabled,.btn:disabled{background:#cfe2ff;border-color:#cfe2ff;color:#0d6efd;opacity:1}.dropdown{position:relative}.dropdown-toggle{white-space:nowrap}.dropdown-toggle:after{display:inline-block;margin-left:.255em;vertical-align:.255em;content:\\\"\\\";border-top:.3em solid;border-right:.3em solid transparent;border-bottom:0;border-left:.3em solid transparent}.dropdown-toggle:empty:after{margin-left:0}.dropdown-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;float:left;min-width:16rem;padding:.8rem 0;margin:.2rem 0 0;font-size:1.3rem;color:#212529;text-align:left;list-style:none;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.15);border-radius:.25rem}.dropdown-menu[x-placement^=bottom],.dropdown-menu[x-placement^=left],.dropdown-menu[x-placement^=right],.dropdown-menu[x-placement^=top]{right:auto;bottom:auto}.dropdown-menu.show{display:block}.dropdown,.dropdown-menu{display:inline-block}.dropdown-menu{box-shadow:0 0 .6rem 0 #d8d8d8;float:none;position:relative;margin:.2rem .4rem .4rem 0;min-width:1rem}bulk-actions-button+.dropdown-menu{max-width:270px;width:100%}bulk-actions-button+.dropdown-menu .btn{font-size:1.2rem;font-weight:600}ems-dropdown>button.btn{display:flex;align-items:center;border:1px solid var(--gray)}.custom-control{position:relative;display:block;min-height:2.4rem}.custom-control-input{position:absolute;z-index:-1;opacity:0}.custom-control-input:focus~.custom-control-label:before{box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.custom-control-input:focus:not(:checked)~.custom-control-label:before{border-color:rgb(127.5,189,255)}.custom-control-input:not(:disabled):active~.custom-control-label:before{color:#fff;background-color:rgb(178.5,215.4,255);border-color:rgb(178.5,215.4,255)}.custom-control-input:disabled~.custom-control-label{color:#6c757d}.custom-control-input:disabled~.custom-control-label:before{background-color:#e9ecef}.custom-control-label{position:relative;margin-bottom:0;vertical-align:top;padding-left:1.5em}.custom-control-label:before{pointer-events:none;background-color:#fff;border:1px solid #adb5bd}.custom-control-label:after,.custom-control-label:before{position:absolute;top:.2em;left:0;display:block;width:1em;height:1em;content:\\\"\\\"}.custom-control-label:after{background:no-repeat 50%/50% 50%}.custom-checkbox .custom-control-input:checked~.custom-control-label:before{color:#fff;border-color:#0d6efd;background-color:#0d6efd}.custom-checkbox .custom-control-label:before{border-radius:.25rem}.custom-checkbox .custom-control-input:checked~.custom-control-label:after{background-image:url(\\\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26l2.974 2.99L8 2.193z'/%3E%3C/svg%3E\\\")}.custom-checkbox .custom-control-input:indeterminate~.custom-control-label:before{border-color:#007bff;background-color:#007bff}.custom-checkbox .custom-control-input:indeterminate~.custom-control-label:after{background-image:url(\\\"data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 4'%3E%3Cpath stroke='%23fff' d='M0 2h4'/%3E%3C/svg%3E\\\")}.custom-checkbox .custom-control-input:disabled:checked~.custom-control-label:before{background-color:rgba(0,123,255,.5)}.custom-checkbox .custom-control-input:disabled:indeterminate~.custom-control-label:before{background-color:rgba(0,123,255,.5)}.custom-control-label:before{transition:background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.custom-control-label:before{transition:none}}.card{position:relative;display:flex;flex-direction:column;min-width:0;word-wrap:break-word;background-color:#fff;background-clip:border-box;border:1px solid rgba(0,0,0,.125);border-radius:.25rem}.card>.list-group:first-child .list-group-item:first-child{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.card>.list-group:last-child .list-group-item:last-child{border-bottom-right-radius:.25rem;border-bottom-left-radius:.25rem}.card-body{flex:1 1 auto;padding:2rem}.card-full-info{background-color:#cfe2ff;color:#fff}.card.rounded{border-radius:.8rem!important}@keyframes progress-bar-stripes{0%{background-position:1.6rem 0}to{background-position:0 0}}.list-group{display:flex;flex-direction:column;padding-left:0;margin-bottom:0}.list-group-item{position:relative;display:block;padding:1.2rem 2rem;margin-bottom:-1px;background-color:#fff;border:1px solid rgba(0,0,0,.125)}.list-group-item:first-child{border-top-left-radius:.25rem;border-top-right-radius:.25rem}.list-group-item:last-child{margin-bottom:0;border-bottom-right-radius:.25rem;border-bottom-left-radius:.25rem}.list-group-item.disabled,.list-group-item:disabled{color:#6c757d;background-color:#fff}.list-group{font-size:1.3rem}.list-group-item.d-flex{align-items:center}.list-group-item.disabled,.list-group-item:disabled{color:#878787;pointer-events:none;background-color:#ececec}.list-group [open]{border-bottom:0}.close{float:right;font-size:1rem;font-weight:700;line-height:1;color:#000;text-shadow:0 1px 0 #fff;opacity:.5}.close:hover{color:#000;text-decoration:none}.close:not(:disabled):not(.disabled):focus,.close:not(:disabled):not(.disabled):hover{opacity:.75}button.close{padding:0;background-color:transparent;border:0;-webkit-appearance:none;-moz-appearance:none;appearance:none}a.close.disabled{pointer-events:none}.close,.close:not(:disabled):not(.disabled):focus,.close:not(:disabled):not(.disabled):hover{opacity:1}.modal-container{background-color:rgba(0,0,0,.2);position:fixed;top:0;bottom:0;right:0;left:0;z-index:var(--z-index-modal)}.modal-container :first-child{overflow:auto}.modal{position:relative;display:block;height:100vh}.modal-dialog-centered.modal-dialog-scrollable{height:auto;max-height:calc(100% - 2.8rem);min-height:auto}.modal-body,.modal-content,.modal-footer,.modal-header{border:none}.modal-header{font-size:2rem;padding:2.4rem}.modal-body{padding:0 2.4rem 4.8rem}.colored-header{color:#fff}.modal-body p{text-align:left}.colored-header-primary{background-color:#0d6efd}.colored-header-secondary{background-color:#adb5bd}.colored-header-success{background-color:#3c8104}.colored-header-info{background-color:#cfe2ff}.colored-header-warning{background-color:#e17a05}.colored-header-danger{background-color:#d20a09}.colored-header-light{background-color:#f8f9fa}.colored-header-dark{background-color:#000}@keyframes spinner-border{to{transform:rotate(1turn)}}@keyframes spinner-grow{0%{transform:scale(0)}50%{opacity:1}}.border-0{border:0!important}.rounded{border-radius:.4rem!important}.d-flex{display:flex!important}@media (min-width:576px){.d-sm-block{display:block!important}}.justify-content-between{justify-content:space-between!important}.w-100{width:100%!important}.mb-0{margin-bottom:0!important}.mb-3{margin-bottom:1rem!important}.mr-4{margin-right:1.5rem!important}.mb-4{margin-bottom:1.5rem!important}.p-0{padding:0!important}.p-4{padding:1.5rem!important}.mt-n2{margin-top:-.5rem!important}.mx-auto{margin-right:auto!important;margin-left:auto!important}.text-nowrap{white-space:nowrap!important}.text-left{text-align:left!important}.text-right{text-align:right!important}.text-center{text-align:center!important}@media (min-width:576px){.text-sm-center{text-align:center!important}}.text-primary{color:#0d6efd!important}a.text-primary:focus,a.text-primary:hover{color:rgb(1.5532786885,76.887295082,187.9467213115)!important}.text-danger{color:#d20a09!important}a.text-danger:focus,a.text-danger:hover{color:rgb(136.6438356164,6.5068493151,5.8561643836)!important}.text-body{color:#000!important}.text-muted{color:#6c757d!important}[hidden]{visibility:hidden!important;height:0!important;width:0!important;min-height:unset!important}@media print{*,:after,:before{text-shadow:none!important;box-shadow:none!important}a:not(.btn){text-decoration:underline}p{orphans:3;widows:3}@page{size:a3}}@media print{main::-webkit-scrollbar{display:none}main{-ms-overflow-style:none;scrollbar-width:none}}@page{size:A4;margin:20mm 16mm 20mm 16mm}:host{display:block}.card .close{position:absolute;font-size:1.4rem;top:1rem;right:1rem}.permission-col{flex-wrap:wrap;margin-bottom:1.5rem}.permission-headers{font-size:1.4rem;margin:0}.details-dropdown button{font-size:1.4rem}.show-details,[open] .hide-details{display:block}.hide-details,[open] .show-details{display:none}.check-mark{visibility:hidden}[selected] .check-mark{visibility:visible}aofl-list-option:hover{cursor:pointer}.hide-student-toggle,.sponsor-toggle{clear:right;float:right}\", \"\"]);\n","export default {\n 'es-US': () => import('./translations_es-US.json'),\n\n 'ja-JP': () => import('./translations_ja-JP.json'),\n\n 'zh-CN': () => import('./translations_zh-CN.json'),\n\n 'zh-TW': () => import('./translations_zh-TW.json'),\n}","exports = module.exports = require(\"../../../../../node_modules/css-loader/dist/runtime/api.js\")(false);\n// Imports\nvar getUrl = require(\"../../../../../node_modules/css-loader/dist/runtime/getUrl.js\");\nvar ___CSS_LOADER_URL___0___ = getUrl(require(\"../../../../template/main/fonts/aofl-sans/aoflsans-light.woff2\"));\nvar ___CSS_LOADER_URL___1___ = getUrl(require(\"../../../../template/main/fonts/aofl-sans/aoflsans-lightit.woff2\"));\nvar ___CSS_LOADER_URL___2___ = getUrl(require(\"../../../../template/main/fonts/aofl-sans/aoflsans-reg.woff2\"));\nvar ___CSS_LOADER_URL___3___ = getUrl(require(\"../../../../template/main/fonts/aofl-sans/aoflsans-regit.woff2\"));\nvar ___CSS_LOADER_URL___4___ = getUrl(require(\"../../../../template/main/fonts/aofl-sans/aoflsans-sbold.woff2\"));\nvar ___CSS_LOADER_URL___5___ = getUrl(require(\"../../../../template/main/fonts/aofl-sans/aoflsans-sboldit.woff2\"));\nvar ___CSS_LOADER_URL___6___ = getUrl(require(\"../../../../template/main/fonts/aofl-sans/aoflsans-bold.woff2\"));\nvar ___CSS_LOADER_URL___7___ = getUrl(require(\"../../../../template/main/fonts/aofl-sans/aoflsans-boldit.woff2\"));\nvar ___CSS_LOADER_URL___8___ = getUrl(require(\"../../../../template/main/fonts/abcmouse-sans/ABCmouseSans-Light.woff2\"));\nvar ___CSS_LOADER_URL___9___ = getUrl(require(\"../../../../template/main/fonts/abcmouse-sans/ABCmouseSans-LightIt.woff2\"));\nvar ___CSS_LOADER_URL___10___ = getUrl(require(\"../../../../template/main/fonts/abcmouse-sans/ABCmouseSans-Regular.woff2\"));\nvar ___CSS_LOADER_URL___11___ = getUrl(require(\"../../../../template/main/fonts/abcmouse-sans/ABCmouseSans-RegularIt.woff2\"));\nvar ___CSS_LOADER_URL___12___ = getUrl(require(\"../../../../template/main/fonts/abcmouse-sans/ABCmouseSans-Semibold.woff2\"));\nvar ___CSS_LOADER_URL___13___ = getUrl(require(\"../../../../template/main/fonts/abcmouse-sans/ABCmouseSans-SemiboldIt.woff2\"));\nvar ___CSS_LOADER_URL___14___ = getUrl(require(\"../../../../template/main/fonts/abcmouse-sans/ABCmouseSans-Bold.woff2\"));\nvar ___CSS_LOADER_URL___15___ = getUrl(require(\"../../../../template/main/fonts/abcmouse-sans/ABCmouseSans-BoldIt.woff2\"));\nvar ___CSS_LOADER_URL___16___ = getUrl(require(\"../../../../template/main/fonts/abcmouse-sans/ABCmouseSans-ExtraBold.woff2\"));\nvar ___CSS_LOADER_URL___17___ = getUrl(require(\"../../../../template/main/fonts/abcmouse-sans/ABCmouseSans-ExtraBoldIt.woff2\"));\nvar ___CSS_LOADER_URL___18___ = getUrl(require(\"../../../../template/main/fonts/aofl-icons/icomoon.woff2?c6f21u\"));\n// Module\nexports.push([module.id, \"/*! @aofl-component */:root{--blue:#0d6efd;--indigo:#6610f2;--purple:#8b42ca;--pink:#e83e8c;--red:#e50b0a;--orange:#e17a05;--yellow:#ffc107;--green:#3c8104;--teal:#20c997;--cyan:#53c9dc;--white:#fff;--gray:#6b6b6b;--gray-dark:#343a40;--light-green:#b1dd53;--table-border-color:#d8d8d8;--gray-100:#f2f2f2;--gray-200:#d9d9d9;--gray-300:#d8d8d8;--gray-400:#ced4da;--gray-500:#adb5bd;--gray-600:#6c757d;--gray-700:#4a4a4a;--gray-800:#343a40;--gray-900:#212529;--gray-accessibility:#6b6b6b;--primary:#0d6efd;--secondary:#adb5bd;--success:#3c8104;--info:#cfe2ff;--warning:#e17a05;--danger:#d20a09;--light:#f8f9fa;--dark:#000;--breakpoint-xxs:0;--breakpoint-xs:375px;--breakpoint-sm:576px;--breakpoint-md:768px;--breakpoint-lg:992px;--breakpoint-xl:1200px;--font-family-sans-serif:aofl-sans,Arial,Helvetica,sans-serif;--font-family-monospace:SFMono-Regular,Menlo,Monaco,Consolas,\\\"Liberation Mono\\\",\\\"Courier New\\\",monospace;--z-index-dropdown:1000;--z-index-sticky:1020;--z-index-fixed:1030;--z-index-modal-backdrop:1040;--z-index-modal:1050;--z-index-popover:1060;--z-index-tooltip:1070;--header-height:6rem;--content-height:calc(100vh - 6rem);--sidepanel-width:20rem;--purple-color:#641da3;--purple-600:#956abc;--purple-400:#c7afdd;--purple-200:#e0d2ed;--struggling:#f6993b;--below-target:#ffcf00;--in_progress:#1280f5;--prior_knowledge:#edf887;--mastery_achieved:#69d112;--inactive:#d8d8d8}route-view{max-width:1200px}@font-face{font-family:aofl-sans;font-style:normal;font-weight:300;src:url(\" + ___CSS_LOADER_URL___0___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:italic;font-weight:300;src:url(\" + ___CSS_LOADER_URL___1___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:normal;font-weight:400;src:url(\" + ___CSS_LOADER_URL___2___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:italic;font-weight:400;src:url(\" + ___CSS_LOADER_URL___3___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:normal;font-weight:600;src:url(\" + ___CSS_LOADER_URL___4___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:italic;font-weight:600;src:url(\" + ___CSS_LOADER_URL___5___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:normal;font-weight:700;src:url(\" + ___CSS_LOADER_URL___6___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:italic;font-weight:700;src:url(\" + ___CSS_LOADER_URL___7___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:normal;font-weight:300;src:url(\" + ___CSS_LOADER_URL___8___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:italic;font-weight:300;src:url(\" + ___CSS_LOADER_URL___9___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:normal;font-weight:400;src:url(\" + ___CSS_LOADER_URL___10___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:italic;font-weight:400;src:url(\" + ___CSS_LOADER_URL___11___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:normal;font-weight:600;src:url(\" + ___CSS_LOADER_URL___12___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:italic;font-weight:600;src:url(\" + ___CSS_LOADER_URL___13___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:normal;font-weight:700;src:url(\" + ___CSS_LOADER_URL___14___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:italic;font-weight:700;src:url(\" + ___CSS_LOADER_URL___15___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:normal;font-weight:800;src:url(\" + ___CSS_LOADER_URL___16___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:italic;font-weight:800;src:url(\" + ___CSS_LOADER_URL___17___ + \") format(\\\"woff2\\\")}@font-face{font-family:icomoon;src:url(\" + ___CSS_LOADER_URL___18___ + \") format(\\\"woff2\\\");font-weight:400;font-style:normal;font-display:block}[class*=\\\" ai-\\\"],[class^=ai-]{font-family:icomoon!important;speak:never;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*,:after,:before{box-sizing:border-box}html{font-family:sans-serif;line-height:1.15;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:rgba(0,0,0,0)}figcaption,main,nav,section{display:block}[tabindex=\\\"-1\\\"]:focus{outline:0!important}strong{font-weight:bolder}a{color:#0d6efd;background-color:transparent}a,a:hover{text-decoration:none}a:hover{color:rgb(0,86.1,178.5)}a:not([href]):not([tabindex]),a:not([href]):not([tabindex]):focus,a:not([href]):not([tabindex]):hover{color:inherit;text-decoration:none}a:not([href]):not([tabindex]):focus{outline:0}caption{padding-top:.75rem;padding-bottom:.75rem;color:#6c757d;text-align:left;caption-side:bottom}button{border-radius:0}button:focus{outline:1px dotted;outline:5px auto -webkit-focus-ring-color}button,input{margin:0;font-family:inherit;font-size:inherit;line-height:inherit;overflow:visible}button{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]:not(:disabled),[type=reset]:not(:disabled),[type=submit]:not(:disabled),button:not(:disabled){cursor:pointer}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{padding:0;border-style:none}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}input[type=date],input[type=datetime-local],input[type=month],input[type=time]{-webkit-appearance:listbox}legend{display:block;width:100%;max-width:100%;padding:0;margin-bottom:.5rem;font-size:1.5rem;line-height:inherit;color:inherit;white-space:normal}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:none}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}summary{display:list-item;cursor:pointer}template{display:none}[hidden]{display:none!important}*{-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important}html{font-size:62.5%;height:100%}link-to{color:#0d6efd;text-decoration:none;background-color:transparent}link-to:hover{color:rgb(0,86.1,178.5);text-decoration:none;cursor:pointer}route-view{display:none;flex:1}site-header{background-color:#fff;display:none;position:-webkit-sticky;position:sticky;top:0;height:var(--header-height)}#main{display:none;flex:1 auto;max-width:100%;overflow:hidden;flex-direction:column;overflow-y:scroll}.loaded #main,.loaded site-header,body.loaded,route-view.loaded{display:flex}route-view.left-panel-active{padding-left:var(--sidepanel-width)}.row{display:flex;flex-wrap:wrap;margin-right:-15px;margin-left:-15px}.col-sm-4,.col-sm-8{position:relative;width:100%;padding-right:15px;padding-left:15px}@media (min-width:576px){.col-sm-4{flex:0 0 33.3333333333%;max-width:33.3333333333%}.col-sm-8{flex:0 0 66.6666666667%;max-width:66.6666666667%}}input[type=checkbox],input[type=radio]{cursor:pointer}.btn{display:inline-block;font-weight:400;color:#000;text-align:center;vertical-align:middle;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;background-color:transparent;border:1px solid transparent;padding:.375rem .75rem;font-size:1.6rem;line-height:1.5;border-radius:.25rem;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.btn{transition:none}}.btn:hover{color:#000;text-decoration:none}.btn.focus,.btn:focus{outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.btn.disabled,.btn:disabled{opacity:.65}a.btn.disabled{pointer-events:none}.btn-primary{color:#fff;background-color:#0d6efd;border-color:#0d6efd}.btn-primary:hover{color:#fff;background-color:rgb(1.8668032787,92.4067622951,225.8831967213);border-color:rgb(1.762295082,87.2336065574,213.237704918)}.btn-primary.focus,.btn-primary:focus{box-shadow:0 0 0 .2rem rgba(49.3,131.75,253.3,.5)}.btn-primary.disabled,.btn-primary:disabled{color:#fff;background-color:#0d6efd;border-color:#0d6efd}.btn-primary:not(:disabled):not(.disabled):active{color:#fff;background-color:rgb(1.762295082,87.2336065574,213.237704918);border-color:rgb(1.6577868852,82.0604508197,200.5922131148)}.btn-primary:not(:disabled):not(.disabled):active:focus{box-shadow:0 0 0 .2rem rgba(49.3,131.75,253.3,.5)}.btn-link{font-weight:400;color:#0d6efd;text-decoration:none}.btn-link:hover{color:rgb(0,86.1,178.5);text-decoration:none}.btn-link.focus,.btn-link:focus{text-decoration:none;box-shadow:none}.btn-link.disabled,.btn-link:disabled{color:#6c757d;pointer-events:none}.btn-lg{padding:.5rem 1rem;font-size:1.9rem;line-height:1.5;border-radius:.3rem}.btn-block{display:block;width:100%}.btn-block+.btn-block{margin-top:.8rem}input[type=button].btn-block,input[type=reset].btn-block,input[type=submit].btn-block{width:100%}.btn:disabled{cursor:not-allowed}.btn.disabled,link-to.btn.disabled,link-to.btn:disabled,link-to.btn[disabled]{pointer-events:none}button,button:active{outline:none}.btn:focus-visible,[tabindex=\\\"0\\\"]:focus-visible,a:focus-visible,aofl-list-option:focus-visible,button[type=button]:focus-visible,collapse-button:focus-visible{outline:1px solid #e50b0a;border:1px solid #e50b0a}.btn-lg.btn-pill{border-radius:2.85rem}.btn-link:focus-visible{border:2px solid #e50b0a}.btn-primary{font-weight:600;border-width:2px}.btn.disabled,.btn:disabled{background:#cfe2ff;border-color:#cfe2ff;color:#0d6efd;opacity:1}ems-dropdown>button.btn{display:flex;align-items:center;border:1px solid var(--gray)}@keyframes progress-bar-stripes{0%{background-position:1.6rem 0}to{background-position:0 0}}.close{float:right;font-size:1rem;font-weight:700;line-height:1;color:#000;text-shadow:0 1px 0 #fff;opacity:.5}.close:hover{color:#000;text-decoration:none}.close:not(:disabled):not(.disabled):focus,.close:not(:disabled):not(.disabled):hover{opacity:.75}button.close{padding:0;background-color:transparent;border:0;-webkit-appearance:none;-moz-appearance:none;appearance:none}a.close.disabled{pointer-events:none}.close,.close:not(:disabled):not(.disabled):focus,.close:not(:disabled):not(.disabled):hover{opacity:1}.modal{position:fixed;top:0;left:0;z-index:1050;display:none;width:100%;height:100%;overflow:hidden;outline:0}.modal-dialog{position:relative;width:auto;margin:.8rem;pointer-events:none}.modal-dialog-centered{display:flex;align-items:center;min-height:calc(100% - 1.6rem)}.modal-dialog-centered:before{display:block;height:calc(100vh - 1.6rem);content:\\\"\\\"}.modal-content{position:relative;display:flex;flex-direction:column;width:100%;pointer-events:auto;background-color:#fff;background-clip:padding-box;border:1px solid rgba(0,0,0,.2);border-radius:.3rem;outline:0}.modal-header{display:flex;align-items:flex-start;justify-content:space-between;padding:1rem;border-bottom:1px solid #dee2e6;border-top-left-radius:.3rem;border-top-right-radius:.3rem}.modal-header .close{padding:1rem;margin:-2.4rem -2.4rem -2.4rem auto}.modal-body{position:relative;flex:1 1 auto;padding:2.4rem}@media (min-width:576px){.modal-dialog{max-width:500px;margin:2.8rem auto}.modal-dialog-centered{min-height:calc(100% - 5.6rem)}.modal-dialog-centered:before{height:calc(100vh - 5.6rem)}}.modal-container{background-color:rgba(0,0,0,.2);position:fixed;top:0;bottom:0;right:0;left:0;z-index:var(--z-index-modal)}.modal-container :first-child{overflow:auto}.modal{position:relative;display:block;height:100vh}.modal-dialog-centered.modal-dialog-scrollable{height:auto;max-height:calc(100% - 2.8rem);min-height:auto}.modal-body,.modal-content,.modal-footer,.modal-header{border:none}.modal-header{font-size:2rem;padding:2.4rem}.modal-body{padding:0 2.4rem 4.8rem}.colored-header{color:#fff}.modal-body p{text-align:left}.colored-header-primary{background-color:#0d6efd}.colored-header-secondary{background-color:#adb5bd}.colored-header-success{background-color:#3c8104}.colored-header-info{background-color:#cfe2ff}.colored-header-warning{background-color:#e17a05}.colored-header-danger{background-color:#d20a09}.colored-header-light{background-color:#f8f9fa}.colored-header-dark{background-color:#000}@keyframes spinner-border{to{transform:rotate(1turn)}}@keyframes spinner-grow{0%{transform:scale(0)}50%{opacity:1}}.d-flex{display:flex!important}.align-items-center{align-items:center!important}.w-75{width:75%!important}.mt-3{margin-top:1rem!important}.pb-2{padding-bottom:.5rem!important}.pt-3{padding-top:1rem!important}.pt-4{padding-top:1.5rem!important}.pb-4{padding-bottom:1.5rem!important}.py-5{padding-top:3rem!important}.pb-5,.py-5{padding-bottom:3rem!important}.mx-auto{margin-right:auto!important;margin-left:auto!important}.text-center{text-align:center!important}.text-dark,a.text-dark:focus,a.text-dark:hover{color:#000!important}.invisible{visibility:hidden!important}.cursor-pointer:hover{cursor:pointer!important}.text-dark{color:#000}[hidden]{visibility:hidden!important;height:0!important;width:0!important;min-height:unset!important}@media print{*,:after,:before{text-shadow:none!important;box-shadow:none!important}a:not(.btn){text-decoration:underline}@page{size:a3}}@media print{main::-webkit-scrollbar{display:none}main{-ms-overflow-style:none;scrollbar-width:none}}@page{size:A4;margin:20mm 16mm 20mm 16mm}:host{display:block}.border-top-bottom-dotted{border-bottom:2px dotted #c6c6c6;border-top:2px dotted #c6c6c6}.radio{display:inline-block;width:1.5rem;height:1.5rem;border-radius:2rem;border:.3rem solid #6ab1ff;margin:.5rem 1rem 1rem}.radio.selected{display:inline-block;border-radius:2.5rem;border:.3rem solid #6ab1ff;background-color:#6ab1ff}.name-container{display:table;table-layout:fixed;width:100%}.name{display:table-cell;white-space:break-spaces;text-overflow:ellipsis;overflow:hidden}.student-name.disabled{color:#4a4a4a}\", \"\"]);\n","exports = module.exports = require(\"../../../node_modules/css-loader/dist/runtime/api.js\")(false);\n// Imports\nvar getUrl = require(\"../../../node_modules/css-loader/dist/runtime/getUrl.js\");\nvar ___CSS_LOADER_URL___0___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-light.woff2\"));\nvar ___CSS_LOADER_URL___1___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-lightit.woff2\"));\nvar ___CSS_LOADER_URL___2___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-reg.woff2\"));\nvar ___CSS_LOADER_URL___3___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-regit.woff2\"));\nvar ___CSS_LOADER_URL___4___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-sbold.woff2\"));\nvar ___CSS_LOADER_URL___5___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-sboldit.woff2\"));\nvar ___CSS_LOADER_URL___6___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-bold.woff2\"));\nvar ___CSS_LOADER_URL___7___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-boldit.woff2\"));\nvar ___CSS_LOADER_URL___8___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-Light.woff2\"));\nvar ___CSS_LOADER_URL___9___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-LightIt.woff2\"));\nvar ___CSS_LOADER_URL___10___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-Regular.woff2\"));\nvar ___CSS_LOADER_URL___11___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-RegularIt.woff2\"));\nvar ___CSS_LOADER_URL___12___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-Semibold.woff2\"));\nvar ___CSS_LOADER_URL___13___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-SemiboldIt.woff2\"));\nvar ___CSS_LOADER_URL___14___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-Bold.woff2\"));\nvar ___CSS_LOADER_URL___15___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-BoldIt.woff2\"));\nvar ___CSS_LOADER_URL___16___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-ExtraBold.woff2\"));\nvar ___CSS_LOADER_URL___17___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-ExtraBoldIt.woff2\"));\nvar ___CSS_LOADER_URL___18___ = getUrl(require(\"../../template/main/fonts/aofl-icons/icomoon.woff2?c6f21u\"));\n// Module\nexports.push([module.id, \"/*! @aofl-component */:root{--blue:#0d6efd;--indigo:#6610f2;--purple:#8b42ca;--pink:#e83e8c;--red:#e50b0a;--orange:#e17a05;--yellow:#ffc107;--green:#3c8104;--teal:#20c997;--cyan:#53c9dc;--white:#fff;--gray:#6b6b6b;--gray-dark:#343a40;--light-green:#b1dd53;--table-border-color:#d8d8d8;--gray-100:#f2f2f2;--gray-200:#d9d9d9;--gray-300:#d8d8d8;--gray-400:#ced4da;--gray-500:#adb5bd;--gray-600:#6c757d;--gray-700:#4a4a4a;--gray-800:#343a40;--gray-900:#212529;--gray-accessibility:#6b6b6b;--primary:#0d6efd;--secondary:#adb5bd;--success:#3c8104;--info:#cfe2ff;--warning:#e17a05;--danger:#d20a09;--light:#f8f9fa;--dark:#000;--breakpoint-xxs:0;--breakpoint-xs:375px;--breakpoint-sm:576px;--breakpoint-md:768px;--breakpoint-lg:992px;--breakpoint-xl:1200px;--font-family-sans-serif:aofl-sans,Arial,Helvetica,sans-serif;--font-family-monospace:SFMono-Regular,Menlo,Monaco,Consolas,\\\"Liberation Mono\\\",\\\"Courier New\\\",monospace;--z-index-dropdown:1000;--z-index-sticky:1020;--z-index-fixed:1030;--z-index-modal-backdrop:1040;--z-index-modal:1050;--z-index-popover:1060;--z-index-tooltip:1070;--header-height:6rem;--content-height:calc(100vh - 6rem);--sidepanel-width:20rem;--purple-color:#641da3;--purple-600:#956abc;--purple-400:#c7afdd;--purple-200:#e0d2ed;--struggling:#f6993b;--below-target:#ffcf00;--in_progress:#1280f5;--prior_knowledge:#edf887;--mastery_achieved:#69d112;--inactive:#d8d8d8}route-view{max-width:1200px}@font-face{font-family:aofl-sans;font-style:normal;font-weight:300;src:url(\" + ___CSS_LOADER_URL___0___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:italic;font-weight:300;src:url(\" + ___CSS_LOADER_URL___1___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:normal;font-weight:400;src:url(\" + ___CSS_LOADER_URL___2___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:italic;font-weight:400;src:url(\" + ___CSS_LOADER_URL___3___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:normal;font-weight:600;src:url(\" + ___CSS_LOADER_URL___4___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:italic;font-weight:600;src:url(\" + ___CSS_LOADER_URL___5___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:normal;font-weight:700;src:url(\" + ___CSS_LOADER_URL___6___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:italic;font-weight:700;src:url(\" + ___CSS_LOADER_URL___7___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:normal;font-weight:300;src:url(\" + ___CSS_LOADER_URL___8___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:italic;font-weight:300;src:url(\" + ___CSS_LOADER_URL___9___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:normal;font-weight:400;src:url(\" + ___CSS_LOADER_URL___10___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:italic;font-weight:400;src:url(\" + ___CSS_LOADER_URL___11___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:normal;font-weight:600;src:url(\" + ___CSS_LOADER_URL___12___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:italic;font-weight:600;src:url(\" + ___CSS_LOADER_URL___13___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:normal;font-weight:700;src:url(\" + ___CSS_LOADER_URL___14___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:italic;font-weight:700;src:url(\" + ___CSS_LOADER_URL___15___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:normal;font-weight:800;src:url(\" + ___CSS_LOADER_URL___16___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:italic;font-weight:800;src:url(\" + ___CSS_LOADER_URL___17___ + \") format(\\\"woff2\\\")}@font-face{font-family:icomoon;src:url(\" + ___CSS_LOADER_URL___18___ + \") format(\\\"woff2\\\");font-weight:400;font-style:normal;font-display:block}[class*=\\\" ai-\\\"],[class^=ai-]{font-family:icomoon!important;speak:never;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.ai-calendar-sm:before{content:\\\"\\\\e90b\\\"}*,:after,:before{box-sizing:border-box}html{font-family:sans-serif;line-height:1.15;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:rgba(0,0,0,0)}figcaption,main,nav,section{display:block}[tabindex=\\\"-1\\\"]:focus{outline:0!important}strong{font-weight:bolder}a{color:#0d6efd;background-color:transparent}a,a:hover{text-decoration:none}a:hover{color:rgb(0,86.1,178.5)}a:not([href]):not([tabindex]),a:not([href]):not([tabindex]):focus,a:not([href]):not([tabindex]):hover{color:inherit;text-decoration:none}a:not([href]):not([tabindex]):focus{outline:0}caption{padding-top:.75rem;padding-bottom:.75rem;color:#6c757d;text-align:left;caption-side:bottom}button{border-radius:0}button:focus{outline:1px dotted;outline:5px auto -webkit-focus-ring-color}button,input{margin:0;font-family:inherit;font-size:inherit;line-height:inherit;overflow:visible}button{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]:not(:disabled),[type=reset]:not(:disabled),[type=submit]:not(:disabled),button:not(:disabled){cursor:pointer}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{padding:0;border-style:none}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}input[type=date],input[type=datetime-local],input[type=month],input[type=time]{-webkit-appearance:listbox}legend{display:block;width:100%;max-width:100%;padding:0;margin-bottom:.5rem;font-size:1.5rem;line-height:inherit;color:inherit;white-space:normal}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:none}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}summary{display:list-item;cursor:pointer}template{display:none}[hidden]{display:none!important}*{-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important}html{font-size:62.5%;height:100%}link-to{color:#0d6efd;text-decoration:none;background-color:transparent}link-to:hover{color:rgb(0,86.1,178.5);text-decoration:none;cursor:pointer}route-view{display:none;flex:1}site-header{background-color:#fff;display:none;position:-webkit-sticky;position:sticky;top:0;height:var(--header-height)}#main{display:none;flex:1 auto;max-width:100%;overflow:hidden;flex-direction:column;overflow-y:scroll}.loaded #main,.loaded site-header,body.loaded,route-view.loaded{display:flex}route-view.left-panel-active{padding-left:var(--sidepanel-width)}.container{width:100%;padding-right:15px;padding-left:15px;margin-right:auto;margin-left:auto}@media (min-width:375px){.container{max-width:350px}}@media (min-width:576px){.container{max-width:540px}}@media (min-width:768px){.container{max-width:720px}}@media (min-width:992px){.container{max-width:960px}}@media (min-width:1200px){.container{max-width:1140px}}.form-control{display:block;width:100%;height:calc(1.5em + .75rem + 2px);padding:.375rem .75rem;font-size:1rem;font-weight:400;line-height:1.5;color:#495057;background-color:#fff;background-clip:padding-box;border:1px solid #ced4da;border-radius:.25rem;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.form-control{transition:none}}.form-control::-ms-expand{background-color:transparent;border:0}.form-control:focus{color:#495057;background-color:#fff;border-color:rgb(127.5,189,255);outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.form-control::-webkit-input-placeholder{color:#6c757d;opacity:1}.form-control::-moz-placeholder{color:#6c757d;opacity:1}.form-control:-ms-input-placeholder{color:#6c757d;opacity:1}.form-control::-ms-input-placeholder{color:#6c757d;opacity:1}.form-control::placeholder{color:#6c757d;opacity:1}.form-control:disabled,.form-control[readonly]{background-color:#e9ecef;opacity:1}.form-control-sm{height:calc(1.5em + .5rem + 2px);padding:.25rem .5rem;font-size:.875rem;line-height:1.5;border-radius:.2rem}.form-control{font-size:1.5rem;height:4.8rem;padding:1.2rem 1rem}.form-control[multiple]{padding:0}.form-control[multiple] option{padding:.8rem 1.2rem}.form-control-sm{height:3.2rem;padding:.4rem .8rem;border-radius:.32rem}input[type=checkbox],input[type=radio]{cursor:pointer}.form-control{border:1px solid #6b6b6b}.form-control:focus{border-color:#0d6efd}button,button:active{outline:none}[tabindex=\\\"0\\\"]:focus-visible,a:focus-visible,aofl-list-option:focus-visible,button[type=button]:focus-visible,collapse-button:focus-visible{outline:1px solid #e50b0a;border:1px solid #e50b0a}.dropdown{position:relative;display:inline-block}.input-group{position:relative;display:flex;flex-wrap:wrap;align-items:stretch;width:100%}.input-group>.form-control{position:relative;flex:1 1 auto;width:1%;margin-bottom:0}.input-group>.form-control+.form-control{margin-left:-1px}.input-group>.form-control:focus{z-index:3}.input-group>.form-control:not(:last-child){border-top-right-radius:0;border-bottom-right-radius:0}.input-group>.form-control:not(:first-child){border-top-left-radius:0;border-bottom-left-radius:0}.input-group-append{display:flex}.input-group-append,.input-group-append .input-group-text+.input-group-text{margin-left:-1px}.input-group-text{display:flex;align-items:center;padding:.375rem .75rem;margin-bottom:0;font-size:1rem;font-weight:400;line-height:1.5;color:#495057;text-align:center;white-space:nowrap;background-color:#e9ecef;border:1px solid #ced4da;border-radius:.25rem}.input-group-text input[type=checkbox],.input-group-text input[type=radio]{margin-top:0}.input-group>.input-group-append:last-child>.input-group-text:not(:last-child),.input-group>.input-group-append:not(:last-child)>.input-group-text{border-top-right-radius:0;border-bottom-right-radius:0}.input-group>.input-group-append>.input-group-text{border-top-left-radius:0;border-bottom-left-radius:0}@keyframes progress-bar-stripes{0%{background-position:1.6rem 0}to{background-position:0 0}}.close{float:right;font-size:1rem;font-weight:700;line-height:1;color:#000;text-shadow:0 1px 0 #fff;opacity:.5}.close:hover{color:#000;text-decoration:none}.close:not(:disabled):not(.disabled):focus,.close:not(:disabled):not(.disabled):hover{opacity:.75}button.close{padding:0;background-color:transparent;border:0;-webkit-appearance:none;-moz-appearance:none;appearance:none}.close,.close:not(:disabled):not(.disabled):focus,.close:not(:disabled):not(.disabled):hover{opacity:1}.modal-container{background-color:rgba(0,0,0,.2);position:fixed;top:0;bottom:0;right:0;left:0;z-index:var(--z-index-modal)}.modal-container :first-child{overflow:auto}.modal{position:relative;display:block;height:100vh}.modal-dialog-centered.modal-dialog-scrollable{height:auto;max-height:calc(100% - 2.8rem);min-height:auto}.modal-body,.modal-content,.modal-footer,.modal-header{border:none}.modal-header{font-size:2rem;padding:2.4rem}.modal-body{padding:0 2.4rem 4.8rem}.colored-header{color:#fff}.modal-body p{text-align:left}.colored-header-primary{background-color:#0d6efd}.colored-header-secondary{background-color:#adb5bd}.colored-header-success{background-color:#3c8104}.colored-header-info{background-color:#cfe2ff}.colored-header-warning{background-color:#e17a05}.colored-header-danger{background-color:#d20a09}.colored-header-light{background-color:#f8f9fa}.colored-header-dark{background-color:#000}@keyframes spinner-border{to{transform:rotate(1turn)}}@keyframes spinner-grow{0%{transform:scale(0)}50%{opacity:1}}[hidden]{visibility:hidden!important;height:0!important;width:0!important;min-height:unset!important}@media print{*,:after,:before{text-shadow:none!important;box-shadow:none!important}a:not(.btn){text-decoration:underline}@page{size:a3}.container{min-width:992px!important}}@media print{main::-webkit-scrollbar{display:none}main{-ms-overflow-style:none;scrollbar-width:none}}@page{size:A4;margin:20mm 16mm 20mm 16mm}.flatpickr-calendar{background:transparent;opacity:0;display:none;text-align:center;visibility:hidden;padding:0;animation:none;direction:ltr;border:0;font-size:14px;line-height:24px;border-radius:5px;position:absolute;box-sizing:border-box;touch-action:manipulation;background:#fff;box-shadow:1px 0 0 #eee,-1px 0 0 #eee,0 1px 0 #eee,0 -1px 0 #eee,0 3px 13px #d8d8d8}.flatpickr-calendar.inline,.flatpickr-calendar.open{opacity:1;max-height:640px;visibility:visible}.flatpickr-calendar.open{display:inline-block;z-index:99999}.flatpickr-calendar.animate.open{animation:fpFadeInDown .3s cubic-bezier(.23,1,.32,1)}.flatpickr-calendar.inline{display:block;position:relative;top:2px}.flatpickr-calendar.static{position:absolute;top:calc(100% + 2px)}.flatpickr-calendar.static.open{z-index:999;display:block}.flatpickr-calendar.multiMonth .flatpickr-days .dayContainer:nth-child(n+1) .flatpickr-day.inRange:nth-child(7n+7){box-shadow:none!important}.flatpickr-calendar.multiMonth .flatpickr-days .dayContainer:nth-child(n+2) .flatpickr-day.inRange:nth-child(7n+1){box-shadow:-2px 0 0 #e6e6e6,5px 0 0 #e6e6e6}.flatpickr-calendar .hasTime .dayContainer,.flatpickr-calendar .hasWeeks .dayContainer{border-bottom:0;border-bottom-right-radius:0;border-bottom-left-radius:0}.flatpickr-calendar .hasWeeks .dayContainer{border-left:0}.flatpickr-calendar.showTimeInput.hasTime .flatpickr-time{height:40px;border-top:1px solid #eee}.flatpickr-calendar.noCalendar.hasTime .flatpickr-time{height:auto}.flatpickr-calendar:after,.flatpickr-calendar:before{position:absolute;display:block;pointer-events:none;border:solid transparent;content:\\\"\\\";height:0;width:0;left:22px}.flatpickr-calendar.rightMost:after,.flatpickr-calendar.rightMost:before{left:auto;right:22px}.flatpickr-calendar:before{border-width:5px;margin:0 -5px}.flatpickr-calendar:after{border-width:4px;margin:0 -4px}.flatpickr-calendar.arrowTop:after,.flatpickr-calendar.arrowTop:before{bottom:100%}.flatpickr-calendar.arrowTop:before{border-bottom-color:#eee}.flatpickr-calendar.arrowTop:after{border-bottom-color:#fff}.flatpickr-calendar.arrowBottom:after,.flatpickr-calendar.arrowBottom:before{top:100%}.flatpickr-calendar.arrowBottom:before{border-top-color:#eee}.flatpickr-calendar.arrowBottom:after{border-top-color:#fff}.flatpickr-calendar:focus{outline:0}.flatpickr-wrapper{position:relative;display:inline-block}.flatpickr-months{display:flex}.flatpickr-months .flatpickr-month{background:transparent;color:#3c3f40;fill:#3c3f40;height:28px;line-height:1;text-align:center;position:relative;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;overflow:hidden;flex:1}.flatpickr-months .flatpickr-next-month,.flatpickr-months .flatpickr-prev-month{text-decoration:none;cursor:pointer;position:absolute;top:0;line-height:16px;height:28px;padding:10px;z-index:3;color:#3c3f40;fill:#3c3f40}.flatpickr-months .flatpickr-next-month.flatpickr-disabled,.flatpickr-months .flatpickr-prev-month.flatpickr-disabled{display:none}.flatpickr-months .flatpickr-next-month.flatpickr-prev-month,.flatpickr-months .flatpickr-prev-month.flatpickr-prev-month{left:0}.flatpickr-months .flatpickr-next-month.flatpickr-next-month,.flatpickr-months .flatpickr-prev-month.flatpickr-next-month{right:0}.flatpickr-months .flatpickr-next-month:hover,.flatpickr-months .flatpickr-prev-month:hover{color:#f64747}.numInputWrapper{position:relative;height:auto}.numInputWrapper input,.numInputWrapper span{display:inline-block}.numInputWrapper input{width:100%}.numInputWrapper input::-ms-clear{display:none}.numInputWrapper input::-webkit-inner-spin-button,.numInputWrapper input::-webkit-outer-spin-button{margin:0;-webkit-appearance:none}.numInputWrapper span{position:absolute;right:0;width:14px;padding:0 4px 0 2px;height:50%;line-height:50%;opacity:0;cursor:pointer;border:1px solid #404848;box-sizing:border-box}.numInputWrapper span:active,.numInputWrapper span:hover{background:#d8d8d8}.numInputWrapper span:after{display:block;content:\\\"\\\";position:absolute}.numInputWrapper span.arrowUp{top:0;border-bottom:0}.numInputWrapper span.arrowUp:after{border-left:4px solid transparent;border-right:4px solid transparent;border-bottom:4px solid #404848;top:26%}.numInputWrapper span.arrowDown{top:50%}.numInputWrapper span.arrowDown:after{border-left:4px solid transparent;border-right:4px solid transparent;border-top:4px solid #404848;top:40%}.numInputWrapper:hover{background:#d8d8d8}.numInputWrapper:hover span{opacity:1}.flatpickr-current-month{font-size:135%;line-height:inherit;font-weight:300;color:inherit;position:absolute;width:75%;left:12.5%;padding:6.16px 0 0;line-height:1;height:28px;display:inline-block;text-align:center;transform:translateZ(0)}.flatpickr-current-month span.cur-month{font-family:inherit;font-weight:700;color:inherit;display:inline-block;margin-left:.5ch;padding:0}.flatpickr-current-month span.cur-month:hover{background:#d8d8d8}.flatpickr-current-month .numInputWrapper{width:6ch;width:7ch\\\\0;display:inline-block}.flatpickr-current-month .numInputWrapper span.arrowUp:after{border-bottom-color:#3c3f40}.flatpickr-current-month .numInputWrapper span.arrowDown:after{border-top-color:#3c3f40}.flatpickr-current-month input.cur-year{background:transparent;box-sizing:border-box;color:inherit;cursor:text;padding:0 0 0 .5ch;margin:0;display:inline-block;font-size:inherit;font-family:inherit;font-weight:300;line-height:inherit;height:auto;border:0;border-radius:0;vertical-align:initial;-webkit-appearance:textfield;-moz-appearance:textfield;appearance:textfield}.flatpickr-current-month input.cur-year:focus{outline:0}.flatpickr-current-month input.cur-year[disabled],.flatpickr-current-month input.cur-year[disabled]:hover{font-size:100%;color:#3c3f40;background:transparent;pointer-events:none}.flatpickr-current-month .flatpickr-monthDropdown-months{appearance:menulist;background:transparent;border:none;border-radius:0;box-sizing:border-box;color:inherit;cursor:pointer;font-size:inherit;font-family:inherit;font-weight:300;height:22px;line-height:inherit;margin:-1px 0 0;outline:none;padding:0 0 0 .5ch;position:relative;vertical-align:initial;-webkit-box-sizing:border-box;-webkit-appearance:menulist;-moz-appearance:menulist;width:auto}.flatpickr-current-month .flatpickr-monthDropdown-months:active,.flatpickr-current-month .flatpickr-monthDropdown-months:focus{outline:none}.flatpickr-current-month .flatpickr-monthDropdown-months:hover{background:#d8d8d8}.flatpickr-current-month .flatpickr-monthDropdown-months .flatpickr-monthDropdown-month{background-color:transparent;outline:none;padding:0}.flatpickr-weekdays{background:transparent;text-align:center;overflow:hidden;width:100%;display:flex;align-items:center;height:28px}.flatpickr-weekdays .flatpickr-weekdaycontainer{display:flex;flex:1}span.flatpickr-weekday{cursor:default;font-size:90%;background:transparent;color:#6b6b6b;line-height:1;margin:0;text-align:center;display:block;flex:1;font-weight:bolder}.dayContainer,.flatpickr-weeks{padding:1px 0 0}.flatpickr-days{position:relative;overflow:hidden;display:flex;align-items:flex-start;width:307.875px}.flatpickr-days:focus{outline:0}.dayContainer{outline:0;text-align:left;width:307.875px;min-width:307.875px;max-width:307.875px;box-sizing:border-box;display:inline-block;display:flex;flex-wrap:wrap;-ms-flex-wrap:wrap;justify-content:space-around;transform:translateZ(0);opacity:1}.dayContainer+.dayContainer{box-shadow:-1px 0 0 #eee}.flatpickr-day{background:none;border:1px solid transparent;border-radius:150px;box-sizing:border-box;color:#404848;cursor:pointer;font-weight:400;width:14.2857143%;flex-basis:14.2857143%;max-width:39px;height:39px;line-height:39px;margin:0;display:inline-block;position:relative;justify-content:center;text-align:center}.flatpickr-day.inRange,.flatpickr-day.nextMonthDay.inRange,.flatpickr-day.nextMonthDay.today.inRange,.flatpickr-day.nextMonthDay:focus,.flatpickr-day.nextMonthDay:hover,.flatpickr-day.prevMonthDay.inRange,.flatpickr-day.prevMonthDay.today.inRange,.flatpickr-day.prevMonthDay:focus,.flatpickr-day.prevMonthDay:hover,.flatpickr-day.today.inRange,.flatpickr-day:focus,.flatpickr-day:hover{cursor:pointer;outline:0;background:#e9e9e9;border-color:#e9e9e9}.flatpickr-day.today{border-color:#f64747}.flatpickr-day.today:focus,.flatpickr-day.today:hover{border-color:#f64747;background:#f64747;color:#fff}.flatpickr-day.endRange,.flatpickr-day.endRange.inRange,.flatpickr-day.endRange.nextMonthDay,.flatpickr-day.endRange.prevMonthDay,.flatpickr-day.endRange:focus,.flatpickr-day.endRange:hover,.flatpickr-day.selected,.flatpickr-day.selected.inRange,.flatpickr-day.selected.nextMonthDay,.flatpickr-day.selected.prevMonthDay,.flatpickr-day.selected:focus,.flatpickr-day.selected:hover,.flatpickr-day.startRange,.flatpickr-day.startRange.inRange,.flatpickr-day.startRange.nextMonthDay,.flatpickr-day.startRange.prevMonthDay,.flatpickr-day.startRange:focus,.flatpickr-day.startRange:hover{background:#4f99ff;box-shadow:none;color:#fff;border-color:#4f99ff}.flatpickr-day.endRange.startRange,.flatpickr-day.selected.startRange,.flatpickr-day.startRange.startRange{border-radius:50px 0 0 50px}.flatpickr-day.endRange.endRange,.flatpickr-day.selected.endRange,.flatpickr-day.startRange.endRange{border-radius:0 50px 50px 0}.flatpickr-day.endRange.startRange+.endRange:not(:nth-child(7n+1)),.flatpickr-day.selected.startRange+.endRange:not(:nth-child(7n+1)),.flatpickr-day.startRange.startRange+.endRange:not(:nth-child(7n+1)){box-shadow:-10px 0 0 #4f99ff}.flatpickr-day.endRange.startRange.endRange,.flatpickr-day.selected.startRange.endRange,.flatpickr-day.startRange.startRange.endRange{border-radius:50px}.flatpickr-day.inRange{border-radius:0;box-shadow:-5px 0 0 #e9e9e9,5px 0 0 #e9e9e9}.flatpickr-day.flatpickr-disabled,.flatpickr-day.flatpickr-disabled:hover,.flatpickr-day.nextMonthDay,.flatpickr-day.notAllowed,.flatpickr-day.notAllowed.nextMonthDay,.flatpickr-day.notAllowed.prevMonthDay,.flatpickr-day.prevMonthDay{color:#6b6b6b;background:transparent;border-color:#e9e9e9;cursor:default}.flatpickr-day.flatpickr-disabled,.flatpickr-day.flatpickr-disabled:hover{cursor:not-allowed;color:#6b6b6b}.flatpickr-day.week.selected{border-radius:0;box-shadow:-5px 0 0 #4f99ff,5px 0 0 #4f99ff}.flatpickr-day.hidden{visibility:hidden}.rangeMode .flatpickr-day{margin-top:1px}.flatpickr-weekwrapper{float:left}.flatpickr-weekwrapper .flatpickr-weeks{padding:0 12px;box-shadow:1px 0 0 #eee}.flatpickr-weekwrapper .flatpickr-weekday{float:none;width:100%;line-height:28px}.flatpickr-weekwrapper span.flatpickr-day,.flatpickr-weekwrapper span.flatpickr-day:hover{display:block;width:100%;max-width:none;color:#6b6b6b;background:transparent;cursor:default;border:none}.flatpickr-innerContainer{display:block;display:flex;box-sizing:border-box;overflow:hidden}.flatpickr-rContainer{display:inline-block;padding:0;box-sizing:border-box}.flatpickr-time{text-align:center;outline:0;display:block;height:0;line-height:40px;max-height:40px;box-sizing:border-box;overflow:hidden;display:flex}.flatpickr-time:after{content:\\\"\\\";display:table;clear:both}.flatpickr-time .numInputWrapper{flex:1;width:40%;height:40px;float:left}.flatpickr-time .numInputWrapper span.arrowUp:after{border-bottom-color:#404848}.flatpickr-time .numInputWrapper span.arrowDown:after{border-top-color:#404848}.flatpickr-time.hasSeconds .numInputWrapper{width:26%}.flatpickr-time.time24hr .numInputWrapper{width:49%}.flatpickr-time input{background:transparent;box-shadow:none;border:0;border-radius:0;text-align:center;margin:0;padding:0;height:inherit;line-height:inherit;color:#404848;font-size:14px;position:relative;box-sizing:border-box;-webkit-appearance:textfield;-moz-appearance:textfield;appearance:textfield}.flatpickr-time input.flatpickr-hour{font-weight:700}.flatpickr-time input.flatpickr-minute,.flatpickr-time input.flatpickr-second{font-weight:400}.flatpickr-time input:focus{outline:0;border:0}.flatpickr-time .flatpickr-am-pm,.flatpickr-time .flatpickr-time-separator{height:inherit;float:left;line-height:inherit;color:#404848;font-weight:700;width:2%;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;align-self:center}.flatpickr-time .flatpickr-am-pm{outline:0;width:18%;cursor:pointer;text-align:center;font-weight:400}.flatpickr-time .flatpickr-am-pm:focus,.flatpickr-time .flatpickr-am-pm:hover,.flatpickr-time input:focus,.flatpickr-time input:hover{background:#f1f1f1}.flatpickr-input[readonly]{cursor:pointer}@keyframes fpFadeInDown{0%{opacity:0;transform:translate3d(0,-20px,0)}to{opacity:1;transform:translateZ(0)}}.flatpickr-calendar{width:307.875px}.dayContainer{padding:0;border-right:0}span.flatpickr-day,span.flatpickr-day.nextMonthDay,span.flatpickr-day.prevMonthDay{border-radius:0!important;max-width:none;border:1px solid #e9e9e9;border-right-color:transparent}span.flatpickr-day.nextMonthDay:nth-child(n+8),span.flatpickr-day.prevMonthDay:nth-child(n+8),span.flatpickr-day:nth-child(n+8){border-top-color:transparent}span.flatpickr-day.nextMonthDay:nth-child(7n-6),span.flatpickr-day.prevMonthDay:nth-child(7n-6),span.flatpickr-day:nth-child(7n-6){border-left:0}span.flatpickr-day.nextMonthDay:nth-child(n+36),span.flatpickr-day.prevMonthDay:nth-child(n+36),span.flatpickr-day:nth-child(n+36){border-bottom:0}span.flatpickr-day.nextMonthDay:nth-child(-n+7),span.flatpickr-day.prevMonthDay:nth-child(-n+7),span.flatpickr-day:nth-child(-n+7){margin-top:0}span.flatpickr-day.nextMonthDay.today:not(.selected),span.flatpickr-day.prevMonthDay.today:not(.selected),span.flatpickr-day.today:not(.selected){border-color:transparent transparent #f64747 #e9e9e9}span.flatpickr-day.nextMonthDay.today:not(.selected):hover,span.flatpickr-day.prevMonthDay.today:not(.selected):hover,span.flatpickr-day.today:not(.selected):hover{border:1px solid #f64747}span.flatpickr-day.endRange,span.flatpickr-day.nextMonthDay.endRange,span.flatpickr-day.nextMonthDay.startRange,span.flatpickr-day.prevMonthDay.endRange,span.flatpickr-day.prevMonthDay.startRange,span.flatpickr-day.startRange{border-color:#4f99ff}span.flatpickr-day.nextMonthDay.selected,span.flatpickr-day.nextMonthDay.today,span.flatpickr-day.prevMonthDay.selected,span.flatpickr-day.prevMonthDay.today,span.flatpickr-day.selected,span.flatpickr-day.today{z-index:2}.rangeMode .flatpickr-day{margin-top:-1px}.flatpickr-weekwrapper .flatpickr-weeks{box-shadow:none}.flatpickr-weekwrapper span.flatpickr-day{border:0;margin:-1px 0 0 -1px}.hasWeeks .flatpickr-days{border-right:0}@media screen and (min-width:0\\\\0) and (min-resolution:+72dpi){span.flatpickr-day{display:block;flex:1 0 auto}}\", \"\"]);\n","import {until} from 'lit-html/directives/until';\nimport '@modules/group-filters';\nimport {addClasses, searchLabels} from '../i18n-labels';\nimport emsDropdownStyles from './ems-dropdown.css';\nimport {wrapUnsafeHtml} from \"@modules/wrap-unsafe-html\";\n\nconst getClassDropdownContent = (ctx, html) => {\n const returnHtml = [];\n if (ctx.classSearchResponse.results?.length) {\n ctx.classSearchResponse.results.map((result) => {\n if (ctx.groupsToHide.indexOf(result.id) === -1) {\n returnHtml.push(\n html`\n `\n );\n }\n });\n if (ctx.classSearchResponse.has_more) {\n returnHtml.push(\n html`\n
\n ${until(searchLabels.showingFirstOfAmount(ctx.classSearchLimit))}\n
`\n );\n }\n }\n if (!returnHtml.length) {\n returnHtml.push(html`
${until(searchLabels.NO_MATCHING_RESULTS)}
`);\n }\n return returnHtml;\n};\n\nconst classSectionHeader = (ctx, html, classes, schoolId) => {\n if (!schoolId) {\n return;\n }\n return html`\n
\n
\n
\n ${breadCrumbs(ctx, html, ctx.data.groupInfo[schoolId]?.split_path || [])}\n
\n
\n ${!ctx.data.disabled && !ctx.isTeacher ? html`\n
\n \n \n
\n ctx.triggerSearch(e, classes[0])}\"\n .placeholder=\"${until(ctx.i18n.__('', 'Search Classes'))}\"\n .column-layout=\"${true}\"\n reset-text=\"Reset\">\n ${ctx.loading ?\n html`` :\n getClassDropdownContent(ctx, html)\n }\n
\n
\n
` :\n '' }\n
\n `;\n};\n\nconst schoolCard = (classes, schoolId, ctx, html) => html`\n${classSectionHeader(ctx, html, classes, schoolId)}\n
\n
\n ${until(ctx._r(ctx.__('', 'Classes (%r1%):'), classes?.length ? classes.length : ctx.isTeacher && ctx.groupName ? 1 : 0))}\n ${!ctx.data.disabled && !ctx.isTeacher ? html`` : ''}\n
\n
\n
\n
    \n ${classes?.map((classInfo) => html`\n
  • \n
    \n
    ctx.classClicked({classInfo})}\"\n role=\"button\" type=\"button\"\n @keypress=\"${(e) => (e.key === 'Enter') ? ctx.classClicked({classInfo}): null}\"\n >\n ${classInfo.name}\n
    \n
    \n ${!ctx.data.disabled && !ctx.isTeacher ? html`\n \n ` : ``}\n
    \n
    \n
  • \n `)}\n ${classes.length === 0 && ctx.groupName && ctx.isTeacher ? html`\n
    \n
  • \n
    \n ${ctx.groupName}\n
    \n
  • ` : ``}\n
\n ${!ctx.data.disabled && !ctx.isTeacher ? html`

${until(ctx.__('', 'Tap the X next to a class name to remove it.'))}

` : ''}\n
\n
\n`;\n\nconst breadCrumbs = (ctx, html, pathArray) => {\n if (!Object.keys(ctx.data.groupInfo || {}).length) {\n return;\n }\n\n const breadCrumb = [];\n pathArray.map((id) => {\n breadCrumb.push(ctx.data.groupInfo[id].name);\n });\n\n return breadCrumb.map((name, index) => html`\n ${name}\n ${(index === (breadCrumb.length - 1)) ?\n html`` :\n html`/`}`);\n};\n\nfunction* withDividers(html, itemsByKey, cb) {\n let index = 0;\n const schoolCount = Object.keys(itemsByKey).length;\n for (const [schoolId, items] of Object.entries(itemsByKey)) {\n yield cb(items, schoolId);\n if (index !== (schoolCount.length - 1)) {\n yield html`
`;\n }\n index += 1;\n }\n}\n\n\nexport default (ctx, html) => html`\n ${ctx.data?.addNewSchool ?\n html`\n \n ${schoolCard([], null, ctx, html)}\n ` :\n html``}\n ${withDividers(html, ctx.data.classesBySchool, (classes, schoolId) => schoolCard(classes, schoolId, ctx, html))}\n`;\n","import styles from './template.css';\nimport template from './template';\nimport {i18nMixin} from '@aofl/i18n-mixin';\nimport {AoflElement, customElement, property} from '@aofl/element';\nimport {mapStatePropertiesMixin} from '@aofl/map-state-properties-mixin';\nimport {storeInstance} from '@aofl/store/dist/legacy';\nimport {groupTypes, sdoNs, userTypes, modals} from '../constants-enumerate';\nimport translations from '../i18n';\nimport {ApiService} from '@modules/api-service';\nimport {SimpleModal} from '@modules/simple-modal';\n\n/**\n * @summary ClassSelection\n * @extends {AoflElement}\n */\n@customElement('class-selection')\nclass ClassSelection extends i18nMixin(mapStatePropertiesMixin(AoflElement)) {\n /**\n * @readonly\n */\n static is = 'class-selection';\n\n /**\n * Creates an instance of ClassSelection.\n */\n constructor() {\n super();\n this.translations = translations;\n this.storeInstance = storeInstance;\n }\n\n @property({type: Object})\n groups = {};\n\n @property({type: Object})\n data = {};\n\n @property({type: Array})\n groupsToHide = [];\n\n @property({type: Array})\n selectedGroupIds = [];\n\n @property({type: Object})\n classSearchResponse = {};\n\n @property({type: Number, mapState: `${sdoNs.SESSION}.group_info.id`, store: storeInstance})\n rootGroupId = 0;\n\n @property({type: Number, mapState: `${sdoNs.SESSION}.$classLevel`, store: storeInstance})\n classLevel = 0;\n\n @property({type: Object})\n search = void 0;\n\n @property({type: Number})\n classSearchLimit = 10;\n\n @property({type: String, mapState: `${sdoNs.SESSION}.type`, store: storeInstance})\n currentUserType = '';\n\n @property({type: String, attribute: false, mapState: `${sdoNs.SESSION}.group_info.name`, store: storeInstance})\n groupName = '';\n\n @property({type: String, attribute: false, mapState: `${sdoNs.SESSION}.group_info.path`, store: storeInstance})\n rolePath = '';\n\n @property({type: Boolean})\n isTeacher = false;\n\n connectedCallback() {\n super.connectedCallback();\n this.isTeacher = (this.currentUserType === userTypes.TEACHER);\n\n const classesBySchoolItems = Object.values(this.data.classesBySchool);\n if (classesBySchoolItems.length > 0) {\n classesBySchoolItems.forEach((element) => {\n this.groupsToHide = this.groupsToHide.concat(element.map((e) => e.id));\n });\n }\n }\n\n triggerSearch(e, groupInfo) {\n this.search = e.detail;\n this.getSiblingClasses(groupInfo);\n }\n\n async getSiblingClasses(classInfo) {\n const search = (this.search?.query) ?\n this.search :\n void 0;\n this.classSearchResponse = await ApiService.groupSearch(\n search,\n {\n path: classInfo.path,\n level: classInfo.path.split('.').length,\n type: groupTypes.CLASSROOM\n },\n {\n fields: ['id', 'name'],\n direction: 'asc',\n limit: this.classSearchLimit,\n },\n true\n );\n }\n\n async addClass(classInfo) {\n this.groupsToHide.push(classInfo.id);\n let path = classInfo.path.replace(this.rolePath, '').split('.');\n path.pop();\n path = path.map((id) => parseInt(id, 10));\n const groupPathInfo = await ApiService.groupGet(path, ['id', 'name', 'path']);\n groupPathInfo.results[classInfo.id] = classInfo;\n this.selectedGroupIds = [];\n\n this.dispatchEvent(new CustomEvent('data-updated', {\n composed: true,\n bubbles: true,\n detail: {\n action: 'add',\n selectedGroups: Object.values(groupPathInfo.results),\n class: classInfo\n }\n }));\n }\n\n onGroupSelect(e) {\n const state = storeInstance.getState();\n const lastInfo = e.target.selectedGroupsInfo[e.detail.groupInfo.id];\n const fullPath = e.detail.groupInfo.path + e.detail.groupInfo.id + '.';\n const groupInfo = state[sdoNs.SESSION].group_info;\n const pathArr = fullPath.split('.');\n pathArr.pop();\n this.selectedGroupIds = pathArr.slice(groupInfo.path.split('.').length);\n this.selectedGroupsInfo = e.target.selectedGroupsInfo;\n if (lastInfo.path.split('.').length === this.classLevel) {\n this.groupsToHide.push(e.detail.groupInfo.id);\n this.selectedGroupIds = [];\n const classInfo = {\n ...lastInfo,\n full_path: lastInfo.path + lastInfo.id + '.'\n };\n this.dispatchEvent(new CustomEvent('data-updated', {\n composed: true,\n bubbles: true,\n detail: {\n action: 'add',\n selectedGroups: Object.values(e.target.selectedGroupsInfo),\n class: classInfo\n }\n }));\n }\n }\n\n removeClasses(classes) {\n if (this.data.addNewSchool && classes.length === 0) {\n this.dispatchEvent(new CustomEvent('data-updated', {\n composed: true,\n bubbles: true,\n detail: {\n action: 'removeEmpty'\n }\n }));\n } else {\n classes.map((classInfo, index) => {\n classInfo.index -= index;\n this.removeClass(classInfo);\n });\n }\n }\n\n removeClass(classInfo) {\n const index = this.groupsToHide.indexOf(classInfo.id);\n if (index > -1) this.groupsToHide.splice(index, 1);\n\n this.dispatchEvent(new CustomEvent('data-updated', {\n composed: true,\n bubbles: true,\n detail: {\n action: 'remove',\n classInfo\n }\n }));\n }\n\n classClicked(e) {\n SimpleModal.show(modals.CLASS_EDIT, {id: parseInt(e.classInfo.id, 10)}, e);\n }\n\n /**\n * @return {Object}\n */\n render() {\n return super.render({\n default: {\n template,\n styles: [styles]\n }\n });\n }\n}\n\nexport default ClassSelection;\n","export default {\n 'es-US': () => import('./translations_es-US.json'),\n\n 'ja-JP': () => import('./translations_ja-JP.json'),\n\n 'zh-CN': () => import('./translations_zh-CN.json'),\n\n 'zh-TW': () => import('./translations_zh-TW.json'),\n}","module.exports = __webpack_public_path__ + \"b679df282cd2a70fd0049767e16c6bfb.webp\";","exports = module.exports = require(\"../../../node_modules/css-loader/dist/runtime/api.js\")(false);\n// Imports\nvar getUrl = require(\"../../../node_modules/css-loader/dist/runtime/getUrl.js\");\nvar ___CSS_LOADER_URL___0___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-light.woff2\"));\nvar ___CSS_LOADER_URL___1___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-lightit.woff2\"));\nvar ___CSS_LOADER_URL___2___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-reg.woff2\"));\nvar ___CSS_LOADER_URL___3___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-regit.woff2\"));\nvar ___CSS_LOADER_URL___4___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-sbold.woff2\"));\nvar ___CSS_LOADER_URL___5___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-sboldit.woff2\"));\nvar ___CSS_LOADER_URL___6___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-bold.woff2\"));\nvar ___CSS_LOADER_URL___7___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-boldit.woff2\"));\nvar ___CSS_LOADER_URL___8___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-Light.woff2\"));\nvar ___CSS_LOADER_URL___9___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-LightIt.woff2\"));\nvar ___CSS_LOADER_URL___10___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-Regular.woff2\"));\nvar ___CSS_LOADER_URL___11___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-RegularIt.woff2\"));\nvar ___CSS_LOADER_URL___12___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-Semibold.woff2\"));\nvar ___CSS_LOADER_URL___13___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-SemiboldIt.woff2\"));\nvar ___CSS_LOADER_URL___14___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-Bold.woff2\"));\nvar ___CSS_LOADER_URL___15___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-BoldIt.woff2\"));\nvar ___CSS_LOADER_URL___16___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-ExtraBold.woff2\"));\nvar ___CSS_LOADER_URL___17___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-ExtraBoldIt.woff2\"));\nvar ___CSS_LOADER_URL___18___ = getUrl(require(\"../../template/main/fonts/aofl-icons/icomoon.woff2?c6f21u\"));\n// Module\nexports.push([module.id, \"/*! @aofl-component */:root{--blue:#0d6efd;--indigo:#6610f2;--purple:#8b42ca;--pink:#e83e8c;--red:#e50b0a;--orange:#e17a05;--yellow:#ffc107;--green:#3c8104;--teal:#20c997;--cyan:#53c9dc;--white:#fff;--gray:#6b6b6b;--gray-dark:#343a40;--light-green:#b1dd53;--table-border-color:#d8d8d8;--gray-100:#f2f2f2;--gray-200:#d9d9d9;--gray-300:#d8d8d8;--gray-400:#ced4da;--gray-500:#adb5bd;--gray-600:#6c757d;--gray-700:#4a4a4a;--gray-800:#343a40;--gray-900:#212529;--gray-accessibility:#6b6b6b;--primary:#0d6efd;--secondary:#adb5bd;--success:#3c8104;--info:#cfe2ff;--warning:#e17a05;--danger:#d20a09;--light:#f8f9fa;--dark:#000;--breakpoint-xxs:0;--breakpoint-xs:375px;--breakpoint-sm:576px;--breakpoint-md:768px;--breakpoint-lg:992px;--breakpoint-xl:1200px;--font-family-sans-serif:aofl-sans,Arial,Helvetica,sans-serif;--font-family-monospace:SFMono-Regular,Menlo,Monaco,Consolas,\\\"Liberation Mono\\\",\\\"Courier New\\\",monospace;--z-index-dropdown:1000;--z-index-sticky:1020;--z-index-fixed:1030;--z-index-modal-backdrop:1040;--z-index-modal:1050;--z-index-popover:1060;--z-index-tooltip:1070;--header-height:6rem;--content-height:calc(100vh - 6rem);--sidepanel-width:20rem;--purple-color:#641da3;--purple-600:#956abc;--purple-400:#c7afdd;--purple-200:#e0d2ed;--struggling:#f6993b;--below-target:#ffcf00;--in_progress:#1280f5;--prior_knowledge:#edf887;--mastery_achieved:#69d112;--inactive:#d8d8d8}route-view{max-width:1200px}@font-face{font-family:aofl-sans;font-style:normal;font-weight:300;src:url(\" + ___CSS_LOADER_URL___0___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:italic;font-weight:300;src:url(\" + ___CSS_LOADER_URL___1___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:normal;font-weight:400;src:url(\" + ___CSS_LOADER_URL___2___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:italic;font-weight:400;src:url(\" + ___CSS_LOADER_URL___3___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:normal;font-weight:600;src:url(\" + ___CSS_LOADER_URL___4___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:italic;font-weight:600;src:url(\" + ___CSS_LOADER_URL___5___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:normal;font-weight:700;src:url(\" + ___CSS_LOADER_URL___6___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:italic;font-weight:700;src:url(\" + ___CSS_LOADER_URL___7___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:normal;font-weight:300;src:url(\" + ___CSS_LOADER_URL___8___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:italic;font-weight:300;src:url(\" + ___CSS_LOADER_URL___9___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:normal;font-weight:400;src:url(\" + ___CSS_LOADER_URL___10___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:italic;font-weight:400;src:url(\" + ___CSS_LOADER_URL___11___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:normal;font-weight:600;src:url(\" + ___CSS_LOADER_URL___12___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:italic;font-weight:600;src:url(\" + ___CSS_LOADER_URL___13___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:normal;font-weight:700;src:url(\" + ___CSS_LOADER_URL___14___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:italic;font-weight:700;src:url(\" + ___CSS_LOADER_URL___15___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:normal;font-weight:800;src:url(\" + ___CSS_LOADER_URL___16___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:italic;font-weight:800;src:url(\" + ___CSS_LOADER_URL___17___ + \") format(\\\"woff2\\\")}@font-face{font-family:icomoon;src:url(\" + ___CSS_LOADER_URL___18___ + \") format(\\\"woff2\\\");font-weight:400;font-style:normal;font-display:block}[class*=\\\" ai-\\\"],[class^=ai-]{font-family:icomoon!important;speak:never;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.ai-chevron-down:before{content:\\\"\\\\e90d\\\"}*,:after,:before{box-sizing:border-box}html{font-family:sans-serif;line-height:1.15;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:rgba(0,0,0,0)}figcaption,main,nav,section{display:block}[tabindex=\\\"-1\\\"]:focus{outline:0!important}strong{font-weight:bolder}caption{padding-top:.75rem;padding-bottom:.75rem;color:#6c757d;text-align:left;caption-side:bottom}button{border-radius:0}button:focus{outline:1px dotted;outline:5px auto -webkit-focus-ring-color}button,input{margin:0;font-family:inherit;font-size:inherit;line-height:inherit;overflow:visible}button{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]:not(:disabled),[type=reset]:not(:disabled),[type=submit]:not(:disabled),button:not(:disabled){cursor:pointer}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{padding:0;border-style:none}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}input[type=date],input[type=datetime-local],input[type=month],input[type=time]{-webkit-appearance:listbox}legend{display:block;width:100%;max-width:100%;padding:0;margin-bottom:.5rem;font-size:1.5rem;line-height:inherit;color:inherit;white-space:normal}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:none}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}summary{display:list-item;cursor:pointer}template{display:none}[hidden]{display:none!important}*{-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important}html{font-size:62.5%;height:100%}link-to{color:#0d6efd;text-decoration:none;background-color:transparent}link-to:hover{color:rgb(0,86.1,178.5);text-decoration:none;cursor:pointer}route-view{display:none;flex:1}site-header{background-color:#fff;display:none;position:-webkit-sticky;position:sticky;top:0;height:var(--header-height)}#main{display:none;flex:1 auto;max-width:100%;overflow:hidden;flex-direction:column;overflow-y:scroll}.loaded #main,.loaded site-header,body.loaded,route-view.loaded{display:flex}route-view.left-panel-active{padding-left:var(--sidepanel-width)}input[type=checkbox],input[type=radio]{cursor:pointer}.btn{display:inline-block;font-weight:400;color:#000;text-align:center;vertical-align:middle;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;background-color:transparent;border:1px solid transparent;padding:.375rem .75rem;font-size:1.6rem;line-height:1.5;border-radius:.25rem;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.btn{transition:none}}.btn:hover{color:#000;text-decoration:none}.btn:focus{outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.btn.disabled,.btn:disabled{opacity:.65}.btn-primary{color:#fff;background-color:#0d6efd;border-color:#0d6efd}.btn-primary:hover{color:#fff;background-color:rgb(1.8668032787,92.4067622951,225.8831967213);border-color:rgb(1.762295082,87.2336065574,213.237704918)}.btn-primary:focus{box-shadow:0 0 0 .2rem rgba(49.3,131.75,253.3,.5)}.btn-primary.disabled,.btn-primary:disabled{color:#fff;background-color:#0d6efd;border-color:#0d6efd}.btn-primary:not(:disabled):not(.disabled):active{color:#fff;background-color:rgb(1.762295082,87.2336065574,213.237704918);border-color:rgb(1.6577868852,82.0604508197,200.5922131148)}.btn-primary:not(:disabled):not(.disabled):active:focus{box-shadow:0 0 0 .2rem rgba(49.3,131.75,253.3,.5)}.btn:disabled{cursor:not-allowed}.btn.disabled,link-to.btn.disabled,link-to.btn:disabled,link-to.btn[disabled]{pointer-events:none}button,button:active{outline:none}.btn:focus-visible,[tabindex=\\\"0\\\"]:focus-visible,aofl-list-option:focus-visible,button[type=button]:focus-visible,collapse-button:focus-visible{outline:1px solid #e50b0a;border:1px solid #e50b0a}.btn-primary{font-weight:600;border-width:2px}.btn.disabled,.btn:disabled{background:#cfe2ff;border-color:#cfe2ff;color:#0d6efd;opacity:1}collapse-button .ai.ai-chevron-down:before{transform:rotate(-90deg);display:inline-block}ems-dropdown>button.btn{display:flex;align-items:center;border:1px solid var(--gray)}collapse-button[open] .ai.ai-chevron-down:before{transform:rotate(180deg)}collapse-button .ai.ai-chevron-down,ems-dropdown .ai.ai-chevron-down{font-size:.8rem}collapse-button .ai-chevron-down:before,ems-dropdown .ai-chevron-down:before{content:\\\"\\\\e90d\\\"}collapse-button[open] .ai-chevron-down:before,ems-dropdown[open] .ai-chevron-down:before{content:\\\"\\\\e90f\\\"}@keyframes progress-bar-stripes{0%{background-position:1.6rem 0}to{background-position:0 0}}.modal-container{background-color:rgba(0,0,0,.2);position:fixed;top:0;bottom:0;right:0;left:0;z-index:var(--z-index-modal)}.modal-container :first-child{overflow:auto}.modal{position:relative;display:block;height:100vh}.modal-dialog-centered.modal-dialog-scrollable{height:auto;max-height:calc(100% - 2.8rem);min-height:auto}.modal-body,.modal-content,.modal-footer,.modal-header{border:none}.modal-header{font-size:2rem;padding:2.4rem}.modal-body{padding:0 2.4rem 4.8rem}.colored-header{color:#fff}.modal-body p{text-align:left}.colored-header-primary{background-color:#0d6efd}.colored-header-secondary{background-color:#adb5bd}.colored-header-success{background-color:#3c8104}.colored-header-info{background-color:#cfe2ff}.colored-header-warning{background-color:#e17a05}.colored-header-danger{background-color:#d20a09}.colored-header-light{background-color:#f8f9fa}.colored-header-dark{background-color:#000}@keyframes spinner-border{to{transform:rotate(1turn)}}.spinner-border{display:inline-block;width:2rem;height:2rem;vertical-align:text-bottom;border:.25em solid;border-right:.25em solid transparent;border-radius:50%;animation:spinner-border .75s linear infinite}@keyframes spinner-grow{0%{transform:scale(0)}50%{opacity:1}}.d-flex{display:flex!important}.justify-content-between{justify-content:space-between!important}.sr-only{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.shadow-sm{box-shadow:0 .2rem .4rem #d8d8d8!important}.font-weight-semibold{font-weight:600!important}[hidden]{visibility:hidden!important;height:0!important;width:0!important;min-height:unset!important}@media print{*,:after,:before{text-shadow:none!important;box-shadow:none!important}@page{size:a3}}@media print{main::-webkit-scrollbar{display:none}main{-ms-overflow-style:none;scrollbar-width:none}}@page{size:A4;margin:20mm 16mm 20mm 16mm}:host{display:block;max-width:270px}.btn-primary{font-size:1.6rem;width:100%;padding-bottom:7px;padding-top:7px}.ai-chevron-down{font-size:1rem}\", \"\"]);\n","exports = module.exports = require(\"../../../../node_modules/css-loader/dist/runtime/api.js\")(false);\n// Imports\nvar getUrl = require(\"../../../../node_modules/css-loader/dist/runtime/getUrl.js\");\nvar ___CSS_LOADER_URL___0___ = getUrl(require(\"../../../template/main/fonts/aofl-sans/aoflsans-light.woff2\"));\nvar ___CSS_LOADER_URL___1___ = getUrl(require(\"../../../template/main/fonts/aofl-sans/aoflsans-lightit.woff2\"));\nvar ___CSS_LOADER_URL___2___ = getUrl(require(\"../../../template/main/fonts/aofl-sans/aoflsans-reg.woff2\"));\nvar ___CSS_LOADER_URL___3___ = getUrl(require(\"../../../template/main/fonts/aofl-sans/aoflsans-regit.woff2\"));\nvar ___CSS_LOADER_URL___4___ = getUrl(require(\"../../../template/main/fonts/aofl-sans/aoflsans-sbold.woff2\"));\nvar ___CSS_LOADER_URL___5___ = getUrl(require(\"../../../template/main/fonts/aofl-sans/aoflsans-sboldit.woff2\"));\nvar ___CSS_LOADER_URL___6___ = getUrl(require(\"../../../template/main/fonts/aofl-sans/aoflsans-bold.woff2\"));\nvar ___CSS_LOADER_URL___7___ = getUrl(require(\"../../../template/main/fonts/aofl-sans/aoflsans-boldit.woff2\"));\nvar ___CSS_LOADER_URL___8___ = getUrl(require(\"../../../template/main/fonts/abcmouse-sans/ABCmouseSans-Light.woff2\"));\nvar ___CSS_LOADER_URL___9___ = getUrl(require(\"../../../template/main/fonts/abcmouse-sans/ABCmouseSans-LightIt.woff2\"));\nvar ___CSS_LOADER_URL___10___ = getUrl(require(\"../../../template/main/fonts/abcmouse-sans/ABCmouseSans-Regular.woff2\"));\nvar ___CSS_LOADER_URL___11___ = getUrl(require(\"../../../template/main/fonts/abcmouse-sans/ABCmouseSans-RegularIt.woff2\"));\nvar ___CSS_LOADER_URL___12___ = getUrl(require(\"../../../template/main/fonts/abcmouse-sans/ABCmouseSans-Semibold.woff2\"));\nvar ___CSS_LOADER_URL___13___ = getUrl(require(\"../../../template/main/fonts/abcmouse-sans/ABCmouseSans-SemiboldIt.woff2\"));\nvar ___CSS_LOADER_URL___14___ = getUrl(require(\"../../../template/main/fonts/abcmouse-sans/ABCmouseSans-Bold.woff2\"));\nvar ___CSS_LOADER_URL___15___ = getUrl(require(\"../../../template/main/fonts/abcmouse-sans/ABCmouseSans-BoldIt.woff2\"));\nvar ___CSS_LOADER_URL___16___ = getUrl(require(\"../../../template/main/fonts/abcmouse-sans/ABCmouseSans-ExtraBold.woff2\"));\nvar ___CSS_LOADER_URL___17___ = getUrl(require(\"../../../template/main/fonts/abcmouse-sans/ABCmouseSans-ExtraBoldIt.woff2\"));\nvar ___CSS_LOADER_URL___18___ = getUrl(require(\"../../../template/main/fonts/aofl-icons/icomoon.woff2?c6f21u\"));\n// Module\nexports.push([module.id, \"/*! @aofl-component */:root{--blue:#0d6efd;--indigo:#6610f2;--purple:#8b42ca;--pink:#e83e8c;--red:#e50b0a;--orange:#e17a05;--yellow:#ffc107;--green:#3c8104;--teal:#20c997;--cyan:#53c9dc;--white:#fff;--gray:#6b6b6b;--gray-dark:#343a40;--light-green:#b1dd53;--table-border-color:#d8d8d8;--gray-100:#f2f2f2;--gray-200:#d9d9d9;--gray-300:#d8d8d8;--gray-400:#ced4da;--gray-500:#adb5bd;--gray-600:#6c757d;--gray-700:#4a4a4a;--gray-800:#343a40;--gray-900:#212529;--gray-accessibility:#6b6b6b;--primary:#0d6efd;--secondary:#adb5bd;--success:#3c8104;--info:#cfe2ff;--warning:#e17a05;--danger:#d20a09;--light:#f8f9fa;--dark:#000;--breakpoint-xxs:0;--breakpoint-xs:375px;--breakpoint-sm:576px;--breakpoint-md:768px;--breakpoint-lg:992px;--breakpoint-xl:1200px;--font-family-sans-serif:aofl-sans,Arial,Helvetica,sans-serif;--font-family-monospace:SFMono-Regular,Menlo,Monaco,Consolas,\\\"Liberation Mono\\\",\\\"Courier New\\\",monospace;--z-index-dropdown:1000;--z-index-sticky:1020;--z-index-fixed:1030;--z-index-modal-backdrop:1040;--z-index-modal:1050;--z-index-popover:1060;--z-index-tooltip:1070;--header-height:6rem;--content-height:calc(100vh - 6rem);--sidepanel-width:20rem;--purple-color:#641da3;--purple-600:#956abc;--purple-400:#c7afdd;--purple-200:#e0d2ed;--struggling:#f6993b;--below-target:#ffcf00;--in_progress:#1280f5;--prior_knowledge:#edf887;--mastery_achieved:#69d112;--inactive:#d8d8d8}route-view{max-width:1200px}@font-face{font-family:aofl-sans;font-style:normal;font-weight:300;src:url(\" + ___CSS_LOADER_URL___0___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:italic;font-weight:300;src:url(\" + ___CSS_LOADER_URL___1___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:normal;font-weight:400;src:url(\" + ___CSS_LOADER_URL___2___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:italic;font-weight:400;src:url(\" + ___CSS_LOADER_URL___3___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:normal;font-weight:600;src:url(\" + ___CSS_LOADER_URL___4___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:italic;font-weight:600;src:url(\" + ___CSS_LOADER_URL___5___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:normal;font-weight:700;src:url(\" + ___CSS_LOADER_URL___6___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:italic;font-weight:700;src:url(\" + ___CSS_LOADER_URL___7___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:normal;font-weight:300;src:url(\" + ___CSS_LOADER_URL___8___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:italic;font-weight:300;src:url(\" + ___CSS_LOADER_URL___9___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:normal;font-weight:400;src:url(\" + ___CSS_LOADER_URL___10___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:italic;font-weight:400;src:url(\" + ___CSS_LOADER_URL___11___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:normal;font-weight:600;src:url(\" + ___CSS_LOADER_URL___12___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:italic;font-weight:600;src:url(\" + ___CSS_LOADER_URL___13___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:normal;font-weight:700;src:url(\" + ___CSS_LOADER_URL___14___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:italic;font-weight:700;src:url(\" + ___CSS_LOADER_URL___15___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:normal;font-weight:800;src:url(\" + ___CSS_LOADER_URL___16___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:italic;font-weight:800;src:url(\" + ___CSS_LOADER_URL___17___ + \") format(\\\"woff2\\\")}@font-face{font-family:icomoon;src:url(\" + ___CSS_LOADER_URL___18___ + \") format(\\\"woff2\\\");font-weight:400;font-style:normal;font-display:block}[class*=\\\" ai-\\\"],[class^=ai-]{font-family:icomoon!important;speak:never;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*,:after,:before{box-sizing:border-box}html{font-family:sans-serif;line-height:1.15;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:rgba(0,0,0,0)}figcaption,main,nav,section{display:block}[tabindex=\\\"-1\\\"]:focus{outline:0!important}strong{font-weight:bolder}caption{padding-top:.75rem;padding-bottom:.75rem;color:#6c757d;text-align:left;caption-side:bottom}button{border-radius:0}button:focus{outline:1px dotted;outline:5px auto -webkit-focus-ring-color}button,input,select{margin:0;font-family:inherit;font-size:inherit;line-height:inherit}button,input{overflow:visible}button,select{text-transform:none}select{word-wrap:normal}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]:not(:disabled),[type=reset]:not(:disabled),[type=submit]:not(:disabled),button:not(:disabled){cursor:pointer}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{padding:0;border-style:none}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}input[type=date],input[type=datetime-local],input[type=month],input[type=time]{-webkit-appearance:listbox}legend{display:block;width:100%;max-width:100%;padding:0;margin-bottom:.5rem;font-size:1.5rem;line-height:inherit;color:inherit;white-space:normal}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:none}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}summary{display:list-item;cursor:pointer}template{display:none}[hidden]{display:none!important}*{-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important}html{font-size:62.5%;height:100%}link-to{color:#0d6efd;text-decoration:none;background-color:transparent}link-to:hover{color:rgb(0,86.1,178.5);text-decoration:none;cursor:pointer}route-view{display:none;flex:1}site-header{background-color:#fff;display:none;position:-webkit-sticky;position:sticky;top:0;height:var(--header-height)}#main{display:none;flex:1 auto;max-width:100%;overflow:hidden;flex-direction:column;overflow-y:scroll}.loaded #main,.loaded site-header,body.loaded,route-view.loaded{display:flex}route-view.left-panel-active{padding-left:var(--sidepanel-width)}input[type=checkbox],input[type=radio]{cursor:pointer}button,button:active{outline:none}[tabindex=\\\"0\\\"]:focus-visible,aofl-list-option:focus-visible,button[type=button]:focus-visible,collapse-button:focus-visible{outline:1px solid #e50b0a;border:1px solid #e50b0a}@keyframes progress-bar-stripes{0%{background-position:1.6rem 0}to{background-position:0 0}}.modal-container{background-color:rgba(0,0,0,.2);position:fixed;top:0;bottom:0;right:0;left:0;z-index:var(--z-index-modal)}.modal-container :first-child{overflow:auto}.modal{position:relative;display:block;height:100vh}.modal-dialog-centered.modal-dialog-scrollable{height:auto;max-height:calc(100% - 2.8rem);min-height:auto}.modal-body,.modal-content,.modal-footer,.modal-header{border:none}.modal-header{font-size:2rem;padding:2.4rem}.modal-body{padding:0 2.4rem 4.8rem}.colored-header{color:#fff}.modal-body p{text-align:left}.colored-header-primary{background-color:#0d6efd}.colored-header-secondary{background-color:#adb5bd}.colored-header-success{background-color:#3c8104}.colored-header-info{background-color:#cfe2ff}.colored-header-warning{background-color:#e17a05}.colored-header-danger{background-color:#d20a09}.colored-header-light{background-color:#f8f9fa}.colored-header-dark{background-color:#000}@keyframes spinner-border{to{transform:rotate(1turn)}}@keyframes spinner-grow{0%{transform:scale(0)}50%{opacity:1}}[hidden]{visibility:hidden!important;height:0!important;width:0!important;min-height:unset!important}@media print{*,:after,:before{text-shadow:none!important;box-shadow:none!important}@page{size:a3}}@media print{main::-webkit-scrollbar{display:none}main{-ms-overflow-style:none;scrollbar-width:none}}@page{size:A4;margin:20mm 16mm 20mm 16mm}:host{display:block}aofl-select-list{display:flex;width:100%}::slotted(aofl-list-option){cursor:pointer}::slotted(aofl-list-option[selected]){font-weight:700}\", \"\"]);\n","const renderLi = (ctx, item, index, html) => html`\n
  • \n ${item}\n
  • \n`;\n\nconst renderRange = (ctx, item, index, html) => html`\n ${(item === ctx['current-page'] - ctx['visible-range']) || ctx.disabled ? html`\n
  • \n \n
  • \n `: html`${(item === ctx['current-page'] + ctx['visible-range']) || ctx.disabled ? html`\n
  • \n \n
  • \n `: html`\n \n ${item > ctx['current-page'] - ctx['visible-range'] && item < ctx['current-page'] + ctx['visible-range'] ? html`\n ${renderLi(ctx, item, index, html)} `: '' } `} `}\n`;\n\nexport default (ctx, html) => html`\n${ctx['disable-links'] ? '' : html`\n\n`}\n${ctx['enable-goto'] ? html`\n
    \n \n
    \n`;\n","import styles from './template.css';\nimport template from './template';\nimport {AoflElement, customElement, property} from '@aofl/element';\nimport {eventOptions} from 'lit-element';\n\n/**\n * @summary PaginationElement\n * @extends {AoflElement}\n */\n@customElement('pagination-element')\nclass PaginationElement extends AoflElement {\n /**\n * Creates an instance of PaginationElement.\n */\n constructor() {\n super();\n }\n\n @property({converter(value) {\n const arr = [];\n for (let i = 0; i < Number(value); i++) {\n arr.push(i + 1);\n }\n return arr;\n }})\n ['num-pages'] = [];\n @property({type: Number})\n ['current-page'] = 1;\n @property({type: Number})\n ['visible-range'] = 7;\n @property({type: Boolean})\n ['disable-prev-next'] = false;\n @property({type: Boolean})\n ['disable-pages'] = false;\n @property({type: Boolean})\n ['enable-goto'] = false;\n @property({type: Boolean})\n ['disable-links'] = false;\n @property({type: Boolean})\n disabled = false;\n\n\n /**\n * @readonly\n */\n static get is() {\n return 'pagination-element';\n }\n\n @eventOptions({capture: true})\n clickHandler(e) {\n e.preventDefault();\n const target = e.currentTarget;\n this.setCurrentPage(target.dataset.pageNumber);\n }\n\n gotoSubmit(e) {\n e.preventDefault();\n if (this.disabled) return;\n const formData = new FormData(e.target);\n const selectedPage = formData.get('current-page');\n if (selectedPage > 0 && selectedPage <= this['num-pages'].length) {\n this.setCurrentPage(selectedPage);\n }\n }\n\n setCurrentPage(num) {\n let pageNumber = Number(num);\n if (pageNumber > this['num-pages']) {\n pageNumber = this['num-pages'];\n } else if (pageNumber < 0) {\n pageNumber = 0;\n }\n this.dispatchEvent(new CustomEvent('page-change', {\n composed: true,\n detail: {\n pageNumber\n }\n }));\n }\n /**\n *\n * @return {Object}\n */\n render() {\n return super.render(template, [styles]);\n }\n}\n\nexport {PaginationElement};\n\n","import {\n sdoNs,\n} from '@modules/constants-enumerate';\nimport {storeInstance} from '@aofl/store/dist/legacy';\n\nconst sdo = {\n namespace: sdoNs.TEACHER_DASHBOARD,\n mutations: {\n\n /**\n * @return {Object}\n */\n init() {\n return {\n loading: true,\n };\n },\n setNodeInfo(subState, payload) {\n const nodes = {...subState.nodes};\n nodes[payload.id] = payload;\n return {\n ...subState,\n nodes\n };\n },\n },\n decorators: [\n ],\n};\n\nstoreInstance.addState(sdo);\n","import {until} from 'lit-html/directives/until';\nimport '../roster-export-link';\nimport {pages, jobStatuses, permissions, dynamicPages} from '@modules/constants-enumerate';\nimport {hasOneOfPermissions} from '@modules/permissions';\nimport {nothing} from 'lit-html';\n\nconst downloadLimitIndex = 10;\nlet gotlastSuccessfulRoster = false;\n\nexport default (ctx, html) => {\n gotlastSuccessfulRoster = false;\n let rows;\n if (ctx.filteredRosters && ctx.filteredRosters?.length > 0) {\n rows = html`${ctx.filteredRosters.map((roster, index) => renderRow(ctx, html, roster, index))}`;\n }\n\n return html`\n
    \n
    \n

    ${until(ctx.__('', 'Roster Archives'))}

    \n
    \n
    \n \n
    \n
    \n\n
    ${rows}
    \n `;\n};\n\nconst renderRow = (ctx, html, roster, index) => {\n return html`\n
    \n \n
    \n ${roster.params_json.original_filename}\n ${roster.$startTime}\n \n
    \n \n \n \n ${roster.status !== jobStatuses.FAILED ? renderSuccess(ctx, html, roster) : nothing}\n ${renderRosterActions(ctx, html, roster, index)}\n \n
    \n `;\n};\n\nconst renderSummary = (html, roster, section, href, label) => {\n if (!roster.summary[section]) {\n return;\n }\n\n return html`\n
    \n \n ${until(label)}\n \n
    \n `;\n};\n\nconst renderSuccess = (ctx, html, roster) => {\n const teachersLabel = ctx.__('', 'Teachers');\n return html`\n
    \n ${renderSummary(html, roster, 'students', pages.STUDENT_SEARCH, ctx.__('', 'Students'))}\n ${renderGroupSummaries(ctx, html, roster)}\n ${renderSummary(html, roster, 'classrooms', pages.CLASSES_SEARCH, ctx.__('', 'Classes'))}\n ${renderSummary(html, roster, 'users', pages.TEACHER_SEARCH, teachersLabel)}\n ${renderSummary(html, roster, 'teachers', pages.TEACHER_SEARCH, teachersLabel)}\n ${renderSummary(html, roster, 'admins', pages.TEACHER_SEARCH, ctx.__('', 'Administrators'))}\n
    \n `;\n};\n\nconst renderGroupSummaries = (ctx, html, roster) => html`\n ${Object.keys(roster.summary.groups).map((level) => {\n if (parseInt(level, 10) <= parseInt(ctx.groupInfo.level, 10)) {\n return '';\n }\n return html`\n
    \n \n \n ${ctx.myGroups[level].label}\n \n \n
    \n `;\n })}\n`;\n\nconst renderRosterActions = (ctx, html, roster, index) => html`\n
    \n ${index < downloadLimitIndex ? renderDownloadLink(ctx, html, roster) : ''}\n ${roster.status === jobStatuses.FAILED ? renderErrorsLink(ctx, html, roster) : ''}\n ${isLastSuccessfulRoster(roster) ? html`\n
    \n \n
    ` : ''}\n
    \n`;\n\n\nconst isLastSuccessfulRoster = (roster) => {\n if (roster.status === jobStatuses.DONE && !gotlastSuccessfulRoster) {\n gotlastSuccessfulRoster = true;\n return true;\n }\n return false;\n};\n\n\n\nconst renderDownloadLink = (ctx, html, roster) => {\n if (roster.params_json.data_type !== 'aofl' && roster.params_json.data_type !== 'oneroster') {\n return;\n }\n let downloadLink = '';\n if (ctx.disableDownloadLink[roster.id]) {\n downloadLink = html`\n
    \n Downloading...\n
    \n `;\n } else {\n downloadLink = until(ctx.__('', 'Download'));\n }\n return html`\n
    \n ctx.download(roster.id)}\"\n .disabled=\"${ctx.disableDownloadLink[roster.id]}\"\n >\n ${downloadLink}\n \n
    \n `;\n};\n\nconst renderErrorsLink = (ctx, html, roster) => {\n if (roster.params_json.data_type !== 'aofl' && roster.params_json.data_type !== 'oneroster') {\n return;\n }\n return html`\n
    \n ctx.openErrorsModal(roster, e)}\"\n >${until(ctx.__('', 'Show Errors'))}\n \n
    \n `;\n};\n","import styles from './template.css';\nimport template from './template';\nimport {AoflElement, customElement, property} from '@aofl/element';\nimport {mapStatePropertiesMixin} from '@aofl/map-state-properties-mixin';\nimport {i18nMixin} from '@aofl/i18n-mixin';\nimport translations from '../../i18n';\nimport {storeInstance} from '@aofl/store/dist/legacy';\nimport {licenseAssignMode, modals, pages, sdoNs} from '@modules/constants-enumerate';\nimport {SimpleModal} from '@modules/simple-modal';\nimport {RosterUtils} from '@modules/roster-utils';\n\n/**\n * @summary Roster\n * @extends {mapStatePropertiesMixin(i18nMixin(AoflElement))}\n */\n@customElement('roster-upload-history-list')\nclass RosterUploadHistoryList extends mapStatePropertiesMixin(i18nMixin(AoflElement)) {\n @property({type: Array, attribute: false, mapState: `${sdoNs.USER_JOBS}.$filteredRosters`, store: storeInstance})\n filteredRosters = [];\n\n @property({type: Boolean, attribute: false, mapState: `${sdoNs.SESSION}.successful_roster`, store: storeInstance})\n hasSuccessfulRoster = false;\n\n @property({type: Array, attribute: false, mapState: `${sdoNs.SESSION}.$myGroups`, store: storeInstance})\n myGroups = [];\n\n @property({type: Object, mapState: `${sdoNs.SESSION}.group_info`, store: storeInstance})\n groupInfo = {};\n\n @property({type: Array, attribute: false, mapState: `${sdoNs.USER_JOBS}.rosterJobs`, store: storeInstance})\n rosters = [];\n\n @property({type: Boolean, attribute: false})\n disableDownloadLink = false;\n\n /**\n * Creates an instance of RosterUploadHistoryList.\n */\n constructor() {\n super();\n\n this.storeInstance = storeInstance;\n this.translations = translations;\n }\n\n /**\n * @readonly\n */\n static is = 'roster-upload-history-list';\n\n async download(rosterId) {\n this.disableDownloadLink = {...this.disableDownloadLink, [rosterId]: true};\n await RosterUtils.download(rosterId);\n const disableDownloadLink = {...this.disableDownloadLink};\n delete disableDownloadLink[rosterId];\n this.disableDownloadLink = disableDownloadLink;\n }\n\n openLicenseModal(e) {\n this.storeInstance.commit({\n namespace: sdoNs.LICENSE_ASSIGN,\n mutationId: 'setData',\n payload: {\n assignMode: licenseAssignMode.SELECTED,\n rosterId: this.rosters[0].id,\n subsetUrl: pages.STUDENT_SEARCH + `?filters.roster_job_id=${this.rosters[0].id}&wizard=true`\n }\n });\n\n SimpleModal.show(modals.LICENSE_ASSIGN_BULK, {}, e);\n }\n\n openErrorsModal(roster, e) {\n SimpleModal.show(modals.ROSTER_ERRORS_MODAL, roster, e);\n }\n\n /**\n *\n * @return {Object}\n */\n render() {\n return super.render({\n default: {template, styles: [styles]}\n });\n }\n}\n\nexport default RosterUploadHistoryList;\n","module.exports = __webpack_public_path__ + \"85927946993c53109c58eed6c156dbcc.webp\";","export default {\n 'es-US': () => import('./translations_es-US.json'),\n\n 'ja-JP': () => import('./translations_ja-JP.json'),\n\n 'zh-CN': () => import('./translations_zh-CN.json'),\n\n 'zh-TW': () => import('./translations_zh-TW.json'),\n}","exports = module.exports = require(\"../../../node_modules/css-loader/dist/runtime/api.js\")(false);\n// Imports\nvar getUrl = require(\"../../../node_modules/css-loader/dist/runtime/getUrl.js\");\nvar ___CSS_LOADER_URL___0___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-light.woff2\"));\nvar ___CSS_LOADER_URL___1___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-lightit.woff2\"));\nvar ___CSS_LOADER_URL___2___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-reg.woff2\"));\nvar ___CSS_LOADER_URL___3___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-regit.woff2\"));\nvar ___CSS_LOADER_URL___4___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-sbold.woff2\"));\nvar ___CSS_LOADER_URL___5___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-sboldit.woff2\"));\nvar ___CSS_LOADER_URL___6___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-bold.woff2\"));\nvar ___CSS_LOADER_URL___7___ = getUrl(require(\"../../template/main/fonts/aofl-sans/aoflsans-boldit.woff2\"));\nvar ___CSS_LOADER_URL___8___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-Light.woff2\"));\nvar ___CSS_LOADER_URL___9___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-LightIt.woff2\"));\nvar ___CSS_LOADER_URL___10___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-Regular.woff2\"));\nvar ___CSS_LOADER_URL___11___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-RegularIt.woff2\"));\nvar ___CSS_LOADER_URL___12___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-Semibold.woff2\"));\nvar ___CSS_LOADER_URL___13___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-SemiboldIt.woff2\"));\nvar ___CSS_LOADER_URL___14___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-Bold.woff2\"));\nvar ___CSS_LOADER_URL___15___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-BoldIt.woff2\"));\nvar ___CSS_LOADER_URL___16___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-ExtraBold.woff2\"));\nvar ___CSS_LOADER_URL___17___ = getUrl(require(\"../../template/main/fonts/abcmouse-sans/ABCmouseSans-ExtraBoldIt.woff2\"));\nvar ___CSS_LOADER_URL___18___ = getUrl(require(\"../../template/main/fonts/aofl-icons/icomoon.woff2?c6f21u\"));\n// Module\nexports.push([module.id, \"/*! @aofl-component */:root{--blue:#0d6efd;--indigo:#6610f2;--purple:#8b42ca;--pink:#e83e8c;--red:#e50b0a;--orange:#e17a05;--yellow:#ffc107;--green:#3c8104;--teal:#20c997;--cyan:#53c9dc;--white:#fff;--gray:#6b6b6b;--gray-dark:#343a40;--light-green:#b1dd53;--table-border-color:#d8d8d8;--gray-100:#f2f2f2;--gray-200:#d9d9d9;--gray-300:#d8d8d8;--gray-400:#ced4da;--gray-500:#adb5bd;--gray-600:#6c757d;--gray-700:#4a4a4a;--gray-800:#343a40;--gray-900:#212529;--gray-accessibility:#6b6b6b;--primary:#0d6efd;--secondary:#adb5bd;--success:#3c8104;--info:#cfe2ff;--warning:#e17a05;--danger:#d20a09;--light:#f8f9fa;--dark:#000;--breakpoint-xxs:0;--breakpoint-xs:375px;--breakpoint-sm:576px;--breakpoint-md:768px;--breakpoint-lg:992px;--breakpoint-xl:1200px;--font-family-sans-serif:aofl-sans,Arial,Helvetica,sans-serif;--font-family-monospace:SFMono-Regular,Menlo,Monaco,Consolas,\\\"Liberation Mono\\\",\\\"Courier New\\\",monospace;--z-index-dropdown:1000;--z-index-sticky:1020;--z-index-fixed:1030;--z-index-modal-backdrop:1040;--z-index-modal:1050;--z-index-popover:1060;--z-index-tooltip:1070;--header-height:6rem;--content-height:calc(100vh - 6rem);--sidepanel-width:20rem;--purple-color:#641da3;--purple-600:#956abc;--purple-400:#c7afdd;--purple-200:#e0d2ed;--struggling:#f6993b;--below-target:#ffcf00;--in_progress:#1280f5;--prior_knowledge:#edf887;--mastery_achieved:#69d112;--inactive:#d8d8d8}route-view{max-width:1200px}@font-face{font-family:aofl-sans;font-style:normal;font-weight:300;src:url(\" + ___CSS_LOADER_URL___0___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:italic;font-weight:300;src:url(\" + ___CSS_LOADER_URL___1___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:normal;font-weight:400;src:url(\" + ___CSS_LOADER_URL___2___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:italic;font-weight:400;src:url(\" + ___CSS_LOADER_URL___3___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:normal;font-weight:600;src:url(\" + ___CSS_LOADER_URL___4___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:italic;font-weight:600;src:url(\" + ___CSS_LOADER_URL___5___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:normal;font-weight:700;src:url(\" + ___CSS_LOADER_URL___6___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:italic;font-weight:700;src:url(\" + ___CSS_LOADER_URL___7___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:normal;font-weight:300;src:url(\" + ___CSS_LOADER_URL___8___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:italic;font-weight:300;src:url(\" + ___CSS_LOADER_URL___9___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:normal;font-weight:400;src:url(\" + ___CSS_LOADER_URL___10___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:italic;font-weight:400;src:url(\" + ___CSS_LOADER_URL___11___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:normal;font-weight:600;src:url(\" + ___CSS_LOADER_URL___12___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:italic;font-weight:600;src:url(\" + ___CSS_LOADER_URL___13___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:normal;font-weight:700;src:url(\" + ___CSS_LOADER_URL___14___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:italic;font-weight:700;src:url(\" + ___CSS_LOADER_URL___15___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:normal;font-weight:800;src:url(\" + ___CSS_LOADER_URL___16___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:italic;font-weight:800;src:url(\" + ___CSS_LOADER_URL___17___ + \") format(\\\"woff2\\\")}@font-face{font-family:icomoon;src:url(\" + ___CSS_LOADER_URL___18___ + \") format(\\\"woff2\\\");font-weight:400;font-style:normal;font-display:block}[class*=\\\" ai-\\\"],[class^=ai-]{font-family:icomoon!important;speak:never;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*,:after,:before{box-sizing:border-box}html{font-family:sans-serif;line-height:1.15;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:rgba(0,0,0,0)}figcaption,main,nav,section{display:block}[tabindex=\\\"-1\\\"]:focus{outline:0!important}strong{font-weight:bolder}caption{padding-top:.75rem;padding-bottom:.75rem;color:#6c757d;text-align:left;caption-side:bottom}button{border-radius:0}button:focus{outline:1px dotted;outline:5px auto -webkit-focus-ring-color}button,input,select{margin:0;font-family:inherit;font-size:inherit;line-height:inherit}button,input{overflow:visible}button,select{text-transform:none}select{word-wrap:normal}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]:not(:disabled),[type=reset]:not(:disabled),[type=submit]:not(:disabled),button:not(:disabled){cursor:pointer}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{padding:0;border-style:none}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}input[type=date],input[type=datetime-local],input[type=month],input[type=time]{-webkit-appearance:listbox}legend{display:block;width:100%;max-width:100%;padding:0;margin-bottom:.5rem;font-size:1.5rem;line-height:inherit;color:inherit;white-space:normal}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:none}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}summary{display:list-item;cursor:pointer}template{display:none}[hidden]{display:none!important}*{-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important}html{font-size:62.5%;height:100%}link-to{color:#0d6efd;text-decoration:none;background-color:transparent}link-to:hover{color:rgb(0,86.1,178.5);text-decoration:none;cursor:pointer}route-view{display:none;flex:1}site-header{background-color:#fff;display:none;position:-webkit-sticky;position:sticky;top:0;height:var(--header-height)}#main{display:none;flex:1 auto;max-width:100%;overflow:hidden;flex-direction:column;overflow-y:scroll}.loaded #main,.loaded site-header,body.loaded,route-view.loaded{display:flex}route-view.left-panel-active{padding-left:var(--sidepanel-width)}input[type=checkbox],input[type=radio]{cursor:pointer}button,button:active{outline:none}[tabindex=\\\"0\\\"]:focus-visible,aofl-list-option:focus-visible,button[type=button]:focus-visible,collapse-button:focus-visible{outline:1px solid #e50b0a;border:1px solid #e50b0a}@keyframes progress-bar-stripes{0%{background-position:1.6rem 0}to{background-position:0 0}}.modal-container{background-color:rgba(0,0,0,.2);position:fixed;top:0;bottom:0;right:0;left:0;z-index:var(--z-index-modal)}.modal-container :first-child{overflow:auto}.modal{position:relative;display:block;height:100vh}.modal-dialog-centered.modal-dialog-scrollable{height:auto;max-height:calc(100% - 2.8rem);min-height:auto}.modal-body,.modal-content,.modal-footer,.modal-header{border:none}.modal-header{font-size:2rem;padding:2.4rem}.modal-body{padding:0 2.4rem 4.8rem}.colored-header{color:#fff}.modal-body p{text-align:left}.colored-header-primary{background-color:#0d6efd}.colored-header-secondary{background-color:#adb5bd}.colored-header-success{background-color:#3c8104}.colored-header-info{background-color:#cfe2ff}.colored-header-warning{background-color:#e17a05}.colored-header-danger{background-color:#d20a09}.colored-header-light{background-color:#f8f9fa}.colored-header-dark{background-color:#000}@keyframes spinner-border{to{transform:rotate(1turn)}}@keyframes spinner-grow{0%{transform:scale(0)}50%{opacity:1}}[hidden]{visibility:hidden!important;height:0!important;width:0!important;min-height:unset!important}@media print{*,:after,:before{text-shadow:none!important;box-shadow:none!important}@page{size:a3}}@media print{main::-webkit-scrollbar{display:none}main{-ms-overflow-style:none;scrollbar-width:none}}@page{size:A4;margin:20mm 16mm 20mm 16mm}:host{display:inline-block;min-width:100%}\", \"\"]);\n","import {until} from 'lit-html/directives/until';\n\nexport default (ctx, html) => html`\n
    \n
    \n
    \n \n \n
    \n ${until(ctx.__('', '1) Upload Roster'))}\n
    \n
    \n
    \n \n \n
    \n ${until(ctx.__('', '2) Validate Roster'))}\n
    \n
    \n
    \n \n \n
    \n ${until(ctx.__('', '3) Apply Licenses'))}\n
    \n
    \n`;\n","import styles from './template.css';\nimport template from './template';\nimport {AoflElement, customElement, property} from '@aofl/element';\nimport {i18nMixin} from '@aofl/i18n-mixin';\nimport translations from '../../i18n';\n\n\n/**\n * @summary WizardSteps\n * @extends {i18nMixin(AoflElement)}\n */\n@customElement('wizard-steps')\nclass WizardSteps extends i18nMixin(AoflElement) {\n /**\n * Creates an instance of WizardSteps.\n */\n constructor() {\n super();\n this.translations = translations;\n }\n\n /**\n * @readonly\n */\n static is = 'wizard-steps';\n\n @property({type: Number})\n step = 1;\n\n /**\n *\n * @return {Object}\n */\n render() {\n return super.render({\n default: {template, styles: [styles]}\n });\n }\n}\n\nexport default WizardSteps;\n","exports = module.exports = require(\"../../../../../node_modules/css-loader/dist/runtime/api.js\")(false);\n// Imports\nvar getUrl = require(\"../../../../../node_modules/css-loader/dist/runtime/getUrl.js\");\nvar ___CSS_LOADER_URL___0___ = getUrl(require(\"../../../../template/main/fonts/aofl-sans/aoflsans-light.woff2\"));\nvar ___CSS_LOADER_URL___1___ = getUrl(require(\"../../../../template/main/fonts/aofl-sans/aoflsans-lightit.woff2\"));\nvar ___CSS_LOADER_URL___2___ = getUrl(require(\"../../../../template/main/fonts/aofl-sans/aoflsans-reg.woff2\"));\nvar ___CSS_LOADER_URL___3___ = getUrl(require(\"../../../../template/main/fonts/aofl-sans/aoflsans-regit.woff2\"));\nvar ___CSS_LOADER_URL___4___ = getUrl(require(\"../../../../template/main/fonts/aofl-sans/aoflsans-sbold.woff2\"));\nvar ___CSS_LOADER_URL___5___ = getUrl(require(\"../../../../template/main/fonts/aofl-sans/aoflsans-sboldit.woff2\"));\nvar ___CSS_LOADER_URL___6___ = getUrl(require(\"../../../../template/main/fonts/aofl-sans/aoflsans-bold.woff2\"));\nvar ___CSS_LOADER_URL___7___ = getUrl(require(\"../../../../template/main/fonts/aofl-sans/aoflsans-boldit.woff2\"));\nvar ___CSS_LOADER_URL___8___ = getUrl(require(\"../../../../template/main/fonts/abcmouse-sans/ABCmouseSans-Light.woff2\"));\nvar ___CSS_LOADER_URL___9___ = getUrl(require(\"../../../../template/main/fonts/abcmouse-sans/ABCmouseSans-LightIt.woff2\"));\nvar ___CSS_LOADER_URL___10___ = getUrl(require(\"../../../../template/main/fonts/abcmouse-sans/ABCmouseSans-Regular.woff2\"));\nvar ___CSS_LOADER_URL___11___ = getUrl(require(\"../../../../template/main/fonts/abcmouse-sans/ABCmouseSans-RegularIt.woff2\"));\nvar ___CSS_LOADER_URL___12___ = getUrl(require(\"../../../../template/main/fonts/abcmouse-sans/ABCmouseSans-Semibold.woff2\"));\nvar ___CSS_LOADER_URL___13___ = getUrl(require(\"../../../../template/main/fonts/abcmouse-sans/ABCmouseSans-SemiboldIt.woff2\"));\nvar ___CSS_LOADER_URL___14___ = getUrl(require(\"../../../../template/main/fonts/abcmouse-sans/ABCmouseSans-Bold.woff2\"));\nvar ___CSS_LOADER_URL___15___ = getUrl(require(\"../../../../template/main/fonts/abcmouse-sans/ABCmouseSans-BoldIt.woff2\"));\nvar ___CSS_LOADER_URL___16___ = getUrl(require(\"../../../../template/main/fonts/abcmouse-sans/ABCmouseSans-ExtraBold.woff2\"));\nvar ___CSS_LOADER_URL___17___ = getUrl(require(\"../../../../template/main/fonts/abcmouse-sans/ABCmouseSans-ExtraBoldIt.woff2\"));\nvar ___CSS_LOADER_URL___18___ = getUrl(require(\"../../../../template/main/fonts/aofl-icons/icomoon.woff2?c6f21u\"));\n// Module\nexports.push([module.id, \"/*! @aofl-component */:root{--blue:#0d6efd;--indigo:#6610f2;--purple:#8b42ca;--pink:#e83e8c;--red:#e50b0a;--orange:#e17a05;--yellow:#ffc107;--green:#3c8104;--teal:#20c997;--cyan:#53c9dc;--white:#fff;--gray:#6b6b6b;--gray-dark:#343a40;--light-green:#b1dd53;--table-border-color:#d8d8d8;--gray-100:#f2f2f2;--gray-200:#d9d9d9;--gray-300:#d8d8d8;--gray-400:#ced4da;--gray-500:#adb5bd;--gray-600:#6c757d;--gray-700:#4a4a4a;--gray-800:#343a40;--gray-900:#212529;--gray-accessibility:#6b6b6b;--primary:#0d6efd;--secondary:#adb5bd;--success:#3c8104;--info:#cfe2ff;--warning:#e17a05;--danger:#d20a09;--light:#f8f9fa;--dark:#000;--breakpoint-xxs:0;--breakpoint-xs:375px;--breakpoint-sm:576px;--breakpoint-md:768px;--breakpoint-lg:992px;--breakpoint-xl:1200px;--font-family-sans-serif:aofl-sans,Arial,Helvetica,sans-serif;--font-family-monospace:SFMono-Regular,Menlo,Monaco,Consolas,\\\"Liberation Mono\\\",\\\"Courier New\\\",monospace;--z-index-dropdown:1000;--z-index-sticky:1020;--z-index-fixed:1030;--z-index-modal-backdrop:1040;--z-index-modal:1050;--z-index-popover:1060;--z-index-tooltip:1070;--header-height:6rem;--content-height:calc(100vh - 6rem);--sidepanel-width:20rem;--purple-color:#641da3;--purple-600:#956abc;--purple-400:#c7afdd;--purple-200:#e0d2ed;--struggling:#f6993b;--below-target:#ffcf00;--in_progress:#1280f5;--prior_knowledge:#edf887;--mastery_achieved:#69d112;--inactive:#d8d8d8}route-view{max-width:1200px}@font-face{font-family:aofl-sans;font-style:normal;font-weight:300;src:url(\" + ___CSS_LOADER_URL___0___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:italic;font-weight:300;src:url(\" + ___CSS_LOADER_URL___1___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:normal;font-weight:400;src:url(\" + ___CSS_LOADER_URL___2___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:italic;font-weight:400;src:url(\" + ___CSS_LOADER_URL___3___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:normal;font-weight:600;src:url(\" + ___CSS_LOADER_URL___4___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:italic;font-weight:600;src:url(\" + ___CSS_LOADER_URL___5___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:normal;font-weight:700;src:url(\" + ___CSS_LOADER_URL___6___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:italic;font-weight:700;src:url(\" + ___CSS_LOADER_URL___7___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:normal;font-weight:300;src:url(\" + ___CSS_LOADER_URL___8___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:italic;font-weight:300;src:url(\" + ___CSS_LOADER_URL___9___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:normal;font-weight:400;src:url(\" + ___CSS_LOADER_URL___10___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:italic;font-weight:400;src:url(\" + ___CSS_LOADER_URL___11___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:normal;font-weight:600;src:url(\" + ___CSS_LOADER_URL___12___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:italic;font-weight:600;src:url(\" + ___CSS_LOADER_URL___13___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:normal;font-weight:700;src:url(\" + ___CSS_LOADER_URL___14___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:italic;font-weight:700;src:url(\" + ___CSS_LOADER_URL___15___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:normal;font-weight:800;src:url(\" + ___CSS_LOADER_URL___16___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:italic;font-weight:800;src:url(\" + ___CSS_LOADER_URL___17___ + \") format(\\\"woff2\\\")}@font-face{font-family:icomoon;src:url(\" + ___CSS_LOADER_URL___18___ + \") format(\\\"woff2\\\");font-weight:400;font-style:normal;font-display:block}[class*=\\\" ai-\\\"],[class^=ai-]{font-family:icomoon!important;speak:never;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*,:after,:before{box-sizing:border-box}html{font-family:sans-serif;line-height:1.15;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:rgba(0,0,0,0)}figcaption,footer,header,main,nav,section{display:block}body{margin:0;font-family:aofl-sans,Arial,Helvetica,sans-serif;font-size:1.6rem;font-weight:400;line-height:1.5;color:#000;text-align:left;background-color:#fff}[tabindex=\\\"-1\\\"]:focus{outline:0!important}p{margin-top:0;margin-bottom:1.6rem}strong{font-weight:bolder}a{color:#0d6efd;background-color:transparent}a,a:hover{text-decoration:none}a:hover{color:rgb(0,86.1,178.5)}a:not([href]):not([tabindex]),a:not([href]):not([tabindex]):focus,a:not([href]):not([tabindex]):hover{color:inherit;text-decoration:none}a:not([href]):not([tabindex]):focus{outline:0}code{font-family:SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:1em}caption{padding-top:.75rem;padding-bottom:.75rem;color:#6c757d;text-align:left;caption-side:bottom}label{display:inline-block;margin-bottom:.8rem}button{border-radius:0}button:focus{outline:1px dotted;outline:5px auto -webkit-focus-ring-color}button,input{margin:0;font-family:inherit;font-size:inherit;line-height:inherit;overflow:visible}button{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]:not(:disabled),[type=reset]:not(:disabled),[type=submit]:not(:disabled),button:not(:disabled){cursor:pointer}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{padding:0;border-style:none}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}input[type=date],input[type=datetime-local],input[type=month],input[type=time]{-webkit-appearance:listbox}legend{display:block;width:100%;max-width:100%;padding:0;margin-bottom:.5rem;font-size:1.5rem;line-height:inherit;color:inherit;white-space:normal}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:none}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}summary{display:list-item;cursor:pointer}template{display:none}[hidden]{display:none!important}*{-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important}html{font-size:62.5%}body,html{height:100%}body{flex-direction:column}link-to{color:#0d6efd;text-decoration:none;background-color:transparent}link-to:hover{color:rgb(0,86.1,178.5);text-decoration:none;cursor:pointer}route-view{display:none;flex:1}site-header{background-color:#fff;display:none;position:-webkit-sticky;position:sticky;top:0;height:var(--header-height)}#main{display:none;flex:1 auto;max-width:100%;overflow:hidden;flex-direction:column;overflow-y:scroll}.loaded #main,.loaded site-header,body.loaded,route-view.loaded{display:flex}route-view.left-panel-active{padding-left:var(--sidepanel-width)}code{font-size:87.5%;color:#e83e8c;word-break:break-word}a>code{color:inherit}.row{display:flex;flex-wrap:wrap;margin-right:-15px;margin-left:-15px}.col,.col-md-4,.col-sm-6{position:relative;width:100%;padding-right:15px;padding-left:15px}.col{flex-basis:0;flex-grow:1;max-width:100%}@media (min-width:576px){.col-sm-6{flex:0 0 50%;max-width:50%}}@media (min-width:768px){.col-md-4{flex:0 0 33.3333333333%;max-width:33.3333333333%}}input[type=checkbox],input[type=radio]{cursor:pointer}input[type=checkbox]+label,input[type=radio]+label{cursor:pointer}.btn,input[type=checkbox]+label,input[type=radio]+label{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.btn{display:inline-block;font-weight:400;color:#000;text-align:center;vertical-align:middle;background-color:transparent;border:1px solid transparent;padding:.375rem .75rem;font-size:1.6rem;line-height:1.5;border-radius:.25rem;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.btn{transition:none}}.btn:hover{color:#000;text-decoration:none}.btn:focus{outline:0;box-shadow:0 0 0 .2rem rgba(0,123,255,.25)}.btn:disabled{opacity:.65;cursor:not-allowed}link-to.btn:disabled,link-to.btn[disabled]{pointer-events:none}button,button:active{outline:none}.btn:focus-visible,[tabindex=\\\"0\\\"]:focus-visible,a:focus-visible,aofl-list-option:focus-visible,button[type=button]:focus-visible,collapse-button:focus-visible{outline:1px solid #e50b0a;border:1px solid #e50b0a}.btn:disabled{background:#cfe2ff;border-color:#cfe2ff;color:#0d6efd;opacity:1}ems-dropdown>button.btn{display:flex;align-items:center;border:1px solid var(--gray)}.card{position:relative;display:flex;flex-direction:column;min-width:0;word-wrap:break-word;background-color:#fff;background-clip:border-box;border:1px solid rgba(0,0,0,.125);border-radius:.25rem}.card-body{flex:1 1 auto}.card-header{padding:1.2rem 2rem;margin-bottom:0;background-color:rgba(0,0,0,.03);border-bottom:1px solid rgba(0,0,0,.125)}.card-header:first-child{border-radius:calc(.25rem - 1px) calc(.25rem - 1px) 0 0}.card-footer{padding:1.2rem 2rem;background-color:rgba(0,0,0,.03);border-top:1px solid rgba(0,0,0,.125)}.card-footer:last-child{border-radius:0 0 calc(.25rem - 1px) calc(.25rem - 1px)}.card-header{background-color:transparent;border-bottom:none;font-size:2rem;font-weight:300;margin:0 2rem;padding:1.6rem 0 0}.card-body{padding:2rem}.card-border-color-left{border-left:.5rem solid #c9c9c9}.card-border-color-left.card-border-color-danger{border-left-color:#d20a09}.badge{display:inline-block;padding:.4em .6em;font-size:70%;font-weight:700;line-height:1;text-align:center;white-space:nowrap;vertical-align:baseline;border-radius:.25rem;transition:color .15s ease-in-out,background-color .15s ease-in-out,border-color .15s ease-in-out,box-shadow .15s ease-in-out}@media (prefers-reduced-motion:reduce){.badge{transition:none}}a.badge:focus,a.badge:hover{text-decoration:none}.badge:empty{display:none}.btn .badge{position:relative;top:-1px}.badge-pill{padding-right:.75em;padding-left:.75em;border-radius:16rem}.badge-primary{color:#fff;background-color:#0d6efd}a.badge-primary:focus,a.badge-primary:hover{color:#fff;background-color:rgb(1.762295082,87.2336065574,213.237704918)}a.badge-primary:focus{outline:0;box-shadow:0 0 0 .2rem rgba(13,110,253,.5)}.badge-secondary{color:#fff;background-color:#adb5bd}a.badge-secondary:focus,a.badge-secondary:hover{color:#fff;background-color:rgb(144.7432432432,155.5,166.2567567568)}a.badge-secondary:focus{outline:0;box-shadow:0 0 0 .2rem rgba(173,181,189,.5)}.badge-info{color:#212529;background-color:#cfe2ff}a.badge-info:focus,a.badge-info:hover{color:#212529;background-color:rgb(156,195.1875,255)}a.badge-info:focus{outline:0;box-shadow:0 0 0 .2rem rgba(207,226,255,.5)}.badge-dark,a.badge-dark:focus,a.badge-dark:hover{color:#fff;background-color:#000}a.badge-dark:focus{outline:0;box-shadow:0 0 0 .2rem rgba(0,0,0,.5)}@keyframes progress-bar-stripes{0%{background-position:1.6rem 0}to{background-position:0 0}}.modal-container{background-color:rgba(0,0,0,.2);position:fixed;top:0;bottom:0;right:0;left:0;z-index:var(--z-index-modal)}.modal-container :first-child{overflow:auto}.modal{position:relative;display:block;height:100vh}.modal-dialog-centered.modal-dialog-scrollable{height:auto;max-height:calc(100% - 2.8rem);min-height:auto}.modal-body,.modal-content,.modal-footer,.modal-header{border:none}.modal-header{font-size:2rem;padding:2.4rem}.modal-body{padding:0 2.4rem 4.8rem}.colored-header{color:#fff}.modal-body p{text-align:left}.colored-header-primary{background-color:#0d6efd}.colored-header-secondary{background-color:#adb5bd}.colored-header-success{background-color:#3c8104}.colored-header-info{background-color:#cfe2ff}.colored-header-warning{background-color:#e17a05}.colored-header-danger{background-color:#d20a09}.colored-header-light{background-color:#f8f9fa}.colored-header-dark{background-color:#000}@keyframes spinner-border{to{transform:rotate(1turn)}}@keyframes spinner-grow{0%{transform:scale(0)}50%{opacity:1}}.rounded-pill{border-radius:80rem!important}.d-flex{display:flex!important}.align-items-stretch{align-items:stretch!important}.w-100{width:100%!important}.mb-3{margin-bottom:1rem!important}.text-center{text-align:center!important}.font-weight-bold{font-weight:700!important}.text-danger{color:#d20a09!important}a.text-danger:focus,a.text-danger:hover{color:rgb(136.6438356164,6.5068493151,5.8561643836)!important}.cursor-pointer:hover{cursor:pointer!important}.text-blue{color:#0d6efd}[hidden]{visibility:hidden!important;height:0!important;width:0!important;min-height:unset!important}@media print{*,:after,:before{text-shadow:none!important;box-shadow:none!important}a:not(.btn){text-decoration:underline}p{orphans:3;widows:3}@page{size:a3}body{min-width:992px!important}.badge{border:1px solid #000}}@media print{main::-webkit-scrollbar{display:none}main{-ms-overflow-style:none;scrollbar-width:none}}@page{size:A4;margin:20mm 16mm 20mm 16mm}:host{display:inline-block}#info-btn{display:inline-flex;color:#000;border:.2rem solid #000;width:2rem;height:2rem;padding:0;justify-content:center;align-items:center;font-weight:700;margin-left:.5rem}\", \"\"]);\n","exports = module.exports = require(\"../../../../../node_modules/css-loader/dist/runtime/api.js\")(false);\n// Imports\nvar getUrl = require(\"../../../../../node_modules/css-loader/dist/runtime/getUrl.js\");\nvar ___CSS_LOADER_URL___0___ = getUrl(require(\"../../../../template/main/fonts/aofl-sans/aoflsans-light.woff2\"));\nvar ___CSS_LOADER_URL___1___ = getUrl(require(\"../../../../template/main/fonts/aofl-sans/aoflsans-lightit.woff2\"));\nvar ___CSS_LOADER_URL___2___ = getUrl(require(\"../../../../template/main/fonts/aofl-sans/aoflsans-reg.woff2\"));\nvar ___CSS_LOADER_URL___3___ = getUrl(require(\"../../../../template/main/fonts/aofl-sans/aoflsans-regit.woff2\"));\nvar ___CSS_LOADER_URL___4___ = getUrl(require(\"../../../../template/main/fonts/aofl-sans/aoflsans-sbold.woff2\"));\nvar ___CSS_LOADER_URL___5___ = getUrl(require(\"../../../../template/main/fonts/aofl-sans/aoflsans-sboldit.woff2\"));\nvar ___CSS_LOADER_URL___6___ = getUrl(require(\"../../../../template/main/fonts/aofl-sans/aoflsans-bold.woff2\"));\nvar ___CSS_LOADER_URL___7___ = getUrl(require(\"../../../../template/main/fonts/aofl-sans/aoflsans-boldit.woff2\"));\nvar ___CSS_LOADER_URL___8___ = getUrl(require(\"../../../../template/main/fonts/abcmouse-sans/ABCmouseSans-Light.woff2\"));\nvar ___CSS_LOADER_URL___9___ = getUrl(require(\"../../../../template/main/fonts/abcmouse-sans/ABCmouseSans-LightIt.woff2\"));\nvar ___CSS_LOADER_URL___10___ = getUrl(require(\"../../../../template/main/fonts/abcmouse-sans/ABCmouseSans-Regular.woff2\"));\nvar ___CSS_LOADER_URL___11___ = getUrl(require(\"../../../../template/main/fonts/abcmouse-sans/ABCmouseSans-RegularIt.woff2\"));\nvar ___CSS_LOADER_URL___12___ = getUrl(require(\"../../../../template/main/fonts/abcmouse-sans/ABCmouseSans-Semibold.woff2\"));\nvar ___CSS_LOADER_URL___13___ = getUrl(require(\"../../../../template/main/fonts/abcmouse-sans/ABCmouseSans-SemiboldIt.woff2\"));\nvar ___CSS_LOADER_URL___14___ = getUrl(require(\"../../../../template/main/fonts/abcmouse-sans/ABCmouseSans-Bold.woff2\"));\nvar ___CSS_LOADER_URL___15___ = getUrl(require(\"../../../../template/main/fonts/abcmouse-sans/ABCmouseSans-BoldIt.woff2\"));\nvar ___CSS_LOADER_URL___16___ = getUrl(require(\"../../../../template/main/fonts/abcmouse-sans/ABCmouseSans-ExtraBold.woff2\"));\nvar ___CSS_LOADER_URL___17___ = getUrl(require(\"../../../../template/main/fonts/abcmouse-sans/ABCmouseSans-ExtraBoldIt.woff2\"));\nvar ___CSS_LOADER_URL___18___ = getUrl(require(\"../../../../template/main/fonts/aofl-icons/icomoon.woff2?c6f21u\"));\n// Module\nexports.push([module.id, \"/*! @aofl-component */:root{--blue:#0d6efd;--indigo:#6610f2;--purple:#8b42ca;--pink:#e83e8c;--red:#e50b0a;--orange:#e17a05;--yellow:#ffc107;--green:#3c8104;--teal:#20c997;--cyan:#53c9dc;--white:#fff;--gray:#6b6b6b;--gray-dark:#343a40;--light-green:#b1dd53;--table-border-color:#d8d8d8;--gray-100:#f2f2f2;--gray-200:#d9d9d9;--gray-300:#d8d8d8;--gray-400:#ced4da;--gray-500:#adb5bd;--gray-600:#6c757d;--gray-700:#4a4a4a;--gray-800:#343a40;--gray-900:#212529;--gray-accessibility:#6b6b6b;--primary:#0d6efd;--secondary:#adb5bd;--success:#3c8104;--info:#cfe2ff;--warning:#e17a05;--danger:#d20a09;--light:#f8f9fa;--dark:#000;--breakpoint-xxs:0;--breakpoint-xs:375px;--breakpoint-sm:576px;--breakpoint-md:768px;--breakpoint-lg:992px;--breakpoint-xl:1200px;--font-family-sans-serif:aofl-sans,Arial,Helvetica,sans-serif;--font-family-monospace:SFMono-Regular,Menlo,Monaco,Consolas,\\\"Liberation Mono\\\",\\\"Courier New\\\",monospace;--z-index-dropdown:1000;--z-index-sticky:1020;--z-index-fixed:1030;--z-index-modal-backdrop:1040;--z-index-modal:1050;--z-index-popover:1060;--z-index-tooltip:1070;--header-height:6rem;--content-height:calc(100vh - 6rem);--sidepanel-width:20rem;--purple-color:#641da3;--purple-600:#956abc;--purple-400:#c7afdd;--purple-200:#e0d2ed;--struggling:#f6993b;--below-target:#ffcf00;--in_progress:#1280f5;--prior_knowledge:#edf887;--mastery_achieved:#69d112;--inactive:#d8d8d8}route-view{max-width:1200px}@font-face{font-family:aofl-sans;font-style:normal;font-weight:300;src:url(\" + ___CSS_LOADER_URL___0___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:italic;font-weight:300;src:url(\" + ___CSS_LOADER_URL___1___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:normal;font-weight:400;src:url(\" + ___CSS_LOADER_URL___2___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:italic;font-weight:400;src:url(\" + ___CSS_LOADER_URL___3___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:normal;font-weight:600;src:url(\" + ___CSS_LOADER_URL___4___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:italic;font-weight:600;src:url(\" + ___CSS_LOADER_URL___5___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:normal;font-weight:700;src:url(\" + ___CSS_LOADER_URL___6___ + \") format(\\\"woff2\\\")}@font-face{font-family:aofl-sans;font-style:italic;font-weight:700;src:url(\" + ___CSS_LOADER_URL___7___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:normal;font-weight:300;src:url(\" + ___CSS_LOADER_URL___8___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:italic;font-weight:300;src:url(\" + ___CSS_LOADER_URL___9___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:normal;font-weight:400;src:url(\" + ___CSS_LOADER_URL___10___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:italic;font-weight:400;src:url(\" + ___CSS_LOADER_URL___11___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:normal;font-weight:600;src:url(\" + ___CSS_LOADER_URL___12___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:italic;font-weight:600;src:url(\" + ___CSS_LOADER_URL___13___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:normal;font-weight:700;src:url(\" + ___CSS_LOADER_URL___14___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:italic;font-weight:700;src:url(\" + ___CSS_LOADER_URL___15___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:normal;font-weight:800;src:url(\" + ___CSS_LOADER_URL___16___ + \") format(\\\"woff2\\\")}@font-face{font-family:abcmouse-sans;font-style:italic;font-weight:800;src:url(\" + ___CSS_LOADER_URL___17___ + \") format(\\\"woff2\\\")}@font-face{font-family:icomoon;src:url(\" + ___CSS_LOADER_URL___18___ + \") format(\\\"woff2\\\");font-weight:400;font-style:normal;font-display:block}[class*=\\\" ai-\\\"],[class^=ai-]{font-family:icomoon!important;speak:never;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;line-height:1;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}.ai-apply-licenses:before{content:\\\"\\\\e908\\\"}.ai-chevron-right:before{content:\\\"\\\\e90f\\\"}*,:after,:before{box-sizing:border-box}html{font-family:sans-serif;line-height:1.15;-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:rgba(0,0,0,0)}figcaption,main,nav,section{display:block}[tabindex=\\\"-1\\\"]:focus{outline:0!important}strong{font-weight:bolder}caption{padding-top:.75rem;padding-bottom:.75rem;color:#6c757d;text-align:left;caption-side:bottom}button{border-radius:0}button:focus{outline:1px dotted;outline:5px auto -webkit-focus-ring-color}button,input{margin:0;font-family:inherit;font-size:inherit;line-height:inherit;overflow:visible}button{text-transform:none}[type=button],[type=reset],[type=submit],button{-webkit-appearance:button}[type=button]:not(:disabled),[type=reset]:not(:disabled),[type=submit]:not(:disabled),button:not(:disabled){cursor:pointer}[type=button]::-moz-focus-inner,[type=reset]::-moz-focus-inner,[type=submit]::-moz-focus-inner,button::-moz-focus-inner{padding:0;border-style:none}input[type=checkbox],input[type=radio]{box-sizing:border-box;padding:0}input[type=date],input[type=datetime-local],input[type=month],input[type=time]{-webkit-appearance:listbox}legend{display:block;width:100%;max-width:100%;padding:0;margin-bottom:.5rem;font-size:1.5rem;line-height:inherit;color:inherit;white-space:normal}[type=number]::-webkit-inner-spin-button,[type=number]::-webkit-outer-spin-button{height:auto}[type=search]{outline-offset:-2px;-webkit-appearance:none}[type=search]::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{font:inherit;-webkit-appearance:button}summary{display:list-item;cursor:pointer}template{display:none}[hidden]{display:none!important}*{-webkit-print-color-adjust:exact!important;print-color-adjust:exact!important}html{font-size:62.5%;height:100%}link-to{color:#0d6efd;text-decoration:none;background-color:transparent}link-to:hover{color:rgb(0,86.1,178.5);text-decoration:none;cursor:pointer}route-view{display:none;flex:1}site-header{background-color:#fff;display:none;position:-webkit-sticky;position:sticky;top:0;height:var(--header-height)}#main{display:none;flex:1 auto;max-width:100%;overflow:hidden;flex-direction:column;overflow-y:scroll}.loaded #main,.loaded site-header,body.loaded,route-view.loaded{display:flex}route-view.left-panel-active{padding-left:var(--sidepanel-width)}input[type=checkbox],input[type=radio]{cursor:pointer}button,button:active{outline:none}[tabindex=\\\"0\\\"]:focus-visible,aofl-list-option:focus-visible,button[type=button]:focus-visible,collapse-button:focus-visible{outline:1px solid #e50b0a;border:1px solid #e50b0a}@keyframes progress-bar-stripes{0%{background-position:1.6rem 0}to{background-position:0 0}}.modal-container{background-color:rgba(0,0,0,.2);position:fixed;top:0;bottom:0;right:0;left:0;z-index:var(--z-index-modal)}.modal-container :first-child{overflow:auto}.modal{position:relative;display:block;height:100vh}.modal-dialog-centered.modal-dialog-scrollable{height:auto;max-height:calc(100% - 2.8rem);min-height:auto}.modal-body,.modal-content,.modal-footer,.modal-header{border:none}.modal-header{font-size:2rem;padding:2.4rem}.modal-body{padding:0 2.4rem 4.8rem}.colored-header{color:#fff}.modal-body p{text-align:left}.colored-header-primary{background-color:#0d6efd}.colored-header-secondary{background-color:#adb5bd}.colored-header-success{background-color:#3c8104}.colored-header-info{background-color:#cfe2ff}.colored-header-warning{background-color:#e17a05}.colored-header-danger{background-color:#d20a09}.colored-header-light{background-color:#f8f9fa}.colored-header-dark{background-color:#000}@keyframes spinner-border{to{transform:rotate(1turn)}}@keyframes spinner-grow{0%{transform:scale(0)}50%{opacity:1}}.d-none{display:none!important}.d-flex{display:flex!important}.justify-content-center{justify-content:center!important}[hidden]{visibility:hidden!important;height:0!important;width:0!important;min-height:unset!important}@media print{*,:after,:before{text-shadow:none!important;box-shadow:none!important}@page{size:a3}}@media print{main::-webkit-scrollbar{display:none}main{-ms-overflow-style:none;scrollbar-width:none}}@page{size:A4;margin:20mm 16mm 20mm 16mm}:host{display:inline-block}.steps{color:var(--gray-500);display:flex;flex-direction:column;align-items:flex-end;margin-right:7.5rem}.steps:last-child{margin-right:0}.steps.active{color:var(--primary)}.wizard-icon-group{display:flex;align-items:center;margin-bottom:1.6rem}.step-icon{font-size:3.375rem;margin-right:2.5rem}@media (max-width:575.98px){.steps{font-size:1.2rem;margin-right:3rem}.step-icon{font-size:2.75rem}}@media (max-width:374.98px){.steps{font-size:1rem;margin-right:1.5rem}.step-icon{font-size:2.75rem}}\", \"\"]);\n"],"sourceRoot":""}