{"version":3,"sources":["webpack:///./src/Model/shared/types.ts","webpack:///./src/commoncomponents/bouncingpreloadercomponent/BouncingPreloaderComponent.less?0b02","webpack:///./src/services/programs/api.ts","webpack:///./src/store/modules/Programs/mutationNames.ts","webpack:///./src/store/modules/Programs/module.ts","webpack:///./src/components/accountDetailsComponent/accountDataTabs/programs/AddEditProgram.vue?1387","webpack:///./src/components/accountDetailsComponent/accountDataTabs/programs/AddEditProgram.vue?bc42","webpack:///./src/components/accountDetailsComponent/accountDataTabs/programs/AddEditProgram.vue?423d","webpack:///./src/components/accountDetailsComponent/accountDataTabs/programs/AddEditProgram.vue","webpack:///./src/commoncomponents/bouncingpreloadercomponent/BouncingPreloaderComponent.vue?7f8c","webpack:///./src/commoncomponents/bouncingpreloadercomponent/BouncingPreloaderComponent.ts","webpack:///./src/commoncomponents/bouncingpreloadercomponent/BouncingPreloaderComponent.vue?0f28","webpack:///./src/commoncomponents/bouncingpreloadercomponent/BouncingPreloaderComponent.vue?47c6","webpack:///./src/commoncomponents/bouncingpreloadercomponent/BouncingPreloaderComponent.vue","webpack:///./src/components/accountDetailsComponent/accountDataTabs/programs/AddEditProgram.vue?1ad0","webpack:///./src/assets/images/common-icon/search.svg","webpack:///./src/Model/forms/types.ts","webpack:///./src/store/modules/Sessions/mutationNames.ts","webpack:///./src/store/modules/Sessions/module.ts","webpack:///./src/assets/images/scholars/add-new-scholars/arrowDown.svg","webpack:///./src/ui-components/dropdownListBx/DropdownList.less?58ad","webpack:///./src/Model/sessions/types.ts","webpack:///./src/ui-components/dropdownListBx/DropdownList.vue?cd07","webpack:///./src/ui-components/dropdownListBx/DropdownList.ts","webpack:///./src/ui-components/dropdownListBx/DropdownList.vue?d481","webpack:///./src/ui-components/dropdownListBx/DropdownList.vue?a56d","webpack:///./src/ui-components/dropdownListBx/DropdownList.vue","webpack:///./src/services/sessions/api.ts"],"names":["SortDirection","Status","FamilyPortalStatus","ProfileStatus","getProgramTypes","httpCMSClient","get","API_CONST","GET_PRODUCTS","addProgram","payload","httpClient","post","CONFIGURE_PROGRAM","getProgramData","programId","GET_PROGRAM_DATA","updateProgram","put","EDIT_PROGRAM_UPDATE","programDto","id","FETCH_PROGRAM_TYPES_REQUESTED","FETCH_PROGRAM_TYPES_SUCCEEDED","FETCH_PROGRAM_TYPES_FAILED","RESET_FETCH_PROGRAM_TYPES","SET_PROGRAM_TYPES","SAVE_PROGRAM_REQUESTED","SAVE_PROGRAM_SUCCEEDED","SAVE_PROGRAM_FAILED","RESET_SAVE_PROGRAM","FETCH_PROGRAM_DATA_REQUESTED","FETCH_PROGRAM_DATA_SUCCEEDED","FETCH_PROGRAM_DATA_FAILED","RESET_FETCH_PROGRAM_DATA","SET_PROGRAM_DATA","ProgramsModule","programTypes","isFetchingProgramTypes","didFetchProgramTypesFail","fetchProgramTypesFailedError","isSavingProgram","didSaveProgramFail","saveProgramFailedError","programData","isInitialFetchingProgramData","isFetchingProgramData","didFetchProgramDataFail","fetchProgramDataFailedError","_a","this","_b","_c","error","_d","_e","_f","_g","_h","_j","_k","_l","_m","_o","_p","response","data","apiErrorResponse","APP_UTILITIES","errorToApiErrorResponse","newProgramId","setCookie","VuexModule","tslib_1","Mutation","Action","Module","namespaced","name","store","dynamic","getModule","render","_vm","$createElement","_self","attrs","isAddEditProgramVisibleSync","on","$event","onBeforeClose","onClose","staticClass","programsModule","_v","_s","formTitle","preventDefault","programNameLabel","directives","rawName","value","expression","modifiers","class","shouldApplyErrorClassForProgramName","programNameMaxLength","domProps","target","composing","$set","trim","onInputProgramName","$forceUpdate","formFieldStates","programName","errorMessage","programStartDateLabel","startDateDatepickerInputClass","programStartDate","programStartDateMax","startDateOpenDate","onChangeProgramStartDate","programEndDateLabel","endDateDatepickerInputClass","programEndDate","programEndDateMin","endDateOpenDate","onChangeProgramEndDate","programSessionDateConflictHint","programEnrollmentGoalLabel","programEnrollmentGoalQualifierLabel","shouldApplyErrorClassForProgramEnrollmentGoal","programEnrollmentGoalMaxLength","forceNumberInput","_n","onInputProgramEnrollmentGoal","programEnrollmentGoal","programTypeLabel","programTypeDropdownListOptions","onSelectProgramType","programType","programDescriptionLabel","shouldApplyErrorClassForProgramDescription","programDescriptionMaxLength","onInputProgramDescription","programDescription","onCancel","cancelButtonText","saveProgressButtonState","isValidForProgressButton","saveButtonText","onSubmit","footerErrorMessage","isCancelConfirmationVisible","onContinueConfirmation","staticRenderFns","AddEditProgram","screenText","ScreenText","sessionsModule","SessionsModule","programEnrollmentGoalMin","programEnrollmentGoalMax","defaultInitialProgramData","skipCancelConfirmation","hasUserSubmitted","initialProgramData","getDefaultFormFieldValidationState","ApiErrorType","Error_ProgramNameExistsInAccount","formFieldState","FormValidationError","DUPLICATE","valid","fetchProgramTypes","then","isEditMode","changes","dirty","field","initial","current","hasChanges","checkFormValid","checkFormFieldChanges","length","MAX_LENGTH","getScreenText","REQUIRED","startDate","endDate","MIN","undefined","TYPE","MAX","selection","find","pt","event","hasFormChanges","resetForm","allowSubmit","isFormValid","prepDate","date","formatFullYearDate","toISOString","accountIdCookie","getCookie","accountId","Number","parseInt","productId","numberOfScholars","initialStatus","status","programAdminId","isFinalSubmit","validationMode","isProgramDateChanged","roleId","accId","description","previousProductId","previousProgramTypeId","onProgramUpdate","createProgram","$router","push","APP_CONST","APP_ROUTES","ACCOUNT_PROGRAMS_SESSIONS","checkProgramNameValid","checkProgramStartDateValid","checkProgramEndDateValid","checkProgramEnrollmentGoalValid","checkProgramTypeValid","checkProgramDescriptionValid","Object","values","shouldApplyErrorClassForFormField","startOrEndDate","formFieldDate","today","Date","isPastDate","storeProgramData","console","log","dropdownList","map","programTypeId","programTypeName","singleSelect","showSelectLabel","errorText","shouldShowErrorForFormField","sessionStartDateTimes","sessions","session","startDateTime","sessionStartDateTimesExist","earliestSessionStartDate","reduce","prev","cur","getTime","sessionEndDateTimes","endDateTime","sessionEndDateTimesExist","furthestOutSessionEndDate","message","isProgramNameDuplicateApiError","isUnknownApiError","Error_Unknown","doAnyFormFieldsHaveSpecificError","getDatepickerInputClass","Vue","Prop","type","Boolean","default","PropSync","required","Emit","Watch","Component","components","OffCanvas","DatepickerComponent","DropdownList","ProgressButton","CancelConfirmation","BouncingPreloader","component","key","style","STYLE","COLOR","PRIMARY_700","BouncingPreloaderComponent","module","exports","VeeValidateProviderMode","MutationNames","SUPRESS_GLOBAL_ERROR_POPUP","GlobalMutationNames","FETCH_SESSIONS_REQUESTED","FETCH_SESSIONS_SUCCEEDED","FETCH_SESSIONS_FAILED","RESET_FETCH_SESSIONS","SET_SESSIONS","CLEAR_SESSIONS","SAVE_SESSION_REQUESTED","SAVE_SESSION_SUCCEEDED","SAVE_SESSION_FAILED","RESET_SAVE_SESSION","totalSessionCount","isFetchingSessions","didFetchSessionsFail","fetchSessionsFailedError","isSavingSessions","didSessionsSaveFail","sessionSaveFailedError","errorMessages","ErrorMessages","getSessionResponse","results","totalSetCount","request","getPagedSessionsForProgram","newSession","context","commit","root","addNewSession","updateSession","FilterOption","SortOption","AutoEnrollmentFilter","classes","openDropdown","dropdown","label","toLowerCase","split","join","disable","publicUniqueId","autoSelectionAllowed","toggleDropdown","indexOf","keyCode","checkKey","currentTarget","onDropdownOpen","select","firstSelectLabel","stopPropagation","changeFocusOnHover","placeholder","search","evt","active","clearSearch","filterList","obj","index","isDropdownElementIdValid","hovering","hoverText","styleObject","dropdownElement","searchElementId","activeLetter","selectedIndex","selectableLableHover","Math","floor","random","e","close","FALSE","TRUE","MINUS_ONE","setTimeout","children","document","getElementsByClassName","inputElement","getElementById","focus","activeEle","getElementsByName","scrollIntoView","block","behavior","element","classList","add","findIndex","el","toFind","ZERO","remove","inline","dropdownMenuItems","selected","addEventListener","selectFirstElement","old","newVal","ONE","dropDownValues","attribute","searchElement","activeElement","code","refocusDD","shiftKey","goToSearch","input","String","fromCharCode","test","loopStart","i","val","innerText","charAt","inp","currentElm","querySelector","forEach","drop","classlist","$emit","list","dropList","filter","includes","btnElment","deep","filters","SESSIONS_END_POINT","getSessionsForProgram","PROGRAM_SESSIONS_ENDPOINT","url","encodeURIComponent","page","sortField","sortDir","Undefined","searchField","pageItemCount","sessionAutoEnrollmentFilter","All"],"mappings":"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","file":"js/chunk-2f589500.208b9199bef5dc06d8fb.1732066582532.min.js","sourcesContent":["export enum SortDirection {\n Undefined = 0,\n Asc = 1,\n Desc = 2\n}\n\nexport interface BasePagedDataRequest {\n page?: number;\n pageItemCount?: number;\n maximumItemsPerPage?: number;\n sortField?: string;\n sortDir?: SortDirection;\n searchField?: string;\n search?: string;\n isExactMatch?: boolean;\n}\n\nexport enum Status {\n Active = 1,\n Inactive = 2,\n Deleted = 3,\n Done = 4,\n Invite = 5,\n Pending = 6,\n Expired = 7,\n Accepted = 8,\n UnEnrolled = 9,\n Enroll = 10,\n Waitlist = 11,\n Reject = 12,\n Draft = 13,\n Published = 14,\n Closed = 15,\n Archived = 16,\n ValidToken = 17,\n InValidToken = 18,\n ValidityExpired = 19,\n MultipleSession = 20,\n All = 21,\n Completed = 22\n}\n\nexport enum FamilyPortalStatus {\n Deactivated = 2,\n Invite = 5,\n Pending = 6,\n Expired = 7,\n Accepted = 8,\n All = 21\n}\n\nexport enum ProfileStatus {\n InComplete = 0,\n Complete = 1,\n All = 2\n}\n\nexport interface GuardianListPayload {\n accountId: number;\n programId: number;\n page: number;\n count: number;\n SortDir: number;\n SortField: string;\n SearchField: string;\n Search: string;\n GlobalSearch: string;\n ProgramIdValues: string;\n isExactMatch: boolean;\n familyPortalStatus: FamilyPortalStatus;\n applyRoleFilter?: boolean;\n}\n\nexport interface DeleteContactPayload {\n accountId: number;\n guardiansIds: {\n guardianGuid: string;\n userId: number;\n }[];\n}\n\nexport interface Scholar {\n firstName: string;\n lastName: string;\n scholarGuid: string;\n}\n\nexport interface DeleteParticipantPayload {\n accountId: number;\n participantsGuid: string[];\n}\n\nexport interface ContactAddress {\n id: number;\n guid: string;\n userId: string;\n status: number;\n isGuardian: boolean;\n address1?: string;\n address2?: string;\n zip?: string;\n city?: string;\n state?: string;\n}\n\nexport interface ContactData {\n accountId: number;\n guardianGuid: string;\n guardianId: string;\n userId: number;\n programId: number;\n firstName: string;\n lastName: string;\n email: string;\n phone: string;\n phoneType: string;\n secondaryPhone: string;\n secondaryPhoneType: string;\n profileStatus: number;\n familyPortalStatus: number;\n homeLanguage: string;\n fullName: string;\n scholarData: Scholar[];\n address: ContactAddress;\n initialAddress: ContactAddress;\n}\nexport interface ContactDataCvsParams {\n AccountId: number;\n ProgramIdValues: string;\n SessionIdValues: string;\n GlobalSearch: string;\n IsBulk: boolean;\n IsReport: boolean;\n Status: number;\n Id: number;\n Active: number;\n SearchField: string;\n Search: string;\n CustomField: string;\n RoleType: number;\n IsExactMatch: boolean;\n Page?: number;\n Count?: number;\n SortField: string;\n SortDir: number;\n columnsToHide?: string;\n accountName?: string;\n fileType?: number;\n applyRoleFilter?: boolean;\n}\n\nexport type GuardianRevokeAccessDto = Pick & { status: FamilyPortalStatus };\n","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--10-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--10-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--10-oneOf-1-2!../../../node_modules/less-loader/dist/cjs.js??ref--10-oneOf-1-3!./BouncingPreloaderComponent.less?vue&type=style&index=0&id=4eff2a66&lang=less&scoped=true&\"","import API_CONST from '@/constants/ApiConst';\nimport { AddEditProgramPayload, ProgramData, ProgramType } from '@/Model/programs/types';\nimport { httpClient, httpCMSClient } from '@/services/common/httpClient';\n\nexport function getProgramTypes() {\n return httpCMSClient().get>(`${API_CONST.GET_PRODUCTS}`);\n}\n\nexport function addProgram(payload: AddEditProgramPayload) {\n return httpClient().post(`${API_CONST.CONFIGURE_PROGRAM}`, payload);\n}\n\nexport function getProgramData(programId: number) {\n return httpClient().get(`${API_CONST.GET_PROGRAM_DATA}/${programId}/info`);\n}\n\nexport function updateProgram(payload: AddEditProgramPayload) {\n return httpClient().put<''>(`${API_CONST.EDIT_PROGRAM_UPDATE}/${payload.programDto.id}`, payload);\n}","// Program Types\nexport const FETCH_PROGRAM_TYPES_REQUESTED = 'FETCH_PROGRAM_TYPES_REQUESTED';\nexport const FETCH_PROGRAM_TYPES_SUCCEEDED = 'FETCH_PROGRAM_TYPES_SUCCEEDED';\nexport const FETCH_PROGRAM_TYPES_FAILED = 'FETCH_PROGRAM_TYPES_FAILED';\nexport const RESET_FETCH_PROGRAM_TYPES = 'RESET_FETCH_PROGRAM_TYPES';\nexport const SET_PROGRAM_TYPES = 'SET_PROGRAM_TYPES';\n\n// Save Program\nexport const SAVE_PROGRAM_REQUESTED = 'SAVE_PROGRAM_REQUESTED';\nexport const SAVE_PROGRAM_SUCCEEDED = 'SAVE_PROGRAM_SUCCEEDED';\nexport const SAVE_PROGRAM_FAILED = 'SAVE_PROGRAM_FAILED';\nexport const RESET_SAVE_PROGRAM = 'RESET_SAVE_PROGRAM';\n\n// Program Data\nexport const FETCH_PROGRAM_DATA_REQUESTED = 'FETCH_PROGRAM_DATA_REQUESTED';\nexport const FETCH_PROGRAM_DATA_SUCCEEDED = 'FETCH_PROGRAM_DATA_SUCCEEDED';\nexport const FETCH_PROGRAM_DATA_FAILED = 'FETCH_PROGRAM_DATA_FAILED';\nexport const RESET_FETCH_PROGRAM_DATA = 'RESET_FETCH_PROGRAM_DATA'; \nexport const SET_PROGRAM_DATA = 'SET_PROGRAM_DATA';","import { ApiErrorResponse } from '@/Model/errors/api/types';\nimport { AddEditProgramPayload, ProgramData, ProgramType } from '@/Model/programs/types';\nimport { getProgramTypes, addProgram, getProgramData, updateProgram } from '@/services/programs/api';\nimport store from '@/store';\nimport APP_UTILITIES from '@/utilities/commonFunctions';\nimport { Action, getModule, Module, Mutation, VuexModule } from 'vuex-module-decorators';\nimport { FETCH_PROGRAM_TYPES_REQUESTED, FETCH_PROGRAM_TYPES_SUCCEEDED, FETCH_PROGRAM_TYPES_FAILED, RESET_FETCH_PROGRAM_TYPES, SET_PROGRAM_TYPES, SAVE_PROGRAM_REQUESTED, SAVE_PROGRAM_SUCCEEDED, SAVE_PROGRAM_FAILED, RESET_SAVE_PROGRAM, FETCH_PROGRAM_DATA_REQUESTED, FETCH_PROGRAM_DATA_SUCCEEDED, FETCH_PROGRAM_DATA_FAILED, RESET_FETCH_PROGRAM_DATA, SET_PROGRAM_DATA } from './mutationNames';\n\n@Module({\n namespaced: true,\n name: 'programs',\n store,\n dynamic: true\n})\nexport class ProgramsModule extends VuexModule {\n programTypes: Array = [];\n isFetchingProgramTypes = false;\n didFetchProgramTypesFail = false;\n fetchProgramTypesFailedError: ApiErrorResponse | null = null;\n\n isSavingProgram = false;\n didSaveProgramFail = false;\n saveProgramFailedError: ApiErrorResponse | null = null;\n\n programData: ProgramData | null = null;\n isInitialFetchingProgramData = true;\n isFetchingProgramData = false;\n didFetchProgramDataFail = false;\n fetchProgramDataFailedError: ApiErrorResponse | null = null;\n\n @Mutation\n [FETCH_PROGRAM_TYPES_REQUESTED]() {\n this.isFetchingProgramTypes = true;\n this.didFetchProgramTypesFail = false;\n this.fetchProgramTypesFailedError = null;\n }\n\n @Mutation\n [FETCH_PROGRAM_TYPES_SUCCEEDED]() {\n this.isFetchingProgramTypes = false;\n this.didFetchProgramTypesFail = false;\n this.fetchProgramTypesFailedError = null;\n }\n\n @Mutation\n [FETCH_PROGRAM_TYPES_FAILED](error: ApiErrorResponse) {\n this.isFetchingProgramTypes = false;\n this.didFetchProgramTypesFail = true;\n this.fetchProgramTypesFailedError = error;\n }\n\n @Mutation\n [RESET_FETCH_PROGRAM_TYPES]() {\n this.isFetchingProgramTypes = false;\n this.didFetchProgramTypesFail = false;\n this.fetchProgramTypesFailedError = null;\n }\n\n @Mutation\n [SET_PROGRAM_TYPES](programTypes: Array) {\n this.programTypes = programTypes;\n }\n\n @Mutation\n [SAVE_PROGRAM_REQUESTED]() {\n this.isSavingProgram = true;\n this.didSaveProgramFail = false;\n this.saveProgramFailedError = null;\n }\n\n @Mutation\n [SAVE_PROGRAM_SUCCEEDED]() {\n this.isSavingProgram = false;\n this.didSaveProgramFail = false;\n this.saveProgramFailedError = null;\n }\n\n @Mutation\n [SAVE_PROGRAM_FAILED](error: ApiErrorResponse) {\n this.isSavingProgram = false;\n this.didSaveProgramFail = true;\n this.saveProgramFailedError = error;\n }\n\n @Mutation\n [RESET_SAVE_PROGRAM]() {\n this.isSavingProgram = false;\n this.didSaveProgramFail = false;\n this.saveProgramFailedError = null;\n }\n\n @Mutation\n [FETCH_PROGRAM_DATA_REQUESTED]() {\n this.isFetchingProgramData = true;\n this.didFetchProgramDataFail = false;\n this.fetchProgramDataFailedError = null;\n }\n\n @Mutation\n [FETCH_PROGRAM_DATA_SUCCEEDED]() {\n this.isFetchingProgramData = false;\n this.didFetchProgramDataFail = false;\n this.fetchProgramDataFailedError = null;\n this.isInitialFetchingProgramData = false;\n }\n\n @Mutation\n [FETCH_PROGRAM_DATA_FAILED](error: ApiErrorResponse) {\n this.isFetchingProgramData = false;\n this.didFetchProgramDataFail = true;\n this.fetchProgramDataFailedError = error;\n this.isInitialFetchingProgramData = false;\n }\n\n @Mutation\n [RESET_FETCH_PROGRAM_DATA]() {\n this.isInitialFetchingProgramData = true;\n this.isFetchingProgramData = false;\n this.didFetchProgramDataFail = false;\n this.fetchProgramDataFailedError = null;\n }\n\n @Mutation\n [SET_PROGRAM_DATA](programData: ProgramData | null) {\n this.programData = programData;\n }\n\n @Action\n async fetchProgramTypes() {\n try {\n this.FETCH_PROGRAM_TYPES_REQUESTED();\n const response = await getProgramTypes();\n this.SET_PROGRAM_TYPES(response.data);\n this.FETCH_PROGRAM_TYPES_SUCCEEDED();\n return response;\n }\n catch (error) {\n const apiErrorResponse: ApiErrorResponse = APP_UTILITIES.errorToApiErrorResponse(error);\n this.FETCH_PROGRAM_TYPES_FAILED(apiErrorResponse);\n }\n }\n\n @Action\n async createProgram(payload: AddEditProgramPayload) {\n try {\n this.SAVE_PROGRAM_REQUESTED();\n const response = await addProgram(payload);\n const newProgramId: number = response.data; // The API literally just returns the ID and that's it\n APP_UTILITIES.setCookie('program_id', `${newProgramId}`, 1); // TODO (REFACTOR): This is how the app currently stores/passes the ID to the next page to fetch data -- not ideal, but keeping for now\n this.SAVE_PROGRAM_SUCCEEDED();\n return response;\n }\n catch (error) {\n const apiErrorResponse: ApiErrorResponse = APP_UTILITIES.errorToApiErrorResponse(error);\n this.SAVE_PROGRAM_FAILED(apiErrorResponse);\n }\n }\n\n @Action\n async fetchProgramData(programId: number) {\n try {\n this.FETCH_PROGRAM_DATA_REQUESTED();\n const response = await getProgramData(programId);\n this.SET_PROGRAM_DATA(response && response.data);\n this.FETCH_PROGRAM_DATA_SUCCEEDED();\n return response;\n }\n catch (error) {\n const apiErrorResponse: ApiErrorResponse = APP_UTILITIES.errorToApiErrorResponse(error);\n this.FETCH_PROGRAM_DATA_FAILED(apiErrorResponse);\n }\n }\n\n @Action\n async updateProgram(payload: AddEditProgramPayload) {\n try {\n this.SAVE_PROGRAM_REQUESTED();\n const response = await updateProgram(payload);\n this.SAVE_PROGRAM_SUCCEEDED();\n return response;\n }\n catch (error) {\n const apiErrorResponse: ApiErrorResponse = APP_UTILITIES.errorToApiErrorResponse(error);\n this.SAVE_PROGRAM_FAILED(apiErrorResponse);\n }\n }\n}\nexport default getModule(ProgramsModule);","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('OffCanvas',{attrs:{\"isVisible\":_vm.isAddEditProgramVisibleSync,\"shouldFocusFirstField\":true},on:{\"update:isVisible\":function($event){_vm.isAddEditProgramVisibleSync=$event},\"update:is-visible\":function($event){_vm.isAddEditProgramVisibleSync=$event},\"onBeforeClose\":_vm.onBeforeClose,\"onClose\":_vm.onClose}},[_c('aside',{staticClass:\"add-new-sec add-edit-program\"},[(!_vm.programsModule.isFetchingProgramTypes)?_c('div',[_c('div',{staticClass:\"stepper-section-header\"},[_c('h3',{attrs:{\"bx-attr\":\"add-program-label\"}},[_vm._v(\" \"+_vm._s(_vm.formTitle)+\" \")])]),_c('div',{staticClass:\"add-head\"},[_c('form',{staticClass:\"form-wrapper\",attrs:{\"autocomplete\":\"off\"},on:{\"submit\":function($event){$event.preventDefault();}}},[_c('div',{staticClass:\"form-row\"},[_c('div',{staticClass:\"form-group-wrapper uk-padding-remove uk-margin-remove\"},[_c('div',{staticClass:\"form-group\"},[_c('label',{attrs:{\"bx-attr\":\"program-name-label\",\"for\":\"programName\"}},[_vm._v(\" \"+_vm._s(_vm.programNameLabel)),_c('span',{staticClass:\"asterisk\"},[_vm._v(\"*\")])]),_c('input',{directives:[{name:\"model\",rawName:\"v-model.trim\",value:(_vm.programData.programName),expression:\"programData.programName\",modifiers:{\"trim\":true}}],class:{ 'outline-red': _vm.shouldApplyErrorClassForProgramName },attrs:{\"bx-attr\":\"program-name-input\",\"id\":\"programName\",\"name\":\"programName\",\"required\":\"\",\"maxlength\":_vm.programNameMaxLength},domProps:{\"value\":(_vm.programData.programName)},on:{\"input\":[function($event){if($event.target.composing){ return; }_vm.$set(_vm.programData, \"programName\", $event.target.value.trim())},_vm.onInputProgramName],\"blur\":function($event){return _vm.$forceUpdate()}}}),(_vm.shouldShowErrorForProgramName)?_c('span',{staticClass:\"error-message\",attrs:{\"bx-attr\":\"program-name-error-message\"}},[_vm._v(\" \"+_vm._s(_vm.formFieldStates.programName.errorMessage)+\" \")]):_vm._e()])]),_c('div',{staticClass:\"form-group-wrapper uk-padding-remove uk-margin-remove\"},[_c('div',{staticClass:\"form-group\"},[_c('div',{staticClass:\"form-row\"},[_c('div',{staticClass:\"uk-grid\"},[_c('div',{staticClass:\"uk-width-1-2\"},[_c('div',{staticClass:\"form-group-wrapper datepicker-wrapper uk-padding-remove uk-margin-remove\"},[_c('label',[_vm._v(\" \"+_vm._s(_vm.programStartDateLabel)),_c('span',{staticClass:\"asterisk\"},[_vm._v(\"*\")])]),_c('DatepickerComponent',{attrs:{\"bx-attr\":\"program-start-date-input\",\"id\":\"programStartDate\",\"inputClass\":_vm.startDateDatepickerInputClass,\"date\":_vm.programData.programStartDate,\"fromDate\":_vm.programStartDateMax,\"openDate\":_vm.startDateOpenDate},on:{\"onDateChange\":_vm.onChangeProgramStartDate}}),(_vm.shouldShowErrorForProgramStartDate)?_c('span',{staticClass:\"error-message\",attrs:{\"bx-attr\":\"program-start-date-error-message\"}},[_vm._v(\" \"+_vm._s(_vm.formFieldStates.programStartDate.errorMessage)+\" \")]):_vm._e()],1)]),_c('div',{staticClass:\"uk-width-1-2\"},[_c('div',{staticClass:\"form-group-wrapper datepicker-wrapper uk-padding-remove uk-margin-remove\"},[_c('label',[_vm._v(\" \"+_vm._s(_vm.programEndDateLabel)),_c('span',{staticClass:\"asterisk\"},[_vm._v(\"*\")])]),_c('DatepickerComponent',{attrs:{\"bx-attr\":\"program-end-date-input\",\"id\":\"programEndDate\",\"inputClass\":_vm.endDateDatepickerInputClass,\"date\":_vm.programData.programEndDate,\"toDate\":_vm.programEndDateMin,\"openDate\":_vm.endDateOpenDate},on:{\"onDateChange\":_vm.onChangeProgramEndDate}}),(_vm.shouldShowErrorForProgramEndDate)?_c('span',{staticClass:\"error-message\",attrs:{\"bx-attr\":\"program-end-date-error-message\"}},[_vm._v(\" \"+_vm._s(_vm.formFieldStates.programEndDate.errorMessage)+\" \")]):_vm._e()],1)])])]),_c('div',{staticClass:\"form-row\"},[_c('p',{staticClass:\"program-session-conflict-warning\"},[(_vm.shouldShowDateRangeSessionHint)?_c('span',[_vm._v(\" \"+_vm._s(_vm.programSessionDateConflictHint)+\" \")]):_vm._e()])])])]),_c('div',{staticClass:\"form-group-wrapper uk-padding-remove uk-margin-remove\"},[_c('div',{staticClass:\"form-group\"},[_c('label',{attrs:{\"bx-attr\":\"program-enrollment-goal-label\",\"for\":\"programEnrollmentGoal\"}},[_vm._v(\" \"+_vm._s(_vm.programEnrollmentGoalLabel)),_c('span',{staticClass:\"asterisk\"},[_vm._v(\"*\")]),_c('span',{staticClass:\"normal-font input-qualifier\"},[_vm._v(\"(\"+_vm._s(_vm.programEnrollmentGoalQualifierLabel)+\")\")])]),_c('input',{directives:[{name:\"model\",rawName:\"v-model.number\",value:(_vm.programData.programEnrollmentGoal),expression:\"programData.programEnrollmentGoal\",modifiers:{\"number\":true}}],class:{ 'outline-red': _vm.shouldApplyErrorClassForProgramEnrollmentGoal },attrs:{\"bx-attr\":\"program-enrollment-goal-input\",\"id\":\"programEnrollmentGoal\",\"name\":\"programEnrollmentGoal\",\"required\":\"\",\"maxlength\":_vm.programEnrollmentGoalMaxLength},domProps:{\"value\":(_vm.programData.programEnrollmentGoal)},on:{\"keypress\":_vm.forceNumberInput,\"input\":[function($event){if($event.target.composing){ return; }_vm.$set(_vm.programData, \"programEnrollmentGoal\", _vm._n($event.target.value))},_vm.onInputProgramEnrollmentGoal],\"blur\":function($event){return _vm.$forceUpdate()}}}),(_vm.shouldShowErrorForProgramEnrollmentGoal)?_c('span',{staticClass:\"error-message\",attrs:{\"bx-attr\":\"program-enrollment-goal-error-message\"}},[_vm._v(\" \"+_vm._s(_vm.formFieldStates.programEnrollmentGoal.errorMessage)+\" \")]):_vm._e()])]),_c('div',{staticClass:\"form-group-wrapper uk-padding-remove uk-margin-remove\"},[_c('div',{staticClass:\"form-group\"},[_c('label',{attrs:{\"bx-attr\":\"program-type-label\"}},[_vm._v(\" \"+_vm._s(_vm.programTypeLabel)),_c('span',{staticClass:\"asterisk\"},[_vm._v(\"*\")])]),_c('DropdownList',{attrs:{\"dropdown\":_vm.programTypeDropdownListOptions,\"autoSelectionAllowed\":true},on:{\"onSelectionChange\":_vm.onSelectProgramType}}),(_vm.shouldShowErrorForProgramType)?_c('span',{staticClass:\"error-message\",attrs:{\"bx-attr\":\"program-type-error-message\"}},[_vm._v(\" \"+_vm._s(_vm.formFieldStates.programType.errorMessage)+\" \")]):_vm._e()],1)]),_c('div',{staticClass:\"form-group-wrapper uk-padding-remove uk-margin-remove\"},[_c('div',{staticClass:\"form-group\"},[_c('label',{attrs:{\"bx-attr\":\"program-description-label\",\"for\":\"programDescription\"}},[_vm._v(\" \"+_vm._s(_vm.programDescriptionLabel)+\" \")]),_c('textarea',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.programData.programDescription),expression:\"programData.programDescription\"}],class:{ 'outline-red': _vm.shouldApplyErrorClassForProgramDescription },attrs:{\"id\":\"programDescription\",\"name\":\"programDescription\",\"maxlength\":_vm.programDescriptionMaxLength},domProps:{\"value\":(_vm.programData.programDescription)},on:{\"input\":[function($event){if($event.target.composing){ return; }_vm.$set(_vm.programData, \"programDescription\", $event.target.value)},_vm.onInputProgramDescription]}}),(_vm.shouldShowErrorForProgramDescription)?_c('span',{staticClass:\"error-message\",attrs:{\"bx-attr\":\"program-description-error-message\"}},[_vm._v(\" \"+_vm._s(_vm.formFieldStates.programDescription.errorMessage)+\" \")]):_vm._e()])])]),_c('div',{staticClass:\"form-group button-container\"},[_c('a',{staticClass:\"cancel-btn btn-secondary\",attrs:{\"bx-attr\":\"cancel-btn\",\"href\":\"javascript:void(0)\"},on:{\"click\":_vm.onCancel}},[_vm._v(\" \"+_vm._s(_vm.cancelButtonText)+\" \")]),_c('ProgressButton',{attrs:{\"bx-attr\":\"save-btn\",\"apiResponseCode\":_vm.saveProgressButtonState,\"isValidation\":_vm.isValidForProgressButton,\"buttonIndex\":_vm.saveButtonText,\"buttonText\":_vm.saveButtonText,\"updateProgress\":true},on:{\"submitData\":function($event){return _vm.onSubmit()}}})],1),(_vm.footerErrorMessage)?_c('div',{staticClass:\"form-row\"},[_c('div',{staticClass:\"error-message lineheight\",attrs:{\"bx-attr\":\"common-error\"}},[_vm._v(\" \"+_vm._s(_vm.footerErrorMessage)+\" \")])]):_vm._e()])])]):_c('div',[_c('BouncingPreloader')],1)]),_c('CancelConfirmation',{attrs:{\"isVisible\":_vm.isCancelConfirmationVisible,\"hasContinueEvent\":true},on:{\"update:isVisible\":function($event){_vm.isCancelConfirmationVisible=$event},\"update:is-visible\":function($event){_vm.isCancelConfirmationVisible=$event},\"continue\":_vm.onContinueConfirmation}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Component, Emit, Prop, PropSync, Vue, Watch } from 'vue-property-decorator';\nimport { ScreenText } from '@/lang/ScreenText';\nimport APP_UTILITIES from '@/utilities/commonFunctions';\nimport ProgramsModule from '@/store/modules/Programs/module';\nimport SessionsModule from '@/store/modules/Sessions/module';\nimport OffCanvas from '@/commoncomponents/OffCanvas.vue';\nimport DatepickerComponent from '@/ui-components/datepicker/DatepickerComponent.vue';\nimport DropdownList from '@/ui-components/dropdownListBx/DropdownList.vue';\nimport { DropdownListItem, DropdownListOptions } from '@/ui-components/dropdownListBx/types';\nimport ProgressButton from '@/commoncomponents/progressButton/progressButton.vue';\nimport { AddEditProgramData, AddEditProgramPayload, ProgramType, AddEditProgramDataFormField, AddEditProgramFormData } from '@/Model/programs/types';\nimport CancelConfirmation from '@/popupcomponents/cancelConfirmation/CancelConfirmation.vue';\nimport APP_CONST from '@/constants/AppConst';\nimport BouncingPreloader from '@/commoncomponents/bouncingpreloadercomponent/BouncingPreloaderComponent.vue';\nimport { ApiErrorType } from '@/Model/errors/api/types';\nimport { FormFieldValidation, FormValidation, FormValidationError } from '@/Model/forms/types';\n\n@Component({\n components: {\n OffCanvas,\n DatepickerComponent,\n DropdownList,\n ProgressButton,\n CancelConfirmation,\n BouncingPreloader\n }\n})\nexport default class AddEditProgram extends Vue {\n\n @Prop({ type: Boolean, default: false }) readonly isEditMode!: boolean;\n @PropSync('isAddEditProgramVisible', { type: Boolean, required: true }) isAddEditProgramVisibleSync!: boolean;\n\n @Emit('onProgramUpdate')\n onProgramUpdate(programId: number) {\n return programId;\n }\n\n readonly screenText = new ScreenText();\n readonly programsModule = ProgramsModule;\n readonly sessionsModule = SessionsModule;\n readonly programNameMaxLength = 100;\n readonly programEnrollmentGoalMin = 1;\n readonly programEnrollmentGoalMax = 10000000;\n readonly programEnrollmentGoalMaxLength = 8;\n readonly programDescriptionMaxLength = 500;\n readonly defaultInitialProgramData: AddEditProgramData = {\n programId: 0,\n programName: '',\n programStartDate: null,\n programEndDate: null,\n programType: null,\n programEnrollmentGoal: '',\n programDescription: ''\n };\n\n isValidForProgressButton = true;\n isCancelConfirmationVisible = false;\n skipCancelConfirmation = false;\n hasUserSubmitted = false;\n programData: AddEditProgramData = { ...this.initialProgramData };\n\n get previousProgramTypeId(): number {\n return (this.initialProgramData.programType && this.initialProgramData.programType.id) || -1;\n }\n\n get initialProgramData(): AddEditProgramData {\n const storeProgramData = this.programsModule.programData;\n if (!this.isEditMode || !storeProgramData || !storeProgramData.programDto) {\n return this.defaultInitialProgramData;\n }\n let startDate: Date | null = null;\n let endDate: Date | null = null;\n try {\n startDate = new Date(storeProgramData.programDto.startDate);\n endDate = new Date(storeProgramData.programDto.endDate);\n }\n catch (error) {\n console.log('Error converting initial program data:', error);\n }\n const programType: ProgramType | null = this.programsModule.programTypes\n .find(pt => pt.id === storeProgramData.programDto.productId) || null;\n return {\n programId: storeProgramData.programDto.id,\n programName: storeProgramData.programDto.name,\n programStartDate: startDate,\n programEndDate: endDate,\n programEnrollmentGoal: storeProgramData.programDto.numberOfScholars,\n programType: programType,\n programDescription: storeProgramData.programDto.description\n };\n }\n\n get formTitle(): string {\n return this.isEditMode\n ? this.screenText.getScreenText('EDIT_PROGRAM_TITLE')\n : this.screenText.getScreenText('ADD_PROGRAM_TITLE');\n }\n\n get programNameLabel(): string {\n return this.screenText.getScreenText('ADD_EDIT_PROGRAM_NAME');\n }\n\n get programStartDateLabel(): string {\n return this.screenText.getScreenText('ADD_EDIT_PROGRAM_START_DATE');\n }\n\n get programEndDateLabel(): string {\n return this.screenText.getScreenText('ADD_EDIT_PROGRAM_END_DATE');\n }\n\n get programSessionDateConflictHint(): string {\n return this.screenText.getScreenText('ADD_EDIT_PROGRAM_SESSION_DATE_CONFLICT_HINT');\n }\n\n get programEnrollmentGoalLabel(): string {\n return this.screenText.getScreenText('ADD_EDIT_PROGRAM_ENROLLMENT_GOAL');\n }\n\n get programEnrollmentGoalQualifierLabel(): string {\n return this.screenText.getScreenText('ADD_EDIT_PROGRAM_ENROLLMENT_INPUT_QUALIFIER');\n }\n\n get programTypeLabel(): string {\n return this.screenText.getScreenText('ADD_EDIT_PROGRAM_TYPE');\n }\n\n get programDescriptionLabel(): string {\n return this.screenText.getScreenText('ADD_EDIT_PROGRAM_DESCRIPTION');\n }\n\n get cancelButtonText(): string {\n return this.screenText.getScreenText('BTN_CANCEL');\n }\n\n get saveButtonText(): string {\n return this.screenText.getScreenText('BTN_SAVE');\n }\n\n get programTypeDropdownListOptions(): DropdownListOptions {\n const dropdownList: Array = this.programsModule.programTypes.map((programType) => ({\n id: programType.id,\n value: programType.name\n }));\n const programTypeId = (this.programData.programType && this.programData.programType.id) || 0;\n const programTypeName = (this.programData.programType && this.programData.programType.name) || this.screenText.getScreenText('ADD_EDIT_PROGRAM_TYPE_DEFAULT_SELECT');\n return {\n id: programTypeId,\n singleSelect: true,\n showSelectLabel: true,\n value: programTypeName,\n dropdownList,\n error: this.shouldApplyErrorClassForFormField('programType'),\n errorText: this.shouldShowErrorForFormField('programType')\n ? this.formFieldStates.programType.errorMessage\n : ''\n };\n }\n\n get programStartDateMax(): Date | null {\n if (this.isEditMode) {\n const sessionStartDateTimes = this.sessionsModule.sessions.map(session => new Date(session.startDateTime));\n const sessionStartDateTimesExist = (sessionStartDateTimes || []).length > 0;\n if (sessionStartDateTimesExist) {\n const earliestSessionStartDate = sessionStartDateTimes.reduce((prev, cur) => cur.getTime() < prev.getTime()\n ? cur\n : prev, sessionStartDateTimes[0]);\n return earliestSessionStartDate;\n }\n }\n const programEndDate = this.programData.programEndDate;\n if (programEndDate && programEndDate instanceof Date) {\n return programEndDate;\n }\n return null;\n }\n\n get programEndDateMin(): Date | null {\n if (this.isEditMode) {\n const sessionEndDateTimes = this.sessionsModule.sessions.map(session => new Date(session.endDateTime));\n const sessionEndDateTimesExist = (sessionEndDateTimes || []).length > 0;\n if (sessionEndDateTimesExist) {\n const furthestOutSessionEndDate = sessionEndDateTimes.reduce((prev, cur) => cur.getTime() > prev.getTime()\n ? cur\n : prev, sessionEndDateTimes[0]);\n return furthestOutSessionEndDate;\n }\n }\n const programStartDate = this.programData.programStartDate;\n if (programStartDate && programStartDate instanceof Date) {\n return programStartDate;\n }\n return null;\n }\n\n get footerErrorMessage(): string {\n let message = '';\n if (this.programsModule.saveProgramFailedError) {\n const isProgramNameDuplicateApiError = this.programsModule.saveProgramFailedError.name === ApiErrorType.Error_ProgramNameExistsInAccount;\n if (isProgramNameDuplicateApiError && this.formFieldStates.programName.error === FormValidationError.DUPLICATE) {\n message = this.programsModule.saveProgramFailedError.value;\n }\n const isUnknownApiError = this.programsModule.saveProgramFailedError.name === ApiErrorType.Error_Unknown;\n if (isUnknownApiError) {\n message = this.programsModule.saveProgramFailedError.value;\n }\n }\n if (!message && this.hasUserSubmitted && (this.doAnyFormFieldsHaveSpecificError(FormValidationError.REQUIRED))) {\n message = this.screenText.getScreenText('ALL_FIELDS_MANDATORY');\n }\n return message;\n }\n\n get startDateOpenDate(): Date {\n return this.programData.programStartDate || this.programData.programEndDate || new Date();\n }\n\n get endDateOpenDate(): Date {\n return this.programData.programEndDate || this.programData.programStartDate || new Date();\n }\n\n get startDateDatepickerInputClass(): string {\n return this.getDatepickerInputClass('programStartDate');\n }\n\n get endDateDatepickerInputClass(): string {\n return this.getDatepickerInputClass('programEndDate');\n }\n\n get saveProgressButtonState(): number {\n if (!this.programsModule.isSavingProgram && !this.programsModule.didSaveProgramFail) {\n return 200;\n }\n else if (!this.programsModule.isSavingProgram && this.programsModule.didSaveProgramFail) {\n return 400;\n }\n return 0;\n }\n\n get shouldShowDateRangeSessionHint(): boolean {\n return (!this.shouldShowErrorForFormField('programStartDate') && !this.shouldShowErrorForFormField('programEndDate'));\n }\n\n get shouldApplyErrorClassForProgramName(): boolean {\n return this.shouldApplyErrorClassForFormField('programName');\n }\n\n get shouldApplyErrorClassForProgramEnrollmentGoal(): boolean {\n return this.shouldApplyErrorClassForFormField('programEnrollmentGoal');\n }\n\n get shouldApplyErrorClassForProgramType(): boolean {\n return this.shouldApplyErrorClassForFormField('programType');\n }\n\n get shouldApplyErrorClassForProgramDescription(): boolean {\n return this.shouldApplyErrorClassForFormField('programDescription');\n }\n\n get shouldShowErrorForProgramName(): boolean {\n if (\n this.programsModule.saveProgramFailedError &&\n this.programsModule.saveProgramFailedError.name === ApiErrorType.Error_ProgramNameExistsInAccount &&\n this.formFieldStates.programName.error === FormValidationError.DUPLICATE &&\n this.shouldApplyErrorClassForFormField('programName')\n ) {\n return true;\n }\n return this.shouldShowErrorForFormField('programName');\n }\n\n get shouldShowErrorForProgramStartDate(): boolean {\n return this.shouldShowErrorForFormField('programStartDate');\n }\n\n get shouldShowErrorForProgramEndDate(): boolean {\n return this.shouldShowErrorForFormField('programEndDate');\n }\n\n get shouldShowErrorForProgramEnrollmentGoal(): boolean {\n return this.shouldShowErrorForFormField('programEnrollmentGoal');\n }\n\n get shouldShowErrorForProgramType(): boolean {\n return this.shouldShowErrorForFormField('programType');\n }\n\n get shouldShowErrorForProgramDescription(): boolean {\n return this.shouldShowErrorForFormField('programDescription');\n }\n\n // Form validation -- ideally should be done via a library\n formFieldStates: FormFieldValidation = {\n programName: this.getDefaultFormFieldValidationState(),\n programStartDate: this.getDefaultFormFieldValidationState(),\n programEndDate: this.getDefaultFormFieldValidationState(),\n programEnrollmentGoal: this.getDefaultFormFieldValidationState(),\n programType: this.getDefaultFormFieldValidationState(),\n programDescription: this.getDefaultFormFieldValidationState(),\n };\n\n @Watch('programsModule.saveProgramFailedError')\n onSaveProgramFailedErrorChanged(saveProgramFailedError: typeof ProgramsModule.saveProgramFailedError) {\n if (saveProgramFailedError && saveProgramFailedError.name === ApiErrorType.Error_ProgramNameExistsInAccount) {\n const formFieldState = this.formFieldStates.programName;\n formFieldState.error = FormValidationError.DUPLICATE;\n formFieldState.errorMessage = saveProgramFailedError.value;\n formFieldState.valid = false;\n }\n }\n\n created() {\n this.programsModule.fetchProgramTypes().then(() => {\n if (this.isEditMode) {\n this.programData = {\n ...this.programData,\n programType: this.initialProgramData.programType\n };\n }\n });\n }\n\n forceNumberInput = APP_UTILITIES.forceNumberInput;\n\n getDefaultFormFieldValidationState(): FormValidation {\n return {\n changes: false,\n dirty: false,\n error: null,\n errorMessage: '',\n valid: false\n };\n }\n\n checkFormFieldChanges(field: AddEditProgramDataFormField) {\n const formFieldState = this.formFieldStates[field];\n let initial = this.initialProgramData[field];\n let current = this.programData[field];\n if (typeof initial === 'string') {\n initial = initial.trim();\n }\n if (typeof current === 'string') {\n current = current.trim();\n }\n let hasChanges = (initial !== current);\n\n // Special condition for enrollment goal because if input is erased\n // it is modelled as an empty string rather than a number, so we\n // instead check if both are falsy, meaning no changes occurred\n if (field === 'programEnrollmentGoal' && !initial && !current) {\n hasChanges = false;\n }\n\n formFieldState.changes = hasChanges;\n\n if (hasChanges && this.hasUserSubmitted) {\n this.checkFormValid();\n }\n }\n\n onInputProgramName() {\n const formFieldState = this.formFieldStates.programName;\n if (!formFieldState.dirty) {\n formFieldState.dirty = true;\n }\n this.checkFormFieldChanges('programName');\n }\n\n checkProgramNameValid() {\n const programName = this.programData.programName;\n const formFieldState = this.formFieldStates.programName;\n if (!programName || !programName.trim() || !programName.trim().length) {\n formFieldState.valid = false;\n formFieldState.error = FormValidationError.REQUIRED;\n formFieldState.errorMessage = `${this.screenText.getScreenText('ADD_EDIT_PROGRAM_NAME')} ${this.screenText.getScreenText('FORM_VALIDATION_REQUIRED_PREDICATE')}.`;\n }\n else if (programName.length > this.programNameMaxLength) {\n formFieldState.valid = false;\n formFieldState.error = FormValidationError.MAX_LENGTH;\n formFieldState.errorMessage = `${this.screenText.getScreenText('ADD_EDIT_PROGRAM_NAME')} ${this.screenText.getScreenText('FORM_VALIDATION_MAX_LENGTH_PREDICATE')} ${this.programNameMaxLength}.`;\n }\n else {\n formFieldState.valid = true;\n formFieldState.error = null;\n formFieldState.errorMessage = '';\n }\n }\n\n onChangeProgramStartDate(startDate: Date) {\n this.programData.programStartDate = startDate;\n const formFieldState = this.formFieldStates.programStartDate;\n if (!formFieldState.dirty) {\n formFieldState.dirty = true;\n }\n this.checkFormFieldChanges('programStartDate');\n }\n\n checkProgramStartDateValid() {\n const programStartDate = this.programData.programStartDate;\n const formFieldState = this.formFieldStates.programStartDate;\n if (!programStartDate) {\n formFieldState.valid = false;\n formFieldState.error = FormValidationError.REQUIRED;\n formFieldState.errorMessage = `${this.screenText.getScreenText('ADD_EDIT_PROGRAM_START_DATE')} ${this.screenText.getScreenText('FORM_VALIDATION_REQUIRED_PREDICATE')}.`;\n }\n else {\n formFieldState.valid = true;\n formFieldState.error = null;\n formFieldState.errorMessage = '';\n }\n }\n\n onChangeProgramEndDate(endDate: Date) {\n this.programData.programEndDate = endDate;\n const formFieldState = this.formFieldStates.programEndDate;\n if (!formFieldState.dirty) {\n formFieldState.dirty = true;\n }\n this.checkFormFieldChanges('programEndDate');\n }\n\n checkProgramEndDateValid() {\n const programStartDate = this.programData.programStartDate;\n const programEndDate = this.programData.programEndDate;\n const formFieldState = this.formFieldStates.programEndDate;\n if (!programEndDate) {\n formFieldState.valid = false;\n formFieldState.error = FormValidationError.REQUIRED;\n formFieldState.errorMessage = `${this.screenText.getScreenText('ADD_EDIT_PROGRAM_END_DATE')} ${this.screenText.getScreenText('FORM_VALIDATION_REQUIRED_PREDICATE')}.`;\n }\n else if (programStartDate && programStartDate > programEndDate) {\n formFieldState.valid = false;\n formFieldState.error = FormValidationError.MIN;\n formFieldState.errorMessage = `${this.screenText.getScreenText('ADD_EDIT_PROGRAM_END_DATE')} ${this.screenText.getScreenText('FORM_VALIDATION_GREATER_THAN_PREDICATE')} ${this.screenText.getScreenText('ADD_EDIT_PROGRAM_START_DATE')}.`;\n }\n else {\n formFieldState.valid = true;\n formFieldState.error = null;\n formFieldState.errorMessage = '';\n }\n }\n\n onInputProgramEnrollmentGoal() {\n const formFieldState = this.formFieldStates.programEnrollmentGoal;\n if (!formFieldState.dirty) {\n formFieldState.dirty = true;\n }\n this.checkFormFieldChanges('programEnrollmentGoal');\n }\n\n checkProgramEnrollmentGoalValid() {\n const programEnrollmentGoal = this.programData.programEnrollmentGoal;\n const formFieldState = this.formFieldStates.programEnrollmentGoal;\n if (programEnrollmentGoal === undefined || programEnrollmentGoal === null || programEnrollmentGoal === '') {\n formFieldState.valid = false;\n formFieldState.error = FormValidationError.REQUIRED;\n formFieldState.errorMessage = `${this.screenText.getScreenText('ADD_EDIT_PROGRAM_ENROLLMENT_GOAL')} ${this.screenText.getScreenText('FORM_VALIDATION_REQUIRED_PREDICATE')}.`;\n }\n else if (typeof programEnrollmentGoal !== 'number') {\n formFieldState.valid = false;\n formFieldState.error = FormValidationError.TYPE;\n formFieldState.errorMessage = `${this.screenText.getScreenText('ADD_EDIT_PROGRAM_ENROLLMENT_GOAL')} ${this.screenText.getScreenText('FORM_VALIDATION_NUMBER_ONLY_PREDICATE')}.`;\n }\n else if (programEnrollmentGoal > this.programEnrollmentGoalMax) {\n formFieldState.valid = false;\n formFieldState.error = FormValidationError.MAX;\n formFieldState.errorMessage = `${this.screenText.getScreenText('ADD_EDIT_PROGRAM_ENROLLMENT_GOAL')} ${this.screenText.getScreenText('FORM_VALIDATION_LESS_THAN_EQUAL_TO_PREDICATE')} ${this.programEnrollmentGoalMax}.`;\n }\n else if (programEnrollmentGoal < this.programEnrollmentGoalMin) {\n formFieldState.valid = false;\n formFieldState.error = FormValidationError.MIN;\n formFieldState.errorMessage = `${this.screenText.getScreenText('ADD_EDIT_PROGRAM_ENROLLMENT_GOAL')} ${this.screenText.getScreenText('FORM_VALIDATION_GREATER_THAN_PREDICATE')} ${this.programEnrollmentGoalMin - 1}.`;\n }\n else {\n formFieldState.valid = true;\n formFieldState.error = null;\n formFieldState.errorMessage = '';\n }\n }\n\n onSelectProgramType(selection: DropdownListItem) {\n this.programData.programType = this.programsModule.programTypes.find(pt => pt.id === selection.id) || null;\n const formFieldState = this.formFieldStates.programType;\n if (!formFieldState.dirty) {\n formFieldState.dirty = true;\n }\n this.checkFormFieldChanges('programType');\n }\n\n checkProgramTypeValid() {\n const programType = this.programData.programType;\n const formFieldState = this.formFieldStates.programType;\n if (!programType) {\n formFieldState.valid = false;\n formFieldState.error = FormValidationError.REQUIRED;\n formFieldState.errorMessage = `${this.screenText.getScreenText('ADD_EDIT_PROGRAM_TYPE')} ${this.screenText.getScreenText('FORM_VALIDATION_REQUIRED_PREDICATE')}.`;\n }\n else {\n formFieldState.valid = true;\n formFieldState.error = null;\n formFieldState.errorMessage = '';\n }\n }\n\n onInputProgramDescription() {\n const formFieldState = this.formFieldStates.programDescription;\n if (!formFieldState.dirty) {\n formFieldState.dirty = true;\n }\n this.checkFormFieldChanges('programDescription');\n }\n\n checkProgramDescriptionValid() {\n const programDescription = this.programData.programDescription;\n const formFieldState = this.formFieldStates.programDescription;\n if (programDescription && programDescription.trim() && programDescription.length > this.programDescriptionMaxLength) {\n formFieldState.valid = false;\n formFieldState.error = FormValidationError.MAX_LENGTH;\n formFieldState.errorMessage = `${this.screenText.getScreenText('ADD_EDIT_PROGRAM_DESCRIPTION')} ${this.screenText.getScreenText('FORM_VALIDATION_MAX_LENGTH_PREDICATE')} ${this.programDescriptionMaxLength}.`;\n }\n else {\n formFieldState.valid = true;\n formFieldState.error = null;\n formFieldState.errorMessage = '';\n }\n }\n\n onCancel() {\n this.isAddEditProgramVisibleSync = false;\n }\n\n onBeforeClose(event: Event) {\n if (this.programsModule.isSavingProgram) {\n event.preventDefault();\n }\n else if (this.hasFormChanges() && !this.skipCancelConfirmation) {\n this.isCancelConfirmationVisible = true;\n event.preventDefault();\n }\n }\n\n onClose() {\n this.isAddEditProgramVisibleSync = false;\n this.skipCancelConfirmation = false;\n this.resetForm();\n this.programsModule.RESET_SAVE_PROGRAM();\n }\n\n onContinueConfirmation() {\n this.isCancelConfirmationVisible = false;\n this.onClose();\n }\n\n async onSubmit() {\n this.hasUserSubmitted = true;\n this.programsModule.RESET_SAVE_PROGRAM();\n const allowSubmit = !this.programsModule.isSavingProgram && this.isFormValid() && this.hasFormChanges();\n if (!allowSubmit) {\n return;\n }\n\n const prepDate = (date: Date | null) => {\n return date\n ? APP_UTILITIES.formatFullYearDate(date.toISOString())\n : '';\n };\n const accountIdCookie = APP_UTILITIES.getCookie('accountId');\n const accountId = accountIdCookie\n ? Number.parseInt(accountIdCookie)\n : 0;\n const productId = (this.programData.programType && this.programData.programType.id) || 0;\n const startDate = prepDate(this.programData.programStartDate);\n const endDate = prepDate(this.programData.programEndDate);\n const numberOfScholars = this.programData.programEnrollmentGoal || 0;\n const initialStatus = (this.programsModule.programData && this.programsModule.programData.programDto.status) || 1;\n\n // Many of these values are hardcoded in the previous implementation\n const payload: AddEditProgramPayload = {\n programAdminId: 0, // Hardcoded `0` in original implementation\n isFinalSubmit: true, // Originally took the value of a component prop of the same name, but always got set to `true` during validation\n validationMode: this.isEditMode\n ? 2\n : 0,\n isProgramDateChanged: true, // Hardcoded `true` in original implementation\n programDto: {\n id: this.programData.programId,\n roleId: 0, // Hardcoded `0` in original implementation\n accId: accountId,\n name: this.programData.programName,\n productId,\n description: this.programData.programDescription,\n startDate,\n endDate,\n numberOfScholars,\n previousProductId: this.previousProgramTypeId,\n status: initialStatus,\n }\n };\n this.isValidForProgressButton = false;\n if (this.isEditMode) {\n await this.programsModule.updateProgram(payload);\n if (!this.programsModule.didSaveProgramFail) {\n this.isValidForProgressButton = true;\n this.programsModule.RESET_FETCH_PROGRAM_DATA();\n this.onProgramUpdate(payload.programDto.id);\n this.skipCancelConfirmation = true;\n this.isAddEditProgramVisibleSync = false;\n this.onClose();\n }\n }\n else {\n await this.programsModule.createProgram(payload);\n if (!this.programsModule.didSaveProgramFail) {\n this.isValidForProgressButton = true;\n this.skipCancelConfirmation = true;\n this.programsModule.RESET_FETCH_PROGRAM_DATA();\n this.$router.push(APP_CONST.APP_ROUTES.ACCOUNT_PROGRAMS_SESSIONS);\n }\n }\n }\n\n checkFormValid() {\n this.checkProgramNameValid();\n this.checkProgramStartDateValid();\n this.checkProgramEndDateValid();\n this.checkProgramEnrollmentGoalValid();\n this.checkProgramTypeValid();\n this.checkProgramDescriptionValid();\n }\n\n resetForm() {\n this.hasUserSubmitted = false;\n this.programData = { ...this.initialProgramData };\n this.formFieldStates = {\n programName: this.getDefaultFormFieldValidationState(),\n programStartDate: this.getDefaultFormFieldValidationState(),\n programEndDate: this.getDefaultFormFieldValidationState(),\n programEnrollmentGoal: this.getDefaultFormFieldValidationState(),\n programType: this.getDefaultFormFieldValidationState(),\n programDescription: this.getDefaultFormFieldValidationState(),\n };\n this.programsModule.SET_PROGRAM_TYPES([...this.programsModule.programTypes]); // TODO (REFACTOR): This is a workaround for now because the DropdownList component currently has no way of resetting the selection properly\n }\n\n isFormValid(): boolean {\n this.checkFormValid();\n for (const formFieldState of Object.values(this.formFieldStates)) {\n if (!formFieldState.valid) {\n return false;\n }\n }\n return true;\n }\n\n hasFormChanges(): boolean {\n for (const formFieldState of Object.values(this.formFieldStates)) {\n if (formFieldState.changes) {\n return true;\n }\n }\n return false;\n }\n\n doAnyFormFieldsHaveSpecificError(error: FormValidationError): boolean {\n for (const formFieldState of Object.values(this.formFieldStates)) {\n if (formFieldState.error === error) {\n return true;\n }\n }\n return false;\n }\n\n shouldApplyErrorClassForFormField(field: AddEditProgramDataFormField): boolean {\n const formFieldState = this.formFieldStates[field];\n if (this.hasUserSubmitted && !formFieldState.valid) {\n return true;\n }\n return false;\n }\n\n shouldShowErrorForFormField(field: AddEditProgramDataFormField): boolean {\n const formFieldState = this.formFieldStates[field];\n if (this.shouldApplyErrorClassForFormField(field) && formFieldState.error !== FormValidationError.REQUIRED) {\n return true;\n }\n return false;\n }\n\n getDatepickerInputClass(startOrEndDate: Extract): string {\n const formFieldDate = this.initialProgramData[startOrEndDate];\n if (this.isEditMode && formFieldDate) {\n const today = new Date();\n const isPastDate = today > formFieldDate;\n if (startOrEndDate === 'programEndDate' && isPastDate) {\n return 'disabled';\n }\n }\n if (this.shouldApplyErrorClassForFormField(startOrEndDate)) {\n return 'outline-red';\n }\n return '';\n }\n}\n","import mod from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--13-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AddEditProgram.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../../node_modules/thread-loader/dist/cjs.js!../../../../../node_modules/babel-loader/lib/index.js!../../../../../node_modules/ts-loader/index.js??ref--13-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AddEditProgram.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./AddEditProgram.vue?vue&type=template&id=35015947&scoped=true&\"\nimport script from \"./AddEditProgram.vue?vue&type=script&lang=ts&\"\nexport * from \"./AddEditProgram.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./AddEditProgram.vue?vue&type=style&index=0&id=35015947&lang=less&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"35015947\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"bouncing-preloader\"},[_c('div',{key:\"spinner_loading\",style:({ 'color': _vm.STYLE.COLOR.PRIMARY_700 }),attrs:{\"uk-spinner\":\"ratio: 3.2667\"}}),_c('span',[_vm._v(_vm._s(_vm.getScreenText(\"BOUNCING_PRELOADER_LOADING\")))])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { Vue, Component, Prop } from 'vue-property-decorator';\nimport { ScreenText } from '@/lang/ScreenText';\nimport APP_CONST from '@/constants/AppConst';\n\n@Component\nexport class BouncingPreloaderComponent extends Vue {\n @Prop() viewClass!: string;\n\n private screenText: ScreenText = new ScreenText();\n\n readonly STYLE = APP_CONST.STYLE;\n\n public getScreenText(key: string): string {\n return this.screenText.getScreenText(key);\n }\n}","\n\n\n\n\n\n\n\n\n\n\n\nimport { BouncingPreloaderComponent } from '@/commoncomponents/bouncingpreloadercomponent/BouncingPreloaderComponent';\nexport default BouncingPreloaderComponent;\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BouncingPreloaderComponent.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BouncingPreloaderComponent.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./BouncingPreloaderComponent.vue?vue&type=template&id=4eff2a66&scoped=true&\"\nimport script from \"./BouncingPreloaderComponent.vue?vue&type=script&lang=ts&\"\nexport * from \"./BouncingPreloaderComponent.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./BouncingPreloaderComponent.less?vue&type=style&index=0&id=4eff2a66&lang=less&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"4eff2a66\",\n null\n \n)\n\nexport default component.exports","export * from \"-!../../../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--10-oneOf-1-0!../../../../../node_modules/css-loader/dist/cjs.js??ref--10-oneOf-1-1!../../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../../node_modules/postcss-loader/src/index.js??ref--10-oneOf-1-2!../../../../../node_modules/less-loader/dist/cjs.js??ref--10-oneOf-1-3!../../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AddEditProgram.vue?vue&type=style&index=0&id=35015947&lang=less&scoped=true&\"","module.exports = __webpack_public_path__ + \"img/search.83aca4f4.svg\";","export enum FormValidationError {\n REQUIRED,\n MIN,\n MAX,\n MAX_LENGTH,\n TYPE,\n DUPLICATE,\n FORMAT\n}\n\nexport interface FormValidation {\n changes: boolean;\n dirty: boolean;\n error: FormValidationError | null;\n errorMessage: string;\n valid: boolean;\n}\n\nexport type FormFieldValidation = {\n [Property in keyof T]: FormValidation\n};\n\nexport enum VeeValidateProviderMode {\n Aggressive = 'aggressive',\n Passive = 'passive',\n Lazy = 'lazy',\n Eager = 'eager'\n}","enum MutationNames {\n FETCH_SESSIONS_REQUESTED = 'FETCH_SESSIONS_REQUESTED',\n FETCH_SESSIONS_SUCCEEDED = 'FETCH_SESSIONS_SUCCEEDED',\n FETCH_SESSIONS_FAILED = 'FETCH_SESSIONS_FAILED',\n RESET_FETCH_SESSIONS = 'RESET_FETCH_SESSIONS',\n SET_SESSIONS = 'SET_SESSIONS',\n CLEAR_SESSIONS = 'CLEAR_SESSIONS',\n SAVE_SESSION_REQUESTED = 'SAVE_SESSION_REQUESTED',\n SAVE_SESSION_SUCCEEDED = 'SAVE_SESSION_SUCCEEDED',\n SAVE_SESSION_FAILED = 'SAVE_SESSION_FAILED',\n RESET_SAVE_SESSION = 'RESET_SAVE_SESSION',\n}\n\nexport default MutationNames;","import { Action, getModule, Module, Mutation, VuexModule } from 'vuex-module-decorators';\nimport APP_UTILITIES from '@/utilities/commonFunctions';\nimport { addNewSession, getPagedSessionsForProgram, updateSession } from '@/services/sessions/api';\nimport { AddSessionPayload, EditSessionPayload, GetSessionsRequest, GetSessionsResponse, Session } from '@/Model/sessions/types';\nimport { ApiErrorResponse } from '@/Model/errors/api/types';\nimport { ErrorMessages } from '@/lang/errorText';\nimport store from '@/store';\nimport MutationNames from './mutationNames';\nimport GlobalMutationNames from '@/store/global/mutationNames';\n\nconst {\n SUPRESS_GLOBAL_ERROR_POPUP\n} = GlobalMutationNames;\n\nconst {\n FETCH_SESSIONS_REQUESTED,\n FETCH_SESSIONS_SUCCEEDED,\n FETCH_SESSIONS_FAILED,\n RESET_FETCH_SESSIONS,\n SET_SESSIONS,\n CLEAR_SESSIONS\n} = MutationNames;\n\nconst {\n SAVE_SESSION_REQUESTED,\n SAVE_SESSION_SUCCEEDED,\n SAVE_SESSION_FAILED,\n RESET_SAVE_SESSION,\n} = MutationNames;\n\n@Module({\n namespaced: true,\n name: 'sessions',\n store,\n dynamic: true\n})\nexport class SessionsModule extends VuexModule {\n sessions: Array = [];\n totalSessionCount: number = 0;\n isFetchingSessions = false;\n didFetchSessionsFail = false;\n fetchSessionsFailedError: ApiErrorResponse | null = null;\n\n isSavingSessions = false;\n didSessionsSaveFail = false;\n sessionSaveFailedError: ApiErrorResponse | null = null;\n\n errorMessages = new ErrorMessages();\n\n @Mutation\n [FETCH_SESSIONS_REQUESTED]() {\n this.isFetchingSessions = true;\n this.didFetchSessionsFail = false;\n this.fetchSessionsFailedError = null;\n }\n\n @Mutation\n [FETCH_SESSIONS_SUCCEEDED]() {\n this.isFetchingSessions = false;\n this.didFetchSessionsFail = false;\n this.fetchSessionsFailedError = null;\n }\n\n @Mutation\n [FETCH_SESSIONS_FAILED](error: ApiErrorResponse) {\n this.isFetchingSessions = false;\n this.didFetchSessionsFail = true;\n this.fetchSessionsFailedError = error;\n }\n\n @Mutation\n [RESET_FETCH_SESSIONS]() {\n this.isFetchingSessions = false;\n this.didFetchSessionsFail = false;\n this.fetchSessionsFailedError = null;\n }\n\n @Mutation\n [SET_SESSIONS](getSessionResponse: GetSessionsResponse) {\n this.sessions = getSessionResponse.results;\n this.totalSessionCount = getSessionResponse.totalSetCount;\n }\n\n @Mutation\n [CLEAR_SESSIONS]() {\n this.totalSessionCount = 0;\n this.sessions = [];\n }\n\n @Mutation\n [SAVE_SESSION_REQUESTED]() {\n this.isSavingSessions = true;\n this.didSessionsSaveFail = false;\n this.sessionSaveFailedError = null;\n }\n\n @Mutation\n [SAVE_SESSION_SUCCEEDED]() {\n this.isSavingSessions = false;\n this.didSessionsSaveFail = false;\n this.sessionSaveFailedError = null;\n }\n\n @Mutation\n [SAVE_SESSION_FAILED](error: ApiErrorResponse) {\n this.isSavingSessions = false;\n this.didSessionsSaveFail = true;\n this.sessionSaveFailedError = error;\n }\n\n @Mutation\n [RESET_SAVE_SESSION]() {\n this.isSavingSessions = false;\n this.didSessionsSaveFail = false;\n this.sessionSaveFailedError = null;\n }\n\n @Action\n async fetchSessionsForProgram(request: GetSessionsRequest) {\n try {\n this.FETCH_SESSIONS_REQUESTED();\n const response = await getPagedSessionsForProgram(request);\n\n this.SET_SESSIONS(response.data);\n this.FETCH_SESSIONS_SUCCEEDED();\n return response;\n }\n catch (error) {\n const apiErrorResponse: ApiErrorResponse = APP_UTILITIES.errorToApiErrorResponse(error);\n this.FETCH_SESSIONS_FAILED(apiErrorResponse);\n }\n }\n\n @Action\n async addNewSession(newSession: AddSessionPayload) {\n\n try {\n this.context.commit(`globalModule/${SUPRESS_GLOBAL_ERROR_POPUP}`, true, { root: true });\n this.SAVE_SESSION_REQUESTED();\n\n await addNewSession(newSession);\n\n this.SAVE_SESSION_SUCCEEDED();\n }\n catch (error) {\n const apiErrorResponse: ApiErrorResponse = APP_UTILITIES.errorToApiErrorResponse(error);\n this.SAVE_SESSION_FAILED(apiErrorResponse);\n }\n finally {\n this.context.commit(`globalModule/${SUPRESS_GLOBAL_ERROR_POPUP}`, false, { root: true });\n }\n }\n\n @Action\n async updateSession(payload: EditSessionPayload) {\n try {\n this.context.commit(`globalModule/${SUPRESS_GLOBAL_ERROR_POPUP}`, true, { root: true });\n this.SAVE_SESSION_REQUESTED();\n const response = await updateSession(payload);\n this.SAVE_SESSION_SUCCEEDED();\n return response;\n }\n catch (error) {\n const apiErrorResponse: ApiErrorResponse = APP_UTILITIES.errorToApiErrorResponse(error);\n this.SAVE_SESSION_FAILED(apiErrorResponse);\n }\n finally {\n this.context.commit(`globalModule/${SUPRESS_GLOBAL_ERROR_POPUP}`, false, { root: true });\n }\n }\n\n @Action\n async resetNewSession() {\n this.RESET_SAVE_SESSION();\n }\n}\n\nexport default getModule(SessionsModule);","module.exports = __webpack_public_path__ + \"img/arrowDown.33c89f03.svg\";","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--10-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--10-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--10-oneOf-1-2!../../../node_modules/less-loader/dist/cjs.js??ref--10-oneOf-1-3!./DropdownList.less?vue&type=style&index=0&id=7867c925&lang=less&scoped=true&\"","import { SiteLocationResponse, VerifiedSiteLocation, VerifiedSiteLocationResponse } from '@/Model/siteLocations/types';\nimport { CustomFeeResponse, Discount, TaxRate } from '@/Model/payments/types';\nimport { PriceRequest, PriceType, PriceResponse, PromoCode } from '@/Model/payments/types';\nimport { Day } from '../selectedDays/types';\nimport { BasePagedDataRequest } from '../shared/types';\n\nexport interface GetSessionsRequest extends BasePagedDataRequest {\n programId: number;\n sessionAutoEnrollmentFilter: AutoEnrollmentFilter;\n}\n\nexport interface GetSessionsResponse {\n results: Session[];\n totalSetCount: number;\n}\n\nexport interface Session {\n sessionId: number;\n accountId: number;\n programId: number;\n sessionName: string;\n programName: string;\n note1: string;\n note2: string;\n startDateTime: string;\n endDateTime: string;\n selectedDays: Array;\n enrollmentCount: number;\n scholarCapacity?: number;\n autoEnroll: boolean;\n autoEnrollment: string;\n autoEnrollCapacity?: number;\n waitListCapacity?: number;\n isTimeAdded: boolean;\n ageAsOf: string;\n ageFrom?: number;\n ageTo?: number;\n ageRestriction: string;\n createdAt: string;\n status: number;\n siteLocationId?: number;\n siteLocation?: VerifiedSiteLocation;\n prices?: Array;\n defaultPriceId?: string;\n taxRate?: TaxRate | null;\n promoCodes?: Array;\n customFees: CustomFeeResponse[];\n waitListIsUnlimited?: boolean | null;\n /** Discounts are optionally added */\n discounts?: Array;\n //TODO: This won't be required until the 'payment-plans' feature flag is removed\n isPaymentPlanEnabled?: boolean;\n}\n\nexport interface SessionWithExistingSiteLocation extends Omit {\n siteLocation?: SiteLocationResponse | VerifiedSiteLocationResponse;\n}\n\nexport interface AddSessionPayload {\n programId?: number;\n sessionName: string;\n note1?: string;\n note2?: string;\n startDate: Date | null;\n endDate: Date | null;\n startTime: string;\n endTime: string;\n selectedDays: Array;\n siteLocationId?: number;\n scholarCapacity?: number;\n autoEnroll?: boolean;\n ageTo?: number;\n ageFrom?: number;\n waitListCapacity?: number;\n autoEnrollCapacity?: number;\n ageAsOf?: Date | null;\n isTimeAdded: boolean;\n priceRequest: PriceRequest;\n taxRate: TaxRate | null;\n //TODO: This won't be required until the 'payment-plans' feature flag is removed\n isPaymentPlanEnabled? : boolean;\n waitListIsUnlimited?: boolean | null;\n}\n\nexport interface EditSessionPayload extends AddSessionPayload {\n sessionId: number;\n userConfirmsSoftDeleteAttendance: boolean;\n}\n\nexport interface AddSessionPayloadV2 {\n programId?: number;\n sessionName: string;\n sessionDescription: string;\n startDate: Date | null;\n endDate: Date | null;\n startTime: string;\n endTime: string;\n selectedDays: string[];\n siteLocationId?: number;\n}\n\nexport interface FilterDropdownOption {\n filterOption: FilterOption;\n displayText: string;\n}\n\nexport enum FilterOption {\n All = 1,\n AutoEnrollmentOn = 2,\n AutoEnrollmentOff = 3\n}\n\nexport enum SortOption {\n StartDateAsc = 1,\n StartDateDesc = 2,\n SessionNameAsc = 3,\n SessionNameDesc = 4,\n EnrolledScholarsAsc = 5,\n EnrolledScholarsDesc = 6\n}\nexport interface SortOptionWithDisplayText {\n sortOption: SortOption;\n displayText: string;\n}\n\nexport interface PaymentFrequencyRadioInputOption {\n id: string;\n option: PriceType;\n displayText: string;\n}\n\nexport enum AutoEnrollmentFilter {\n All,\n On,\n Off\n}\n\nexport interface SessionCardPromoCodeListItem {\n id: string;\n displayText: string;\n}\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"dropdown-list relative\",class:[_vm.classes, _vm.openDropdown && 'dropdown-open-list']},[(_vm.dropdown.label)?_c('label',{attrs:{\"bx-attr\":(\"dropdown-label-\" + (_vm.dropdown.label.toLowerCase().split(' ').join('-')))}},[_vm._v(_vm._s(_vm.dropdown.label)),(_vm.dropdown.required)?_c('span',[_vm._v(\"*\")]):_vm._e()]):_vm._e(),_c('div',{staticClass:\"relative clear-both\"},[_c('button',{class:[_vm.dropdown.error && 'outline-red', _vm.dropdown.disable && 'disable'],attrs:{\"id\":(\"dropdown-label-\" + _vm.publicUniqueId),\"type\":\"button\",\"bx-attr\":(\"toggleDropdown-\" + (_vm.dropdown.value)),\"disabled\":(_vm.dropdown.disable || _vm.dropdown.dropdownList && ((_vm.autoSelectionAllowed && _vm.dropdown.dropdownList.length <= 1)||(!_vm.autoSelectionAllowed &&_vm.dropdown.dropdownList.length <= 0)))},on:{\"click\":function($event){return _vm.toggleDropdown($event)},\"keydown\":[function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"esc\",27,$event.key,[\"Esc\",\"Escape\"])){ return null; }return _vm.toggleDropdown($event,true)},function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"tab\",9,$event.key,\"Tab\")){ return null; }return _vm.toggleDropdown($event,true)},function($event){return _vm.checkKey($event)}]}},[_c('img',{attrs:{\"src\":require(\"../../assets/images/scholars/add-new-scholars/arrowDown.svg\"),\"alt\":\"down\"}}),_c('span',{class:[_vm.dropdown.singleSelect && 'singleSelect']},[_vm._v(_vm._s(_vm.dropdown.value))])]),(_vm.openDropdown)?_c('div',{directives:[{name:\"click-outside\",rawName:\"v-click-outside\",value:(function (){_vm.openDropdown=false}),expression:\"()=>{openDropdown=false}\"}],staticClass:\"dropdown-submenu\"},[_c('ul',{staticClass:\"dropdown-submenu-list scroll-drop\"},[(_vm.dropdown.showSelectLabel)?_c('li',{staticClass:\"select-label\",on:{\"keydown\":function($event){if($event.target !== $event.currentTarget){ return null; }return _vm.onDropdownOpen($event)},\"keyup\":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"enter\",13,$event.key,\"Enter\")){ return null; }return _vm.select({id: 0, value: _vm.dropdown.firstSelectLabel || 'Select'});},\"click\":function($event){$event.stopPropagation();return _vm.select({id: 0, value: _vm.dropdown.firstSelectLabel || 'Select'})},\"mouseover\":function($event){return _vm.changeFocusOnHover(-1)}}},[_c('img',{attrs:{\"src\":require(\"../../assets/images/scholars/add-new-scholars/arrowDown.svg\"),\"alt\":\"down\"}}),_c('a',[_vm._v(_vm._s(_vm.dropdown.firstSelectLabel || 'Select'))])]):_vm._e(),(_vm.dropdown.search)?_c('li',{staticClass:\"input_rel\"},[(_vm.dropdown.search)?_c('input',{directives:[{name:\"model\",rawName:\"v-model.trim\",value:(_vm.search),expression:\"search\",modifiers:{\"trim\":true}}],attrs:{\"placeholder\":_vm.dropdown.placeholder || 'Search',\"type\":\"text\",\"id\":\"dropdownSearchInput\"},domProps:{\"value\":(_vm.search)},on:{\"keydown\":function($event){if($event.target !== $event.currentTarget){ return null; }return _vm.onDropdownOpen($event, 'fromSearchInput')},\"input\":[function($event){if($event.target.composing){ return; }_vm.search=$event.target.value.trim()},function (evt) {_vm.search=evt.target.value; _vm.active=-1}],\"mouseover\":function($event){return _vm.changeFocusOnHover(-1)},\"blur\":function($event){return _vm.$forceUpdate()}}}):_vm._e(),(_vm.search)?_c('span',{staticClass:\"cross\",on:{\"click\":function($event){return _vm.clearSearch()}}},[_c('img',{attrs:{\"src\":require(\"../../assets/images/closeIconBlack.svg\"),\"alt\":\"\"}})]):_c('span',{staticClass:\"search-icon\"},[_c('img',{attrs:{\"src\":require(\"../../assets/images/common-icon/search.svg\"),\"alt\":\"\"}})])]):_vm._e(),_vm._l((_vm.filterList(_vm.dropdown.dropdownList, _vm.search)),function(obj,index){return _c('li',{key:index,staticClass:\"dropdown-menu\",class:[ _vm.dropdown.id==obj.id && 'blue-hover' ,!_vm.dropdown.showSelectLabel && index == 0 && 'label-wt-select'],attrs:{\"id\":(\"drop-li-\" + index)},on:{\"click\":function($event){return _vm.select(obj)},\"mouseover\":function($event){return _vm.changeFocusOnHover(index)}}},[(_vm.isDropdownElementIdValid(obj.id))?_c('a',{attrs:{\"id\":(\"drop-a-\" + index),\"name\":(\"drop-a-\" + (obj.id)),\"tabindex\":index,\"bx-attr\":(\"dropdown-value-\" + (obj.value.toLowerCase().split(' ').join('-')))},on:{\"keypress\":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"enter\",13,$event.key,\"Enter\")){ return null; }return _vm.select(obj);},\"keydown\":[function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"esc\",27,$event.key,[\"Esc\",\"Escape\"])){ return null; }return _vm.toggleDropdown($event,true)},function($event){if($event.target !== $event.currentTarget){ return null; }return _vm.onDropdownOpen($event,'fromLi')}]}},[(!_vm.dropdown.showSelectLabel && index == 0)?_c('img',{attrs:{\"src\":require(\"../../assets/images/scholars/add-new-scholars/arrowDown.svg\"),\"alt\":\"down\"}}):_vm._e(),_vm._v(\" \"+_vm._s(obj.value))]):_vm._e()])})],2)]):_vm._e()]),(_vm.dropdown.error)?_c('span',{staticClass:\"dropdown-error\"},[_vm._v(_vm._s(_vm.dropdown.errorText))]):_vm._e()])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { Vue, Component, Prop, Watch } from 'vue-property-decorator';\nimport APP_CONST from '@/constants/AppConst';\nimport { DropdownListItem, DropdownListOptions } from './types';\n\n\n@Component({\n name: 'DropdownList',\n filters: {}\n})\nexport default class DropdownList extends Vue {\n search: string = '';\n openDropdown: boolean = false;\n hovering: boolean = false;\n hoverText: string = '';\n styleObject: any = {};\n dropdownElement: any = {};\n active: number = -1;\n searchElementId: number = -1;\n public activeLetter = '';\n public selectedIndex: number = -1;\n selectableLableHover: boolean = false;\n public publicUniqueId: number = Math.floor(Math.random() * 100000000000);\n\n @Prop()\n classes!: string[];\n\n @Prop({ default: true })\n autoSelectionAllowed!: boolean;\n\n @Prop({\n default: {\n singleSelect: false,\n showSelectLabel: true,\n firstSelectLabel: 'Select',\n id: 0,\n value: 'Select',\n label: '',\n error: false,\n errorText: '',\n search: false,\n disable: false,\n dropdownList: [{ id: 0, value: 'Select' }] as DropdownListItem[]\n } as DropdownListOptions\n })\n dropdown!: DropdownListOptions;\n\n @Prop()\n slotObj!: { slotLabel: string; slotType: string };\n\n toggleDropdown(e?: any, close?: boolean) {\n if (this.dropdown.disable) {\n return;\n }\n this.openDropdown = this.openDropdown\n ? APP_CONST.FALSE\n : (close\n ? APP_CONST.FALSE\n : APP_CONST.TRUE);\n this.clearSearch();\n this.hovering = !this.hovering;\n if (this.openDropdown) {\n this.active = APP_CONST.MINUS_ONE;\n setTimeout(() => {\n this.dropdownElement.children = [...document.getElementsByClassName('dropdown-menu')];\n if (this.dropdown.search) {\n const inputElement = document.getElementById('dropdownSearchInput');\n inputElement && inputElement.focus();\n if (this.dropdown.id) {\n const activeEle = document.getElementsByName(`drop-a-${this.dropdown.id}`)[0];\n if (activeEle) {\n activeEle.scrollIntoView({ block: 'center', behavior: 'smooth' });\n }\n }\n }\n else {\n const element = document.getElementById('drop-a-0');\n if (element) {\n element.focus();\n this.active = 0;\n this.dropdownElement.children[this.active].classList.add('dropbtn-selected');\n }\n if (this.dropdown.id) {\n const activeEle = document.getElementsByName(`drop-a-${this.dropdown.id}`)[0];\n if (activeEle) {\n activeEle.focus();\n const index = this.dropdownElement.children.findIndex((el: any, index: number) => {\n const toFind = `drop-a-${this.dropdown.id}`;\n if (el.children[0].name == toFind) {\n return index;\n }\n });\n if (index >= APP_CONST.ZERO) {\n this.dropdownElement.children[this.active].classList.remove('dropbtn-selected');\n this.active = index;\n this.dropdownElement.children[this.active].classList.add('dropbtn-selected');\n this.dropdownElement.children[this.active] && this.dropdownElement.children[this.active].scrollIntoView({ block: 'center', inline: 'center', behavior: 'smooth' });\n }\n }\n }\n }\n }, 10);\n }\n if (this.openDropdown && this.selectedIndex > -1) {\n const dropdownMenuItems = this.dropdownElement && this.dropdownElement.children;\n dropdownMenuItems[this.active] && dropdownMenuItems[this.active].scrollIntoView({ block: 'center', inline: 'center', behavior: 'smooth' });\n }\n if (this.active > -1 && e && e.keyCode == 13 && !this.openDropdown) {\n this.selectedIndex = this.active;\n const selected = this.dropdown.dropdownList[this.active];\n this.select(selected);\n }\n }\n\n /* istanbul ignore next */\n mounted() {\n document.addEventListener('keydown', (e) => {\n switch (e.key) {\n case 'ArrowUp':\n case 'ArrowDown':\n if (this.openDropdown) {\n e.preventDefault();\n }\n break;\n }\n });\n this.selectFirstElement();\n }\n\n @Watch('dropdown.dropdownList', { deep: true })\n onDropdownListChange(old: any, newVal: any) {\n if (old !== newVal) {\n this.selectFirstElement();\n }\n }\n\n selectFirstElement() {\n if (this.dropdown.dropdownList && this.dropdown.dropdownList.length <= APP_CONST.ONE && this.autoSelectionAllowed) {\n const dropDownValues: any = this.dropdown.dropdownList.length == APP_CONST.ZERO\n ? { id: this.dropdown.id\n ? this.dropdown.id\n : 0, value: this.dropdown.value }\n : this.dropdown.dropdownList[APP_CONST.ZERO];\n this.select(dropDownValues);\n const element: any = document.getElementById(`dropdown-label-${this.publicUniqueId}`);\n element && element.classList && element.classList.add('dropdown-active');\n }\n else {\n const element: any = document.getElementById(`dropdown-label-${this.publicUniqueId}`);\n element && element.classList && element.classList.remove('dropdown-active');\n }\n }\n\n onDropdownOpen(e: any, attribute?: string) {\n const searchElement = document.getElementById('dropdownSearchInput');\n if (document.activeElement !== searchElement) {\n if (e.code == 'Space') {\n e.preventDefault();\n return false;\n }\n }\n if (e.keyCode == 27) {\n this.toggleDropdown({}, true);\n this.refocusDD();\n }\n if (attribute == 'fromLi' && e.keyCode == 9 && !e.shiftKey) {\n this.toggleDropdown({}, false);\n this.active = -1;\n return;\n }\n else if (attribute == 'fromLi' && e.keyCode == 9 && e.shiftKey) {\n this.active = -1;\n setTimeout(() => {\n if (this.dropdown.search) {\n const inputElement = document.getElementById('dropdownSearchInput');\n inputElement && inputElement.scrollIntoView({ block: 'center', inline: 'center', behavior: 'smooth' });\n this.goToSearch();\n }\n }, 10);\n return;\n }\n else if (attribute == 'fromSearchInput' && (e.keyCode == 38 || e.keyCode == 40)) {\n e.preventDefault();\n return;\n }\n else if (attribute == 'fromSearchInput' && e.keyCode == 9 && !e.shiftKey) {\n this.active = 0;\n }\n const dropdownMenuItems = this.dropdownElement && this.dropdownElement.children;\n const inputElement = document.getElementById('dropdownSearchInput');\n\n if (this.openDropdown) {\n const input = String.fromCharCode(e.keyCode);\n if (e.keyCode == 40) {\n if (this.active < this.dropdownElement.children.length - 1) {\n this.active++;\n }\n }\n else if (e.keyCode == 38) {\n if (this.active == APP_CONST.ZERO) {\n this.active;\n }\n else {\n this.active--;\n }\n }\n else if (/[a-zA-Z0-9]/.test(input) && (document.activeElement !== inputElement)) {\n const loopStart = this.activeLetter == input.toLowerCase()\n ? this.active + 1\n : 0;\n for (let i = loopStart; i < this.dropdownElement.children.length; i++) {\n const val = dropdownMenuItems[i].innerText.charAt(0).toLowerCase();\n const inp = input.toLowerCase();\n if (val == inp) {\n this.active = i;\n this.activeLetter = inp;\n break;\n }\n }\n }\n setTimeout(() => {\n const currentElm: any = document.querySelector('.dropbtn-selected a') as HTMLElement;\n currentElm && currentElm.focus();\n });\n }\n this.dropdownElement.children.forEach((drop: any) => {\n drop && drop.classList && drop.classList.remove('dropbtn-selected');\n });\n this.dropdownElement && this.dropdownElement.children[this.active] && this.dropdownElement.children[this.active].classList.add('dropbtn-selected');\n if (this.active > -1) {\n this.dropdownElement.children[this.active].focus();\n this.dropdownElement.children[this.active].classlist && this.dropdownElement.children[this.active].classlist.add('dropbtn-selected');\n dropdownMenuItems[this.active] && dropdownMenuItems[this.active].scrollIntoView({ block: 'center', inline: 'center', behavior: 'smooth' });\n }\n }\n\n goToSearch() {\n const inputElement = document.getElementById('dropdownSearchInput');\n inputElement && inputElement.focus();\n }\n\n checkKey(e: any) {\n if (e.keyCode == 38 || e.keyCode == 40) {\n if (this.openDropdown) {\n this.onDropdownOpen(e, 'fromLi');\n }\n else {\n this.toggleDropdown(e);\n }\n }\n }\n\n select(selection: { id: number; value: string }) {\n if (selection && this.dropdown.id == selection.id) {\n this.openDropdown = false;\n this.refocusDD();\n this.hovering = false;\n return;\n }\n this.dropdown.id = selection && selection.id;\n this.dropdown.value = selection && selection.value;\n if (this.dropdown.id >= APP_CONST.ZERO || typeof (this.dropdown.id) == 'string') {\n this.$emit('onSelectionChange', { id: this.dropdown.id, value: this.dropdown.value } as DropdownListItem);\n }\n this.openDropdown = false;\n this.refocusDD();\n this.hovering = false;\n }\n\n filterList(list: [{ id: number; value: string }], search: string): any {\n search = search.trim();\n if (!search) {\n return list;\n }\n const dropList = list.filter((el) => el.value.toLowerCase().includes(search.toLowerCase()));\n return dropList;\n }\n\n clearSearch() {\n this.search = '';\n }\n\n refocusDD() {\n const btnElment = document.getElementById(`dropdown-label-${this.publicUniqueId}`);\n btnElment && btnElment.focus();\n }\n\n // Just to improve user Experience\n changeFocusOnHover(index: number) {\n this.dropdownElement && this.dropdownElement.children && this.dropdownElement.children.forEach((drop: any) => {\n drop && drop.classList && drop.classList.remove('dropbtn-selected');\n });\n if (index > -1) {\n this.active = index;\n // this check is needed to ensure the dropdown and elements inside the dropdown exist\n // due to the onDropdownOpen function having a 10ms timeout\n if (this.dropdownElement.children && this.dropdownElement.children.length && this.dropdownElement.children[this.active]) {\n this.dropdownElement.children[this.active].classList.add('dropbtn-selected');\n }\n }\n }\n\n /**\n * Checks if the provided dropdown element ID is valid.\n *\n * @param id - The dropdown element ID to validate.\n * @returns A boolean indicating whether the ID is valid or not.\n */\n isDropdownElementIdValid(id: number | string): boolean {\n if (typeof id === 'number') {\n return id > -1;\n }\n else if (typeof id === 'string') {\n return !!id;\n }\n return false;\n }\n}","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport DropdownList from '@/ui-components/dropdownListBx/DropdownList';\nexport default DropdownList;\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DropdownList.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./DropdownList.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./DropdownList.vue?vue&type=template&id=7867c925&scoped=true&\"\nimport script from \"./DropdownList.vue?vue&type=script&lang=ts&\"\nexport * from \"./DropdownList.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./DropdownList.less?vue&type=style&index=0&id=7867c925&lang=less&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"7867c925\",\n null\n \n)\n\nexport default component.exports","import API_CONST from '@/constants/ApiConst';\nimport { AddSessionPayload, AutoEnrollmentFilter, EditSessionPayload, GetSessionsRequest, GetSessionsResponse, Session } from '@/Model/sessions/types';\nimport { SortDirection } from '@/Model/shared/types';\nimport { httpClient } from '@/services/common/httpClient';\nimport { AxiosResponse } from 'axios';\n\nexport function addNewSession(newSession: AddSessionPayload) {\n return httpClient().post(`${API_CONST.SESSIONS_END_POINT}`, { ...newSession });\n}\n\nexport function updateSession(payload: EditSessionPayload) {\n return httpClient().put(`${API_CONST.SESSIONS_END_POINT}`, payload);\n}\n\nexport function getSessionsForProgram(programId: number): Promise>> {\n return httpClient().get>(`${API_CONST.PROGRAM_SESSIONS_ENDPOINT}/${programId}`);\n}\n\nexport async function getPagedSessionsForProgram(request: GetSessionsRequest): Promise> {\n\n const url = `${API_CONST.SESSIONS_END_POINT}` +\n `?programId=${encodeURIComponent(request.programId)}` +\n `&page=${encodeURIComponent(request.page || '')}` +\n `&sortField=${encodeURIComponent(request.sortField || '')}` +\n `&sortDir=${encodeURIComponent(request.sortDir || SortDirection.Undefined)}` +\n `&searchField=${encodeURIComponent(request.searchField || '')}` +\n `&search=${encodeURIComponent(request.search || '')}` +\n `&pageItemCount=${encodeURIComponent(request.pageItemCount || '')}` +\n `&sessionAutoEnrollmentFilter=${encodeURIComponent(request.sessionAutoEnrollmentFilter || AutoEnrollmentFilter.All)}`;\n\n return httpClient().get(url);\n}\n"],"sourceRoot":""}